《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于K60的GCPLC系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于K60的GCPLC系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
2017年電子技術(shù)應(yīng)用第2期
司蕭俊,王宜懷,白 聰
蘇州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州215000
摘要: 提出研制圖形構(gòu)件化可編程邏輯控制器(GCPLC)的方案,它是傳統(tǒng)可編程邏輯控制器(PLC)的革新與新模式。與傳統(tǒng)PLC相比,GCPLC具有圖形拖動(dòng)編程、開放的二次編程架構(gòu)、構(gòu)件組合、開發(fā)環(huán)境兼容、構(gòu)件定制擴(kuò)充、RTOS架構(gòu)融入等特點(diǎn)。其目標(biāo)是使GCPLC相對(duì)于傳統(tǒng)PLC,在技術(shù)架構(gòu)、技術(shù)方法、設(shè)計(jì)思想及實(shí)現(xiàn)方式等方面能夠有新突破,在應(yīng)用方面能夠逐步取代傳統(tǒng)PLC。
中圖分類號(hào): TP391
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2017.02.010
中文引用格式: 司蕭俊,王宜懷,白聰. 基于K60的GCPLC系統(tǒng)的設(shè)計(jì)與實(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億美元以上的巨大市場(chǎng),涉及自動(dòng)控制、機(jī)械、裝備、醫(yī)療電子等諸多應(yīng)用領(lǐng)域,為一線基層技術(shù)人員利用嵌入式計(jì)算機(jī)生產(chǎn)實(shí)踐提供了基礎(chǔ)技術(shù)平臺(tái)。但也存在CPU選擇受限、硬件耦合性差、變量設(shè)置簡(jiǎn)單、梯形圖編程功能深度不夠、二次編程困難、構(gòu)件組合靈活性差、開發(fā)環(huán)境受限、新構(gòu)件融入難度大等問(wèn)題。雖然經(jīng)過(guò)多年改進(jìn)與發(fā)展,從不同角度改進(jìn)了技術(shù),但由于技術(shù)架構(gòu)未變,本質(zhì)問(wèn)題無(wú)法根本解決。

    本文基于多任務(wù)操作系統(tǒng)MQX、嵌入式ARM處理器、CAN總線等技術(shù),設(shè)計(jì)了一套包含圖形構(gòu)件化編程軟件及基于恩智浦K60微處理器的圖形構(gòu)件化可編程邏輯控制器(Graphic Component Programmable Logic Controller,GCPLC)硬件的完整系統(tǒng),并對(duì)整個(gè)系統(tǒng)進(jìn)行簡(jiǎn)要介紹,重點(diǎn)闡述了圖形構(gòu)件化的軟件開發(fā)環(huán)境。

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

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

qrs1-t1.gif

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

    GCPLC系統(tǒng)將開發(fā)環(huán)節(jié)和運(yùn)行環(huán)節(jié)分開操作。在開發(fā)階段,使用圖形構(gòu)件化編程軟件編寫程序,并同時(shí)將嵌入式實(shí)時(shí)操作系統(tǒng)MQX融入其中;在執(zhí)行階段,硬件部分執(zhí)行程序,有序?qū)Ω鱾€(gè)任務(wù)進(jìn)行調(diào)度,并且通過(guò)串口與PC通信,從而將硬件部分的信息傳遞給軟件部分,以實(shí)現(xiàn)實(shí)時(shí)監(jiān)控。

2 GCPLC系統(tǒng)硬件設(shè)計(jì)

    GCPLC硬件的主要應(yīng)用目標(biāo)是工業(yè)控制,而可靠性和抗干擾能力是衡量工業(yè)控制中電氣設(shè)備性能的關(guān)鍵指標(biāo),因此在設(shè)計(jì)內(nèi)部電路時(shí),采用了抗干擾技術(shù),其中包括光耦隔離電路、場(chǎng)效應(yīng)管隔離電路等。選用的硬件是具有極高隔離性能的元件,其中包括高速光耦6N137、場(chǎng)效應(yīng)管LR120N等。下面著重介紹高速GPIO輸入電路和高速PWM差分輸出電路。

2.1 高速GPIO輸入電路

    為了能夠滿足工業(yè)控制中對(duì)GPIO輸入的實(shí)時(shí)性和高效率需求,為GPPLC硬件設(shè)計(jì)了帶有電氣隔離特性的高速GPIO輸入電路,如圖2所示。

qrs1-t2.gif

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

2.2 高速PWM差分輸出電路

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

