文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2017.02.010
中文引用格式: 司蕭俊,,王宜懷,白聰. 基于K60的GCPLC系統(tǒng)的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,,2017,,43(2):47-50.
英文引用格式: Si Xiaojun,Wang Yihuai,,Bai Cong. Design and implementation of GCPLC based on K60[J].Application of Electronic Technique,,2017,43(2):47-50.
0 引言
傳統(tǒng)可編程邏輯控制器(Programmable Logic Controller,,PLC)從提出至今已經(jīng)發(fā)展四十多年,,形成了全世界每年300億美元以上的巨大市場,涉及自動控制,、機械,、裝備、醫(yī)療電子等諸多應(yīng)用領(lǐng)域,,為一線基層技術(shù)人員利用嵌入式計算機生產(chǎn)實踐提供了基礎(chǔ)技術(shù)平臺,。但也存在CPU選擇受限、硬件耦合性差,、變量設(shè)置簡單,、梯形圖編程功能深度不夠、二次編程困難,、構(gòu)件組合靈活性差,、開發(fā)環(huán)境受限,、新構(gòu)件融入難度大等問題。雖然經(jīng)過多年改進與發(fā)展,,從不同角度改進了技術(shù),,但由于技術(shù)架構(gòu)未變,本質(zhì)問題無法根本解決,。
本文基于多任務(wù)操作系統(tǒng)MQX,、嵌入式ARM處理器、CAN總線等技術(shù),,設(shè)計了一套包含圖形構(gòu)件化編程軟件及基于恩智浦K60微處理器的圖形構(gòu)件化可編程邏輯控制器(Graphic Component Programmable Logic Controller,,GCPLC)硬件的完整系統(tǒng),并對整個系統(tǒng)進行簡要介紹,,重點闡述了圖形構(gòu)件化的軟件開發(fā)環(huán)境,。
1 GCPLC的體系總體設(shè)計與工作原理
GCPLC的系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1中的上半部分是GCPLC的軟件開發(fā)環(huán)境部分,,主要完成圖形化編程,、C語言文件的生成、程序編譯等功能,,并且負(fù)責(zé)向硬件部分燒寫程序以及實現(xiàn)實時監(jiān)控。下半部分的GCPLC硬件部分為整個系統(tǒng)的核心,,負(fù)責(zé)執(zhí)行程序,。硬件部分帶有多路普通/高速的GPIO接口、高速PWM以及差分輸入輸出接口,、CAN總線接口,、485信號接口和232接口,可以實現(xiàn)普通PLC具備的功能,。
GCPLC系統(tǒng)將開發(fā)環(huán)節(jié)和運行環(huán)節(jié)分開操作,。在開發(fā)階段,使用圖形構(gòu)件化編程軟件編寫程序,,并同時將嵌入式實時操作系統(tǒng)MQX融入其中,;在執(zhí)行階段,硬件部分執(zhí)行程序,,有序?qū)Ω鱾€任務(wù)進行調(diào)度,,并且通過串口與PC通信,從而將硬件部分的信息傳遞給軟件部分,,以實現(xiàn)實時監(jiān)控,。
2 GCPLC系統(tǒng)硬件設(shè)計
GCPLC硬件的主要應(yīng)用目標(biāo)是工業(yè)控制,而可靠性和抗干擾能力是衡量工業(yè)控制中電氣設(shè)備性能的關(guān)鍵指標(biāo),,因此在設(shè)計內(nèi)部電路時,,采用了抗干擾技術(shù),,其中包括光耦隔離電路、場效應(yīng)管隔離電路等,。選用的硬件是具有極高隔離性能的元件,,其中包括高速光耦6N137、場效應(yīng)管LR120N等,。下面著重介紹高速GPIO輸入電路和高速PWM差分輸出電路,。
2.1 高速GPIO輸入電路
為了能夠滿足工業(yè)控制中對GPIO輸入的實時性和高效率需求,為GPPLC硬件設(shè)計了帶有電氣隔離特性的高速GPIO輸入電路,,如圖2所示,。
該電路使用6N137單通道高速光耦合器進行輸入輸出,并在輸出端對輸出進行濾波后輸出給K60核心板,。該電路具有溫度,、電流和電壓的補償功能,具有高輸入輸出隔離及抗干擾能力強的特性,,電路典型的輸入速率為10 MB/s,。
2.2 高速PWM差分輸出電路
電機驅(qū)動是一種很常見的工業(yè)控制方式,機械臂的運作,、機器人的行走都離不開電機驅(qū)動,。為了提高PWM的輸出效率,設(shè)計了具有差分能力的高速PWM電路,,如圖3所示,。
圖3是PWM的輸出部分,在其他部分利用SGM4717雙擲模擬開關(guān)芯片,,切換PWM的差分和普通輸出模式,。在正常情況下,該PWM的輸出速率可達到100 KB/s以上,,可以在工業(yè)控制中對電機進行穩(wěn)定的驅(qū)動和控制,。
3 GCPLC圖形化開發(fā)環(huán)境設(shè)計
在GCPLC系統(tǒng)中,PC可以為用戶提供一個良好的軟件開發(fā)調(diào)試環(huán)境,,因此運行在計算機控制系統(tǒng)上的圖形化開發(fā)環(huán)境需要重點進行開發(fā),。GCPLC軟件開發(fā)環(huán)境是為了給GCPLC系統(tǒng)提供一個直觀、方便,、可拖動,、高效的程序開發(fā)平臺。該平臺主要支持圖形化的拖動,、C語言的生成,、程序編譯、程序?qū)懭?、實時監(jiān)控等功能,。
該平臺采用PC作為基本編程工具,,應(yīng)用Visual Studio 2012作為開發(fā)環(huán)境,編程語言舍棄了傳統(tǒng)PLC采用的梯形圖編程方式,,選用了全新的圖標(biāo)拖動及連接的編程語言,,使得程序的二次開發(fā)變得更加容易,程序結(jié)構(gòu)也變得更加清晰,,并且添加了復(fù)制,、剪切、刪除,、粘貼,、右鍵菜單等人性化的快捷操作。在燒寫程序之前,,需要對程序進行編譯,,由編譯器負(fù)責(zé)檢查用戶編寫的程序,并且將錯誤反饋給用戶,。若編譯程序無誤,,則可以將用戶程序?qū)懭隚CPLC硬件板。該開發(fā)平臺主要由以下模塊組成:
(1)圖標(biāo)控件模塊,。包含了編寫程序需要的所有控件,,控件分為執(zhí)行控件、傳感器控件,、通信控件,、流程控件、任務(wù)控件5個大類,。每個大類下又包含了若干個具體的子控件,。
(2)控件連接及屬性設(shè)置模塊,。該模塊是進行控件拖拉和連線的模塊,,也是整個開發(fā)環(huán)境的關(guān)鍵。在編寫程序時可以從上述的圖標(biāo)控件模塊中選擇自己需要的控件,,選出控件后可以放置在此模塊上,。每個控件的頂部和底部都有一塊三角形區(qū)域,當(dāng)選定了若干個控件后,,將這些控件的三角形區(qū)域連線,,則可以組成一段程序。
(3)代碼更新顯示模塊,。當(dāng)連接好控件連接模塊中的控件后,,該模塊便會自動生成相應(yīng)的代碼。使用者只需要簡單的C語言基礎(chǔ),,便可以更好地理解這整段程序?qū)崿F(xiàn)的功能,。
3.1 圖標(biāo)控件模塊
為了方便二次開發(fā),,在設(shè)計開發(fā)平臺時決定放棄傳統(tǒng)PLC的使用的梯形圖編程方法,轉(zhuǎn)而設(shè)計了開發(fā)者門檻更低,、更加容易理解的圖標(biāo)形式的控件,,一段完整的程序要能夠穩(wěn)定、成功地運行,,則需要C語言執(zhí)行所需要的基本流程,,基于程序執(zhí)行的基本流程,將圖標(biāo)控件模塊劃分為之前所闡述的5個大類,。
執(zhí)行控件主要包括一些需要執(zhí)行的操作,,例如開關(guān)中斷、設(shè)置延時,、設(shè)置IO輸入/輸出等,;傳感器控件包含GCPLC需要的傳感器,例如超聲波傳感器,、AD傳感器等,;通信控件包含與硬件核心板通信相關(guān)的控件,例如I2C,、SPI,、UART等;流程控件則是與程序執(zhí)行相關(guān),,所以包含IF判斷,、條件循環(huán)、計數(shù)循環(huán)之類的控件,;任務(wù)控件則是為了程序的多任務(wù)協(xié)調(diào)執(zhí)行而設(shè)置的,,所以每當(dāng)用戶添加一個任務(wù),任務(wù)控件中也會生成相應(yīng)的控件,。
為了使開發(fā)平臺自身更具有拓展性,,設(shè)計了一套從Access數(shù)據(jù)庫讀取控件名稱和控件圖片等相關(guān)屬性的算法,當(dāng)需要增加某種控件時,,只需要設(shè)置好該控件的相應(yīng)屬性,,存入數(shù)據(jù)庫即可。而對于每一個用戶程序,,其中的任務(wù)控件也是各有不同的,,因此實現(xiàn)任務(wù)控件的動態(tài)存取也十分重要。而在設(shè)計控件時,,為了實現(xiàn)程序的通用性,,設(shè)計了圖標(biāo)控件Icon類,其關(guān)鍵代碼如下:
public LinkIconType IconType;//控件的類型
public string ModuleName;//控件名字
public int IconArrNum;//控件在控件數(shù)組中的下標(biāo)
public int IconDbNum;//控件在數(shù)據(jù)庫中的序號
public PictureBox IconPicBox;//控件的圖片
public PictureBox MoveToIconPicBox;//鼠標(biāo)移動到控件上時顯示的圖片
public int IconLeftDotNum; //控件圖標(biāo)的左側(cè)的Dotsize個數(shù)
public int IconTopDotNum; //控件圖標(biāo)的上側(cè)的Dotsize個數(shù)
3.2 控件連接及屬性設(shè)置模塊
控件連接及屬性設(shè)置模塊是進行控件拖拉、連線,、程序順序設(shè)計的模塊,,也是整個開發(fā)平臺的核心所在,若干個控件通過不同的順序連接,,將會生成截然不同的程序,。
在這個界面中,可以通過雙擊每個控件以編輯該控件的屬性,。例如,,當(dāng)點擊PWM初始化控件時,便會跳出“PWM初始化”屬性窗口,,如圖4所示,。
該窗口用于設(shè)置GCPLC硬件上的PWM波的輸出頻率,只需要在文本框中輸入想要的頻率,,點擊確定后就可以成功配置PWM的輸出頻率,。使用者在編程時可以很容易掌握。其他的控件也具各自的屬性窗口,。
當(dāng)從圖標(biāo)控件模塊拖出控件時,,每個控件之間都是各自獨立的,即使設(shè)置好控件的屬性,,這些控件仍然不具備實際功能,,只有通過每個控件頂部和底部的三角形區(qū)域?qū)⑿枰目丶B接起來時,這些控件才會真正起作用,,在開發(fā)環(huán)境中新建一個項目文件后會自動生成一個Main圖標(biāo)控件,,這個控件是不可編輯的,表示為每個程序的開始,。
為了能適應(yīng)程序較小或者較大的情況,,設(shè)計了可縮放的編程界面,當(dāng)需要編寫程序量較大的程序時,,可以縮小界面以便于查看完整的程序結(jié)構(gòu),。另外,開發(fā)環(huán)境吸取了PLC編程中梯形圖多行編寫的優(yōu)點,,設(shè)計了多行顯示的程序結(jié)構(gòu),。同時,,當(dāng)控件圖標(biāo)過多超過當(dāng)前顯示頁面時,,設(shè)計一套實時刷新的算法,提升了軟件執(zhí)行效率,。
當(dāng)GCPLC系統(tǒng)需要執(zhí)行多任務(wù)程序時,,為了使得各個任務(wù)之間的劃分更加清晰,為主任務(wù)程序和每個子任務(wù)都開辟了單獨的窗口,用戶每添加一個任務(wù),,都會在主任務(wù)窗體中生成一個子任務(wù)控件圖標(biāo),,雙擊任務(wù)控件圖標(biāo)后可以編輯相應(yīng)的任務(wù)屬性,如任務(wù)名稱,、任務(wù)棧大小,、任務(wù)優(yōu)先級等。
3.3 代碼更新顯示模塊
在控件連接及屬性設(shè)置模塊將各個圖標(biāo)按照自己預(yù)想的順序連線完成后,,如果沒有任何可以參照修改的功能,,很有可能使得最后燒寫的程序無法正常運行,而且僅僅是圖標(biāo)連接也會使得開發(fā)者感覺很疑惑,。為了解決這些問題,,設(shè)計了代碼顯示區(qū)域。該區(qū)域顯示的代碼與控件連接模塊的連線方式是一一對應(yīng)的,,如圖5所示,。
4 GCPLC整體運行實驗
在本次實驗中,對GCPLC系統(tǒng)進行了一次整體上電自檢實驗測試,。首先在GCPLC軟件開發(fā)環(huán)境中編寫好上電自檢的程序,,這個上電自檢程序?qū)⒋蜷_GCPLC硬件系統(tǒng)中的所有GPIO、PWM,、差分輸入/輸出,、CAN總線、485,、232和數(shù)碼管功能,,并且將模塊初始化信息通過串口反饋出來。上電后的串口反饋信息如圖6所示,。
5 結(jié)論
GCPLC系統(tǒng)將嵌入式系統(tǒng),、軟件開發(fā)系統(tǒng)融合在一起,形成一個開放式的體系結(jié)構(gòu),,相比傳統(tǒng)的PLC具有更高的靈活性和可擴展性,,從而使得計算機控制系統(tǒng)不再受傳統(tǒng)PLC硬件的限制,提高了可靠性和可操作性,。本系統(tǒng)具有良好的通信能力,,能夠完成比較復(fù)雜的多任務(wù)控制功能,可以滿足和實現(xiàn)當(dāng)前和今后工業(yè)自動化領(lǐng)域控制系統(tǒng)開放性和柔性的要求,,為工業(yè)自動化向更高層次的集成提供了可靠的計數(shù)保障,,具有廣闊的應(yīng)用前景。
參考文獻
[1] 嚴(yán)奎.嵌入式PLC編程軟件開發(fā)[J].工業(yè)控制計算機,,2012,,25(10):67-68,70.
[2] 張嵩,術(shù)守喜,,丁廣乾.基于ARM的嵌入式PLC的設(shè)計[J].自動化與儀器儀表,,2008(3):9-10,23.
[3] 廖常初.PLC編程及應(yīng)用(第4版)[M].北京:機械工業(yè)出版社,,2014.
[4] TROELSEN A.C#與.NET 4高級程序設(shè)計[M].北京:人民郵電出版社,,2011.
[5] 王宜懷.嵌入式系統(tǒng)原理與實踐:ARM Cortex-M4 Kinetis微控制器[M].北京:電子工業(yè)出版社,2012.
[6] 吳玉香,,周東霞,,林錦赟.嵌入式軟PLC系統(tǒng)的研究和實現(xiàn)[J].計算機工程,2009(10).
[7] 謝春杰.嵌入式軟PLC的研究與設(shè)計[D].南京:南京理工大學(xué),,2014.
[8] 郭建勛.嵌入式軟PLC開發(fā)系統(tǒng)的設(shè)計[D].廣州:華南理工大學(xué),,2010.
[9] PRATUMSUWAN P,PONGAEN W.An embedded PLC development for teaching in mechatronics education[J].Industrial Electronics & Applications,,IEEE,,2011(6):1477-1481.
[10] 艾春麗,劉榮鵬,,張鳳登.基于軟PLC的多任務(wù)并行控制系統(tǒng)的實時性研究[J].計算機應(yīng)用,,2007,27(12):272-274.
作者信息:
司蕭俊,,王宜懷,,白 聰
(蘇州大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,江蘇 蘇州215000)