MODBUS協議說明_第1頁
MODBUS協議說明_第2頁
MODBUS協議說明_第3頁
MODBUS協議說明_第4頁
MODBUS協議說明_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1智能三相電參數數據綜合采集模塊MODBUS通訊協議說明目錄一、Modbus通訊規約簡介二、Modbus-ASCII通訊協議說明三、Modbus-RTU通訊協議說明四、Modbus協議的功能碼與所對應的數據表五、數據計算六、Modbus通訊規約介紹(一)MODBUS通訊規約簡介(二)MODBUS的兩種傳輸方式(三)Modbus消息幀(四)MODBUS通訊錯誤檢測方法一、Modbus通訊規約簡介支持的通訊規約有4種:(ASCII碼)研華ADAM兼容通訊協議、十六進制LC-02協議、MODBUS-ASCII、MODBUS-RTU。“MODBUS通訊協議說明”描述了串行口通訊的讀、寫命令格式及內部信

2、息數據的定義,數據計算,以便第三方開發使用。MODBUS通訊規約是與Modicon系統相兼容的Modbus通訊規約。二、MODBUS-ASCII通訊協議說明1、M?DBUS-ASCII協議中每個字節的位:1個起始位8個數據位,最小的有效位先發送無奇偶校驗位1個停止位錯誤檢測域:LRC(縱向冗長檢測)2、MODBUS-ASCII協議中的通訊波特率:1200,2400,4800,9600,19200BPS。3、MODBUS協議中的功能域代碼:功能碼含義功能03讀保持寄存器讀測量數據06預置單寄存器設置通訊地址、波特率、電壓、電流變比10預置多寄存器設置電能底數4、MODBUS-ASCII協議格式:

3、上位機發送::單元地址功能碼起始地址讀取點數LRC校驗CRLF下位機響應::單元地址功能碼字節數數據LRC校驗CRLF命令格式:呼叫:AAFFSSSSNNNNLL應答:AAFFXXHHHHLL其中:為起始符AA模塊地址1FF功能號SSSS起始通道NNNN通道數XX數據字節長度HHHH數據字節LL校驗和回車換行5、功能碼03:讀保持寄存器,讀測量數據數據起始地址:001E數據長度:10C,超出范圍無效;數據起始地址+數據長度不大于1F,超過范圍命令無效。說明:讀取的是16位數據,高位在前,低位在后。數據定義:見功能碼與數據對照表1。例1、讀測量數據:命令::010300000002LRC17字節

4、ADDR功能開始地址寄存器個數LRC校驗響應::01030464050101LRC19字節ADDR功能數據字節長度U0I0UBBIBBLRC校驗6、功能碼06:預臵單寄存器,設臵通訊地址、波特率、電壓、電流變比數據起始地址:0000或0001數據長度:01,不等于01命令無效。說明:設臵模塊通訊地址、波特率或設臵模塊電壓、電流變比。數據定義:見功能碼與數據對照表2。例2、預置模塊通訊地址、波特率(將1號模塊地址設置為2號,波特率為9600BPS)命令::010600000001020206LRCADDR功能開始地址寄存器個數字節計數預置數據LRC校驗響應::010600000001LRCADD

5、R功能開始地址寄存器個數LRC校驗例3、預置電壓、電流變比(將1號模塊的電壓變比設置為60,電流變比設置為20)命令::010600010001023C14LRCADDR功能開始地址寄存器個數字節計數預置數據LRC校驗響應::010600010001LRCADDR功能開始地址寄存器個數LRC校驗7、功能碼10:預臵多寄存器,設臵電能底數數據起始地址:0000數據長度:0C,不等于0C命令無效。說明:預置電能底數數據定義:見功能碼與數據對照表3。例4、預置電能底數命令:01100000000C18(DATA24*2字節)LRCADDR功能開始地址寄存器個數字節計數預置數據LRC校驗響應:0110

