欧美成人aaaaa免费视频_亚洲欧美激情小说另类_欧美激情一区二区三区视频_一级在线|欧洲

技術頻道

基于Modbus協議的智能壓力傳感器研發

1 引言

  20世紀90年代以來,在傳感技術基礎上結合微處理器技術發展起來的智能能傳感技術成為國際上研究的熱點。傳感器領域的智能化得到了快速發展,出現了不同種類的智能化傳感器產品。但是,單一智能化傳感器并不能充分發揮智能化的優點,只有將其與計算機聯網才能真正將智能化傳感器的特點全面發揮出來。本文根據 rs-485總線以差分平衡方式傳輸信號,具有抗干擾性好、傳輸距離遠等特點,通過一對雙絞線作為傳輸介質將現場設備與上位機連起來,使系統結構大為簡化,同時這也大大降低了系統安裝、調試以及維護的成本。通過目前國際上普遍采用的modbus通信協議進行編寫,方便操作人員的閱讀及使用。

2 modbus rtu通信協議

  modbus協議是莫迪康公司1978年發明用于電子控制器進行控制和通信的協議。

  modbus協議已經被接受轉化成為中國國家標準gb/t 19582-2008 《基于modbus協議的工業自動化網絡規范》。

  modbus協議采用主從(master-slave)技術,是一種問答方式的通信協議。modbus通訊協議有兩種傳送方式:rtu方式和ascii方式,相對于ascii方式,rtu模式表達相同的信息需要較少的位數,且在相同通訊速率下具有更大的數據流量。因此本文采用的是modbus rtu模式[2]。

  使用rtu模式時,消息發送至少要以3.5個字符時間的停頓間隔開始(如表1中的t1-t2-t3-t4所示)。傳輸的第一個域是設備地址。可以使用的傳輸字符是十六進制的0-9,a-f。功能碼是每幀通訊信息的第二個字節,根據modbus協議規定 ,不同功能碼對應數域格式不盡相同,常用的功能碼有 1、2、3、4、5、6、15 和 16 , 分別表示讀線圈、讀輸入狀態、讀保持寄存器、讀輸入寄存器、寫單個線圈、寫單個輸入狀態、寫多個線圈, 寫多個保持寄存器。本文根據需要主要是用的3、6、16功能碼。網絡設備不斷偵測網絡總線,當第一個域(地址域)接收到,每個設備都進行解碼以判斷是否發給自己。在最后一個傳輸字符之后,一個至少3.5個字符時間的停頓標定了消息的結束。一個新的消息可在此停頓后開始。

  整個消息幀必須作為一連續的流傳輸。如果在幀完成之前有超過3.5個字符時間的停頓時間,接收設備將刷新不完整的消息并假定下一字節是一個新消息的地址域。同樣地,如果一個新消息在小于3.5個字符時間內接著前一消息開始,接收的設備將認為它是前一消息的延續。這將導致一個錯誤,因為在最后的crc 域的值不可能是正確的[3]。一典型的rtu模式的消息結構如表1所示。

3 系統硬件設計

  智能傳感器(intelligent sensor)是具有信息檢測與處理功能的傳感器。智能傳感器帶有微處理機,具有采集、處理、交換信息的能力,是傳感器集成化與微處理機相結合的產物。本設計中智能壓力傳感器的組成如圖1所示。

圖1 基于c8051f350的智能壓力傳感器的方框圖

  整個系統按照各部分功能可分為電源模塊、溫度采集模塊、模擬信號調理模塊、數據通信模塊等部分。本設計使用c8051f350作為數據采集后的微處理器,c8051f350內部有一個全差分24位sigma-delta模/數轉換器(adc),該adc具有在片校準功能。兩個獨立的抽取濾波器可被編程到1khz的采樣率[5]。可以使用內部的2.5v電壓基準,也可以用差分外部基準進行比率測量,其中在本設計中使用的是內部電壓基準。adc0中包含一個可編程增益放大器,有8種增益設置,最大增益可達128倍,增益調節范圍完全符合設計要求。

  設計采用陶瓷材料經特殊工藝精制而成的干式陶瓷壓阻壓力傳感器cps181,陶瓷是一種公認的高彈性、抗腐蝕、抗磨損、抗沖擊和振動的材料。陶瓷的熱穩定特性及它的厚膜電阻可以使它的工作溫度范圍高達-40~135℃,而且具有測量的高精度、高穩定性。電氣絕緣程度>2kv,輸出信號強,長期穩定性好[4]。設計使用ds18b20測量工作環境溫度。ds18b20具有以下特性:

  (1) 獨特的單線接口,只需一個接口引腳即可通信;

  (2) 不需要外部元件;

  (3) 可用數據線供電;

  (4) 不需要備份電源等。

  測量得到的溫度信號經過單線接口送入ds18b20或從ds18b20送出,因此從c8051f350到ds18b20僅需連接一條線。設計的通信通過rs485完成。因為rs-485的數據最高傳輸速率為10mbps;rs-485接口是采用平衡驅動器和差分接收器的組合,抗共模能力強,即抗噪聲干擾性好[6];rs-485接口的最大傳輸距離可達3000米;支持眾多常見的操作系統,易于實現不同網絡之間的通信。

