s7300語句表程序
鄭志武
發(fā)布于2012-12-18 17:51
6
0
標簽:
set
save
=l0.1
l#in1
negr
l#in2
tak
<=
jcm001
不知道set,save,l0.1,tak為什么這么用,經??吹竭@樣用,但不理解什么意思!只看明白in1<=in2則跳轉!開始的前面句子不知道有什么用!望大俠們能具體講解下!不勝感激!
問題補充:
set
save
=l0.1
這句的意思是不是局部堆棧l0.1強制為1保存到br位!我感覺這句好像沒什么用啊,直接用下面比較那句好了?。∏蠼猓?!
佳答案
1、set命令:使用rlo置位(set)指令,可以將rlo的信號狀態(tài)置為“1”。
2、save命令:使用save指令,可以將rlo存入br位。
3、tak:累加器1與累加器2進行互換
4、有關rlo的信號狀態(tài):
邏輯運算結果:狀態(tài)字的第1位為rlo位(rlo=“邏輯運算結果”),在二進制邏輯運算中用作暫時存儲位。比如,一串邏輯指令中的某個指令檢查觸點的信號狀態(tài),并根據(jù)布爾邏輯運算規(guī)則將檢查的結果(狀態(tài)位)與rlo位進行邏輯門運算,然后邏輯運算結果又存在rlo位中。
5、有關程序:為了將"db_f_show"變量清零,事先將rlo的信號狀態(tài)置為“1”。
set//rlo的信號狀態(tài)置為“1”。
r"db_f_show"//如果rlo=1,則將"db_f_show"變量清零。
7、negr將浮點數(shù)(32位,ieeefp)取反;結果保存到累加器1中。
lz的問題補充:
是stl指令的監(jiān)控通過cpu內部寄存器中的狀態(tài)字實現(xiàn),br位于該狀態(tài)字的第八位,而rlo位于位。
br的作用及含義如下:
br是二進制結果位,解釋字邏輯的結果。另一方面,在編寫函數(shù)或函數(shù)塊時,如果沒有將rlo位存儲到br中,使用lad調用時,不能激活函數(shù)輸出“eno”(不導通狀態(tài)),例如程序如下圖:
||———————|
||fc1|
|————|eneno|————————
|||
||————————|
如果沒將rlo位存入到br中,當調用用戶編寫的函數(shù)fc1時,函數(shù)執(zhí)行,但eno沒有輸出,能流沒導通。在函數(shù)的結尾,簡單使用save指令可以顯示eno的狀態(tài)。
狀態(tài)字中的br信號可以在程序中使用指令進行操作,如調用set、clr指令直接對rlo位進行操作。狀態(tài)字是調試stl程序不可缺少的工具。
這樣,你就能明白,你所列出的程序為什么要這樣寫了。
程序開頭
set//強行將rlo置位為"1”
save//將rlo位存儲到br
=l0.1//l0.1為局部臨時變量,在這里沒有特別意義,通過該指令使當前rlo位不影響下一語句。
程序本體。。。
程序結尾
clr//強行將rlo復位為"0"
al0.1//與l0.1進行與操作,rlo結果仍為"0"
save//將br位復位清0
也就是說有了這程序開頭和結尾,該程序中l(wèi)ad調用任何用戶函數(shù)fc或fb時,保證能流導通。