Codesys—标准库ModbusTCP Slave(服务器)的通讯示例

打印 上一主题 下一主题

主题 535|帖子 535|积分 1605

简述:此文中,PLC/控制器作为Modbus TCP从站(服务器),PC端通过Modbus Poll软件创建Modbus TCP主站(客户端)毗连到PLC/控制器,双方可相互读写定义好的保持寄存区和离散点位区;
主要描述了以下几个要点:
1.设备的添加。
2.通讯参数的设置。
3.IO映射。
4.Modbus Poll 创建客户端。
5.简单通讯测试。
1.设备的添加。

ModbusTCP从站设备的添加如下图所示,起首添加【Ethernet】,然后添加设备【ModbusTCP_Slave_Device】。



2. 通讯参数的设置

在已经搜刮到设备的状态下,点击【Ethernet】设备->【通用】->【Browse...】,此时将自动在网络上搜刮可用的网络设备,选择想要毗连的PLC/控制器的【IP地址】(本例子为192.168.1.101)地点行,点击确认。

 选择【ModbusTCP_Slave_Device】设备->【通用】,如下图所示,保持寄存器后侧勾选【可写入】,此时允许客户端对保持寄存器进行写入,若不勾选则客户端仅能进行只读访问。
保持寄存器区的数量允许自定义,按需定义;
需要勾选离散位区域后,才能进行线圈读写的通讯;线圈的个数也是自定义,注意1体现1个bit,此处设置64bit,共8个字节。
数据模型,起始地址为Modbus地址,默认为0,可按需设置;

 3.IO映射

在步伐的全局变量表中,定义了两个数组分别用来存储通讯变量;
第1个是数组巨细为20,数据类型为16位的数组,前10个数据为控制器写PC端读,后10个数据为PC端写控制器读。
第2个是数组巨细为8,数据类型为8位的数组,前4个字节为控制器写PC端读,后4个字节为PC端写控制器读。

然后在【Modbus TCP Slave Device IO映射】选择全局变量表中定义好的变量,如下图所示

 4.Modbus Poll创建客户端

打开PC端的Modbus Poll软件,创建客户端毗连到控制器的服务器。
菜单栏选择【Connection】,点击【Connnect】

弹出窗口【Connection Setup】中选择【TCP/IP】,在【Remote Server】中填入控制器端服务器设置的IP地址和端口号,如下图所示,

5.简单通讯测试 

 起首测试16位数据的读写通讯,在Modbus Poll软件中设置,使用03功能码,地址为0,数据长度为20,如下图设置。


控制器步伐中,给【TCP_通讯字】的前10个分别赋值1~10,此时观察右侧Modbus Poll软件中的显示,ALias体现地址偏移,在地址0~9对应显示1~10,则控制器写,Modbus Poll读的16位数据测试通过,参考下图。 

起首在Modbus Poll中通过双击数据,直接修改数据,此处在地址为10处开始,依次赋值111、222、333到1010,共10个数据;此时观察左侧,在全局变量表中监控控制器读取到相应的数据,至此,则Modbus Poll写,控制器读的16位数据测试通过,参考下图。 

在Modbus Poll软件中设置,使用01功能码,地址为0,数据长度为64,如下图设置。 

控制器步伐中,给【TCP_通讯字节0】的前8个位分别按如下图赋值,此时观察左侧Modbus Poll界面中,其中1为TRUE,0为FALSE;至此,控制器写,Modbus Poll读的1位数据测试通过.


在左侧Modbus Poll软件上,向地址32开始,依次写入差别顺序的ON,OFF,如下图左侧所示,此时在右侧Modbus TCP Slave IO映射画面中,找到第5个字节(线圈[4]) ,可看到逐一对应,此时Modbus Poll写,控制器读的1位数据测试通过。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

悠扬随风

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表