6、0000000CLRCADDR功能開始地址寄存器個數LRC校驗三、MODBUS-RTU通訊協議說明代碼系統:8位二進制,十六進制數0.9,A.F。每個8位的信息域中包含2個十六進制字符。2、MODBUS-RTU協議中每個字節的位:1個起始位8個數據位,最小的有效位先發送無奇偶校驗位2個停止位錯誤檢測域:CRC(循環冗長檢測)3、MODBUS-RTU協議中的通訊波特率:1200,2400,4800,9600,19200BPS。4、MODBUS協議中的功能域代碼:功能碼含義功能03讀保持寄存器讀測量數據06預置單寄存器設置通訊地址、波特率、電壓、電流變比10預置多寄存器設置電能底數5MODBUS-

7、RTU的幀結構:在RTU模式中,新的信息總是以至少3.5個字符的靜默時間開始。緊接著傳送第一個域:設備地址。整幀的信息必須以一個連續的數據流進行傳輸。如果信息結束前存在超過1.5個字符以上的間隔時間則出錯。一幀信息的標準結構如下:開始地址域功能域數據域CRC校驗結束T1-T2-T3-T48位8位n*8位16位T1-T2-T3-T4地址域:從機的有效地址范圍為0247,0為廣播地址功能域:有效編碼為1255數據域:數據域由多組這樣的數據構成:兩個十六進制數為一組,范圍在00FF之間。這些數據產生于一個RTU字符。主機發給從機的數據域中包括了從機完成功能域的動作時必須的附加信息。可能包括這樣一些項

8、目,如:數字寄存器和保持寄存器地址,將要處理的項目數量,和實際的數據字節數。例如:主機要求從機讀一組保持寄存器,數據域就指定了起始寄存器,需要讀多少個寄存器;如果主機要向從機中的一組寄存器寫入數值,數據域就規定了起始寄存器,要向多少個寄存器寫入數據,數據字節數,以及寫入寄存器什么樣的數據。CRC校驗:CRC生成后,低字節在前,高字節在后。5、功能碼03:讀保持寄存器,讀測量數據數據起始地址:0000001E數據長度:0001000C,超出范圍無效;數據起始地址+數據長度不大于1F,超過范圍命令無效。說明:讀取的是16位數據,高位在前,低位在后。數據定義:見功能碼與數據對照表1。例1、讀測量數據

9、:命令:010300000002CRC8字節ADDR功能開始地址寄存器個數CRC校驗響應:01030464050101CRC9字節ADDR功能字節計數U0I0UBBIBBCRC校驗6、功能碼06:預臵單寄存器,設臵通訊地址、波特率、電壓、電流變比數據起始地址:0000或0001數據長度:01,不等于01命令無效。說明:設臵模塊通訊地址、波特率或設臵模塊電壓、電流變比。數據定義:見功能碼與數據對照表2。例2、命令響應:010600000001020206CRCADDR功能開始地址寄存器個數字節計數預置數據CRC校驗010600000001CRCADDR功能開始地址寄存器個數CRC校驗預置模塊通訊

10、地址、波特率(將1號模塊地址設置為2號,波特率為9600BPS)例3、命令響應:010600010001023C14CRCADDR功能開始地址寄存器個數字節計數預臵數據CRC校驗010600010001CRCADDR功能開始地址寄存器個數CRC校驗預臵電壓、電流變比(將1號模塊的電壓變比設臵為60,電流變比設臵為20)7、功能碼10:預臵多寄存器,設臵電能底數數據起始地址:0000數據長度:oc,不等于0C命令無效。說明:預臵電能底數數據定義:見功能碼與數據對照表3。例4、預臵電能底數命令:01100000000C18(DATA24字節)CRCADDR功能開始地址寄存器個數字節計數預臵數據CR

11、C校驗響應:01100000000CCRCADDR功能開始地址寄存器個數CRC校驗四、MODBUS協議的功能碼與所對應的數據表表1:功能碼03H與數據對照表:地址數據內容數據說明0000U0,I0高8位數據*2后為電壓量程,低8位為電流量程0001UBB,IBB高8位為電壓變比,低8位為電流變比0002UAA相電壓0003IAA相電流0004UBB相電壓0005IBB相電流0006UCC相電壓0007ICC相電流0008P總有功功率0009Q總無功功率000ACOS總功率因數000BPAA相有功功率000CPBB相有功功率000DPCC相有功功率000EQAA相無功功率000FQBB相無功功率

