绝色狂妃 仙魅 小说,雪鹰领主

99亚洲精品5在线观看_亚洲国产成人av无码中_在线看AV片得得的爱免费_羞羞视频直播_高潮国产激情对白视频_一区日韩国产精品_欧美日韩免费激情_亚洲高清一区二区a毛片9_草莓视频app下载_放荡的丰满少妇中文字幕

Modbus轉(zhuǎn)PROFIBUS

 
 

現(xiàn)場總線技術(shù)

 
 
 
 
Modbus總線協(xié)議

        工業(yè)控制已從單機(jī)控制走向集中監(jiān)控、集散控制,如今已進(jìn)入網(wǎng)絡(luò)時代,工業(yè)控制器連網(wǎng)也為網(wǎng)絡(luò)管理提供了方便。Modbus就是工業(yè)控制器的網(wǎng)絡(luò)協(xié)議中的一種。

1. 協(xié)議概述
物理層:傳輸方式:RS485
通訊地址:0-247
通訊波特率:可設(shè)定
通訊介質(zhì):屏蔽雙絞線
傳輸方式:主從半雙工方式
      協(xié)議在一根通訊線上使用應(yīng)答式連接(半雙工),這意味著在一根單獨的通訊線上信號沿著相反的兩個方向傳輸。首先,主計算機(jī)的信號尋址到一臺唯一的終端設(shè)備(從機(jī)),然后,在相反的方向上終端設(shè)備發(fā)出的應(yīng)答信號傳輸給主機(jī)。
      協(xié)議只允許在主計算機(jī)和終端設(shè)備之間,而不允許獨立的設(shè)備之間的數(shù)據(jù)交換,這就不會在它們初始化時占據(jù)通訊線路,而僅限于響應(yīng)到達(dá)本機(jī)的查詢信號。

      一個數(shù)據(jù)幀格式:1位起始位,8位數(shù)據(jù),1位或者無奇偶檢驗位、1位或者2位停止位。

      一個數(shù)據(jù)包格式:

地址

功能碼

數(shù)據(jù)

校驗碼

8-Bits

8-Bits

N x 8-Bits

16-Bits

      協(xié)議詳細(xì)定義了校驗碼、數(shù)據(jù)格式、功能碼等,這些都是特定數(shù)據(jù)交換的必要內(nèi)容。

      當(dāng)數(shù)據(jù)幀到達(dá)終端設(shè)備時,它通過一個簡單的“口”進(jìn)入尋址到的設(shè)備,該設(shè)備去掉數(shù)據(jù)幀的“信封”(數(shù)據(jù)頭),讀取數(shù)據(jù),如果沒有錯誤,就執(zhí)行數(shù)據(jù)所請求的任務(wù),然后,它將自己生成的數(shù)據(jù)加入到取得的“信封”中,把數(shù)據(jù)幀返回給發(fā)送者。返回的響應(yīng)數(shù)據(jù)中包含了以下內(nèi)容:終端從機(jī)地址(Address)、被執(zhí)行了的命令(Function)、執(zhí)行命令生成的被請求數(shù)據(jù)(Data)和一個校驗碼(Check)。發(fā)生任何錯誤都不會有成功的響應(yīng)。

 

1.1 地址(Address)域
      地址域在幀的開始部分,由8位(0 ~ 255)組成,這些位標(biāo)明了用戶指定的終端設(shè)備的地址,該設(shè)備將接收來自與之相連的主機(jī)數(shù)據(jù)。每個終端設(shè)備的地址必須是唯一的,僅僅被尋址到的終端會響應(yīng)包含了該地址的查詢。當(dāng)終端發(fā)送回一個響應(yīng),響應(yīng)中的從機(jī)地址數(shù)據(jù)便告訴了主機(jī)哪臺終端正與之進(jìn)行通信。

 

1.2 功能(Function)域
      功能域代碼告訴了被尋址到的終端執(zhí)行何種功能。表1-1列出了部分常用的功能碼、它們的意義及它們的初始功能。

表1-1 功能碼

代碼

意義

行為

03

讀保持寄存器

獲得一個或多個寄存器的當(dāng)前二進(jìn)制值

06

預(yù)置單個寄存器

放置一個特定的二進(jìn)制值到一個寄存器中

16

預(yù)置多個寄存器

放置特定的二進(jìn)制值到一系列寄存器中

 

