前言

1、前两篇文章通过对Snap7和S7-1200/S7-1500PLC的通信进行了详细的介绍。Snap7的优点开源性强、使用方便易于上手,跨平台和可移植性性强。但是Snap7也有个缺点就是只能访问PLC的DB、MB、I、Q区进行数据读写,不能对V区进行读写,有人说可以读写V区,但是目前我还没有得到可靠的验证。

2、ModbusTCP/ModbusRTU协议,通过开源的Libmodbus库和西门子S7-1200/S7-1500PLC通信进行数据交换。Libmodbus可以对PLC的DB、VB、MB、I、Q区进行读写操作,效率较高、开放性好,缺点就是如果用户要按位操作V区就存在安全隐患。操作流程为:先读取V区,因为Modbus协议得读写操作都是以字为单位,比较V区数据,把要改变得位数据置位或复位后再写入到PLC中,一个流程要对PLC进行2次操作,一次读操作,一次写操作。安全隐患主要存在读过程,如果读取后PLC内数据得某个位发生了变化,再去进行PLC数据得写操作过程就会存在安全隐患。
SOCKET
3、Socket通信,Socket通信得有点也是开放性较好,速度较快,缺点十Socket通信得数据是以CHAR类型ASCII码得形式进行,所以对数据需要转换为ASII。

有关Socket的详细介绍可以参考以下文章。
https://blog.csdn.net/lzc881012/article/details/127737864?spm=1001.2014.3001.5502