[关闭]
@haozhihao 2017-09-29T04:39:56.000000Z 字数 972 阅读 2345

ET200SP的Modbus TCP通讯

PLC


因为项目中要用到LED显示屏,其支持modbus TCP通讯协议,因为使用的是ET200SP的PLC,所以想采用modbus TCP 进行通讯,具体操作方法如下

新建项目

采用博途V14SP1软件新建项目image_1br5lo01dubemaa1epj1g7711pf9.png-169.2kB
属性选项点击常规里进行IP地址的设置

建立程序块

打开组织块添加MB_CLIENT指令,我使用的是V4.1版本的。软件将提示会为该FB 块增加一个背景数据块
image_1br5m0fp3100i77m1m7f1nomocfm.png-177.8kB
然后添加一个全局数据块用于匹配功能块MB_CLIENT的管脚参数CONNECT,本人建立的是MB_CLIENT_TCON.TCONDB2数据块,然后打开该数据块,手动输入TCON_IP_v4的数据类
image_1br5mdkd1qik1ojq40qhbr10a813.png-201kB
其中各参数的数据类型如下:image_1br5mh6h413ukjv6o36pefsrm1g.png-141.1kB
其中需注意的是一个ID数值需要与其指令中的背景数据块里面的MB_UNIT_ID一致才行,不然通信会出错,当时通信时没注意,搞了好久服务器的IP地址也要设对,不然也连不上。image_1br5ml9rp1etge121p5c17u6k3a1t.png-230.2kB

创建非优化块

创建一个全局数据块用于匹配功能块MB_CLIENT的管脚参数MB_DATA_PTR,这个数据块是非优化的数据块。点击数据块在其属性里将优化的块访问选项点掉,创建完后点击编译按钮编译下,才能看到其偏移地址。建个数组用于存储数据image_1br5n19bmofs39hb031fnalok2a.png-19.1kB
image_1br5n5be613drma213aps9p1aee2n.png-97.3kB

其他管脚数据

新建变量表,将管脚数据依次定义下,或者新建数据块,将管脚定义下,我用的是数据块。
image_1br5ngvcd1qeq1321145h1voh1bc93k.png-157.6kB
image_1br5nqrr012pavnf2nrv661h0p4h.png-59.3kB

功能块进行匹配

image_1br5nu5lg4891snkpvl1r0svoe4u.png-27.3kB
其中需注意的是,偏移地址手动输上去,这样和设置的一样

连接调试

下载到PLC再线监控,没连上时status显示7002,说明没联系上,连上后为7004,个功能码意思在博途指令说明里有详细的介绍
image_1br5o4fe11gjjsha1fp1hj6qv55b.png-30.3kB
image_1br5o7htalfo43pgd4lre1dqi5o.png-63.4kB
新建监控表进行监控,将reg改为1,通信status一直在0000-7005-7006间闪烁
image_1br5o9lak1ks91fcr56c1quh1hfj65.png-72.3kB
可以采用modbus slave测试软件进行测试,连接后,其中的ID需与PLC中的ID一样,才可传输数据。
image_1br5udddarnf6r31t8erfq1o6m7f.png-82.4kB

注意和疑惑

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注