日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

當(dāng)前位置:機電之家首頁 >> PLC技術(shù)>> PLC基礎(chǔ) >> PLC通信 >> MODBUS協(xié)議簡述及通訊應(yīng)用格式詳解
MODBUS協(xié)議簡述及通訊應(yīng)用格式詳解

在本章主要講述如何利用軟件通過通訊口來操控該系列儀表。本章內(nèi)容的掌握需要您具有MODBUS協(xié)議的知識儲備并且通讀了本冊其它章節(jié)所有內(nèi)容,對本產(chǎn)品功能和應(yīng)用概念有較全面了解。
本章內(nèi)容包括:MODBUS協(xié)議簡述,通訊應(yīng)用格式詳解,本機的應(yīng)用細節(jié)及參量地址表。
 
1.1          MODBUS協(xié)議簡述
ACRXXXE系列儀表使用的是MODBUS-RTU通訊協(xié)議,MODBUS協(xié)議詳細定義了校驗碼、數(shù)據(jù)序列等,這些都是特定數(shù)據(jù)交換的必要內(nèi)容。MODBUS協(xié)議在一根通訊線上使用主從應(yīng)答式連接(半雙工),這意味著在一根單獨的通訊線上信號沿著相反的兩個方向傳輸。首先,主計算機的信號尋址到一臺唯一的終端設(shè)備(從機),然后,終端設(shè)備發(fā)出的應(yīng)答信號以相反的方向傳輸給主機。
MODBUS協(xié)議只允許在主機(PC,PLC等)和終端設(shè)備之間通訊,而不允許獨立的終端設(shè)備之間的數(shù)據(jù)交換,這樣各終端設(shè)備不會在它們初始化時占據(jù)通訊線路,而僅限于響應(yīng)到達本機的查詢信號。
 
1.2          查詢—回應(yīng)周期
 
1.2.1           查詢
查詢消息中的功能代碼告之被選中的從設(shè)備要執(zhí)行何種功能。數(shù)據(jù)段包含了從設(shè)備要執(zhí)行功能的任何附加信息。例如功能代碼03是要求從設(shè)備讀保持寄存器并返回它們的內(nèi)容。數(shù)據(jù)段必須包含要告之從設(shè)備的信息:從何寄存器開始讀及要讀的寄存器數(shù)量。錯誤檢測域為從設(shè)備提供了一種驗證消息內(nèi)容是否正確的方法。
1.2.2           回應(yīng)
如果從設(shè)備產(chǎn)生一正常的回應(yīng),在回應(yīng)消息中的功能代碼是在查詢消息中的功能代碼的回應(yīng)。數(shù)據(jù)段包括了從設(shè)備收集的數(shù)據(jù):如寄存器值或狀態(tài)。如果有錯誤發(fā)生,功能代碼將被修改以用于指出回應(yīng)消息是錯誤的,同時數(shù)據(jù)段包含了描述此錯誤信息的代碼。錯誤檢測域允許主設(shè)備確認消息內(nèi)容是否可用。
 
1.3          傳輸方式
傳輸方式是指一個數(shù)據(jù)幀內(nèi)一系列獨立的數(shù)據(jù)結(jié)構(gòu)以及用于傳輸數(shù)據(jù)的有限規(guī)則,下面定義了與MODBUS 協(xié)議– RTU方式相兼容的傳輸方式。
每個字節(jié)的位:
·   1個起始位
·   8個數(shù)據(jù)位,最小的有效位先發(fā)送
·   無奇偶校驗位
·   1個停止位
錯誤檢測(Error checking):CRC(循環(huán)冗余校驗)
 
1.4          協(xié)議
當(dāng)數(shù)據(jù)幀到達終端設(shè)備時,它通過一個簡單的“端口”進入被尋址到的設(shè)備,該設(shè)備去掉數(shù)據(jù)幀的“信封”(數(shù)據(jù)頭),讀取數(shù)據(jù),如果沒有錯誤,就執(zhí)行數(shù)據(jù)所請求的任務(wù),然后,它將自己生成的數(shù)據(jù)加入到取得的“信封”中,把數(shù)據(jù)幀返回給發(fā)送者。返回的響應(yīng)數(shù)據(jù)中包含了以下內(nèi)容:終端從機地址(Address)、被執(zhí)行了的命令(Function)、執(zhí)行命令生成的被請求數(shù)據(jù)(Data)和一個校驗碼(Check)。發(fā)生任何錯誤都不會有成功的響應(yīng),或者返回一個錯誤指示幀。
 
