高 琛,陳文薌
(廈門大學 物理與機電工程學院,福建 廈門 361005)
可編程控制器(Programmable logic Controller,PLC)是為工業控制應用而設計制造的,是一項實用性很強的成熟技術,然而,PLC也有一些不足,如:生產商之間的產品不兼容,造成難以構建開放的硬件體系結構;各廠商的編程方法差別很大,技術專有性較強,開發人員須專業培訓才能掌握某種產品的編程方法[1]。實際生產中常碰到這樣的情況:1)不需要PLC的全部功能,同時要求邏輯控制器的成本較低,這時若采用現成的PLC很難實現低成本的要求;2)要求配置控制器的輸入和輸出關系比較簡單,普通的操作人員就可以就進行輸入和輸出關系的配置。在碰到這類情況時,如果能有一種新型的邏輯控制能具備結構簡單,不需要復雜編程就能工作的話,傳統PLC有各自的編程方法,有其技術專有性,普通的操作人員比較難掌握,所以傳統的PLC難以到達要求。
本文以工控領域的一些低成本、分布式、易操作應用場合的需求為基礎,研究一種基于邏輯分析的分布式PLC實現方案。通過對工業設備信息流數學模型的分析,本系統采用邏輯表達式解析算法實現了PLC[2]的可編程邏輯功能;采用CAN總線拓展了網絡功能,實現分布式結構;采用向導式界面,增強其易操作性;通過強化軟件功能,裁剪硬件,降低成本以及系統的復雜性。控制器的開關量輸入輸出配置簡單方便,不需要掌握梯形圖等編程語言,只需了解輸入輸出的邏輯關系,即可進行相關的配置。
一個控制系統可以看成由若干個節點通過總線連接形成的,每一個節點帶有若干個輸入和若干個輸出,圖1表示了分布式PLC基本拓撲圖。

圖1 分布式PLC基本拓撲圖Fig.1 Basic topology of distributed PLC
圖中編程機是作為編程用的,編程結束后可脫離系統。假設任意一個節點的任意一個輸出都能響應任意一個節點的任意一個輸入,則這些輸出可表達為一個邏輯關系式:
Ujk=fjk(IN11,IN12, … IN1m,IN21,IN22, … ,IN2m, … ,INn1,INn2,INnm)
對于任意一個節點,只要能夠完成對該節點輸出的邏輯關系式的解析,就能完成他的編程。這樣,在設計一個實用的控制系統時,所要做的就是對每一節點的每一個輸出的邏輯解析式進行解析,我們稱這個邏輯解析程序為該輸出點的驅動程序。
為了實現這個思想,節點可按圖2設計。

圖2 節點設計框圖Fig.2 Diagram of node design
如圖,節點的工作任務可分為3大塊:
1)本節點輸入采集,并把采集到的數據打包后通過CAN通訊總線廣播到系統的其它節點。
2)CAN通訊管理[3-4],按照一定的節拍將本節點的輸入數據廣播道CAN總線,接收其它節點廣播的數據,定期刷新輸入列表。
3)根據輸入列表進行輸出邏輯解析,解析結構經由驅動電路輸出。
工業設備信息流模型如圖3所示。

圖3 工業設備信息流Fig.3 Information flow of industrial equipment
工業設備有各種形式的輸入和輸出,最典型的就是開關量的輸入和輸出,我們把輸入抽象成INi,輸出抽象成OUTi,輸入和輸出之間必然有某種函數關系。
如圖4所示,以某機床為例:此機床主軸由一臺籠型電動機帶動,潤滑油泵由另一臺電動機帶動。主軸需要在總開關按下并且油泵開動后才能開動;油泵需要在總開關按下后才能開動。邏輯表示為:
主軸電機=總開關+主軸開關+油泵開關;
油泵開關=總開關+油泵開關。

圖4 主軸控制器示意圖Fig.4 Schematic diagram of spindle controller
若將主軸電機定義為y1,潤滑油泵電機定義為 y2,總開關定義為x1,主軸開關定義為x2,潤滑油泵開關定義為x3,則:根據以上分析,任何一個輸出yi都是輸入xi的函數,即


擴展到多個設備聯網的系統,此時每個設備都有一組輸入和一組輸出,則所有輸入構成一個輸入矩陣X,所有輸出構成一個輸出矩陣Y,此時的系統數學模型變成如圖5結構。

圖5 系統數學模型Fig.5 Mathematical model of system
即:

假設有m個設備,每個設備有n個輸入,n個輸出,則展開變成:

分布式PLC系統在運行過程中的主要功能是完成自診斷、輸入處理、執行解析程序和輸出處理等工作,實現最終的控制功能。運行過程中,節點間需要保持CAN通信的正常,所以需要進行自診斷判斷CAN通信是否正常,如果通信出現異常則停止系統的運行,并發出警報。節點掃描開關量輸入的狀態,并把采集到的數據打包后通過CAN通訊總線廣播到系統的其它節點。為減少CAN總線的通信量,節點只有在檢測到開關量的輸入狀態發生變化時才向其他節點發送新的開關量輸入的狀態。當輸入狀態發生變化時,節點根據新的輸入列表進行邏輯解析,更新輸出狀態。
系統的運行流程如圖6所示。

