欧美成人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;">

          欧美一区二区日韩| 久久精品国产精品青草| 亚洲成人7777| 91啦中文在线观看| 亚洲成a人片在线不卡一二三区| av电影在线观看一区| 国产精品久久午夜夜伦鲁鲁| 日本aⅴ亚洲精品中文乱码| 欧美高清hd18日本| 久久国产精品露脸对白| 中文在线资源观看网站视频免费不卡 | 欧美理论在线播放| 日本免费在线视频不卡一不卡二| 欧美一区二区三区色| 狠狠色狠狠色综合系列| 中文字幕一区二区视频| 91精品国产黑色紧身裤美女| 日韩av中文字幕一区二区三区| 久久久久久久久久久久电影| 成人午夜视频福利| 久久99日本精品| 亚洲柠檬福利资源导航| 久久久99精品久久| 一本久道中文字幕精品亚洲嫩| 天天综合日日夜夜精品| 日本一区二区免费在线观看视频| 91在线丨porny丨国产| 裸体在线国模精品偷拍| 亚洲视频精选在线| 国产日韩v精品一区二区| 日韩三级伦理片妻子的秘密按摩| 成人av资源网站| 激情六月婷婷综合| 麻豆中文一区二区| 亚洲不卡一区二区三区| 亚洲激情六月丁香| 亚洲美女淫视频| 国产精品沙发午睡系列990531| 精品久久久久久久一区二区蜜臀| 538prom精品视频线放| 欧美性xxxxx极品少妇| 色综合天天综合| 欧美自拍偷拍一区| 欧美精品电影在线播放| 欧美日韩免费视频| 欧美日韩精品一二三区| 91精品国产色综合久久不卡电影| 3d动漫精品啪啪一区二区竹菊| 一本久久综合亚洲鲁鲁五月天| 99re热视频这里只精品| 一本大道久久a久久精品综合| 色综合中文字幕| 欧美日韩一区二区三区在线看 | 国产亚洲一区二区三区| 中文字幕第一区综合| 洋洋av久久久久久久一区| 日韩av一二三| 成人免费视频视频| 欧美亚洲综合一区| 精品剧情在线观看| 亚洲激情一二三区| 国产精品影视网| 色欧美日韩亚洲| 久久综合色8888| 婷婷丁香激情综合| 91在线观看下载| 精品国产人成亚洲区| 亚洲一区二区美女| 99久久精品免费看国产| 精品国产乱码久久久久久图片| 中文字幕欧美激情一区| 免费av成人在线| 欧美日韩高清一区二区三区| 国产精品网曝门| 国产精品1区2区| 欧美精品自拍偷拍动漫精品| 国产精品不卡一区二区三区| 免费人成精品欧美精品| 欧美性色欧美a在线播放| 国产精品乱码久久久久久| 成人午夜又粗又硬又大| 欧美优质美女网站| 亚洲色图一区二区| av亚洲精华国产精华精| 国产亚洲精久久久久久| 国内精品久久久久影院色| 精品国产伦一区二区三区免费 | 一本到不卡免费一区二区| 99久久精品国产导航| 久久久精品日韩欧美| 国产黄色成人av| 国产精品理论在线观看| 91在线视频免费91| 一区二区成人在线视频| 色欧美片视频在线观看在线视频| 中文字幕一区三区| 在线观看精品一区| 日韩激情视频网站| 欧美精品一区二区三区久久久| 国产高清不卡二三区| 亚洲免费av高清| 日韩午夜激情电影| 成人av在线播放网址| 亚洲乱码日产精品bd| 欧美情侣在线播放| 成人国产精品视频| 亚洲一区二区三区国产| 精品国产伦一区二区三区观看体验| 国产精品91xxx| 婷婷一区二区三区| 久久只精品国产| 欧美综合色免费| 不卡av电影在线播放| 日本成人在线不卡视频| 国产精品免费丝袜| 欧美日韩视频第一区| 国产精品91一区二区| 午夜一区二区三区在线观看| 欧美日韩mp4| 99精品视频一区| 国产麻豆成人传媒免费观看| 亚洲成人动漫精品| 国产精品系列在线| 精品美女在线播放| 欧美高清视频一二三区| 色婷婷综合久色| 91小视频在线观看| 国产黑丝在线一区二区三区| 日韩中文字幕不卡| 亚洲成国产人片在线观看| 国产午夜亚洲精品羞羞网站| 欧美tickling挠脚心丨vk| 日韩精品一区二区三区在线播放 | 亚洲欧洲精品一区二区精品久久久| 欧美巨大另类极品videosbest | 99久久精品免费| 成人av小说网| 高清不卡在线观看| 色婷婷精品大在线视频| 在线视频欧美精品| 日韩欧美色电影| 欧美激情一区在线| 亚洲成av人片观看| 国产精品九色蝌蚪自拍| 亚洲欧美日韩中文字幕一区二区三区| 国产精品污网站| 亚洲国产日韩a在线播放性色| 亚洲国产精品综合小说图片区| 亚洲午夜免费电影| 麻豆国产精品官网| av综合在线播放| 欧美一区二区福利视频| 国产精品网曝门| 性做久久久久久| 一本大道久久a久久综合婷婷| 日韩欧美国产不卡| 亚洲线精品一区二区三区| 日本欧美韩国一区三区| 波多野结衣在线一区| 91精品国产乱| 亚洲国产精品久久人人爱蜜臀| 男人操女人的视频在线观看欧美| 东方aⅴ免费观看久久av| 欧美精品日韩一本| 亚洲视频 欧洲视频| 国产99久久久国产精品免费看| 99久久国产综合精品麻豆| 国产午夜精品久久久久久免费视| 亚洲mv在线观看| 91片黄在线观看| 国产精品免费丝袜| 狂野欧美性猛交blacked| 欧美精品在线观看播放| 亚洲人被黑人高潮完整版| 国产一本一道久久香蕉| 欧美成人a∨高清免费观看| 日韩主播视频在线| 日韩欧美在线网站| 国产一区日韩二区欧美三区| 日韩欧美一二三四区| 国产精品一二三四五| 综合精品久久久| 欧美在线999| 日本不卡视频在线| 久久无码av三级| 色老汉av一区二区三区| 日本欧美加勒比视频| 久久午夜免费电影| 成人国产精品免费观看视频| 亚洲另类在线一区| 91成人在线免费观看| 蜜桃视频一区二区三区在线观看| 欧美一区二区女人| 成熟亚洲日本毛茸茸凸凹| 国产日本欧美一区二区| 欧美伊人久久大香线蕉综合69| 午夜精品福利一区二区蜜股av| 欧美成人video| 91小视频免费看| 蜜臀久久久久久久|