新聞中心
PRESS CENTERMODBUS_RTU通訊規(guī)約
MODBUS_RTU通訊規(guī)約(本協(xié)議采用主從問(wèn)答方式)
PDM系列儀表/變送器:PDM系列儀表/變送器采用全新的設(shè)計(jì),革命性地改變了傳統(tǒng)電表的概念;具有多功能、高精度、數(shù)字式、可編程、結(jié)構(gòu)緊湊、多畫(huà)面顯示的特點(diǎn),它可以滿(mǎn)足電力工業(yè)未來(lái)對(duì)電表的需求。
MODBUS通訊協(xié)議:ModBus通訊規(guī)約允許PDM系列儀表/變送器與施耐德、西門(mén)子、AB、GE等多個(gè)國(guó)際著名品牌的可編程順序控制器(PLC)、RTU、SCADA系統(tǒng)、DCS或與第三方具有ModBus兼容的監(jiān)控系統(tǒng)之間進(jìn)行信息交換和數(shù)據(jù)傳送。
PDM系列儀表/變送器只要簡(jiǎn)單地增加一套基于計(jì)算機(jī)(或工控機(jī))的監(jiān)控軟件(如:組態(tài)王、in ouch、FIX、synall等)就可以構(gòu)成一套電力監(jiān)控系統(tǒng)。
廣泛的系統(tǒng)集成:??PDM系列儀表/變送器提供了標(biāo)準(zhǔn)的RS-485/422通訊接口及ModBus通訊協(xié)議,這個(gè)通訊協(xié)議已廣泛被國(guó)內(nèi)外電力行業(yè)及工控行業(yè)作為系統(tǒng)集成的標(biāo)準(zhǔn)。
通訊數(shù)據(jù)的類(lèi)型及格式:信息傳輸為異步方式,并以字節(jié)為單位。在
主站和從站之間傳遞的通訊信息是11位的字格式:
字格式(串行數(shù)據(jù))?11位二進(jìn)制
起始位?1位
數(shù)據(jù)位?8位
奇偶校驗(yàn)位?1位:有奇偶校驗(yàn)位/無(wú):無(wú)奇偶校驗(yàn)位
停止位?1位:有奇偶校驗(yàn)位/2位:無(wú)奇偶校驗(yàn)位
●??通訊數(shù)據(jù)(信息幀)格式
數(shù)據(jù)格式:?地址碼?功能碼?數(shù)據(jù)區(qū)?錯(cuò)誤校檢
數(shù)據(jù)長(zhǎng)度:?1字節(jié)?1字節(jié)?N字節(jié)?16位CRC碼(冗余循環(huán)
碼)??????????????????
??注
1、1個(gè)字節(jié)由8位二進(jìn)制數(shù)組成(既8??bit)。
2、ModBus是Modicon公司的注冊(cè)商標(biāo)。
3、“從機(jī)”在本文件中既為PDM。
當(dāng)通訊命令由發(fā)送設(shè)備(主機(jī))發(fā)送至接收設(shè)備(從機(jī))時(shí),符合相應(yīng)地址碼的從機(jī)接收通訊命令,并根據(jù)功能碼及相關(guān)要求讀取信息,如果CRC校驗(yàn)無(wú)誤,則執(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é)表明由用戶(hù)設(shè)置地址的從機(jī)將接收由主機(jī)發(fā)送來(lái)的信息。每個(gè)從機(jī)都必須有唯一的地址碼,并且只有符合地址碼的從機(jī)才能響應(yīng)回送信息。當(dāng)從機(jī)回送信息時(shí),回送數(shù)據(jù)均以各自的地址碼開(kāi)始。主機(jī)發(fā)送的地址碼表明將發(fā)送到的從機(jī)地址,而從機(jī)返回的地址碼表明回送的從機(jī)地址。相應(yīng)的地址碼表明該信息來(lái)自于何處。
1.2??功能碼:
是每次通訊信息幀傳送的第二個(gè)字節(jié)。ModBus通訊規(guī)約可定義的功能碼為1到127。PDM系列儀表/變送器僅用到其中的一部分功能碼。作為主機(jī)請(qǐng)求發(fā)送,通過(guò)功能碼告訴從機(jī)應(yīng)執(zhí)行什么動(dòng)作。作為從機(jī)響應(yīng),從機(jī)返回的功能碼與從主機(jī)發(fā)送來(lái)的功能碼一樣,并表明從機(jī)已響應(yīng)主機(jī)并且已進(jìn)行相關(guān)的操作。
表8.1??MODBUS部分功能碼
功能碼?定????義?操????作(二進(jìn)制)
02???讀開(kāi)關(guān)量輸入???讀取一路或多路開(kāi)關(guān)量狀態(tài)輸入數(shù)據(jù)
01???讀開(kāi)關(guān)量輸出???讀取一路或多路開(kāi)關(guān)量輸出狀態(tài)數(shù)據(jù)
03???讀寄存器數(shù)據(jù)???讀取一個(gè)或多個(gè)寄存器的數(shù)據(jù)
05???寫(xiě)開(kāi)關(guān)量輸出???控制一路繼電器“合/分”輸出
06???寫(xiě)單路寄存器???把一組二進(jìn)制數(shù)據(jù)寫(xiě)入單個(gè)寄存器
10???寫(xiě)多路寄存器???把多組二進(jìn)制數(shù)據(jù)寫(xiě)入多個(gè)寄存器
1.3??數(shù)據(jù)區(qū):
數(shù)據(jù)區(qū)包括需要由從機(jī)返送何種信息或執(zhí)行什么動(dòng)作。這些信息可以是數(shù)據(jù)(如:開(kāi)關(guān)量輸入/輸出、模擬量輸入/輸出、寄存器等等)、參考地址等。例如,主機(jī)通過(guò)功能碼03告訴從機(jī)返回寄存器的值(包含要讀取寄存器的起始地址及讀取寄存器的長(zhǎng)度),則返回的數(shù)據(jù)包括寄存器的數(shù)據(jù)長(zhǎng)度及數(shù)據(jù)內(nèi)容。對(duì)于不同的從機(jī),地址和數(shù)據(jù)信息都不相同(應(yīng)給出通訊信息表)。
PDM系列儀表/變送器采用Modbus通訊規(guī)約,主機(jī)(PLC、RTU、PC機(jī)、DCS等)利用通訊命令(功能碼03),可以任意讀取其數(shù)據(jù)寄存器(其數(shù)據(jù)信息表詳見(jiàn)附錄)。PDM系列儀表/變送器的數(shù)據(jù)寄存器存儲(chǔ)的電量多達(dá)幾百個(gè)(如:電流、電壓、功率、0~31次諧波分量等),并且都是16位(2字節(jié))的二進(jìn)制數(shù)據(jù),并且高位在前;一次最多可讀取寄存器數(shù)(既各種電量的數(shù)量)是50個(gè)。
PDM響應(yīng)的命令格式是從機(jī)地址、功能碼、數(shù)據(jù)區(qū)及CRC碼。數(shù)據(jù)區(qū)的數(shù)據(jù)都是兩個(gè)字節(jié),并且高位在前(電能量除外)。
注:1、PDM-820AC/ACM/ACR、PDM-800AC/ACM具
有“03”、“06”、“10”功能碼;
????2、如果PDM采用MODBUS??ASCII通訊協(xié)議,其通訊數(shù)據(jù)格式為;7個(gè)
數(shù)據(jù)位,1個(gè)停止位,偶校驗(yàn)。
2.1??功能碼“02”:讀1路或多路開(kāi)關(guān)量狀態(tài)輸入
??例如:主機(jī)要讀取地址為01,開(kāi)關(guān)量DI1—DI4的輸入狀態(tài)。
??從機(jī)(PDM)數(shù)據(jù)寄存器的地址和數(shù)據(jù)為:
??起始位地址?DI寄存器數(shù)據(jù)(16進(jìn)制)?備????注0000?0B
DI1/DI2/DI4狀態(tài)為“1”,DI3狀態(tài)為“0”
?
主機(jī)發(fā)送的報(bào)文格式:
主機(jī)發(fā)送?字節(jié)數(shù)?發(fā)送的信息?備????注
從機(jī)地址???1????01????????發(fā)送至地址為01的從機(jī)
功能碼?????1????02????????讀開(kāi)關(guān)量輸入狀態(tài)
起始BIT位??2????0000??????起始BIT位地址為0000
讀數(shù)據(jù)長(zhǎng)度?2????0004??????讀取4路開(kāi)關(guān)量輸入狀態(tài)位
CRC碼??????2????79C9??????由主機(jī)計(jì)算得到CRC碼
從機(jī)(PDM)響應(yīng)返回的報(bào)文格式:
從機(jī)響應(yīng)?字節(jié)數(shù)?返回的信息?備????注
從機(jī)地址???1????01??????來(lái)自從機(jī)01
功能碼?????1????02??????讀開(kāi)關(guān)量輸入狀態(tài)
數(shù)據(jù)長(zhǎng)度???1????01??????1個(gè)字節(jié)(8個(gè)BIT位)
DI狀態(tài)數(shù)據(jù)?1????0B??????DI寄存器內(nèi)容
CRC碼??????2????E04F????由從機(jī)計(jì)算得到CRC碼
2.2??功能碼“01”:??讀1路或多路開(kāi)關(guān)量輸出狀態(tài)
??例如:主機(jī)要讀取地址為01,開(kāi)關(guān)量DO1,DO2的輸出狀態(tài)。
?
??從機(jī)(PDM)數(shù)據(jù)寄存器的地址和數(shù)據(jù)為:
起始位地址?DO寄存器數(shù)據(jù)(16進(jìn)制)?備????注
0000???????02???????????????????DO2輸出狀態(tài)為“1”,DO1輸出狀
態(tài)為“0”
主機(jī)發(fā)送的報(bào)文格式:
主機(jī)發(fā)送?字節(jié)數(shù)?發(fā)送的信息?備????注
從機(jī)地址???1????01????????發(fā)送至地址為01的從機(jī)
功能碼?????1????01????????讀開(kāi)關(guān)量輸出狀態(tài)
起始BIT位??2????0000??????起始BIT位地址為0000?
讀數(shù)據(jù)長(zhǎng)度?2????0002??????讀取2路繼電器輸出狀態(tài)位
CRC碼??????2????BDCB??????由主機(jī)計(jì)算得到CRC碼
從機(jī)(PDM)響應(yīng)返回的報(bào)文格式:
從機(jī)響應(yīng)?字節(jié)數(shù)?返回的信息?備????注
從機(jī)地址???1?01????????來(lái)自從機(jī)01
功能碼?????1?01????????讀開(kāi)關(guān)量輸出狀態(tài)
數(shù)據(jù)長(zhǎng)度???1?01????????1個(gè)字節(jié)(8個(gè)BIT位)
DO狀態(tài)數(shù)據(jù)?1?02????????DO寄存器內(nèi)容
CRC碼??????2?D049??????由從機(jī)計(jì)算得到CRC碼
2.3??功能碼“03”:????讀多路寄存器輸入
??例如:主機(jī)要讀取地址為01,起始地址為0116的3個(gè)從機(jī)寄存器數(shù)
據(jù)。
??從機(jī)(PDM)數(shù)據(jù)寄存器的地址和數(shù)據(jù)為:
寄存器地址?寄存器數(shù)據(jù)(16進(jìn)制)?對(duì)應(yīng)PDM電量
0116???????1784?????????????????UA
0117???????1780?????????????????UB
0118???????178A?????????????????UC
主機(jī)發(fā)送的報(bào)文格式:
主機(jī)發(fā)送?字節(jié)數(shù)?發(fā)送的信息?備????注
從機(jī)地址?1??????01????????發(fā)送至地址為01的從機(jī)
功能碼???1??03????????讀取寄存器
起始地址?2??0116??????起始地址為0116
數(shù)據(jù)長(zhǎng)度?3??0003??????讀取3個(gè)寄存器(共6個(gè)字節(jié))
CRC碼????2??E5F3??????由主機(jī)計(jì)算得到CRC碼
從機(jī)(PDM)響應(yīng)返回的報(bào)文格式:
從機(jī)響應(yīng)?字節(jié)數(shù)?返回的信息?備????注
從機(jī)地址??1?????01????????來(lái)自從機(jī)01
功能碼????1??03????????讀取寄存器
讀取字????1??06????????3個(gè)寄存器共6個(gè)字節(jié)
寄存器數(shù)據(jù)1??2????1784?地址為0116內(nèi)存的內(nèi)容
寄存器數(shù)據(jù)2??2????1780?地址為0117內(nèi)存的內(nèi)容
寄存器數(shù)據(jù)3??2????178A????地址為0118內(nèi)存的內(nèi)容
CRC碼?????2?????5847??????由從機(jī)計(jì)算得到CRC碼
2.4??功能碼“05”:寫(xiě)1路開(kāi)關(guān)量輸出(“遙控”)
??例1:開(kāi)關(guān)量輸出點(diǎn)DO1,其當(dāng)前狀態(tài)為“分”,主機(jī)要控制該路繼電
器“合”。
???控制命令為:
??“FF00”為控制繼電器“合”;
??“0000”為控制繼電器“分”;
主機(jī)發(fā)送的報(bào)文格式:
主機(jī)發(fā)送?字節(jié)數(shù)?發(fā)送的信息?備????注
從機(jī)地址??1?????01????????發(fā)送至地址為01的從機(jī)
功能碼????1??05????????寫(xiě)開(kāi)關(guān)量輸出狀態(tài)
輸出BIT位?2??0000??????對(duì)應(yīng)輸出繼電器BIT位(DO1)
控制命令??2??FF00??????控制該路繼電器輸出為“合”狀態(tài)位
CRC碼?????2??8C3A??????由主機(jī)計(jì)算得到CRC碼
從機(jī)(PDM)響應(yīng)返回的報(bào)文格式:
與主機(jī)發(fā)送的報(bào)文格式及數(shù)據(jù)內(nèi)容完全相同。
??例2:開(kāi)關(guān)量輸出點(diǎn)DO2,其當(dāng)前狀態(tài)為“合”,主機(jī)要控制該路繼電
器“分”。
主機(jī)發(fā)送的報(bào)文格式
主機(jī)發(fā)送?字節(jié)數(shù)?發(fā)送的信息?備????注
從機(jī)地址??1?????01????????發(fā)送至地址為01的從機(jī)
功能碼????1??05????????寫(xiě)開(kāi)關(guān)量輸出狀態(tài)
輸出BIT位?2??0001??????對(duì)應(yīng)輸出繼電器BIT位(DO2)
控制命令??2??0000??????控制該路繼電器輸出為“合”狀態(tài)位
CRC碼?????2??9C0A??????由主機(jī)計(jì)算得到CRC碼
從機(jī)(PDM)響應(yīng)返回的報(bào)文格式:
????由主機(jī)計(jì)算得到的CRC碼
從機(jī)(PDM)響應(yīng)返回的報(bào)文格式:
與主機(jī)發(fā)送的報(bào)文格式及數(shù)據(jù)內(nèi)容完全相同。
2.6功能碼“10”:寫(xiě)多路寄存器
??主機(jī)利用這個(gè)功能碼把多個(gè)數(shù)據(jù)保存到PDM表的數(shù)據(jù)存儲(chǔ)器中去。
Modbus通訊規(guī)約中的寄存器指的是16位(即2字節(jié)),并且高位在前。
這樣PDM的存儲(chǔ)器都是二個(gè)字節(jié)。由于Modbus通訊規(guī)約允許每次最多保
存60個(gè)寄存器,因此PDM一次也最多允許保存60個(gè)數(shù)據(jù)寄存器。
??例如:主機(jī)要把0064,0010保存到地址為002C,002D的從機(jī)寄存器中
去(從機(jī)地址碼為01)。通訊數(shù)據(jù)保存結(jié)束后,地址為002C/002D的PDM
表內(nèi)存儲(chǔ)信息為:
?地址?原來(lái)存儲(chǔ)數(shù)據(jù)(16進(jìn)制)
?002C?04B0
?002D?1388
主機(jī)發(fā)送的報(bào)文格式:
由主機(jī)計(jì)算得到的CRC碼
從機(jī)(PDM)響應(yīng)返回的報(bào)文格式:
從機(jī)響應(yīng)?????字節(jié)數(shù)?字節(jié)數(shù)?舉例
從機(jī)地址???????1????01????來(lái)自從機(jī)01
功能碼?????????1????10????寫(xiě)多路寄存器
起始地址???????2????002C??起始地址為002C
保存數(shù)據(jù)字長(zhǎng)度?2????0002??保存2個(gè)字長(zhǎng)度的數(shù)據(jù)
CRC碼??????????2????8001??由從機(jī)計(jì)算得到的CRC碼
????????當(dāng)PDM表檢測(cè)到除了CRC碼出錯(cuò)以外的錯(cuò)誤時(shí),必須向主機(jī)回送
信息,功能碼的最高位置為1,即從機(jī)返送給主機(jī)的功能碼是在主機(jī)發(fā)
送的功能碼的基礎(chǔ)上加128??。以下的這些代碼表明有意外的錯(cuò)誤發(fā)
生。
????????PDM從主機(jī)接收到的信息如有CRC錯(cuò)誤,則將被PDM表忽略。
????????PDM返送的錯(cuò)誤碼的格式如下(CRC碼除外):
????????????????地址碼:??1字節(jié)
????????????????功能碼:??1字節(jié)(最高位為1)
????????????????錯(cuò)誤碼:??1字節(jié)
????????????????CRC碼:2字節(jié)。
PDM響應(yīng)回送如下錯(cuò)誤碼:
????????????81.非法的功能碼。接收到的功能碼PDM表不支持。
????????????82.非法的數(shù)據(jù)位置。指定的數(shù)據(jù)位置超出PDM表的范
圍。
????????????83.非法的數(shù)據(jù)值。接收到主機(jī)發(fā)送的數(shù)據(jù)值超出PDM相
應(yīng)地址的數(shù)據(jù)范圍。