标准ModBus规约说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
变电站标准ModBus规约说明
编写:陈渲文
1.基本设置
1.模板保留参数
遥测参数设置保留参数1~3: 依次为功能码(1Byte)、起始地址(2Byte)、查询寄存器数量(1Byte)
遥信参数设置保留参数4~6: 依次为功能码(1Byte)、起始地址(2Byte)、查询寄存器询数量(1Byte)
遥脉参数可置保留参数7~9: 依次为功能码(1Byte)、起始地址(2Byte)、查询寄存器数量(1Byte)
保留参数10依次对应: 遥测标度调整系数(1Byte)、遥信每个寄存器代表遥信数目(1Byte)、遥控起始地址(2Byte)
遥控的相关参数只跟保留参数10的遥控起始地址有关,标准程序中只支持功能码为0x05(可修改),合闸命令下发0xFF00,分闸命令下发0x0000(可修改)
上图为一个规约中常见的约定格式,不难看出,功能码设为03 04都可以,起始地址为2000,访问数量0D(从00到0C,一共13个,在保留参数中是16进制格式)则可将保留
参数1设为0x0320000D
上图是规约文本中遥测备注,①数据都是先高后低传送,301C/301D解析也是先高后低,如果文本中注明是先低后高,则需要改程序;②U16是301C/301D遥测解析的常规类型,如果是U32就做到遥脉里(在保留参数7~9里设置),如果是S16,则需要修改程序(现在现场有很多多余的遥测数据,如果不需要导入,则尽量不导入,特别是系统外的站,很多遥测数据都不知道其意义)③这个放大缩小倍数,是做模板时标度设置要参考的。
比如明确说
传输过程中已被放大10倍,那模板里标度就填10。
2.前置机参数设置
这是标准的参数,有的特殊设置可能有奇偶校验、或者停止位是2位,注意设置一致就OK 2.基本结构
1.功能码
地址功能码起始地址高起始地址低询问数量高询问数量低CRC-高CRC-低
以上是标准的ModBus询问形式,301C\301D程序里都是这样询问,如果规约文本里要求不一致,则需要修改程序,目前我们的问询功能码只支持1~4(目前大多数使用该规约的厂家也这么设定的,而遥控或者定值修改的功能码,我们默认为5,如果现场需要用到遥控或定值修改功能,功能码又不是5的话,则需要修改)如下图,遥控的Fun是5,遥调和GPS校时是6和10. 所以需要用到遥调和GPS校时功能时,需修改程序。
2.校验码
这是标准的ModBus设定参数,如果CRC-16校验顺序是先低后高,就得修改程序
(这个不排除有些厂家定义与我司相反的情况,如果无其他差异,建议先通讯试一试)3.数据解析
1.遥测
301C\301D问询TX: 01 03 00 0B 00 04 35 CB 其中0004表示寄存器数量,而每个寄存器的类型是Word,如下图,因此访问四个寄存器,数据就有8个Byte(如果寄存器是byte型,则数据只会有4个Byte)
下图是装置回应RX:01 03 081B 65 08 54 00 00 05 D7 93 E4 ,这个08就是数据字节数量
之前有提到,我们解析是先高后低,遥测最大能存0xFFFF,如果溢出了,是需要设置遥测调整系数(模板保留参数10的第一个字节)
2.遥信
我们301C\301D的处理是按Bit解析,例如301C问询:01 03 00 02 00 01 25 CA 装置回
01 03 02 02 3C B9 35.
02 3C换算成二进制就是0000 0010 0011 1100,从左到右依次是Bit15~Bit0,置1的信号对应下面的遥信说明可发现是逆变器过热、电网电压异常、直流过压、PV对地绝缘阻抗异常、PV反接,其他置0, 这个时候遥信数据量代表遥信数目(模板保留参数10的第二个字节)需设置成16 (如果寄存器类型是Byte,则填8,这需要遥信保留参数4~6设置了俩才有效)
而按Byte或者Word解析是每个Byte或者每个Word仅代表一个遥信,一般规约文本中会明确指出遥信的类型,一般非Bit处理类型的都需要调整规约
3.遥脉
遥脉解析很简单,就是四字节一个遥脉量,如果超过四字节则需要修改规约处理
4.遥控&遥调&GPS
现场ModBus通讯的一般很少用到遥控、遥调、GPS校时,但是光伏站需要GPS校时调整光轴角度,由于装置距离较远也会要求用到遥控遥调,而且视外厂家装置不同处理也各不相同,因此一般用户坚持要增加此功能,就需要在规约中增加此功能。