西門子s7-300plc和s7-200plc(帶em277)通訊,s7-300plc里讀從站數(shù)據(jù)是通過piw讀出來的,程序里每個掃描周期都要讀數(shù)據(jù)。piw沒有映像區(qū),每次讀數(shù)據(jù)都要通訊,如果數(shù)據(jù)量很大,會不會增加掃描周期?
答:1、程序里每個掃描周期都要讀數(shù)據(jù)。piw沒有映像區(qū),每次讀數(shù)據(jù)都要通訊,如果數(shù)據(jù)量很大,會不會增加掃描周期?
不會有影響。
2、讀從站數(shù)據(jù)是通過piw讀出來的,可以將其存入數(shù)據(jù)塊中,這樣應用起來較為方便,例如:
典型的循環(huán)語句編程:
a.將piw128-piw147,共20個字送入db10中
在ob1:
opndb10//打開db10
lp#128.0//初始讀指針
lar1
lp#0.0//初始寫指針
lar2
callfc100
b.將piw256-piw275,共20個字送入db20中
opndb20//打開db20
lp#256.0//初始讀指針(標紅色處可按實際應用的地址替代,例如10.0)
lar1
lp#0.0//初始寫指針(標紅色處可按實際應用的地址替代,例如10.0)
lar2
callfc100
c、建立一fc塊:
在fc100:
l20//20個字的循環(huán)計數(shù)為初值
m001:tmb10//計數(shù)值送入mb10
lpiw[ar1,p#0.0]//按讀指針指示的地址讀數(shù)據(jù)
tdbw[ar2,p#0.0]//按寫指針指示的地址寫數(shù)據(jù)
+ar1p#2.0//讀指針指向下一數(shù)據(jù)地址
+ar2p#2.0//寫指針指向下一數(shù)據(jù)地址
lmb10//取循環(huán)計數(shù)值
loopm001//循環(huán)計數(shù)值如為0則結束循環(huán);如不為0減1后則轉向標號為m001的語句,繼續(xù)循環(huán)。