《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 軟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網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产综合在线播放 | 我妻子的姐姐2 | 色的视频在线观看免费播放 | 国产欧美专区在线观看 | 日本高清色惰www在线视频 | 国产一区二区三区欧美 | 亚洲欧美日韩综合一区久久 | 精品久久一| 日韩欧美在线播放视频 | 欧美在线一区二区 | 奇米网777 | 国产综合视频在线观看一区 | 涩色婷婷狠狠第四四房社区奇米 | 99久久综合国产精品免费 | 9久久精品 | 2021最新国产精品一区 | 五月天婷婷色综合 | 欧美日韩在线亚洲国产人 | 国产精品第八页 | 色亚洲成人 | 伊人网综合视频 | 国产免费一区二区三区在线观看 | 激情五月视频 | www.国产精品视频 | 97av麻豆蜜桃一区二区 | 国产精品一区二区三区久久 | 四虎在线影视 | 免费观看h| 精品国产一区二区三区不卡 | 色综合日韩 | 四虎免费永久观看 | 中文字幕久久亚洲一区 | 色香视频在线 | 色交视频 | 精品视频在线看 | 国产精品v在线播放观看 | 国产一进一出视频网站 | 精品久久久久久久久中文字幕 | 九九热视频在线免费观看 | 毛片app | 亚洲精品在线不卡 |