新浪博客

西门子PLC和LabwindowsCVI使用TCP进行通讯和数据传输

2023-03-01 18:05阅读:
主要用来记录这次工作内容,这次用到下位机西门子PLC和上位机Labwindows CVI 进行通讯和数据交互。
PLC用的开发软件:PLC s7-200 SMART
上位机用的开发软件:Labwindows CVI
通讯方式:以太网通讯,协议用MODBUS TCP
主要问题:建立通讯连接
上位机发报文(用到的功能码:01 03 15 16
PLC响应,响应报文的处理(逐条处理报文)
PLC中具体的梯形图、和CVI中具体的程序代码就不展示了。
(注意:PLC寄存器地址和MODBUS TCP 地址的对应关系)

1. 建立通讯连接

LabWindows CVI 做客户端,PLC做服务端
. PLC服务端梯形图(西门子官网有具体例子,可以参考)
西门子PLC和LabwindowsCVI使用TCP进行通讯和数据传输

. CVI客户端程序(书上、网上也有类似的例子,可以参考)
. 整个通讯、数据传输过程,大概只用到这四个函数
西门子PLC和LabwindowsCVI使用TCP进行通讯和数据传输
. 建立TCP连接、关闭TCP连接
西门子PLC和LabwindowsCVI使用TCP进行通讯和数据传输
SERVER_PORT:服务端端口号(502
SERVER_HOSTNAME:服务端IP地址('192.168.2.1'
TCPClientCB :回调函数
TCPConnectStatusTCP连接状态
西门子PLC和LabwindowsCVI使用TCP进行通讯和数据传输

2. 上位机发报文

. 读多个线圈和读多个寄存器的报文(具体格式可以参考Modbus官网)
西门子PLC和LabwindowsCVI使用TCP进行通讯和数据传输
. 写多个线圈的报文(我这是写8个位,只改变其中一个位,其他位保持不变)
西门子PLC和LabwindowsCVI使用TCP进行通讯和数据传输
. 写多个寄存器的报文(注意程序和报文中高低字节的位置)
西门子PLC和LabwindowsCVI使用TCP进行通讯和数据传输
Sleep10):延迟10毫秒,防止多条报文中,后续报文发不下去。

3. PLC响应,响应报文的处理

响应报文在回调函数中处理,大概这样写。(只是我自己写的一个思路,别的方式也可以)
西门子PLC和LabwindowsCVI使用TCP进行通讯和数据传输

4. 具体程序内容(就先省略了)





我的更多文章

下载客户端阅读体验更佳

APP专享