《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 軟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黑人| 久久国产精品高清| 欧美一区免费视频| 性伦欧美刺激片在线观看| 亚洲无人区一区| 亚洲天堂av电影| 亚洲一级影院| 一区二区三区高清在线观看| 99国产精品久久久久老师| 日韩视频精品在线| 日韩亚洲欧美在线观看| 99热这里只有成人精品国产| aaa亚洲精品一二三区| 夜夜爽99久久国产综合精品女不卡| aa级大片欧美三级| 亚洲一区中文字幕在线观看| 亚洲欧美视频在线| 欧美在线视频一区二区三区| 久久精品道一区二区三区| 久久影院午夜论| 欧美国产综合一区二区| 欧美日韩岛国| 国产精品久久久久毛片大屁完整版| 国产精品青草久久久久福利99| 国产日韩欧美91| 激情综合色丁香一区二区| 在线观看亚洲精品视频| 亚洲日本中文字幕免费在线不卡| 99精品国产高清一区二区| 亚洲线精品一区二区三区八戒| 午夜国产精品影院在线观看| 久久精品视频亚洲| 亚洲最黄网站| 久久av一区二区三区| 老司机免费视频一区二区| 欧美激情精品久久久六区热门| 欧美视频在线观看视频极品| 国产日韩精品久久久| 1000部国产精品成人观看| 日韩视频一区二区三区| 美乳少妇欧美精品| 欧美精品日韩一区| 国产精品久久久一区麻豆最新章节| 国产麻豆91精品| 亚洲电影毛片| 一区二区三区国产在线| 久久不见久久见免费视频1| 99国产精品久久久久老师| 午夜一区二区三视频在线观看| 久久亚洲影院| 欧美少妇一区| 狠狠爱综合网| 一区二区三区高清不卡| 欧美在线首页| 亚洲少妇在线| 久久久精彩视频| 欧美日韩国产高清视频| 国产欧美一区二区三区久久| 亚洲激情综合| 性欧美1819性猛交| 亚洲精品自在久久| 欧美在线播放| 欧美久久久久免费| 国产综合色一区二区三区| 99热免费精品| 亚洲国产精品视频一区| 亚洲欧美激情四射在线日 | 欧美色图首页| 红桃视频一区| 亚洲在线一区二区| 一本久久知道综合久久| 久久综合电影| 国产欧美视频一区二区| 一本久道久久综合中文字幕| 亚洲国产精品一区二区久| 午夜精品久久久久久久久久久| 欧美激情一区二区| 黄色亚洲精品| 午夜精品在线观看| 亚洲一区二区三区四区视频| 欧美va亚洲va国产综合| 国产自产高清不卡| 亚洲伊人一本大道中文字幕| av成人免费| 欧美电影在线观看完整版| 国产一区二区看久久| 亚洲视频中文字幕| 一区二区三区高清在线| 欧美精品123区| 亚洲国产另类精品专区| 久久精品91| 久久精品在线播放| 国产精品毛片va一区二区三区| 亚洲精品免费网站| 亚洲激情一区| 麻豆精品视频在线| 激情欧美丁香| 久久国产精品第一页| 久久国产精品久久w女人spa| 国产精品一区二区在线观看不卡| 一本色道**综合亚洲精品蜜桃冫| 亚洲美女精品久久| 欧美成人高清| 亚洲黄色免费网站| 91久久精品日日躁夜夜躁国产| 看欧美日韩国产| 欲香欲色天天天综合和网| 亚洲高清影视| 久久在线视频在线| 尤物精品国产第一福利三区| 亚洲国产精品www| 美女任你摸久久| 一区免费在线| 亚洲三级电影全部在线观看高清| 免费亚洲电影在线| 亚洲国产精品成人va在线观看| 亚洲精品国产日韩| 欧美成人免费全部| 亚洲黄色有码视频| 日韩视频中文| 欧美日韩精品综合| 一区二区免费看| 亚洲综合激情| 国产喷白浆一区二区三区| 午夜日韩电影| 久久久久久一区| 影音欧美亚洲| 亚洲日本欧美日韩高观看| 欧美精品入口| 一区二区三区 在线观看视| 午夜精品福利视频| 国产欧美综合一区二区三区| 久久激情婷婷| 欧美电影在线观看| 日韩亚洲不卡在线| 亚洲欧美在线看| 国产亚洲午夜高清国产拍精品| 亚洲第一福利视频| 欧美激情性爽国产精品17p| 亚洲美女毛片| 午夜亚洲福利在线老司机| 国产中文一区二区| 亚洲片区在线| 欧美性做爰毛片| 欧美亚洲在线观看| 欧美14一18处毛片| 一区二区三区高清视频在线观看| 久久国产精品99久久久久久老狼| 在线观看av一区| 在线亚洲欧美视频| 国产日韩欧美综合在线| 亚洲人体大胆视频| 国产精品久久激情| 亚洲电影欧美电影有声小说| 欧美精品一区二区蜜臀亚洲| 亚洲一区制服诱惑| 裸体歌舞表演一区二区 | 99视频精品在线| 欧美亚洲综合在线| 亚洲成人自拍视频| 亚洲专区在线| 在线不卡亚洲| 亚洲婷婷综合久久一本伊一区| 国产精品综合不卡av| 最新中文字幕一区二区三区| 欧美午夜视频一区二区| 久久精品99国产精品日本| 欧美日韩一级大片网址| 欧美在线免费视屏| 欧美日韩另类综合| 欧美一区二区福利在线| 欧美精品在线视频| 欧美在线999| 欧美午夜精品| 亚洲精品1区2区| 国产精品一区二区黑丝| 99精品视频一区| 国产字幕视频一区二区| 亚洲专区在线| 亚洲黄色免费电影| 久久精品一区蜜桃臀影院| 99re成人精品视频| 蜜臀a∨国产成人精品| 亚洲免费人成在线视频观看| 欧美精品麻豆| 亚洲高清三级视频| 国产精品一区在线播放| 中文日韩欧美| 亚洲国产精品激情在线观看| 久久精品国产77777蜜臀| 一区二区日韩| 欧美精品日韩综合在线| 亚洲国产成人精品女人久久久| 国产精品视频久久| 亚洲一区二区精品视频|