1.4.1           數(shù)據(jù)幀格式
 
Address
Function
Data
Check
8-Bits
8-Bits
N x 8-Bits
16-Bits
 
 
1.4.2           地址(Address)域
地址域在幀的開始部分,由一個字節(jié)(8位二進制碼)組成,十進制為0~255,在我們的系統(tǒng)中只使用1~247,其它地址保留。這些位標明了用戶指定的終端設(shè)備的地址,該設(shè)備將接收來自與之相連的主機數(shù)據(jù)。每個終端設(shè)備的地址必須是唯一的,僅僅被尋址到的終端會響應(yīng)包含了該地址的查詢。當(dāng)終端發(fā)送回一個響應(yīng),響應(yīng)中的從機地址數(shù)據(jù)便告訴了主機哪臺終端正與之進行通信。
 
1.4.3           功能(Function)域
功能域代碼告訴了被尋址到的終端執(zhí)行何種功能。下表列出了該系列儀表用到的功能碼,以及它們的意義和功能。
代碼
意義
行為
03
讀數(shù)據(jù)寄存器
獲得一個或多個寄存器的當(dāng)前二進制值
16
預(yù)置多寄存器
設(shè)定二進制值到一系列多寄存器中(不對ACRXXXE開放)
 
1.4.4           數(shù)據(jù)(Data)域
數(shù)據(jù)域包含了終端執(zhí)行特定功能所需要的數(shù)據(jù)或者終端響應(yīng)查詢時采集到的數(shù)據(jù)。這些數(shù)據(jù)的內(nèi)容可能是數(shù)值、參考地址或者設(shè)置值。例如:功能域碼告訴終端讀取一個寄存器,數(shù)據(jù)域則需要指明從哪個寄存器開始及讀取多少個數(shù)據(jù),內(nèi)嵌的地址和數(shù)據(jù)依照類型和從機之間的不同內(nèi)容而有所不同。
 
1.4.5           錯誤校驗(Check)域
該域允許主機和終端檢查傳輸過程中的錯誤。有時,由于電噪聲和其它干擾,一組數(shù)據(jù)在從一個設(shè)備傳輸?shù)搅硪粋€設(shè)備時在線路上可能會發(fā)生一些改變,出錯校驗?zāi)軌虮WC主機或者終端不去響應(yīng)那些傳輸過程中發(fā)生了改變的數(shù)據(jù),這就提高了系統(tǒng)的安全性和效率,錯誤校驗使用了16位循環(huán)冗余的方法(CRC16)。
 
