999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式軟PLC編程系統的設計

2010-09-22 06:55:28安靜
電氣傳動自動化 2010年6期
關鍵詞:嵌入式信息系統

安靜

(廣東松山職業技術學院電氣工程系,廣東韶關512126)

1 引言

隨著控制技術向網絡化、智能化和開放式發展,傳統PLC逐漸暴露出其許多不足。主要表現為技術封閉,造成了各生產廠商的PLC產品互不兼容,且編程開發方法差別很大,技術專門性很強,用戶必須經過長期培訓才能掌握其中一種產品的開發方法,這些問題制約了傳統PLC的快速發展[1]。隨著計算機科學的發展和工業控制的IEC61131國際標準的制定,出現了用軟件方式實現傳統PLC控制功能的軟PLC技術。

軟PLC具有符合現代工業控制技術的優點,體系結構開放,支持多種硬件環境,解決了傳統硬PLC互不兼容的問題。軟PLC把控制運算的功能封裝在軟件中,具有傳統PLC的功能,可在計算機操作系統中實現程序的編輯、運算、編譯、存儲等功能,具有編程語言標準化、控制功能模塊化、硬件配置靈活等特點[2]。

本文介紹的嵌入式軟PLC編程系統軟件在Windows環境下引入VC++開發工具,利用VC++強大的軟件功能,使人機交互界面更友好,由于VC++固有的面向對象機制,可方便地設計梯形圖數據結構,并結合相應的算法,完成軟PLC編程系統設計。本文主要給出編輯、編譯和仿真模塊。

2 嵌入式軟PLC系統的總體框架

圖1 嵌入式軟PLC系統總體框圖

嵌入式軟PLC主要由編程系統和運行系統組成。編程系統進行梯形圖的編輯、指令的解析以及生產目標代碼;運行系統執行目標代碼,實現控制目的[3]。其總體架構如圖1所示。

軟PLC編程系統的編程語言基于國際電工委員會發布的IEC61131-3國際標準,是一個通用的開發環境,主要是由編輯、編譯、仿真和通信四大模塊組成[4]。其中編輯模塊提供用戶程序開發環境;編譯模塊實現對用戶程序的掃描和編譯;仿真模塊用以離線模擬、調試用戶程序;通信模塊負責把編譯后的用戶程序目標代碼下載到運行系統。

3 軟PLC編程系統的界面設計

IEC61131-3國際標準(International Electro technical Commission)定義了5種PLC編程語言的規范:梯形圖(LD)、順序功能圖(SFC)、功能模塊(FBD)、結構化文本(ST)和指令表(IL)[3]。由于梯形圖簡單、直觀,所以本編程系統主要采用梯形圖作為用戶程序的開發語言。

本軟件采用VC++開發工具,并基于多文檔的Document/View結構設計,以支持梯形圖和指令表對應的格式—*.lad和*.txt。其界面由梯形圖編輯區、指令表區和信息輸出區三部分組成,如圖2所示。

圖2 軟PLC編程系統主界面

1)梯形圖編輯區用于梯形圖駐留和相關參數的設置;

2)指令表區用于顯示梯形圖對應的邏輯指令;

3)信息輸出區顯示梯形圖可能的語法錯誤信息以及正確執行后的輸出信息。

4 梯形圖數據結構設計

4.1 梯形圖元件類的繼承關系設計

梯形圖元件包括常開觸點、常閉觸點和輸出線圈等簡單元件和定時器、計數器、數據運算(包括加減運算、比較運算等)等復雜元件。由面向對象的繼承特性,可以抽象出一個類作為梯形圖元件的總體接口,再以這個類為基礎,派生出具體的元件子類。梯形圖元件的抽象類定義如下:

由此抽象類派生出簡單元件類和復雜元件類,并擴充相應的屬性和方法操作;再由這兩類派生出具體元件類,如常開觸點或定時器等。如圖3所示為各元件類型的繼承樹示意圖。

圖3 梯形圖元件類型的繼承關系

4.2 梯形圖容器的數據結構設計

整個存儲梯形圖的容器選擇用雙向鏈表結構表示。其原因基于以下兩點:①對梯形圖的添加、修改、刪除等操作,能夠方便地運用鏈表的存儲結構完成;②梯形圖的編輯過程是動態的,梯形圖的行數、列數和元件類型都是未知的,這種動態存儲過程,用鏈表結構比其它的數據結構表達得更為清楚、有效。

存儲梯形圖的雙向鏈表在文檔類中定義為:CObList m_LADList,存儲梯形圖的容器。由此,添加梯形圖元件,實質就是在內存中建立相應的對象,并調用鏈表的AddHead或AddTail函數加入該對象的指針;而刪除梯形圖元件,實質就是調用鏈表的RemoteHead或RemoveTail函數移除鏈表中對應對象的指針。下列代碼表示生成一個常開元件對象,并把該對象的指針加入到鏈表中:

//通過簡單工廠生成常開元件對象

pLADEle=CPLCFactory::GetInstance(TYPE_POSITIVE);

