張 翰,李 迪,王世勇
(華南理工大學 機械與汽車工程學院,廣東 廣州510640)
軟PLC系統運行環境的設計
張 翰,李 迪,王世勇
(華南理工大學 機械與汽車工程學院,廣東 廣州510640)
軟PLC技術的發展解決了傳統PLC開放性差、通用性差以及難以形成開放式的硬件體系結構等缺點,其以PC機作為硬件平臺,可以充分利用PC機豐富的軟硬件資源,且可以為用戶提供友好的編程界面。軟PLC技術的實現包括編輯環境及運行環境。本文將介紹基于控制器平臺的運行環境的設計,論述了軟PLC系統的框架設計及運行環境的硬件及軟件的框架設計,并分析PLC運行環境的執行原理。為后續實現軟PLC系統運行環境的功能奠定了基礎。
軟PLC;編輯環境;運行環境;控制器
傳統PLC由于開放性差,通用性差等缺點,難以形成開放式的硬件體系結構,已無法滿足數控系統的開放式發展趨勢。隨著計算機技術的發展及IEC61131標準的定制,軟PLC技術已成為發展主流[1-2]。軟PLC技術以PC機作為硬件平臺,可以充分利用PC機豐富的軟硬件資源,且可以為用戶提供友好的編程界面[3-6]。軟PLC技術的實現包括編輯環境及運行環境的設計和實現,運行環境作為其重要組成部分,對系統的可行性及性能起到關鍵性作用,其用于解析開發環境轉換出來的PLC程序的目標代碼,使軟PLC系統可以按一定的邏輯順序控制設備的動作流程。本文將介紹運行環境執行平臺的硬件及軟件的框架設計并分析PLC運行環境的執行原理。
1.1 架構設計
軟PLC系統由開發環境及運行環境兩部分內容組成,其中運行環境中集成了運動控制模塊,其系統架構如圖1所示。開發環境實質是一個用于編輯PLC程序的應用軟件,需要提供程序編輯功能、程序編譯轉換功能、在線調試仿真功能及離線模擬仿真功能。該軟件將基于Visual Studio 2008平臺進行開發,運行于Windows硬件平臺,只提供LD語言,整個軟件系統包括編輯模塊、編譯模塊、在線仿真模塊及離線仿真模塊。運行環境則是整個軟PLC系統的核心部分,包括PLC運行內核及運動控制模塊,其中PLC運行核用于完成PLC程序的解析執行工作而運動控制模塊用于完成運動控制功能塊的解析執行[7-10]。整個運行環境主要完成外部輸入的掃描、程序執行、外部輸出的控制及電機脈沖的輸出等工作,通常由通信接口、I/O接口、脈沖輸出接口和運行內核組成。該運行環境將基于Code Composer Studio平臺進行開發,運行于控制器硬件平臺。

圖1 軟PLC系統架構圖
1.2 工作原理
軟PLC系統的工作原理如圖2所示,用戶首先在開發環境中編輯PLC程序,然后對編輯完成的PLC程序進行編譯仿真,編譯無誤后通過RS485串口通信接口將目標代碼下載至軟PLC的運行環境,即下載到控制器硬件平臺的FLASH。啟動控制器后,控制器系統將從FLASH中加載目標代碼,并周期性調用PLC運行核任務,PLC運行核執行內容為掃描外部輸入信息、順序執行解析目標代碼、刷新外部輸出及拋出運動控制數據包。

圖2 軟PLC系統工作原理圖
本課題采用控制器作為PLC運行環境的硬件平臺,該控制器采用DSP+FPGA作為主控單元的方案,其中DSP采用TI公司生產的6000系列的通用DSP(TMS320C6713)芯片而FPGA則使用ALTERA公司的EP2C20可編程邏輯器件。DSP處理器集成了32位乘32位的乘法器,工作主頻200 MHz,最高可達300 MHz,支持32位單精度及64位雙精度浮點數操作[11-14]。其具有流水線及哈佛結構的特點,適合應用于需要高速度的浮點運算場合,但由于其控制方式為串行控制導致無法對多軸聯動的邏輯控制進行并行處理,因此主要負責運動控制算法的處理、PLC運行核的執行以及任務調度控制。FPGA的作用在于對DSP的硬件外部設備進行擴展以完成輔助性功能,其具有并行化處理強及系統時鐘高的特點,但不擅長進行運算處理,因此主要負責外部I/O接口的掃描輸出及并行控制各軸脈沖的發送等任務。
這種方案將DSP適合做高速高精浮點運算的的特點和FPGA適合處理并行任務的特點充分結合起來,使控制器能夠高速可靠地執行多任務并處理復雜的運動算法,滿足PLC運行環境對執行速度及進行快速響應的要求,同時也滿足了運動控制模塊對控制算法高精高速及多軸并行輸出的處理要求。使用控制器進行PLC開發,其硬件平臺搭建如圖3所示,控制器由外部電源供電,啟動后執行PLC運行環境,對PLC程序目標代碼進行解析。端子板具備I/O輸入輸出端口及脈沖輸出端口,用于連接外部設備,控制電機運動及繼電器狀態。PC端運行軟PLC開發環境,使用Windows操作系統,用于編輯PLC程序、下載目標代碼及在線仿真調試工作,通過RS485串口與控制器連接[15-16]。
3.1 運行環境的軟件框架設計
整個運行環境的軟件框架如圖4所示,其運行過程如下:
1)PLC開發環境通過RS485串口將編譯完成的PLC程序目標代碼進行下載,由串口通訊線程進行接收,并將下載的內容存入到FLASH中進行保存。
2)PLC線程啟動后,從FLASH中讀取出目標代碼的內容并對目標代碼進行逐行解析,由目標代碼解析出指令ID、指令參數等內容。
3)對于非運動指令,直接根據指令類型及相關參數進行處理,并根據結果對I/O或者內部寄存器進行操作。

