使用方式请参见这一期文章
-
创建两个PLC,一个为Client,客户端。一个为Server,服务器。如图一。
图一
此处为了方便记忆,取1511的IP地址为192.168.0.11。取1513的IP地址为192.168.0.13
-
打开PLCSIM Advanced,创建两个PLC。如图二。
图二
-
Client端程序编写
3.1_首先回到Client PLC中,在OB1中,拖入两个Modbus_TCP的块,并创建实例,分别用于读和写。如图三。
图三
3.2_创建一个DB块,分别用于读写指令的管脚处填写对应的参数,如图四。图四
3.3_参数详细说明InterfaceId:硬件标识符,在系统常数中可以看到。
ID:引用该连接的唯一ID。
ConnectionType:连接类型,对于TCP,选择11,不可以使用其他类型
ActiveEstablished:建立连接的方式所对应的 ID,对于主动连接建立,应选择 TRUE。
RemoteAddress:连接伙伴(Modbus 服务器)的 IP 地址。
RemotePort:远程连接伙伴的端口号。
LocalPort:本地连接伙伴的端口号,可不填。
详细可以参考F1帮助。
3.4_引脚参数关联。将REQ等参数分配到引脚上,写好Modbus的读写寄存器的地址区。如图五。
图五
至此,Client已经完成,把程序下载到Client的PLC。
-
Server端程序编写
4.1_将Modbus_TCP的Server指令拖入程序段并创建实例,如图六。
图六
4.2_创建一个DB块,将Server指令所需的参数创建在DB块中。如图七。图七
4.3_参数详细说明
参见3.3,大部分都相同,唯一需要注意的就是ActiveEstablished为False,因为他是被动连接的、其次就是LocalPort,对于Client来说,他是远程端口,对于Server来说,他是本地端口,所以他的本地端口需要为333。如图七。
其余参数详见F1帮助
4.4_引脚参数关联,如图八。
图八
至此,Server已经完成,把程序下载到Server的PLC。
-
仿真测试_Client写数据到Server
将Write的REQ置1,此时Client的数据发送到Server,如图九_1-3。
图九_1
图九_2
图九_3
可以看到已经将数据从Client端发送到Server端。
-
仿真测试_Client从Server读取数据
将Read的REQ置1,将数据从Server读取到Client,,如图十_1-3。
图十_1
图十_2
图十_3
可以看到已经将数据从Server端读取到Client端
-
数据区域问题
Client的MB_DATA_ADDR的数据,一个是40001,一个是40011,分别读取和写入5个数据,那么服务器对应的MB_HOLD_REG的第一个就为40001,第十一个就为40011,所以是分别往这两个地方去读取和写入的。
-
总结
注意点1:客户端的“RemotePort”
注意点2:服务器的“LocalPort”
注意点3:MB_HOLD_REG地址
注意点4:ActiveEstablished,客户端为1,因为客户端主动连接。服务器为0,因为服务器被动接受
-
也可以使用Modbus_POLL或者Modbus_Slave等软件测试。
-
MODBUS
+关注
关注
28文章
1826浏览量
77409 -
仿真
+关注
关注
50文章
4134浏览量
134124 -
TCP
+关注
关注
8文章
1383浏览量
79375
发布评论请先 登录
相关推荐
Modbus TCP通信报文解析
![<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>通信报文解析](https://file1.elecfans.com/web2/M00/A3/F2/wKgZomUKpTCAFVJAAAChpV4M-y0151.jpg)
Modbus TCP转Modbus RTU的实现
有没有哪位道友在RTThread内核上移植modbus_tcp成功的啊
Modbus/TCP通讯配置
![<b class='flag-5'>Modbus</b>/<b class='flag-5'>TCP</b>通讯配置](https://file.elecfans.com/web2/M00/49/ED/pYYBAGKhvHeAUu3FAAARFXa3Kv8073.jpg)
Modbus RTU和Modbus TCP的区别
ModBus RTU 与 ModBus TCP
Modbus TCP通讯概述
Modbus tcp转ETHERCAT网关modbus tcp和profinet区别
![<b class='flag-5'>Modbus</b> <b class='flag-5'>tcp</b>转ETHERCAT网关<b class='flag-5'>modbus</b> <b class='flag-5'>tcp</b>和profinet区别](https://file1.elecfans.com//web2/M00/8C/B3/wKgaomSwBz6AbgCIAAAzYtxR_sk360.png)
Modbus tcp转ETHERCAT网关modbus tcp和modbusRTU的区别
![<b class='flag-5'>Modbus</b> <b class='flag-5'>tcp</b>转ETHERCAT网关<b class='flag-5'>modbus</b> <b class='flag-5'>tcp</b>和modbusRTU的区别](https://file1.elecfans.com//web2/M00/8E/63/wKgaomTFKSCAfDxWAABEs8JtlZo952.jpg)
EtherCAT转Modbus TCP协议网关(JM-ECT-TCP)
![EtherCAT转<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>协议网关(JM-ECT-<b class='flag-5'>TCP</b>)](https://file1.elecfans.com//web2/M00/06/95/wKgaombcF0eAWT_5AACzT-rtvJE451.jpg)
MODBUS TCP 转 CANOpen
![<b class='flag-5'>MODBUS</b> <b class='flag-5'>TCP</b> 转 CANOpen](https://file1.elecfans.com/web2/M00/08/97/wKgaombyRnmAZrAyAAGHzRG0j8s875.png)
评论