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