圖3 硬件平臺連接圖

圖4 PLC運行環境軟件框架圖
4)對于運動指令,先由運動指令打包線程將將解析出來的指令ID及運動參數按規定的格式進行打包后發送到運動指令隊列中。運動指令解析線程則負責從運動指令隊列中依次取出運動指令數據包進行解析并根據解析出來的指令ID及運動參數進行初始化,最后由運動算法線程調用對應的算法進行運算,并將運算結果發送至脈沖輸出環形隊列并由脈沖輸出線程周期性地調用FPGA的處理模塊將結果發送至伺服驅動器。
3.2 PLC程序的執行過程
為實現模塊化編程方式,本系統的PLC程序的架構為分級架構,分為第一級程序、第二級程序及子程序,一級程序內容結束時添加END1標志位,二級程序內容結束時添加END2標志位,每級程序的執行周期不一致,各級對應的執行周期如下所述。
1)第一級程序的執行周期為4 ms,可以用于編寫一些需要快速響應的功能程序,如急停處理功能或報警功能。
2)第二級程序的執行周期為4*N ms,其中N為程序內容被劃分的數量。啟動第二級程序時程序內容被劃分成N份,每份容量大小最多為2 000行基本指令。每4ms只執行一份。因此每個周期內將執行完第一級程序的所有內容及第二級程序的第N份內容。
3)子程序的執行周期根據其調用的位置而不同,若在第一級程序中調用,則執行周期為4 ms;若在第二級程序中調用,則執行周期為(4*N)ms。
3.3 運行環境的執行原理
運行環境的執行總流程示意圖如圖5所示。首先對系統進行初始化,然后周期性調用PLC運行核任務,運行核任務包括輸入采樣、解析并執行程序內容及輸出刷新幾個動作。
1)初始化系統變量:在啟動PLC運行核任務前需要對操作系統定義的變量進行初始化并設置初始值。
2)采集輸入信號:每個執行周期都需要對外部輸入的最新狀態進行采集并存儲到緩沖區。
3)解析并執行程序內容:在程序內容存放的內存區中逐行解析目標代碼并執行相關指令動作,同時將執行結果存放于對應的寄存器中,其中一級程序每周期執行一次,二級程序分段執行,每周期執行一段,直到全部內容執行完成則重新開始分段執行。
4)輸出的刷新:執行每個周期的PLC程序目標代碼的內容后,將最新的外部輸出結果刷新到硬件設備。

圖5 PLC運行核執行流程圖
根據PLC程序的分級架構,PLC程序目標代碼需要進行分級解析,圖6為目標代碼的解析執行過程,具體解析過程如下所述。

圖6 PLC程序目標代碼解析流程圖
1)每個周期開始時,使用一個位置指針指向目標代碼存儲空間的首地址。
2)進入第一級程序的解析過程,對目標代碼進行逐行解析直到執行到END1標志位的目標代碼,則結束對一級程序的解析,進入二級程序的解析。
3)進入第二級程序的解析過程,對目標代碼進行逐行解析,每執行完一個指令進行時間累加,直到累計時間達到分段容量,則結束該周期的解析過程,并記錄下此時目標代碼的位置,作為下個周期二級程序的起始位置。若執行到END2標志位的目標代碼,則結束該周期的解析過程,并將下周期二級程序的起始位置設為原始位置。
4)解析指令過程中每解析完一個指令,則位置指針根據該指令轉換成的目標代碼的行數進行移動,指向下個指令目標代碼的首行。
5)等待本周期的結束,進入下個執行周期,重復第一和第二個步驟。
3.4 目標代碼的解析原理
目標代碼是由PLC程序指令表轉換而成的具有特定格式的數據流,存儲方式為unsigned int數據類型的數組,單參數指令轉為目標代碼后的存儲空間為一行,多參數指令的存儲空間根據參數數量存儲多行。
解析目標代碼的過程就是按照目標代碼的構造原理進行逆向拆分,還原指令的相關信息后再去執行動作。目標代碼的每一行都存儲了相關指令的數據信息,解析時需要由指令對應的目標代碼的首行先獲取到指令的類型標志,再根據指令類型將目標代碼的一行或者多行轉換為對應指令的數據結構體,由結構體的變量得到指令對應的參數內容。
根據目標代碼的解析過程分析,需要為每個指令定義一個結構體進行數據存儲,結合目標代碼的數據類型定義,每個指令的結構體大小需要為4字節大小的整數倍。每個指令的結構體由指令的類型標志及單個或者多個指令參數的寄存器地址號、寄存器位號或者常數值的變量進行組合,表1為具體的參數變量對應的數據類型。

