艾國會
[摘要]介紹利用微軟公司推出的Visual Basic 6.0中MSCOMM.OCX控件進行串行通信的方法。以VB為開發工具實現了PC機與FX系列PLC的串行通信。介紹VB進行串口通信的基本方式和三菱可編程控制器之間的通信的程序設計,主要介紹利用MSCOMM.OCX進行串行通信的設計方法。
[關鍵詞]PC機 PLC 串行通信 Visual Basic 6.0
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0420010-02
一、引言
在工業生產中,人們常常面臨著數據采集與管理。可編程控制器,以其可靠性高、抗干擾能力強、編程簡單、使用方便、控制程序可變、體積小、功能強等特點,廣泛應用于數據采集與控制。生產過程中,要監視PLC內部的數據與運行狀況,選用市場上的人機界面或組態軟件,雖然功能豐富,但大都價格昂貴,本文介紹了利用微軟公司推出的Visual Basic 6.0中MSCOMM.OCX控件進行串行通信的方法。操作簡便,價格低廉。
二、PC與PLC實現通信的方法
為了實現PC與PLC的通信,用戶應當做如下工作:
1.判別PC上配置的通信口是否與要連入的PLC匹配,若不匹配,則增加通信模板。
2.要清楚PLC的通信協議,按照協議的規定及幀格式編寫PC的通信程序。PLC中配有通信機制,一般不需用戶編程。若PLC廠家有PLC與PC的專用通信軟件出售,則此項任務較容易完成。
3.選擇適當的操作系統提供的軟件平臺,利用與PLC交換的數據編制用戶要求的畫面。
4.若要遠程傳送,可通過Modem接入電話網。若要PC具有編程功能,應配置編程軟件。
三、PC機與PLC實現通信的條件
帶異步通信適配器的PC機與PLC只有滿足如下條件,才能互聯通信:
1.帶有異步通信接口的PLC才能與帶異步通信適配器的PC機互聯。還要求雙方采用的總線標準一致,否則要通過“總線標準變換單元”變換之后才能互聯。
2.雙方的初始化,使波特率、數據位數、停止位數、奇偶校驗都相同。
3.要對PLC的通信協議分析清楚,嚴格地按照協議的規定及幀格式編寫PC機的通信程序。PLC中配有通信機制,一般不需用戶編程。
四、PC機與FX系列PLC的串行通信的實現
串行通信是計算機與其他機器之間進行通信的一種常用方法。通過SC09編程電纜或FX232AW模塊,可將微型計算機的串行通信口RS232和PLC的編程口連接起來,這樣微型計算機就可對PLC的RAM區數據進行讀、寫操作。由PLC本身具有的特性,可對PLC進行以下4種類型的操作:
(1)位元件或字元件狀態讀操作(CMD0);
(2)位元件或字元件狀態寫操作(CMD1);
(3)位元件強制ON操作(CMD7);
(4)位元件強制OFF操作(CMD8)。
另外,在進行上述4類操作前,首先要對端口進行初始化操作,即設定通信協議(包括設置通信波特率、數據位數、數據停止位及奇偶校驗)。
(一)硬件連接
一臺PC機可與一臺或最多16臺FX系列PLC通信,PC與PLC之間不能直接連接。如圖a、b為點對點結構的連接,圖a中是通過FX-232AW單元進行RS-232C/RS-422轉換與PLC編程口連接,圖b中通過在PLC內部安裝的通信功能擴展板FX-232-BD與PC連接;如圖c所示為多點結構的連接,FX-485-BD為安裝在PLC內部的通信功能擴展板,FX-485PC-IF為RS-232C和RS-485的轉換接口。除此之外當然還可以通過其它通信模塊進行連接,不再一一贅述。下面以PC與PLC之間點對點通信為例。

PC機與FX系列PLC不能直接連接,要經過FX-232AW單元進行RS232C/RS-422的變換,下圖表示了它們之間的連接關系:

(二)FX系列PLC的通信
在PC機中必須依據互聯的PLC的通信協議來編寫通信程序,FX系列PLC的通信協議。
1.數據格式。FX系列PLC采用異步格式,由1位起始位、7位數據位、1位偶校驗位及1位停止位組成,波特率為9600bps,字符為ASCII碼。格式如下:

2.通信命令。FX系列PLC有4個通信命令,它們是讀命令、寫命令、強制通命令、強制斷命令,如下表所示。表中X輸入繼電器;Y輸出繼電器;M輔助繼電器;S狀態元件;T定時器;C計數器;D數據寄存器。

3.通信控制字符。FX系列PLC采用面向字符的傳輸規程,用到5個通信控制字符,如下表所示。

注:當PLC對計算機發來的ENQ不理解時,用NAK回答。
4.報文格式。計算機向PLC發送的報文格式如下:

其中,STX為開始標志:02H;ETX為結束標志:03H;CMD為命令的ASCⅡ碼;SUMH、SUML為按字節求累加和,溢出不計。由于每字節十六進制數變為兩字節的ASCⅡ碼,故校驗和為SUMH與SUML。
數據段格式與含義如下:

注:寫命令的數據段有數據,讀命令數據段則無數據。
PLC向PC發的應答報文格式如下:

注:對讀命令的應答報文數據段為要讀取的數據,一個數據占兩字節,分上位下位:

數據段:對寫命令的應答報文無數據段,而用ACK及NAK作應答內容。
5.傳輸規程
PC與FX系列PLC間采用應答方式通信,傳輸出錯,則組織重發。
PLC根據PC的命令,在每個循環掃描結束處的END語句后組織自動應答,無需用戶在PLC一方編寫程序。
(三)PLC的設置
計算機與PLC通訊的目的是實現計算機對PLC運行狀態、數據區的監控、PLC的管理并可用計算機編程。一般來說,在通訊過程中PLC是被動的,每一次通訊都由計算機發起與終止,但也可以由PLC發起。通訊前需用外部輸入設備在系統數據寄存器D8120中進行通訊條件設定。
五、結束語
生產自控系統的設計要解決好三部分的問題:PC上人機操作界面的編制,PC與PLC的通信程序編寫,PLC生產控制程序的編寫。對于串行通信的單機自控系統,因為具有操作界面和生產工藝流程簡單的特點,所以利用Visual Basic設計操作界面和利用PLC編程語言設計生產控制程序都比較方便,但對如何編寫通信程序就比較陌生,也沒有許多相關資料可學習。本文介紹的方法簡單、實用,供各位參考。利用通信控件MSComm的OnComm事件和CommEvent屬性還可以設計出功能更完善的通信程序。
參考文獻:
[1]三菱公司,FX2N可編程控制器編程手冊.
[2]邱公偉,可編程控制器網絡通信及應用,清華大學出版社.
[3]三菱公司,FX系列通訊手冊.
[4]Visual Basic6.0從入門到精通,電子工業出版社.
[5]夏幸明,可編程控制器及應用,北京理工大學出版社.