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