詳細介紹一下MOBUS總線?
Mobus應該說一種通訊協(xié)議,最初為美國modicon公司為其PLC產品定義的一個基于RS232/422/485的串行通信協(xié)議,現在許多PLC、儀表等都支持這個協(xié)議。
你在baidu搜索“Mobus通訊協(xié)議”,就會出來很多這方面的內容了,一定有你需要的!!
1、奇偶校驗
用戶可以配置控制器是奇或偶校驗,或無校驗。這將決定了每個字符中的奇偶校驗位是如何設置的。
如果指定了奇或偶校驗,“1”的位數將算到每個字符的位數中(ASCII模式7個數據位,RTU中8個數據位)。例如RTU字符幀中包含以下8個數據位:
11000101
整個“1”的數目是4個。如果便用了偶校驗,幀的奇偶校驗位將是0,便得整個“1”的個數仍是4個。如果便用了奇校驗,幀的奇偶校驗位將是1,便得整個“1”的個數是5個。
如果沒有指定奇偶校驗位,傳輸時就沒有校驗位,也不進行校驗檢測。代替一附加的停止位填充至要傳輸的字符幀中。
兩種傳輸模式中(ASCII或RTU),傳輸設備以將Modbus消息轉為有起點和終點的幀,這就允許接收的設備在消息起始處開始工作,讀地址分配信息,判斷哪一個設備被選中(廣播則傳給所有設備),判知何時信息已完成。部分的消息也能偵測到并且錯誤能設置為返回結果。
1、ASCII幀
使用ASCII模式,消息以冒號(:)字符(ASCII碼3AH)開始,以回車換行符結束(ASCII碼0DH,0AH)。
其它域可以使用的傳輸字符是十六進制的0...9,A...F。網絡上的設備不斷偵測“:”字符,當有一個冒號接收到時,每個設備都解碼下個域(地址域)來判斷是否發(fā)給自己的。
消息中字符間發(fā)送的時間間隔最長不能超過1秒,否則接收的設備將認為傳輸錯誤。一個典型消息幀如下所示:
起始位設備地址功能代碼數據LRC校驗結束符
1個字符2個字符2個字符n個字符2個字符2個字符
圖2ASCII消息幀
2、RTU幀
使用RTU模式,消息發(fā)送至少要以3.5個字符時間的停頓間隔開始。在網絡波特率下多樣的字符時間,這是最容易實現的(如下圖的T1-T2-T3-T4所示)。傳輸的第一個域是設備地址??梢允褂玫膫鬏斪址鞘M制的0...9,A...F。網絡設備不斷偵測網絡總線,包括停頓間隔時間內。當第一個域(地址域)接收到,每個設備都進行解碼以判斷是否發(fā)往自己的。在最后一個傳輸字符之后,一個至少3.5個字符時間的停頓標定了消息的結束。一個新的消息可在此停頓后開始。
整個消息幀必須作為一連續(xù)的流轉輸。如果在幀完成之前有超過1.5個字符時間的停頓時間,接收設備將刷新不完整的消息并假定下一字節(jié)是一個新消息的地址域。同樣地,如果一個新消息在小于3.5個字符時間內接著前個消息開始,接收的設備將認為它是前一消息的延續(xù)。這將導致一個錯誤,因為在最后的CRC域的值不可能是正確的。一典型的消息幀如下所示:
起始位設備地址功能代碼數據CRC校驗結束符
T1-T2-T3-T48Bit8Bitn個8Bit16BitT1-T2-T3-T4
圖3RTU消息幀
3、地址域
消息幀的地址域包含兩個字符(ASCII)或8Bit(RTU)??赡艿膹脑O備地址是0...247(十進制)。單個設備的地址范圍是1...247。主設備通過將要聯(lián)絡的從設備的地址放入消息中的地址域來選通從設備。當從設備發(fā)送回應消息時,它把自己的地址放入回應的地址域中,以便主設備知道是哪一個設備作出回應。
地址0是用作廣播地址,以使所有的從設備都能認識。當Modbus協(xié)議用于更高水準的網絡,廣播可能不允許或以其它代替。
4、如何處理功能域
消息幀中的功能代碼域包含了兩個字符(ASCII)或8Bits(RTU)??赡艿拇a范圍是十進制的1...255。當然,有些代碼是適用于所有控制器,有此是應用于某種控制器,還有些保留以備后用。
當消息從主設備發(fā)往從設備時,功能代碼域將告之從設備需要執(zhí)行哪些行為。例如去讀取輸入的開關狀態(tài),讀一組寄存器的數據內容,讀從設備的診斷狀態(tài),允許調入、記錄、校驗在從設備中的程序等。
當從設備回應時,它使用功能代碼域來指示是正?;貞?無誤)還是有某種錯誤發(fā)生(稱作異議回應)。對正?;貞?,從設備僅回應相應的功能代碼。對異議回應,從設備返回一等同于正常代碼的代碼,但最重要的位置為邏輯1。
例如:一從主設備發(fā)往從設備的消息要求讀一組保持寄存器,將產生如下功能代碼:
00000011(十六進制03H)
對正常回應,從設備僅回應同樣的功能代碼。對異議回應,它返回:
10000011(十六進制83H)
除功能代碼因異議錯誤作了修改外,從設備將一獨特的代碼放到回應消息的數據域中,這能告訴主設備發(fā)生了什么錯誤。
主設備應用程序得到異議的回應后,典型的處理過程是重發(fā)消息,或者診斷發(fā)給從設備的消息并報告給操作員。
5、數據域
數據域是由兩個十六進制數集合構成的,范圍00...FF。根據網絡傳輸模式,這可以是由一對ASCII字符組成或由一RTU字符組成。
從主設備發(fā)給從設備消息的數據域包含附加的信息:從設備必須用于進行執(zhí)行由功能代碼所定義的所為。這包括了象不連續(xù)的寄存器地址,要處理項的數目,域中實際數據字節(jié)數。
例如,如果主設備需要從設備讀取一組保持寄存器(功能代碼03),數據域指定了起始寄存器以及要讀的寄存器數量。如果主設備寫一組從設備的寄存器(功能代碼10十六進制),數據域則指明了要寫的起始寄存器以及要寫的寄存器數量,數據域的數據字節(jié)數,要寫入寄存器的數據。
如果沒有錯誤發(fā)生,從從設備返回的數據域包含請求的數據。如果有錯誤發(fā)生,此域包含一異議代碼,主設備應用程序可以用來判斷采取下一步行動。
在某種消息中數據域可以是不存在的(0長度)。例如,主設備要求從設備回應通信事件記錄(功能代碼0B十六進制),從設備不需任何附加的信息。
6、錯誤檢測域
標準的Modbus網絡有兩種錯誤檢測方法。錯誤檢測域的內容視所選的檢測方法而定。
ASCII
當選用ASCII模式作字符幀,錯誤檢測域包含兩個ASCII字符。這是使用LRC(縱向冗長檢測)方法對消息內容計算得出的,不包括開始的冒號符及回車換行符。LRC字符附加在回車換行符前面。
RTU
當選用RTU模式作字符幀,錯誤檢測域包含一16Bits值(用兩個8位的字符來實現)。錯誤檢測域的內容是通過對消息內容進行循環(huán)冗長檢測方法得出的。CRC域附加在消息的最后,添加時先是低字節(jié)然后是高字節(jié)。故CRC的高位字節(jié)是發(fā)送消息的最后一個字節(jié)。
在WORD中前面輸一個字就會自動換行,怎么能修改?
搜索替換即可。在word操作1.搜索^p^p替換為@@。
2.搜索^p替換為blank。
3.搜索blankA.替換為^tA.。
4.搜索@@替換為^p。
5.全選所有內容,復制。在excel操作1.粘貼內容。
2.替換blank為換行符。這個是ascii代碼,在替換欄目輸入提示符下,確認鍵盤數字區(qū)numberlock燈亮起來,按住alt按鍵,輸入10即可。