昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端

昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端

背景

有一个升级改造的项目,想要用上位机采集PLC的数据,存储到数据库中,然后再做其他处理。现有的设备是西门子200的PLC通过串口和昆仑通态的触摸屏通讯。有一下几个方案:

1、通过PLC的485串口,直接和上位机用PPI协议通讯。

分析:
串口通讯速度慢。如果上位机没有485口,需要增加一个USB转485的数据线。PPI协议不是通用的通讯协议,上位机软件处理起来比较费劲。

2、通过PLC的串口,用modbus RTU协议和上位机通讯。

分析:
串口通讯速度慢。如果上位机没有485口,需要增加一个USB转485的数据线。需要在PLC程序中配置一个modbus的从站,但是项目中是一个成套设备,没有源代码,所以这个不好加。

3、给PLC扩展一个CP243-1模块,使用S7协议和上位机通讯。

分析:
增加模块需要增加成本。这个模块不一定有空间加。S7协议不是通用的通讯协议,上位机软件处理起来比较费劲。

4、用昆仑通态的触摸屏做数据转发,通过触摸屏和上位机实现modbus TCP通讯。

分析:不用增加成本,在原来设备的基础上就可以实现。原来的画面不多,即使拿不到源代码,重新做一个昆仑通态的程序也不麻烦。
通过以上的分析,决定使用第4个方案。下面测试一下该方案的可行性。
测试包括下面3个部分:
1、配置昆仑通态触摸屏和西门子200的串口通讯。
2、配置昆仑通态触摸屏的modbus TCP数据转发。
3、用调试软件测试昆仑通态触摸屏转发的数据是否正常。

第一步配置西门子200。

系统块中通信端口配置如下:
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
这个通信端口是和昆仑通态触摸屏做通信的。
选出几个地址,写入不同的值,等待测试用。
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端

第二步,配置昆仑通态触摸屏,使触摸屏和PLC建立通信。

新建变量,直接用西门子地址表示
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
在昆仑通态设备窗口中,添加通用串口父设备,然后在下面加西门子_S7200PPI驱动,如下图所示:
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
配置通用串口父设备的参数
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
配置西门子S7200PPI驱动的参数,并新建和西门子PLC的通讯的通道,将变量和通道进行关联。
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
组态画面,将新建变量显示出来,方便观察。
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
将以上程序分别下到PLC和触摸屏中,根据触摸屏的硬件手册做一根通讯线
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
将通讯线连接PLC和触摸屏,然后观察通讯状态,触摸屏和PLC通讯正常。

第三步,配置数据转发参数。

在设备窗口中添加通用TCPIP父设备,然后在该父设备下面添加一个modbusTCPIP数据转发设备驱动。
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
配置通用TCPIP父设备参数
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
其中服务器/客户设置选择服务器,意思是触摸屏作为服务器。本地IP地址为触摸屏IP地址,本地端口可以随意设置,这个要和测试软件上的地址和端口一致。远程IP地址和远程端口号可以不设,测试没问题。
配置数据转发设备参数
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
在内部属性中添加通道
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
注意,这个通道是modbusTCP通讯的通道,用调试软件测试的时候,就是和这个通道通信的。
将新建的通道和触摸屏的变量对应起来,建立连接。
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
这样的话,上位机就可以通过读写触摸屏的40001这个地址来和PLC的VW100这个地址进行数据交互。下好程序,连好网线,打开modbusTCP调试软件进行测试。
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
从调试软件中可以看到,读取到的40001的数据和PLC中VW100的数据是一致的。40002中的数据和PLC中VW102的数据是一致的。下面的双字和浮点数,只是编码格式的问题。在调试软件中,给40001写入一个值昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
昆仑通态触摸屏用串口与西门子200通讯,用网口做数据中转,把PLC数据转发给其他modbusTCP客户端
可以看到写入成功了。
测试完成并通过,方案可行。