pLADEle->SetIsSelected(FALSE);

//將常開元件對象的指針加到鏈表中

//這里,plcList是指向 m_LADList的指針plcList->AddHead(pLADEle);

4.3 用戶對梯形圖元件的控制

用戶通過與編程界面的交互,達到對梯形圖元件的控制。為了縮小顯示、控制和梯形圖元件三者間的耦合性,可引入MVC(Model-View-Control)模式解決。其中,由VC++中的CView類充當顯示部分,并設計CPLCEleController類用以控制梯形圖元件。CPLCEleController類依賴于工廠類CPLCEleFactory類,通過簡單工廠模擬以創建梯形圖元件實體,并且針對編輯、編譯和仿真的操作封裝了相應方法。其定義如下:

5 梯形圖的編輯

梯形圖的編輯部分封裝于視圖類,能實現存儲與顯示分離,以有效降低代碼的耦合性。

梯形圖的編輯大體可分為以下步驟:①選擇所要加載的梯形圖元件類型;②用戶在編輯區單擊鼠標,掃描程序獲取單擊對應位置的笛卡兒坐標值;③添加該梯形圖元件到存儲鏈表中;④在窗口中顯示該梯形圖;⑤設置梯形圖元件的其它參數。

5.1 梯形圖的繪制

矢量圖是計算機通過數學表達式解析的圖形,具有內存消耗小,操作靈活的特點。因此,本軟件按矢量繪制梯形圖。

在VC++中,MFC類庫中的CDC類封裝了矢量圖的相關操作,由此,對梯形圖的繪制可以通過遍歷鏈表,并調用CDC類對象指針的函數來完成。并基于面向對象的多態性調用各元件實際的繪制操作:

梯形圖被繪制后,其類型、行號、列號信息均被確定。而其它的參數,如元件編號、定時器的時基,由用戶輸入確定,具體可以通過添加消息映射函數,掃描鼠標操作實現。當用戶雙擊某梯形圖元件時,彈出參數設置對話框,輸入數據后,相關的參數就被綁定在該元件對象中。下面的代碼片段表示對定時器設置參數。

5.2 梯形圖的序列化

要實現梯形圖的多次編輯,就要對梯形圖實現序列化,將其保存為文件;而當再次調用時,需要把程序加載到內存。

對于Document/View結構,數據都存放于CDocument類里,將其中的變量寫入文件,即實現了梯形圖的序列化;打開文件時,通過動態創建機制,把其中變量導入內存,即實現了梯形圖的反序列化。

由于梯形圖元件類繼承了CObject類,因此,運行時其自身具有類型識別和動態創建的功能,在CArchive類中調用重載的讀寫運算符">>"和"<<",就能執行相應文件緩沖區建立和數據讀寫。

6 梯形圖的編譯

梯形圖的編譯是編程系統的關鍵部分,因為編譯的實質是把用戶編輯的梯形圖程序,經過語法分析和邏輯分析,循環掃描,最終生成運行系統可識別的目標程序。

按照梯形圖編程語言規范,編譯程序掃描梯形圖,經過語法分析和邏輯分析后,若發現梯形圖有錯誤,便生產相應的錯誤提示信息,并復制到用戶界面。

6.1 梯形圖的掃描

梯形圖掃描和編譯以梯級為單位,且梯級是由相互影響的行組成的最小單元,圖4所示為一個梯級。對梯形圖的掃描采用深度掃描算法,即以豎線元素作為邏輯區分,對梯形圖網絡自左向右,從上到下,逐個元素進行。

圖4 梯形圖掃描過程圖

以圖4為例,一個梯形圖梯級的深度掃描過程為:①首先讀取串聯關系的元件X1和X2;②遇到并聯接點A,從而轉至下一行掃描,讀取元件X4;③遇到并聯接點B,轉至下一行,讀取元件X6;④回到并聯接點B,讀取元件X5;⑤回到并聯接點A,讀取元件X3;⑥讀取輸出元件Y1,則完成該梯級的掃描和編譯。

實踐證明,該掃描算法容易實現,能深入解析梯形圖邏輯關系,占用存儲空間較少,掃描效率較高。

6.2 梯形圖數據信息的記錄

為了提高移植性,降低運行系統程序與VC++程序的耦合度,本軟件引入了生成相應配置文件技術,以記錄梯形圖的數據信息,供仿真模塊或運行系統讀取。

梯形圖被掃描過程,程序自動生成梯形圖相關的邏輯關系數據對應的配置文件,用四組數字分別代表梯形圖的類型、連接關系,包括復雜元件中定時器的時基等數據信息,以備在運行系統加載。其梯形圖數據信息存儲結構示例如表1所示。

表1存儲了一個梯形圖的梯級信息,一個梯形圖元件對應表中的一格,表中"X-X-X-X"的格式為簡單的元件信息,分別表示“元件類型-連接關系-存儲類型-對應存儲類型數組的偏移量”。如表中第1行第1列的"1-0-0-25"數據,代表梯級中位于第1行第1列,無并聯關系的常開觸點,它在簡單元件類型輸入數組中的存儲偏移量為25。

