西门子S7-300PLC通过PIW读从站数据
时间:2023-03-19来源:佚名
西门子S7-300plc和S7-200PLC(带EM277)通讯,S7-300PLC里读从站数据是通过PIW读出来的,程序里每个扫描周期都要读数据。PIW没有映像区,每次读数据都要通讯,如果数据量很大,会不会增加扫描周期? 答:1、程序里每个扫描周期都要读数据。PIW没有映像区,每次读数据都要通讯,如果数据量很大,会不会增加扫描周期? 不会有影响。 2、读从站数据是通过PIW读出来的,可以将其存入数据块中,这样应用起来较为方便,例如: 典型的循环语句编程: a. 将PIW128- PIW147,共20个字送入DB10中 在OB1: OPN DB 10 //打开DB 10 L P#128.0 //初始读指针 LAR1 L P#0.0 //初始写指针 LAR2 CALL FC 100 b. 将PIW256- PIW275,共20个字送入DB20中 OPN DB 20 //打开DB 20 L P#256.0 //初始读指针(标红色处可按实际应用的地址替代,例如10.0) LAR1 L P#0.0 //初始写指针(标红色处可按实际应用的地址替代,例如10.0) LAR2 CALL FC 100 c、建立一FC块: 在FC100: L 20 // 20个字的循环计数为初值 M001: T MB 10 //计数值 送入MB 10 L PIW [AR1,P#0.0] //按读指针指示的地址读数据 T DBW [AR2,P#0.0] //按写指针指示的地址写数据 AR1 P#2.0 //读指针指向下一数据地址 AR2 P#2.0 //写指针指向下一数据地址 L MB 10 //取循环计数值 LOOP M001 //循环计数值如为0则结束循环;如不为0减1后则转向标号为M001的语句,继续循环。 |