ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:28.94KB ,
资源ID:5281442      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5281442.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Modbus通讯规约.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Modbus通讯规约.docx

1、Modbus通讯规约MODBUS通讯规约 V2.01 通讯参数和传输特性传输方式:异步串行通信方式。MODBUS规约模式: RTU模式。传输速率:2400 bps,4800bps,9600bps,19200bps。串行口通讯数据格式:1 个起始位,8 个数据位, 无校验位,1个停止位。最大传输距离:1200米。通讯介质:推荐采用0.5mm的双绞线,不带屏蔽层。(原因是如果使用屏蔽双绞线,但现场接地处理不好反而影响通讯质量)。网络连接主站数目:1个。网络连接从站数目:最多31个。应答时间:小于 4.5个byte传输时间(帧间隔最小时间) + 10ms。2网络连接 RS-485网络的匹配电阻选取:

2、双绞线网络两端的匹配电阻选取,以现场通信正常为准,一般地1.2km时取120,600m时取220,300m时取330,如通信误码率较大,观察通信时的波形,匹配电阻做适当改变: 末端匹配电阻合适 末端匹配电阻偏小 末端匹配电阻偏大3通信参数选择 通信站号:在通讯参数中修改装置地址,范围199,禁止使用0作为装置地址,地址0作为广播地址使用。 通信波特率: 通讯参数中修改装置485口,修改通信波特率:选择范围: 2400bps, 4800bps,9600bps,19200bps。4MODBUS协议通用格式4.1 支持的MODBUS功能码功能码02H: 读取开关量输入(读实遥信和虚遥信)。功能码03

3、H: 读取保持寄存器(读事件记录等)功能码04H: 读取输入寄存器(读远动遥测) 功能码05H: 强制单点继电器输出(远方复归、单步的遥控跳闸、遥控合闸)。功能码06H: 向保持寄存器写单个字(遥控跳闸、遥控合闸的选择和执行操作)功能码10H: 向保持寄存器(内存区)写多个16位的字(通讯对时)。4.2 异常响应报文格式由于软件编程错误,对协议理解错误或通讯干扰等原因,MODBUS通信子站接收到主站的报文后,可以采用异常响应报文给予回答,异常响应报文格式举例如下: 异常响应报文 子站=主站报文内容含义备注1字节MODBUS地址01H 举例1字节功能码85H1字节异常代码02H1字节CRC高字节

4、C3H1字节CRC低字节51HFC 05H 主站=子站:远方复归报文内容含义备注1字节MODBUS地址01H 举例1字节功能码05H1字节线圈地址高字节01H1字节线圈地址低字节07H1字节强制线圈数值高字节FFH1字节强制线圈数值低字节00H1字节CRC高字节3CH1字节CRC低字节07H子站通过校验,发现主站报文有问题,将响应报文将主站的功能码最高位(D7)置1,如例子中的85H,异常响应报文中有固定的一个字节作为“异常代码”,表示异常原因。异常代码含义01非法功能码。子站无法处理主站报文中的功能码。02非法数据地址。子站无法处理主站报文中的数据地址。03非法数据内容。主站报文中的数据不能

5、满足子站的要求格式。04子站设备错误。当子站试图执行主站报文,会产生无法恢复的设备错误。05确认帧。 子站接改到主站报文并执行,但由于执行时间比较长,采用本报文通知主站,防止产生主站接收报文超时错误。06子站忙。4.3 时间格式本规约中使用到的对时报文的时间格式,事件记录中的时间格式,参见下面说明。七个八位位组的二进制时间 27 毫秒 20 215 毫秒 28IV(RES1)025 分 200(SU)(RES2) 0 024 时 20 22 星期 20 24 日 20 (RES3) 0 0 0 0 23 月 20 (RES4) 026 年 20 4.4 MODBUS规约中CRC码的计算 采用R

6、TU通讯方式的MODBUS规约,要将报文中除CRC码外的所有字节进行CRC码校验,校验程序如下:static unsigned char auchCRCHi = /* Table of CRC values for high-order byte */0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0x

7、C0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x

8、00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0

9、x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1,

10、0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x00,

11、 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40;static unsigned char auchCRCLo = /* Table of CRC values for low-order byte */0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06,0x07, 0xC7, 0x05, 0xC5, 0xC4

12、, 0x04, 0xCC, 0x0C, 0x0D, 0xCD,0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A,0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4,0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x3