圖6 運行流程圖Fig.6 Flow chart of operation
系統的運行流程包括初始化、自診斷、輸入采樣、執行解析程序和輸出更新等部分。
1)初始化 初始化的主要功能是初始化中斷系統、定時器和IO系統等,在內存中規劃出程序存儲區和數據存儲區,設定好正確的運行環境,為運行操作奠定基礎。
2)自診斷 自診斷的功能是節點之間的CAN通信是否正常。節點按順序向CAN總線廣播帶有本節點地址的標識幀。如果每個節點收到了全部其他節點的標識幀,就說明系統的通信正常。否則,說明CAN通信出現異常,系統就會發出警報,同時停止運行系統。
3)輸入采樣 輸入采樣的功能是采集開關量的輸入狀態,并與前一次采樣結果進行比較,如果輸入狀態發生變化,則將新的輸入狀態打包后通過CAN通訊總線廣播到系統的其它節點。
4)執行解析程序 解析程序其實就是根據控制需要所設置的開關量輸入輸出邏輯關系。當節點收到新的輸入狀態時,就表示出狀態需要更新。節點就會調用解析程序函數,根據新的輸入狀態計算輸出要求,然后按照新的輸出要求更新輸出狀態。
5)輸出更新 當解析程序執行完后,節點會根據執行結果更新輸出狀態,然后通過隔離電路,向外輸出24 V控制信號,從而驅動外部設備完成相應的控制功能。
輸入采集的功能是采集I/O端口的輸入狀態,采集的是開關量信號,如按鈕、轉換開關、行程開關、繼電器觸點等開關量的輸入信號。在節點的存儲器內開辟了I/O映像存儲區,用于存放I/O信號的狀態,分別稱為輸入映像表和輸出映像表。I/O映像區的大小由PLC的系統程序確定,對于系統的每一個輸入點總有一個輸入映像表的某一位與之相對應,對于系統的每一個輸出點也都有輸出映像表的某一位與之相對應。在輸入采集階段,節點將采集到的輸入信號狀態存放在輸入映像表對應的位上,經過邏輯解析之后將,運算結果存放到輸出映像表對應的位上。
I/O映像區的建立使PLC工作時只和存儲內有關地址單元內所存的狀態數據發生關系,而系統輸出也只是給內存某一地址單元設定一個狀態數據。這樣加快了程序執行速度,而且使控制系統與外界隔開,提高了系統的抗干擾能力。
輸入采集按一定的周期循環采集I/O端口的輸入狀態,并把采集到的數據打包后通過CAN通訊總線廣播到系統的其它節點。為了減少CAN總線的通信量,節點只有在檢測到輸入狀態發生變化時才將新的輸入狀態數據打包,通過CAN總線廣播給其他節點,通知其他節點I/O輸入狀態有發生變化,要進行輸入映像表的更新。
表達式有3種表示形式:前序式、中序式和后序式。人們已經習慣了的表達式是中序式,即運算符放在兩個操作數之間,用戶進行用戶程序編程時所用邏輯表達式就是中序式[5]。
但對于計算機而言,中序式并不適合于求值計算,所以在編譯系統中往往將中序式轉化為前序式或后序式,然后對轉化后的前序式或后序式進行求值。本文是將中序的邏輯表達式轉化為后序式,然后將后序式進行存儲。在執行用戶程序時,根據開關量輸入狀態,對后序式進行求值,得出開關量輸出狀態。
中序式轉化為后序式[6-7]是基于堆棧進行的。轉化過程需要用到一個工作棧OPERATOR,用來存放操作符。和一個數組RESULT,用來存放轉化結果。中序式轉化為后序式的算法是:
1)創建并初始化工作棧和數組:OPERATOR和RESULT;
2)從左到右逐個字符的讀入中序表達式;
3)如果字符是數字,將數字字符存到RESULT中;
4)如果是“(”,直接存放到 OPERATOR 中;
5)如果是“)”,在遇到“(”之前,循環彈出 OPERATOR 中的運算符,并存放到RESULT中;
6)如果是運算符,循環將OPERATOR中的運算符彈出,直到該運算符比OPERATOR棧頂的運算符優先等級高或OPERATOR為空時,將該運算符存入OPERATOR中;
7)如果中序表達未掃描完成,則跳到3)繼續執行;
8)如果中序表達掃描完成,OPERATOR中還有運算符,則依次將運算符彈出,存入RESULT中,直到OPERATOR為空。此時,中序表達式就轉化為后序表達式。
如表1所示的就是將中序邏輯表達式 (1&2|3)&4轉化為后續表達式的過程。