1.3 數(shù)據(jù)域
      數(shù)據(jù)域包含了終端執(zhí)行特定功能所需要的數(shù)據(jù)或者終端響應(yīng)查詢時采集到的數(shù)據(jù)。這些數(shù)據(jù)的內(nèi)容可能是數(shù)值、參考地址或者極限值。例如:功能域代碼告訴終端讀取一個寄存器,數(shù)據(jù)域則需要指明從哪個寄存器開始及讀取多少個數(shù)據(jù),內(nèi)嵌的地址和數(shù)據(jù)依照類型和從機(jī)之間的不同能力而有所不同。

 

1.4 校驗域
      該域允許主機(jī)和終端檢查傳輸過程中的錯誤。有時,由于電噪聲和其它干擾,一組數(shù)據(jù)在從一個設(shè)備傳輸?shù)搅硪粋設(shè)備時在線路上可能會發(fā)生一些改變,出錯校驗?zāi)軌虮WC主機(jī)或者終端不去響應(yīng)那些傳輸過程中發(fā)生了改變的數(shù)據(jù),這就提高了系統(tǒng)的安全性和效率,出錯校驗使用了16位循環(huán)冗余的方法。
[注] 發(fā)送序列總是相同的 – 地址、功能碼、數(shù)據(jù)和與方向相關(guān)的出錯校驗。

 

1.5 錯誤檢測
      循環(huán)冗余校驗(CRC)域占用兩個字節(jié),包含了一個16位的二進(jìn)制值。CRC值由傳
送設(shè)備計算出來,然后附加到數(shù)據(jù)幀上,接收設(shè)備在接收數(shù)據(jù)時重新計算CRC值,然后與接收到的CRC域中的值進(jìn)行比較,如果這兩個值不相等,就發(fā)生了錯誤。
      CRC運(yùn)算時,首先將一個16位的寄存器預(yù)置為全1,然后連續(xù)把數(shù)據(jù)幀中的8位字節(jié)與該寄存器的當(dāng)前值進(jìn)行運(yùn)算,僅僅每個字節(jié)的8個數(shù)據(jù)位參與生成CRC,起始位和停止位以及可能使用的奇偶位都不影響CRC。
在生成CRC時,每個8位字節(jié)與寄存器中的內(nèi)容進(jìn)行異或,然后將結(jié)果向低位移位,高位則用“0”補(bǔ)充,最低位(LSB)移出并檢測,如果是1,該寄存器就與一個預(yù)設(shè)的固定值進(jìn)行一次異或運(yùn)算,如果最低位為0,不作任何處理。
      上述處理重復(fù)進(jìn)行,直到執(zhí)行完了8次移位操作,當(dāng)最后一位(第8位)移完以后,下一個8位字節(jié)與寄存器的當(dāng)前值進(jìn)行異或運(yùn)算,同樣進(jìn)行上述的另一個8次移位異或操作,當(dāng)數(shù)據(jù)幀中的所有字節(jié)都作了處理,生成的最終值就是CRC值。
生成一個CRC的流程為:

  1. 預(yù)置一個16位寄存器為0FFFFH(全1),稱之為CRC寄存器。
  2. 把數(shù)據(jù)幀中的第一個8位字節(jié)與CRC寄存器中的低字節(jié)進(jìn)行異或運(yùn)算,結(jié)果存回CRC寄存器。將CRC寄存器向右移一位,最高位填以0,最低位移出并檢測。
  3. 如果最低位為0:重復(fù)第2步(下一次移位)。

如果最低位為1:將CRC寄存器與一個預(yù)設(shè)的固定值(0A001H)進(jìn)行異或運(yùn)算。

  1. 重復(fù)第2步和第3步直到8次移位。這樣處理完了一個完整的八位。
  2. 重復(fù)第2步到第4步來處理下一個八位,直到所有的字節(jié)處理結(jié)束。
  3. 最終CRC寄存器的值就是CRC的值。

 

2. 應(yīng)用層功能詳解
2.1 讀保持寄存器(功能碼03)
2.1.1 查詢
      功能碼03H允許用戶讀取多個保持寄存器的內(nèi)容。主站設(shè)備可設(shè)從保持寄存器的任何起始地址讀取多個寄存器的值。表2-1的例子是從03號從機(jī)讀3個數(shù)據(jù)U1,U2,U3, 其中U1的地址為0001H, U2的地址為0002H, U3的地址為0003H,即寄存器起始地址為0001H,數(shù)據(jù)個數(shù)為0003H。

表2-1 讀U1、U2、U3的查詢數(shù)據(jù)幀

地址

功能碼

變量起始
地址高字節(jié)

變量起始
地址低字節(jié)

變量的個
數(shù)高字節(jié)

變量的個
數(shù)低字節(jié)

校對驗碼
低字節(jié)

校對驗碼
高字節(jié)

03H

