時(shí)間:2008-12-09 10:04:28來(lái)源:ronggang
摘 要:介紹了在Visual Basic 6.0環(huán)境下工控機(jī)與S7-200PLC自由口通信的實(shí)現(xiàn)方法,并結(jié)合水位實(shí)時(shí)檢測(cè)控制系統(tǒng)的開(kāi)發(fā)實(shí)例,分析了Visual Basic 6.0與PLC通信的關(guān)鍵技術(shù),該方法在幾乎不增加設(shè)備開(kāi)支的情況下實(shí)現(xiàn)了上位機(jī)與PLC的通信和監(jiān)控。
關(guān)鍵詞:PLC;通信;VB6.0;上位機(jī)
Application of Communication Based on PLC’s Freeport GAO Lihua QI Xiangdong JIAO Fenjiao
Abstract:In this paper, the way of communication between industrial PC and S7-200 PLC is introduced. The key technology of the communication method is also analysed through an example of water-level real-time detection control system, the method realizes the communications and monitor between the upper computer and PLC without increase the equipment expense.
Key words: PLC;communication;vb6.0;upper computer
1 引言
在工業(yè)控制中,作為工廠自動(dòng)化的三大支柱之一的可編程控制器 PLC(Programmable Logic Controller),由于其安全可靠、功能齊全、應(yīng)用靈活、操作維修容易和穩(wěn)定可靠等特點(diǎn)而得到廣泛應(yīng)用。但它無(wú)法實(shí)時(shí)顯示各種控制圖表,人機(jī)交互性差。為彌補(bǔ)這方面的不足,工業(yè)控制中一般與計(jì)算機(jī)組成控制系統(tǒng),將PLC作為下位機(jī)使用。本文就此以 S7—200 PLC為例,通過(guò) Visual Basic 6.0編程實(shí)現(xiàn)計(jì)算機(jī)作為上位機(jī)與 PLC的通信 ,完成工業(yè)流程和工藝參數(shù)的顯示以及控制參數(shù)的修改等功能。
2 系統(tǒng)簡(jiǎn)介
本系統(tǒng)是一個(gè)水位實(shí)時(shí)檢測(cè)和控制系統(tǒng),整個(gè)系統(tǒng)分成2級(jí);PLC控制級(jí)和上位機(jī)監(jiān)控級(jí)。首先,通過(guò) PLC 將水位傳感器檢測(cè)到的水位模擬量送至上位機(jī)進(jìn)行顯示;其次,上位機(jī)可發(fā)出起停泵、增減水位、手動(dòng)自動(dòng)切換等指令,并對(duì)上述指令信號(hào)動(dòng)態(tài)采樣,在上位機(jī)顯示除了以上幾部分外,系統(tǒng)還具備參數(shù)修改和報(bào)警、實(shí)時(shí)趨勢(shì)顯示、實(shí)時(shí)和歷史數(shù)據(jù)報(bào)告等功能。
3 系統(tǒng)硬件組成
系統(tǒng)主要由工控機(jī)、PLC、水泵和電氣控制柜等組成。其中工控機(jī)作為上位機(jī),通過(guò)RS-232接口與下位機(jī)相連,主要負(fù)責(zé)監(jiān)控和管理功能;下位機(jī)選用SIEMENS公司的S7-200系列PLC,中央處理模塊采用S7-200系列CPU226,該CPU在本體中集成了2個(gè)RS-485通訊口,其性價(jià)比高,滿足本系統(tǒng)的所有要求,由于水位傳感器的模擬量信號(hào),本系統(tǒng)還需要模擬量擴(kuò)展模塊EM235。
4 上位機(jī)與PLC通信
4.1 PLC自由口通信方式
工控機(jī)與 PLC通訊,工控機(jī)為 RS 232 串行接口,S7 - 200 為 RS 485 串行接口,他們之間不能直接相連使用,要實(shí)現(xiàn) PLC 和 PC 之間的實(shí)時(shí)通訊,須進(jìn)行電平轉(zhuǎn)換,這種轉(zhuǎn)換是通過(guò)帶隔離型的 RS 232/485 轉(zhuǎn)換器來(lái)實(shí)現(xiàn)的。工控機(jī)與PLC自由口通訊如圖1所示。
圖1 工控機(jī)與PLC自由口通訊示意圖
本控制系統(tǒng)中采用了自由口通信方式實(shí)現(xiàn)與工控機(jī)的控制。自由口通信方式是 S7 - 200 PLC的一個(gè)很有特色的功能,他可以使通信的范圍大大增加,使控制系統(tǒng)更加靈活、方便。通信協(xié)議完全由用戶程序控制,通過(guò)設(shè)置特殊寄存器 SMB30,SMB86,SMB87,SMB94 等的控制字來(lái)確定通訊參數(shù),通過(guò)使用接收中斷、發(fā)送中斷、發(fā)送指令和接收指令對(duì)通信口操作,通信協(xié)議完全可以由梯形圖程序控制。本系統(tǒng)采用定時(shí)發(fā)送,通過(guò)中斷查詢的方式接收數(shù)據(jù)。PLC發(fā)送和接收的流程圖如圖2、圖3所示。
圖2 發(fā)送程序流程圖
圖3 接收程序流程圖
4.2 MSComm控件
VB 6.0 是一個(gè)可視化的窗口開(kāi)發(fā)環(huán)境,微軟公司在VB 中提供了 MSComm 控件,該控件可以對(duì)串口狀態(tài)、通信協(xié)議、數(shù)據(jù)的接收和發(fā)送進(jìn)行設(shè)置。MSComm 的工作方式有兩種,一是查詢方式,二是事件驅(qū)動(dòng)方式。并且MSComm 控件屏蔽了通訊過(guò)程中的底層操作,可以方便地實(shí)現(xiàn) PC與 PLC之間的串行通訊。
MSComm 屬性很多,實(shí)現(xiàn)通訊只要在程序中設(shè)置好幾個(gè)重要的通訊屬性即可,屬性設(shè)置如表1。
表1 Mscomm控件屬性
4.3 接口編程
在實(shí)施過(guò)程中,上位機(jī)與下位機(jī)之間要進(jìn)行數(shù)據(jù)傳輸,本系統(tǒng)中,PLC要向上位機(jī)傳輸多個(gè)參數(shù):1個(gè)水位傳感器壓力信號(hào)、2個(gè)報(bào)警信號(hào)及手動(dòng)/自動(dòng)狀態(tài)信號(hào)等,同時(shí)要求上位機(jī)向PLC傳送開(kāi)關(guān)控制信號(hào)、壓力設(shè)定值信號(hào)及調(diào)節(jié)參數(shù),并把手動(dòng)/自動(dòng)狀態(tài)命令送入PLC中,組成一個(gè)帶上位機(jī)的PLC智能控制系統(tǒng)。系統(tǒng)界面如圖4所示。這里應(yīng)當(dāng)注意的是,由于采用的通訊方式是半雙工的RS-485通訊,所以發(fā)送和接收指令不能同時(shí)使用。
圖4 系統(tǒng)界面
4.3.1 PLC部分程序
初始化:
NETWORK 1
LD SM0.0 //首次掃描
MOVB 16#05, SMB30 //初始化自由通信
NETWORK 2
MOVB 16#B0, SMB87 //初始化RCV信息控制字符
MOVB 16#0A, SMB89 //設(shè)定信息結(jié)束字符
MOVW +5, SMW90 //設(shè)置空閑線超時(shí)時(shí)間為5ms
MOVB 100, SMB94 //設(shè)置最大字符數(shù)為100
NETWORK 3
ATCH INT_0:INT0, 23 //接收完成事件連接到中斷
ATCH INT_2:INT2, 9 //發(fā)送完成事件連接到中斷
ENI //中斷允許
RCV VB100, 0 //端口指向接收緩沖區(qū)VB100
中斷程序INT_0 //接收完成中斷
LDB= SMB86, 16#20 //接收狀態(tài)顯示接收到結(jié)束字符
MOVB 10, SMB34 //連接一個(gè)10ms的時(shí)基中斷,觸發(fā)發(fā)送
收到的信息字符
ATCH INT_1:INT1, 10
CRETI
NOT //接收未完成
RCV VB100, 0 //啟動(dòng)一個(gè)新的接收
中斷程序INT_1 //定時(shí)中斷
LD SM0.0
DTCH 10 //斷開(kāi)定時(shí)器中斷
XMT VB100,0 //在端口0向用戶回送信息
中斷程序INT_2 //發(fā)送完成中斷
LD SM0.0
RCV VB100, 0 //發(fā)送完成,允許另一個(gè)接收
4.3.2 VB部分通信程序
Private Sub MSComm1_OnComm()
Static SCOMS As String
Dim S1 As String
If MSComm1.CommEvent = comEvReceive Then ‘如果接收到字符
S1 = MSComm1.Input ‘把接收緩沖區(qū)內(nèi)的數(shù)據(jù)賦值給臨時(shí)變量"S1"
If (S1 = Chr(&H1B)) And (Len(SCOMS) > 3) Then ‘如果變量"S1"(接收緩沖區(qū)內(nèi)的數(shù)據(jù)接收到起始字符‘&H1B‘,并且變量"SCOMS"中的字節(jié)數(shù)大于3),則 SCOMS = ""
Else
If S1 <> Chr(&HD) Then ‘如果變量"S1"沒(méi)有接收到結(jié)束字符‘&H0D‘
SCOMS = SCOMS & S1
Else
Call mySave(SCOMS)
End If
End If
End If
End Sub
5 結(jié)束語(yǔ)
在工業(yè)控制過(guò)程中,常常需要PLC與其他設(shè)備的通訊,若采用廠方提供的復(fù)雜的通訊方式,必然會(huì)使系統(tǒng)的擴(kuò)展性、靈活性和性價(jià)比大打折扣,在中小規(guī)模控制系統(tǒng)中采用自由口通訊,可以有效地解決以上問(wèn)題。
參考文獻(xiàn)
[1]范逸之.Visual Basic與RS-232串行通信控制.北京:清華大學(xué)出版社,2002.54-110.
[2]王永華.現(xiàn)代電氣控制及PLC應(yīng)用技術(shù)[M].北京:航空航天大學(xué)出版社,2003.
[3]劉炳文. 精通Visual Basic6.0中文版[M].北京:電子工業(yè)出版社,1999.
[4]SIEMENS SIMATIC S7-200可編程控制器系統(tǒng)手冊(cè).
標(biāo)簽:
中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.wangxinlc.cn)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>2025-04-30
性能躍升20%!維宏NK300CX Plus數(shù)控系統(tǒng)...
2025-04-11
rpi-image-gen:樹(shù)莓派軟件鏡像構(gòu)建的終...
2025-04-08
【產(chǎn)品解讀】全面提升精密制造檢測(cè)節(jié)拍...
2025-03-31
激光閃耀 智慧引領(lǐng) | WISE MASER 黑武士...
2025-03-20
推薦專(zhuān)題
更多>