【摘要】介紹了在VB6.0 環(huán)境下PC機(jī)與S7—200PLC自由口通信的實(shí)現(xiàn)方法,并結(jié)合安全閥氣密性檢測(cè)控制系統(tǒng)的開(kāi)發(fā)實(shí)例,分析了VB與PLC通信的關(guān)鍵技術(shù),同時(shí)對(duì)通信中重點(diǎn)部分作了簡(jiǎn)要說(shuō)明。
關(guān)鍵詞:VB6.0;PLC;自由口模式;Mscomm
【
Abstract】The communication between PC and S7 - 200PLC under freeport mode based on VB6.0 is introduced in this. The key techniques of communication between VB and PLC are analyzed with gas leak test system for butterfly valve for an Optical experiment table,and brief explanations of important part in communication are also added.
Key words: VB6. 0;PLC;Freeport model; Mscomm
引言
隨著可編程控制器(PLC)技術(shù)的迅速發(fā)展,PLC在我國(guó)各個(gè)工業(yè)控制領(lǐng)域中得到了越來(lái)越廣泛的應(yīng)用。而西門(mén)子公司生產(chǎn)的S7-200系列小型PLC,以其功能強(qiáng)人,使用穩(wěn)定且性?xún)r(jià)比高而在中國(guó)市場(chǎng)上占有很重要的地位,其內(nèi)部集成的通信接口為用戶(hù)提供了強(qiáng)大的通信功能,根據(jù)不同的協(xié)議通過(guò)接口使得PLC可與不同的設(shè)備進(jìn)行通信并組成網(wǎng)絡(luò),實(shí)現(xiàn)數(shù)據(jù)傳送及控制等功能。S7-200系列PLC支持自由口協(xié)議,它為用戶(hù)在使用時(shí),提供了很多方便之處。本文主要研究的是在VB6.0環(huán)境下S7- 200PLC與PC機(jī)自由口通信的實(shí)現(xiàn),并結(jié)合安全閥檢測(cè)控制系統(tǒng)的開(kāi)發(fā)實(shí)例加以說(shuō)明。
1.系統(tǒng)硬件組成
[align=center]
圖1蝶閥監(jiān)測(cè)系統(tǒng)原理示意圖[/align]
系統(tǒng)主要由工控機(jī)、PLC、打印機(jī)和電氣控制柜等組成,如圖1所示。為了提高控制系統(tǒng)的可靠性與靈活性,系統(tǒng)采用PLC可編程邏輯控制器。PLC選型為SIEMENS公司的S7-200系列PLC,中央處理單元為西門(mén)子公司推出的PLC采用S7-200系列CPU226,該CPU在本機(jī)體中集成了2個(gè)RS-485通訊口,其性?xún)r(jià)比高,滿(mǎn)足本系統(tǒng)的所有要求。
使用485總線(xiàn)的一端連接PLC的通訊口PORT1,另一端通過(guò)RS-485/232電平轉(zhuǎn)換器連接至PC機(jī)的RS-232串口,實(shí)現(xiàn)PC機(jī)向PLC發(fā)送命令幀、并接收PLC響應(yīng)幀。
系統(tǒng)共有6個(gè)臺(tái)位,共有12個(gè)傳感器,其開(kāi)關(guān)量控制點(diǎn)數(shù)有限所以需要擴(kuò)展模塊EM221和EM231。
2.控制的內(nèi)容和要求
系統(tǒng)采用集散控制,工控機(jī)為上位機(jī)主要負(fù)責(zé)監(jiān)控和管理功能:如數(shù)據(jù)的處理、與PLC通訊、誤差修正等。PLC為下位機(jī)也是控制的核心,通過(guò)RS485接口與工控機(jī)相連。把發(fā)送信息輸入到上位機(jī),上位機(jī)向PLC發(fā)送發(fā)放的數(shù)據(jù)和指令。PLC接受上位機(jī)的信息并響應(yīng),實(shí)時(shí)控制電磁閥的打開(kāi)合關(guān)閉,實(shí)時(shí)采集監(jiān)測(cè)壓力,并把每一路狀態(tài)的相關(guān)數(shù)據(jù)反饋到上位機(jī),由管理程序生成數(shù)據(jù)庫(kù),可對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)、報(bào)表、打印等。
本控制系統(tǒng)設(shè)計(jì)任務(wù)需要實(shí)現(xiàn)以下目標(biāo):
(1)可以監(jiān)控蝶閥腔體內(nèi)壓力的變化,可以人工設(shè)定并自動(dòng)控腔內(nèi)壓力值。
(2)可以通過(guò)自動(dòng)方式和手動(dòng)方式控制該系統(tǒng)。
(3)現(xiàn)場(chǎng)顯示界面顯示的內(nèi)容主要包括:當(dāng)壓力值、當(dāng)前的檢測(cè)狀態(tài)、實(shí)時(shí)故障報(bào)警和歷史故障報(bào)警等。
(4)通訊采用RS-485總線(xiàn)通訊方式,使PLC與遠(yuǎn)程PC機(jī)聯(lián)系,實(shí)現(xiàn)通過(guò)PC機(jī)控制電磁閥的開(kāi)關(guān),來(lái)壓力大小目的。PC機(jī)同時(shí)與其他系統(tǒng)發(fā)生聯(lián)系,進(jìn)而使工廠(chǎng)整個(gè)生產(chǎn)過(guò)程構(gòu)成了一個(gè)有機(jī)的整體。
3 PC機(jī)與PLC通信基礎(chǔ)
3.1PLC自由口通信命令
所謂自由口通信模式即Freeport模式,它是建立在RS一485硬件基礎(chǔ)上的一種通訊方式,它允許用戶(hù)自己定義一些簡(jiǎn)單、基本的通訊協(xié)議設(shè)置,如數(shù)據(jù)長(zhǎng)度、奇偶校驗(yàn)等等,通訊功能完全由用戶(hù)程序控制[1]。自由口模式使用的相關(guān)的命令為XMT和RCV命令[2],分別用于發(fā)送和接收數(shù)據(jù)。這兩個(gè)命令都對(duì)應(yīng)各自的一個(gè)數(shù)據(jù)緩沖區(qū),該緩沖區(qū)可以由用戶(hù)在編程中決定,如VB100,即為從VBl00 起始的一塊數(shù)據(jù)存儲(chǔ)區(qū)。其中,XMT的緩沖區(qū)格式如圖2
[align=center]
圖2 RCV 的緩沖區(qū)格式為[/align]
但應(yīng)當(dāng)注意的是,自由口協(xié)議必須在PLC處于RUN 模式下才有效,如果處于STOP 模式下PLC會(huì)自動(dòng)的回到PPI模式(前提是使用PPI模式) 。
3.2 Mscomm 控件
為了實(shí)現(xiàn)PC 機(jī)與下位機(jī)PLC 之間的通信,Windows 提供了Mscomm 控件以供用戶(hù)使用。它封裝了關(guān)于通信的相關(guān)內(nèi)容,我們只需在Ⅷ平臺(tái)中,設(shè)置其相關(guān)屬性,并且對(duì)其的事什進(jìn)行相應(yīng)的編程即可使用。關(guān)于Mscomm 控件的一些重要屬性見(jiàn)表1。
關(guān)于Mscomm控件的事件,只有一種,即OnComm事件,通信中只要有錯(cuò)誤或事件發(fā)生時(shí),就會(huì)產(chǎn)生OnComm事件,而CommEvent 屬性傳回不同的錯(cuò)誤或事件:
[align=center]表1 Mscomm控件屬性
[/align]
對(duì)應(yīng)的數(shù)碼值,據(jù)此可對(duì)事件進(jìn)行處理。在本文的通信過(guò)程中,主要用到的是ComEvReceive值。當(dāng)接收緩沖區(qū)有數(shù)據(jù)時(shí)產(chǎn)生該值,然后對(duì)Input值進(jìn)行相應(yīng)的處理。
4.VB6.0平臺(tái)PC機(jī)與PLC的通信
Microsoft公司生產(chǎn)的Visual Basic6.0是Windows 環(huán)境下的一種可視化編程語(yǔ)言開(kāi)發(fā)系統(tǒng),它以強(qiáng)大的圖形設(shè)計(jì)能力,簡(jiǎn)易的編程語(yǔ)言和容易學(xué)習(xí)使用等優(yōu)點(diǎn)在工程中得到了廣泛的應(yīng)用,我們正是使用它進(jìn)行了與PLC 通訊的開(kāi)發(fā)。
PLC I/O分配表見(jiàn)表2,只列出了4個(gè)臺(tái)位的。,結(jié)合工程的實(shí)際,我們編制了相應(yīng)的PLC 通信程序。由于篇幅有限,只列出部分程序。但在編程中需要注意的是,程序中與通訊有關(guān)的除了進(jìn)行相關(guān)寄存器的設(shè)置之外,還應(yīng)該對(duì)接受的命令進(jìn)行判斷,己選擇運(yùn)行相關(guān)的程序。另外,由于PLC 中的通訊口是RS—485通訊口,其為半雙上通訊口,所以XMT 和RCV 命令不能同時(shí)運(yùn)行。
[align=center]表2 I/O分配表
[/align]
PLC的中斷程序
LDB= SMB86, 16#20
LPS
MOVB 10, SMB34
ATCH INT1, 10
AB= ‘K‘, VB301
AB= ‘C‘, VB302
AB= ‘0‘, VB303
S Q0.0, 1
LRD
AB= ‘G‘, VB301
AB= ‘C‘, VB302
AB= ‘0‘, VB303
R Q0.0, 1
LRD
AB= ‘K‘, VB301
AB= ‘P‘, VB302
AB= ‘0‘, VB303
S Q0.1, 1
LRD
AB= ‘G‘, VB301
AB= ‘P‘, VB302
AB= ‘0‘, VB303
R Q0.1, 1
LPP
NOT
RCV VB300, 0
5 VB通信程序設(shè)計(jì)
VisualBasic 開(kāi)發(fā)包括界面的設(shè)計(jì)和程序的開(kāi)發(fā)兩部分。
5.1 人機(jī)界面設(shè)計(jì)
人機(jī)界面使用戶(hù)與計(jì)算機(jī)之間的中介,是軟件產(chǎn)品的窗口。人機(jī)界面首先考慮的是如何能更好的滿(mǎn)足用戶(hù)的使用要求和操作習(xí)慣。人機(jī)界面的設(shè)計(jì)要考慮界面功能的全面和操作的簡(jiǎn)便。最常用的功能要盡量安排在主界面中,如果有多個(gè)功能模塊,可以將先對(duì)獨(dú)立的模塊用單獨(dú)的界面表示,并與主界面雙向連接。如圖3
本系統(tǒng)界面包括狀態(tài)的監(jiān)控、身份登陸、參數(shù)設(shè)定、報(bào)表查詢(xún)、打印、報(bào)警和事件顯示。
[align=center]
圖3 人機(jī)界面[/align]
安全閥氣密性檢測(cè)控制系統(tǒng) ,VB通訊界面設(shè)計(jì)時(shí), Mscomm 控件的重要屬性設(shè)置為:
InputMode 屬性:comlnputModeBinary,按二進(jìn)制方式讀取數(shù)據(jù),因?yàn)閺腜LC 返回的數(shù)據(jù)中包括ASCII碼值超過(guò)128 的字節(jié)。
Settings 屬性:9600,n,8,1,選擇9600bps波特率,不進(jìn)行奇偶校驗(yàn),8 位數(shù)據(jù)位,1位停止位,其設(shè)置要與PLC的設(shè)置一樣,才能正常通信。
RThreshold 屬性:1,當(dāng)接收到1個(gè)字符時(shí),引發(fā)OnComm事件的ComEvReceive 常數(shù)。
5.2 通信程序設(shè)計(jì)
VB通信中接收事件的程序清單如下
If MSComm1.CommEvent = comEvReceive Then
S1 = MSComm1.Input
If (S1 = Chr(&H1B)) And (Len(SCOMS) > 5) Then
SCOMS = ""
Else
If S1 <> Chr(&HD) Then
SCOMS = SCOMS & S1
Else
Call MYSAVE(SCOMS)
End If
End If
End If
VB通信中分配變量
SCOMS = Trim(SCOMS) ‘接收到20個(gè)字段
SCOMS = Right(SCOMS, 20)
vh5 = Trim(Mid(SCOMS, 8, 4)) ‘壓力值的存放(字符串)
yld1 = CCLng(vh5)
vh6 = Trim(Mid(SCOMS, 12, 1)) ‘自動(dòng)信號(hào)
zdd1 = vh6
vh7 = Trim(Mid(SCOMS, 13, 1)) ‘充氣信號(hào)
cqd1 = CCLng(vh7)
vh8 = Trim(Mid(SCOMS, 14, 1)) ‘排氣信號(hào)
結(jié)束語(yǔ)
在實(shí)際中采用自由口通信模式,運(yùn)用VB6.0作為開(kāi)發(fā)工具,方便的實(shí)現(xiàn)了S7—200PLC與上位PC 機(jī)間的通信,實(shí)現(xiàn)了對(duì)蝶閥氣密檢測(cè)的控制。經(jīng)現(xiàn)場(chǎng)調(diào)試及運(yùn)行表明,這是一種非常有效、可靠的通信方法,這種通信方法也可以應(yīng)用于其它相關(guān)的通信場(chǎng)合,具有一定的普遍意義。
參考文獻(xiàn):
1 張維軍,索世文等. PLC在自動(dòng)化立體倉(cāng)庫(kù)控制系統(tǒng)中的應(yīng)用.機(jī)械設(shè)計(jì)與制造,2004 (2), 55.
2 西門(mén)子有限公司.西門(mén)子SIMATICS7 - 200可編程序控制器系統(tǒng)手冊(cè), 2000, 9 ~ 140.
3 范逸之,陳立元.Visual Basic與RS - 232串行通信控制.北京:清華大學(xué)出版社,2002,59~65.
作者簡(jiǎn)介:李磊(1978-),男,碩士研究生,籍貫山東,研究方向:
電力電子與電力傳動(dòng)
通訊地址:山西省太原市太原科技大學(xué)468信箱
郵編030024
聯(lián)系電話(huà) 13099062062
Email :lileihcw@163.com