兌幸福
摘 要:PLC(程序邏輯控制器)采用循環(huán)掃描的方式執(zhí)行用戶程序,邏輯執(zhí)行狀態(tài)和數(shù)據(jù)運(yùn)行結(jié)果監(jiān)視,需借助斷點(diǎn)功能或其他工具對(duì)PLC的存儲(chǔ)器和寄存器等內(nèi)部存儲(chǔ)器進(jìn)行查詢。該文借助西門子編程軟件STEP7斷點(diǎn)功能,闡述如何在程序調(diào)試中設(shè)置斷點(diǎn),通過斷點(diǎn)操作,逐步執(zhí)行程序,觀察程序運(yùn)行時(shí)狀態(tài)字和累加器的數(shù)值改變,既可監(jiān)視程序的運(yùn)行情況,又可查看程序數(shù)據(jù)塊、背景數(shù)據(jù)塊、堆棧指針等數(shù)值的變化,通過實(shí)際的邏輯結(jié)果監(jiān)視和數(shù)據(jù)實(shí)時(shí)查詢,對(duì)PLC的運(yùn)行過程進(jìn)行分析與探索,揭示PLC的工作原理。
關(guān)鍵詞:斷點(diǎn)功能 PLC測(cè)試 循環(huán)處理 存儲(chǔ)器 寄存器
中圖分類號(hào):TP31 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2015)12(b)-0100-06
隨著科學(xué)技術(shù)的發(fā)展,以微處理器為基礎(chǔ)的工業(yè)用PLC(程序邏輯控制器),已經(jīng)廣泛應(yīng)用于各種機(jī)械設(shè)備及生產(chǎn)線過程的自動(dòng)化控制系統(tǒng)中,它功能強(qiáng)大、使用方便,成為當(dāng)代工業(yè)自動(dòng)化領(lǐng)域的主要技術(shù)支柱之一。目前各廠商推出的PLC產(chǎn)品,基本結(jié)構(gòu)相同,工作原理相似,隨著國際標(biāo)準(zhǔn)化編程語言IEC61131-3的推出,編程方式也趨于統(tǒng)一,但不同品牌又各有特點(diǎn),針對(duì)不同的應(yīng)用領(lǐng)域,開發(fā)出專用的功能模塊,對(duì)PLC性能進(jìn)行優(yōu)化;編程軟件的輔助功能也在進(jìn)行功能拓展,應(yīng)用于特殊的編程、測(cè)試、仿真等。
西門子公司編程軟件STEP7中的斷點(diǎn)調(diào)試功能,以其功能強(qiáng)大、操作簡(jiǎn)單、設(shè)置方便、界面友好等特點(diǎn),成為最好的探索PLC工作原理的工具之一,通過斷點(diǎn)調(diào)試功能結(jié)合PLC SIM仿真軟件或在線監(jiān)控PLC硬件運(yùn)行,可以分解程序運(yùn)行步驟,觀察累加器和狀態(tài)字寄存器、塊寄存器、輸入/輸出變量、位存儲(chǔ)器等內(nèi)部核心器件的運(yùn)行狀態(tài),了解PLC的工作過程。
1 PLC的運(yùn)行工作過程
PLC的程序分為操作系統(tǒng)和用戶程序,操作系統(tǒng)用來處理PLC的啟動(dòng)、刷新輸入/輸出過程映像區(qū)、調(diào)用用戶程序、處理中斷和錯(cuò)誤、管理存儲(chǔ)區(qū)和通訊等任務(wù)。PLC采用循環(huán)掃描方式執(zhí)行由若干條指令組成的用戶程序,指令在存貯器中順序排列。從第一條指令開始,逐條順序執(zhí)行,直至掃描到最后一條,其間還會(huì)執(zhí)行跳轉(zhuǎn)指令和塊調(diào)用指令,在執(zhí)行指令時(shí),從輸入/輸出過程映像區(qū)或其他存儲(chǔ)區(qū)讀入數(shù)據(jù),按指令執(zhí)行相應(yīng)邏輯運(yùn)算、算術(shù)運(yùn)算,運(yùn)算的結(jié)果寫入指定的存儲(chǔ)區(qū)域,因此與程序執(zhí)行相關(guān)的執(zhí)行器存儲(chǔ)區(qū)的內(nèi)容會(huì)隨著程序的執(zhí)行而變化,觀察和跟蹤這些核心器件內(nèi)數(shù)據(jù)的變化過程,可以實(shí)現(xiàn)了解PLC的運(yùn)行過程和工作原理的目的。
2 STEP7斷點(diǎn)測(cè)試功能
STEP7的斷點(diǎn)測(cè)試功能是在程序運(yùn)行過程中產(chǎn)生斷點(diǎn),該功能的初衷是調(diào)試程序,在設(shè)備運(yùn)行初期或出現(xiàn)故障時(shí),通過斷點(diǎn)操作,逐行在線掃描程序,同時(shí)觀察寄存器里狀態(tài)字的變化,累加器、存儲(chǔ)器中數(shù)據(jù)的運(yùn)算以及檢測(cè)程序的運(yùn)行結(jié)果,從而查找編程錯(cuò)誤或故障點(diǎn),最終解決問題。正是這樣逐步觀察程序運(yùn)行的過程,為探索PLC的運(yùn)行原理提供了技術(shù)手段。
2.1 斷點(diǎn)測(cè)試功能的內(nèi)容
在STEP7測(cè)試模式下,斷點(diǎn)的限制數(shù)目可以通過選項(xiàng)設(shè)置,使用斷點(diǎn)可以在用戶程序的指定點(diǎn)停止程序處理。當(dāng)PLC在程序中執(zhí)行到斷點(diǎn)時(shí),CPU會(huì)切換到STOP模式?;跀帱c(diǎn),可以逐步運(yùn)行程序處理,檢測(cè)每條語句執(zhí)行的結(jié)果,并通過窗口顯示PLC內(nèi)部寄存器的內(nèi)容、狀態(tài)和數(shù)值,如圖1所示。
2.2 斷點(diǎn)測(cè)試功能設(shè)置步驟
此例使用西門子的S7 PLC SIM仿真器進(jìn)行演示,使用真實(shí)PLC時(shí),要盡量隔離I/O信號(hào),如果必須在線調(diào)試程序,就要做好相關(guān)設(shè)備的防護(hù)措施,減少設(shè)備誤動(dòng)作造成的損害。注意:并非所有的PLC都可以使用斷點(diǎn)測(cè)試功能,測(cè)試前要查閱相關(guān)可編程控制器的文檔,確定PLC是否支持該功能。
2.2.1 設(shè)置斷點(diǎn)測(cè)試運(yùn)行模式
在西門子STEP7編程軟件中打開需要調(diào)試的程序,在編程窗口使用調(diào)試/操作……菜單命令,就會(huì)打開操作窗口,如圖2所示,可以在過程操作和測(cè)試操作之間選擇需要的操作模式。
兩種模式是有區(qū)別的,過程操作模式下,測(cè)試功能程序狀態(tài)被限定為要保證在掃描周期時(shí)間上處理的程序最少,這就意味著不允許任何子程序調(diào)用,也不能進(jìn)行HOLD測(cè)試和單步執(zhí)行程序。測(cè)試操作模式下,所有的測(cè)試功能都可用,且不受限制,PLC掃描周期時(shí)間會(huì)明顯增加,這是因?yàn)椋枰謩?dòng)控制程序的進(jìn)程,并且程序回路中的語句狀態(tài)在每個(gè)周期都被記錄。
2.2.2 設(shè)置程序狀態(tài)
通過離線/在線伙伴命令按鈕,可以切換PLC的離線/在線狀態(tài),只有PLC處于在線狀態(tài)時(shí),才能運(yùn)行斷點(diǎn)測(cè)試功能,此時(shí),頂部狀態(tài)欄會(huì)顯示為淺藍(lán)色,用來區(qū)分離線/在線狀態(tài),如圖3所示。
2.2.3 在程序中設(shè)置斷點(diǎn)
將PLC設(shè)置為在線狀態(tài)后,使用視圖>斷點(diǎn)欄命令可以調(diào)出斷點(diǎn)工具欄,按鈕功能如圖4所示。
將光標(biāo)移動(dòng)到需要測(cè)試或觀察的程序行前端,點(diǎn)擊設(shè)置/刪除斷點(diǎn)按鈕,即可在此處設(shè)置斷點(diǎn)測(cè)試的起點(diǎn),該程序行前端出現(xiàn)一個(gè)空心圓圈標(biāo)記,如圖5所示,再點(diǎn)擊斷點(diǎn)激活(開/關(guān)),斷點(diǎn)變?yōu)閷?shí)心圓圈標(biāo)記,同時(shí)彈出圖1所示的PLC寄存器內(nèi)容窗口。
此時(shí)要將PLC切換到RUN-P模式,然后點(diǎn)擊下一個(gè)語句按鈕,即可顯示一個(gè)箭頭,指向要運(yùn)行的程序,隨著按鈕的點(diǎn)擊,程序逐步開始執(zhí)行,執(zhí)行過程中的狀態(tài)和運(yùn)行數(shù)據(jù)都可以通過PLC寄存器內(nèi)容窗口觀察到,直至程序結(jié)束。注意:斷點(diǎn)測(cè)試只能在STL視圖模式下進(jìn)行。建議不要調(diào)用整個(gè)程序進(jìn)行調(diào)試,而是逐個(gè)調(diào)用功能塊,應(yīng)當(dāng)從調(diào)用子程序體系最深的嵌套層開始。
3 斷點(diǎn)測(cè)試實(shí)例
為了能夠全面了解斷點(diǎn)測(cè)試功能,在編寫的測(cè)試程序中盡量涉及PLC的典型應(yīng)用實(shí)例,包括邏輯判斷、數(shù)據(jù)運(yùn)算、子程序調(diào)用、數(shù)據(jù)塊調(diào)用、背景數(shù)據(jù)塊等,基本能夠滿足對(duì)PLC運(yùn)行和工作原理的探索與研究。
3.1 編寫測(cè)試程序
3.1.1 測(cè)試程序的功能
基于以上目的,編寫一個(gè)按鈕控制16盞燈的測(cè)試程序,當(dāng)按鈕按下2次后16盞燈全亮,當(dāng)按鈕按到第3次時(shí)16盞燈全滅,然后重新開始循環(huán),具體過程如下。
(1)在主程序OB1中滿足M0.0=1條件后,調(diào)用子程序功能塊FB1,背景數(shù)據(jù)塊為DB3。
(2)在子程序FB1功能塊中點(diǎn)擊按鈕I0.0,點(diǎn)擊次數(shù)記錄在全局?jǐn)?shù)據(jù)塊DB1的DB1.DBW0中。
(3)調(diào)用結(jié)束,回到主程序OB1。
(4)如果DB1.DBW0>=1(記錄到按鈕按下次數(shù)為1或以上),將DB2.DBW0賦值為1。
(5)DB1.DBW0和DB2.DBW0相加,計(jì)算結(jié)果送到MW100中。
(6)如果MW100>=3(即按鈕按下2次),PQW0控制下的16盞燈全亮。
(7)如果MW100>=4(即按鈕按下3次),PQW0控制下的16盞燈全滅,此時(shí)DB1.DBW0、DB2.DBW0、MW100復(fù)位為0,程序結(jié)束。
3.1.2 程序控制邏輯
程序邏輯如圖6所示。
滿足M0.0=1條件后,程序跳轉(zhuǎn)到功能FB1,完成按鈕計(jì)數(shù)后,轉(zhuǎn)回主程序,再對(duì)計(jì)數(shù)進(jìn)行判斷,滿足條件燈亮,否則燈滅。
3.1.3 編寫程序
首先編寫子程序FB1功能塊,在變量聲明表中設(shè)置內(nèi)部變量,“a”為布爾型數(shù)據(jù),“zhongjian”為整數(shù)型數(shù)據(jù)。
在FB1中編寫程序如下:
程序段1
A I 0.0
FP #a
CU C 1
BLD 101
A M 0.3
L C#1
S C 1
A M 0.4
R C 1
L C 1
T #zhongjian
NOP 0
NOP 0
程序段2
L #zhongjian
T DB1.DBW 0
NOP 0
在OB1中編寫主程序,在程序段1中有條件調(diào)用功能塊FB1,會(huì)提示自動(dòng)生成背景數(shù)據(jù)塊,這里指定的背景數(shù)據(jù)塊為DB3。
程序段1
A M 0.0
JNB _001
CALL FB 1 , DB3
a :=M0.1
zhongjian:=DB1.DBW2
_001: NOP 0
程序段2
A(
L DB1.DBW 0
L 1
>=I
)
JNB _002
L 1
T DB2.DBW 0
_002: NOP 0
程序段3
L DB1.DBW 0
L DB2.DBW 0
+I
T MW 100
NOP 0
程序段4
L MW 100
L 4
>=I
= M 0.4
程序段5
A M 0.4
= L 20.0
A L 20.0
JNB _003
L 0
T MW 100
_003: NOP 0
A L 20.0
JNB _004
L 0
T DB1.DBW 2
_004: NOP 0
A L 20.0
JNB _005
L 0
T DB2.DBW 0
_005: NOP 0
程序段6
L MW 100
L 3
>=I
JN noze
L DW#16#FFFF
T PQW 0
JU next
noze: L 0
T PQW 0
next: NOP 0
3.2 測(cè)試程序下載和運(yùn)行
保存編寫完成的程序,STEP7會(huì)對(duì)編寫的程序進(jìn)行檢測(cè),如果發(fā)現(xiàn)問題會(huì)給出錯(cuò)誤提示,幫助編程人員修改程序,然后下載到PLC的裝載存儲(chǔ)器中,工作時(shí),由CPU調(diào)度指揮,將程序和系統(tǒng)存儲(chǔ)器中的數(shù)據(jù)放在工作存儲(chǔ)器中運(yùn)行,再將結(jié)果送回各個(gè)系統(tǒng)存儲(chǔ)器,具體功能如下。
3.2.1 裝載存儲(chǔ)器
編寫的程序和系統(tǒng)數(shù)據(jù)(組態(tài)、連接和模塊參數(shù))被下載到CPU的裝載存儲(chǔ)器內(nèi)。程序運(yùn)行時(shí),CPU把程序中的可執(zhí)行部分復(fù)制到工作存儲(chǔ)器內(nèi)。隨PLC的型號(hào)不同,裝載存儲(chǔ)器可能是RAM和FEPROM等。
3.2.2 工作存儲(chǔ)器
集成高速存取的RAM存儲(chǔ)器,用于存儲(chǔ)CPU運(yùn)行時(shí)的用戶程序和數(shù)據(jù)。在CPU斷電或復(fù)位操作時(shí),RAM中的程序會(huì)被清除。
3.2.3 系統(tǒng)存儲(chǔ)器
系統(tǒng)存儲(chǔ)器是CPU為用戶程序提供的存儲(chǔ)器組件,被劃分為若干個(gè)地址區(qū)域,用于存放用戶程序的操作數(shù)據(jù),如過程映像輸入/輸出、位存儲(chǔ)器、定時(shí)器、計(jì)數(shù)器、數(shù)據(jù)塊與背景數(shù)據(jù)塊、塊堆棧、中斷堆棧和診斷緩沖區(qū)等,該區(qū)域還提供臨時(shí)存儲(chǔ)器,可以存放程序塊的臨時(shí)數(shù)據(jù),當(dāng)用戶生成塊時(shí),可以聲明臨時(shí)變量,該區(qū)域只在執(zhí)行該塊時(shí)有效,執(zhí)行完后被覆蓋,該例在FB1功能塊中聲明的布爾量“a”和整數(shù)“zhongjian”即為臨時(shí)變量。
如圖7所示:掃描循環(huán)開始時(shí),CPU讀取過程映像輸入/輸出區(qū)域里的I0.0(按鈕)的輸入信號(hào),在計(jì)數(shù)器存取區(qū)域記錄FB1功能塊中點(diǎn)擊按鈕的次數(shù),并存儲(chǔ)在臨時(shí)存儲(chǔ)器里,背景數(shù)據(jù)塊DB3與之相關(guān)聯(lián),然后送到共享數(shù)據(jù)塊DB1中的DB1.DBW0,同時(shí)使共享數(shù)據(jù)塊DB2中的DB2.DBW0等于1,DB1.DBW0與DB2.DBW0相加,結(jié)果送到位存儲(chǔ)器MW100中,通過對(duì)MW100的判斷,如果大于等于3,將FF賦值給過程映像輸入/輸出區(qū)域PQW0,控制16盞燈全部亮起,如果大于等于4,則將0賦值給PQW0,燈全部滅。
4 斷點(diǎn)測(cè)試過程
CPU中的狀態(tài)字寄存器和累加器寄存器擔(dān)負(fù)著PLC的程序控制和數(shù)值運(yùn)行,通過斷點(diǎn)測(cè)試可以觀察到狀態(tài)字的狀態(tài)變化與控制程序運(yùn)行的對(duì)應(yīng)關(guān)系,以及累加器寄存器中數(shù)值的計(jì)算過程。
4.1 運(yùn)行測(cè)試程序
在OB1的程序段1中設(shè)置斷點(diǎn),在線開始測(cè)試,該行程序是一個(gè)條件調(diào)用,當(dāng)M0.0=0時(shí),程序向下進(jìn)行,當(dāng)M0.0=1時(shí),調(diào)用FB1功能塊。
當(dāng)M0.0=0時(shí),狀態(tài)字寄存器的/FC=0,表示一行程序的開始,STA=1,與命令A(yù)相對(duì)應(yīng),隨著程序執(zhí)行到第二行,/FC=1,表示程序正在執(zhí)行中,繼續(xù)執(zhí)行時(shí),由于沒有滿足調(diào)用條件,程序沒有執(zhí)行調(diào)用FB1功能塊,而是直接跳過,進(jìn)入下一段程序。
當(dāng)M0.0=1時(shí),程序執(zhí)行到第二行,狀態(tài)字寄存器/FC=1、STA=1、ROL=1,狀態(tài)為存儲(chǔ)的是尋址位的狀態(tài),邏輯位為1,表示能流可以到達(dá)該運(yùn)算處(滿足條件),可以跳轉(zhuǎn),兩種條件下狀態(tài)字寄存器對(duì)比如圖8所示。
程序執(zhí)行到第三行時(shí),狀態(tài)字寄存器/FC=1、STA=1、ROL=1,表示程序重新開始,因此,一行程序的開始并不是以段落和行來劃分的,而是由狀態(tài)字根據(jù)程序執(zhí)行的狀態(tài),結(jié)合狀態(tài)位、邏輯位的結(jié)果來決定的。此時(shí)要點(diǎn)擊“執(zhí)行調(diào)用”按鈕,程序執(zhí)行調(diào)用,自動(dòng)在編程窗口打開FB1程序塊,箭頭指示到程序段1的第一行,此時(shí)在PLC寄存器內(nèi)容中可以看到,背景數(shù)據(jù)塊為DB3。
在FB1中,當(dāng)I0.0=0時(shí),/FC=1、STA=0、BR=1、ROL=0,程序執(zhí)行到此處時(shí),邏輯結(jié)果為0;當(dāng)I0.0=1時(shí), /FC=1、STA=1、BR=1、ROL=1,說明程序執(zhí)行到該行時(shí),對(duì)I0.0的信號(hào)做出狀態(tài)和邏輯判斷,邏輯結(jié)果為1,在隨后執(zhí)行的程序中計(jì)數(shù)器值為1,記錄到按鈕的點(diǎn)擊次數(shù),其余程序與此類同,不再分析。
4.2 狀態(tài)字寄存器
通過上面的實(shí)例,可以看出狀態(tài)字是一個(gè)16位的寄存器(高7位未用),用于存儲(chǔ)CPU執(zhí)行指令的狀態(tài)。狀態(tài)字中的某些位用于決定指令是否執(zhí)行和以什么樣的方式執(zhí)行,此時(shí),狀態(tài)字中的變化為了解程序的運(yùn)行提供了參考,指示程序運(yùn)行的情況,而且,位邏輯指令和字邏輯指令還可以訪問和檢測(cè)狀態(tài)字,將狀態(tài)位信號(hào)直接集成到程序中,控制程序執(zhí)行的流程。
狀態(tài)字的每個(gè)位都與程序運(yùn)行相關(guān),如圖9所示。
4.2.1 /FC:首位檢測(cè)位
第0位稱為首次檢測(cè)位,F(xiàn)C前面的斜杠表示對(duì)FC取反,用于判斷一個(gè)邏輯串(一系列的邏輯運(yùn)算指令)的起止。 /FC為0,表明一個(gè)新邏輯串的開始,邏輯串指令執(zhí)行過程中/FC為1,邏輯串指令結(jié)束時(shí),/FC位清零。
4.2.2 RLO:邏輯運(yùn)算結(jié)果位
第1位為RLO,位稱為邏輯運(yùn)算結(jié)果(Result of Logic Operation)。該位用來存儲(chǔ)執(zhí)行位邏輯指令或比較指令的結(jié)果。RLO的狀態(tài)為1,表示有能流流過運(yùn)算點(diǎn)處;為0則表示無能流流過該點(diǎn)??梢杂肦LO觸發(fā)跳轉(zhuǎn)指令。
4.2.3 STAT:狀態(tài)位
第2位為狀態(tài)位,用以保存被尋址位的值。狀態(tài)位不能用指令檢測(cè),它只是在程序測(cè)試中被CPU解釋并使用。如果一條指令是對(duì)存儲(chǔ)區(qū)操作的位邏輯指令,則無論是對(duì)該位的讀或?qū)懖僮?,STA總是與該位的值取得一致;對(duì)不訪問存儲(chǔ)區(qū)的位邏輯指令來說,STA位沒有意義,此時(shí)它總被置為1。
4.2.4 BR:二進(jìn)制結(jié)果位
第8位為二進(jìn)制結(jié)果位,它將字處理程序與位處理聯(lián)系起來,在一段既有位操作又有字操作的程序中,用于表示字邏輯是否正確。如果字邏輯指令或者功能、功能塊出現(xiàn)錯(cuò)誤,把BR置為0,能流中斷,下條指令不被執(zhí)行。字邏輯指令或者功能、功能塊被正確執(zhí)行后,使BR位為1,能流就可以傳遞到下條指令。
其余的OR、OV、OS、CC0、CC1位也與指令的邏輯操作和字運(yùn)算等相關(guān)聯(lián),都可以通過邏輯位來訪問,作為狀態(tài)位常開/常閉觸點(diǎn)用于編程。
4.3 程序運(yùn)算測(cè)試
在FB1功能塊將記錄的按鈕動(dòng)作次數(shù)送入DB1.DBW 0中(為了更清楚地分析數(shù)據(jù),假設(shè)這里已經(jīng)記錄了兩次,即DB1.DBW 0=2),并返回OB1,運(yùn)行到到程序段3 L DB1.DBW 0時(shí),先將DB1.DBW 0中的數(shù)值2內(nèi)容裝入ACCU1(全局?jǐn)?shù)據(jù)塊為DB1),再執(zhí)行L DB2.DBW 0,將數(shù)值1裝入ACCU1(全局?jǐn)?shù)據(jù)塊為DB2),ACCU1原來的2移動(dòng)到ACCU2中,執(zhí)行整數(shù)相加命令后,結(jié)果送入ACCU1,此時(shí)ACCU1=3,ACCU執(zhí)行前后對(duì)比如圖10所示。
4.4 CPU的累加器
從上面的測(cè)試可以看出,累加器是CPU中的專用寄存器。S7_300有兩個(gè)累加器,S7_400有4個(gè)累加器,數(shù)據(jù)的傳送與變換一般通過累加器進(jìn)行,而不是在存儲(chǔ)區(qū)進(jìn)行,還可以把操作數(shù)送入累加器,在累加器中進(jìn)行運(yùn)算和處理,處理后的運(yùn)算結(jié)果保存在累加器1中,并可傳送到存儲(chǔ)區(qū)。數(shù)據(jù)運(yùn)行原理如圖11所示。
5 結(jié)語
通過西門子STEP7斷點(diǎn)功能測(cè)試,為觀察PLC程序運(yùn)行找到了一種技術(shù)途徑。編輯完成的程序下載到裝載存儲(chǔ)器,再將程序和系統(tǒng)存儲(chǔ)器中的數(shù)據(jù)調(diào)入工作存儲(chǔ)器中運(yùn)行,由CPU狀態(tài)寄存器里的控制字控制執(zhí)行程序,由累加器完成數(shù)據(jù)運(yùn)算和數(shù)據(jù)傳遞,使人們對(duì)PLC的工作原理有了更深入的了解。
參考文獻(xiàn)
[1]廖常初.S7-300/400PLC應(yīng)用技術(shù)[M].北京:機(jī)械工業(yè)出版社,2008.
[2]王安兵.什么是狀態(tài)字?狀態(tài)字的作用[J/OL].百度文庫:http://wenku.baidu.com/link?url=F-IF3lCjaiR80vvTiuLIaJgUvs0YepwAJls-a8ZqvID1Hub0m1g9MuAgDcFvUEXaV9imLPyjNIi-E4-oh1PfWNMy9dsdQPnE0Ycr28JTpkS.
[3]劉玉蓉.西門子狀態(tài)字九個(gè)位的含義[J/OL].技成文章:http://www.diangon.com/wenku/PLC/ximenzi/201308/00004968.html.