4 系統軟件設計

  4.1下位機通信程序的創新性設計


  系統的下位機程序主要是運用了大家熟悉的c語言進行編程,程序采用了模塊化思想,結構清晰易讀。主要包括系統初始化、更新傳感器溫度值、更新傳感器供電電壓值、更新傳感器零漂值、更新傳感器壓力值、由modbus協議對上位機發來的報文進行解釋形成任務標志、執行modbus協議的相應功能代碼任務、向上位機發送應答報文、故障診斷、電源管理等模塊。

  設計的創新點:自定義了一個寄存器數組,數組里包括地址、量程、增益、波特率、零漂、版本號、溫度、供電電壓、故障信息、壓力值等,并對他們進行了編號。寄存器分配一覽表如表2所示。

  (1)每一寄存器由兩個字節構成,高字節在前,低字節在后,高字節存放數值的高位,低字節存放數值的低位。例如:量程代碼存放于編號為01h的寄存器中,所占的兩個字節規定如下(其中xx為以16進制形式存放的量程代碼):

寄存器編號 字節 高半字節 低半字節
01h 高字節 0 0
低字節 x x

  定義:傳感器地址、量程、增益、波特率分別占用一個寄存器(即兩個字節),它們的寄存器號分別為00h、01h、02h、03h,在modbus協議功能碼03中,起始地址高位、低位可以分別對應傳感器地址、量程、增益、波特率的高位、低位。

(2) 在具體編寫程序時,把寄存器數組的所有只寫屬性放入flash

  然后初始化讀出。上位機發信息,下位機解釋相應命令,讀出或寫入相應數據。在編寫執行03、06、16任務模塊時我們把要讀取的寄存器數組的起始下標和要讀取的數據個數分別根據modbus功能碼中的起始地址高、低位和寄存器數高、低位設定成一個變量,這樣簡化了程序,可讀性強。

  (3)modbus協議規定,當設備使用rtu模式通信時,整個報文幀必須以連續的字符流發送。報文幀由時長至少為3.5個字符時間的空閑間隔區分。如果兩個字符之間的空閑間隔大于1.5個字符時間,則報文幀被認為不完整應該被接收節點丟棄。而在實際通信過程中由于每幀消息不定長,所以程序中最主要的問題是如何找到modbus消息幀的開始和結束時間點,并且要滿足兩個字符之間的空閑間隔和兩個報文幀之間的空閑間隔。程序的解決方法:接收采用中斷方式并采用了可重復觸發的可編程單穩方式進行處理,在利用modbus協議通信時保證了實時性接收。

  (4)對于報文發錯問題(即不符合要發送的報文),已用crc校驗程序對其處理。對于發送不符合要求的傳感器地址、功能代碼、數據、從機設備故障、從機設備忙碌、超時等問題,通過發送不正常響應信息來進行處理。而且上位機也編寫了相應的程序代碼。

  (5) 對于零漂、溫漂的補償以及線性化的問題,通過軟件進行補償處理的。實驗證明,系統精度可以控制在千分之五之內。

4.2上位機通信程序的編寫

圖2 modbus串口協議通信界面

  上位機串口通信是采用 visual basic語言編寫,visual basic提供了面向對象的可視化編程工具。開發人員只需按設計要求在屏幕上“畫”出所需的用戶界面來,并設置這些對象的屬性,不必為用戶界面設計而編寫大量的程序代碼[7]。相對于傳統編程語言,visual basic最突出的特點是事件驅動編程機制。每個事件都能驅動一段程序的運行。程序員只需編寫響應用戶動作的代碼,各個動作之間不一定有聯系,這樣的程序一般較短,且易于編寫和維護。在visual basic中為了完成串行通信,使用了mscomm控件,它可實現對串口的數據發送和接收。為了實現自動發送功能,還用到了timer控件。這兩個控件在程序運行時都是不可見的[8][9],在設計時把它們放在窗體的右上角即可。圖3為modbus串口協議通信界面。此串口通信主要完成的功能:

  (1)搜索傳感器配置信息:當用戶在用此傳感器時,可能不清楚掛接傳感器地址位置以及串口所使用的波特率,為此編寫了相應的程序方便用戶查詢。

  (2)讀傳感器配置信息,包括地址、量程、增益、波特率、程序代碼、修正系數、功能代碼等。此部分根據modbus功能碼03編寫,嚴格按照rtu幀格式編寫。

  (3)寫傳感器配置信息。用戶可以根據自己的要求,更改地址、量程、增益、波特率、程序代碼、修正系數、功能代碼等。此部分是根據根據modbus功能碼06或16編寫。

  (4) 采集傳感器工作狀態。包括傳感器壓力、供電電壓、環境溫度、零漂、故障信息等。
