解釋幾段程序
劉玉蓉
發(fā)布于2014-09-09 17:32
2
0
標(biāo)簽:
SET
SAVE
= L 4.1
L #STATUS
L W#16#0
<>I
L #STATUS
L W#16#8180
= L 4.2
<>I
A L 4.2
L #STATUS
L W#16#8181
= L 4.2
<>I
A L 4.2
O #ERROR
JCN A7d0
CLR
= #ERGEBNISS
JU A7d1
A7d0: SET
= #ERGEBNISS
A7d1: CLR
A L 4.1
SAVE
BE
以上是個(gè)程序
尤其是其中的L 4.1 4.2 是什么意思呢
佳答案
1、程序是從梯形圖轉(zhuǎn)變而來(lái)的。如果熟悉梯形圖可以轉(zhuǎn)回到梯形圖。
2、其中的L 4.1 4.2 是什么意思呢?
L是臨時(shí)(局部)變量區(qū),L變量只在本程序段中有效。有關(guān)局部變量:見(jiàn)
https://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_id=70354&cid=1029
或
https://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_id=66166&cid=1029
3、所帖的程序是一個(gè)比較程序:
SET // 將RLO 置位(=1)
SAVE //把 RLO 存入 BR 寄存器中
= L 4.1//通過(guò)上述指令,將臨時(shí)(局部)變量L 4.1置位
L #STATUS
L W#16#0
<>I
L #STATUS
L W#16#8180
= L 4.2//如果#STATUS不等于0,則L 4.2置位
<>I
A L 4.2
L #STATUS
L W#16#8181
= L 4.2//如果#STATUS不等于十六進(jìn)制的8180,則L 4.2置位
<>I
A L 4.2
O #ERROR
JCN A7d0//如果#STATUS不等于十六進(jìn)制的8181,并L 4.2置位或#ERROR置位,則繼續(xù)執(zhí)行下面的指令,否則跳轉(zhuǎn)到A7d0處。
CLR // 將RLO 清零(=0)
= #ERGEBNISS// 通過(guò)RLO指令,將 #ERGEBNISS清零(=0)
JU A7d1//無(wú)條件跳轉(zhuǎn)到A7d1
A7d0: SET // 將RLO 置位(=1)
= #ERGEBNISS/// 通過(guò)SET指令,將 #ERGEBNISS置位(=1)
A7d1: CLR // 將RLO 清零(=0)
A L 4.1//如果L 4.1為1,則RLO 置位;如果L 4.1為0,則RLO 清零。
SAVE ///把 RLO 存入 BR 寄存器中
BE //程序段結(jié)束