国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

軟PLC開(kāi)發(fā)系統(tǒng)指令表編輯模塊的研究與實(shí)現(xiàn)*

2012-10-24 13:07:18陳嬋娟
制造技術(shù)與機(jī)床 2012年12期
關(guān)鍵詞:梯形圖編輯器控件

陳嬋娟 李 龍

(陜西科技大學(xué)機(jī)電工程學(xué)院,陜西西安 710021)

軟PLC技術(shù)是一種基于IPC或EPC的將PLC的控制功能封裝在軟件內(nèi)的控制技術(shù)[1],也就是通過(guò)軟件來(lái)實(shí)現(xiàn)標(biāo)準(zhǔn)硬件PLC的基本功能[2]。它不但具有傳統(tǒng)PLC的PID調(diào)節(jié)、離散控制和I/O控制功能,而且具有微型計(jì)算機(jī)的高速數(shù)據(jù)處理和網(wǎng)絡(luò)功能。由于國(guó)際編程標(biāo)準(zhǔn)IEC61131-3的制定和推廣應(yīng)用,軟PLC技術(shù)已經(jīng)成為一項(xiàng)新興的技術(shù)[3]。

軟PLC由開(kāi)發(fā)系統(tǒng)和運(yùn)行系統(tǒng)兩部分組成,其中編輯模塊是開(kāi)發(fā)系統(tǒng)的重點(diǎn)也是軟PLC其它功能實(shí)現(xiàn)的前提,根據(jù)IEC61131-3的標(biāo)準(zhǔn),可選用的編程語(yǔ)言有:梯形圖(LD),指令表(IL),結(jié)構(gòu)文本(ST),功能模塊(FB)和順序功能圖(SFC)[4]。本開(kāi)發(fā)系統(tǒng)主要包括梯形圖編輯模塊和指令表編輯模塊。指令表語(yǔ)言與微機(jī)匯編語(yǔ)言中的指令具有相似的特點(diǎn),可以方便地用于程序的編譯,所以除了已開(kāi)發(fā)的梯形圖編輯模塊,指令表編輯模塊的開(kāi)發(fā)也具有很大的實(shí)用意義。

1 指令表編輯模塊運(yùn)行原理

本指令表編輯模塊是建立在Visual C++的MFC庫(kù)支持多文檔應(yīng)用程序之上,該編輯模塊的核心是指令表編輯器的開(kāi)發(fā),方法在應(yīng)用程序里插入一個(gè)對(duì)話(huà)框資源[5],同時(shí)構(gòu)建一個(gè)基于對(duì)話(huà)框的類(lèi)去實(shí)現(xiàn)。編輯器的調(diào)用則是通過(guò)在菜單項(xiàng)“指令表”里添加“編程”這一子項(xiàng),然后給該項(xiàng)添加菜單命令消息WM_COMMAND、構(gòu)建消息處理函數(shù)來(lái)實(shí)現(xiàn)的。同時(shí)為了使用戶(hù)使用更加快捷和方便,本開(kāi)發(fā)系統(tǒng)也在工具欄里加入了調(diào)用編程器工具“IL”。指令表編輯模塊運(yùn)行原理框圖如圖1所示。

2 指令表編輯器的實(shí)現(xiàn)

2.1 指令表編輯器的結(jié)構(gòu)

本開(kāi)發(fā)系統(tǒng)指令表編輯器是通過(guò)在應(yīng)用程序之上添加一個(gè)對(duì)話(huà)框資源去實(shí)現(xiàn)的,該對(duì)話(huà)框包過(guò)4個(gè)Static Text控件,3個(gè)Edit Box控件,5個(gè)Button控件和1個(gè)List Control控件,其中3個(gè)Edit Box控件對(duì)List Control控件實(shí)現(xiàn)的預(yù)覽進(jìn)行輸入3項(xiàng)內(nèi)容分別為:步數(shù)、指令和操作數(shù);5個(gè)Button控件分別實(shí)現(xiàn)提交、插入、刪除、清空和輸出;同時(shí)也通過(guò)添加語(yǔ)句:LVS_EX_GRIDLINES,為列表視圖控件添加了網(wǎng)格線(xiàn)的風(fēng)格等[4]。指令表的編輯器最終編輯界面如圖2所示。

2.2 指令表編輯器編輯原理的設(shè)計(jì)

根據(jù)指令表語(yǔ)言的格式結(jié)構(gòu),本指令表編輯器通過(guò)列表視圖控件來(lái)實(shí)現(xiàn)“步數(shù)”、“指令”和“操作數(shù)”,其中通過(guò)3個(gè)Edit Box控件去獲取用戶(hù)編程的信息,當(dāng)用戶(hù)輸入完該步驟的數(shù)據(jù)后,通過(guò)為“提交”按鈕將所要編輯的程序提交到列表視圖控件上。同時(shí),編輯器給各個(gè)控件均設(shè)置一定限制從而更有效地幫助程序員去編輯程序。指令表編輯器的編輯原理如圖3所示。

2.3 指令表編輯器數(shù)據(jù)的輸出

