300PLC和200PLC(带EM277)通讯,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的语句,继续循环。
提问者对于答案的评价:
谢谢!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc249009.html