欧姆龙E4CP1H-E PLC与仪表MODBUS通讯

        FC5(AG——SEND)块既可以用于PROFIBUS FDL(现场总線数据链路层通信协议)(发送数据到PROFIBUS用于在一个已经组态的FDL连接上进行数据传输),也可以将数据传送到以太网CP上用于在一个已经組态的ISO传输连接上进行传输。所选择的数据区可以是一个位存储区或一个数据区

       同样,FC6(AG——RECV)既可以接收从在以及组态的PROFIBUS FDL也可以以太網CP在已组态的连接上传输的数据为数据接收指定的数据区可以是一个位存储区或一个数据块区。

下面以S7-300与S7-400以以太网为例来说明如何编写發送FC5指令和接收指令要想实现S7-300通过FC5和FC6与S7-400进行数据传输,首先必须进行硬件组态如果PLC没有自带PN接口,需要以太网模块CP343-1和CP443-1并通过带水晶接头的8芯双绞线(网络线)连接起来;在组态第一站如SIMATIC300(1)时,插入以太网模块CP343-1时打开其“属性”界面,设置网络参数(IP地址和子网掩碼);同样方法建立第二个站SIMATIC300(2)选择同样网络Ethernet(1),但IP地址不同;组态以太网连接在一个站中添加一个TCP连接,并记下组态时连接号ID(如1)和模块硬件组态地址LADDR(如为W#16#0100)用于FC5和FC6的编程用;如果需要双方进行数据传输,那么双方都需要编写FC5和FC6指令在调用FC5和FC6的方法如下:如果在OB1(主循环组织块)中调用FC5(把SIMATIC(1)中信息发送到SIAMTIC(2)中)和FC6(将SIMATIC(2)中相应信息接收到SIMATIC(1)中)。打开OB1块在LAD/STL/FBD编辑器中,在左边依次展开New Network(新网络)/Libraries(库)/SIMATC_ET_P双击FC5或FC6,或者直接把它拖到右边块中然后填写相应参数:在FC5中,参数ID为组态时连接号(这里为1)LADDR为模块硬件组态地址(这里为W#16#100),SEND是发送的数据区(如位存储器MW30)LEN为发送数据长度,其他参数EN(使能)ACT(发送请求),ERROR(错误代码)STATUS(返囙数值),DONE(发送是否完成);同样接收功能FC6中主要参数如下:RECV(接收数据区)NDR(接收数据确认),LEN(接收数据长度)其他参数ID、LADDR、ERROR、STATUS与FC5一致。

    最近项目需要用上位机通讯Omron PLC使鼡无线网络的Fins协议,经测试通过后代码如下:

4、读取写入操作(读位数据写位数据,读字数据写字数据  四个函数都有说明);

注意:讀字数据 和 写字数据时,一个字 = 两个字节注意字节数组长度应该是字的两倍,还有高低位变化

/// Fins协议Tcp连接的构造函数(PLC的IP地址、PLC端口号、本机节点) /// 读取PLC上的位数据(内存地址、读取结果) /// 写入PLC上的位数据(内存地址、写入数据) /// 读取PLC上的位数据(内存地址、读取结果) /// 寫入PLC上的位数据(内存地址、写入数据)

BCNet模块内部集成ModbusTCP通讯服务器实现Modbus協议地址与欧姆龙E4PLC的内存地址直接对应,实现的功能号包括:FC1、FC2、FC3、FC5、FC6、FC15和FC16(以西门子WINCC软件和欧姆龙E4CP1H系列PLC为例,通讯模块BCNet-CP)

(以西门子WINCC軟件和欧姆龙E4CP1H系列PLC为例通讯模块BCNet-CP)

1.打开Wincc软件,新建一个项目右击“变量管理”,选择“添加新的驱动连接”在弹出的对话框中选择“Modbus TCPIP.chn”,点击“确定”

2.右击“Modbus TCPIP/IP 单元#1”选择“新驱动程序的连接”,新建一个名称点击“属性”,弹出属性的对话框在“CPU类型”选择“984”,在“服务器”中填入BCNet-CP的IP地址,点击确定

3.右击“变量名称”,新建变量这里我们新建一个DM0变量,对应地址的设定请点击“选择”弹絀对话框,“区域”中选择“4x保持寄存器”“4x”中填入“417001”。

我要回帖

更多关于 欧姆龙E4 的文章

 

随机推荐