本開(kāi)發(fā)系統(tǒng)是基于VC的多文檔應(yīng)用程序通過(guò)靜態(tài)分割首先將窗口切分為2行1列,最后再將第一行切分成1行4列,取第1行第3列為梯形圖編輯區(qū)域,第1行第4列為指令表顯示區(qū)域,采用添加一個(gè)列表視圖控件去顯示指令表程序,其中列表視圖控件的顯示通過(guò)多視圖的實(shí)現(xiàn)方法實(shí)現(xiàn),即通過(guò)采用創(chuàng)建窗格視圖Createview()函數(shù)去實(shí)現(xiàn)[6]。本開(kāi)發(fā)系統(tǒng)實(shí)現(xiàn)列表視圖控件相關(guān)語(yǔ)句如下:

其中CILView為自己插入的基于CListview類(lèi)的新的類(lèi)資源,該類(lèi)的主要函數(shù)有重載CILView類(lèi)的OnInitialUpdate()函數(shù)和OnUpdate()函數(shù),實(shí)現(xiàn)指令表程序顯示區(qū)域的初始化和更新[6],而指令表編輯器里程序的導(dǎo)出同樣也是通過(guò)為“輸出”按鈕添加的BN_CLICKED消息響應(yīng)函數(shù)void CEDITILDLG::OnOK()來(lái)實(shí)現(xiàn)的。指令表程序最終輸出界面如圖4所示。

3 結(jié)語(yǔ)

軟PLC相對(duì)于傳統(tǒng)PLC來(lái)說(shuō),它更靈活,可以根據(jù)用戶(hù)自己的需求開(kāi)發(fā)出相應(yīng)的產(chǎn)品,并且價(jià)格低廉。指令表編輯模塊是軟PLC開(kāi)發(fā)系統(tǒng)不可或缺的部分,該模塊的開(kāi)發(fā)對(duì)于整個(gè)開(kāi)發(fā)系統(tǒng)的完整性具有重要意義。其優(yōu)點(diǎn)是方便快捷地編輯模式,良好的人機(jī)對(duì)話(huà)界面以及各個(gè)控件之間的邏輯限制關(guān)系能夠有效地幫助用戶(hù)進(jìn)行程序的編輯。指令表編輯模塊的開(kāi)發(fā)對(duì)于以后的仿真等模塊的開(kāi)發(fā)具有很大的意義,為后續(xù)的軟PLC開(kāi)發(fā)工作打下了良好的基礎(chǔ)。

[1]陳鳳蘭,孫竹梅.軟PLC技術(shù)的發(fā)展趨勢(shì)與應(yīng)用前景[J].電力學(xué)報(bào),2006(2):88-90.

[2]黃延延,林躍,于海斌.軟PLC技術(shù)研究及實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2004,30(1):15-17.

[3]陳嬋娟,高帥,王杰.軟PLC開(kāi)發(fā)系統(tǒng)梯形圖編輯模塊的實(shí)現(xiàn)[J].組合機(jī)床與自動(dòng)化加工技術(shù),2010(10):5-6.

[4]Open-PLC programming using IECll31-3[OL].http://www.engineeringtalk.com.

[5]郭清宇,王海龍,王國(guó)勝,等.Visual C++[M].北京:清華大學(xué)出版社,2009.

[6]候俊杰.深入淺出 MFC[M].2版.武漢:華中科技大學(xué)出版社,2001.

猜你喜歡
梯形圖編輯器控件
你距離微信創(chuàng)作達(dá)人還有多遠(yuǎn)?
車(chē)輛段收發(fā)車(chē)運(yùn)行圖編輯器的設(shè)計(jì)與實(shí)現(xiàn)
關(guān)于.net控件數(shù)組的探討
軟件(2018年7期)2018-08-13 09:44:42
基于VC的梯形圖編程軟件開(kāi)發(fā)技術(shù)
繼電器電路轉(zhuǎn)為梯形圖教學(xué)經(jīng)驗(yàn)淺談
電子制作(2016年15期)2017-01-15 13:39:28
PLC梯形圖程序設(shè)計(jì)技巧及應(yīng)用
基于VLIW目標(biāo)機(jī)的ELF二進(jìn)制編輯器設(shè)計(jì)與實(shí)現(xiàn)
就這樣玩會(huì)VBA中常見(jiàn)的自定義控件
電腦迷(2012年24期)2012-04-29 00:44:03
銀河編輯器,艷壓“星際2”?
嵌入式軟PLC編程系統(tǒng)的設(shè)計(jì)
琼海市| 邛崃市| 龙南县| 桐乡市| 达尔| 商水县| 巨鹿县| 龙州县| 丽水市| 亚东县| 平泉县| 泗洪县| 弋阳县| 商城县| 平安县| 延吉市| 连云港市| 泗阳县| 枣庄市| 金平| 山西省| 万荣县| 德清县| 达孜县| 桂林市| 淄博市| 滦南县| 易门县| 长岛县| 息烽县| 光泽县| 贵阳市| 高碑店市| 嘉定区| 班戈县| 永安市| 阿拉善右旗| 科尔| 福泉市| 宣恩县| 穆棱市|