摘 要:可編程邏輯控制器(PLC)與上位機(jī)之間的通信是實(shí)現(xiàn)工業(yè)自動(dòng)控制經(jīng)常用到的通信模式,本文基于VB程序設(shè)計(jì)語言,以單點(diǎn)控制為例,實(shí)現(xiàn)了上位機(jī)與PLC之間的串行通信。
關(guān)鍵詞:VB 可編程邏輯控制器 單點(diǎn)控制 MSComm控件
中圖分類號(hào):TM571 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2013)04(c)-0028-02
隨著工業(yè)控制的發(fā)展,可編程邏輯控制器(PLC)與上位機(jī)之間通信的應(yīng)用越來越廣泛,使用Visual Basic(簡(jiǎn)稱VB)編程語言,實(shí)現(xiàn)PLC與上位機(jī)之間的串行通信,是進(jìn)行數(shù)據(jù)傳送的一種通信方式,也是實(shí)現(xiàn)工業(yè)自動(dòng)控制經(jīng)常用到的通信模式。在與PLC進(jìn)行通訊時(shí),單點(diǎn)控制是實(shí)現(xiàn)PLC通訊的基礎(chǔ),本文以O(shè)MRON CPM2A PLC單點(diǎn)控制為例,基于HOST LINK通信協(xié)議,利用VB程序設(shè)計(jì)語言,實(shí)現(xiàn)上位機(jī)與PLC之間的串行通信。
1 硬件構(gòu)成
通過RS232串行端口,實(shí)現(xiàn)PLC與PC機(jī)之間的通信,完成數(shù)據(jù)傳輸。如圖1所示。
2 軟件框圖
利用VB編寫程序,根據(jù)單點(diǎn)控制梯形圖實(shí)現(xiàn)單點(diǎn)控制,梯形圖如圖2所示。
3 通信步驟
3.1 在VB中添加MSComm控件
串行通信控件MSComm(Microsoft Communications Control)是Windows下串行通信編程的ActiveX控件,它既可以用來提供簡(jiǎn)單的串行端口通信功能,也可以用來創(chuàng)建功能完備的、事件驅(qū)動(dòng)的高級(jí)通信工具。但MSComm控件并不會(huì)主動(dòng)出現(xiàn)在工具箱里,當(dāng)需要時(shí),首先要把它加入到工具箱中。
3.2 串行口初始化
對(duì)于MSComm1控件,進(jìn)行串口初始化一般可以在屬性窗口中完成。要求通信端口為COM1,傳輸速率為9600bit/s,偶校驗(yàn),7位數(shù)據(jù)位,2位停止位。
3.3 使PLC處于監(jiān)控狀態(tài)
PLC有三種狀態(tài):監(jiān)控狀態(tài)、編輯狀態(tài)與運(yùn)行狀態(tài)。當(dāng)實(shí)現(xiàn)對(duì)PLC的單點(diǎn)控制時(shí),采用強(qiáng)制置位/復(fù)位操作,此時(shí)PLC應(yīng)處于監(jiān)控狀態(tài),返回應(yīng)答幀為:@00SC0050*,如圖3所示。
3.4 強(qiáng)制PLC置位/復(fù)位
分別對(duì)X0點(diǎn)和X1點(diǎn)進(jìn)行強(qiáng)制置位/復(fù)位操作。圖4,圖5分別為X0閉合與X1開啟時(shí),Y1的狀態(tài)返回的應(yīng)答幀為:@00KS0058*;圖6為X0開啟和X1閉合時(shí)Y1的狀態(tài),返回的應(yīng)答幀為@00KR0059*。
4 結(jié)論
在現(xiàn)代工業(yè)控制中,PLC作為下位機(jī)可完成現(xiàn)場(chǎng)各種開關(guān)量和模擬量的采集、運(yùn)算和控制,計(jì)算機(jī)作為上位機(jī)提供人機(jī)交互界面,實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、打印以及現(xiàn)場(chǎng)數(shù)據(jù)等實(shí)時(shí)監(jiān)視功能。在一些實(shí)時(shí)性要求較高的監(jiān)控中,與專業(yè)組態(tài)軟件相比,使用VB可實(shí)現(xiàn)更底層的控制,在硬件配置相同情況下,其系統(tǒng)響應(yīng)比工控組態(tài)軟件要快。同時(shí),由于VB本身能提供良好的用戶界面,方便的動(dòng)畫程序設(shè)計(jì),省去了編寫大量串行口操作和界面設(shè)計(jì)程序,因此VB在編制PLC控制系統(tǒng)上位機(jī)監(jiān)控軟件方面有很大的潛力。
參考文獻(xiàn)
[1]張紅軍,韋曉明,蘇銳生.基于VB通信控件MSComm實(shí)現(xiàn)計(jì)算機(jī)與歐姆龍PLC串行通信編程的研究與應(yīng)用[J].自動(dòng)化與儀器儀表,2010(4):74-77.
[2]楊利宣,劉大全.用VB實(shí)現(xiàn)上位機(jī)與OMRON PLC串行通訊[J].中國集成電路,2009(1):79-83.