12、0010QCC相無功功率0011F頻率0012正向有功總電能正向有功總電能48位計數器高16位0013正向有功總電能48位計數器中16位0014正向有功總電能48位計數器低16位0015反向有功總電能反向有功總電能48位計數器高16位0016反向有功總電能48位計數器中16位0017反向有功總電能48位計數器低16位0018正向無功總電能正向無功總電能48位計數器高16位0019正向無功總電能48位計數器中16位001A正向無功總電能48位計數器低16位001B反向無功總電能反向無功總電能48位計數器高16位001C反向無功總電能48位計數器中16位001D反向無功總電能48位計數器低16位0

13、01ES總視在功率表2:功能碼06H與數據對照表。地址數據內容數據說明0000ADDR,BPS高8位為模塊通訊地址,地址范圍為01F7H;低8位為通訊波特率,數值為0307H,表示120019200BPS0001UBB,IBB高8位為電壓變比,低8位為電流變比表3:功能碼10H與數據對照表。地址數據內容數據說明0000正向有功總電能正向有功總電能48位計數器高16位0001正向有功總電能48位計數器中16位0002正向有功總電能48位計數器低16位0003反向有功總電能反向有功總電能48位計數器高16位0004反向有功總電能48位計數器中16位0005反向有功總電能48位計數器低16位0006

14、正向無功總電能正向無功總電能48位計數器高16位0007正向無功總電能48位計數器中16位0008正向無功總電能48位計數器低16位0009反向無功總電能反向無功總電能48位計數器高16位000A反向無功總電能48位計數器中16位000B反向無功總電能48位計數器低16位五、的數據計算1、UA、IA、UB、IB、UC、IC、P、Q、COS、PA、PB、PC、QA、QB、QC,共15個參數。每個參數為2字節(16位)十六進制數據,高字節在前低字節在后;標稱滿量程值為10000(2710H)。其中P、Q、COS、PA、PB、PC、QA、QB、QC等9個參數為有符號數,其最高位(BIT15)為符號位

15、,1為負,0為正;計算時,先取出符號位(即判斷最高位作為此參數的符號,然后將最高位臵為0)后再計算。各個參數的含義及計算公式如下:(以下帶符號位的取出符號位)(UA)A相電壓值。實際值=(UA)/10000*(U0)*(UBB)V(UB)B相電壓值。實際值=(UB)/10000*(U0)*(UBB)V(Uc)C相電壓值。實際值=(UC)/10000*(U0)*(UBB)V(IA)(IB)A相電流值。實際值=(IA)/10000*(10)*(IBB)AB相電流值。實際值=(IB)/10000*(10)*(IBB)A(Ic)C相電流值。實際值=(IC)/10000*(10)*(IBB)A(P):總

16、有功功率值。實際值=+(P)/10000*3*(U0)*(10)*(UBB)*(IBB)W(Q):總無功功率值。實際值=+(Q)/10000*3*(U0)*(10)*(UBB)*(IBB)Var(cose):總功率因數值。實際叮+(cose叮ioooopf(PA):A相有功功率值。實際值=(PA)/10000*(U0)*(10)*(UBB)*(IBB)W(PB):B相有功功率值。實際值=(PB)/10000*(U0)*(10)*(UBB)*(IBB)W(PC):C相有功功率值。實際值=(PC)/10000*(U0)*(10)*(UBB)*(IBB)W(QA):A相無功功率值。實際值=(QA)/

17、10000*(U0)*(10)*(UBB)*(IBB)Var(QB):B相無功功率值。實際值=(QB)/10000*(U0)*(10)*(UBB)*(IBB)Var(QC):C相無功功率值。實際值=(QC)/10000*(U0)*(10)*(UBB)*(IBB)Var(F):頻率值。實際值=(F)/100Hz為線電壓UAB的頻率2、正向有功總電能、反向有功總電能、正向無功總電量、反向無功總電量,共24個字節,4個參數。每個參數為6字節(48位)十六進制數。反向有功總電能):正向無功總電量):實際值=(反向有功總電能)/10000*9*(U0)*(l0)*(UBB)*(IBB)/3000/360

