@haozhihao
2017-09-29T04:39:56.000000Z
字数 972
阅读 2345
PLC
因为项目中要用到LED显示屏,其支持modbus TCP通讯协议,因为使用的是ET200SP的PLC,所以想采用modbus TCP 进行通讯,具体操作方法如下
采用博途V14SP1软件新建项目
在属性
选项点击常规
里进行IP地址的设置
打开组织块
添加MB_CLIENT
指令,我使用的是V4.1版本的。软件将提示会为该FB 块增加一个背景数据块
然后添加一个全局数据块用于匹配功能块MB_CLIENT
的管脚参数CONNECT
,本人建立的是MB_CLIENT_TCON.TCON
DB2数据块,然后打开该数据块,手动输入TCON_IP_v4
的数据类
型
其中各参数的数据类型如下:
其中需注意的是一个ID
数值需要与其指令中的背景数据块里面的MB_UNIT_ID
一致才行,不然通信会出错,当时通信时没注意,搞了好久服务器的IP地址也要设对,不然也连不上。
创建一个全局数据块用于匹配功能块MB_CLIENT
的管脚参数MB_DATA_PTR
,这个数据块是非优化的数据块。点击数据块在其属性里将优化的块访问
选项点掉,创建完后点击编译
按钮编译下,才能看到其偏移地址。建个数组用于存储数据
新建变量表,将管脚数据依次定义下,或者新建数据块,将管脚定义下,我用的是数据块。
其中需注意的是,偏移地址手动输上去,这样和设置的一样
下载到PLC再线监控,没连上时status
显示7002,说明没联系上,连上后为7004,个功能码意思在博途指令说明里有详细的介绍
新建监控表进行监控,将reg改为1,通信status
一直在0000-7005-7006
间闪烁
可以采用modbus slave测试软件进行测试,连接后,其中的ID需与PLC中的ID一样,才可传输数据。
7004
更改ID和IP地址,还是能通讯,说明连上后,更改参数是不起作用的,status
显示7002
,说明没连上,连上显示7004
DATA_ADDR
是一一对应的,具体对应表,对应的不同读写的功能,在功能块的说明里有详细的对照表