《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 軟PLC編程系統軟件的設計
軟PLC編程系統軟件的設計
來源:電子技術應用2012年第6期
侯艷君
華北水利水電學院, 河南 鄭州 450011
摘要: 采用面向對象和多線程技術設計,實現了軟PLC編程系統軟件在PC環境中進行梯形圖的繪制、編輯、存儲、加載、調試及仿真等功能。研究了梯形圖程序存儲與加載的實現方式和仿真模塊中線程的應用,提出了一種編碼規則表示控件,采用記事本格式存儲程序。軟件界面友好,用戶操作方便,提高了PLC編程效率,方便了PLC的離線調試。
中圖分類號: TP391
文獻標識碼: A
文章編號: 0258-7998(2012)06-0141-04
Development of soft PLC programming system
Hou Yanjun
North China Institute of Water Conservancy and Hydroelectric Power, Zhengzhou 450011, China
Abstract: The soft PLC programming system software was designed and implemented using object-oriented technology and multithread technology. It was achieved to design, edit, save, load, debug ladder diagram and to simulate program run etc. in PC(Personal Computer) environment. The thesis focused on realization of saving and loading ladder diagram programs and multithread technology application in simulating module. A kind of coding rule was proposed to express controls, to save programs with notepad format. It has friendly user interface, easy operation, which promotes efficiency of programming, and also facilitates PLC off-line debugging.
Key words : soft PLC; simulation; multithread technology; C++ Builder

    計算機科學的快速發展和IEC61131-3標準的制定有力推動了軟PLC(Programmable Logic Controller)技術的發展。軟PLC技術是一種基于PC的新型控制技術,相對于傳統的硬PLC而言,軟PLC具有開放的體系結構、強大的網絡通信能力和數據處理能力, 能較好地滿足工業自動化領域中控制系統開放性和柔性的要求,是目前工業自動化領域研究的熱點之一。所謂軟PLC技術[1],就是以PC作為硬件支撐平臺,利用軟件實現傳統PLC的基本功能,即將PLC的控制運算功能封裝在軟件內,運行于PC的環境中。這樣的控制系統在提供了PLC相同功能的同時,也具備了PC的各種優點。

    本文介紹的軟PLC編程系統軟件采用Windows多任務環境下的多線程技術,以C++ Builder為主要開發平臺,利用其強大的軟件功能,使人機交互界面更為友好。由于C++ Builder固有的面向對象機制,可方便地設計梯形圖數據結構,并結合相應的算法,完成軟PLC編程系統設計。本文設計了界面友好的編輯環境和方便靈活的編輯方式,實現了可視化、規范化的梯形圖設計,方便用戶使用,提高了PLC編程效率。對提高當前軟PLC梯形圖編程軟件通用化和標準化做出了有益的嘗試和探索。
1 總體設計
1.1軟PLC系統的體系結構

    軟PLC系統包括編程系統和運行系統,如圖1所示[1-2]。編程系統是基于Windows環境的編程工具,運行于普通PC機上。它獨立于運行系統,主要完成PLC源程序的編輯、編譯以及仿真功能。編程系統最終產生一份滿足控制要求的目標代碼,運行系統在啟動時就可以加載該目標代碼,對其進行解釋執行,并控制對象進行交互,完成輸入、輸出處理等工作,最終實現控制功能。

1.2 功能分析
    經分析,編程系統軟件應具有以下功能:(1)編程和仿真功能:編程功能主要包括程序錄入、修改、文件存取和語法檢查功能;仿真功能包括模擬開關控制、模擬脫機運行過程。(2)提供菜單和工具欄兩種操作方式,輸入輸出采用直觀的圖形方式,便于用戶直觀地編輯梯形圖程序。(3)順序控制功能、邏輯控制功能、數據控制功能、定時/計數功能和監控功能。(4)可對PLC用戶程序進行正確性檢查(包括編程元件的使用、語法和邏輯關系正確性檢查)。(5)實現常見PLC的內部編程元件的仿真,實現PLC指令解釋器的仿真。(6)與Windows界面一致,提供中英文兩種語言界面與隨機幫助,支持對程序的注釋。