18、0度實際值=(正向無功總電量)/10000*9*(U0)*(l0)*(UBB)*(IBB)/3000/3600度正向有功總電能):實際值=(正向有功總電能)/10000*9*(U0)*(l0)*(UBB)*(IBB)/3000/3600度(反向無功總電量):實際值=(反向無功總電量)/10000*9*(U0)*(l0)*(UBB)*(IBB)/3000/3600度(有功總電能)=(正向有功總電能)-(反向有功總電能)(無功總電能)=(正向無功總電能)-(反向無功總電能)3、配臵電量底數時輸出電能的計算每個參數為6字節(48位)十六進制數,各個參數的含義及計算如下:(正向有功總電能):=正向有功

19、總電能實際值(度)*3000*3600/(U0)/(l0)/(UBB)/(IBB)*10000/9(反向有功總電能):=反向有功總電能實際值(度)*3000*3600/(U0)/(I0)/(UBB)/(IBB)*10000/9(正向無功總電量):=正向無功總電量實際值(度)*3000*3600/(U0)/(I0)/(UBB)/(IBB)*10000/9(反向無功總電量):=反向無功總電量實際值(度)*3000*3600/(U0)/(I0)/(UBB)/(IBB)*10000/9六、MODBUS通訊規約介紹(一)MODBUS通訊規約簡介Modbus協議是應用于電子控制器上的一種通用語言。通過此協

20、議,控制器相互之間、控制器經由網絡(例如以太網)和其它設備之間可以通信。它已經成為一通用工業標準。有了它,不同廠商生產的控制設備可以連成工業網絡,進行集中監控。此協議定義了一個控制器能認識使用的消息結構,而不管它們是經過何種網絡進行通信的。它描述了一控制器請求訪問其它設備的過程,如果回應來自其它設備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和內容的公共格式。當在一Modbus網絡上通信時,此協議決定了每個控制器須要知道它們的設備地址,識別按地址發來的消息,決定要產生何種行動。如果需要回應,控制器將生成反饋信息并用Modbus協議發出。在其它網絡上,包含了Modbus協議的消息轉換為在此

21、網絡上使用的幀或包結構。這種轉換也擴展了根據具體的網絡解決節地址、路由路徑及錯誤檢測的方法。1、在Modbus網絡上轉輸標準的Modbus口是使用一RS-232C兼容串行接口,它定義了連接口的針腳、電纜、信號位、傳輸波特率、奇偶校驗。控制器能直接或經由Modem組網。控制器通信使用主從技術,即僅一設備(主設備)能初始化傳輸(查詢)。其它設備(從設備)根據主設備查詢提供的數據作出相應反應。典型的主設備:主機和可編程儀表。典型的從設備:可編程控制器。主設備可單獨和從設備通信,也能以廣播方式和所有從設備通信。如果單獨通信,從設備返回一消息作為回應,如果是以廣播方式查詢的,則不作任何回應。Modbus

22、協議建立了主設備查詢的格式:設備(或廣播)地址、功能代碼、所有要發送的數據、一錯誤檢測域。從設備回應消息也由Modbus協議構成,包括確認要行動的域、任何要返回的數據、和一錯誤檢測域。如果在消息接收過程中發生一錯誤,或從設備不能執行其命令,從設備將建立一錯誤消息并把它作為回應發送出去。(二)MODBUS的兩種傳輸方式控制器能設置為兩種傳輸模式(ASCII或RTU)中的任何一種在標準的Modbus網絡通信。用戶選擇想要的模式,包括串口通信參數(波特率、校驗方式等),在配置每個控制器的時候,在一個Modbus網絡上的所有設備都必須選擇相同的傳輸模式和串口參數。ASCII模式:地址功能代碼數據數量數

