《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于K60的GCPLC系統(tǒng)的設(shè)計與實(shí)現(xiàn)
基于K60的GCPLC系統(tǒng)的設(shè)計與實(shí)現(xiàn)
2017年電子技術(shù)應(yīng)用第2期
司蕭俊,王宜懷,白 聰
蘇州大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州215000
摘要: 提出研制圖形構(gòu)件化可編程邏輯控制器(GCPLC)的方案,它是傳統(tǒng)可編程邏輯控制器(PLC)的革新與新模式。與傳統(tǒng)PLC相比,GCPLC具有圖形拖動編程、開放的二次編程架構(gòu)、構(gòu)件組合、開發(fā)環(huán)境兼容、構(gòu)件定制擴(kuò)充、RTOS架構(gòu)融入等特點(diǎn)。其目標(biāo)是使GCPLC相對于傳統(tǒng)PLC,在技術(shù)架構(gòu)、技術(shù)方法、設(shè)計思想及實(shí)現(xiàn)方式等方面能夠有新突破,在應(yīng)用方面能夠逐步取代傳統(tǒng)PLC。
中圖分類號: TP391
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2017.02.010
中文引用格式: 司蕭俊,王宜懷,白聰. 基于K60的GCPLC系統(tǒng)的設(shè)計與實(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.
Design and implementation of GCPLC based on K60
Si Xiaojun,Wang Yihuai,Bai Cong
multitask;GCPLC;graphic component;RTOS
Abstract: This topic proposes the scheme of developing Graphic Component Programmable Logic Controller(GCPLC),which is the innovation and new mode of traditional Programmable Logic Controller(PLC). The GCPLC has many characteristics, for instance, graphical drag programming, open twice programming architecture, component combination, development environment compatible, component extendible and the integration of RTOS. In addition, aimed at obtain breakthrough in technology architecture and method alone with the design ideas, the GCPLC has advantages of less difficulties in terminal-user programming, excellent division in technology and expansion in user-control. The GCPLC will replace traditional PLC in application.
Key words : multitask;GCPLC;graphic component;RTOS

0 引言

    傳統(tǒng)可編程邏輯控制器(Programmable Logic Controller,PLC)從提出至今已經(jīng)發(fā)展四十多年,形成了全世界每年300億美元以上的巨大市場,涉及自動控制、機(jī)械、裝備、醫(yī)療電子等諸多應(yīng)用領(lǐng)域,為一線基層技術(shù)人員利用嵌入式計算機(jī)生產(chǎn)實(shí)踐提供了基礎(chǔ)技術(shù)平臺。但也存在CPU選擇受限、硬件耦合性差、變量設(shè)置簡單、梯形圖編程功能深度不夠、二次編程困難、構(gòu)件組合靈活性差、開發(fā)環(huán)境受限、新構(gòu)件融入難度大等問題。雖然經(jīng)過多年改進(jìn)與發(fā)展,從不同角度改進(jìn)了技術(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)進(jìn)行簡要介紹,重點(diǎn)闡述了圖形構(gòu)件化的軟件開發(fā)環(huán)境。

1 GCPLC的體系總體設(shè)計與工作原理

    GCPLC的系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

qrs1-t1.gif

    圖1中的上半部分是GCPLC的軟件開發(fā)環(huán)境部分,主要完成圖形化編程、C語言文件的生成、程序編譯等功能,并且負(fù)責(zé)向硬件部分燒寫程序以及實(shí)現(xiàn)實(shí)時監(jiān)控。下半部分的GCPLC硬件部分為整個系統(tǒng)的核心,負(fù)責(zé)執(zhí)行程序。硬件部分帶有多路普通/高速的GPIO接口、高速PWM以及差分輸入輸出接口、CAN總線接口、485信號接口和232接口,可以實(shí)現(xiàn)普通PLC具備的功能。

    GCPLC系統(tǒng)將開發(fā)環(huán)節(jié)和運(yùn)行環(huán)節(jié)分開操作。在開發(fā)階段,使用圖形構(gòu)件化編程軟件編寫程序,并同時將嵌入式實(shí)時操作系統(tǒng)MQX融入其中;在執(zhí)行階段,硬件部分執(zhí)行程序,有序?qū)Ω鱾€任務(wù)進(jìn)行調(diào)度,并且通過串口與PC通信,從而將硬件部分的信息傳遞給軟件部分,以實(shí)現(xiàn)實(shí)時監(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輸入的實(shí)時性和高效率需求,為GPPLC硬件設(shè)計了帶有電氣隔離特性的高速GPIO輸入電路,如圖2所示。

qrs1-t2.gif

    該電路使用6N137單通道高速光耦合器進(jìn)行輸入輸出,并在輸出端對輸出進(jìn)行濾波后輸出給K60核心板。該電路具有溫度、電流和電壓的補(bǔ)償功能,具有高輸入輸出隔離及抗干擾能力強(qiáng)的特性,電路典型的輸入速率為10 MB/s。

2.2 高速PWM差分輸出電路

    電機(jī)驅(qū)動是一種很常見的工業(yè)控制方式,機(jī)械臂的運(yùn)作、機(jī)器人的行走都離不開電機(jī)驅(qū)動。為了提高PWM的輸出效率,設(shè)計了具有差分能力的高速PWM電路,如圖3所示。

qrs1-t3.gif

    圖3是PWM的輸出部分,在其他部分利用SGM4717雙擲模擬開關(guān)芯片,切換PWM的差分和普通輸出模式。在正常情況下,該P(yáng)WM的輸出速率可達(dá)到100 KB/s以上,可以在工業(yè)控制中對電機(jī)進(jìn)行穩(wěn)定的驅(qū)動和控制。

3 GCPLC圖形化開發(fā)環(huán)境設(shè)計

    在GCPLC系統(tǒng)中,PC可以為用戶提供一個良好的軟件開發(fā)調(diào)試環(huán)境,因此運(yùn)行在計算機(jī)控制系統(tǒng)上的圖形化開發(fā)環(huán)境需要重點(diǎn)進(jìn)行開發(fā)。GCPLC軟件開發(fā)環(huán)境是為了給GCPLC系統(tǒng)提供一個直觀、方便、可拖動、高效的程序開發(fā)平臺。該平臺主要支持圖形化的拖動、C語言的生成、程序編譯、程序?qū)懭?、?shí)時監(jiān)控等功能。

    該平臺采用PC作為基本編程工具,應(yīng)用Visual Studio 2012作為開發(fā)環(huán)境,編程語言舍棄了傳統(tǒng)PLC采用的梯形圖編程方式,選用了全新的圖標(biāo)拖動及連接的編程語言,使得程序的二次開發(fā)變得更加容易,程序結(jié)構(gòu)也變得更加清晰,并且添加了復(fù)制、剪切、刪除、粘貼、右鍵菜單等人性化的快捷操作。在燒寫程序之前,需要對程序進(jìn)行編譯,由編譯器負(fù)責(zé)檢查用戶編寫的程序,并且將錯誤反饋給用戶。若編譯程序無誤,則可以將用戶程序?qū)懭隚CPLC硬件板。該開發(fā)平臺主要由以下模塊組成:

    (1)圖標(biāo)控件模塊。包含了編寫程序需要的所有控件,控件分為執(zhí)行控件、傳感器控件、通信控件、流程控件、任務(wù)控件5個大類。每個大類下又包含了若干個具體的子控件。

    (2)控件連接及屬性設(shè)置模塊。該模塊是進(jìn)行控件拖拉和連線的模塊,也是整個開發(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)定、成功地運(yù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ù)控件也是各有不同的,因此實(shí)現(xiàn)任務(wù)控件的動態(tài)存取也十分重要。而在設(shè)計控件時,為了實(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è)置模塊是進(jìn)行控件拖拉、連線、程序順序設(shè)計的模塊,也是整個開發(fā)平臺的核心所在,若干個控件通過不同的順序連接,將會生成截然不同的程序。

    在這個界面中,可以通過雙擊每個控件以編輯該控件的屬性。例如,當(dāng)點(diǎn)擊PWM初始化控件時,便會跳出“PWM初始化”屬性窗口,如圖4所示。

