1 引 言
常規(guī)的通過(guò)PC機(jī),利用PC對(duì)工藝對(duì)象的控制,大多都是在具有組態(tài)軟件或通訊模塊的情況下進(jìn)行,但是對(duì)于一些小型的控制系統(tǒng)而言,由于受到簡(jiǎn)單實(shí)用和成本低的原則限制,不適合使用常規(guī)方法。
為了滿足小型系統(tǒng)中帶上位機(jī)結(jié)合PLC實(shí)現(xiàn)自動(dòng)控制的低成本的要求,把控制放在PLC中運(yùn)行,利用Visual Basic結(jié)合PLC中的通信語(yǔ)言進(jìn)行編程,實(shí)現(xiàn)上位機(jī)與PLC之間,在無(wú)通訊模塊情況下的數(shù)據(jù)信息的雙向通信傳輸,很好地解決了工程應(yīng)用中的一些實(shí)際問(wèn)題。
2 控制系統(tǒng)的組成
2.1 工藝對(duì)象的介紹
由1個(gè)具有一定氣阻和氣容所構(gòu)成的壓力貯罐裝置是1個(gè)一階對(duì)象,而由3個(gè)一階特性的壓力貯罐串聯(lián),就組成了一個(gè)三階壓力對(duì)象裝置,在工程中通常認(rèn)為是高階系統(tǒng)。如圖1所示,主流量經(jīng)調(diào)節(jié)閥、轉(zhuǎn)子流量計(jì)再依次進(jìn)入1#、2#、3#貯罐中,從而分別實(shí)現(xiàn)一階、二階、三階對(duì)象,對(duì)象的時(shí)間常數(shù)分別由R1C1、R2C2、R3C3來(lái)決定(R為氣阻,C為氣容),并可由R1、R2、R3來(lái)改變對(duì)象的特征。而對(duì)對(duì)象產(chǎn)生干擾,即為進(jìn)入各個(gè)貯罐的干擾源。
2.2 控制系統(tǒng)方案實(shí)施
在圖1中,3#罐的壓力是否穩(wěn)定,將直接反映出輸出介質(zhì)壓力的質(zhì)量,故以3#罐的壓力作為被控變量。如果以3#罐的壓力為測(cè)量值設(shè)計(jì)一單回路控制系統(tǒng),也能達(dá)到一定的自動(dòng)控制的目的。由于干擾不僅從3#罐底部進(jìn)入,而且也會(huì)從前面兩個(gè)罐子的底部進(jìn)入。為了使自動(dòng)調(diào)節(jié)具有較強(qiáng)的克服干擾的能力,設(shè)計(jì)了一個(gè)串級(jí)控制系統(tǒng)。以3#罐壓力為主被控變量,以干擾變化比較大且比較平凡的1#罐壓力為副被控變量。在此串級(jí)控制方案中,副調(diào)節(jié)器可以改善主調(diào)節(jié)器的廣義對(duì)象特性,同時(shí)副回路能自動(dòng)克服對(duì)象的非線性影響,能夠按照主回路的要求,更精確地控制操縱變量的質(zhì)量流和能量流。具體方案如圖1所示。
在實(shí)施過(guò)程中,采用S7-226PLC作為下位機(jī),以1臺(tái)PC機(jī)作為上位機(jī)進(jìn)行監(jiān)控和管理。下位機(jī)的任務(wù)是CPU配合EM235模塊進(jìn)行模擬量的輸入/輸出工作,能檢測(cè)3個(gè)壓力罐的壓力測(cè)量值,送CPU進(jìn)行處理。能分別在手動(dòng)V 自動(dòng)情況下輸出3個(gè)壓力罐的6個(gè)高、低報(bào)警信號(hào)和最終的調(diào)節(jié)器輸出,并把輸出信號(hào)經(jīng)過(guò)隔離和轉(zhuǎn)換送到調(diào)節(jié)閥,最終達(dá)到控制流量的目的;同時(shí)與上位機(jī)進(jìn)行數(shù)據(jù)傳輸,把測(cè)量值-輸出值-報(bào)警值及所處運(yùn)行狀態(tài)輸入上位機(jī)。上位機(jī)除了接受下位機(jī)來(lái)的信號(hào)外,也向PLC輸出一些控制參數(shù),如PID調(diào)節(jié)參數(shù)的修改以及給定值的設(shè)定,動(dòng)態(tài)地在流量圖上顯示變量的變化,并附有調(diào)節(jié)界面和各參數(shù)的變化曲線。
3 上、下位機(jī)的通信
3.1 兩者之間的物理連接
S7-226CPU是西門子SIMATIC S7-200系列中的一種,其內(nèi)部集成的PPI接口為用戶提供了強(qiáng)大的通信功能,PPI接口物理特性為RS485,可在多種模式下工作,其中自由口通信方式是S7-200PLC的一個(gè)很有特色的功能,它可以與任何協(xié)議公開的其它設(shè)備、控制器等進(jìn)行通信。上位機(jī)串口符合RS-232標(biāo)準(zhǔn)協(xié)議,為了實(shí)現(xiàn)兩者的通信必須進(jìn)行協(xié)議轉(zhuǎn)換,可以利用PC/PPI電纜連接兩者,并同時(shí)完成協(xié)議轉(zhuǎn)換的任務(wù)。
3.2 的通信
S7-200CPU支持多種通信方式,其系統(tǒng)協(xié)議為點(diǎn)對(duì)點(diǎn)接口(PPI),基于開放系統(tǒng)互聯(lián)(OSI)7層通訊結(jié)構(gòu)模型。PPI協(xié)議是一種主6 從協(xié)議,采用RS-485信號(hào)標(biāo)準(zhǔn)的令牌總線通信方式,通訊速率可在9600~19200bit之間選擇。PPI協(xié)議是基于字符的,使用11位字符、1位起始位、8位數(shù)據(jù)位、1位奇偶校驗(yàn)位、1位結(jié)束位。通訊幀依賴起始和結(jié)束字符。S7-200CPU的通訊端口采用RS-485信號(hào)標(biāo)準(zhǔn)的9針D型連接口,PC/PPI電纜把S7-200CPU同個(gè)人計(jì)算機(jī)連接起來(lái),S7-200的這個(gè)通訊端口可由LAD或STL程序來(lái)指定通訊方式,本程序中所指定的該端口的操作模式就是所謂自由端口模式。在自由端口模式下,用戶可用程序來(lái)定義波特率、每個(gè)字符位數(shù)、奇偶檢驗(yàn)和通訊協(xié)議。
3.3 基于VB6.0的串行通信
VB6.0把與串行通信有關(guān)的操作都封裝在MSComm控件里,它是一種事件驅(qū)動(dòng)的對(duì)象。VB同時(shí)也為這個(gè)控制提供了標(biāo)準(zhǔn)的事件處理函數(shù)、過(guò)程,并通過(guò)屬性的方法提供了通信接口的參數(shù)設(shè)置,從而解決了串行通信的問(wèn)題。
涉及到的MSComm控件的主要屬性如下:
CommPort屬性用于設(shè)置或返回通信連接端口號(hào)碼。程序必須指定所要使用的串行端口的口號(hào)。Windows系統(tǒng)會(huì)使用所設(shè)置的通信端口與外界進(jìn)行通信,程序也可以借助此屬性返回所使用的連接端口號(hào)。
Settings屬性用于設(shè)置初始化參數(shù),以字符串的形式設(shè)置或返回傳輸速率、校驗(yàn)位、數(shù)據(jù)位、停止位等4個(gè)參數(shù)。其默認(rèn)值是:“9600,N,8,1”,表示所使用的通信端口是以9600位/s的速度傳輸,不作校驗(yàn)位檢查,每個(gè)數(shù)據(jù)單元是8位,而停止位是1位。需要注意的是:這4項(xiàng)必須按照上述順序,不可前后對(duì)調(diào),字母“N”可以大小寫,而且使用RS-232通信的雙方,Settings必須完全一樣,彼此才能順利的溝通。
PortOpen屬性用于設(shè)置或返回通信連接端口的狀態(tài)。使用前必須將要使用的串行接口先行打開,而在使用完畢后,也必須執(zhí)行關(guān)閉操作。串行通信端口各項(xiàng)功能都是在PortOpen的True與Fause之間完成的。
Input屬性用于從輸入緩存區(qū)返回并刪除字符,程序靠這個(gè)命令將對(duì)方傳到輸入緩存區(qū)中的字符讀出來(lái),并清除緩存區(qū)中已被讀取的字符。
Output屬性用于將一個(gè)字符串寫入輸出緩存區(qū),當(dāng)程序向?qū)Ψ絺鬏斪址畷r(shí),可使用此命令將字符串寫入輸出緩存區(qū)中。
Rthreshold屬性用于設(shè)置或返回引發(fā)接收事件的字符數(shù),當(dāng)緩存區(qū)達(dá)到所設(shè)置的字符數(shù)時(shí),將會(huì)引發(fā)Ohcomm事件中的接收事件,它是引發(fā)接收事件的“門閥”,默認(rèn)值為“0”,表示無(wú)論緩存區(qū)中有多少字符均不引發(fā)接收事件。
使用MSComm控件的方式表面上看來(lái)要比使用直接調(diào)用API函數(shù)來(lái)得復(fù)雜,但實(shí)際上使用MSComm控件可以省去不少底層程序的編寫,因此實(shí)際上要比API函數(shù)簡(jiǎn)單多了。
3.4 接口編程
在高階壓力系統(tǒng)的自控中,PLC要向PC傳輸10多個(gè)參數(shù):3個(gè)壓力罐的壓力信號(hào)、調(diào)節(jié)輸出信號(hào)、6個(gè)報(bào)警信號(hào)及手動(dòng)6 自動(dòng)狀態(tài)信號(hào)等,同時(shí)要求PC向PLC傳送主副調(diào)節(jié)器中的調(diào)節(jié)參數(shù)及主調(diào)的給定值,并把手動(dòng)/自動(dòng)狀態(tài)命令送入PLC中,組成一個(gè)帶上位機(jī)的PLC智能控制系統(tǒng)。在高階壓力裝置監(jiān)控操作界面上,單擊調(diào)節(jié)器符號(hào)會(huì)彈出調(diào)節(jié)器操作面板界面和對(duì)應(yīng)的測(cè)量值曲線界面。
3.4.1 部分程序
初始化:
NETWORK 1
LD SM0.0
MOVB 9,SMB30
NETWORK 2
LD SM0.0
MOVB 16 # EC,SMB87
MOVB 103,SMB88
MOVE 71,SMB89
MOVW +1000,SMW92
MOVE 35,SMB94
R SM87.2,1
NETWORK 3
LD SM0.0
ATH RcvComp,23
ATH TxComp,9
NETWORK 4
LD SM0.0
ENI
RCV VB700,0
MOVE 2,VB750
MOVE 16#41,VB751
MOVE 16#35,VB752
NETWORK 5
LD SM0.7
=SM30.0
3.4.2 VB6.0的部分程序代碼
采用自由口通訊協(xié)議通訊,其代碼段為:
發(fā)送格式:開始字符(g)+命令字+4個(gè)字節(jié)ASCⅡ碼+BCC校驗(yàn)碼(2個(gè)ASCⅡ)+結(jié)束字符(G)
Dim OutData As Variant
Dim Outllrrav(12)As Bvte
Dim i As Byte
Dim bcc As Byte
Dim count As Integer
Dim mvtime As Double
CommControl. OutBufferCount=0
OutArray(0)=Asc(“g”)
OutArray(1)=Command
OutArray(2)=Asc(Hex((PLCOUT1 And & HF0)/16W‘HIGH
OutArray(3)=Asc(Hex(PLCOUT1 And & HF))‘LOW
OutArray(4)=Asc(Hex((PLCOUT2 And & HF0)/16))‘HIGH
OutArray(5)=Asc(Hex(PLCOUT2 And & HF))‘LOW
OutArray(6)=Asc(Hex((PLCOUT3 And & HF0)/16))‘HIGH
OutArray(7)=Asc(Hex(PLCOUT3 And & HF))‘LOW
OutArray(8)=Asc(Hex((PLCOUT4 And & HF0)/16))‘HIGH
OutArray(9)=Asc(Hex(PLCOUT4 And & HF))‘LOW
bcc=0
For i=1 To 9‘計(jì)算機(jī)BCC校驗(yàn)碼
bcc=bcc Xor OutArray(i)
Next i
OutArray(10)=Asc(Hex((bcc And & HF0)/16))‘HIGH
OutArray(11)=Asc(Hex(bcc And & HF0))‘LOW
OutArray(11)=Asc(“G”)
OutData=OutArray
count=0
Send:
CommControl.Output=OutData
mvtime=Timer
Do
DoEvents
Loop Until CommControl.InBufferCount≥4 Or
Timer>mytime+0.3
if CommControl.InBufferCount≥4 Then
PlcSetOut=True
CommControl.InBufferCount=0
Form 1.Iblplc.Caption=“PLC通訊正常”
Else
count=count+1
if count≤3 Then
Go To Send
Else
MsgBox“通訊失敗”
PlcSetOut=False
Form 1.Iblplc.Caption=“PLC通訊錯(cuò)誤”
errcount=errcount+1
Form 1.Iblplc.Caption=errcount
Exit Function
End If
End If
End Function
4 結(jié)束語(yǔ)
文中所介紹的通信方案適用于中小型的智能控制系統(tǒng),具有使用方便、應(yīng)用可靠的特點(diǎn),已成功應(yīng)用于所介紹的高階壓力系統(tǒng)的串級(jí)控制回路中。目前正用于研究不同壓力下,高階系統(tǒng)穩(wěn)定性的情況分析,以及不同壓力下調(diào)節(jié)器參數(shù)的變化規(guī)律。經(jīng)實(shí)踐證明這是一種非常有效、可靠的通信方法,其建立在通信基礎(chǔ)上的動(dòng)態(tài)參數(shù)顯示及在線參數(shù)修改,大大提高了系統(tǒng)的控制性能。這種通信方法完全可以應(yīng)用于其它相關(guān)的通信場(chǎng)合,具有一定的普遍意義。
(審核編輯: 智匯李)
分享