PLC程序实例二:ModBusTCP客户端编程实例与测试方法

一、需求描述

1、设备作为服务端时,需要给出对应的测试方法,即要求 PLC 作为客户端,设备作为服务端,因此要求编写 PLC 的ModBusTCP客户端

2、先了解一下设备作为服务端的ModBusTCP网络触发业务逻辑

(1)设备需要设置网络触发,并设置触发指令(假如为TR),以及ModBusTCP服务端设置如图

(2)PLC通过如图信息连接设备

(3)PLC发送指令 TR 到设备

(4)设备收到 TR 指令,与网络触发设置的TR指令比对

(5)指令一致则进行触发

(6)触发的结果写到设备端的传输地址上,需要PLC主动去访问和获取

二、官方文档与解释

1、通过上位机软件查看官方文档

如下,这里涉及到主站和从站的概念,与服务端和客户端的描述有些差异,解释如下:这个用英语比较好解释,主站MASTER还有“主管”的意思,从站SLAVE还有“奴隶”的意思。从通讯过程上来说,主站发出通讯命令,从站应答。

因此,PLC为主站,设备为从站。这个概念不要和“服务端、客户端”的概念混淆,不是一回事,只是为了利于编程的理解,在这里需要明确一下。

 2、理解主站和从站的概念后,我们应该找到PLC作为主站功能的实现文档,如下图

三、根据官方文档进行编程

1、连接设置

2、协议设置

操作路径:[工具]  [通信协议支持功能]  [文件]  [新建]  “协议设置”画面  [编辑]  [协议添加]

本次实例使用2个协议: 03:RD Holding Registers  +  WR Multi Registers

 

 

 

 

四、编程

 1、上述代码解释与实验

 (1)改变D403的长度为20,接收到最大的长度为20,程序设置为:

 (2)改变D402的赋值为10,即设备的取值地址为10到20的区域(11个数据),程序设置为:

 (3)连接编号的对应关系

(5)协议号的对应关系

 (6)设备站号为1,程序设置为:

 (7)基于上述操作,我们实现了PLC对设备的读操作

(8)增加WR Multi Registers协议,并下发到PLC中

(9)代码

 

猜你喜欢

转载自blog.csdn.net/weixin_43431593/article/details/128217253
今日推荐