天天看点

一文搞懂PLC与串口服务器通信

作者:赵志华IIot

1. PLC与串口服务器之间的通信原理

智嵌物联的串口服务器可以配置为服务器模式,也可以配置为客户端模式。具体使用哪种工作模式,可根据用户的PLC的工作模式来确定。若PLC作为客户端,则串口服务器须配置为服务器模式;若PLC作为服务器,则串口服务器须配置为客户端模式。

1.1 串口服务器作为客户端,PLC作为服务器

串口服务器工作在TCP客户端(TCP Client)模式下,串口服务器设备作为TCP客户端,将主动向“目标IP/域名”和“目标端口”所指定的PLC发起连接请求。如果连接不成功,TCP客户端将会根据设置的连接条件不断尝试与TCP服务器建立连接。在与TCP服务器端建立TCP连接后即可进行双向数据通信。

1. 串口服务器主动向PLC发送建立连接请求。需将串口服务器的目标IP设置为PLC的IP地址,串口服务器的目标端口设置为PLC的本地端口号。

2. 连接一旦建立,串口服务器与PLC之间即可进行数据传输。

一文搞懂PLC与串口服务器通信

串口服务器的配置方法如图所示。

一文搞懂PLC与串口服务器通信

1.2 串口服务器作为服务器,PLC作为客户端

串口服务器工作在TCP服务器(TCP Server)模式下,串口服务器设备始终等待PLC的连接,在与客户端建立TCP连接后即可进行双向数据通信。数据传输步骤如下:

1. 建立连接。PLC作为客户端主动向串口服务器设备发送建立连接请求。需将PLC的目标IP设置为串口服务器的IP地址,PLC的目标端口设置为串口服务器的本地端口号。

2. 连接一旦建立,PLC与串口服务器之间即可进行数据的双向传输。

一文搞懂PLC与串口服务器通信

串口服务器的配置方法如图所示。

一文搞懂PLC与串口服务器通信

2. 串口服务器与西门子PLC(S7-1200)通信

串口服务器可以与西门子不同系列的PLC进行通信,如S7-200 Smart、S7-1200、S7-1500等,本章以S7-1200为例,详细阐述PLC与串口服务器建立TCP通信的步骤。

2.1 PLC作为Modbus Server(从站)

如果用户的串口设备是Modbus主站,PLC S7-1200就要作为Modbus从站。下面以S7-1200与智嵌物联的串口服务器之间进行 Modbus TCP 通信为例,详细阐述PLC如何编程及串口服务器的配置过程。

实验效果:使用Modbus Poll软件模拟用户的串口设备,来主动采集PLC的数据。

软件准备:Modbus Poll(模拟用户串口设备)、智嵌物联串口服务器配置软件、博途TIAV16。

硬件准备:智嵌物联串口服务器、S7-1200、USB转RS485串口线、电脑。

硬件接线:串口服务器、PLC、电脑三个设备的网口,同时接到交换机上; USB转RS485线分别接到串口服务器的串口和电脑的USB接口上。

一文搞懂PLC与串口服务器通信

1. 打开TIAV16软件,新建项目,并根据S7-1200的具体型号添加新硬件。如图所示。

一文搞懂PLC与串口服务器通信

2. 添加一个函数FC数据块,并在该函数数据块内添加一个MB_SERVER单个实例数据块。

一文搞懂PLC与串口服务器通信
一文搞懂PLC与串口服务器通信
一文搞懂PLC与串口服务器通信
一文搞懂PLC与串口服务器通信

该功能块各个引脚定义:

DISCONNET 0:代表被动建立与客户端的通信连接;1:代表终止连接
MB_HOLD_REG 指向Modbus保持寄存器的指针
CONNECT 指向连接描述结构的指针,TCON_IP_v4(S7-1200)
NDR 0:代表无数据,1代表从Modbus客户端写入的新数据
DR 0:代表无读取的数据。1:代表从Modbus客户端读取的数据
ERROR 0:无错误;1:出现错误,错误原因查看STATUS
STATUS 指令的详细状态信息