qrs1-t4.gif

    該窗口用于設(shè)置GCPLC硬件上的PWM波的輸出頻率,只需要在文本框中輸入想要的頻率,點(diǎn)擊確定后就可以成功配置PWM的輸出頻率。使用者在編程時可以很容易掌握。其他的控件也具各自的屬性窗口。

    當(dāng)從圖標(biāo)控件模塊拖出控件時,每個控件之間都是各自獨(dú)立的,即使設(shè)置好控件的屬性,這些控件仍然不具備實(shí)際功能,只有通過每個控件頂部和底部的三角形區(qū)域?qū)⑿枰目丶B接起來時,這些控件才會真正起作用,在開發(fā)環(huán)境中新建一個項(xiàng)目文件后會自動生成一個Main圖標(biāo)控件,這個控件是不可編輯的,表示為每個程序的開始。

    為了能適應(yīng)程序較小或者較大的情況,設(shè)計了可縮放的編程界面,當(dāng)需要編寫程序量較大的程序時,可以縮小界面以便于查看完整的程序結(jié)構(gòu)。另外,開發(fā)環(huán)境吸取了PLC編程中梯形圖多行編寫的優(yōu)點(diǎn),設(shè)計了多行顯示的程序結(jié)構(gòu)。同時,當(dāng)控件圖標(biāo)過多超過當(dāng)前顯示頁面時,設(shè)計一套實(shí)時刷新的算法,提升了軟件執(zhí)行效率。

    當(dāng)GCPLC系統(tǒng)需要執(zhí)行多任務(wù)程序時,為了使得各個任務(wù)之間的劃分更加清晰,為主任務(wù)程序和每個子任務(wù)都開辟了單獨(dú)的窗口,用戶每添加一個任務(wù),都會在主任務(wù)窗體中生成一個子任務(wù)控件圖標(biāo),雙擊任務(wù)控件圖標(biāo)后可以編輯相應(yīng)的任務(wù)屬性,如任務(wù)名稱、任務(wù)棧大小、任務(wù)優(yōu)先級等。