03H

00H

01H

00H

03H

55H

E9H

 

2.1.2 響應(yīng)
      響應(yīng)包含從機(jī)地址、功能碼、數(shù)據(jù)的數(shù)量和CRC錯誤校驗。表2-2的例子是讀取U1,U2,U3的響應(yīng)。

表2-2 讀U1,U2,U3 的響應(yīng)數(shù)據(jù)幀

地址

功能

變量
的總
字節(jié)
數(shù)?

變量
值高
字節(jié)

變量
值低
字節(jié)

變量
值高
字節(jié)

變量
值低
字節(jié)

變量
值高
字節(jié)

變量
值低
字節(jié)

校對
驗碼
低字
節(jié)

校對
驗碼
高字
節(jié)

03H

03H

06H

01H

7CH

01H

7DH

01H

7CH

F9H

9BH

 

2.2 預(yù)置多個寄存器(功能碼10)
2.2.1 查詢
      功能碼10H允許用戶改變多個寄存器的內(nèi)容,設(shè)備可從任何地址開始設(shè)置多個變量的值。表2-3的例子是修改3號從站設(shè)備的負(fù)載監(jiān)控1和負(fù)載監(jiān)控2的動作及延時時間的設(shè)定值,其中負(fù)載監(jiān)控1的動作設(shè)定值地址為2AH,延時時間的設(shè)定值為2BH,負(fù)載監(jiān)控2的動作設(shè)定值地址為2CH,延時時間的設(shè)定值為2DH。

表2-3 修改負(fù)載監(jiān)控1和負(fù)載監(jiān)控2的動作值及延時時間的設(shè)定值

地址



變量
起始
地址
高字
節(jié)

變量
起始
地址
低字
節(jié)

變量
的個
數(shù)高
字節(jié)

變量
的個
數(shù)低
字節(jié)

變量
的總
字節(jié)
數(shù)

變量
值高
字節(jié)

變量
值低
字節(jié)

變量
值高
字節(jié)

變量
值低
字節(jié)

變量
值高
字節(jié)

變量
值低
字節(jié)

變量
值高
字節(jié)

變量
值低
字節(jié)

校對
驗碼
低字
節(jié)

校對
驗碼
高字
節(jié)

03H

10H

00H

2AH

00H

04H

08H

07H

D0H

00H

0AH

07H

D0H

00H

0AH

25H

7CH

 

2.2.2 響應(yīng)
      響應(yīng)包含從機(jī)地址、功能碼、數(shù)據(jù)的數(shù)量和CRC錯誤校驗。表2-4的例子是修改負(fù)載監(jiān)控1和負(fù)載監(jiān)控2的動作值及延時時間的設(shè)定值的響應(yīng)。

表2-4 修改負(fù)載監(jiān)控1和負(fù)載監(jiān)控2的動作值及延時時間的設(shè)定值的響應(yīng)

地址

功能碼

變量起始
地址高字節(jié)

變量起始
地址低字節(jié)

變量的個
數(shù)高字節(jié)

變量的個
數(shù)低字節(jié)

校對驗碼
低字節(jié)

校對驗碼
高字節(jié)

03

10H

00H

2AH

00H

04H

EBH

8DH

 

2.3 預(yù)置單個寄存器(功能碼06)
2.3.1查詢
      功能碼06允許用戶改變單個寄存器的內(nèi)容。表2-5的例子是修改03號從機(jī)過載動作設(shè)定值Ir1,其中Ir1地址是002EH.

表2-5 修改過載動作設(shè)定值Ir1

地址

功能碼

變量起始
地址高字節(jié)

變量起始
地址低字節(jié)

變量值
高字節(jié)

變量值低
字節(jié)

校對驗碼
低字節(jié)

校對驗碼
高字節(jié)

03H

06H

00H

2EH

07H

D0H

EBH

8DH

 

2.3.2響應(yīng)
      對于預(yù)置單個寄存器請求的正常響應(yīng)是在寄存器值改變以后將接收到的數(shù)據(jù)傳送回去。

表2-6 修改過載動作設(shè)定值Ir1響應(yīng)

地址

功能碼

變量起始
地址高字節(jié)

變量起始
地址低字節(jié)

變量值高
字節(jié)

變量值低
字節(jié)

校對驗碼
低字節(jié)

校對驗碼
高字節(jié)

03H

06H

00H

2EH

07H

D0H

EBH

8DH



 
上海泗博自動化技術(shù)有限公司  Copyright(c) 2005-2021   SiboTech.net All Rights Reserved 
foot
公司總機(jī): 021-6482 6558    |   滬ICP備15057390號