23、據1數據nLRC高字節LRC低字節回車換行RTU模式地址功能代碼數據數量數據1數據nCRC高字節CRC低字節所選的ASCII或RTU方式僅適用于標準的Modbus網絡,它定義了在這些網絡上連續傳輸的消息段的每一位,以及決定怎樣將信息打包成消息域和如何解碼。1、ASCII模式當控制器設為在網絡上以(美國標準信息交換代碼)模式通信,在消息中的每個字節都作為兩個字符發送。這種方式的主要優點是字符發送的時間間隔可達到秒而不產生錯誤。代碼系統:十六進制,字符,消息中的每個ASCII字符都是一個十六進制字符組成每個字節的位:1個起始位7個數據位,最小的有效位先發送1個奇偶校驗位,無校驗則無1個停止位(有校

24、驗時),2個Bit(無校驗時)錯誤檢測域:LRC(縱向冗長檢測)2、RTU模式當控制器設為在Modbus網絡上以RTU(遠程終端單元)模式通信,在消息中的每個8Bit字節包含兩個4Bit的十六進制字符。這種方式的主要優點是:在同樣的波特率下,可比ASCII方式傳送更多的數據。代碼系統8位二進制,十六進制數0.9,A.F消息中的每個8位域都是一個字節的兩個十六進制字符組成每個字節的位1個起始位8個數據位,最小的有效位先發送1個奇偶校驗位,無校驗則無1個停止位(有校驗時),2個Bit(無校驗時)錯誤檢測域CRC循環冗長檢測(三)Modbus消息幀兩種傳輸模式中(ASCII或RTU),傳輸設備以將M

25、odbus消息轉為有起點和終點的幀,這就允許接收的設備在消息起始處開始工作,讀地址分配信息,判斷哪一個設備被選中(廣播方式則傳給所有設備),判知何時信息已完成。部分的消息也能偵測到并且錯誤能設臵為返回結果。1、ASCII幀使用ASCII模式,消息以冒號(:)字符(ASCII碼3AH)開始,以回車換行符結束(ASCII碼ODH,0AH)。其它域可以使用的傳輸字符是十六進制的0.9,A.F。網絡上的設備不斷偵測“:”字符,當有一個冒號接收到時,每個設備都解碼下個域(地址域)來判斷是否發給自己的。消息中字符間發送的時間間隔最長不能超過1秒,否則接收的設備將認為傳輸錯誤。一個典型消息幀如下所示:起始位

26、設備地址功能代碼數據校驗結束符1個字符2個字符2個字符n個字符2個字符2個字符2、RTU幀使用RTU模式,消息發送至少要以3.5個字符時間的停頓間隔開始。在網絡波特率下多樣的字符時間,這是最容易實現的(如下圖的T1-T2-T3-T4所示)。傳輸的第一個域是設備地址。可以使用的傳輸字符是十六進制的0.9,A.F。網絡設備不斷偵測網絡總線,包括停頓間隔時間內。當第一個域(地址域)接收到,每個設備都進行解碼以判斷是否發往自己的。在最后一個傳輸字符之后,一個至少3.5個字符時間的停頓標定了消息的結束。一個新的消息可在此停頓后開始。整個消息幀必須作為一連續的流轉輸。如果在幀完成之前有超過1.5個字符時間

27、的停頓時間,接收設備將刷新不完整的消息并假定下一字節是一個新消息的地址域。同樣地,如果一個新消息在小于3.5個字符時間內接著前個消息開始,接收的設備將認為它是前一消息的延續。這將導致一個錯誤,因為在最后的CRC域的值不起始位設備地址功能代碼數據校驗結束符T1-T2-T3-T48Bit8Bitn個8Bit16BitT1-T2-T3-T43、地址域消息幀的地址域包含兩個字符(ASCII)或8Bit(RTU)。可能的從設備地址是0.247(十進制)。單個設備的地址范圍是1.247。主設備通過將要聯絡的從設備的地址放入消息中的地址域來選通從設備。當從設備發送回應消息時,它把自己的地址放入回應的地址域中

