楊 帥,王 超,成建生
(1. 淮安信息職業(yè)技術(shù)學(xué)院,淮安 223003;2.江蘇電子產(chǎn)品裝備制造工程技術(shù)研究開發(fā)中心,淮安 223003)
基于Host Based架構(gòu)模式的LON總線協(xié)議轉(zhuǎn)換控制器
楊 帥1,2,王 超1,2,成建生1,2
(1. 淮安信息職業(yè)技術(shù)學(xué)院,淮安 223003;2.江蘇電子產(chǎn)品裝備制造工程技術(shù)研究開發(fā)中心,淮安 223003)
現(xiàn)場總線技術(shù)發(fā)展至今,憑借其優(yōu)越的開放性、互換性、分布式等優(yōu)越特性逐漸被越來越多的用戶接受,但是相對集散控制來說,應(yīng)用領(lǐng)域還是比較狹窄。在目前集散控制還是主流控制的背景下,提高現(xiàn)場總線應(yīng)用范圍的有效措施就是現(xiàn)場總線控制技術(shù)與集散控制技術(shù)融合,兩者取長補短,增強系統(tǒng)的控制性能,為控制網(wǎng)絡(luò)提供更大的靈活性?,F(xiàn)場總線控制和集散控制是兩種異域技術(shù)。一般情況下兩者是不能互操作的,解決這一瓶頸的有效方法要使總線系統(tǒng)具有協(xié)議轉(zhuǎn)換功能,實現(xiàn)了與集散控制系統(tǒng)的有機結(jié)合,因此提出了一種基于LonTalk標(biāo)準(zhǔn)協(xié)議和Modbus標(biāo)準(zhǔn)協(xié)議轉(zhuǎn)換功能的LON總線協(xié)議轉(zhuǎn)換控制器。
LON技術(shù)是一種致力于綠色節(jié)能和智能管理的總線控制網(wǎng)絡(luò)平臺,支持LonTalk標(biāo)準(zhǔn)協(xié)議。LonTalk協(xié)議所采用的算法是優(yōu)先級帶預(yù)測的P-堅持CSMA(載波監(jiān)聽多路訪問),該協(xié)議能夠預(yù)測LON總線網(wǎng)絡(luò)負載,輕載時給網(wǎng)上節(jié)點分配數(shù)目較少的隨機時隙以減少節(jié)點媒介訪問延時;重載時給網(wǎng)絡(luò)上節(jié)點分配的較多數(shù)目的隨機時隙以減少各節(jié)點因同時發(fā)送消息帶來的沖突,從而實現(xiàn)了隨機時隙數(shù)目以概率P值的動態(tài)的調(diào)整。為提高緊急事件的響應(yīng)時間,提供一個可選擇優(yōu)先級的機制,在發(fā)送過程中優(yōu)先級數(shù)據(jù)報文將在時間片里將報文發(fā)送出去,加入優(yōu)先級的節(jié)點具有更快的響應(yīng)時間[1]。Modbus協(xié)議是應(yīng)用于集散控制網(wǎng)絡(luò)上的一種通信規(guī)約,支持傳統(tǒng)的RS232、RS485。通過該協(xié)議控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)與其他設(shè)備之間都可以通信,它已經(jīng)成為主流的工業(yè)標(biāo)準(zhǔn)之一,符合Modbus協(xié)議的不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進行集中監(jiān)控,實現(xiàn)LonTalk協(xié)議標(biāo)準(zhǔn)與Modbus協(xié)議標(biāo)準(zhǔn)的協(xié)議轉(zhuǎn)換,現(xiàn)實意義巨大。
為了實現(xiàn)LON總線協(xié)議轉(zhuǎn)換控制器的LonTalk協(xié)議標(biāo)準(zhǔn)與Modbus協(xié)議標(biāo)準(zhǔn)的轉(zhuǎn)換,控制器采用Host Base設(shè)計框架,兩處理器(即神經(jīng)元芯片3150和單片機AT89C55)之間數(shù)據(jù)交換的方法,這種設(shè)計架構(gòu)模式使LON總線協(xié)議轉(zhuǎn)換控制器信息處理速度快,開發(fā)成本較低,性價比較高。神經(jīng)元芯片3150是一種專門為設(shè)備提供智能和網(wǎng)絡(luò)控制能力的集成芯片,由于神經(jīng)元芯片將復(fù)雜的通信過程簡化為網(wǎng)絡(luò)變量和捆綁和連接,為充分發(fā)揮其優(yōu)異的通信特性,將其定位從機角色,只承擔(dān)信息通信任務(wù)。AT89C55一款片內(nèi)具有20KFlash存儲器、存儲空間大,適合數(shù)據(jù)存儲和處理,將其定位主機角色,承擔(dān)數(shù)據(jù)的存儲和處理。為了提高LON總線協(xié)議轉(zhuǎn)換控制器的數(shù)據(jù)處理速度,3150和AT89C55之間采用Slave A模式并行接口進行連接,LON總線協(xié)議轉(zhuǎn)換控制器的原理模型如圖1所示。AT89C55通過MAX485/MAX232芯片接收和發(fā)送Modbus標(biāo)準(zhǔn)協(xié)議數(shù)據(jù)報文;3150通過FTT-10A收發(fā)器接收和發(fā)送LonTalk標(biāo)準(zhǔn)協(xié)議數(shù)據(jù)報文;Modbus標(biāo)準(zhǔn)協(xié)議數(shù)據(jù)報文和LonTalk標(biāo)準(zhǔn)協(xié)議數(shù)據(jù)報文通過Slave A模式的并行接口實現(xiàn)相互轉(zhuǎn)換。AT89C55除了協(xié)議轉(zhuǎn)換功能外,還擔(dān)負著現(xiàn)場信號采集和信號輸出的功能。
圖1 LON總線協(xié)議轉(zhuǎn)換控制器的的原理模型
圖2 總線控制器Slave A模式并行接口電路原理圖
神經(jīng)元芯片3150與單片機AT89C55之間的Slave A模式并行接口原理電路如圖2所示,Slave A模式并行接口由8根雙向數(shù)據(jù)總線IO0~IO7、1根片選信號~CS、1根握手信號HS、1根讀寫控制信號R/~W構(gòu)成,支持最高速率3.3M[3],極大提高數(shù)據(jù)報文處理的實時性。神經(jīng)元芯片3150的IO0~IO7管腳依次與單片機AT89C55的P00~P07管腳相連形成數(shù)據(jù)總線,3150的IO8管腳與AT89C55的P12管腳相連形成片選信號線,3150的IO9管腳與AT89C55的P11管腳相連形成讀寫控制線,3150的IO10管腳與AT89C55的P10管腳相連形成握手控制線。3150與AT89C55兩處理器之間在基于虛擬令牌乒乓式傳遞機制下實現(xiàn)數(shù)據(jù)報文的交換,有效解決了數(shù)據(jù)總線頻繁占用、數(shù)據(jù)阻塞的瓶頸弊端[4]。3150與AT89C55之間互相傳遞虛擬令牌,擁有令牌的處理器具有寫數(shù)據(jù)報文的主動權(quán)。當(dāng)片選信號線~CS為低電平時,讀寫操作由R/~W控制信號線決定,當(dāng)R/~W為低電平時,AT89C55占有令牌,當(dāng)R/~W 為高電平時,3150占有令牌。握手信號HS為高電平時,3150處于忙狀態(tài),握手信號HS為低電平時,3150處于空閑狀態(tài)。當(dāng)AT89C55檢測握手信號線HS為低電平時,在~CS信號的下降沿將數(shù)據(jù)寫入數(shù)據(jù)總線。Modbus標(biāo)準(zhǔn)協(xié)議設(shè)備是采用的是標(biāo)準(zhǔn)EIA電平,單片機AT89C55采用的是標(biāo)準(zhǔn)的TTL電平,實現(xiàn)AT89C55與Modbus協(xié)議設(shè)備的數(shù)據(jù)報文相互傳遞,采用MAX232和MAX485進行電平轉(zhuǎn)換,從而形成1路RS232接口和1路RS485接口,通過多路開關(guān)SW來決定RS232接口有效還是RS485接口有效。AT89C55的P14、P15、RXD、TXD管腳依次與MAX232芯片的R2OUT、T2IN、R1OUT、T1IN管腳相連,AT89C55的P13、RXD、TXD管腳依次與MAX485芯片的~RE和DE、R0、DI管腳相連,如圖3所示。
圖3 總線控制器232/485接口的電路原理圖
實現(xiàn)LON總線協(xié)議轉(zhuǎn)換控制器主機AT89C55數(shù)據(jù)報文的采集接受和輸出發(fā)送,AT89C55通過UART串行中斷接收和發(fā)送Modbus協(xié)議設(shè)備的數(shù)據(jù)報文,通過定時中斷采集現(xiàn)場信號和輸出信號,并將采集和接收到的數(shù)據(jù)報文暫存自己的數(shù)據(jù)存儲區(qū)。AT89C55與Modbus協(xié)議設(shè)備的通信數(shù)據(jù)是成幀成包發(fā)送的。每包數(shù)據(jù)都有同步碼、控制碼、地址碼、報文內(nèi)容、校驗碼、結(jié)束碼等部分組成。Modbus協(xié)議數(shù)據(jù)報文格式如下所示:
同步碼 控制碼 地址碼 報文內(nèi)容 校驗碼 結(jié)束碼
實現(xiàn)LON總線協(xié)議轉(zhuǎn)換控制器主機AT89C55與從機3150的數(shù)據(jù)交換,采用虛擬令牌乒乓式傳輸,LON總線協(xié)議轉(zhuǎn)換控制器上電復(fù)位后,AT89C55發(fā)送同步值,3150讀取后向AT89C55發(fā)送應(yīng)答同步,當(dāng)AT89C55和3150同步后,兩處理器開始交換數(shù)據(jù)報文,AT89C55置低R/~W信號線占有令牌,通過置低~CS信號線選通3150并時刻監(jiān)聽從機3150的閑忙狀態(tài),當(dāng)檢測到信號線HS為低電平,即3150處于空閑狀態(tài),AT89C55立即將Modbus協(xié)議設(shè)備發(fā)送過來的數(shù)據(jù)報文寫到Slave A模式并行接口的數(shù)據(jù)總線上,同時置高R/~W信號線交出虛擬令牌給3150,然后置高~CS信號線(同時迫使HS信號線也置高)開始讀取Slave A模式并行接口數(shù)據(jù)總線。當(dāng)3150占有虛擬令牌后,3150輪巡檢測When( nv_update_occurs(輸入網(wǎng)絡(luò)變量 ))語句,當(dāng)輸入網(wǎng)絡(luò)變量的值被更新時,通過io-out( )函數(shù)將數(shù)據(jù)報文發(fā)送到Slave A模式并行接口數(shù)據(jù)總線上,同時交出虛擬令牌,然后置低HS信號線,并通過任務(wù)驅(qū)動語句When()和io_in( )函數(shù)讀取AT89C55發(fā)送過來的數(shù)據(jù)報文,由Neuron C語言設(shè)計的調(diào)度程序?qū)笪臄?shù)據(jù)賦值給輸出網(wǎng)絡(luò)變量,并通過3150內(nèi)部固化的LonTalk協(xié)議的網(wǎng)絡(luò)層、MAC層將類型、源地址、目標(biāo)地址、變量名、變量內(nèi)容等消息層層打包[5,6],將打包后的數(shù)據(jù)幀發(fā)送給LON網(wǎng)絡(luò)總線上的LonTalk協(xié)議目標(biāo)設(shè)備,LonTalk協(xié)議數(shù)據(jù)幀的格式如下:
同步碼 域ID 地址碼 配置表 網(wǎng)絡(luò)變量消息 校驗碼
圖4 虛擬令牌乒乓式傳輸機制流程圖
網(wǎng)絡(luò)變量消息的代碼第一字節(jié)的第1位是1,表明該消息是網(wǎng)絡(luò)變量;第2位表明該消息是輸入網(wǎng)絡(luò)變量還是輸出網(wǎng)絡(luò)變量(0為輸入,1為輸出),3~8位是網(wǎng)絡(luò)變量選擇器的高有效位;網(wǎng)絡(luò)變量消息的代碼第二字節(jié)是網(wǎng)絡(luò)變量選擇器的低有效位;余下的字節(jié)是網(wǎng)絡(luò)變量的值;當(dāng)網(wǎng)絡(luò)變量修改消息發(fā)送后,如果LON總線網(wǎng)絡(luò)的其它LonTalk標(biāo)準(zhǔn)協(xié)議接收設(shè)備有一個輸入網(wǎng)絡(luò)變量的選擇器的值與發(fā)送消息中的選擇器的值相同,那么接收設(shè)備上對應(yīng)的輸入網(wǎng)絡(luò)變量修改事件發(fā)生,輸入網(wǎng)絡(luò)變量的值修改為發(fā)送網(wǎng)絡(luò)變量消息的值,實現(xiàn)LON總線協(xié)議轉(zhuǎn)換控制器與其它LonTalk標(biāo)準(zhǔn)協(xié)議設(shè)備的通信。LON總線協(xié)議轉(zhuǎn)換控制器中3150固化的LonTalk協(xié)議能夠自動完成虛擬令牌乒乓式傳輸機制,采用Neuron C語言將3150的IO口聲明為Slave A并行接口:IO_0 parallel slave io_object_name;虛擬令牌的傳遞依靠事件io_out_ready()和io_out_request()完成,io_out_ready()為真時,3150交出令牌,io_out_request()為真時,3150擁有令牌。AT89C55不能自動完成虛擬令牌傳遞,需要用C語言編制虛擬令牌傳遞協(xié)議,包括主機的同步、握手、數(shù)據(jù)讀寫、令牌傳遞過程,傳送的數(shù)據(jù)要遵從一定的格式,傳送的數(shù)據(jù)要遵從一定的格式[7,8]。3150與AT89C55的令牌傳遞完整軟件流程如圖4所示。
利用LonMaker組網(wǎng)工具把LON總線協(xié)議轉(zhuǎn)換控制器添加到LON網(wǎng)絡(luò)上,通過LNS DDE SERVER或NL-OPC Server工具訪問LON網(wǎng)絡(luò)數(shù)據(jù),實現(xiàn)LON總線協(xié)議轉(zhuǎn)換控制器的網(wǎng)絡(luò)集成,修改LON總線協(xié)議轉(zhuǎn)換控制器的網(wǎng)絡(luò)變量數(shù)值,該控制器通過232/485端口輸出數(shù)據(jù),Modbus設(shè)備通過232/485端口返回數(shù)據(jù),LON總線協(xié)議轉(zhuǎn)換控制器接收到數(shù)據(jù)報文后,進行LRC校驗,然后解析,通過LonMaker軟件監(jiān)測返回的數(shù)據(jù)報文。
通過LonMaker監(jiān)測到的返回數(shù)據(jù)正確,當(dāng)每秒要傳輸?shù)臄?shù)據(jù)報文達500~1000包時,網(wǎng)絡(luò)碰撞率穩(wěn)定在10%,LON總線協(xié)議轉(zhuǎn)換控制器性能良好?;贚onTalk協(xié)議標(biāo)準(zhǔn)與Modbus協(xié)議標(biāo)準(zhǔn)的轉(zhuǎn)換功能的LON總線協(xié)議轉(zhuǎn)換控制器是推進了企業(yè)網(wǎng)絡(luò)一體化建設(shè)進程,實現(xiàn)了現(xiàn)場控制、生產(chǎn)監(jiān)控層、生產(chǎn)管理層和生產(chǎn)決策層相互貫通,構(gòu)建了一種分散控制、集中企業(yè)體系,這種體系模式是降低現(xiàn)代企業(yè)生產(chǎn)和運營成本的同時又能使管理者高效監(jiān)管企業(yè)生產(chǎn)和運營。
[1]楊帥.基于虛擬令牌傳輸協(xié)議的LonWorks監(jiān)控系統(tǒng)設(shè)計[J].低壓電器.2010,(14):45-48.
[2]馮艷娜.基于Lonworks 總線的網(wǎng)關(guān)工具的設(shè)計[J].工礦自動化.2008,(5):139-141.
[3]楊帥.基于Slave_B并行傳輸模式的雙絞線LON節(jié)點[J].儀表技術(shù)與傳感器.2011,(5):48-50.
[4]田敏.一種采用Slave_B傳輸模式的LonWorks電力線節(jié)點[J].自動化儀表.2011,31(12):13-15.
[5]成建生.基于電力線通信模式的LON控制器的設(shè)計[J].電測與儀表.2011,48(4):86-89.
[6]楊帥.采用LonWorks電力載波技術(shù)的控制器[J].低壓電器.2011,(13):41-44.
[7]楊帥.基于LonWorks總線的全分布式瓦斯監(jiān)控系統(tǒng)[J].工礦自動化.2012,38(11):84-87.
[8]成建生.采用并行接口模式的LonWorks監(jiān)控系統(tǒng)的設(shè)計[J].礦山機械.2010,38(12):62-65.
The LON bus controller based on conversion function of lonTalk protocol and modbus protocol
YANG Shuai1,2, WANG Chao1,2, CHENG Jian-sheng1,2
為了使LON現(xiàn)場總線技術(shù)和集散控制技術(shù)有機結(jié)合,設(shè)計了一種Host Based架構(gòu)模式LON總線協(xié)議轉(zhuǎn)換控制器。采用單片機AT89C55和神經(jīng)元芯片3150分別作為LON總線協(xié)議轉(zhuǎn)換控制器的主從處理器,通過建立的Slave A模式并行接口實現(xiàn)了虛擬令牌乒乓式傳遞機制下的數(shù)據(jù)報文的傳遞。LON總線協(xié)議轉(zhuǎn)換控制器實現(xiàn)了LonTalk標(biāo)準(zhǔn)協(xié)議和Modbus標(biāo)準(zhǔn)協(xié)議之間的數(shù)據(jù)報文的相互轉(zhuǎn)換。實驗表明:LON總線協(xié)議轉(zhuǎn)換控制器性能良好。
LonTalk協(xié)議;Modbus協(xié)議;協(xié)議轉(zhuǎn)換;Slave_A接口;虛擬令牌傳遞
楊帥(1981 -),男,工程師,碩士研究生,研究方向為機電一體化與控制技術(shù)。
TP393.04
A
1009-0134(2014)06(上)-0116-04
10.3969/j.issn.1009-0134.2014.06(上).34
2014-01-25
2012年淮安市科技支撐計劃項目(SN12052);2013年淮安市創(chuàng)新載體平臺建設(shè)計劃項目(HAP201313)