qrs1-t3.gif

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

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

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

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

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

    (2)控件連接及屬性設(shè)置模塊。該模塊是進(jìn)行控件拖拉和連線的模塊,也是整個(gè)開發(fā)環(huán)境的關(guān)鍵。在編寫程序時(shí)可以從上述的圖標(biāo)控件模塊中選擇自己需要的控件,選出控件后可以放置在此模塊上。每個(gè)控件的頂部和底部都有一塊三角形區(qū)域,當(dāng)選定了若干個(gè)控件后,將這些控件的三角形區(qū)域連線,則可以組成一段程序。

    (3)代碼更新顯示模塊。當(dāng)連接好控件連接模塊中的控件后,該模塊便會(huì)自動(dòng)生成相應(yīng)的代碼。使用者只需要簡(jiǎn)單的C語(yǔ)言基礎(chǔ),便可以更好地理解這整段程序?qū)崿F(xiàn)的功能。

3.1 圖標(biāo)控件模塊

    為了方便二次開發(fā),在設(shè)計(jì)開發(fā)平臺(tái)時(shí)決定放棄傳統(tǒng)PLC的使用的梯形圖編程方法,轉(zhuǎn)而設(shè)計(jì)了開發(fā)者門檻更低、更加容易理解的圖標(biāo)形式的控件,一段完整的程序要能夠穩(wěn)定、成功地運(yùn)行,則需要C語(yǔ)言執(zhí)行所需要的基本流程,基于程序執(zhí)行的基本流程,將圖標(biāo)控件模塊劃分為之前所闡述的5個(gè)大類。

    執(zhí)行控件主要包括一些需要執(zhí)行的操作,例如開關(guān)中斷、設(shè)置延時(shí)、設(shè)置IO輸入/輸出等;傳感器控件包含GCPLC需要的傳感器,例如超聲波傳感器、AD傳感器等;通信控件包含與硬件核心板通信相關(guān)的控件,例如I2C、SPI、UART等;流程控件則是與程序執(zhí)行相關(guān),所以包含IF判斷、條件循環(huán)、計(jì)數(shù)循環(huán)之類的控件;任務(wù)控件則是為了程序的多任務(wù)協(xié)調(diào)執(zhí)行而設(shè)置的,所以每當(dāng)用戶添加一個(gè)任務(wù),任務(wù)控件中也會(huì)生成相應(yīng)的控件。

    為了使開發(fā)平臺(tái)自身更具有拓展性,設(shè)計(jì)了一套從Access數(shù)據(jù)庫(kù)讀取控件名稱和控件圖片等相關(guān)屬性的算法,當(dāng)需要增加某種控件時(shí),只需要設(shè)置好該控件的相應(yīng)屬性,存入數(shù)據(jù)庫(kù)即可。而對(duì)于每一個(gè)用戶程序,其中的任務(wù)控件也是各有不同的,因此實(shí)現(xiàn)任務(wù)控件的動(dòng)態(tài)存取也十分重要。而在設(shè)計(jì)控件時(shí),為了實(shí)現(xiàn)程序的通用性,設(shè)計(jì)了圖標(biāo)控件Icon類,其關(guān)鍵代碼如下:

    public LinkIconType IconType;//控件的類型

    public string ModuleName;//控件名字

    public int IconArrNum;//控件在控件數(shù)組中的下標(biāo)

    public int IconDbNum;//控件在數(shù)據(jù)庫(kù)中的序號(hào)

    public PictureBox IconPicBox;//控件的圖片

    public PictureBox MoveToIconPicBox;//鼠標(biāo)移動(dòng)到控件上時(shí)顯示的圖片

    public int IconLeftDotNum; //控件圖標(biāo)的左側(cè)的Dotsize個(gè)數(shù)

    public int IconTopDotNum; //控件圖標(biāo)的上側(cè)的Dotsize個(gè)數(shù)

3.2 控件連接及屬性設(shè)置模塊

    控件連接及屬性設(shè)置模塊是進(jìn)行控件拖拉、連線、程序順序設(shè)計(jì)的模塊,也是整個(gè)開發(fā)平臺(tái)的核心所在,若干個(gè)控件通過(guò)不同的順序連接,將會(huì)生成截然不同的程序。

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

qrs1-t4.gif

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

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

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

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

3.3 代碼更新顯示模塊

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

qrs1-t5.gif

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

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

qrs1-t6.gif

5 結(jié)論

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

參考文獻(xiàn)

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

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

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

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

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

[6] 吳玉香,周東霞,林錦赟.嵌入式軟PLC系統(tǒng)的研究和實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2009(10).

[7] 謝春杰.嵌入式軟PLC的研究與設(shè)計(jì)[D].南京:南京理工大學(xué),2014.

[8] 郭建勛.嵌入式軟PLC開發(fā)系統(tǒng)的設(shè)計(jì)[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í)時(shí)性研究[J].計(jì)算機(jī)應(yīng)用,2007,27(12):272-274.



作者信息:

司蕭俊,王宜懷,白  聰

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

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