modbus串口協議通信界面如圖2所示。

  部分程序如下:

private sub timer1_timer()
if star_find = true then `如果有啟動搜索命令標志
area_num = area_num + 1
mscomm1.outbuffercount = 0
if area_num >= 248 then `如果現波特率下超出下位機地址范圍,則地址清零,重新換波特率搜索
area_num = 0
timer1.enabled = false
ll= msgbox("該波特率下無法搜索到下位機地址,請改變波特率!", vbok, "提示")
end if
call start_find `開端口,將搜索命令發給下位機,并確定mscomm1.rthreshold屬性
end if
if star_read = true then `如果有啟動讀命令標志
call start_read `開端口,將讀命令發給下位機,并確定mscomm1.rthreshold屬性
end if
if star_write = true then `如果有啟動寫命令標志
call start_write
`開端口,將配置信息強置給下位機,并確定mscomm1.sthreshold屬性
end if
if star_acq = true then `如果有啟動采集命令標志
if acq_end = true then `如果有結束采集命令標志
timer1.enabled = false `關閉時鐘
acq_end = false `清除結束采集命令標志
end if
call start_read `開端口,將讀命令發給下位機,并確定mscomm1.rthreshold屬性
end if
end sub

  4.3 編程時應注意以下幾個問題

  (1) 下位機從應答到發送數據并返回回應消息有一定的時間間隔,程序已根據不同波特率對其進行設定。保證對下位機的信息正確讀取。

  (2) 在搜索傳感器配置信息時,若搜索不到,要有提示通信出錯信息,不能無限時間搜索。

  (3) 每一次的傳輸是0-255之間的數據,必須把inputmode屬性設置為1(默認為0),表示以二進制格式取回數據。否則當設置為0時,超過128的部分會被當成雙字節文字處理,結果出現錯誤。

5 結束語

  利用上述的軟硬件設計方法,通過 vb6.0的mscomm控件可以做到基于modbus通信協議的上位機與下位機的相互通信。該方法編程簡單、實用,運行穩定可靠,操作簡便易行,通用性強,同時降低了開發成本,很好的滿足了工業現場的要求。

文章版權歸西部工控xbgk所有,未經許可不得轉載。

