西門子NCU死機不啟動維修

循環(huán)跳轉(zhuǎn)LOOP允許程序循環(huán)的簡化編程。
LOOP將累加器1中的右側(cè)字譯碼為范圍在0到65535之間的16位無符號數(shù)。
執(zhí)行時,LOOP首先將累加器1的內(nèi)容減1,若此時值不為0,將跳轉(zhuǎn)到跳轉(zhuǎn)標號的位置去執(zhí)行程序;若在減1后此值為0,將不執(zhí)行跳轉(zhuǎn),而去執(zhí)行下一條語句。累加器1的值因此與待傳遞的程序循環(huán)的數(shù)值相符合。用戶須將此數(shù)值保存在一個循環(huán)計數(shù)器里,可使用任意一個數(shù)字地址作為循環(huán)計數(shù)器。循環(huán)跳轉(zhuǎn)簡略編程如下:
L Number;
Next:T Counter;
…
…
…
L Counter;
LOOP Next;
…
變量Number包含循環(huán)通道的數(shù)值。變量Counter包含待執(zhí)行的循環(huán)通道的數(shù)值。*循環(huán)時,Counter預先分配了循環(huán)通道的數(shù)值。程序循環(huán)結(jié)束時,LOOP語句會使Counter的內(nèi)容加載到累加器中并由LOOP語句減少。如果隨后累加器的內(nèi)容不為零,會跳轉(zhuǎn)到的跳轉(zhuǎn)標號處,在這里Next被執(zhí)行并且變量Counter被更新。循環(huán)跳轉(zhuǎn)不會改變狀態(tài)位。
跳轉(zhuǎn)分配器JL允許從塊內(nèi)多個特定位置跳轉(zhuǎn)到規(guī)定的(計算好的)程序段。
JL與一個JU跳轉(zhuǎn)功能列表配合來使用。這個列表緊跟在JL之后并且至多可以包含255項。JL處的跳轉(zhuǎn)標號指示出列表的末端(列表之后的*條語句)。
用戶可以依照下列簡略方法給跳轉(zhuǎn)分配器編程:
L Nnrnber_of_positions;
JL End;
JU MO;
JU Ml;
JU Mx;
End:……
例子中,變量“Number_of_position”加載一個數(shù)字到累加器1中。在它之后是帶有指向JU語句列表尾端標號的JL跳轉(zhuǎn)分配器。待執(zhí)行的跳轉(zhuǎn)的數(shù)目位于累加器1的右側(cè)字節(jié)。如果累加器1的內(nèi)容為0,則執(zhí)行*條跳轉(zhuǎn)語句;如果累加器1的內(nèi)容為1,則執(zhí)行第二條跳轉(zhuǎn)語句,依此類推。如果數(shù)目大于列表的長度,JL轉(zhuǎn)到列表的尾端(到后一個跳轉(zhuǎn)之后的語句)。
JL不受條件影響,不會改變狀態(tài)位。
在沒有間隙的列表中僅JU語句是允許的。在一般規(guī)則內(nèi),用戶可按照自己的意愿去跳轉(zhuǎn)標號名稱。
可以使用OV和OS狀態(tài)位來決定程序分支是否執(zhí)行。此檢測考察計算結(jié)果是否依舊在允許的數(shù)字范圍之內(nèi)。
1.如果溢出則跳轉(zhuǎn)
僅當OV狀態(tài)位被設(shè)置為“1”時才執(zhí)行跳轉(zhuǎn)功能JO。如一個運算完成后,數(shù)據(jù)超出了允許的數(shù)字范圍。下列功能將置位OV狀態(tài)位。
口算術(shù)功能
●數(shù)學功能
●補碼
●使用REAL數(shù)的比較功能
●INT/DINT到BCD和REAL到DINT的轉(zhuǎn)換功能
如果OV為“0”,JO將繼續(xù)執(zhí)行程序的下一條語句。
當多個計算一個接著一個執(zhí)行從而構(gòu)成計算鏈時,每次計算后必須給OV狀態(tài)位賦值,因為若下一個計算操作的結(jié)果在允許的數(shù)字范圍之內(nèi),OV會被復位。另外,需要檢測OS狀態(tài)位以檢測在計算鏈的結(jié)束時可能出現(xiàn)的數(shù)字范圍溢出。

