【摘要】介紹了在VB6.0 環(huán)境下PC機與S7—200PLC自由口通信的實現(xiàn)方法,并結(jié)合安全閥氣密性檢測控制系統(tǒng)的開發(fā)實例,分析了VB與PLC通信的關(guān)鍵技術(shù),同時對通信中重點部分作了簡要說明。
關(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在我國各個工業(yè)控制領(lǐng)域中得到了越來越廣泛的應用。而西門子公司生產(chǎn)的S7-200系列小型PLC,以其功能強人,使用穩(wěn)定且性價比高而在中國市場上占有很重要的地位,其內(nèi)部集成的通信接口為用戶提供了強大的通信功能,根據(jù)不同的協(xié)議通過接口使得PLC可與不同的設備進行通信并組成網(wǎng)絡,實現(xiàn)數(shù)據(jù)傳送及控制等功能。S7-200系列PLC支持自由口協(xié)議,它為用戶在使用時,提供了很多方便之處。本文主要研究的是在VB6.0環(huán)境下S7- 200PLC與PC機自由口通信的實現(xiàn),并結(jié)合安全閥檢測控制系統(tǒng)的開發(fā)實例加以說明。
1.系統(tǒng)硬件組成
[align=center]

圖1蝶閥監(jiān)測系統(tǒng)原理示意圖[/align]
系統(tǒng)主要由工控機、PLC、打印機和電氣控制柜等組成,如圖1所示。為了提高控制系統(tǒng)的可靠性與靈活性,系統(tǒng)采用PLC可編程邏輯控制器。PLC選型為SIEMENS公司的S7-200系列PLC,中央處理單元為西門子公司推出的PLC采用S7-200系列CPU226,該CPU在本機體中集成了2個RS-485通訊口,其性價比高,滿足本系統(tǒng)的所有要求。
使用485總線的一端連接PLC的通訊口PORT1,另一端通過RS-485/232電平轉(zhuǎn)換器連接至PC機的RS-232串口,實現(xiàn)PC機向PLC發(fā)送命令幀、并接收PLC響應幀。
系統(tǒng)共有6個臺位,共有12個傳感器,其開關(guān)量控制點數(shù)有限所以需要擴展模塊EM221和EM231。
2.控制的內(nèi)容和要求
系統(tǒng)采用集散控制,工控機為上位機主要負責監(jiān)控和管理功能:如數(shù)據(jù)的處理、與PLC通訊、誤差修正等。PLC為下位機也是控制的核心,通過RS485接口與工控機相連。把發(fā)送信息輸入到上位機,上位機向PLC發(fā)送發(fā)放的數(shù)據(jù)和指令。PLC接受上位機的信息并響應,實時控制電磁閥的打開合關(guān)閉,實時采集監(jiān)測壓力,并把每一路狀態(tài)的相關(guān)數(shù)據(jù)反饋到上位機,由管理程序生成數(shù)據(jù)庫,可對數(shù)據(jù)進行統(tǒng)計、報表、打印等。
本控制系統(tǒng)設計任務需要實現(xiàn)以下目標:
(1)可以監(jiān)控蝶閥腔體內(nèi)壓力的變化,可以人工設定并自動控腔內(nèi)壓力值。
(2)可以通過自動方式和手動方式控制該系統(tǒng)。
(3)現(xiàn)場顯示界面顯示的內(nèi)容主要包括:當壓力值、當前的檢測狀態(tài)、實時故障報警和歷史故障報警等。
(4)通訊采用RS-485總線通訊方式,使PLC與遠程PC機聯(lián)系,實現(xiàn)通過PC機控制電磁閥的開關(guān),來壓力大小目的。PC機同時與其他系統(tǒng)發(fā)生聯(lián)系,進而使工廠整個生產(chǎn)過程構(gòu)成了一個有機的整體。
3 PC機與PLC通信基礎
3.1PLC自由口通信命令
所謂自由口通信模式即Freeport模式,它是建立在RS一485硬件基礎上的一種通訊方式,它允許用戶自己定義一些簡單、基本的通訊協(xié)議設置,如數(shù)據(jù)長度、奇偶校驗等等,通訊功能完全由用戶程序控制[1]。自由口模式使用的相關(guān)的命令為XMT和RCV命令[2],分別用于發(fā)送和接收數(shù)據(jù)。這兩個命令都對應各自的一個數(shù)據(jù)緩沖區(qū),該緩沖區(qū)可以由用戶在編程中決定,如VB100,即為從VBl00 起始的一塊數(shù)據(jù)存儲區(qū)。其中,XMT的緩沖區(qū)格式如圖2
[align=center]

圖2 RCV 的緩沖區(qū)格式為[/align]
但應當注意的是,自由口協(xié)議必須在PLC處于RUN 模式下才有效,如果處于STOP 模式下PLC會自動的回到PPI模式(前提是使用PPI模式) 。
3.2 Mscomm 控件
為了實現(xiàn)PC 機與下位機PLC 之間的通信,Windows 提供了Mscomm 控件以供用戶使用。它封裝了關(guān)于通信的相關(guān)內(nèi)容,我們只需在Ⅷ平臺中,設置其相關(guān)屬性,并且對其的事什進行相應的編程即可使用。關(guān)于Mscomm 控件的一些重要屬性見表1。
關(guān)于Mscomm控件的事件,只有一種,即OnComm事件,通信中只要有錯誤或事件發(fā)生時,就會產(chǎn)生OnComm事件,而CommEvent 屬性傳回不同的錯誤或事件:
[align=center]表1 Mscomm控件屬性

[/align]
對應的數(shù)碼值,據(jù)此可對事件進行處理。在本文的通信過程中,主要用到的是ComEvReceive值。當接收緩沖區(qū)有數(shù)據(jù)時產(chǎn)生該值,然后對Input值進行相應的處理。
4.VB6.0平臺PC機與PLC的通信
Microsoft公司生產(chǎn)的Visual Basic6.0是Windows 環(huán)境下的一種可視化編程語言開發(fā)系統(tǒng),它以強大的圖形設計能力,簡易的編程語言和容易學習使用等優(yōu)點在工程中得到了廣泛的應用,我們正是使用它進行了與PLC 通訊的開發(fā)。
PLC I/O分配表見表2,只列出了4個臺位的。,結(jié)合工程的實際,我們編制了相應的PLC 通信程序。由于篇幅有限,只列出部分程序。但在編程中需要注意的是,程序中與通訊有關(guān)的除了進行相關(guān)寄存器的設置之外,還應該對接受的命令進行判斷,己選擇運行相關(guān)的程序。另外,由于PLC 中的通訊口是RS—485通訊口,其為半雙上通訊口,所以XMT 和RCV 命令不能同時運行。
[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通信程序設計
VisualBasic 開發(fā)包括界面的設計和程序的開發(fā)兩部分。
5.1 人機界面設計
人機界面使用戶與計算機之間的中介,是軟件產(chǎn)品的窗口。人機界面首先考慮的是如何能更好的滿足用戶的使用要求和操作習慣。人機界面的設計要考慮界面功能的全面和操作的簡便。最常用的功能要盡量安排在主界面中,如果有多個功能模塊,可以將先對獨立的模塊用單獨的界面表示,并與主界面雙向連接。如圖3
本系統(tǒng)界面包括狀態(tài)的監(jiān)控、身份登陸、參數(shù)設定、報表查詢、打印、報警和事件顯示。
[align=center]

圖3 人機界面[/align]
安全閥氣密性檢測控制系統(tǒng) ,VB通訊界面設計時, Mscomm 控件的重要屬性設置為:
InputMode 屬性:comlnputModeBinary,按二進制方式讀取數(shù)據(jù),因為從PLC 返回的數(shù)據(jù)中包括ASCII碼值超過128 的字節(jié)。
Settings 屬性:9600,n,8,1,選擇9600bps波特率,不進行奇偶校驗,8 位數(shù)據(jù)位,1位停止位,其設置要與PLC的設置一樣,才能正常通信。
RThreshold 屬性:1,當接收到1個字符時,引發(fā)OnComm事件的ComEvReceive 常數(shù)。
5.2 通信程序設計
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個字段
SCOMS = Right(SCOMS, 20)
vh5 = Trim(Mid(SCOMS, 8, 4)) ‘壓力值的存放(字符串)
yld1 = CCLng(vh5)
vh6 = Trim(Mid(SCOMS, 12, 1)) ‘自動信號
zdd1 = vh6
vh7 = Trim(Mid(SCOMS, 13, 1)) ‘充氣信號
cqd1 = CCLng(vh7)
vh8 = Trim(Mid(SCOMS, 14, 1)) ‘排氣信號
結(jié)束語
在實際中采用自由口通信模式,運用VB6.0作為開發(fā)工具,方便的實現(xiàn)了S7—200PLC與上位PC 機間的通信,實現(xiàn)了對蝶閥氣密檢測的控制。經(jīng)現(xiàn)場調(diào)試及運行表明,這是一種非常有效、可靠的通信方法,這種通信方法也可以應用于其它相關(guān)的通信場合,具有一定的普遍意義。
參考文獻:
1 張維軍,索世文等. PLC在自動化立體倉庫控制系統(tǒng)中的應用.機械設計與制造,2004 (2), 55.
2 西門子有限公司.西門子SIMATICS7 - 200可編程序控制器系統(tǒng)手冊, 2000, 9 ~ 140.
3 范逸之,陳立元.Visual Basic與RS - 232串行通信控制.北京:清華大學出版社,2002,59~65.
作者簡介:李磊(1978-),男,碩士研究生,籍貫山東,研究方向:
電力電子與電力傳動
通訊地址:山西省太原市太原科技大學468信箱
郵編030024
聯(lián)系電話 13099062062
Email :lileihcw@163.com