13、0, 0x31, 0xF1, 0x33, 0xF3,0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4,0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29,0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED,0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x

14、27, 0xE7, 0xE6, 0x26,0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60,0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67,0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68,0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0

15、xBA, 0xBE, 0x7E,0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71,0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92,0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A,

16、0x9B, 0x5B,0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B,0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42,0x43, 0x83, 0x41, 0x81, 0x80, 0x40 ;unsigned short Modbus_CRC16(unsigned char *puchMsg, unsigned short usDataLen

17、) unsigned char uchCRCHi = 0xFF ; /* high CRC byte initialized */unsigned char uchCRCLo = 0xFF ; /* low CRC byte initialized */unsigned short uIndex ; /* will index into CRC lookup*/ while (usDataLen-) /* pass through message buffer */ uIndex = uchCRCHi *puchMsg+ ; /* calculate the CRC */ uchCRCHi =

18、 uchCRCLo auchCRCHiuIndex ; uchCRCLo = auchCRCLouIndex ; return (uchCRCHi 8 | uchCRCLo) ;5 报文格式详解 以下报文以MMP-5000D为例说明,相应通讯信息点表见MMP-5000D测点表。 报文中的字节都是以16进制的方式显示。5.1 读全遥信主站发送:从机地址功能码开始地址H开始地址L遥信点数H遥信点数LCRC码 HCRC码 L01020000002079D2子站响应地址功能码字节数遥信数值(LSB-MSB)CRC码 HCRC码 L01020401本字节的LSB对应遥信点号102 0000本字节的MSB

19、对应遥信点号325BDE注意:1)MMP-5000D供有32个遥信(实遥信和虚遥信),因此主站从开始地址0读0x20个遥信点。2)本例应答报文中:数值01的D0位为1代表MMP-5000D的“远方控制”为1;数值02中的D1位为1代表MMP-5000D的跳位信号为1。3)子站响应中的LSB,MSB指D0位和D7位,通讯点号依次采用升序的方式,比如第一个字节的D0位为遥信点号1它的D7位为遥信点号8;第二个节字的D0位就为遥信点号9,它的D7位为遥信点号16,依次类推。5.2 读全遥测(远动遥测)主站发送:从机地址功能码开始地址H开始地址L遥测点数H遥测点数LCRC码 HCRC码 L010400

20、00000FB00E子站响应地址功能码字节数设备状态字 H L第一个遥测值 H L第N个遥测值CRC码 HCRC码 L01041E00016AA0B61B“设备状态字”的D0为1,表示请求读全遥信MMP-5000D的“频率”遥测值注意: 1)遥测报文第一个测点为“设备状态字”,不用入库,第二个开始才是“频率”,以后依次后推。2)远动遥测值的数据格式采用带品质描述的被测值(MEA)定义 BIT0 = 溢出位(OV) BIT1 = 差错位(ER) BIT2 = 测试位(TEST),该位置1表示本遥测量为综自功能 BIT15BIT3 = 被测值(MVAL),范围 -4096 40953)“设备状态字

21、”占用两个字节,它的低字节的D0位为1表示有实遥信和虚遥信变位,要求主站使用“读全遥信”报文来读取,一旦执行了“读全遥信”,则“设备状态字的D0位变为0;“设备状态字”的D1位为1:表示保护装置有事件记录,要求主站使用连续执行“读单个事件记录”来读取事件记录,子站没有新的事件记录时,D1位自动变为0。通讯管理机可以根据需要选择是否使用“设备状态字”。4)如果不需要使用“设备状态字”,可以将报文中的开始地址设为0x0001,则第一个读到的遥测值就是“频率”。5)遥测值计算方法: 电压4095对应1.2倍的额定值1.2*100 = 120V 电流4095对应1.2倍的额定值1.2*5 = 6A 功

22、率4095对应1.2倍的额定值(1.2*57.77*1.2*5)*3 = 1248W 频率4095对应1.2倍的额定值1.2*50 = 60Hz 功率因素4095对应1倍的额定值 1.000本例中:6AA0为第一个遥测值(频率),它被放大8倍,满量程值为4095,对应60Hz(50Hz的1.2倍)。因此频率如下计算:0x6AA0/8/4095*60.0Hz = 49.993Hz例:=MMP-5000D读全遥测=TX:01 04 00 00 00 0F B0 0E RX: 01 04 1E 00 01 6A A0 00 00 00 00 00 00 36 C0 40 58 00 00 00 00

