提供商
北京漢晟普源科技有限公司資料大小
17.7KB資料圖片
下載次數(shù)
573次資料類型
WINRAR 壓縮文檔瀏覽次數(shù)
9354次
北京漢晟普源科技有限公司
HSPY系列可編程穩(wěn)壓電源通訊協(xié)議
HSPY系列儀表采用RS232或者RS485傳輸標準與計算機通迅,詳細資料如下:
注(本機只支持功能碼03,10)
波特率:1200,2400,4800,9600,19200
起始位:1
數(shù)據(jù)位:8
校驗位:無
停止位:1
一.MODBUS_RTU幀結(jié)構(gòu)
消息發(fā)送至少要以3.5個字符時間的停頓間隔開始;整個消息幀必須作為一連續(xù)的數(shù)據(jù)傳輸流,如果在幀完成之前有超過3.5個字符時間的停頓時間,接收設(shè)備將刷新不完整的消息并假定下一字節(jié)是一個新消息的地址域。同樣地,如果一個新消息在小于3.5個字符時間內(nèi)接著前個消息開始,接收的設(shè)備將認為它是前一消息的延續(xù)。
一幀信息的標準結(jié)構(gòu)如下所示:
開始 | 地址域 | 功能域 | 數(shù)據(jù)域 | CRC校驗 | 結(jié)束 |
T1-T2-T3-T4 | 8Bit | 8Bit | n個8Bit | 16Bit | T1-T2-T3-T4 |
地址域: 主機通過將要聯(lián)絡(luò)的從機的地址放入消息中的地址域來選通從設(shè)備,單個從機的地址范圍是1…15(十進制)。
地址0是用作廣播地址,以使所有的從機都能認識。
功能域:有效的編碼范圍是1…255(十進制);當消息從主機發(fā)往從機時,功能代碼將告之從機需要去干什么。例如:讀/寫一組寄存器的數(shù)據(jù)內(nèi)容等。
數(shù)據(jù)域:主機發(fā)給從機的數(shù)據(jù)域中包含了從機完成功能域的動作時所必要的附加信息;如:寄存器地址等。
CRC校驗:CRC生成之后,低字節(jié)在前,高字節(jié)在后。
注:本儀表通訊時幀與幀之間的響應(yīng)間隔,通訊速率大于等于9600bps時不大于5ms
序號 | 名稱 | 說明 | 范圍 | 小數(shù)點位數(shù) | 讀寫 | 參數(shù)通訊地址 |
1 | Set-U | 電源的電壓設(shè)定值 | 0-65535 | 2 | r/w | 1000H |
2 | Set-I | 電源的電流設(shè)定值 | 0-65535 | 3 | r/w | 1001H |
3 | U | 電源的電壓顯示值 | 0-65535 | 2 | r | 1002H |
4 | I | 電源的電流顯示值 | 0-65535 | 3 | r | 1003H |
5 | Run-Stop | 電源輸出/停止設(shè)定 | 0,1 | 0 | r/w | 1004H |
6 | RS-Adder | 通訊地址設(shè)定 | 0~255 | 0 | r/w | 1005H |
7 | Key_Lock | 按鍵鎖定 | 0,1 | 0 | r/w | 1006H |
MODBUS RTU 通訊協(xié)議
通訊數(shù)據(jù)的類型及格式:
信息傳輸為異步方式,并以字節(jié)為單位。在主站和從站之間傳遞的通訊信息是10位的字格式:
字格式(串行數(shù)據(jù)) | 10位二進制 |
起始位 | 1位 |
數(shù)據(jù)位 | 8位 |
奇偶校驗位 | 無 |
停止位 | 1位 |
● 通訊數(shù)據(jù)(信息幀)格式
數(shù)據(jù)格式 | 地址碼 | 功能碼 | 數(shù)據(jù)區(qū) | CRC校驗 |
數(shù)據(jù)長度 | 1字節(jié) | 1字節(jié) | N字節(jié) | 16位CRC碼(冗余循環(huán)碼) |
一、 通訊信息傳輸過程:
當通訊命令由發(fā)送設(shè)備(主機)發(fā)送至接收設(shè)備(從機)時,符合相應(yīng)地址碼的從機接收通訊命令,并根據(jù)功能碼及相關(guān)要求讀取信息,如果CRC校驗無誤,則執(zhí)行相應(yīng)的任務(wù),然后把執(zhí)行結(jié)果(數(shù)據(jù))返送給主機。返回的信息中包括地址碼、功能碼、執(zhí)行后的數(shù)據(jù)以及CRC校驗碼。如果CRC校驗出錯就不返回任何信息。
1.1 地址碼:
地址碼是每次通訊信息幀的*字節(jié)(8位),從0到255。這個字節(jié)表明由用戶設(shè)置地址的從機將接收由主機發(fā)送來的信息。每個從機都必須有*的地址碼,并且只有符合地址碼的從機才能響應(yīng)回送信息。當從機回送信息時,回送數(shù)據(jù)均以各自的地址碼開始。主機發(fā)送的地址碼表明將發(fā)送到的從機地址,而從機返回的地址碼表明回送的從機地址。相應(yīng)的地址碼表明該信息來自于何處。
1.2 功能碼:
是每次通訊信息幀傳送的第二個字節(jié)。ModBus通訊規(guī)約可定義的功能碼為1到127。作為主機請求發(fā)送,通過功能碼告訴從機應(yīng)執(zhí)行什么動作。作為從機響應(yīng),從機返回的功能碼與從主機發(fā)送來的功能碼一樣,并表明從機已響應(yīng)主機并且已進行相關(guān)的操作。
表8.1 MODBUS部分功能碼
功能碼
| 定 義
| 操 作(二進制) |
02 | 讀開關(guān)量輸入DI | 讀取一路或多路開關(guān)量狀態(tài)輸入數(shù) (遙信) |
01 | 讀狀態(tài)量輸出OUT | 讀取一路或多路開關(guān)量輸出狀態(tài)數(shù)據(jù) |
03 | 讀寄存器數(shù)據(jù) | 讀取一個或多個寄存器的數(shù)據(jù) |
05 | 寫開關(guān)量輸出OUT | 控制一路繼電器“合/分”輸出,遙控 |
06 | 寫單路寄存器 | 把一組二進制數(shù)據(jù)寫入單個寄存器 |
10 | 寫多路寄存器 | 把多組二進制數(shù)據(jù)寫入多個寄存器 |
1.3 數(shù)據(jù)區(qū):
數(shù)據(jù)區(qū)包括需要由從機返送何種信息或執(zhí)行什么動作。這些信息可以是數(shù)據(jù)(如:開關(guān)量輸入/輸出、模擬量輸入/輸出、寄存器等等)、參考地址等。例如,主機通過功能碼03告訴從機返回寄存器的值(包含要讀取寄存器的起始地址及讀取寄存器的長度),則返回的數(shù)據(jù)包括寄存器的數(shù)據(jù)長度及數(shù)據(jù)內(nèi)容。對于不同的從機,地址和數(shù)據(jù)信息都不相同(應(yīng)給出通訊信息表)。
HSPY系列電源采用Modbus通訊規(guī)約,主機(PLC、RTU、PC機、DCS等)利用通訊命令(功能碼03),可以任意讀取其數(shù)據(jù)寄存器(其數(shù)據(jù)信息表詳見附錄)。
HSPY響應(yīng)的命令格式是從機地址、功能碼、數(shù)據(jù)區(qū)及CRC碼。數(shù)據(jù)區(qū)的數(shù)據(jù)都是兩個字節(jié),并且高位在前。
4.靜止時間要求
發(fā)送數(shù)據(jù)前要求數(shù)據(jù)總線靜止時間即無數(shù)據(jù)發(fā)送時間大于(5ms 波特率為9600時).
二、 MODBUS功能碼簡介(HSPY可編程電源只支持以下功能碼)
2.1 功能碼“03”:讀多路寄存器輸入
例如:主機要讀取地址為01,起始地址為1000的2個從機寄存器數(shù)據(jù)。
從機數(shù)據(jù)寄存器的地址和數(shù)據(jù)為:
寄存器地址 | 寄存器數(shù)據(jù)(16進制) | 對應(yīng)參數(shù) |
1000 | 0E10(36.00V) | Set-U |
1001 | 0BB8(3.000A) | Set_I |
|
|
|
主機發(fā)送的報文格式:
主機發(fā)送 | 字節(jié)數(shù) | 發(fā)送的信息 | 備 注 |
從機地址 | 1 | 01 | 發(fā)送至地址為01的從機 |
功能碼 | 1 | 03 | 讀寄存器 |
起始地址 | 2 | 1000 | 起始地址為0000 |
讀數(shù)據(jù)長度 | 2 | 0002 | 讀取3個寄存器(共6個字節(jié)) |
CRC碼 | 2 | C0CB | 由主機計算得到CRC碼 |
從機響應(yīng)返回的報文格式:
從機響應(yīng) | 字節(jié)數(shù) | 返回的信息 | 備 注 |
從機地址 | 1 | 01 | 來自從機01 |
功能碼 | 1 | 03 | 讀寄存器 |
數(shù)據(jù)長度(字節(jié)數(shù)) | 1 | 04 | 共4個字節(jié) |
寄存器1的數(shù)據(jù) | 2 | 0E10 | 地址為0000寄存器的內(nèi)容 |
寄存器2的數(shù)據(jù) | 2 | C0CB | 地址為0001寄存器的內(nèi)容 |
CRC碼 | 2 | 6089 | 由從機計算得到CRC碼 |
2.5 功能碼“10”:寫多路寄存器
主機利用這個功能碼把多個數(shù)據(jù)保存到HSPY電源的數(shù)據(jù)存儲器中去。Modbus通訊規(guī)約中的寄存器指的是16位(即2字節(jié)),并且高位在前。這樣HSPY的存儲器都是二個字節(jié)。
例如:主機要把0E10保存到地址為1000的從機寄存器中去(從機地址碼為01)。
主機發(fā)送的報文格式:
主機發(fā)送 | 字節(jié)數(shù) | 發(fā)送的信息 | 備 注 |
從機地址 | 1 | 01 | 發(fā)送至地址為01的從機 |
功能碼 | 1 | 10 | 寫多路寄存器 |
起始地址 | 2 | 1000 | 要寫入的寄存器的起始地址 |
保存數(shù)據(jù)長度 | 2 | 0001 | 保存數(shù)據(jù)的字長度 |
保存數(shù)據(jù)字節(jié)長 | 1 | 02 | 保存數(shù)據(jù)的字節(jié)長度(4字節(jié)) |
保存數(shù)據(jù)1 | 2 | 0E10 | 待寫入1000地址的數(shù)據(jù) |
CRC碼 | 2 | B23D | 由主機計算得到CRC碼 |
從機響應(yīng)返回的報文格式:
從機響應(yīng) | 字節(jié)數(shù) | 發(fā)送的信息 | 備 注 |
從機地址 | 1 | 01 | 發(fā)送至地址為01的從機 |
功能碼 | 1 | 10 | 寫多路寄存器 |
起始地址 | 2 | 1000 | 要寫入的寄存器的起始地址 |
保存數(shù)據(jù)長度 | 2 | 0001 | 保存數(shù)據(jù)的字長度 |
CRC碼 | 2 | 0509 | 由從機計算得到CRC碼 |
主機或從機可用校驗碼進行判別接收信息是否正確。由于電子噪聲或一些其它干擾,信息在傳輸過程中有時會發(fā)生錯誤,錯誤校驗碼(CRC)可以檢驗主機或從機在通訊數(shù)據(jù)傳送過程中的信息是否有誤,錯誤的數(shù)據(jù)可以放棄(無論是發(fā)送還是接收),這樣增加了系統(tǒng)的安全和效率。
MODBUS通訊協(xié)議的CRC(冗余循環(huán)碼)包含2個字節(jié),即16位二進制數(shù)。CRC碼由發(fā)送設(shè)備(主機)計算,放置于發(fā)送信息幀的尾部。接收信息的設(shè)備(從機)再重新計算接收到信息的CRC,比較計算得到的CRC是否與接收到的相符,如果兩者不相符,則表明出錯。
● CRC碼的計算方法是:
1、預(yù)置1個16位的寄存器為十六進制FFFF(即全為1);稱此寄存器為CRC寄存器;
2、把*個8位二進制數(shù)據(jù)(既通訊信息幀的*個字節(jié))與16位的CRC寄存器的低8位相異或,把結(jié)果放于CRC寄存器;
3、把CRC寄存器的內(nèi)容右移一位(朝低位)用0填補zui高位,并檢查右移后的移出位;
4、如果移出位為0:重復(fù)第3步(再次右移一位); 如果移出位為1:CRC寄存器與多項式A001(1010 0000 0000 0001)進行異或;
5、重復(fù)步驟3和4,直到右移8次,這樣整個8位數(shù)據(jù)全部進行了處理;
6、重復(fù)步驟2到步驟5,進行通訊信息幀下一個字節(jié)的處理;
7、將該通訊信息幀所有字節(jié)按上述步驟計算完成后,得到的16位CRC寄存器的高、低字節(jié)進行交換;
8、zui后得到的CRC寄存器內(nèi)容即為:CRC碼。
北京漢晟普源科技有限公司
2010年4月28日
請輸入賬號
請輸入密碼
請輸驗證碼
以上信息由企業(yè)自行提供,信息內(nèi)容的真實性、準確性和合法性由相關(guān)企業(yè)負責(zé),儀表網(wǎng)對此不承擔(dān)任何保證責(zé)任。
溫馨提示:為規(guī)避購買風(fēng)險,建議您在購買產(chǎn)品前務(wù)必確認供應(yīng)商資質(zhì)及產(chǎn)品質(zhì)量。