3.3 代碼更新顯示模塊

    在控件連接及屬性設(shè)置模塊將各個圖標(biāo)按照自己預(yù)想的順序連線完成后,如果沒有任何可以參照修改的功能,很有可能使得最后燒寫的程序無法正常運(yùn)行,而且僅僅是圖標(biāo)連接也會使得開發(fā)者感覺很疑惑。為了解決這些問題,設(shè)計了代碼顯示區(qū)域。該區(qū)域顯示的代碼與控件連接模塊的連線方式是一一對應(yīng)的,如圖5所示。

qrs1-t5.gif

4 GCPLC整體運(yùn)行實(shí)驗(yàn)

    在本次實(shí)驗(yàn)中,對GCPLC系統(tǒng)進(jìn)行了一次整體上電自檢實(shí)驗(yàn)測試。首先在GCPLC軟件開發(fā)環(huán)境中編寫好上電自檢的程序,這個上電自檢程序?qū)⒋蜷_GCPLC硬件系統(tǒng)中的所有GPIO、PWM、差分輸入/輸出、CAN總線、485、232和數(shù)碼管功能,并且將模塊初始化信息通過串口反饋出來。上電后的串口反饋信息如圖6所示。

qrs1-t6.gif

5 結(jié)論

    GCPLC系統(tǒng)將嵌入式系統(tǒng)、軟件開發(fā)系統(tǒng)融合在一起,形成一個開放式的體系結(jié)構(gòu),相比傳統(tǒng)的PLC具有更高的靈活性和可擴(kuò)展性,從而使得計算機(jī)控制系統(tǒng)不再受傳統(tǒng)PLC硬件的限制,提高了可靠性和可操作性。本系統(tǒng)具有良好的通信能力,能夠完成比較復(fù)雜的多任務(wù)控制功能,可以滿足和實(shí)現(xiàn)當(dāng)前和今后工業(yè)自動化領(lǐng)域控制系統(tǒng)開放性和柔性的要求,為工業(yè)自動化向更高層次的集成提供了可靠的計數(shù)保障,具有廣闊的應(yīng)用前景。

參考文獻(xiàn)

[1] 嚴(yán)奎.嵌入式PLC編程軟件開發(fā)[J].工業(yè)控制計算機(jī),2012,25(10):67-68,70.

[2] 張嵩,術(shù)守喜,丁廣乾.基于ARM的嵌入式PLC的設(shè)計[J].自動化與儀器儀表,2008(3):9-10,23.

[3] 廖常初.PLC編程及應(yīng)用(第4版)[M].北京:機(jī)械工業(yè)出版社,2014.

[4] TROELSEN A.C#與.NET 4高級程序設(shè)計[M].北京:人民郵電出版社,2011.

[5] 王宜懷.嵌入式系統(tǒng)原理與實(shí)踐:ARM Cortex-M4 Kinetis微控制器[M].北京:電子工業(yè)出版社,2012.

[6] 吳玉香,周東霞,林錦赟.嵌入式軟PLC系統(tǒng)的研究和實(shí)現(xiàn)[J].計算機(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)的實(shí)時性研究[J].計算機(jī)應(yīng)用,2007,27(12):272-274.



作者信息:

司蕭俊,王宜懷,白  聰

(蘇州大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州215000)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。