張寶霞,陳無(wú)畏
(合肥工業(yè)大學(xué)機(jī)械與汽車工程學(xué)院,安徽合肥230009)
三菱PLC編程口通信在監(jiān)控中的應(yīng)用研究
張寶霞,陳無(wú)畏
(合肥工業(yè)大學(xué)機(jī)械與汽車工程學(xué)院,安徽合肥230009)
利用三菱PLC編程口通信協(xié)議,使用Visual Basic編程語(yǔ)言編程,實(shí)現(xiàn)計(jì)算機(jī)對(duì)PLC的監(jiān)控,對(duì)于簡(jiǎn)單的小型單機(jī)控制系統(tǒng)具有應(yīng)用價(jià)值。
PLC;編程口通信;VB;監(jiān)控
日本三菱公司的FX系列PLC是我國(guó)應(yīng)用較為廣泛的一種PLC,許多單機(jī)控制系統(tǒng)都使用它。但其編程口在傳輸程序后就處于閑置狀態(tài),與計(jì)算機(jī)通信卻另外配置模塊,對(duì)于簡(jiǎn)單的小型單機(jī)控制系統(tǒng)來(lái)說(shuō),這樣無(wú)疑增加了硬件成本。
目前,一些控制系統(tǒng)的計(jì)算機(jī)監(jiān)控界面主要由工業(yè)組態(tài)軟件生成,其功能強(qiáng)大、界面友好,但軟件價(jià)格昂貴,適用于中大型控制系統(tǒng)。對(duì)于簡(jiǎn)單的小型單機(jī)控制系統(tǒng),利用Windows通用編程語(yǔ)言編寫(xiě)監(jiān)控軟件更為經(jīng)濟(jì)。
本文研究的就是用Visual Basic編程語(yǔ)言編寫(xiě)符合三菱FX1N系列PLC編程口通信的簡(jiǎn)單監(jiān)控程序,以實(shí)現(xiàn)對(duì)控制系統(tǒng)的監(jiān)控。這種監(jiān)控方式對(duì)簡(jiǎn)單的小型單機(jī)控制系統(tǒng),成本較低,有一定的參考和應(yīng)用價(jià)值。
圖1 系統(tǒng)組成簡(jiǎn)圖
本文的控制系統(tǒng)由計(jì)算機(jī)和三菱FX1N型PLC組成,如圖1所示,兩者之間通過(guò)SC-09編程電纜連接。SC-09編程電纜平時(shí)用于FX1N型PLC的程序傳輸,這里還用于PLC與計(jì)算機(jī)的通信,這樣就省去了FX1N型PLC與PC的專用通信模塊FX-232AW,減少了硬件費(fèi)用。
FX1N編程口通信采用三菱的專有通信協(xié)議。通信時(shí),PLC不用為通信編寫(xiě)程序,計(jì)算機(jī)按規(guī)定格式向PLC發(fā)出各種指令,PLC根據(jù)指令返回信息。計(jì)算機(jī)向PLC發(fā)送的指令有四種,本文計(jì)算機(jī)的任務(wù)是監(jiān)控PLC,是計(jì)算機(jī)讀取PLC中寄存器的內(nèi)容,報(bào)文格式如下:
PLC向PC讀指令發(fā)送的確認(rèn)回答報(bào)文格式如下:
以上報(bào)文格式中,STX是信息幀開(kāi)始標(biāo)記,ASCII碼為02H,讀指令代碼為“0”,首地址即為所讀取的PLC寄存器的開(kāi)始地址,字節(jié)數(shù)即為所讀數(shù)據(jù)的長(zhǎng)度,ETX為信息幀結(jié)束標(biāo)記,ASCII碼為03H,報(bào)文采用的是總和校驗(yàn)方式。
返回報(bào)文中的數(shù)據(jù)即為寄存器的內(nèi)容,個(gè)數(shù)與命令報(bào)文中的字節(jié)數(shù)相同。通過(guò)編程,可以取出這些數(shù)據(jù),并顯示出來(lái),達(dá)到監(jiān)控的目的。
計(jì)算機(jī)一般監(jiān)控PLC的輸入輸出狀態(tài)和數(shù)據(jù)寄存器的內(nèi)容,本文以計(jì)算機(jī)實(shí)時(shí)讀取三菱FX1N-24MR的X0-X7、Y0-Y7、D1和D2為例,設(shè)計(jì)了一種簡(jiǎn)單的監(jiān)控界面,以介紹軟件的設(shè)計(jì)過(guò)程。監(jiān)控界面如圖2所示。實(shí)際系統(tǒng)的監(jiān)控界面可根據(jù)要求修改名稱并相應(yīng)增減其他一些復(fù)雜的指示控件即可。
圖2 監(jiān)控界面
圖中三個(gè)Frame中是要監(jiān)控的對(duì)象,最下一行的四個(gè)定時(shí)器控件和一個(gè)通訊控件是程序設(shè)計(jì)的主要控件,用來(lái)實(shí)現(xiàn)周期性讀取PLC寄存器內(nèi)容并顯示在監(jiān)控界面上的任務(wù)。
要使用MSComm控件,首先需要對(duì)此控件的屬性和方法、事件進(jìn)行相應(yīng)初始化,然后再進(jìn)行簡(jiǎn)單的編程操作,就可以容易地實(shí)現(xiàn)串口通信。定時(shí)器控件的使能屬性為真后,系統(tǒng)開(kāi)始計(jì)時(shí)。計(jì)時(shí)時(shí)間到后,定時(shí)器控件觸發(fā)Timer事件,在該事件過(guò)程中可以編寫(xiě)讀取PLC寄存器的內(nèi)容,以便顯示在監(jiān)控界面上。四個(gè)定時(shí)器實(shí)現(xiàn)了對(duì)四種寄存器的內(nèi)容周期性的讀取。
程序設(shè)計(jì)關(guān)鍵的一步是根據(jù)任務(wù)要求進(jìn)行程序結(jié)構(gòu)設(shè)計(jì)。根據(jù)結(jié)構(gòu)可以容易和較為準(zhǔn)確地設(shè)計(jì)程序。這樣設(shè)計(jì)出的程序閱讀和修改方便,易于以后的擴(kuò)展。
本文監(jiān)控軟件程序結(jié)構(gòu)如圖3所示。分為兩大部分,一是主流程,另一是主要的子過(guò)程,是被主流程中的事件過(guò)程所調(diào)用的。主流程主要分為五步。首先通過(guò)對(duì)MSComm控件的屬性賦值,設(shè)置通信參數(shù),使上位機(jī)與PLC能夠通信,同時(shí)第一個(gè)定時(shí)器使能,系統(tǒng)開(kāi)始計(jì)時(shí)。計(jì)時(shí)時(shí)間到后,觸發(fā)Timer事件,調(diào)用讀取X0-X7過(guò)程。在此過(guò)程中接收轉(zhuǎn)換數(shù)據(jù)并顯示。調(diào)用結(jié)束后,第一個(gè)定時(shí)器禁止使能,第二個(gè)定時(shí)器使能工作,系統(tǒng)又開(kāi)始計(jì)時(shí)。第二個(gè)計(jì)時(shí)器時(shí)間到后,又觸發(fā)Timer事件,這次調(diào)用讀取Y0-Y7過(guò)程。調(diào)用結(jié)束后,第二個(gè)定時(shí)器禁止使能,第三個(gè)定時(shí)器使能工作。如此循環(huán)不止,直至退出程序。
圖3 程序結(jié)構(gòu)簡(jiǎn)圖
1、設(shè)置通信參數(shù)代碼
2、定時(shí)器1事件代碼
3、讀X0-X7指令代碼
4、讀D1指令代碼
經(jīng)過(guò)實(shí)際連接運(yùn)行表明,在數(shù)據(jù)變化較慢的控制系統(tǒng)中,VB語(yǔ)言編寫(xiě)的監(jiān)控程序通過(guò)三菱PLC編程口能比較可靠、穩(wěn)定地顯示系統(tǒng)狀態(tài)的變化。該方案節(jié)約了控制系統(tǒng)的成本,對(duì)于控制規(guī)模很小的單機(jī)控制系統(tǒng),具有較高的性價(jià)比,具有一定的參考價(jià)值和應(yīng)用價(jià)值。
[1]李江全等.Visual Basic串口通信與測(cè)控應(yīng)用技實(shí)戰(zhàn)詳解術(shù)[M].北京:人民郵電出版社,2007.
[2]周昭亮.三菱PLC編程口通信技術(shù)在機(jī)械手遠(yuǎn)程控制中的應(yīng)用[J].內(nèi)蒙古科技與經(jīng)濟(jì),2008,(18).
[3]劉輝等.工控機(jī)與三菱FX2N系列PLC編程口通信的實(shí)現(xiàn)[J].機(jī)械與電子,2007,(4).
TP274+.2
A
1671-5993(2011)01-0060-03
2011-01-16
張寶霞(1971-),女,安徽滁州人,合肥工業(yè)大學(xué)碩士在讀,滁州職業(yè)技術(shù)學(xué)院機(jī)電系講師。