谘詢電話

ENGLISH0755-88840386
新聞中心

谘詢電話

0755-88840386
您的位置:首頁 > K8凯发大酒店天生赢家專題 > 專業技術專題 > 工業自動化稱重儀表>詳情頁

基於Modbus協議的觸摸屏與多個稱重儀表通信的研究與實現

發布時間:2020-10-21 11:08:26 |來源:網絡轉載

1引言
Modbus協議是某公司於1979年開發的一種通信協議,可實現與控製器之間的通信。Modbus協議被大部分數據采集與監控係統和人機界麵軟件支持,它已經成為一種通用工業標準。
傳統的稱重控製行業稱重數據的上傳一般是通過稱重控製器將重量信號轉換成電流信號(一般是4mA-20mA信號),傳遞的稱重數據存在較大的誤差,而如果通過串口總線直接讀取多台稱重儀表上的計量數據,可以保證數據的實時準確性。Modbus協議是主從站通信協議,用異步串口完成通信,物理層采用RS484或RS232。傳輸速率可以達到115kb/s。通信采用命令/應答方式,每一種命令幀對應一個應答帔。命令幀由主機發出,所有從機都將收到報文,但隻有被尋址的從機才會響應命令,返回相應的應答幀,如果報文中尋址地址為0,則被視為全局廣播,所有從機都把它當一條命令執行,不返回應答幀。Modbus通信協議有兩種傳送方式,RTU方式和ASCII方式。RTU模式相對於ASCII模式主要優點是表達相同的信息需要較少的位數,且在相同通訊速率下具有更大的數據K8凯发登录入口。在通常情況下,一般工業智能儀表都是采用RTU模式的Modbus規約。
上海某稱重係統有限公司最近推出的控製儀表XK3190-C801和XK3190-C802(以下簡稱C801和C802)都已內建了標準的ModbusRTU傳輸格式的標準協議,經測試可與眾多廠家的組態軟件適配,如亞控科技的組態王軟件,北京三維力控的Forcecontrol,威綸通科技的EB8000組態係列,昆侖通泰的MCGSE組態軟件,都有成功的應用範例。本文主要是詳解C801和C802儀表通過ModbusRTU協議與威綸通觸摸屏通信的研究與實現。
2係統控製方案
本係統主要采用觸摸屏、稱重控製器、電流表、模擬傳感器組成。一台觸摸屏通過RS485總線連接四台稱重控製器。

如圖1所示係統組成部分為:2.1模擬傳感器:輸出為mV信號。

稱重儀表係統總體結構方框圖

2.2稱重控製儀表:C801和C802是同步研發的兩款稱重控製儀表,他們都具有體積小、強變送、AD轉換精度高、采用32位高速高性能ARM處理器、帶全隔離0-5V/0-10V/4-20mA模擬量輸出以及光電隔離20mA電流環大屏幕顯示接口等優點,兩者功能基本相同,都支持Modbus-Rtu協議,他們的主要不同點是安裝方式不同,C801是35mm導軌安裝,C802是麵板嵌入式安裝,開口尺寸是91mmx45mm;C801標配隔離式開關量三入三出控製,C802標配隔離式開關量二入二出控製;C801開關量輸出和大屏幕顯示接口互相獨立,可同時使用,而C802開關量輸出和光電隔離20mA電流環大屏幕顯示接口複用,不能同時使用。總之C801和C802都適用於各種高速與高精度稱重要求的控製場合,都集成了加法秤、減法秤、分選秤等功能,用戶可根據現場需求自主選擇所用儀表。本係統以C801為例。
2.3觸摸屏:本係統采用某科技有限公司生產的觸摸屏,型號是TK6070ip,具有強大的圖形顯示功能和數據處理功能,並支持RS-232和RS-485兩種通訊接口,廣泛應用於機械、紡織、電氣、包裝、化工等行業。配備圖形功能強大且簡單易用的組態軟件EasyBuilder8000o用戶可創建出直觀的屏幕畫麵,完成監控、數據上傳顯示和修改等畫麵的設計。
2.4電流表:控製儀表C801接電流表演示4mA-20mA模擬量輸出,模擬量輸出跟C801儀表稱重數據線性同步,準確度0.2%;另外用戶可根據需要修改C801主板上模擬量短路環的位置將儀表改為0V-5V或0V-10V輸出。
3係統控製軟件設計
本係統可通過觸摸屏連接稱重儀表實現功能:
(1)4台稱重儀表稱重數據和指示燈狀態信息可在觸摸屏上實時同步顯示;
(2)按鍵功能實現置零、除皮、啟動和停止配料程序;
(3)可實現標定,標定密碼可修改;
(4)可查詢和修改儀表配料參數;
(5)可査詢配料累計次數和累計重量;
(6)可査詢和修改儀表通信站號,修改後需重新連接通信;
3.1觸摸屏界麵設計及功能實現
本係統設計了以下界麵:
(1)主監控界麵:如圖2所示四台儀表主監控界麵可直觀顯示整個配料控製係統的輸入輸出工作狀況、儀表狀態信息,從主監控界麵單按下置零、除皮、啟動、停止按鈕,可分別對C801儀表實現置零、除皮、啟動、停止動作,按下設置按鈕還可以進入每個儀表的配方界麵,按下標定按鈕還可以進入每個儀表的標定界麵。

