將PLC自動控制原理應(yīng)用在組態(tài)軟件控制系統(tǒng)中
1 前言
眾所周知,PLC自從問世以來就在自動控制各個行業(yè)發(fā)揮著難以取代的核心控制作用。PLC運行可靠,適用于各種惡劣的工業(yè)環(huán)境,PLC和工控機(IPC)相比,其運行可靠、可擴展性好、便于電氣連接、控制更專業(yè),但是工控機良好的人機界面,方便高級語言都是PLC所不能比擬的。
組態(tài)軟件在很多場合應(yīng)用于控制,可整個控制的中心往往還是PLC,組態(tài)軟件(上位機)所起的控制作用很小。人機界面一般用于簡單的動作控制,工藝參數(shù)的編制,配方的設(shè)定等等,雖然在概念上屬于控制范疇,但它并未真正起到核心控制作用,因為真正長期的自動運行控制是由PLC完成。我們不經(jīng)常使用工控機作為核心控制部分的原因有兩點:第一,工控機不適于在很惡略的環(huán)境下運行;第二,工控機經(jīng)常采用的Windows系統(tǒng)并不能夠讓人放心,其長期運行效果并不好。
盡管PLC、IPC在自動化控制中扮演不同角色,在許多運行連續(xù)時間較短,環(huán)境相對比較好的地方,人們還是希望使用IPC進行核心控制。使用IPC進行核心控制有很多種實現(xiàn)方式,當然其中最為簡單的辦法就是使用組態(tài)軟件。
本文針對使用組態(tài)軟件做控制中用戶經(jīng)常遇到的問題進行討論。在許多用戶使用組態(tài)軟件進行控制,尤其是使用串口連接方式進行控制時,發(fā)現(xiàn)組態(tài)軟件自動控制會影響的數(shù)據(jù)的采集速度,本文著重介紹如何解決此問題,解決此辦法就是——將PLC的控制方式模仿的應(yīng)用到上位機串口控制中。
2 用戶使用組態(tài)軟件控制后,導(dǎo)致數(shù)據(jù)采集慢的原因
這是許多組態(tài)軟件用戶在編寫上位機自動控制程序中所遇到的問題,到底是什么原因?能否有好的辦法來解決?
我們先簡單描述組態(tài)軟件數(shù)據(jù)采集控制的原理。在正常情況下,組態(tài)軟件定時向下位機發(fā)出讀命令來等待下位機回應(yīng)以截取想要查詢的數(shù)據(jù),周而復(fù)始的循環(huán),數(shù)據(jù)便動態(tài)的顯示在上位機上,實現(xiàn)數(shù)據(jù)“實時采集”。那么當我們需要對下位機進行控制時,組態(tài)軟件就會相應(yīng)寫命令,實現(xiàn)上位機對下位機的“實時控制”。
表面上看去合情合理,可為什么會出現(xiàn)數(shù)據(jù)采集慢這種情況?原來一切“歸咎于”組態(tài)軟件的讀寫機制。組態(tài)軟件為實現(xiàn)快速的控制,所以給寫命令最高的優(yōu)先執(zhí)行權(quán),也就是說,當有寫(控制)命令時,組態(tài)軟件首先執(zhí)行寫命令,直到?jīng)]有寫(控制)命令時組態(tài)軟件才恢復(fù)正常的讀(采集)循環(huán)。
由此,我們不難發(fā)現(xiàn)用戶經(jīng)常出現(xiàn)數(shù)據(jù)采集慢的原因。如果用戶頻繁將控制指令發(fā)出,系統(tǒng)將分配很少的時間給數(shù)據(jù)采集,從而導(dǎo)致數(shù)據(jù)采集變慢或者中斷。用戶在循環(huán)指令中重復(fù)給一個變量賦值(如y0=1),就會導(dǎo)致以上問題,所以我們的解決辦法就是需要控制時控制,不需要控制時放手。為了實現(xiàn)這種控制方式,我們可以參考PLC的運行模式。
3 PLC運行原理
在沒有中斷的情況下,PLC采用“順序掃描,不斷循環(huán)”的工作方式。
1) 每次掃描過程。集中對輸入信號進行采樣,集中對輸出信號進行刷新。
2) 輸入刷新過程。當輸入端口關(guān)閉時,程序在進行執(zhí)行階段時,輸入端有新狀態(tài),新狀態(tài)不能被讀入。只有程序進行下一次掃描時,新狀態(tài)才被讀入。
3) 一個掃描周期分為輸入采樣,程序執(zhí)行,輸出刷新。
4) 元件映象寄存器的內(nèi)容是隨著程序的執(zhí)行變化而變化。
5) 掃描周期的長短由三條決定:<1>CPU執(zhí)行指令的速度;<2>指令本身占有的時間;<3>指令條數(shù)。
6) 由于采用集中采樣。集中輸出的方式,存在輸入/輸出滯后的現(xiàn)象,即輸入/輸出響應(yīng)延遲。
4 小結(jié)
如上所述,在組態(tài)軟件控制中,我們采用先運算再輸出的方法,即,對IO變量有循環(huán)復(fù)雜運算操作時,我們采用中間變量計算,待計算出結(jié)果時我們再對IO變量賦值,這樣就會解決控制中采集慢的問題。