《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 軟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網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲欧美日韩一区二区三区在线| 性欧美xxxx大乳国产app| 欧美破处大片在线视频| 国产精品一区视频| 亚洲精一区二区三区| 久久精品五月| 黄色国产精品一区二区三区| 老司机67194精品线观看| 欧美日韩国产一区二区三区地区| 欧美三级日韩三级国产三级| 亚洲专区免费| 欧美成人激情在线| 亚洲欧美综合国产精品一区| 99国产一区二区三精品乱码| 国产伦理一区| 在线电影欧美日韩一区二区私密| 亚洲国产精彩中文乱码av在线播放| 亚洲午夜一二三区视频| 久久国产精品免费一区| 久久精品国产2020观看福利| 亚洲国产精品美女| 亚洲七七久久综合桃花剧情介绍| 亚洲综合色婷婷| 亚洲影院污污.| 亚洲黄色在线观看| 欧美在线一级视频| 欧美视频网站| 亚洲免费av观看| 一区电影在线观看| 久久久国产精品一区二区三区| 国产精品久久9| 亚洲欧美日韩精品久久奇米色影视| 亚洲欧美国产高清| 免费一级欧美在线大片| 国产一区二区观看| 黑人操亚洲美女惩罚| 亚洲免费视频成人| 欧美涩涩网站| 亚洲观看高清完整版在线观看| 国产精品a久久久久| 久久在线免费观看| 亚洲国产精品www| 久久露脸国产精品| 日韩午夜电影在线观看| 欧美大片免费久久精品三p| 狠狠色狠色综合曰曰| 欧美99在线视频观看| 久久综合色一综合色88| 91久久综合亚洲鲁鲁五月天| 红杏aⅴ成人免费视频| 欧美精选一区| 亚洲欧美99| 美女免费视频一区| 欧美大片在线影院| 最新高清无码专区| 欧美一级在线视频| 欧美精品日韩| 老司机67194精品线观看| 中文精品99久久国产香蕉| 亚洲国产精品成人va在线观看| 久久综合狠狠| 91久久黄色| 午夜在线一区二区| 欧美成人首页| 久久天堂国产精品| 欧美尤物巨大精品爽| 国产精品日韩欧美大师| 久久国内精品视频| 欧美绝品在线观看成人午夜影视| 日韩视频免费| 香蕉久久夜色精品国产| 国产一区二区三区日韩欧美| 欧美经典一区二区三区| 欧美黄免费看| 久久久女女女女999久久| 美女999久久久精品视频| 国产亚洲人成a一在线v站| 99精品视频免费在线观看| 亚洲观看高清完整版在线观看| 久久一区二区三区av| 欧美日韩中文字幕在线视频| 亚洲午夜精品在线| 国产偷自视频区视频一区二区| 亚洲日韩中文字幕在线播放| 国产精品一二| 1000部国产精品成人观看| 欧美韩日高清| 欧美性久久久| 亚洲一区二区三区在线观看视频| 亚洲一区免费在线观看| 亚洲欧美日韩精品综合在线观看| 免费亚洲视频| 免费观看一区| 欧美区一区二| 麻豆精品在线观看| 老**午夜毛片一区二区三区| 国产精品国产馆在线真实露脸| 久久久久9999亚洲精品| 亚洲国产精品一区二区三区| 亚洲主播在线播放| 一区二区三区国产精华| 99精品国产在热久久婷婷| 亚洲视频每日更新| 亚洲主播在线观看| 欧美日韩在线高清| 在线精品亚洲一区二区| 久久精品导航| 性欧美1819性猛交| 怡红院精品视频在线观看极品| 国产精品视频在线观看| 久久久久一区二区| 午夜日韩激情| 欧美a级一区二区| 欧美日韩免费观看一区=区三区| 在线精品亚洲| 午夜欧美大尺度福利影院在线看| 亚洲欧洲精品一区二区三区不卡| 久久久五月婷婷| 欧美韩日亚洲| 亚洲三级毛片| 一区二区三区国产| 老司机aⅴ在线精品导航| 久久精品在线观看| 国产精品男gay被猛男狂揉视频| 欧美96在线丨欧| 国产精品视频久久| 久久在线精品| 国产精品久久久久国产a级| 99精品视频免费观看| 国产精品久久网站| 亚洲免费电影在线| 亚洲一二三区精品| 亚洲欧洲综合另类| 国产精品久久久久免费a∨| 久久av老司机精品网站导航| 99热在线精品观看| 久久久久久夜精品精品免费| 国产精品自拍小视频| 亚洲福利视频网站| 国产精品三区www17con| 国产美女一区二区| 亚洲黄色在线看| 亚洲一区二区少妇| 国产亚洲精品综合一区91| 欧美在线亚洲| 亚洲欧美不卡| 黄色日韩网站视频| 欧美色综合天天久久综合精品| 亚洲人成网站色ww在线| 国内精品久久久久久久影视麻豆| 国产精品一区二区三区四区五区| 99国产精品视频免费观看一公开| 国产一区二区三区av电影| 亚洲欧美综合国产精品一区| 国产农村妇女毛片精品久久麻豆| 国产精品theporn| 久久精品免费观看| 亚洲缚视频在线观看| 久久人人爽国产| 久久综合网hezyo| 欧美日韩一区二区免费在线观看| 亚洲国产天堂久久综合| 欧美亚洲午夜视频在线观看| 一区二区三区免费观看| 一区二区欧美精品| 亚洲一区激情| 久久亚洲春色中文字幕| 欧美一区二区啪啪| 亚洲免费人成在线视频观看| 亚洲免费精品| 在线一区二区三区四区五区| 久久综合给合久久狠狠狠97色69| 亚洲制服丝袜在线| 欧美日韩在线观看一区二区| 亚洲精品中文字幕有码专区| 国产一区二区精品久久99| 亚洲成色777777女色窝| 一本大道久久a久久精二百| 国产精品午夜在线| 最新中文字幕亚洲| 欧美成人一区二区在线| 一区二区三区免费看| 日韩亚洲不卡在线| 亚洲综合不卡| 久久在线播放| 欧美激情在线观看| 亚洲精品视频一区二区三区| 欧美在线看片| 久久综合九色综合欧美就去吻| 国产精品乱码妇女bbbb| 精品成人免费| 宅男精品导航| 欧美久久在线| 一区二区免费看| 国产欧美一区二区三区久久| 黄色精品网站| 国产精品视频yy9099| 亚洲国产午夜| 亚洲国产精品ⅴa在线观看| 欧美精品免费看| 亚洲美洲欧洲综合国产一区| 韩国免费一区| 亚洲国产综合视频在线观看| 久久亚洲国产精品日日av夜夜| 久久久久久久高潮| 欧美日韩成人精品| 麻豆精品国产91久久久久久| 国产精品美女黄网| 欧美精品一区三区| 国产精品国产a级| 在线视频亚洲| 亚洲国产成人不卡| 久久国产一区| 欧美在线影院在线视频| 国产亚洲一区二区三区在线播放| 久久精品亚洲| 日韩亚洲在线| 亚洲自拍偷拍麻豆| 久久亚洲影音av资源网| 欧美日产一区二区三区在线观看| 国产精品乱看| 久久精品国产免费看久久精品| 午夜日韩视频| 在线一区免费观看| 欧美国产激情二区三区| 亚洲精品久久久一区二区三区| 欧美成人精品在线观看| 欧美日韩一区二区欧美激情| 亚洲桃色在线一区| 亚洲成人在线视频网站| 最近看过的日韩成人| 在线日韩中文字幕| 亚洲精品日韩在线观看| 亚洲已满18点击进入久久| 久久久高清一区二区三区| 激情婷婷亚洲| 欧美精品v日韩精品v韩国精品v| 亚洲精品国产拍免费91在线| 欧美精品在线极品| 国产精品久久久久久久久久直播| 香蕉久久国产| 国产亚洲欧洲997久久综合| 91久久在线播放| 久久久91精品国产一区二区三区| 欧美专区在线观看| 国产精品高潮呻吟视频| 亚洲欧美日韩爽爽影院| 欧美激情自拍| 91久久在线观看| 国产精品久久久久9999| 欧美高清在线视频观看不卡| 国产精品theporn| 老牛国产精品一区的观看方式| 久久九九久精品国产免费直播| 国产日韩欧美综合一区| 国产精品入口夜色视频大尺度| 亚洲天堂网在线观看| 国产精品久久久久久久久久ktv| 欧美日韩免费观看一区二区三区| 免费成人网www| 国产精品你懂的在线欣赏| 亚洲国产国产亚洲一二三| 亚洲综合999| 欧美一区免费视频| 亚洲在线一区二区三区| 亚洲女人天堂av| 一本色道久久加勒比88综合| 国产一区三区三区| 亚洲精品裸体| 欧美另类亚洲| 久久精品一区中文字幕| 亚洲国产精品一区在线观看不卡| 欧美日韩国产高清视频| 国产精品免费一区豆花| 一区二区国产精品| 欧美日韩国产精品自在自线| 国产综合精品| 久久精品国产亚洲一区二区三区| 欧美日韩精品一区二区在线播放| 亚洲国产精品欧美一二99| 亚洲欧洲一区二区三区久久| 美女精品网站| 欧美日韩中文字幕| 久久一区二区精品| 91久久精品一区二区三区| 欧美日韩国产小视频| 久久人人爽人人爽爽久久| 国产日韩综合| 欧美高清在线精品一区| 午夜精品久久久久99热蜜桃导演| 中文一区字幕| 亚洲欧洲视频在线| 亚洲一区二区精品在线观看| 久久精品99国产精品日本| 亚洲欧美日韩一区在线| 久久精品观看| 国产欧美 在线欧美| 亚洲手机成人高清视频| 一区二区三区|亚洲午夜| 99精品国产热久久91蜜凸| 国产精品热久久久久夜色精品三区| 亚洲国产精品一区二区www在线| 精品动漫3d一区二区三区免费版| 亚洲欧美一区二区三区极速播放| 国产欧美日韩伦理| 亚洲欧美日韩直播| 亚洲精品日韩欧美| 亚洲精品在线看| 欧美在线|欧美| 欧美久久视频| 亚洲在线网站| 日韩午夜中文字幕| 欧美日韩国产小视频| 一区二区三区免费观看| 禁断一区二区三区在线| 亚洲国产欧美精品| 国产午夜精品全部视频播放| 1000部国产精品成人观看| 欧美日韩 国产精品| 久久久久国产精品麻豆ai换脸| 黄色精品一区二区| 久久久噜噜噜久久狠狠50岁| 一本久久青青| 久久久久久久综合| 欧美性大战xxxxx久久久| 国产欧美三级| 美女国内精品自产拍在线播放| 99在线观看免费视频精品观看|