黃 偉
(安徽能源技術(shù)學(xué)校電氣教研組 安徽 合肥 230041)
目前,PLC在國內(nèi)外已廣泛應(yīng)用于鋼鐵、石油、華工、電力、建材、機械制造、汽車、輕紡、交通運輸、環(huán)保及文化娛樂各個行業(yè)。在工業(yè)用途中,液體混和裝置常常會用于會用于各種場合。PLC以卓越的可靠性和方便的可編程性廣泛應(yīng)用于工業(yè)控制領(lǐng)域。實現(xiàn)PC機與PLC通信的目的是為了向用戶提供諸如工藝流程圖顯示、動態(tài)數(shù)據(jù)畫面顯示、報表顯示、窗口技術(shù)等多種功能,為PLC提供良好的人機界面。PLC與計算機通信是PLC通信中最簡單、最直接的一種通信方式。與PLC通信的計算機稱之為上位計算機,PLC與計算機之間的通信又叫上位通信。PLC與計算機通信主要是通過RS-232C或RS-422接口進行的。計算機上的通信接口是標準的RS-232接口;若PLC上的通信接口也是RS-232C接口時,PLC與計算機連接是可以直接使用適配電纜進行連接,實現(xiàn)通信。本課題便也是采用這種方法進行連接的。
PC機與FX系列的PLC可經(jīng)過FX2N-232-BD通訊模塊連接,下圖表示它們之間的連接關(guān)系:

圖1 硬件連接
(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ù)寄存器。

命令 命令代碼 目標軟繼電器 功能讀命令 ‘0’即 ASCII碼‘30H’ X,Y,M,S,T,C,D 讀軟繼電器狀態(tài)、數(shù)據(jù)寫命令 ‘1’即 ASCII碼‘31H’ X,Y,M,S,T,C,D 把數(shù)據(jù)寫入讀軟繼電器強制通命令 ‘7’即ASCII碼‘37H’ X,Y,M,S,T,C 強制某位 ON強制斷命令 ‘8’即ASCII碼‘38H’ X,Y,M,S,T,C 強制某位 OFF
(3)通訊控制字符
FX系列PLC采用面向字符的傳輸規(guī)程,用到5個通訊控制字符,如表所示:

(4)報文格式
PC機向PLC發(fā)送的報文格式如下:

報文格式
其中STX為開始標志:02H;ETX為結(jié)束標志:03H;CMD為命令的ASCII碼:SUMH,SUML為從CMD到ETX按字節(jié)求累加和,溢出不計。由于每字節(jié)十六進制數(shù)變量變?yōu)閮勺止?jié)的ASCII碼,故檢驗和為SUMH與SUML。
數(shù)據(jù)段格式與定義如下:

數(shù)據(jù)格式
寫命令的數(shù)據(jù)段有數(shù)據(jù),讀命令的數(shù)據(jù)段則無數(shù)據(jù)。
讀/寫字節(jié)數(shù)為 01H-04H(1-64)個。
PLC向PC幾發(fā)送的應(yīng)答報文格式如下:

應(yīng)答報文
對讀命令的應(yīng)答報文數(shù)據(jù)段為要讀取的數(shù)據(jù),一個數(shù)據(jù)占兩個字節(jié),分上下位。
對寫命令的數(shù)據(jù)報文無數(shù)據(jù)段,而用ACK及NAK作為應(yīng)答內(nèi)容。
(5)傳輸過程
PC機與FX系列PLC之間采用應(yīng)答方式通訊,傳輸出錯則組織從發(fā)。其傳輸過程如下:

PLC根據(jù)PC機命令,在每個循環(huán)掃描結(jié)束處的END語句后組織自動應(yīng)答,無需用戶在PLC一方編寫。
PLC中通用數(shù)據(jù)寄存器共有200個,分別是D0~D200。因為通訊程序中需要傳送PLC中的寄存器數(shù)據(jù),因此需要知道通用寄存器的物理地址。PLC中通用寄存器的物理地址是這樣分布的:D0的物理地址為1000,以后每個寄存器占用2個地址的單元,直至D200的物理地址1190為止。本程序中用到的寄存器有兩個,分別是D123(10F6)和 D200(1190)。
在計算機的右下角的[開始][程序][Microsoft Visual Basic 6.0中文版]中選擇Microsoft Visual Basic 6.0命令。VB中有許多選項,在不同的目的下必須選擇不同的開發(fā)工程,通常我們選擇[標準EXE]作為開發(fā)的工程,這類工程被開發(fā)出來后可以編譯成窗口環(huán)境下的執(zhí)行文件,并且可以做成安裝程序,安裝到其他計算機上執(zhí)行。
打開Visual Basic后發(fā)現(xiàn)在工具箱中只有一些默認的控件,在VB通訊事件中我們必需用到MSComm控件,這就需要用到部件的引用。打開[工程][部件]后,在控件選項中選擇“Microsoft Comm Control 6.0”工具欄中就會出現(xiàn)我們需要的控件了。如圖2所示。

圖2
以上就是程序的初始過程,針對不同的數(shù)據(jù)量情況還要進行更多的設(shè)置改變,在這里就不一一說明了。這種通訊方式非常簡便易行,并且在可視化的框架內(nèi)可對各種設(shè)備進行遠程操控,十分有利于工控設(shè)備的運行。
附上控件初始化所需程序代碼:

[1]劉炳文,許蔓舒.Visual Basic程序設(shè)計教程[M].北京:清華大學(xué)出版社,2000.
[2]邱公偉.可編程控制網(wǎng)絡(luò)通信及應(yīng)用[M].北京:清華大學(xué)出版社,2000.
[3]龔沛曾,楊志強.Visual Basic程序設(shè)計教程[M].北京:高等教育出版社,2000.
[4]趙文忠.PLC通訊技術(shù)及控制系統(tǒng)[M].西安:西安電子出版社,2002.
[5]Barry、B.Brey.Programming the Basic Visual and Pentium-Based Personal Computer[Z].Upper SaddleRiver,NJ:Prentice Hall,Inc,1997.