2.如果存儲溢出則跳轉(zhuǎn)
僅當OS狀態(tài)位設(shè)置為“1”時才執(zhí)行跳轉(zhuǎn)功能JOS。它總是在數(shù)字范圍溢出將OV狀態(tài)位置位(見上)。相對于OV,OS在結(jié)果位于允許的數(shù)字范圍之內(nèi)時仍保持置位狀態(tài)。
下列功能會復位OS:
●塊訪問和塊結(jié)束
●若存儲溢出JOS則跳轉(zhuǎn)
如果OS為“0”,JOS會繼續(xù)執(zhí)行程序的下一條語句。
依靠RLO和BR狀態(tài)位的信號狀態(tài)來產(chǎn)生程序分支(如表16-1所示)。另外,檢測的同時可以將RLO存儲在BR狀態(tài)位中。
表16-1 RLO和BR跳轉(zhuǎn)功能
1.設(shè)置狀態(tài)位
無論條件滿足與否,利用RLO條件的跳轉(zhuǎn)功能將STA和RLO狀態(tài)位設(shè)置為“1”,并將OR和/FC設(shè)置為“0”。
這在使用這些跳轉(zhuǎn)功能時會引起下面的結(jié)果,即RLO總被設(shè)置為“1”。如果緊跟著這些跳轉(zhuǎn)功能的語句包含利用RLO條件的操作,則不發(fā)生跳轉(zhuǎn)時執(zhí)行這些語句。如果是檢測語句(如AI、OI等)并緊跟在這些跳轉(zhuǎn)功能之后,則它們將作為*檢測處理,即作為一個新的邏輯運算的開始。
無論條件滿足與否,利用二進制結(jié)果條件的跳轉(zhuǎn)功能將STA狀態(tài)位設(shè)置為“1”,并將OR和/FC狀態(tài)位設(shè)置為“0”。RLO和BR狀態(tài)位保持不變。這將引起以下可用結(jié)果:這些跳轉(zhuǎn)功能可以結(jié)束邏輯運算;在跳轉(zhuǎn)功能之后或在跳轉(zhuǎn)目標處開始一個新的邏輯運算。RLO可以保持不變或者用位于跳轉(zhuǎn)功能之后的存儲功能來賦值。
2.如果RLO為“1”則跳轉(zhuǎn)
在執(zhí)行JC跳轉(zhuǎn)功能時,僅在RLO為“1”時執(zhí)行。如果RLO為“0”,跳轉(zhuǎn)功能不執(zhí)行且將執(zhí)行程序的下一條語句。

3.如果RLO為“0”則跳轉(zhuǎn)
在執(zhí)行JCN跳轉(zhuǎn)功能時,僅在RLO為“0”時執(zhí)行。如果RLO為“1”,跳轉(zhuǎn)功能不執(zhí)行且將執(zhí)行程序的下一條語句。
4.如果RLO為“1”則跳轉(zhuǎn)并保存RLO
在執(zhí)行JCB跳轉(zhuǎn)功能時,僅在RLO為“1”時執(zhí)行。同時,JCB將二進制結(jié)果設(shè)置為“1”。如果RLO為“0”,跳轉(zhuǎn)功能不執(zhí)行且將執(zhí)行程序的下一條語句,JCB則將二進制結(jié)果設(shè)置為“0”(在每一種情況下,RLO均將傳送到二進制結(jié)果)。
5.如果RLO為“0”則跳轉(zhuǎn)并保存RLO
在執(zhí)行JNB跳轉(zhuǎn)功能時,僅在RLO為“0”時執(zhí)行。同時,JNB將二進制結(jié)果設(shè)置為“0”。如果RLO為“1”,跳轉(zhuǎn)功能不執(zhí)行且將執(zhí)行程序的下一條語句,JNB則將_二進制結(jié)果設(shè)置為“1”(在每一種情況下,RLO均將傳送到二進制結(jié)果)。
6.如果BR為“1”則跳轉(zhuǎn)
在執(zhí)行JBI跳轉(zhuǎn)功能時,僅在二進制結(jié)果為“1”時執(zhí)行。如果二進制結(jié)果為“0”,跳轉(zhuǎn)功能不執(zhí)行且將執(zhí)行程序的下一條語句。
7.如果BR為“0”則跳轉(zhuǎn)
在執(zhí)行JBIN跳轉(zhuǎn)功能時,僅在二進制結(jié)果為“0”時執(zhí)行。如果二進制結(jié)果為“1”,跳轉(zhuǎn)功能不執(zhí)行且將執(zhí)行程序的下一條語句。
JU跳轉(zhuǎn)功能是無條件執(zhí)行的。JU中斷程序的線性執(zhí)行,跳轉(zhuǎn)到跳轉(zhuǎn)標號指示的位置繼續(xù)執(zhí)行。
JU跳轉(zhuǎn)功能不會影響狀態(tài)位。如果檢測語句(如AI、OI等)直接位于跳轉(zhuǎn)功能和跳轉(zhuǎn)目標之前,都將作為單個的邏輯操作。

西門子NCU死機不啟動維修