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

2024-06-28 1236阅读

简述:此文中,PLC/控制器作为Modbus TCP从站(服务器),PC端通过Modbus Poll软件创建Modbus TCP主站(客户端)连接到PLC/控制器,双方可互相读写定义好的保持寄存区和离散点位区;

主要描述了以下几个要点:

1.设备的添加。

2.通讯参数的设置。

3.IO映射。

4.Modbus Poll 建立客户端。

5.简单通讯测试。

1.设备的添加。

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

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

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

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

2. 通讯参数的设置

在已经搜索到设备的状态下,点击【Ethernet】设备->【通用】->【Browse...】,此时将自动在网络上搜索可用的网络设备,选择想要连接的PLC/控制器的【IP地址】(本例子为192.168.1.101)所在行,点击确认。Codesys—标准库ModbusTCP Slave(服务器)的通讯示例

 选择【ModbusTCP_Slave_Device】设备->【通用】,如下图所示,保持寄存器后侧勾选【可写入】,此时允许客户端对保持寄存器进行写入,若不勾选则客户端仅能进行只读访问。

保持寄存器区的数量允许自定义,按需定义;

需要勾选离散位区域后,才能进行线圈读写的通讯;线圈的个数也是自定义,注意1表示1个bit,此处设置64bit,共8个字节。

数据模型,起始地址为Modbus地址,默认为0,可按需设置;

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

 3.IO映射

在程序的全局变量表中,定义了两个数组分别用来存储通讯变量;

第1个是数组大小为20,数据类型为16位的数组,前10个数据为控制器写PC端读,后10个数据为PC端写控制器读。

第2个是数组大小为8,数据类型为8位的数组,前4个字节为控制器写PC端读,后4个字节为PC端写控制器读。

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

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

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

 4.Modbus Poll建立客户端

打开PC端的Modbus Poll软件,创建客户端连接到控制器的服务器。

菜单栏选择【Connection】,点击【Connnect】

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

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

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

5.简单通讯测试 

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

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

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

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

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

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

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

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

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

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

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

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]