S7通信常见问题
1、S7-200 SMART CPU以太网通信端口支持哪些通信协议,是否支持TCP、UDP和ISO on TCP等开放式用户通信或Modbus TCP通信?
S7-200 SMART CPU以太网通信端口从V2.2固件支持TCP、UDP和ISO on TCP等开放式用户通信及Modbus TCP通信。
2、S7-200 SMART CPU标准型和紧凑型产品是否都支持 GET/PUT 通信?
S7-200 SMART CPU 全系列产品都支持 GET/PUT 通信。但是固件版本低于 V2.0 的产品不支持 GET/PUT 通信,CPU 固件可以通过 Micro SD 卡进行升级。
3、S7-200 SMART CPU在同一时刻能否对同一个远程 CPU 调用多于 8 个 GET/PUT 指令?
同一时刻对同一个远程 CPU 可以调用多于 8 个 GET/PUT 指令。同一时刻对同一个远程 CPU 调用多个 GET/PUT 指令只会占用 1 个GET/PUT 主动连接资源,而不是 8 个主动连接资源。
4、为什么有些第三方触摸屏不能与 STEP 7-Micro/WIN SMART 软件同时访问 S7-200 SMART CPU?
虽然S7-200 SMART CPU 以太网端口具有 25 个连接资源,但是其中只有 1 个连接资源(PG连接资源)用于与 STEP 7-Micro/WIN SMART 软件的通信。如果第三方触摸屏与S7-200 SMART CPU的连接也使用 PG连接资源,就会造成第三方触摸屏不能与 STEP 7-Micro/WIN SMART 软件同时访问 S7-200 SMART CPU。
5、GET/PUT 指令可以传送的较大用户数据是多少?
GET 指令可从远程站点读取较大 222 个字节的用户数据,PUT 指令可向远程站点写入较大 212 个字节的用户数据;大数据量的用户数据通信可以调用多个 GET/PUT 指令来实现。采用 GET/PUT 向导时每个操作的读写用户数据的较大个数为 200 个字节。
6、GET/PUT 通信错误有哪些可能原因?
GET/PUT 指令 TABLE 参数表的**个字节提供了“错误代码”,用于排查错误原因。GET/PUT 指令故障可能原因:
● S7-200 SMART CPU 固件版本较低,通信双方 CPU 固件都需要 V2.0 及以上版本。
● **出了本地 CPU 主动连接资源限制或远程 CPU 无可用的被动连接资源。
● GET/PUT 指令 TABLE 参数定义错误。
● 通信站点之间的物理连接出错。
7、如何获取S7通信的连接状态以及错误代码?
如何判断S7通信中断
方法一:通过与通信伙伴方创建的心跳信号判断
本测试为:一台200 SMART(CPU1)和2台200 SMART(CPU2和CPU3)做Get/Put通信。 在Get/Put向导中填写好类型、传送大小和远程CPU的IP地址,测试程序中本地和远程CPU对应的地址为:
图1.本地和远程对应地址
向导配置完成后,在CPU1程序中用sm0.5的一个秒脉冲赋值给v100.0,做一个心跳信号。
图2.心跳信号
在伙伴方CPU2和CPU3中监控V0.0,当通信建立后V0.0应为0\1不停切换,当某一个CPU中的V0.0一直为1或者一直为0时,表明该CPU与本地CPU1的通信中断。
方式二:通过Get/Put向导中的状态字判断
Get/Put向导创建的每一个操作都会有状态字。点击左侧项目树程序块---向导中NET_EXE,可以看到每个操作对应的状态字,本测试程序中CPU2的PUT对应的状态字为VB340,CPU3的PUT对应的状态字为VB380。
图3.状态字
在状态图表中监控VB340和VB380,格式选择二进制,状态字VB340和VB380的*6位(通信已经激活标志位)正常情况下是0 1不断变换,当某一个远程通信伙伴方线路断开后,该位会一直保持为1。
如何获取S7通信的错误代码
接着上文中“方式二”的测试,状态字的低4位为错误代码,通过判断错误代码来判断通信是否已经中断,这里需要特别注意,当通信伙伴线路断开时,本地CPU并没立马收到错误代码,需在RUN---STOP—RUN切换后才能收到错误代码。错误代码(错误代码5)只会存在一个扫描周期,所以需要用上升沿来捕捉错误代码,如下图所示。
图4.错误代码的读取
shtxjd.cn.b2b168.com/m/