表1 中序式轉后序式實例Tab.1 Instance of infix expression into postfix expression
中序表達式轉化為后序表達式后,將后序表達式進行存儲。在執行用戶程序時,對相應的后序式進行求值,即可得出開關量輸出狀態。對后序表達式求值只需要一個運算數棧OPERAND,后序表達式求值的算法是:
1)創建并初始化運算數棧OPERAND;
2)使用循環從左往右逐個掃描后序表達式;
3)如果是運算數,則存入到OPERAND中;
4)如果是運算符,則從OPERAND中彈出所需的運算數,執行相應的邏輯運算,將運算結果再存入OPERAND中;
5)后序表達式掃描完成后,OPERAND中的值就是后序表達式求值的結果。
如表2所示的是對后序表達式123&|4&進行求值的過程,設各個運算數的邏輯狀是:1=1,2=0,3=1,4=0。

表2 后序式求值實例Tab.2 Instance of postfix expression evaluation
跟解析程序緊密相關的有兩張關鍵的表:輸入映象表和任務表(如表3和表4)。輸入映象表記錄了系統所有開關量輸入的狀態,任務表則映射了每個開關量輸出跟所有開關量輸入的邏輯關系,每個開關量輸出都有一張跟自己相對應的任務表,表里存儲的是已經轉化成后序表達式的用戶程序。

表3 任務表Tab.3 Task table

表4 輸入映象表Tab.4 Input image table
任務表和輸入映象表中,OUT1,OUT2,……,OUTn表示對應編號的開關量輸入,IN1,IN2,……,INn表示對應編號的開關量輸入,OP1,OP2,……,OPn表示邏輯運算符。編號為n的開關量輸入和所有輸出的關系可用表達式表示為:
OUTn=F(IN1,IN2,……INn)
式中F()表示的開關量輸出和開關量輸入的邏輯關系。
對開關量輸入輸出的邏輯關系進行配置時,是通過輸入相應的邏輯表達式實現的。如想設置OUT1的狀態由IN1和IN2相與的結果決定的,則可輸入表達式OUT1=IN1&IN2,設IN1=1,IN2=0,則OUT1=0。如圖7所示為用戶程序的執行的框圖。

圖7 解析程序執行框圖Fig.7 Implementation block diagram of analysis procedure
本文針對傳統PLC的一些局限性,提出一種以工控領域的一些低成本、分布式、易操作應用場合的需求為基礎的基于邏輯分析的分布式PLC實現方案[8-9],實現了開關量輸入/輸出、模擬采集和輸出控制等功能。基于對工業設備信息流數學模型的分析,本系統采用邏輯表達式解析算法實現了PLC的可編程邏輯功能;提供向導式界面,增強其易操作性;采用CAN總線拓展了網絡功能,實現分布式結構。在一些要求成本低和操作簡便的工業控制場合,具有廣闊的應用前景。
[1]朱賢德.基于ARM嵌入式系統軟PLC的研究[D].北京:北京工業大學碩士論文,2006
[2]高春霞,張磊.基于C8051F單片機的嵌入式PLC系統研究[J].電氣自動化,2009,31(3):55-65.GAO Chun-xia,ZHANG Lei.Research on embedded PLC system based on C8051F[J].Electrical Automation,2009,31(3):55-65.
[3]高紅玉,徐建成,曾成奇.基于ARM的CAN總線智能節點的設計[J].電子應用技術,2005(4):24-26.GAO Hong-yu, XU Jian-cheng,ZENG Cheng-qi.The design of CAN bus intelligence node based on ARM[J].Application of Electronic Technique,2005(4):24-26.
[4]曹曉麗.將中綴表達式轉換為前綴表達式的三種方法[J].甘肅科技,2006,22(5):72-74.CAO Xiao-li.Three methods of converting infix expression to prefix expression[J].Gansu Science and Technology,2006,22(5):72-74.
[5]何云東,黃旭.復雜表達式解析和計算的研究實現[J].中國科技信息,2009(8):35-38.HE Yun-dong,HUANG Xu.Research on analysis and calculation of complex expression[J].China Science and Technology Information,2009(8):35-38.
[6]廖常初.PLC應用技術問答[M].北京:機械工業出版社,2006.
[7]資訊小組.數據結構C語言版[M].北京:中國鐵道出版社,2002.
[8]張明.PLC控制系統在火力發電廠的應用及注意事項[J].現代電子技術,2010(23):177-180.ZHANG Ming.Application and Precautions of PLC Control System in Power Plant[J].Modern Electronics Technique,2010(23):177-180.
[9]孫德輝,任振東,史運濤.基于研華WebAccess熱力系統優化控制與遠程監控的實現[J].現代電子技術,2009(04):50-52.SUN De-hui, REN Zhen-dong, SHI Yun-tao.Implementation of optimal control and remote monitoring system of the thermal system based on WebAccess[J].Modern Electronics Technique,2009(04):50-52.