1.5          錯誤檢測的方法
錯誤校驗(CRC)域占用兩個字節(jié),包含了一個16位的二進制值。CRC值由傳輸設(shè)備計算出來,然后附加到數(shù)據(jù)幀上,接收設(shè)備在接收數(shù)據(jù)時重新計算CRC值,然后與接收到的CRC域中的值進行比較,如果這兩個值不相等,就發(fā)生了錯誤。
CRC運算時,首先將一個16位的寄存器預(yù)置為全1,然后連續(xù)把數(shù)據(jù)幀中的每個字節(jié)中的8位與該寄存器的當(dāng)前值進行運算,僅僅每個字節(jié)的8個數(shù)據(jù)位參與生成CRC,起始位和終止位以及可能使用的奇偶位都不影響CRC。在生成CRC時,每個字節(jié)的8位與寄存器中的內(nèi)容進行異或,然后將結(jié)果向低位移位,高位則用“0”補充,最低位(LSB)移出并檢測,如果是1,該寄存器就與一個預(yù)設(shè)的固定值(0A001H)進行一次異或運算,如果最低位為0,不作任何處理。
上述處理重復(fù)進行,直到執(zhí)行完了8次移位操作,當(dāng)最后一位(第8位)移完以后,下一個8位字節(jié)與寄存器的當(dāng)前值進行異或運算,同樣進行上述的另一個8次移位異或操作,當(dāng)數(shù)據(jù)幀中的所有字節(jié)都作了處理,生成的最終值就是CRC值。
生成一個CRC的流程為:
1            預(yù)置一個16位寄存器為0FFFFH(全1),稱之為CRC寄存器。
2            把數(shù)據(jù)幀中的第一個字節(jié)的8位與CRC寄存器中的低字節(jié)進行異或運算,結(jié)果存回CRC寄存器。
3            將CRC寄存器向右移一位,最高位填以0,最低位移出并檢測。
4            如果最低位為0:重復(fù)第三步(下一次移位);如果最低位為1:將CRC寄存器與一個預(yù)設(shè)的固定值(0A001H)進行異或運算。
5            重復(fù)第三步和第四步直到8次移位。這樣處理完了一個完整的八位。
6            重復(fù)第2步到第5步來處理下一個八位,直到所有的字節(jié)處理結(jié)束。
7       最終CRC寄存器的值就是CRC的值。
此外還有一種利用預(yù)設(shè)的表格計算CRC的方法,它的主要特點是計算速度快,但是表格需要較大的存儲空間,該方法此處不再贅述,請參閱相關(guān)資料。
 
1.6          通訊應(yīng)用格式祥解
本節(jié)所舉實例將盡可能的使用如圖所示的格式,(數(shù)字為16進制)。
Addr
Fun
Data start  reg hi
Data start  reg lo
Data #of regs hi
Data #of regs lo
CRC16 lo
CRC16hi
01H
03H
00H
00H
00H
03H
05H
CBH
Addr:從機地址
Fun:功能碼
Data start reg hi:數(shù)據(jù)起始地址 寄存器高字節(jié)
Data start reg lo:數(shù)據(jù)起始地址 寄存器低字節(jié)
Data #of reg hi:數(shù)據(jù)讀取個數(shù) 寄存器高字節(jié)
Data #of reg lo:數(shù)據(jù)讀取個數(shù) 寄存器低字節(jié)
CRC16 Hi: 循環(huán)冗余校驗 高字節(jié)
CRC16 L 循環(huán)冗余校驗 低字節(jié)
 
1.6.1           讀數(shù)據(jù)(功能碼03)
l         查詢數(shù)據(jù)幀
此功能允許用戶獲得設(shè)備采集與記錄的數(shù)據(jù)及系統(tǒng)參數(shù)。主機一次請求的數(shù)據(jù)個數(shù)沒有限制,但不能超出定義的地址范圍。
下面的例子是從01號從機讀3個采集到的基本數(shù)據(jù)(數(shù)據(jù)幀中每個地址占用2個字節(jié))UA、UB、UC,其中UA的地址為0025H, UB的地址為0026H, UC的地址為0027H。
Addr
 Fun
