STL300
劉玉蓉
發(fā)布于2014-12-12 17:22
512
0
標(biāo)簽:
如圖,SET 和 SAVE 主要是這兩個(gè)求講解清楚,還有就是STL中的累加器到底是什么?
佳答案
1、轉(zhuǎn)帖:
A(
L "MT510".Powder1
BTI
T #temp1
SET
SAVE
CLR
A BR
)
JNB _005
L 9
T #temp10
_005: NOP 0
上面的那段代碼是由梯形圖轉(zhuǎn)換而來(lái)的,現(xiàn)有如下問題向各位請(qǐng)教:
上段中的SET、SAVE及CLR用途何在?
回答:
首先弄清BR位:狀態(tài)字的第8位稱為二進(jìn)制結(jié)果位。它將字處理程序與位處理聯(lián)系起來(lái),在一段既有位操作又有字操作的程序中,用于表示字邏輯是否正確。將BR位加入程序后,無(wú)論字操作結(jié)果如何,都不會(huì)造成二進(jìn)制邏輯鏈中斷。
a、. 因?yàn)樯厦娴哪嵌未a是由梯形圖轉(zhuǎn)換而來(lái)的。出現(xiàn)了“SET、SAVE及CLR”。就此而論,在做BCD-I轉(zhuǎn)換并存于temp1后,SET與SAVE兩指令。SET即將狀態(tài)字RLO置位;SAVE將RLO保存到狀態(tài)字的BR位。此時(shí)表示功能被正確執(zhí)行,即BR位為1.
c、. 在一個(gè)NetWork中串聯(lián)執(zhí)行多個(gè)指令或并聯(lián)執(zhí)行多個(gè)指令時(shí),該如何處理?
一般不要顧及用SAVE指令保存RLO。在下面的情況可用:
在一個(gè)邏輯塊中需檢另一查邏輯塊的BR位。
例如:在用戶編寫的FB/FC程序中,應(yīng)該對(duì)BR位進(jìn)行管理,功能塊正確執(zhí)行后,使BR位為1,否則使其為0。使用SAVE指令將RLO存入BR中,從而達(dá)到管理BR位目的。
2、累加器到底是什么?轉(zhuǎn)帖一個(gè)典型的問題:
問:西門子PLC累加器的具體含義和作用是什么? br />答:在西門子S7-300/400PLC的存儲(chǔ)區(qū)中,除了3個(gè)基本存儲(chǔ)區(qū)(系統(tǒng)存儲(chǔ)區(qū)、裝載存儲(chǔ)區(qū)和工作存儲(chǔ)區(qū))外,在PLC中還有外設(shè)I/O存儲(chǔ)區(qū)、累加器等。所以累加器(32位)為PLC的存儲(chǔ)區(qū)之一。
累加器(32位)用于處理字節(jié)、字或雙字的寄存器。S7-300有兩個(gè)累加器(ACCU1和ACCU2),S7-400有四個(gè)累加器(ACCU1--ACCU4)。可以把操作數(shù)送入累加器,并在累加器中進(jìn)行運(yùn)算和處理,保存在ACCU1中的運(yùn)算可以傳送到存儲(chǔ)區(qū)。處理8位或16位數(shù)據(jù)時(shí),數(shù)據(jù)放在累加器的低端(右對(duì)齊)。舉例如下:
OPNDB1//打開數(shù)據(jù)塊DB1,作為共享數(shù)據(jù)塊
LDBW2//將DB1中的數(shù)據(jù)字DBW2(16位)裝入累加器1(ACCU1)
TW0//將累加器1低字中的內(nèi)容傳送到存儲(chǔ)字MW0
TDBW4//將累加器1中低字中的內(nèi)容傳送到DB1的數(shù)據(jù)字DBW4(16位)
又如:
LMB10//將位存儲(chǔ)區(qū)字節(jié)MB1O裝載到累加器1中;
LMB11//將MB11裝載到累加器1中,MB10自動(dòng)進(jìn)入累加器2中;
TDBB100//將累加器1值的值(MB11)傳送到DBB100