1.3 模塊劃分
    根據功能需求分析,采用模塊化的思想進行軟件設計,將編輯系統軟件劃分為主模塊、輸入模塊、支持模塊,仿真模塊和通信模塊。軟件的組成及其相互間的關系如圖2所示。

    主模塊完成軟件運行參數的初始化,協調其他各模塊調用控制,程序打開、顯示、保存等。支持模塊進行類、對象和結構體的定義。輸入模塊通過對具體的指令類對象的調用,對數據成員進行賦值、修改等操作,錄入、編輯PLC應用程序。仿真模塊模擬PLC中的繼電器、寄存器及相關I/O變量,有效模擬現場被控對象信號輸入,直觀地描述各個繼電器的相互控制關系,通過時序圖實時監控所有(或部分) 程序使用的繼電器的通斷狀態。通信模塊在編輯系統和運行系統間進行通信,把經過編譯和脫機調試后的目標代碼文件下載到運行系統中。
2 存儲與加載的實現
    IEC61131-3標準[3]規定了5種編程語言,其中梯形圖(Ladder Diagram)是應用最廣泛的編程語言,是PLC編程的最重要編程語言,因此本系統采用梯形圖(LD),其他語言待以后進一步加入和完善。梯形圖程序的保存采用操作系統自帶的記事本,由此需要制定編碼規則,并按照這個固定的規則存儲數據或打開顯示梯形圖。
2.1 編碼規則制定
     PLC程序中需要表示的控件主要有常開觸點NO,常閉觸點NC,輸出觸點OP,記時器觸點TM,記數器觸點CT、MC、MCE、跳轉控制觸點JP、LAL,上升沿觸點DF、下降沿DF/,進棧ANS、ORS、PUSH、RDS、POPS、置位觸點SET,復位觸點RST,保持觸點KEEP,橫線及豎線等[3-4]。必須為每個觸點設定一個專用的標志符號,以便于保存、打開程序時能夠識別這些控件。采用字符串與數字組合表示每一個觸點控件的相關信息,制定規則如圖3所示。

 

 


    文件加載時,通過制定的規則進行譯碼,執行的順序與存儲文件基本相同。
3 多線程技術的應用
    Windows多任務環境下的多線程技術是將CPU的時間劃分成許多時間片段,并按照一定的優先級將時間片段分配給各個線程,各線程在各自的時間片段內共享CPU,從而實現微觀上的輪次執行宏觀上并發運行的多任務機制。多線程技術的主要優勢在于充分利用了CPU的空閑時間片,用盡可能少的時間對用戶的要求做出響應,使得進程的整體運行效率得到較大提高,同時增強了應用程序的靈活性。
    PLC的工作原理是一個“順序掃描、不斷循環”的單線程循環過程[4]。如果軟件采用單線程,一旦開始執行PLC程序,CPU將被這個死循環完全占用,軟件的其他事件得不到系統響應,無法運行。因此,決定采用多線程機制[5-6]。仿真模塊占用2個線程:(1)控制程序在“在線模式”與“離線模式”之間轉換;(2)精確地實時監控。加上系統本身的主線程,共有3個線程。在C++Builder中,通過File/New/Other下new頁面的“Thread Object” 即可輕松地建立多個線程[5]。
     實時監控線程的作用是不斷地讀取程序運行中各個繼電器的狀態,并將狀態的值返回到時序圖,以控制時序圖的輸出。線程對各繼電器狀態的讀取采用鏈表的形式,依次讀各節點的屬性。當啟動線程時,線程會執行Execute()函數中的程序,GO按鈕調用Resume()函數啟動線程,STOP按鈕調用Suspend()函數暫停線程。運行時,從頭開始遍歷讀取各個繼電器的通電狀態的powered屬性,如果powered=true,則在時序圖上做高為20、以淡綠色填充的矩形,表示繼電器處于通電狀態;如果powered=false,則在梯形圖上作高為20的矩形,將矩形設置為與窗體相同的顏色,使視覺上感覺好像沒有畫矩形圖,以達到顯示不通電狀態的效果。矩形左上角的X坐標用一個xstart變量來取值,xstart的值為powered 改變的那一刻的Image1的水平位置;右下角的X坐標始終為Image1的水平位置,不停地變化。為了限制時序圖的大小,等到Image1走到一定的位置,即將它復位到起始點,重新開始畫圖。程序片段如下[5]:
    if(powered)   
    {TimingmapForm->Canvas->Brush->Color=clLime;                TimingmapForm->Canvas->Pen->Style=psSolid; }
    else
    {TimingmapForm->Canvas->Brush->Color=clWhite;                 TimingmapForm->Canvas->Pen->Style=psClear;}
    TimingmapForm->Canvas->Rectangle(xstart,count*30+50,left-1,count*30+70)。
    以C++ Builder為開發平臺,采用面向對象和多線程技術,實現了在PC機上進行PLC程序的編制、調試和邏輯結果的仿真,使PLC程序編制、調試與硬件脫離。軟件提供了菜單和工具欄兩種操作方式,操作簡單,便于用戶直觀地畫梯形圖程序,具有較高的應用和實踐價值, 對其他類似模擬系統的設計也具有參考價值。