儀表主監控界麵圖

(2)配方界麵:如圖3所示,可查詢到單個儀表的配方參數並可以修改同步上傳到C801儀表,也可在該界麵査詢到配料累計次數和累計重量,無法查詢到單次配料重量,累計次數大於999次時儀表會報錯並清除以前數據重新開始累計。

儀表配方界麵圖

(3)標定界麵:如圖4所示,按照界麵提示信息選擇儀表分度值、小數位,並輸入儀表滿量程,在空載點和加載標準秩碼點分別操作實現C801儀表兩點標定。

儀表標定界麵圖

(4)標定密碼修改界麵:觸摸屏默認進入標定密碼為801,在標定密碼修改界麵可修改標定密碼。
(5)儀表通信站號修改界麵:用戶在可該界麵修改每個儀表通信站號,修改後需斷開重新連接通信。
觸摸屏界麵編程需用到組態軟件EasyBuilder8000,觸摸屏元件地址屬性參考表1對應設置。如圖5所示讀重量數值元件設置和圖6所示啟動按鈕位狀態元件設置所示,觸摸屏上元件地址屬性需在儀表Modbus對應寄存器地址基礎上加lo圖中varO為觸摸屏VarO站號變量,地址為LW-10000,保存有l#C801儀表站號地址信息。

讀重量數值元件設置圖和啟動按鈕位狀態元件設置圖

威綸通功能說明表

3.2儀表程序設計及功能實現
通訊數據幀分為査詢消息幀和從機響應幀兩類。通用Modbus-Rtu協議的數據幀由一個字節的地址碼、一個字節的功能碼和N個字節的數據碼以及兩個字節的校驗碼構成,並約定在一幀數據中最後一個傳送字符的後麵,必須有一個至少3.5字符時間間隔標誌著信息的結束,下一幀數據在這個間隔之後開始。
C801儀表單片機Modbus驅動程序總體可分為串口和定時器1初始化、RS-485總線數據釆集、Modbus報文處理及應答3個基本模塊,其中RS-485總線數據采集程序由串口中斷和定時器1中斷配合完成。儀表通信時首先要進行初始化操作,例如設置波特率、選用的通訊方式、串口中斷使能、定時器1工作模式、預分頻係數、定時器中斷使能等。
串口收發器初始默認為接收使能,發送關閉狀態,當總線空閑,儀表單片機無數據接收時,不會進入數據處理子程序,循環執行主程序其他部分;當總線有數據接收時,如圖7(a)所示,進入串口中斷子程序,將串口數據幀放入接收數據數組緩衝區RxBuffer[Ridx]中,隨即接收緩衝區指針Ridx自增、初始化定時器1並啟動定時器1後退出本次中斷,以此不斷循環直到接收最後一個字符幀後,如圖7(b)所示利用定時器1中斷等待總線3.5個字符的空閑時間後,置有通訊數據未處理標誌。
如圖7(c)所示,當主程序循環掃描到有通訊數據未處理時,進入數據處理子程序,首先檢査報文數據長度是否正確(至少為4個字節),長度正確則驗證報文中從站的站號,站號正確則驗證該報文的CRC16校驗碼是否正確,校驗通過後再根據報文中的功能碼類別執行switch語句的相應分支程序,在這些分支程序裏執行上位機通過總線
傳達過來的命令並生成應答報文,填充報文發送緩衝區數組TxBuffer[Sidx],Sidx為發送數據緩衝區指針,填充完畢後使能收發器發送,使用單片機UART_Write(UART_T*UART,uint8_t*pu8TxBuf,uint32_tu32WriteBytes)庫函數發送串口數據,該庫函數使用査詢方式發送串口數據,UART指向使用的串口寄存器地址,Pu8TxBuf指向要發送的數據數組首地址,u32WriteBytes變量指要發送的數據報文長度,最後單片機在退出數據處理子程序之前,都會清接收緩衝器指針和通訊數據未處理標誌位,置發送緩衝區指針,關收發器發送使能,表示通訊數據處理已結束。

