大家好!
如下图片S7-GET PUT 通信
一直以来对REQ的处理都是采用系统时钟脉冲或者自己采用定时器进行脉冲触发,这样就会由于种种原因,例如间隔比较短的发送(发送频率高资源占用多)在PC/PG与PLC建立连接时会导致通信卡死,那么为了合理的规划这个S7通信是不是不应该采用DONE/ERR作为条件触发REQ?类似于MODBUS 的轮询。
希望大家一起探讨一下。
当然也有人会说要速度快为什么不进行PNIO通信,这里只探讨S7不要建议与S7通信无关的,谢谢!!
功能块管脚说明:
CALL “GET” ,%DB1 //调用 GET,使用背景DB块:DB1;
REQ :=%M0.7 //系统时钟 2秒脉冲 ;
ID :=W#16#0100 //连接号,要与连接配置中一致,创建连接时的连接号,如图5.所示;
NDR :=%M2.0 //为1时,接收到新数据;
ERROR :=%M2.1 //为1时,有故障发生;
STATUS :=%MW4 //状态代码;
ADDR_1 :=P#DB1.DBX0.0 BYTE 10 //从通信伙伴数据区读取数据的地址;
RD_1 :=P#DB3.DBX0.0 BYTE 10 //本地接收数据地址;
https://www.ad.siemens.com.cn/productportal/prods/1500published/Comm/Comm_4.2/Comm_4.2.html