表1 梯形圖數據信息存儲結構示例

7 梯形圖的仿真

為了判定被編譯程序執行的正確性,本編程系統設計了仿真模塊,以模擬現場梯圖程序運行。仿真需要將梯形圖程序轉化為C程序,以實現邏輯控制。

仿真模塊主要分為邏輯運算模塊、算術運算模塊和梯形圖更新顯示模塊。其中,邏輯運算模塊是仿真模塊的核心,負責對梯形圖數據信息的識別,以及邏輯狀態的轉移。

仿真程序通過讀取存儲梯形圖邏輯信息的配置文件,并還原對應每個梯形圖元件及相應的邏輯關系。以下的代碼片段通過運行是類型識別,反映了當前讀取的元件是常開/常閉觸點或輸出線圈時的邏輯運算:

//常閉觸點,右連接:=左連接取反

//常開觸點,右連接:=左連接,不需改動

//輸出能流為左連接狀態和本元件狀態相與

動態仿真過程在梯形圖編輯區實時顯示方便用戶進行錯誤定位、追蹤。具體表現為梯形圖元件能流導通時的變色反顯,可通過重繪觸發的方式實現。

8 結束語

本嵌入式軟PLC編程系統實現了梯形圖的編輯、編譯和仿真功能。并基于VC++開發平臺面向對象的封裝、繼承和多態性,通過編輯過程引入存儲梯形圖信息的配置文件,實現了編譯與仿真的橋接,有效地降低了與VC++開發環境的耦合度,移植性強。

[1] 高金剛,陳建春,劉雄偉.數控系統的軟PLC系統開發[J] .計算機測量與控制,2004,12(3):254-256.

[2] 肖世廣,李 彥,吉 華.Linux環境下基于Qt庫的軟件PLC 編程系統[J] .計算機工程與設計,2007(4):1663-1666.

[3] 黃延延,林 躍,于海彬.軟PLC技術研究及實現[J] .計算機工程,2004,30(1):165-167.

[4] 江連海.嵌入式控制系統開發平臺上軟PLC的實現[D] .華中科技學,2005:14-17.

猜你喜歡
嵌入式信息系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
Altera加入嵌入式視覺聯盟
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
主站蜘蛛池模板: 刘亦菲一区二区在线观看| 少妇极品熟妇人妻专区视频| 精品剧情v国产在线观看| 色婷婷电影网| 91色在线观看| 欧美激情网址| 欧洲极品无码一区二区三区| 一区二区三区毛片无码| 欧美高清视频一区二区三区| a级毛片免费网站| 亚洲欧洲自拍拍偷午夜色| 亚洲首页国产精品丝袜| 国产真实乱了在线播放| 国产一区二区人大臿蕉香蕉| 国产精品短篇二区| 久久人与动人物A级毛片| 美女免费黄网站| 午夜在线不卡| 国产精品视频观看裸模| 日韩色图区| 熟妇丰满人妻av无码区| 99re视频在线| 91精品人妻一区二区| 日韩精品中文字幕一区三区| 无码免费视频| 亚洲人人视频| 国产一级α片| 精品1区2区3区| 五月丁香在线视频| 国产精品无码制服丝袜| 亚洲第一色网站| 国产成+人+综合+亚洲欧美| 狠狠躁天天躁夜夜躁婷婷| 九色在线观看视频| 国产一级二级在线观看| 中文字幕人成乱码熟女免费| 五月婷婷欧美| www.精品视频| 国产在线无码av完整版在线观看| 一级毛片不卡片免费观看| 天天爽免费视频| 亚洲人成网7777777国产| 欧美a在线| 中文一区二区视频| 亚洲国产理论片在线播放| 手机看片1024久久精品你懂的| 久久亚洲精少妇毛片午夜无码| 亚洲日韩久久综合中文字幕| 国产福利一区视频| 91精品久久久无码中文字幕vr| 亚洲国产清纯| 欧美日韩中文国产| 久久综合干| 呦女亚洲一区精品| 日韩欧美网址| 亚洲天堂网在线观看视频| 成人亚洲国产| 日韩人妻精品一区| 亚洲精品波多野结衣| 综合久久五月天| 国产精品欧美激情| 亚洲国产精品一区二区第一页免 | 日韩福利视频导航| 99青青青精品视频在线| 亚洲一区国色天香| 午夜激情福利视频| 91青青视频| 五月婷婷丁香综合| 777午夜精品电影免费看| 国产素人在线| 欧美.成人.综合在线| 九九久久精品国产av片囯产区| 永久在线播放| 免费激情网址| 99热这里只有精品在线观看| 国产成人喷潮在线观看| 无码内射在线| 天堂成人在线| 国产乱人伦AV在线A| 日韩一区二区三免费高清| 无码aⅴ精品一区二区三区| 久久久久青草线综合超碰|