3. 创建一个保持寄存器的数据块,Modbus Poll软件会读取这个数据块里的数据。

一文搞懂PLC与串口服务器通信
一文搞懂PLC与串口服务器通信

4. 添加一个全局数据块,作为CONNECT引脚的指针类型,TCON_IP_V4。

一文搞懂PLC与串口服务器通信
一文搞懂PLC与串口服务器通信

各个引脚定义说明如下

InterfaceId 硬件标识符,在设备组态中查询
ID 连接ID,取值范围1~4095
Connection Type 连接类型,TCP连接默认为L6#0B
ActiveEstablished 建立连接。主动为1(客户端),被动为0(服务器)
ADDR 服务器侧的IP地址
RemotePort 远程端口
LocalPort 本地端口

5. 设置FC函数块,实现被客户端读取保持寄存器的值

一文搞懂PLC与串口服务器通信

6. 在主程序中调用FC函数块,并编译。

一文搞懂PLC与串口服务器通信

7. 设置PLC的IP地址,PLC的IP地址要和串口服务器的IP地址在同一个网段,且不冲突。

一文搞懂PLC与串口服务器通信

8. 创建一个监控表,并将整个项目下载到PLC中

一文搞懂PLC与串口服务器通信

9. 配置串口服务器

串口服务器的工作模式为TCP CLIENT,目标IP即为PLC的IP地址,目标端口即为PLC的本地端口,设置完成后,串口服务器作为客户端,会主动向PLC发起TCP连接。具体配置如所示。

一文搞懂PLC与串口服务器通信

10. 配置Modbus Poll软件

一文搞懂PLC与串口服务器通信

11. 通信成功

一文搞懂PLC与串口服务器通信

2.2 PLC作为Modbus Client(主站)

如果用户的串口设备是ModbusRTU从站站,PLC S7-1200就要作为Modbus主站。下面以S7-1200与智嵌物联的串口服务器之间进行 Modbus TCP 通信为例,详细阐述PLC如何编程及串口服务器的配置过程。

实验效果:使用Modbus Slave软件模拟用户的串口设备,PLC将会读取Modbus Slave软件的数据。

软件准备:Modbus Slave(模拟用户串口设备)、智嵌物联串口服务器配置软件、博途TIAV16。

硬件准备:智嵌物联串口服务器、S7-1200、USB转RS485串口线、电脑。

硬件接线:串口服务器、PLC、电脑三个设备的网口,同时接到交换机上; USB转RS485线分别接到串口服务器的串口和电脑的USB接口上。

一文搞懂PLC与串口服务器通信

1. 将智嵌物联的串口服务器配置为TCP SERVER模式,等待PLC建立连接。

一文搞懂PLC与串口服务器通信

2. 打开Modbus Slave软件,并按照图中配置,等待PLC读取。

一文搞懂PLC与串口服务器通信

3. 打开TIAV16软件,新建项目,并根据S7-1200的具体型号添加新硬件。如图所示。

一文搞懂PLC与串口服务器通信

4. 创建一个全局数据块(MB_REV),用于存放从Modbus Slave软件中读取的数据。

一文搞懂PLC与串口服务器通信
一文搞懂PLC与串口服务器通信

5. 添加一个全局数据块,作为CONNECT引脚的指针类型,TCON_IP_V4。

一文搞懂PLC与串口服务器通信

6. 在主程序中调用“MB CLIENT”功能块,并为各个引脚赋值。

一文搞懂PLC与串口服务器通信

7. 修改从站地址,此处的值要修改为与Modbus Slave软件上设置的Slave ID一致。

一文搞懂PLC与串口服务器通信

8. 将整个工程进行编译并下载到PLC中,监控数据块MB_REV中的数据。

一文搞懂PLC与串口服务器通信

至此,PLC已经将Modbus Slave中的数据读出来了。

2.3 PLC自由通信协议与串口服务器通信之间双向透明传输

如果用户的串口设备的通信协议不是ModBus协议,比如扫码枪,则可以参考该小节的介绍来配置串口服务器。

