本文具體闡述了PC與PLC互連通訊的一般方法,并以永宏公司的FATEK-FBS PLC為對象,以實際四層電梯模型監控系統為例,先容了利用大家都認識的編程語言Visual Basic 和Step7,實現PLC與上位計算機實時通訊的通訊過程。
1 通訊方式
面臨眾多出產廠家的各種類型PLC,它們各有優缺點,能夠知足用戶的各種需求,但在形態、組成、功 能、編程等方面各不相同,沒有一個同一的尺度,各廠家制訂的通訊協議也千差萬別。目前,人們主要采用以下三種方式實現PLC與PC的互聯通訊:
(1) 通過使用PLC開發商提供的系統協議和網絡適配器,來實現PLC與PC機的互聯通訊。但是因為其通訊協議是不公然的,因此互聯通訊必需使用PLC開發商提供的上位機組態軟件,并采用支持相應協議的外設??梢哉f這種方式是PLC開發商為自己的產品量身定作的,因此難以知足不同用戶的需求。
(2) 使用目前通用的上位機組態軟件,如組態王、InTouch、WinCC、力控等,來實現PLC與PC機的互連通訊。組態軟件以其功能強盛、界面友好、開發簡潔等長處目前在PC監控領域已經得到了廣泛的應用,但是一般價格比較昂貴。組態軟件本身并不具備直接訪問PLC寄存器或其它智能儀表的能力,必需借助I/O驅動程序來實現。也就是說,I/O驅動程序是組態軟件與PLC或其它智能儀表等設備交互信息的橋梁,負責從設備采集實時數據并將操縱命令下達給設備,它的可靠性將直接影響組態軟件的機能。但是在大多數情況下,I/O驅動程序是與設備相關的,即針對某種PLC的驅動程序不能驅動其它種類的PLC,因此組態軟件的靈活性也受到了一定的限制。
(3) 利用PLC廠商所提供的尺度通訊端口和由用戶自定義的自由口通訊方式來實現PLC與PC機的互連通訊。這種方式由用戶定義通訊協議,不需要增加投資,靈活性好,特別適合于小規模的控制系統。
通過上述分析不難得出,把握如何利用PLC廠商提供的尺度通訊端口和自由口通訊方式以及大家所認識的編程語言來實現PC與PLC之間的實時通訊長短常必要的。
2 FATEK-FBS PLC通訊方式及原理
FATEK-FBS PLC內部集成的PPI接口為用戶提供了強盛的通訊功能,可在多種模式下工作:PPI、Profibus-DP、自由口方式等。其中自由口通訊方式最具有特色,通訊協議可完全由梯形圖程序控制,通過它可以實現PLC與任何具有通訊能力的設備進行互連,因而在本系統中選用自由口通訊方式。
目前PLC與PC機的鏈接通訊有兩種方式,一種是PC機始終處于主導地位,數據的傳送都由PC機定時發出命令,另外一種是PLC始終具有優先權。在本電梯模型監控系統中所有的控制信號均為開關量信號,考慮到上位PC機僅實時顯示電梯的運行狀態,不需向PLC發送控制指令,采用第二種通訊方式。利用PLC輪回掃描的特點,設備狀態一旦改變,PLC立刻檢測到,并將反映系統狀態變化的數據存入指定的數據緩沖區,通過XMT發送指令,將數據通過COM口發至上位機。每個系統的狀態對應于數據緩沖區中的一個指定字節,所存儲數據均為16進制數據,為保證通訊過程的可靠性,上位機對所接受到的數據進行首尾字符校驗,假如校驗成功,則說明接收到的首末字節之間的數據是準確的,從而進行處理,否則,拋卻這批數據,要求對方重發。
3 應用實例與程序設計
(1) 系統構成
FATEK-FBS PLC內部集成的PPI接口物理特性為RS485,而上位機的尺度串口為RS232,為了實現兩者的通訊必需進行協議轉換,永宏公司提供的PC/PPI電纜帶有RS232/RS485電平轉換器,因此再不增加任何硬件的情況下,可以利便的實現二者的互聯和協議轉換。
作為控制器的FATEK-FBS PLC利用電梯模型自帶的電源線實現與四層電梯模型的互連,該電梯模型為教授教養試驗裝置,具備一般電梯的基本功能。硬件連接如圖1所示。
圖1 硬件連接示意圖
(2) PLC部門編程
① 自由端口的初始化
在自由口通訊模式下,通過設置特殊存儲器SMB30(端口0),來為自由端口通訊選擇波特率、奇偶校驗和數據位。這些設定必需與PC機設定值相一致。其格局如下:
SMB30
pp為奇偶校驗選擇,d為數據位選擇,bbb為波特率選擇。
? 00為無校驗,0為每個字符8位,000為38 400
baud,001為19 200baud;
? 01為偶校驗,1為每個字符7位,010為9 600 baud,011為4 800baud;
? 10為無校驗,100為2 400baud,101為1 200baud;
? 11為奇校驗,110為600baud,111為300baud;
mm為協議選擇:00為PPI協議,01為自由口協議,10為PPI/主站模式,11默以為PPI/從站模式。
② FATEK-FBS PLC實時向上位PC機傳送數據
圖2 下位機程序流程圖
在對電梯模型控制中,所有的控制信號均為開關量,基于這一特點,系統狀態的改變即為這些開關量信號狀態的改變,因此可通過跟蹤這些開關量信號的上升沿信號、下降沿信號的到來,做為系統狀態改變的依據。據此在本系統中,通過對統一個開關量信號的上升沿、下降沿分別定義不同的16進制數的方式,來代表信號的產生與結束,當檢測到這些信號產生時,便將這些數據存入指定的數據緩沖區中的字節中,并通過COM口發至上位PC機,同時產生發送完成間斷,PLC延遲等待接收來自上位機的應答信號,通過分析存儲在接收字符緩沖器SMB2中的數據,判定是否需要重新發送。下位機程序如圖2所示。
(3) 上位機部門編程
基于VB處理監控界面圖形、數據報表及通訊的利便快捷,本課題上位機的編程環境采用VB來實現。VB不僅提供了MSCOMM串行通訊控件,而且也為這個控件提供了尺度的事件處理函數,并通過設置它的一些屬性對通訊接口進行初始化,從而很輕易的實現了串行通訊的題目。
下面先容一下有關此控件的屬性:
Commport,設置通訊連接端口。程序必需指定要使用的串行端口的號碼,WINOOWs使用所設置的通訊端口與外界進行通訊。
Settings,設置初始化參數。其格局為“BBBB,P,D,S”,其中BBBB為連接速度,P為奇偶校驗方式,D為數據位數,S為休止位數。默認值是“9 600,n,8,1”。
PortOpen,設置通訊連接端口的狀態。使用串行端口之前必需先將要使用的串行端口打開。
Input,返回并刪除接收緩沖區中的數據流。
InputLen,設置從串行端口讀入的字符串長度。
Rthreshold,設置引發接收事件的字符數。
InputMode,設置接收數據數據形式。
OnComm事件,用來處理所有與通訊相關的事件。使用事件程序的好處是不需要一直讓程序處于檢測的狀態下,只要事先將程序代碼寫好,一有事件發生,就會直接執行相對應的程序代碼??梢娺@種事件驅動的方式也為實現實時通訊提供了必要的前提。上位機程序如圖3所示。PC機根據接收到的信息很輕易的實現對每個開關量的狀態進行識別,從而控制監控界面的實時顯示。
圖3 上位機程序流程圖
4 結語
以上是基于FATEK-FBS PLC自由口通訊方式實現與上位機PC實時通訊的一個簡樸應用。經驗證,該方法簡樸、實時性好,可靠性高,對于邏輯控制系統,是能夠實現對被控對象實時監控簡樸易行的方法。