28、,以便主設備知道是哪一個設備作出回應。地址0是用作廣播地址,以使所有的從設備都能認識。當Modbus協議用于更高水準的網絡,廣播可能不允許或以其它方式代替。4、如何處理功能域消息幀中的功能代碼域包含了兩個字符(ASCII)或8Bits(RTU)。可能的代碼范圍是十進制的1.255。當然,有些代碼是適用于所有控制器,有此是應用于某種控制器,還有些保留以備后用。當消息從主設備發往從設備時,功能代碼域將告之從設備需要執行哪些行為。例如去讀取輸入的開關狀態,讀一組寄存器的數據內容,讀從設備的診斷狀態,允許調入、記錄、校驗在從設備中的程序等。當從設備回應時,它使用功能代碼域來指示是正常回應(無誤)還是有

29、某種錯誤發生(稱作異議回應)。對正常回應,從設備僅回應相應的功能代碼。對異議回應,從設備返回一等同于正常代碼的代碼,但最重要的位臵為邏輯1。例如:一從主設備發往從設備的消息要求讀一組保持寄存器,將產生如下功能代碼:00000011(十六進制03H)對正常回應,從設備僅回應同樣的功能代碼。對異議回應,它返回:10000011(十六進制83H)除功能代碼因異議錯誤作了修改外,從設備將一獨特的代碼放到回應消息的數據域中,這能告訴主設備發生了什么錯誤。主設備應用程序得到異議的回應后,典型的處理過程是重發消息,或者診斷發給從設備的消息并報告給操作員。5、數據域數據域是由兩個十六進制數集合構成的,范圍00

30、.FF。根據網絡傳輸模式,這可以是由一對ASCII字符組成或由一RTU字符組成。從主設備發給從設備消息的數據域包含附加的信息:從設備必須用于進行執行由功能代碼所定義的所為。這包括了象不連續的寄存器地址,要處理項的數目,域中實際數據字節數。例如,如果主設備需要從設備讀取一組保持寄存器(功能代碼03),數據域指定了起始寄存器以及要讀的寄存器數量。如果主設備寫一組從設備的寄存器(功能代碼10十六進制),數據域則指明了要寫的起始寄存器以及要寫的寄存器數量,數據域的數據字節數,要寫入寄存器的數據。如果沒有錯誤發生,從從設備返回的數據域包含請求的數據。如果有錯誤發生,此域包含一異議代碼,主設備應用程序可以

31、用來判斷采取下一步行動。在某種消息中數據域可以是不存在的(0長度)。例如,主設備要求從設備回應通信事件記錄(功能代碼0B十六進制),從設備不需任何附加的信息。6、錯誤檢測域標準的Modbus網絡有兩種錯誤檢測方法。錯誤檢測域的內容視所選的檢測方法而定。ASCII當選用ASCII模式作字符幀,錯誤檢測域包含兩個ASCII字符。這是使用LRC(縱向冗長檢測)方法對消息內容計算得出的,不包括開始的冒號符及回車換行符。LRC字符附加在回車換行符前面。RTU當選用RTU模式作字符幀,錯誤檢測域包含一16Bits值(用兩個8位的字符來實現)。錯誤檢測域的內容是通過對消息內容進行循環冗長檢測方法得出的。CRC域附加在消息的最后,添加時先是低字節然后是高字節。故CRC的高位字節是發送消息的最后一個字節。7、字符的連續傳輸當消息在標準的Modbus系列網絡傳輸時,每個字符或字節以如下方式發送(從左到右):最低有效位.最高有效位使用ASCII字符幀時,位的序列是:有奇偶無奇偶彳啟始位奇偶位停止位校驗啟始位停止位停止位使用RTU字符幀時,位的序列是:有奇偶校驗啟始位奇偶位|停止位無奇偶校驗啟始位丨5丨6丨7丨8丨停止位停止位(四)MODBUS通訊錯誤檢測方法標準的Modbus串行網絡采用兩種錯誤檢測方法。奇偶校驗對每個字符都可用,幀檢測

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論