23、 00 00 00 00 00 00 00 00 00 00 05 C0 B6 1B5.3 读电度值主站发送:从机地址功能码电度对象起始地址H电度对象起始地址L电度对象数目H电度对象数目LCRC码 HCRC码 L01030000000185B2子站响应:地址功能码字节数正向有功电度LSB MSB反向有功电度LSB MSB正向无功电度LSB MSB反向无功电度LSB MSB010310E8030000D0070000B80B0000A00F0000正向有功电度值为:0x000003E8(1000W/1kW)反向有功电度0x000007D0(2000W/2kW)正向无功电度0x00000BB8(3

24、000Var/3kVar)反向无功电度0x00000FA0(4000Var/4kvar)CRC码 HCRC码 LB61B注意:1) 每个电度值由4个字节组成一个32位字,它的单位是W(瓦特)或Var(乏)2) 报文中先收到的是电度的低位字节,后收到的是高位字节。例:=MMP-5000D读电度值=TX:01 03 02 00 00 01 85 B2 RX:01 03 10 E8 03 00 00 D0 07 00 00 B8 0B 00 00 A0 0F 00 00 93 CD 5.4 广播对时主站发送:从机地址功能码开始地址H开始地址L寄存器数H寄存器数L字节总数毫秒L毫秒H001004800

25、0040898B7 分钟小时日月份年份保留CRC码 HCRC码 L1612170107008778说明:1) 对时时间为07年1月23日18时22分47秒000毫秒2) 广播对时的从机地址设为005.5 广播信号复归 方式一:采用功能码05H向单个线圈264写ON信号(0xFF00),产生远方信号复归功能。主站发送:从机地址功能码线圈地址H线圈地址L强制线圈数值H强制线圈数值LCRC码 HCRC码 L00050107FF003DD6 方式二:采用功能码06H向单个保持寄存器0x0000写数值0x0000,产生远方复归功能。主站发送:从机地址功能码寄存器地址H寄存器地址L设置数值H设置数值LCR

26、C码 HCRC码 L00060000000089CA说明:1)如果需要点对点复归,只要将从机地址从广播地址00改为相应设备地址即可。2)两种方式通讯管理机可以任意选择。5.6 遥控跳闸的选择命令采用功能码06H向单个保持寄存器0x0101写数值0xFFFF,产生遥控跳闸的选择功能。主站发送:从机地址功能码寄存器地址H寄存器地址L寄存器数值H寄存器数据LCRC码 HCRC码 L01060101FFFFD846子站响应:子站地址功能码寄存器地址H寄存器地址L寄存器数值H寄存器数据LCRC码 HCRC码 L01060101FFFFD8465.7 遥控跳闸的执行命令采用功能码06H向单个保持寄存器0x

27、0011写数值0xFFFF,产生遥控跳闸的执行。主站发送:从机地址功能码寄存器地址H寄存器地址L寄存器数值H寄存器数据LCRC码 HCRC码 L01060011FFFFD87F子站响应:子站地址功能码寄存器地址H寄存器地址L寄存器数值H寄存器数据LCRC码 HCRC码 L01060011FFFFD87F5.8 遥控合闸的选择命令采用功能码06H向单个保持寄存器0x0100写数值0xFFFF,产生遥控合闸的选择功能。主站发送:从机地址功能码寄存器地址H寄存器地址L寄存器数值H寄存器数据LCRC码 HCRC码 L01060100FFFF8986子站响应:子站地址功能码寄存器地址H寄存器地址L寄存器数值H寄存器数据LCRC码 HCRC码 L01060100FFFF89865.9 遥控合闸的执行命令采用功能码06H向单个保持寄存器0x0010写数值0xFFFF,产生遥控合闸的执行。主站发送:从机地址功能码寄存器地址H寄存器地址L寄存器数值H寄存器数值LCRC码 HCRC码 L01060010FFFF89BF子站响应:子站地址功能码寄存器地址H寄存器地址L寄存器数值H寄存器数据LCRC码 HCRC码 L01060010FFFF89BF5.10 单报文直接遥控跳闸采用功能码05H向线圈0x0001写数值0xFF00,产生单报文直接遥控跳闸。慎用本命令!主站发送:从机地址

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1