對于每個具體的設計來說,需要對配置文件中的幾個部分進行配置。
(3) 人機界面模塊(HMI),用戶和軟PLC 之間的互動模塊。通過友好的人機界面,用戶可以控制軟PLC 的調用和開關,同時可以查看軟PLC 各個狀態點的狀態。在Linux 下,可以使用GTK 或者TCL/TK 進行設計。本設計由于整個數控系統的需要,采用了TCL/TK 進行設計。因為軟PLC 的其他部分是用c語言進行設計,因而在用tcl/tk設計的人機界面模塊和軟PLC 之間,需要設計一個TCL/TK 的擴展模塊作為兩種語言之間的接口,這樣在界面上就可以用TCL 語言調用C 語言編寫的軟PLC 函數。現階段本設計主要完成了常用的PLC 圖形語言梯形圖和兩種文本語言IL 語言和ST 語言的設計,因而人機界面可以分為兩種,梯形圖的編輯運行界面和文本編程的監控界面。
① 梯形圖界面(如圖2)。在梯形圖界面上,用戶可自由拖動如開關、計時器等各種器件進行自主編程,從而實現在線編程。在界面上右側是狀態欄,可以對各種狀態點的控制和狀態顯示,如將狀態點B1 狀態置1,則需單擊B1 前的小方框。界面的上方是菜單欄。用戶可通過菜單的選擇進行編輯、保存、打開等功能,編輯完畢,按下Run 鍵,TCL/TK 的底層程序將會檢測狀態點狀態,并根據元件種類進行邏輯運算,這些直接使用TCL/TK 編程就可以實現。而Exit 鍵則是退出軟PLC,當按下該鍵時,將會設置全局變量Quit = 1 并傳遞給關閉模塊Plcshutdown。關閉模塊將關閉所有在運行的軟PLC模塊,并殺死共享內存上的信號量。
② 文本編程監控界面。文本語言相對不夠圖形語言直觀,設計監控界面,可以從監控界面上調用所需要的文本程序,同時對各個狀態點的狀態進行顯示和控制。
(4) 文本編輯模塊,用戶PLC文本程序的編輯模塊,使用文本編輯器即可實現。用戶使用符合61131-3 標準的編程語言編寫控制應用程序。編輯好的模塊將會被軟PLC 的編譯器所編譯,生成可執行代碼。
(5) 邏輯模塊,軟PLC 的核心模塊,它包括IEC61131-3編譯器和數據處理模塊。IEC61131-3編譯器將編譯用戶編輯好的文本應用程序,首先將PLC 的代碼編譯成C 語言,然后再調用GCC 將程序和軟PLC的鏈接庫編譯成目標文件,同時顯示編譯結果的正確性,將編譯的錯誤信息及警告信息反饋給用戶。
文本編輯模塊與編譯模塊在軟PLC 運行時,不會作為調用模塊。軟PLC只調用最后生成的可執行模塊。數據處理模塊執行對各種浮點型數據的操作,功能包括PID控制、按一定的比例縮放數據大小等。
(6) 通信模塊(Communication module),主要負責軟件的網絡通信協議等的實現,借助與操作系統的結合構建網絡服務器,實現強大的網絡服務功能,實現Modbus 等總線協議的總線控制功能。
(7) I/O 模塊,軟PLC與物理IO連接的模塊。通過IO 模塊,軟PLC 的狀態點與硬
件的IO 點一一對應,軟PLC 可以通過IO 模塊直接讀寫PC104 上IO擴展板的IO 點,實現對I O 點的讀取和控制。
( 8 ) 關閉模塊(Plcshutdown),由于本設計采用了多模塊化設計和共享內存通信機制。因而軟PLC退出,需要關閉所有正在運行的模塊和殺死共享內存上的信號量。關閉模塊提供了Quit的全局變量, 當Quit=1,將運行關閉模塊中的程序關閉所有的軟PLC 模塊和殺死共享內存的信號量。
以上是根據需要設計的一些模塊,根據用戶需要還可以增加一些模塊,如記錄模塊,數據庫連接模塊等,這些模塊將會記錄軟PLC 的工作記錄和保存軟PLC 的數據記錄。這些有待進一步的開發和設計。設計好各個模塊,軟PLC 的工作流程可如圖3 所示。
本設計是在Linux 下進行設計,除HMI 模塊是使用TCL/TK 設計外,其他均是使用C 語言進行編寫,在Linux 下使用GCC 進行編譯。由于篇幅所限,此處不展示代碼。
實例
下面以一個簡單的對3并口通道循環控制為例,說明軟PLC 的工作流程。
(1)梯形圖編程。從軟PLC 主界面進入后,啟動梯形圖編程,調用梯形圖編程的主程序。梯形圖編程共需要調用梯形圖界面模塊、關閉模塊、IO 模塊,這些均在配置文件中設置好,不需用戶進行設置。配置文件主要部分定義如下:
需運行的模塊: 主要狀態點定義:Ladder為擁有寫的權利模塊,主程序啟動后,將讀取對應的配置文件,運行所需模塊。
用戶即可在梯形圖界面進行編輯,編輯后的梯形圖程序如圖4所示。這是一個比較簡單的程序,因而只需要使用3個計時器和幾個復位、置位輸出就可以實現功能。編輯好梯形圖程序后,按下Run 鍵,程序即可運行,并實現對IO 板上對應端口的控制。
(2)文本IL 語言編程。開始與梯形圖編程相同,從軟PLC 主界面進入后,啟動IL 語言編程,調用主程序。文本編程共需要調用監控界面模塊、邏輯目標程序模塊、關閉模塊、IO 模塊。邏輯目標模塊為用戶編輯好的IL 程序,并通過編譯器生成的可執行邏輯程序,用戶可在PC 機上編輯和編譯好邏輯程序,再移植到PC104 上進行調用。配置文件主要部分定義如下:
需運行的模塊:
主要狀態點定義
為編譯后的IL 程序模塊。由于篇幅關系,實現循環控制的IL 程序在此處不再列出。
結束語
軟PLC 具有強大的功能,在工業控制中發揮著越來越重要的作用,是一項具有巨大潛力的技術,其強大的網絡功能是傳統的PLC 無法比擬的。中國工業自動化的水平相對國外來說較低,技術含量少。因而國內企業要在激烈的競爭中立于不敗之地,必須增加生產的自動化程度,提高產品的技術含量。發展自主產權的軟PLC 將對此問題產生有力的推動作用,也有助于我國PLC 企業發展本國市場并向外擴展。
轉載請注明出處。