胡兵+熊新榮+袁勇+孫天龍+王小娟
摘要:為滿足馬鈴薯貯藏庫對溫度、濕度采集的要求,設計了一種基于Modbus總線的馬鈴薯貯藏庫溫濕度采集方案。該系統以MCGS組態為上位機監控,S7-200PLC CPU224為控制核心,以LM410溫濕度采集模塊為現場智能儀表,通過Modbus總線協議與遠程采集系統通信,實現了馬鈴薯貯藏庫溫度、濕度的實時準確采集。結果表明,該系統穩定可靠,數據準確,滿足了實際應用要求,為馬鈴薯貯藏庫溫濕度采集系統設計提供了借鑒。
關鍵詞:Modbus總線;溫度采集;濕度采集;PLC;智能儀表;馬鈴薯貯藏
中圖分類號:TP273 ? ? ? ?文獻標識碼:A ? ? ? ?文章編號:0439-8114(2014)20-4969-04
DOI:10.14088/j.cnki.issn0439-8114.2014.20.054
Collecting Temperature and Humidity of Potato Storage Based on Modbus Bus
HU Bing,XIONG Xing-rong,YUAN Yong,SUN Tian-long,WANG Xiao-juan
(Xinjiang Institute of Engineering,Urumqi ?830011,China)
Abstract: To meet the requirements of storage temperature and humidity of potato, a scheme based on Modbus bus in collecting temperature and humidity of potato storage was put forward. Using MCGS configuration as the system of PC monitoring, CPU224 S7-200 PLC as the control core, acquisition module for intelligent instrument with LM410 temperature and humidity, through the Modbus fieldbus protocol and remote collection system communication, the real-time and accurate collection of temperature and humidity of potato storehouse was realized. The results showed that the system was stable and reliable. The data was accurate and satisfied the requirements of practical application. It will provide reference for designing the system of collecting temperature and humidity of potato storage.
Key words: Modbus bus; temperature acquisition; humidity acquisition; PLC; intelligent instrument; potato storage
馬鈴薯是糧菜兼用的高產作物,具有很高的營養價值和藥用價值。對馬鈴薯種植、加工企業或個人而言,馬鈴薯貯藏技術相當重要。貯藏不當,則薯塊會因為蒸發、呼吸、發芽及貯藏期病蟲害等造成種薯營養成分的流失,更重要的是降低了馬鈴薯種植后對病蟲害的抵御能力,從而對馬鈴薯產量及質量產生極大的負面影響,而馬鈴薯的貯藏技術中,溫度和濕度是兩項重要的因素。國內外研究結果表明,馬鈴薯處在溫度為1~4 ℃,環境相對濕度在80%~90%時病菌不繁殖,塊莖不發芽且水分保持良好[1]。然而,目前對馬鈴薯貯藏庫溫濕度數據的讀取,主要以定時人工記錄的方式進行,存在實時性、準確性較差等問題,為了實時采集溫濕度數據,進一步提高溫濕度數據的準確性,采用實時可靠的數據采集方法非常重要。本研究設計了一種基于Modbus總線的溫濕度采集方法,借助于上位機的組態軟件,能夠實時顯示溫濕度的變化。
1 ?Modbus通信
Modbus是一種國際的、開放的現場總線標準。最早是美國Modicon公司為其PLC制定的資料交換通信接口標準,由于Modbus協議是公開的通信協議,被很多的PLC、變頻器及RTU生產廠家支持,是一種廣泛應用于工業現場的總線協議。根據傳輸網絡類型的不同分為串行鏈路上的Modbus和基于TCP/IP協議的Modbus,本研究為串行鏈路上的Modbus應用。
1.1 ?通信原理
串行鏈路上的Modbus是一個主-從協議,該協議位于OSI模型的第二層,采用請求-響應的方式,通信過程中遵循以下流程:①主站向從站發送請求;②從站分析并處理主站端請求并發送結果;③如果出現差錯,從站返回異常碼。
主站向從站設備發送的報文數據域中包括附加信息,從站使用這個信息執行功能碼定義的操作。如果在一個正確接收的Modbus應用數據單元中,不出現與請求Modbus功能相關的差錯,從站發送給主站的響應數據中包括請求數據;如果出現請求Modbus功能有關的差錯,那么域包括一個異常碼,從站應用能夠使用這個域確定下一個執行的操作。Modbus事物處理如圖1、圖2所示。
Modbus網絡上只能有一個主站存在,主站在網絡上沒有地址,從站的地址范圍為0~247,其中0為廣播地址,從站的實際地址范圍為1~247,在同一時間,只能將一個主站連接到總線,將一個或多個從站連接到相同的串行總線,Modbus通信只能由主站發起,從站沒有收到來自主站的請求時,不會發送數據,從站之間不能相互通信,Modbus串行鏈路系統在物理層可以使用不同的物理接口,最常用的是兩線制RS485接口[2]。
1.2 ?傳輸模式
Modbus協議有2種傳輸模式即:Modbus ASCII模式和Modbus RTU模式,當控制器設定為ASCII傳輸模式時,數據傳輸中1 byte(8 bits)拆分為兩個對應的ASCII字符,這種傳輸方式的優點是字符發送的時間間隔可到達1 s,保證了數據傳輸的高準確率,一般通信數據量少且主要是文本的通信采用這種傳輸方式,當控制器設定為RTU通信模式時,數據傳輸中1 byte(8 bits)代表2個十六進制字符(4 bits),這種傳輸方式的優點是在相同的傳輸速度下,可以傳輸更多的數據量,滿足更大的系統組網要求,本系統選用RTU的傳輸模式。
1.3 ?報文格式
當傳輸模式選擇為Modbus RTU模式時,報文格式如表1所示,一幀報文主要由地址域、功能碼域、數據域和CRC校驗組成,最大的Modbus/RTU 幀是256個字節。報文幀中幀間字符間隔和幀內字符間隔必須分別遵守大于等于3.5 個字符時間和小于等于1.5 個字符時間的規定,所以起始和結束標志均大于等于3.5個字符,作為發送報文的字流符規定必須是連續的,如果兩個字符之間的空閑間隔大于1.5個字符時間,認為該報文幀不完整,接收站需要將其丟棄;地址域為從站地址,其范圍為1~247;功能碼指示主站要執行的動作,緊隨其后的是請求或響應參數的數據域;差錯校驗域是對報文內容執行冗余校驗的計算結果,根據不同的傳輸方式使用不同的計算方法,RTU使用循環冗余校驗(CRC校驗)[3]。
2 ?應用系統組成
系統由link-max LM410溫濕度遠程采集模塊、西門子S7-200 CPU224PLC、研華工控機和MCGS組態軟件構成。系統結構圖如圖3所示。系統中上位機裝有MCGS組態軟件,PLC與上位機采用S7-200PPI通信,用PPI電纜將PLC的port1口與上位機連接,實時讀取并顯示S7200采集的溫度、濕度值,PLC與溫度采集模塊采用ModbusRTU通信,采用RS485電纜將PLC的port0口與溫濕度采集模塊的通信網絡連接,將現場溫濕度數據實時傳送到S7-200中。
3 ?應用系統實現
3.1 ?LM410 Modbus數據通信
LM410是一款工作于-40~85 ℃工業級溫濕度采集模塊,該模塊可通過隔離的485 通訊接口與Modbus現場總線連接,最多允許32個溫濕度采集模塊掛在同一總線上,但如采用中繼器,則可將多達256個溫濕度采集模塊連到同一網絡,且最大通信距離為1 200 m。采集溫度范圍為-40~+85 ℃,精度0.1 ℃;相對濕度范圍0%~100%,精度0.5%。模塊的標準Modbus輸入寄存器說明如表2所示。
3.2 ?S7-200 Modbus RTU編程
S7-200PLC由于具有結構緊湊、成本低、指令集功能強大等特點,使得其成為各種小型任務理想的解決方案,S7-200PLC支持PPI通信、MPI通信、自由口通信等多種通信方式,用戶完全可以使用Modbus通訊協議把S7-200和其他智能設備連接在一起。本研究以S7-200PLC為Modbus主站,智能儀表LM410為Modbus從站,讀取現場溫濕度數據。
3.2.1 ?Modbus Master 協議庫支持的功能 ? 根據Modbus通信協議,Modbus協議庫支持數據的功能碼與地址對應的關系如表3所示[4]。S7-200PLC Modbus通信時,可以通過發送指令(XMT)、接收指令(RCV)結合接收中斷、發送中斷、定時中斷實現ModbusRTU通信,也可以通過S7-200PLC附帶的Modbus指令庫實現ModbusRTU通信,本研究采用后者的通信方式,在使用S7-200的指令庫時,Modbus數據地址與S7-200的I、O和數據存儲區地址間有特定的對應關系如表4所示。根據表4所對應關系,S7-200PLC采集LM410中溫濕度的數據時采用的地址溫度為30001,濕度為30002。
3.2.2 ?S7-200PLC Modbus程序實現 ?在S7-200PLC中,通過調用的Modbus指令庫實現Modbus與LM410通信,以S7-200為主站,使用STEP7-Micro/WIN V4.0 SP6的Modbus主站指令,讀寫LM410的輸入寄存器。
1)添加ModbusRTU主站指令庫。在初次使用S7-200的ModbusRTU指令庫時,需要添加ModbusRTU主站指令庫,添加成功后,會在STEP7-Micro/WIN V4.0 SP6的指令樹中的“庫”文件下顯示“Modbus Master Port0”和其中的MBUS_CTRL、MBUS_MSG,ModbusRTU指令的變量要求284個字節的V存儲區[5,6],用STEP7-Micro/WIN V4.0 SP6的“文件”→“庫存儲區”指定,默認情況下是從VB0開始,但因為與Modbus的保持寄存區沖突,所以手動改為VB2000。
2)調用Modbus RTU主站初始化和控制子程序。使用 SM0.0 調用 MBUS_CTRL 完成主站的初始化,并啟動其功能控制。調用 Modbus RTU 主站初始化和控制子程序如圖4所示。通信過程中指定Port0端口作為Modbus通信,此時該端口就不能再作PPI通信協議使用,所以,在MBUS_CTRL指令中的Mode一直置1(為0是PPI通信),通信波特率Baud設為9600,校驗方式根據需要設置奇校驗、偶校驗或無校驗,設置0表示無校驗,超時時間Timeout設為1 000 ms,Done為完成位,初始化完成,此位會自動置1,Error為初始化錯誤代碼[7]。
3)調用ModbusRTU主站讀寫子程序。ModbusRTU主站讀寫子程序為MBUS_MSG,用于啟動到Modbus從站請求、發送請求、等待響應和處理響應。調用ModbusRTU主站讀寫子程序如圖5所示。從圖5中可以看出,First為讀寫請求位,每一個新的讀寫請求必須使用脈沖觸發,Slave為從站地址,根據實際溫濕度地址設置(地址不能重復);RW為讀寫操作,Addr讀寫從站的數據地址,Count通訊的數據個數,應用中需要采集溫度、濕度數據,所以RW設置為0,Addr設置為30001,Count設置為2;DataPtr為數據指針,PLC將讀回的數據這個數據區中,所以讀會的溫度放到VW0、濕度放到VW2中,Done和Error同上。
3.3 ?MCGS組態監控實現
MCGS是一套用于快速構造和生成計算機監控系統的組態軟件,能夠在基于Microsoft運行,通過對現場數據的采集處理,以動畫顯示、報警處理、流程控制、實時曲線、歷史曲線和報表輸出等多種方式向用戶提供解決實際工程問題的方案,應用系統的上位機采用MCGS做監控界面,顯示PLC中采集的溫度、濕度數據,并提供實時報表、歷史報表數據。在用戶窗口完成溫度、濕度顯示界面和報表界面的制作,設置相應的屬性,在實時數據庫完成數據對象的定義,并連接相應的數據對象,部分數據對象如表5所示。在設備窗口添加“通用串口父設備”和“西門子-S7200PPI”,完成通信參數的設置,按表5完成數據對象與S7-200數據的連接,即可運行調試。
4 ?小結
應用系統采用S7-200為主站,LM410溫濕度遠程采集模塊為從站,通過Modbus通信的方式實現了馬鈴薯貯藏庫溫濕度數據的采集,經過試驗驗證,系統可以正常運行,能夠在上位機的監控畫面中實時、準確地顯示各個設備的運行狀態和參數,達到了現場無人值守的目的,具有結構簡單、成本低的優點。
參考文獻:
[1] 王金剛.大型加工用馬鈴薯恒溫保鮮庫的設計與實踐[J].糧油建筑工程,2009,16(2):48-49.
[2] 王靖歐,雷山鳳.Modbus協議在監控系統串行通訊中的應用[J].湖北水利發電,2007,71(4):39-40.
[3] 華 ?镕.從Modbus到透明就緒施耐德電氣工業網絡的協議、設計安裝和應用[M].北京:機械工業出版社,2009.
[4] 任清娟.基于Modbus和GPRS的高爐渣粒化配電監控系統的設計[D].內蒙古包頭:內蒙古科技大學,2012.
[5] 白 ?鑫,呂麗平,趙雪梅.Modbus協議在柴油發電機監控系統中的應用研究[J].制造業自動化,2012,34(2):9-11.
[6] 廖常初.PLC編程及應用[M].北京:機械工業出版社,2009.
[7] 肖 ?林,肖哲運,丁志江.基于Modbus協議的PLC多路溫度控制系統的實現[J].河北科技大學學報,2011,32(6):594-597.
3)調用ModbusRTU主站讀寫子程序。ModbusRTU主站讀寫子程序為MBUS_MSG,用于啟動到Modbus從站請求、發送請求、等待響應和處理響應。調用ModbusRTU主站讀寫子程序如圖5所示。從圖5中可以看出,First為讀寫請求位,每一個新的讀寫請求必須使用脈沖觸發,Slave為從站地址,根據實際溫濕度地址設置(地址不能重復);RW為讀寫操作,Addr讀寫從站的數據地址,Count通訊的數據個數,應用中需要采集溫度、濕度數據,所以RW設置為0,Addr設置為30001,Count設置為2;DataPtr為數據指針,PLC將讀回的數據這個數據區中,所以讀會的溫度放到VW0、濕度放到VW2中,Done和Error同上。
3.3 ?MCGS組態監控實現
MCGS是一套用于快速構造和生成計算機監控系統的組態軟件,能夠在基于Microsoft運行,通過對現場數據的采集處理,以動畫顯示、報警處理、流程控制、實時曲線、歷史曲線和報表輸出等多種方式向用戶提供解決實際工程問題的方案,應用系統的上位機采用MCGS做監控界面,顯示PLC中采集的溫度、濕度數據,并提供實時報表、歷史報表數據。在用戶窗口完成溫度、濕度顯示界面和報表界面的制作,設置相應的屬性,在實時數據庫完成數據對象的定義,并連接相應的數據對象,部分數據對象如表5所示。在設備窗口添加“通用串口父設備”和“西門子-S7200PPI”,完成通信參數的設置,按表5完成數據對象與S7-200數據的連接,即可運行調試。
4 ?小結
應用系統采用S7-200為主站,LM410溫濕度遠程采集模塊為從站,通過Modbus通信的方式實現了馬鈴薯貯藏庫溫濕度數據的采集,經過試驗驗證,系統可以正常運行,能夠在上位機的監控畫面中實時、準確地顯示各個設備的運行狀態和參數,達到了現場無人值守的目的,具有結構簡單、成本低的優點。
參考文獻:
[1] 王金剛.大型加工用馬鈴薯恒溫保鮮庫的設計與實踐[J].糧油建筑工程,2009,16(2):48-49.
[2] 王靖歐,雷山鳳.Modbus協議在監控系統串行通訊中的應用[J].湖北水利發電,2007,71(4):39-40.
[3] 華 ?镕.從Modbus到透明就緒施耐德電氣工業網絡的協議、設計安裝和應用[M].北京:機械工業出版社,2009.
[4] 任清娟.基于Modbus和GPRS的高爐渣粒化配電監控系統的設計[D].內蒙古包頭:內蒙古科技大學,2012.
[5] 白 ?鑫,呂麗平,趙雪梅.Modbus協議在柴油發電機監控系統中的應用研究[J].制造業自動化,2012,34(2):9-11.
[6] 廖常初.PLC編程及應用[M].北京:機械工業出版社,2009.
[7] 肖 ?林,肖哲運,丁志江.基于Modbus協議的PLC多路溫度控制系統的實現[J].河北科技大學學報,2011,32(6):594-597.
3)調用ModbusRTU主站讀寫子程序。ModbusRTU主站讀寫子程序為MBUS_MSG,用于啟動到Modbus從站請求、發送請求、等待響應和處理響應。調用ModbusRTU主站讀寫子程序如圖5所示。從圖5中可以看出,First為讀寫請求位,每一個新的讀寫請求必須使用脈沖觸發,Slave為從站地址,根據實際溫濕度地址設置(地址不能重復);RW為讀寫操作,Addr讀寫從站的數據地址,Count通訊的數據個數,應用中需要采集溫度、濕度數據,所以RW設置為0,Addr設置為30001,Count設置為2;DataPtr為數據指針,PLC將讀回的數據這個數據區中,所以讀會的溫度放到VW0、濕度放到VW2中,Done和Error同上。
3.3 ?MCGS組態監控實現
MCGS是一套用于快速構造和生成計算機監控系統的組態軟件,能夠在基于Microsoft運行,通過對現場數據的采集處理,以動畫顯示、報警處理、流程控制、實時曲線、歷史曲線和報表輸出等多種方式向用戶提供解決實際工程問題的方案,應用系統的上位機采用MCGS做監控界面,顯示PLC中采集的溫度、濕度數據,并提供實時報表、歷史報表數據。在用戶窗口完成溫度、濕度顯示界面和報表界面的制作,設置相應的屬性,在實時數據庫完成數據對象的定義,并連接相應的數據對象,部分數據對象如表5所示。在設備窗口添加“通用串口父設備”和“西門子-S7200PPI”,完成通信參數的設置,按表5完成數據對象與S7-200數據的連接,即可運行調試。
4 ?小結
應用系統采用S7-200為主站,LM410溫濕度遠程采集模塊為從站,通過Modbus通信的方式實現了馬鈴薯貯藏庫溫濕度數據的采集,經過試驗驗證,系統可以正常運行,能夠在上位機的監控畫面中實時、準確地顯示各個設備的運行狀態和參數,達到了現場無人值守的目的,具有結構簡單、成本低的優點。
參考文獻:
[1] 王金剛.大型加工用馬鈴薯恒溫保鮮庫的設計與實踐[J].糧油建筑工程,2009,16(2):48-49.
[2] 王靖歐,雷山鳳.Modbus協議在監控系統串行通訊中的應用[J].湖北水利發電,2007,71(4):39-40.
[3] 華 ?镕.從Modbus到透明就緒施耐德電氣工業網絡的協議、設計安裝和應用[M].北京:機械工業出版社,2009.
[4] 任清娟.基于Modbus和GPRS的高爐渣粒化配電監控系統的設計[D].內蒙古包頭:內蒙古科技大學,2012.
[5] 白 ?鑫,呂麗平,趙雪梅.Modbus協議在柴油發電機監控系統中的應用研究[J].制造業自動化,2012,34(2):9-11.
[6] 廖常初.PLC編程及應用[M].北京:機械工業出版社,2009.
[7] 肖 ?林,肖哲運,丁志江.基于Modbus協議的PLC多路溫度控制系統的實現[J].河北科技大學學報,2011,32(6):594-597.