參考文獻
[1] 吳玉香,周東霞,林錦赟.嵌入式軟PLC系統的研究和實現[J].計算機工程,2009,35(10):235-237.
[2] 賀無名,余強國.基于嵌入式軟PLC的礦井提升機控制系統設計[J].煤礦機械,2011,32(6):244-246.
[3] 彭瑜,何衍慶.IEC 61131-3編程語言及應用基礎[M].北京:機械工業出版社,2009.
[4] 吳建強.可編程控制器原理及其應用(第2版)[M].北京:高等教育出版社,2004.
[5] 陸衛忠,劉文亮.C++Builder 6程序設計教程(第2版)[M].北京:科學出版社,2009.
[6] 章德賓,胡斌,張金隆.多線程技術與分布式并發離散事件仿真[J].計算機仿真,2007,24(1):97-100.
[7] 王紀森,王俊,周宇.基于多線程的電液伺服加載系統測控軟件設計[J].機床與液壓,2009,37(10):159-160.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久国产精品99精品国产| 欧美日本一区| 亚洲免费观看高清完整版在线观看熊 | 另类图片国产| 久久久噜噜噜久久中文字幕色伊伊| 亚洲在线一区二区三区| 亚洲深夜福利视频| 亚洲影院免费观看| 亚洲一区二区三区中文字幕| 亚洲一区二区在线视频| 亚洲性夜色噜噜噜7777| 亚洲特黄一级片| 亚洲免费在线播放| 西西人体一区二区| 欧美自拍偷拍| 久久久久亚洲综合| 久热精品视频在线观看一区| 欧美v亚洲v综合ⅴ国产v| 免费观看亚洲视频大全| 欧美国产一区二区在线观看| 欧美精品久久久久久| 欧美日韩国产小视频| 欧美日韩在线精品一区二区三区| 欧美视频手机在线| 国产精品久久久久久久久久三级| 国产精品毛片a∨一区二区三区|国 | 亚洲免费大片| 亚洲一区二区三区在线| 性伦欧美刺激片在线观看| 欧美一区影院| 久久这里只精品最新地址| 欧美成人官网二区| 欧美精品午夜视频| 国产精品二区在线观看| 国产伦精品一区二区三区高清| 国产性猛交xxxx免费看久久| 激情自拍一区| 亚洲欧洲一区二区天堂久久 | 国产精品v亚洲精品v日韩精品| 国产精品成人观看视频国产奇米| 国产精品日韩精品欧美在线| 国产一区二区三区免费不卡| 亚洲国产成人精品久久| 一本色道久久88精品综合| 午夜亚洲性色福利视频| 亚洲欧洲精品一区二区三区波多野1战4 | 国产麻豆日韩| 在线观看亚洲专区| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲一区三区电影在线观看| 久久精品国产一区二区三| 亚洲美女中出| 欧美与欧洲交xxxx免费观看| 农村妇女精品| 国产精品裸体一区二区三区| 永久免费视频成人| 一区二区三区黄色| 亚洲国产精品国自产拍av秋霞 | 亚洲一区网站| 久久夜色撩人精品| 欧美亚韩一区| 精品99视频| 中日韩高清电影网| 亚洲欧洲另类| 欧美亚洲综合网| 欧美精品二区| 国产亚洲精品久久飘花 | 亚洲精品一二三| 性色av一区二区三区红粉影视| 免费不卡亚洲欧美| 国产精品日韩在线| 亚洲激情在线观看视频免费| 亚洲欧美另类中文字幕| 亚洲久久在线| 久久久精品久久久久| 国产精品福利久久久| 在线看片日韩| 欧美伊人久久久久久午夜久久久久 | av不卡在线看| 久久久午夜电影| 国产精品久久久久91| 亚洲国产精品一区制服丝袜| 午夜免费日韩视频| 亚洲视频 欧洲视频| 嫩模写真一区二区三区三州| 国产精品视频一区二区三区| 亚洲人成网在线播放| 欧美主播一区二区三区| 亚洲欧美色婷婷| 欧美日本韩国| 亚洲激情成人| 亚洲国产精品一区在线观看不卡| 午夜日韩福利| 欧美视频网站| 日韩午夜电影| 亚洲精品国产品国语在线app| 久久精品欧美日韩精品| 国产精品每日更新| 99精品国产一区二区青青牛奶| 亚洲精品黄色| 麻豆av一区二区三区| 国产日韩欧美视频| 亚洲视频专区在线| 亚洲性视频h| 欧美日韩国产综合新一区| 亚洲狠狠丁香婷婷综合久久久| 亚洲成色999久久网站| 欧美一级理论性理论a| 国产精品欧美久久久久无广告| 日韩一区二区精品视频| 亚洲三级观看| 欧美成在线视频| 亚洲国产另类精品专区| 亚洲第一主播视频| 久久久夜夜夜| 国精产品99永久一区一区| 欧美在线国产精品| 久久精品一区二区三区不卡| 国产日韩欧美中文在线播放| 国产精品v欧美精品v日韩 | 欧美乱妇高清无乱码| 欧美一区二区三区视频在线| 国产精品免费在线 | 亚洲精品一区在线| 亚洲每日更新| 欧美激情久久久久久| 亚洲国产精品va| 99热免费精品在线观看| 亚洲人成在线观看| 亚洲高清网站| 老司机精品导航| 影音先锋亚洲精品| 亚洲欧洲精品一区二区| 另类春色校园亚洲| 在线精品国产欧美| 亚洲精品一区在线| 欧美极品在线观看| 亚洲高清av| 日韩一级视频免费观看在线| 欧美成人嫩草网站| 91久久国产综合久久91精品网站| 亚洲免费观看高清完整版在线观看熊| 欧美精品videossex性护士| 亚洲精品一区久久久久久| 亚洲一区久久| 国产视频一区三区| 亚洲国产精品视频| 欧美日韩在线精品一区二区三区| 一区二区三区高清| 欧美一级淫片播放口| 国产一区二区三区的电影 | 久久精品视频在线观看| 黄色国产精品一区二区三区| 亚洲精选在线| 欧美三区美女| 午夜精品一区二区三区四区 | 亚洲巨乳在线| 亚洲欧美另类中文字幕| 精品成人在线观看| 一本色道久久综合亚洲精品小说| 国产精品magnet| 欧美影视一区| 欧美女同在线视频| 亚洲欧美久久久| 老巨人导航500精品| 亚洲精品久久久一区二区三区| 亚洲欧美久久| 激情六月婷婷久久| 一本色道久久综合狠狠躁篇怎么玩 | 国产精品午夜av在线| 亚洲国产一区二区三区a毛片| 亚洲午夜精品久久| 国产欧美一区二区三区久久 | 国产女主播一区二区三区| 亚洲国产精彩中文乱码av在线播放| 欧美精品久久久久久久久久| 亚洲综合电影| 欧美多人爱爱视频网站| 亚洲欧美在线视频观看| 欧美黑人一区二区三区| 亚洲一区二区三区视频| 欧美 日韩 国产在线 | 亚洲国产第一| 午夜精品一区二区三区在线播放| 黑人巨大精品欧美黑白配亚洲| 一本色道久久综合| 好吊色欧美一区二区三区视频| 中文在线不卡视频| 国内精品久久久久影院优| 亚洲视频精选| 亚洲国产高清aⅴ视频| 午夜亚洲视频| 亚洲欧洲一区二区三区| 久久精品男女| 亚洲视频在线观看一区| 欧美精品在线看| 久久精品人人| 国产精品一区二区在线观看不卡 | 香蕉亚洲视频| 欧美日韩国产麻豆|