0 引言
當前,工業(yè)控制已從單機控制走向集中監(jiān)控、集散控制等,這就要求不同類型的自動化設備之間要互連通信,從而進行數(shù)據(jù)的交換和傳遞。串行通信由于其簡單高效,易于編程實現(xiàn),始終是各種自動化設備之間實現(xiàn)通信的主要方式之一。目前的智能儀表和測控系統(tǒng)為了實現(xiàn)與控制設備的連接,普遍都提供對串行通信的支持?;诖诘耐ㄐ艆f(xié)議有很多,如:Modbus協(xié)議、CDT規(guī)約等,甚至許多廠家都定義了自己專用的通信協(xié)議。其中,Modbus協(xié)議因其簡單規(guī)范,功能齊全,易于編程實現(xiàn)等優(yōu)點,在串行通信中得到了廣泛的應用。
1 Modbus協(xié)議簡介
Modbus 協(xié)議是工業(yè)控制器的網絡協(xié)議中的一種。Modbus協(xié)議是Modicon公司于1978年發(fā)明的一種用于對電子控制器進行控制和通信的通信協(xié)議。
通過此協(xié)議,控制器相互之間、控制器經由網絡( 例如以太網) 和其他設備之間可以進行通信。Modbus協(xié)議的開放性、可擴充性和標準化使它成為一個通用工業(yè)標準。Modbus 協(xié)議并沒有規(guī)定物理層,只定義了控制器能夠認識和使用的消息結構,而不管它們是經過何種網絡進行通信的。在實際應用中,可以使用RS-232,RS-485/422,MODEM加電話線,甚至TCP/IP來聯(lián)網。所以,Modbus的傳輸介質種類較多,可以根據(jù)傳輸距離來選擇。
Modbus 通信采用主從方式,在同一個網絡中有一個主設備及最多達255 臺的從設備,從設備的地址編碼為1耀255。通常情況下,主設備只與1臺從設備通信,但當主設備發(fā)出的地址碼為0 即采用廣播方式時,可以將消息發(fā)送給所有的從設備。標準的Modbus使用RS-232C串行接口,因此,Modbus 通信也是以幀為單位,幀的數(shù)據(jù)結構與RS-232C幀相同。
Modbus每次通信發(fā)送和接收的數(shù)據(jù)包由若干幀組成,協(xié)議正是定義了這些幀的意義,控制器只要按照協(xié)議解釋其接收和發(fā)送的幀數(shù)據(jù),就能與在同一網絡中采用同樣協(xié)議的控制器實現(xiàn)通信。
Modbus通信方式有兩種,一種是ASCII(美國標準信息交換碼)方式,一種是RTU(Remote Terminal U原nit,遠程終端裝置)方式。一般來說,通信數(shù)據(jù)量少而且主要是文本的通信要采用ASCII方式,通信數(shù)據(jù)量大而且是二進制數(shù)值時,多采用RTU方式。
2 工礦電機車控制系統(tǒng)的硬件組成
如圖1所示,工礦電機車控制系統(tǒng)主要由以下三部分組成:司機操縱臺、牽引逆變器、交流牽引電機。
司機操縱臺安裝有司機控制器和集中智能顯示裝置等。司機通過司機控制器給牽引逆變器發(fā)出命令(如:前進、后退、牽引、制動、速度給定等),對機車進行控制。機車的運行狀態(tài),如:牽引逆變器直流輸入電壓、牽引逆變器輸出電流、電機轉速、機車速度、里程、蓄電池電量以及故障報警和信息等,則要通過RS-485總線傳遞給集中智能顯示裝置;同時,集中智能顯示裝置也可以通過RS-485總線對牽引逆變器進行參數(shù)設置,以適應不同工況和不同用戶對牽引逆變器提出的不同要求。
3 通信系統(tǒng)的硬件實現(xiàn)
工礦電機車串行通信是采用RS-485 總線進行架設的。牽引逆變器與集中智能顯示裝置上的串口電平都是TTL,為了在它們之間利用RS-485總線進行串行數(shù)據(jù)傳輸,需要把TTL 電平轉換為RS-485電平,TTL 和RS -485 之間的電平轉換芯片有MAX481等。圖2是牽引逆變器與集中智能顯示裝置通信連接示意圖。通信雙方的DSP 芯片都采用TMS320F240芯片,因而電路是對稱的,TXD、RXD引腳分別接DSP的TXD和RXD引腳,485_EN與一個IO口相連,如IOPA.3口。
RS-485 數(shù)據(jù)信號采用兩線制接線方式。兩線制接線方式使用一對屏蔽雙絞線,其中一線定義為A,另一線定義為B,如圖2所示。在發(fā)送端TXD將串行口的TTL電平信號轉換成兩路差分信號A、B 輸出,經傳輸后在接收端將差分信號還原成TTL 電平信號。通常情況下,發(fā)送驅動器A、B 之間的正電平在+2耀+6 V,是邏輯“0”狀態(tài),負電平在-2耀-6 V,是邏輯“1”狀態(tài)。
4 通信系統(tǒng)的軟件設計
工礦電機車的使用環(huán)境非常惡劣,灰塵比較大、現(xiàn)場干擾大。由于Modbus通信協(xié)議的可靠性非常強,所以軟件的通信協(xié)議采用Modbus 通信協(xié)議,通信方式采用RTU方式。
4.1 Modbus通信幀的設定
一般的,基本Modbus通信幀如表1所列。
4.2 DSP通信初始化子程序
DSP的初始化子程序很重要,引腳TXD、RXD的功能,通信波特率的大小,以及中斷的優(yōu)先級別都在此設定,程序編制的正確與否是能否正常通信的關鍵?,F(xiàn)場的DSP通信初始化子程序如下。
LDP #224
SPLK #0037h,SCICCR
(一個停止位,奇校驗,SCI 通信,空閑線多處理器模式,8位字符長度)
SPLK #0013h,SCICTL1
(禁止接收錯誤中斷,未選定發(fā)送特征,禁止休眠,使能TX、RX)
SPLK #0000h,SCIHBAUD
(晶振10 MHz,CPUCLK=20MHz,SYSCLK=CLKIN=10 MHz)
SPLK #0040h,SCILBAUD
(波特率設定為9 600 b/s)
SPLK #0022h,SCIPC2
(設置SCIRXD、SCITXD為發(fā)送和接收引腳)
SPLK #0060h,SCIPRI
(RX,TX皆為低優(yōu)先級)
從以上可以看出,本系統(tǒng)為單機通信,采用空閑多處理器模式,不使用SLEEP位。采用的通信格式為9 600波特率,8位數(shù)據(jù)位,1位停止位,無奇偶校驗。其中,波特率采用公式(1)進行計算。
SCIBAUD=系統(tǒng)時鐘頻率
波特率伊8 -1 (1)[!--empirenews.page--]
4.3 通信程序流程圖
本系統(tǒng)中,集中智能顯示裝置為上位機,牽引逆變器為下位機。上位機發(fā)送采用定時循環(huán)方式發(fā)送,接收采用中斷方式接收;下位機發(fā)送和接收都采用中斷方式。這樣,既可以保證正常通信,也可以確保逆變器正常工作。
上位機定時循環(huán)發(fā)送子程序如圖3 所示,接收中斷子程序如圖4所示。
下位機的接收中斷子程序如圖5所示,下位機的發(fā)送中斷子程序如圖6所示。
在此,需要特別強調的是,基于RS-485 總線的串口通信是一種半雙工通信,發(fā)送數(shù)據(jù)和接收數(shù)據(jù)共用同一物理通道,在通信的任意時刻網絡中的兩臺設備不能處于同一狀態(tài),否則,通信將無法正常進行。RS-485總線的發(fā)送和接收狀態(tài)通過MAX481的接收/發(fā)送使能端設定。
5 結語
Modbus 具有開放性好,用戶范圍廣,易實現(xiàn),擴展性好,可靠性強等優(yōu)點。將Modbus 通信協(xié)議應用在工礦電機車系統(tǒng),現(xiàn)場運行取得了良好的效果,證明通信的可靠性很高。這樣使司機通過司機操縱臺上的集中智能顯示裝置能夠及時了解機車的運行狀態(tài),并可根據(jù)這些信息采取相應的措施。因而,既可以提高效率,也可以確保機車安全、穩(wěn)定運行。