Data start
Addr hi
Datastart
Addr lo
Data#of
regs hi
Data #of
regs lo
CRC16 lo
CRC16 hi
01H
03H
00H
25H
00H
03H
14H
00H
l         響應(yīng)數(shù)據(jù)幀
響應(yīng)包含從機地址、功能碼、數(shù)據(jù)的數(shù)量和CRC錯誤校驗。
下面的例子是讀取UA、UB、UC (UA=082CH,UB=082AH,UC=082CH的響應(yīng)。
Addr
Fun
Byte count
Data1 hi
Data1 lo
Data2 hi
Data2 lo
Data3 hi
Data3 lo
CRC16 lo
CRC16 hi
01H
03H
06H
08H
2CH
08H
2AH
08H
2CH
94H
4EH
l         錯誤指示碼
如果主機請求的地址不存在則返回錯誤指示碼:FFH。
1.6.2           預(yù)置多寄存器(功能碼16,不對ACRXXXE開放)
l         查詢數(shù)據(jù)幀
         功能碼16允許用戶改變多個寄存器的內(nèi)容,該儀表中系統(tǒng)參數(shù)、開關(guān)量輸出狀態(tài)等可用此功能號寫入。主機一次最多可以寫入16個(32字節(jié))數(shù)據(jù)。
 下面的例子是預(yù)置ACR220EK、ACR320EFK及ACR420EK地址都為1時同時輸出開關(guān)量Do1和Do2。
ACR220EK:
Addr
Fun
Data Start reg hi
Data start reg lo
Data #of regs hi
Data #of regs lo
Bytecount
Value hi
Value lo
CRC lo
CRC hi
01H
10H
00H
22H
00H
01H
02 H
30H
00H
B4H
D2H
ACR420EK:
Addr
Fun
Data Start reg hi
Data start reg lo
Data #of regs hi
Data #of regs lo
Bytecount
Value hi
Value lo
CRC lo
CRC hi
01H
10H
00H
22H
00H
01H
02 H
C0H
00H
F0H
D2H
ACR320EFK:
Addr
Fun
Data Start reg hi
Data start reg lo
Data #of regs hi
Data #of regs lo
Value hi
Value lo
CRC lo
CRC hi
01H
10H
00H
05H
00H
01H
00H
C0H
0DH
96H
 
l         響應(yīng)數(shù)據(jù)幀
對于預(yù)置單寄存器請求的正常響應(yīng)是在寄存器值改變以后回應(yīng)機器地址、功能號、數(shù)據(jù)起始地址、數(shù)據(jù)個數(shù)(ACR320EFK為數(shù)據(jù)字節(jié)數(shù))、CRC校驗碼。如圖。
ACR220EK和ACR420EK:
Addr
Fun
Data start reg hi
Data start reg lo
Data #of regs hi
Data #of regs lo
CRC16 lo
CRC16 hi
01H
10H
00H
22H
00H
01H
A1H
C3H
 
ACR320EFK:
Addr
Fun
Data start reg hi
Data start reg lo
Bytecount
CRC16 lo
CRC16 hi
01H
10H
00H
05H
02H
9FH
91H
 
l         錯誤指示碼
如果主機請求的地址不存在或數(shù)據(jù)個數(shù)不正確則返回錯誤指示碼:FFH。
 
1.7          ACRXXXE的應(yīng)用細節(jié)及參量地址表
該系列測量值用Modbus-RTU 通訊規(guī)約的03號命令讀出。
通訊值與實際值之間的對應(yīng)關(guān)系如下表:(約定Val_t為通訊讀出值,Val_s為實際值)
適用參量
對應(yīng)關(guān)系
單位
電壓值UA、UB、UC
Val_s=(Val_t /10000)*(10^DPT)
伏(V)
電流值IA、IB、IC

sign
Val_s=(Val_t /10000)*(10^DCT) 字串4

安培(A)
功率值PA、 PB、 PC、P、 QA、 QB、QC、Q
Val_s=(-1)  (Val_t /10000)*(10^DPQ)
瓦(W)、
乏(Var)
電度量一次側(cè)值EpI、 EpE、EqL、EqC
Val_s=Val_t*PT*CT
瓦時(wh)
乏時(varh)
功率因數(shù)值PFA、PFB、PFC、PFS
Val_s=Val_t / 1000
無單位
頻率FR
Val_s=Val_t / 100
赫茲(Hz)
范例:UA的通訊讀出值為08C6H(2246),DPT為5,則UA的實際值
Va =(2246/10000)*(10^5) = 22.46KV。
                    IA的通訊讀出值為0FA0H(4000),DCT為3,則IA的實際值
Ia =(4000/10000)*(10^3) = 400.0A。
 
幾點說明:
1           數(shù)據(jù)類型:“BYTE”指1個字節(jié);“word” 指16位無符號整數(shù);“Integer”指16位有符號整數(shù);“Dword” 指32位無符號整數(shù),“Fword”指32位浮點數(shù)。
2           讀寫屬性:“R”只讀,讀參量用03H號命令;“R/W”可讀可寫,寫系統(tǒng)參量用10H號命令。禁止向未列出的或不具可寫屬性的地址寫入。
3                    波特率的設(shè)定范圍4800 bps,9600 bps,19200 bps,38400 bps.在此范圍外的設(shè)定是不允許的。如果寫入超范圍的設(shè)定值,儀表會啟用默認波特率:38400 bps。
4           ACR320EFK所測電能值均為二次側(cè)電能。高字節(jié)在前,低字節(jié)在后,單位WH 或VARH, 統(tǒng)計一次側(cè)電能數(shù)據(jù)的時候,請乘以相應(yīng)的變比。例如10KV/100V,75A/5A 的儀表,請在計量抄表的數(shù)據(jù)乘以PT=100和CT=15 的乘積1500。
5           ACR320EFK提供4 路開關(guān)量輸入功能和2路繼電器開關(guān)量輸出功能。4 路開關(guān)輸入是采用濕接點電阻開關(guān)信號輸入方式,儀表內(nèi)部配備+5V 的工作電源,無須外部供電。當(dāng)外部接通的時候,經(jīng)過儀表開關(guān)輸入模塊DI 采集其為接通信息、顯示為1;當(dāng)外部斷開的時候,經(jīng)過儀表開關(guān)輸入模塊DI 采集其為斷開信息、顯示為0。開關(guān)量輸入模塊不僅能夠采集和顯示本地的開關(guān)信息,同時可以通過儀表的數(shù)字接口RS485 實現(xiàn)遠程傳輸功能,即“遙信”功能;2路繼電器輸出功能可用于各種場所下的報警指示、保護控制等輸出功能。在開關(guān)輸出有效的時候,繼電器輸出導(dǎo)通,顯示為1;開關(guān)輸出關(guān)閉的時候,顯示為0,繼電器輸出關(guān)斷。
 
6           ACRXXXE(K)電度一次側(cè)時的值采用浮點變量數(shù)據(jù)類型。它用符號位表示數(shù)的符號,用階碼和尾數(shù)表示數(shù)的大小。儀表采用的數(shù)據(jù)格式為IEEE754數(shù)據(jù)格式具有24位精度,尾數(shù)的高位始終為“1”,因而不保存,位的分布如下
●        1位符號位;
●        8位指數(shù)位;
●        23位尾數(shù)。
符號位是最高位,尾數(shù)為最低的23位,按字節(jié)描述如下:
地址
+0
+1
+2
+3
內(nèi)容
SEEE EEEE
EMMM MMMM
MMMM MMMM
MMMM MMMM
其中,     S:符號位,1表示負,0表示正;
E:階碼(在兩個字節(jié)中)偏移為127;
M:23位尾數(shù),最高位為“1”。
具體舉例如下:
讀出0 10001110 100 1011 1010 1100 0000 0000B
0             代表符號位,“1”為負,“0”為正;
10001110 為計算指數(shù),設(shè)為a, a為10進制,a為142;
100 1011 1010 1100 0000 0000 為計算尾數(shù),設(shè)為b,b為10進制,b為4959232。
計算公式:
                  一次側(cè)電量= 
上例計算結(jié)果為:
 ==52140
作者:未知 點擊:1700次 [打印] [關(guān)閉] [返回頂部]
本文標簽:MODBUS協(xié)議簡述及通訊應(yīng)用格式詳解
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《MODBUS協(xié)議簡述及通訊應(yīng)用格式詳解》相關(guān)權(quán)利人與機電之家網(wǎng)取得聯(lián)系。
電子樣本

SN系列樣冊
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個人求購

倪高純 【求購】  超聲波液位...  2025-12-24
戴先生 【求購】  美孚s-2...  2025-12-23
李先生 【求購】  一體化消防...  2025-12-22
何經(jīng)理 【求購】  亨通電纜  2025-12-22
肖先生 【求購】  氣缸LCR...  2025-12-22
王嘉文 【求購】  減速機  2025-12-22
付先生 【求購】  循環(huán)水處理  2025-12-22
楊金軍 【求購】  玉柴船用發(fā)...  2025-12-22
VIP公司推薦