儀表驅動軟件程序框圖

C801實現的Modbus功能見表2

功能表

C80I和觸摸屏通信用到的寄存器、離散量輸入和線圈見表3-表8,其中表3-表5為C801標準程序就有寄存器、離散量輸入和線圈地址,表6-表8為本係統標定功能添加的寄存器、離散量輸入和線圈地址,以下表格隻列出了本係統界麵設計用到的功能碼地址,如需完整的功能碼地址信息可査閱C801或C802說明書。需要注意的是,不同的用戶對儀表功能和觸摸屏界麵都有自己獨特的需求,某公司都可以通過定製實現不同客戶的需求。
(1)標準程序自帶寄存器、離散量輸入和線圈

保存寄存器表

(2)為了實現通過觸摸屏進行標定操作,增加了以下幾項:

保存寄存器表

4 儀表和觸摸屏通信出現的問題和注意要點(係統調試)
設備在整個調試過程中有一些注意事項及碰到的問題羅列如下:

(1)提高抗幹擾辦法:
在RS485通訊連線時,要注意采取一些信號抗幹擾措施,比如通信線連線時遵循鏈式手拉手的接線方式,防止出現星型連接;推薦采用帶屏蔽的RS485電纜;當線路較長,波特率較高的情況下應在總線首尾端增加匹配電阻,減少反射;485收發器在規定的共模電壓-7V至+12V之間時,才能正常工作,如果超出此範圍會影響通訊,嚴重的會損壞通訊接口,共模幹擾會增大上述共模電壓,消除共模幹擾的有效手段之一是將485通訊線的屏蔽層用作地線,將機具、電腦等網絡中的設備地連接在一起,並由一點可靠地接入大地。
(2)觸摸屏和儀表通訊參數配置:
觸摸屏通信設置如圖8所示,超時延時不宜設置過長,C801儀表通信響應時間為幾毫秒級別,如超過100毫秒儀表對觸摸屏發送數據無響應就已經超時了,故將此參數推薦設為0.1秒,為穩定切換數據鏈路的收發狀態,通信延時可設置為50ms,另外C801儀表和觸摸屏通信參數設置一定要對應,C801儀表通信撥動開關一定要撥向RS485側。

觸摸屏通信設置界麵圖

(3)C801儀表通信響應時間(上位機發送結束到儀表開始響應這段時間):
C801儀表編程時要注意對上位機發送數據的響應的實時性和準確性。
如圖9,在調試C801儀表程序過程中,曾出現過一個問題,用RS485轉RS232轉接頭將C801儀表連接電腦,用串口調試助手以100ms的周期發送讀重量命令,可以看到串口調試助手上會有錯誤數據出現(總線衝突引起,程序升級後不再出現此類問題)。
用示波器觀察總線上的通信波形,如圖10,會發現C801儀表對上位機發送過來的讀重量命令響應時間不固定,少則10ms,多則超過100ms,說明此問題係總線衝突引起,C801儀表Mod-bus-Rtu通信程序部分存在一定的問題,檢査C801儀表程序發現,儀表將串口數據處理子函數LoadUartlCom_C8010放在一個100ms定時循環體內,儀表會在定時器。中斷中每隔100ms將b_100ms標誌位置位,在主程序循環體中,儀表會不斷査詢b_l00ms是否為1,如為1才會執行串口數據處理子函數LoadUartlCom_C801Q,這樣設計會明顯影響串口數據的即時響應,應把串口數據處理子函數LoadUartlCom_C801Q放在100ms定時循環體外,主程序循環體中,按照此方法升級標準程序後,燒錄新的程序到C801儀表中,用示波器觀察總線上的通信波形如圖11,C801通信響應時間是固定的,約5ms左右,圖9的問題也不再出現。

總線上的通信波形圖

5小結
總之,通過本係統C801/C802儀表與威綸通觸摸屏通信的研究,可以發現C801/C802儀表ModbusRTU通信能夠正常實現,上位機與下位機的通信穩定可靠,傳輸數據準確及時,人機界麵使用方便,非常適合用於無人值守和集中控製場合,是值得廣大用戶值得信賴的選擇。

 

 

文章來源於網絡轉載,侵刪

分享到
網站地圖凱發K8凱發K8凱發K8凱發K8凱發K8凱發K8