周 余,張 偉,丁躍華
(1.重慶復(fù)融科技有限公司,重慶 401220;2.重慶工程職業(yè)技術(shù)學(xué)院電氣工程學(xué)院,重慶 402260)
隨著我國人民生活水平的不斷提高,如今的汽車已經(jīng)如同電視和手機(jī)一樣,進(jìn)入到每個(gè)人的生活。隨之而來的問題是,我國的汽車保有量在近年出現(xiàn)了爆發(fā)式增長,停車位嚴(yán)重供不應(yīng)求。在這樣的背景下,立體車庫應(yīng)運(yùn)而生。立體車庫的安全運(yùn)行關(guān)乎人們的生命財(cái)產(chǎn)安全。但傳統(tǒng)立體車庫由于設(shè)備的特殊性和成本限制,尚未實(shí)現(xiàn)對(duì)載車板運(yùn)行的實(shí)時(shí)監(jiān)控。如當(dāng)載車板運(yùn)行過程中鋼絲繩(或鏈條)斷裂或發(fā)生其他機(jī)械故障時(shí),控制器無法及時(shí)停止載車板運(yùn)行,也就無法避免重大安全事故的發(fā)生。為此,設(shè)計(jì)了基于Modbus協(xié)議的數(shù)據(jù)采集系統(tǒng)。
本系統(tǒng)由可編程邏輯控制器(programmable logic controller,PLC)、Modbus通信模塊、ZigBee模塊、傾角開關(guān)四個(gè)部分構(gòu)成,其結(jié)構(gòu)如圖1所示。
傾角開關(guān)安裝在載車板上,隨著載車板的運(yùn)行一起升降橫移。傾角開關(guān)通過Modbus協(xié)議與PLC通信,將立體車庫中載車板的姿態(tài)信息實(shí)時(shí)傳送給PLC。但由于立體車庫的特殊性,傾角開關(guān)的供電和信號(hào)傳輸線路不便采用有線連接的方式。本設(shè)計(jì)采用基于ZigBee協(xié)議的無線數(shù)據(jù)傳輸模塊,實(shí)現(xiàn)傾角開關(guān)與PLC之間的無線通信。ZigBee協(xié)議依據(jù)IEEE 802.15.4標(biāo)準(zhǔn),以接力的方式將數(shù)據(jù)從一個(gè)傳感器傳遞到另一個(gè)傳感器[1]。ZigBee協(xié)議是一種低成本、低功耗、可靠性高且復(fù)雜度低的短程無線通信協(xié)議,能夠滿足小型、低成本的固定、便攜或移動(dòng)設(shè)備的無線組網(wǎng)要求[2]。由于傾角開關(guān)和ZigBee模塊的功耗低,因此本設(shè)計(jì)采用可充電鋰電池供電,由立體車庫中已有的線路,為鋰電池周期性地充電。
PLC選用西門子S7 315F-2DP,Modbus通信模塊選用西門子CP341-RS485/422(以下簡稱CP341)。PLC 與CP341之間通過背板總線連接;CP341與Zigbee模塊、ZigBee模塊與傾角開關(guān)之間都采用標(biāo)準(zhǔn)兩線制RS-485總線[3](以下簡稱總線)相連。
PLC通過CP341不間斷地向傾角開關(guān)發(fā)出數(shù)據(jù)請(qǐng)求,傾角開關(guān)根據(jù)PLC發(fā)出的請(qǐng)求,將指定寄存器中保存的載車板的姿態(tài)信息發(fā)送給PLC。由于在控制器與傾角開關(guān)之間布線復(fù)雜而困難,因此采用ZigBee模塊進(jìn)行無線通信。在本設(shè)計(jì)中,只需要將ZigBee之間的無線連接想象為一根標(biāo)準(zhǔn)兩線制總線即可。
ZigBee主站(Coordinator)與CP341相連,ZigBee從站與傾角開關(guān)相連。ZigBee主站與CP341的波特率應(yīng)當(dāng)一致,但應(yīng)當(dāng)大于ZigBee從站,ZigBee從站各自的波特率可以互不相同。
ZigBee模塊的工作電壓為DC 5~38 V。與CP341連接的ZigBee模塊為主站(稱為ZigBee主站),ZigBee主站與CP341共用DC 24 V電源;與傾角開關(guān)相連的ZigBee模塊為從站(稱為ZigBee從站)。由于傾角開關(guān)的工作電壓為DC 5 V,因此ZigBee從站與傾角開關(guān)共用DC 5 V電源。
Modbus協(xié)議由美國Modicon公司于1979年提出[4]。由于其傳輸機(jī)制簡單、可靠,至今仍廣泛應(yīng)用于現(xiàn)場(chǎng)工業(yè)組網(wǎng)中。Modbus協(xié)議采用主從工作方式[5]。在同一個(gè)通信網(wǎng)絡(luò)中,只存在一個(gè)主站。通信以主站和從站之間的請(qǐng)求和響應(yīng)形式,或者主站通過廣播的形式向所有從站發(fā)送指令的形式建立[6]。Modbus協(xié)議可以選擇的傳輸方式有兩種,美國信息交換標(biāo)準(zhǔn)碼(american standard code for information interchange,ASCII)模式和遠(yuǎn)程終端單元(remote terminal unit,RTU)模式[7]。本設(shè)計(jì)采用RTU模式。
PLC為Modbus主站,通過CP341主動(dòng)發(fā)起通信請(qǐng)求;傾角開關(guān)為Modbus從站,被動(dòng)地根據(jù)主站的請(qǐng)求發(fā)送指定寄存器中的數(shù)據(jù)。主站不間斷地將消息幀發(fā)送到總線上??偩€上的所有從站都將消息幀包含的站地址與自己的進(jìn)行比較。站地址相同即執(zhí)行消息幀中的功能碼對(duì)應(yīng)的請(qǐng)求,不同則丟掉消息幀且不響應(yīng)任何請(qǐng)求。
本設(shè)計(jì)中,設(shè)定Modbus通信的格式為數(shù)據(jù)位8位、停止位1位,無校驗(yàn)。Modbus協(xié)議要求通信雙方之間的通信格式一致,否則無法建立通信。Modbus協(xié)議共有8個(gè)功能碼,分別是01H、02H、03H、04H、05H、06H、0EH、10H。不同的功能碼代表不同的請(qǐng)求[8]。本設(shè)計(jì)用到功能碼03H,用于讀取傾角開關(guān)多個(gè)寄存器數(shù)據(jù)。通過查詢傾角開關(guān)用戶手冊(cè),其內(nèi)部寄存器地址0x34開始的12個(gè)字節(jié)的數(shù)據(jù)分別為X軸、Y軸、Z軸的傾斜角度、角速度、加速度的原始數(shù)據(jù),因此消息幀格式如表1所示。
表1 消息幀格式
編程軟件為SIMATIC STEP 7 V5.5。打開編程軟件后,首先新建一個(gè)項(xiàng)目,并將S7-300添加到項(xiàng)目中。打開硬件組態(tài)界面,將PLC和CP341添加到硬件組態(tài)中,并打開CP341的參數(shù)設(shè)置界面。按照前文所述設(shè)置Modbus通信參數(shù),保存并編譯后,將硬件組態(tài)下載到硬件中。完成上述操作后,打開項(xiàng)目中的OB1程序塊,開始編程。本系統(tǒng)的程序主要包括兩個(gè)部分:數(shù)據(jù)收發(fā)模塊程序和數(shù)據(jù)處理模塊程序。
數(shù)據(jù)收發(fā)模塊的程序流程如圖3所示[9-10]。
圖2 數(shù)據(jù)收發(fā)模塊的程序流程圖
從站1和從站2的發(fā)送數(shù)據(jù)塊分別為DB110和DB111。從站1的發(fā)送數(shù)據(jù)塊如表2所示。從站2的發(fā)送數(shù)據(jù)塊只需將站地址slave_adr改為B#16#11。從站1和從站2的接收數(shù)據(jù)塊分別為DB120和DB121,包含一個(gè)長度為50的整型數(shù)組變量inidata[...]。在OB1中調(diào)用FB7(P_RCV_RK)和FB8(P_SND_RK),并編寫好輪詢程序[10],循環(huán)發(fā)送DB110和DB111中的消息幀。
表2 從站1的發(fā)送數(shù)據(jù)塊
數(shù)據(jù)處理模塊需要將接收數(shù)據(jù)塊DB120和DB121中接收到的載車板的傾斜角度、角速度、加速度的原始數(shù)據(jù)inidata[n],分別通過式(1)~式(3),換算為對(duì)應(yīng)的傾斜角度、角速度和加速度的實(shí)際值,并存儲(chǔ)到數(shù)據(jù)塊DB300和DB301中。
①傾斜角度計(jì)算公式為:
(1)
式中:n取值為10~12,計(jì)算結(jié)果分別表示X、Y、Z軸的傾斜角度。
②角速度計(jì)算公式為:
(2)
式中:n取值為4~6,計(jì)算結(jié)果分別表示X、Y、Z軸的角速度。
③加速度計(jì)算公式為:
(3)
式中:n取值為1~3,計(jì)算結(jié)果分別表示X、Y、Z軸的加速度;g為當(dāng)?shù)刂亓铀俣取?/p>
當(dāng)安裝有傾角開關(guān)和Zigbee模塊的載車板作升降或橫移運(yùn)動(dòng)時(shí),數(shù)據(jù)塊DB300和DB301中的數(shù)據(jù)實(shí)時(shí)更新。PLC實(shí)時(shí)讀取載車板的姿態(tài)信息如表3所示。
表3 載車板的姿態(tài)信息
由于在運(yùn)動(dòng)過程中,載車板受到空氣流動(dòng)和自身機(jī)械結(jié)構(gòu)震動(dòng)的影響,其傾斜角度、角速度、加速度的值并不是一個(gè)恒定值,而是在一個(gè)極小的區(qū)間內(nèi)波動(dòng)。假設(shè)載車板運(yùn)行正常時(shí),其傾斜角度、角速度、加速度的波動(dòng)范圍的絕對(duì)值分別為Δd1、Δd2、Δd3,則可以分別從以下兩大類情況分析載車板的傾斜角度、角速度、加速度與其運(yùn)行狀態(tài)之間的關(guān)系。
若載車板的傾斜角度值的波動(dòng)范圍小于等于Δd1,則表示載車板運(yùn)行正常;若載車板的傾斜角度值的波動(dòng)范圍大于Δd1,則表示載車板可能發(fā)生了傾斜。此時(shí),PLC應(yīng)當(dāng)控制載車板的橫移電機(jī)立即停止運(yùn)行。
載車板作勻速橫移運(yùn)動(dòng)時(shí),X軸、Y軸、Z軸的角速度應(yīng)當(dāng)近似為0。若載車板的角速度值的波動(dòng)范圍小于等于Δd2,則表示載車板運(yùn)行正常;若載車板的角速度值的波動(dòng)范圍大于Δd2,則表示載車板可能發(fā)生了傾斜。此時(shí),PLC應(yīng)當(dāng)控制載車板的橫移電機(jī),立即停止運(yùn)行。
載車板作勻速橫移運(yùn)動(dòng)時(shí),X軸、Y軸的加速度值應(yīng)當(dāng)近似為零;Z軸的加速度受地球引力的影響,其值應(yīng)當(dāng)近似為重力加速度。若載車板的加速度值波動(dòng)范圍小于等于Δd3,則表示載車板運(yùn)行正常;若載車板的加速度值的波動(dòng)范圍大于Δd3,則表示載車板可能發(fā)生了傾斜。此時(shí),PLC應(yīng)當(dāng)控制載車板的橫移電機(jī)立即停止運(yùn)行。
本設(shè)計(jì)中的Modbus通信協(xié)議基于標(biāo)準(zhǔn)兩線制RS-485總線。由于RS-485總線結(jié)構(gòu)簡單、傳輸數(shù)據(jù)量大、容錯(cuò)能力強(qiáng),因此Modbus協(xié)議的數(shù)據(jù)傳輸可靠性高、實(shí)時(shí)性表現(xiàn)優(yōu)異。而通過ZigBee模塊替代有線連接實(shí)現(xiàn)無線通信,解決了在立體車庫中布線困難的問題。綜上所述,本設(shè)計(jì)實(shí)現(xiàn)了對(duì)載車板運(yùn)行過程的實(shí)時(shí)監(jiān)控,消除了電氣監(jiān)控盲區(qū),解決了傳統(tǒng)立體車庫運(yùn)行的安全問題,為傳統(tǒng)立體車庫的智能化改造和立體車庫本身的廣泛應(yīng)用,提供了一種可靠性高、成本可控、易于實(shí)現(xiàn)的解決方案。