欧美成人aaaaa免费视频_亚洲欧美激情小说另类_欧美激情一区二区三区视频_一级在线|欧洲

      9000px;">

          精品日韩av一区二区| 亚洲另类春色校园小说| 一区二区三区欧美激情| 99精品视频中文字幕| 人人狠狠综合久久亚洲| 成人免费高清在线| 中文字幕综合网| 日本大香伊一区二区三区| 午夜精品久久久久久久蜜桃app| 日本韩国精品一区二区在线观看| 亚洲电影中文字幕在线观看| 欧美狂野另类xxxxoooo| 国精产品一区一区三区mba桃花| 久久久一区二区| www.色精品| 日韩二区三区四区| 国产精品美女久久久久aⅴ国产馆| 波多野结衣精品在线| 亚洲高清久久久| 亚洲精品在线一区二区| 色噜噜狠狠成人中文综合| 蜜臀av一区二区在线免费观看 | 中文字幕在线一区免费| 在线视频欧美精品| 成人夜色视频网站在线观看| 五月婷婷综合网| 国产精品你懂的| 337p日本欧洲亚洲大胆色噜噜| 99re66热这里只有精品3直播| 秋霞影院一区二区| 亚洲一区影音先锋| 成人欧美一区二区三区在线播放| 欧美一级在线免费| 欧洲精品一区二区三区在线观看| 国产精品自拍一区| 久久精品国产77777蜜臀| 亚洲影院免费观看| 亚洲精品中文在线观看| 久久久www成人免费无遮挡大片| 欧美日韩在线精品一区二区三区激情| 波多野结衣视频一区| 国产成人亚洲综合a∨婷婷| 视频一区二区三区在线| 亚洲狠狠爱一区二区三区| 亚洲精选视频免费看| 亚洲男人天堂一区| 亚洲同性同志一二三专区| 中文字幕不卡的av| 国产清纯白嫩初高生在线观看91| 日韩欧美久久久| 精品欧美黑人一区二区三区| 精品欧美一区二区在线观看| 日韩视频一区二区三区在线播放| 欧美午夜一区二区| 精品视频全国免费看| 欧美麻豆精品久久久久久| 欧美日韩一区国产| 91精品欧美一区二区三区综合在| 久久久国产精品不卡| 久久亚洲一区二区三区四区| 久久久精品综合| 中文字幕av一区 二区| 国产精品成人一区二区艾草 | 麻豆国产精品视频| 精品日本一线二线三线不卡| 欧美成人精品1314www| 精品国产一区二区在线观看| 久久尤物电影视频在线观看| 中文天堂在线一区| 亚洲日本欧美天堂| 亚洲成年人影院| 午夜欧美视频在线观看| 美腿丝袜一区二区三区| 国产成人综合在线观看| 91麻豆精品秘密| 欧美剧情电影在线观看完整版免费励志电影| 欧美亚洲自拍偷拍| 日韩一区二区免费在线电影| 久久久久久久国产精品影院| 国产精品妹子av| 悠悠色在线精品| 久久成人免费网| 97成人超碰视| 欧美一区二区视频网站| 欧美国产丝袜视频| 亚洲成人一区在线| 黄网站免费久久| 色妞www精品视频| 精品久久久久av影院| 最近日韩中文字幕| 久久精品久久精品| 91国产精品成人| 久久精品日韩一区二区三区| 亚洲裸体在线观看| 激情成人综合网| 欧美日韩激情一区二区| 精品国产电影一区二区| 天天综合色天天| 国产精品一卡二| 日韩精品一区二区三区老鸭窝| 中文字幕av一区二区三区免费看| 亚洲成人动漫精品| 99精品黄色片免费大全| 精品国产百合女同互慰| 亚洲1区2区3区4区| 91麻豆.com| 欧美精彩视频一区二区三区| 日韩精品欧美成人高清一区二区| av高清久久久| 精品国产成人系列| 九九在线精品视频| 91精品黄色片免费大全| 樱桃国产成人精品视频| av不卡在线观看| 国产日韩欧美激情| 国产福利91精品一区| 精品国产99国产精品| 欧美亚洲国产一区二区三区va| 亚洲精品一区二区三区香蕉| 免费成人性网站| 91精品国产综合久久小美女| 亚洲成va人在线观看| 精品视频一区二区不卡| 亚洲一级二级在线| 欧美日韩在线播放三区| 视频精品一区二区| 欧美一区欧美二区| 狠狠色丁香婷婷综合久久片| 精品国产三级电影在线观看| 精品一区二区三区日韩| 欧美精品一区男女天堂| 国产精品原创巨作av| 久久精品一区二区三区av| 国产精品一区免费在线观看| 国产亚洲综合在线| 91蜜桃视频在线| 亚洲午夜免费电影| 日韩手机在线导航| 成人精品一区二区三区四区| 亚洲日本va在线观看| 欧美日韩在线播放三区| 精品一区二区影视| 亚洲天堂福利av| 91.xcao| 精品一区二区三区在线观看| 国产精品色哟哟| 欧美午夜电影一区| 久久精品免费观看| 国产精品狼人久久影院观看方式| 91视视频在线观看入口直接观看www | 9色porny自拍视频一区二区| 亚洲日本中文字幕区| 欧美一区二区网站| 成人av电影在线观看| 一区二区三区免费| 日韩午夜中文字幕| 国产91富婆露脸刺激对白| 亚洲伦理在线精品| 精品欧美乱码久久久久久| 91一区二区三区在线观看| 日韩在线一区二区三区| 日本一区二区在线不卡| 欧美三级韩国三级日本一级| 国产精品一区二区久久不卡| 亚洲资源在线观看| 久久久久久久免费视频了| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 精品动漫一区二区三区在线观看| 成人免费视频网站在线观看| 午夜精品久久久久久久99水蜜桃| 久久婷婷综合激情| 欧美高清性hdvideosex| 91一区二区在线| 国产成人一区二区精品非洲| 日韩高清不卡在线| 亚洲视频一区二区在线观看| 精品国产乱码久久久久久闺蜜| 欧美在线免费观看视频| 日韩三级视频中文字幕| 99国产一区二区三精品乱码| 麻豆视频一区二区| 性做久久久久久免费观看欧美| 成人欧美一区二区三区1314| 2014亚洲片线观看视频免费| 欧美日韩一区三区| 91久久精品日日躁夜夜躁欧美| 国产中文字幕精品| 蜜臀av一区二区在线观看| 五月激情六月综合| 午夜视频在线观看一区二区三区| 亚洲视频一二三区| 国产精品久久久99| 精品福利一二区| 精品日韩99亚洲| 精品国产一区二区三区四区四| 538在线一区二区精品国产| 欧美日韩一区二区三区在线看| 91视频观看视频| 99久久伊人精品| 91美女精品福利|