表1 指令參數的數據類型表
目標代碼的具體解析過程如下所述:
1)定義一個單參數指令結構體的指針指向目標代碼存儲空間的首地址:
PLC_BASE_INS*pc;//單參數結構體指針
pc=(PLC_BASE_INS*)PLC_EXEC_CODE;//初始化為目標代碼首地址
2)pc指針指向每條指令轉換成的目標代碼的首行,通過pc->ins獲取到指令標志類型,若為單參數圖元,則取出PLC_BASE_INS結構體的其它參數;若為多參數指令,則將pc指針轉為相應指令的數據結構體,通過該結構體將指令的相關參數取出;
3)每完成一個指令的解析,根據指令目標代碼的行數疊加pc指針的位置,使pc指針指向下個指令的目標代碼的首行地址。
文中介紹了如何在控制器平臺下設計開發軟PLC系統的運行環境,詳細分析了控制器硬件平臺的設計,運行環境的軟件框架設計及具體的執行原理。為后續實現軟PLC系統運行環境的功能奠定了基礎。
[1]姚家慶,陶耀東,鄭一麟.基于MiniGUI的梯形圖編程工具的設計與實現[J].組合機床與自動化加工技術,2013(2):30-33+37.
[2]蘇淑芝,劉志維.軟PLC開發系統的設計與實現[J].現代電子技術,2012(10):15-17,20.
[3]郭書杰.軟件PLC梯形圖編程系統的研究與實現[D].沈陽:中國科學院沈陽計算技術研究所.2010
[4]王飛.開放式數控系統中軟PLC的開發及應用[D].廣州:華南理工大學.2011
[5]李龍.軟PLC開發系統的研究與實現[D].西安:陜西科技大學,2013.
[6]陳浩,張躍文.軟PLC技術研究與開發[J].信息系統工程,2015(10):86.
[7]張丕鑫.基于PLCopen的運動控制功能塊研究與實現[D].大連:大連理工大學,2011.
[8]劉艷強,宋永立.基于PLCopen的數控機械控制器研究與開發[J].制造業自動化,2013,02:63-67
[9]金麗娟,嚴義,劉罡.基于IEC61131-3的運動控制模塊設計[J].機電工程,2013,06:759-763
[10]謝春杰.嵌入式軟PLC的研究與設計[D].南京:南京理工大學,2014.
[11]馬志剛,趙麗平,李中西,等.一種高性能浮點DSP芯片TMS320C6713及其最小系統的設計[J].微型機與應用,2010,29(10):24-27.
[12]Texas Instruments Inc.How to Get Started With the DSP BIOS Kernel[Z].Dallas,Texas:Texas Instruments Inc,2001:04-08.
[13]Texas Instruments Inc.Using the DSP/BIOS Kernel in Real-Time DSP Applications[Z].Dallas,Texas: Texas Instruments Inc,2001:02-16.
[14]張紅香.面向數控機床的嵌入式軟PLC開發系統的研究[D].蘭州:蘭州理工大學,2014.
[15]胥貴萍.基于軟PLC技術的工程機械智能控制器[D].武漢:武漢科技大學,2011.
[16]喻賽花.基于Windows的軟PLC系統開發[D].南京:南京航空航天大學,2012.
Design of PLC ladder diagram programming environment
ZHANG Han,LI Di,WANG Shi-yong
(School of Mechanical and Automotive Engineering,South China University of Technology,Guangzhou 510640,China)
The development of soft PLC technology solved the poor openness and universality of traditional PLC as well as difficulty in forming hardware architecture of open mode.Soft PLC is based on PC hardware and make full use of hardware and software resources to provide a friendly programming UI. The implementation of Soft PLC include programming editing and running environment.This paper introduced how to design the runtime environment based on controller platform,discuss the design methods including the framework of soft PLC system and the framework of running environment's software and hardware.Besides, this paper also analyzed the implementation ofthe runtime environment,which laid solid foundation for the implementation of soft PLC running environment.
soft PLC;editing environment;runtime environment;controller
TN805
:A
:1674-6236(2017)08-0010-05
2016-07-05稿件編號:201607026
國家科技支撐計劃項目資助 (2015BAF20B01);廣東省科技計劃項目資助(2012A090100012;2013B010134010;2014B090921003;2014A050503009);廣州市科技計劃項目資助(201508030007;201604010064)
張 翰(1991—),男,廣東汕頭人,碩士。研究方向:數控系統中軟件PLC技術。