Development of Linux-based Softlogic PLC and Web Server Application Automation and Control Institute, National Taiwan University of Science and Technology Papers published in 2004 Author(s):Hung Chin-Tsai, Ming-Jong Tasi 學 生:陳義發 學號 : 4A02C069 指導教授:王明賢 Outline • Abstract • Programmable Logic Controller – Programmable Logic Controller defined – Programmable Controller System Architecture • The planning and implementation of software PLC • The software PLC and instant pulse integration • Conclusion • References Abstract • • Due to the popularization of the broadband network, the application of the network service in industry techniques has already become the trend. Integrating the automation equipment with the Internet becomes the main stream in automation industry. The programmable logic controller (PLC) is one of the core equipments in the factory automation that is used extensively in the industry. Because the network application is popular and the manufacturing technique is more and more complicated, the developed trend of a PLC must cover the function of the system integration, on-line monitoring, the network utility, and the system enhancement etc. This research utilized PC as a hardware structure, and the Linux/RTLinux as an operation platform to develop a soft-logic PLC module. The developed software module includes a network servo and realtime control function of software PLC. A PLC assembler is designed with the ANSI C under the Linux operation system. A real time pulse output function is achieved actually under the RTLinux operating system. The usage parameter setting and I/O interface configuration for different I/O card are also considered. By integrating of the Linux inter-process communication (IPC) mechanism into the network servo, the client user can access internal I/O information of PLC through the common gateway interface (CGI). This module can be integrated into other application software to provide a programmable logic control function. Programmable Logic Controller • PLC 為產業界廣泛使用的控制器,是工廠 自動化的核心設備之 一,它具有容易維護 與檢修、體積小、價格便宜、程式書寫容易、 及 適應惡劣的工廠環境,具有高度的可靠 性等優點,一般都應用於順序 控制上。近 年來半導體技術不斷的突破及網路應用的 普及,PLC 的發 展要求具有連線、監視、 網路等功能,為建立工廠自動化的關鍵性組 件。 1.1 可程式控制器定義 • PLC 是一種以微處理機為基本架構的可程式 化控制器,它利用 來自輸入/輸出裝置的回授 信號及儲存在記憶體的程式,控制機械或 程 序的操作。 1978 年,美國國家電氣協會 (National Electrical Manufactures Association: NEMA)給予可程式控制器如下的定義:「可 程式控制器是一種數位的電子裝置,使用可程 式記憶體,儲存指令以 執行、邏輯、順序、 計時、計數與算術運算等功能,並透過數位或 類 比輸入/輸出模組,以控制機械或程序的動 作。一部數位電子計算, 若被用來執行可程 式控制器的功能,亦被視為可程式控制器 1.2 可程式控制器系統架構 • PLC 主要構成的部份為程式書寫器、中央處理單元(CPU)、 記憶 體、輸入模組、輸出模組與週邊裝置等。主機是 PLC 主要部分,由 CPU 及記憶體所組成,CPU 由算數 邏輯運算單元及控制單元所組成 是 PLC 的核心,用來反 覆掃描處理邏輯、計時、計數等功能。記憶 體可分為 ROM 與 RAM 兩種,ROM 用來儲存 PLC 系統核心程式, RAM 用來儲存使用者的應用程式。 3. 軟體 PLC 規劃與實現 軟體 PLC 是以軟體來實現 PLC 的邏輯運算功能,主要分為監督 程式及組譯 器兩大部分。監督程式是 PLC 的核心,負責 PLC 功能的 運作。組譯器則是將 PLC 的應用程式組譯成機械碼。 3.1 開發環境與硬體設備 本系統是在 Linux /RTLinux 作業系統下發展,硬體為 PC 搭配一 般市售的 DIO 介面卡及 I/O 模組,軟體及硬體設備如表 3-1 及表 3-2。 表 3-2 硬體設備 表 3-1 軟體設備 • 3.2 指令格式及編碼方式 • 軟體 PLC 是屬於一種應用軟體,它和系統軟體不同地方是系統 軟 體是由支援電腦作業的許多不同的程式組成,主要是在支援計 算機系 統的運作。而應用軟體則是以計算機為工具利用系統軟體 來解決問題 及作其他應用。軟體 PLC 有類似計算機系統的機械 碼,組合語言及 組譯程式。[17] • PLC 指令(Instruction)是一種指示 PLC 內部各元件完成一系列 有 意義的資料傳送動作的二進位碼,指令通常是由運算碼 (Operating Code :OPCode)及運算元(Operand)兩個部分所組成,運 算碼用來指示 PLC 執行如 LD,AND 等動作,運算元則是用來指 定資料所在的位址 • 基本指令格式可分為三種: • (1) 指令 • 如 END,ANB 及 ORB。這些指令的功能不需要讀取 I/O 記憶體 的資料,所以只要指令即可完整 描述其功能。 • (2) 指令+運算元 • 如 LD,AND,OR, OUT, SET, PLS…等。這些指令的功能 需要讀取由運算元所指定的 I/O 記憶體的資料,所以需要指令+運算 元才能完整描述其功能。 • (3) 指令+運算元 1 +運算元 2 • 如 TMR 及 CNT。這些指令的功能需要比較由運算元 2 所設定的 值來決定由運算元 1 所指定的 I/O 記憶體的狀態,所以需要指令+運 算元 1 +運算元 2 才能完整描述其功能。 • 基本指令編碼方式是將指令編為 OPCode 佔 1 個 Byte;I/O 運算 元編為 Offset 及 BitNO 各佔 1 個 Byte,Offset 表示 I/O 記憶體偏移量 的位址,BitNO 表示的記憶體的 Bit 數;數值設定運算元編為 SV L-Byte 及 SV H-Byte 佔 2 個 Bytes,SV L-Byte 表示設定值的低位元 組數值,SV H-Byte 表示設定 值的高位元組數值。 • 表 3-4 為軟體 PLC 指令總表,包括 17 個基本指令與 1 個應用指令, 操作碼為相對應指令的機械碼, 指令格式為撰寫 PLC 程式碼的格式, 編碼數表示 PLC 數。 程式碼被組譯成機械碼所佔的記憶體 Byte • 4. 軟體 PLC 與即時脈波整合 軟體 PLC 和 rtlpulse 及時脈波輸出是在不同的作業系統上執行, 軟體 PLC 應用程式是執行在 Linux 非即時作業系統下而 rtlpulse 應用 程式是 執行在 RTLinux 即時作業系統下,因此採用 RTLinux 即時的 FIFO 機制 整合,即時 FIFO 的讀取與寫入是原子的方式,也就是一個 指令執行完 畢不會被阻塞,以避免優先權倒置的問題。 Linux 的應用 程式可以使用字元 設備(Char Device)的方式對即時 FIFO 執行開啟、 讀取、寫入與 關閉的動作,程式的寫法非常的 一致且方便。軟體 PLC 與 rtlpulse 程式整合架構如圖 4-7。[10] 5.結論 本文主要以 PC-based 為硬體架構及 Linux/RTLinux 作業系統平台 為軟體發展環 境,發展一個具有網路伺服及即時脈波輸出功能的軟體 可程式控制器。 對於開發 PC-based 控制器而言,作業系統的穩定性攸關控制器的 成敗,Linux 是一個以網路環境為基礎的作業環境,具備完整的網路 功能,同時也是一個多 人、多工及多行程的作業環境,相較於 Windows 可以說是一個十分穩定的系統。 本文首先進行以軟體 PLC 的發展與實作,從訂功能規格,指令格 式及編碼方式, 指令規劃,I/O 記憶體規劃到系統運作流程,說明一 個系統軟體開發所需的過程。 其次,說明如何利用 Linux IPC 機制將 不同的應用軟體整合在一起並說明如何 與 RTLinux 即時應用程式的 整合來擴充系統功能。最後,以 送料機構控制為 例子,從系統架構、 氣壓迴路規劃、介面電路、I/O 規劃、狀態流程圖、階梯圖 與執行。 說明發展 PLC 應用程式所需的過程。成功地控制送料機構證明在 Linux/RTLinux 作業系統發展網路應用系統是可行的。 References • [1] 吳明欽,「IPC-based」,機電整合雜誌,p36,民國九十一年十二月。 [2] 孫弘,e-Automation –自動化之網際網路整合技術,自動化監控整合技術研討會,華 夏工商專科學校,民國八十九年八月。 [3] 吳福川,PC-Based SoftPLC控制規劃軟體之設計與實現,碩士論文,國立台灣科技大 學,民國八十八年十二月。 [4] 李正鈁編譯,可程式控制器原理與應用,全華科技圖書股份有限公司,民國八十五 年。 [5] 蔡明忠,可程式控制器程式與應用,國立台灣科技大學 民國九十一年三月。 [6] 黃立增,「IPC-based」,機電整合雜誌,p38~p39,民國九十一年十二月。 [7] 位元文化編著,Linux入門、管理與應用Red Hat 7.1+CLEv1.0,文魁資訊股份有限公司, 民國九十年。 [8] 呂台欣…等編譯,Linux超級使用手冊,碁峰資訊股份有限公司,民國八十八年。 [9] FSM Lab Inc,Getting Start with RTLinux,http://www.fsmlabs.com。 [10] 王宗業,即時多工作業系統在運動控制的應用與研究,碩士論文,國立台灣科技大 學,民國九十一年七月。 [11] 許秀熒,於RTLinux作業平台上實踐高響應高精度伺服控制系統之研究,碩士論文, 國立台灣科技大學,民國九十二年六月。 [12] http://ndltd.ncl.edu.tw/cgi/bin/gs32/gsweb.cgi/ccd=uSjpnD/record?r1=1&h1=0#XXX