艾國會
[摘要]介紹利用微軟公司推出的Visual Basic 6.0中MSCOMM.OCX控件進行串行通信的方法。以VB為開發(fā)工具實現(xiàn)了PC機與FX系列PLC的串行通信。介紹VB進行串口通信的基本方式和三菱可編程控制器之間的通信的程序設計,主要介紹利用MSCOMM.OCX進行串行通信的設計方法。
[關(guān)鍵詞]PC機 PLC 串行通信 Visual Basic 6.0
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0420010-02
一、引言
在工業(yè)生產(chǎn)中,人們常常面臨著數(shù)據(jù)采集與管理。可編程控制器,以其可靠性高、抗干擾能力強、編程簡單、使用方便、控制程序可變、體積小、功能強等特點,廣泛應用于數(shù)據(jù)采集與控制。生產(chǎn)過程中,要監(jiān)視PLC內(nèi)部的數(shù)據(jù)與運行狀況,選用市場上的人機界面或組態(tài)軟件,雖然功能豐富,但大都價格昂貴,本文介紹了利用微軟公司推出的Visual Basic 6.0中MSCOMM.OCX控件進行串行通信的方法。操作簡便,價格低廉。
二、PC與PLC實現(xiàn)通信的方法
為了實現(xiàn)PC與PLC的通信,用戶應當做如下工作:
1.判別PC上配置的通信口是否與要連入的PLC匹配,若不匹配,則增加通信模板。
2.要清楚PLC的通信協(xié)議,按照協(xié)議的規(guī)定及幀格式編寫PC的通信程序。PLC中配有通信機制,一般不需用戶編程。若PLC廠家有PLC與PC的專用通信軟件出售,則此項任務較容易完成。
3.選擇適當?shù)牟僮飨到y(tǒng)提供的軟件平臺,利用與PLC交換的數(shù)據(jù)編制用戶要求的畫面。
4.若要遠程傳送,可通過Modem接入電話網(wǎng)。若要PC具有編程功能,應配置編程軟件。
三、PC機與PLC實現(xiàn)通信的條件
帶異步通信適配器的PC機與PLC只有滿足如下條件,才能互聯(lián)通信:
1.帶有異步通信接口的PLC才能與帶異步通信適配器的PC機互聯(lián)。還要求雙方采用的總線標準一致,否則要通過“總線標準變換單元”變換之后才能互聯(lián)。
2.雙方的初始化,使波特率、數(shù)據(jù)位數(shù)、停止位數(shù)、奇偶校驗都相同。
3.要對PLC的通信協(xié)議分析清楚,嚴格地按照協(xié)議的規(guī)定及幀格式編寫PC機的通信程序。PLC中配有通信機制,一般不需用戶編程。
四、PC機與FX系列PLC的串行通信的實現(xiàn)
串行通信是計算機與其他機器之間進行通信的一種常用方法。通過SC09編程電纜或FX232AW模塊,可將微型計算機的串行通信口RS232和PLC的編程口連接起來,這樣微型計算機就可對PLC的RAM區(qū)數(shù)據(jù)進行讀、寫操作。由PLC本身具有的特性,可對PLC進行以下4種類型的操作:
(1)位元件或字元件狀態(tài)讀操作(CMD0);
(2)位元件或字元件狀態(tài)寫操作(CMD1);
(3)位元件強制ON操作(CMD7);
(4)位元件強制OFF操作(CMD8)。
另外,在進行上述4類操作前,首先要對端口進行初始化操作,即設定通信協(xié)議(包括設置通信波特率、數(shù)據(jù)位數(shù)、數(shù)據(jù)停止位及奇偶校驗)。
(一)硬件連接
一臺PC機可與一臺或最多16臺FX系列PLC通信,PC與PLC之間不能直接連接。如圖a、b為點對點結(jié)構(gòu)的連接,圖a中是通過FX-232AW單元進行RS-232C/RS-422轉(zhuǎn)換與PLC編程口連接,圖b中通過在PLC內(nèi)部安裝的通信功能擴展板FX-232-BD與PC連接;如圖c所示為多點結(jié)構(gòu)的連接,F(xiàn)X-485-BD為安裝在PLC內(nèi)部的通信功能擴展板,F(xiàn)X-485PC-IF為RS-232C和RS-485的轉(zhuǎn)換接口。除此之外當然還可以通過其它通信模塊進行連接,不再一一贅述。下面以PC與PLC之間點對點通信為例。
PC機與FX系列PLC不能直接連接,要經(jīng)過FX-232AW單元進行RS232C/RS-422的變換,下圖表示了它們之間的連接關(guān)系:
(二)FX系列PLC的通信
在PC機中必須依據(jù)互聯(lián)的PLC的通信協(xié)議來編寫通信程序,F(xiàn)X系列PLC的通信協(xié)議。
1.數(shù)據(jù)格式。FX系列PLC采用異步格式,由1位起始位、7位數(shù)據(jù)位、1位偶校驗位及1位停止位組成,波特率為9600bps,字符為ASCII碼。格式如下:
2.通信命令。FX系列PLC有4個通信命令,它們是讀命令、寫命令、強制通命令、強制斷命令,如下表所示。表中X輸入繼電器;Y輸出繼電器;M輔助繼電器;S狀態(tài)元件;T定時器;C計數(shù)器;D數(shù)據(jù)寄存器。
3.通信控制字符。FX系列PLC采用面向字符的傳輸規(guī)程,用到5個通信控制字符,如下表所示。
注:當PLC對計算機發(fā)來的ENQ不理解時,用NAK回答。
4.報文格式。計算機向PLC發(fā)送的報文格式如下:
其中,STX為開始標志:02H;ETX為結(jié)束標志:03H;CMD為命令的ASCⅡ碼;SUMH、SUML為按字節(jié)求累加和,溢出不計。由于每字節(jié)十六進制數(shù)變?yōu)閮勺止?jié)的ASCⅡ碼,故校驗和為SUMH與SUML。
數(shù)據(jù)段格式與含義如下:
注:寫命令的數(shù)據(jù)段有數(shù)據(jù),讀命令數(shù)據(jù)段則無數(shù)據(jù)。
PLC向PC發(fā)的應答報文格式如下:
注:對讀命令的應答報文數(shù)據(jù)段為要讀取的數(shù)據(jù),一個數(shù)據(jù)占兩字節(jié),分上位下位:
數(shù)據(jù)段:對寫命令的應答報文無數(shù)據(jù)段,而用ACK及NAK作應答內(nèi)容。
5.傳輸規(guī)程
PC與FX系列PLC間采用應答方式通信,傳輸出錯,則組織重發(fā)。
PLC根據(jù)PC的命令,在每個循環(huán)掃描結(jié)束處的END語句后組織自動應答,無需用戶在PLC一方編寫程序。
(三)PLC的設置
計算機與PLC通訊的目的是實現(xiàn)計算機對PLC運行狀態(tài)、數(shù)據(jù)區(qū)的監(jiān)控、PLC的管理并可用計算機編程。一般來說,在通訊過程中PLC是被動的,每一次通訊都由計算機發(fā)起與終止,但也可以由PLC發(fā)起。通訊前需用外部輸入設備在系統(tǒng)數(shù)據(jù)寄存器D8120中進行通訊條件設定。
五、結(jié)束語
生產(chǎn)自控系統(tǒng)的設計要解決好三部分的問題:PC上人機操作界面的編制,PC與PLC的通信程序編寫,PLC生產(chǎn)控制程序的編寫。對于串行通信的單機自控系統(tǒng),因為具有操作界面和生產(chǎn)工藝流程簡單的特點,所以利用Visual Basic設計操作界面和利用PLC編程語言設計生產(chǎn)控制程序都比較方便,但對如何編寫通信程序就比較陌生,也沒有許多相關(guān)資料可學習。本文介紹的方法簡單、實用,供各位參考。利用通信控件MSComm的OnComm事件和CommEvent屬性還可以設計出功能更完善的通信程序。
參考文獻:
[1]三菱公司,F(xiàn)X2N可編程控制器編程手冊.
[2]邱公偉,可編程控制器網(wǎng)絡通信及應用,清華大學出版社.
[3]三菱公司,F(xiàn)X系列通訊手冊.
[4]Visual Basic6.0從入門到精通,電子工業(yè)出版社.
[5]夏幸明,可編程控制器及應用,北京理工大學出版社.