2.3.1 PLC作为客户端,串口服务器作为服务器

如果用户的PLC作为TCP客户端,则智嵌物联的串口服务器设备就要配置为TCP SERVER模式。下面以S7-1200与智嵌物联的串口服务器之间进行TCP 通信为例,详细阐述PLC如何编程及串口服务器的数据透明传输。

一文搞懂PLC与串口服务器通信

实验效果:使用串口调试助手软件模拟用户的串口设备,实现串口调试助手发数据,经串口服务器转发到PLC;PLC发送数据,经串口服务器转发到串口调试助手上。

软件准备:串口调试助手、智嵌物联串口服务器配置软件、博途TIAV16。

硬件准备:智嵌物联串口服务器、S7-1200、USB转RS485串口线、电脑。

1. 硬件接线

串口服务器、PLC、电脑三个设备的网口,同时接到交换机上; USB转RS485线分别接到串口服务器的串口和电脑的USB接口上。

2. 将智嵌物联串口服务器配置为TCP SERVER模式

一文搞懂PLC与串口服务器通信

3. 打开串口调试助手

串口调试助手用来模拟用户的串口设备,串口调试助手可接收来自PLC的数据,也可发送数据到PLC。

一文搞懂PLC与串口服务器通信

4. 打开TIA Portal V16,创建一个新项目,并根据用户的PLC型号添加新硬件,并设置CPU的IP地址。

一文搞懂PLC与串口服务器通信
一文搞懂PLC与串口服务器通信

5. 创建发送数据的数据块:发送数据DB,用户缓存要发送的数据

一文搞懂PLC与串口服务器通信
一文搞懂PLC与串口服务器通信

6. 创建接收数据的数据块:接收数据DB,用户缓存要接收的数据

一文搞懂PLC与串口服务器通信
一文搞懂PLC与串口服务器通信

7. 添加FC函数块,在该函数块内分别调用建立TCP连接的功能块“TCON”、发送数据的功能块“TSEND”、接收数据的功能块“TRCV”。

一文搞懂PLC与串口服务器通信

8. 调用建立TCP通信的功能块“TCON”,并对通信进行组态。伙伴IP及伙伴端口即为串口服务器的IP及本地端口号。

一文搞懂PLC与串口服务器通信
一文搞懂PLC与串口服务器通信

9. 分别调用发送数据的功能块“TSEND”、接收数据的功能块“TRCV”

10. 在主函数中调用FC函数块

一文搞懂PLC与串口服务器通信

11. 将整个工程编译,并下载到PLC中,然后监控发送数据DB块和接收数据DB块中的数据。

PLC发送数据到串口服务器,串口服务器收到数据后,将数据透明转发到对应的串口上,串口调试助手就会接收到PLC发来的数据。如图所示。

一文搞懂PLC与串口服务器通信

串口调试助手发送数据到串口服务器,串口服务器收到数据后,将数据透明转发到网口上的PLC上,PLC就会收到串口调试助手发来的数据。

一文搞懂PLC与串口服务器通信

2.3.2 PLC作为服务器,串口服务器作为客户端

1. 在上一节的基础上,只需要将串口服务器配置为客户端模式、PLC配置为服务器模式即可,其他操作步骤和上一节一样。

2. 将串口服务器配置为TCP CLIENT模式,目标IP即为PLC的IP地址,目标端口即为PLC的本地端口。

一文搞懂PLC与串口服务器通信

3. 将PLC设置为服务器,对“TCON_DB”进行组态。

一文搞懂PLC与串口服务器通信

4. 将整个工程编译,并下载到PLC中,然后监控发送数据DB块和接收数据DB块中的数据。

PLC发送数据到串口服务器,串口服务器收到数据后,将数据透明转发到对应的串口上,串口调试助手就会接收到PLC发来的数据。如图所示。

一文搞懂PLC与串口服务器通信

串口调试助手发送数据到串口服务器,串口服务器收到数据后,将数据透明转发到网口上的PLC上,PLC就会收到串口调试助手发来的数据。

一文搞懂PLC与串口服务器通信

继续阅读