欢迎来到天天文库
浏览记录
ID:34345920
大小:86.54 KB
页数:12页
时间:2019-03-05
《多功能电力仪表通讯规约-2012》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、六、通讯规约1、规约简述Modbus通讯规约被广泛的作为系统集成的标准。当通讯命令发送至仪器时,符合相应地址码的设备接收通讯命令,读取信息,如果没有出错则执行相应的任务,然后把执行结果返送给发送者;如杲出错则返送错误报告信息(CRC16校验码出错则不返送任何信息)或者不返送任何信息。其通讯数据帧格式如下:地址码功能码数据区校验码8位8位NX8位16位CRC地址码:地址码是信息帧的第一个字节(8位),从0到255。这个字节表明由用户设置地址的从机将接收由主机发送來的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能相应回送。当从机
2、回送信息时,相应的地址码表明该信息来自于相应地址的从机。功能码:主机发送的功能码告诉从机执行怎么样的任务,从机的功能码则表明从机响应主机相应任务进行了操作。Modbus通讯规约定义的功能码为01H到7FH,多功能电力仪表使用了其中一部分功能码。下表列出了所用到的功能码的具体含义及操作。代码(Hex)含义操作01H读继电器输出状态读取一路或多路继电器输出状态数据0311读取寄存器数据读取一个或多个寄存器的数据0511写继电器输出状态控制一路继电器“合/分”输出06H写单个寄存器把设置的单个数值写入指定的寄存器10H写多个寄存器把设置的数值写入指
3、定的连续寄存器注:如果从机发送的功能码的最高位是1(功能码>127),则表明从机没有响应操作或发送出错。数据区:数据区是根据不同的功能码而不同。数据区可以是实际数值,设置点,主机发送给从机或从机发送给主机的地址。数据区包含需要从机执行什么动作或由从机采集的返送信息,这些信息可以是数值、参考地址等等。例如,功能码告诉从机读取寄存器的值,则数据区必须包含耍读取的寄存器的起始地址及读取长度。如果功能码告诉从机设置某些连续寄存器的值,则数据区还要包含这些数值。对于不同的从机,地址和数据信息可能都不相同。校验码:校验码可用于主机或从机判断接受信息是否出
4、错。有时由于电子噪音或其它一些干扰,信息在传输过程中会发生细微的变化,这时自己根据信息计算所得的检验码与信息屮包含的校验码就会不i致,从而判断接受信息出错。校验码保证了主机或从机对在传送屮出错的信息不起作用,增加了系统的安全和效率。校验码采用CRC-16校验方法。计算CRC码的步骤为:(1).预置16位寄存器为FFFFHo称此寄存器为CRC寄存器;(2).把第一个8位数据与CRC寄存器的低位相异或,把结果放于CRC寄存器;(3).把寄存器的内容右移一位(朝低位),用0填补最高位,检查最低位;(4).如果最低位为0:重复第3步(再次移位)如果最
5、低位为1:CRC寄存器与多项式A001(1010000000000001)进行异或;(5).重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理;(6).重复步骤2到步骤5,进行下一个8位数据的处理;(7).最后得到的CRC寄存器即为CRC码。(CRC码=CRC_L+CRCJI)出错返送:从主机接收到的信息如有CRC错误,则将被忽略。从机返送的错误码的格式如下:地址码:1字节功能码:1字节(最高位为1)错误码:1字节CRC码:2字节响应回送如下出错命令。02-非法的数据位置。指定的数据位置超出YT194E-9SY表的范围。03-非法的
6、数据值。接收到主机发送的数据值超出相应地址的数据范围。2、通讯举例说明假设从机地址为01,起始地址为0002的3个寄存器内数据如下地址数据0001000A0002020B0003125C功能码03H读取寄存器主机发送字节数举例从机地址101发送至从机01功能码103读取寄存器起始地址20001起始地址为0001读取点数20003读取3个寄存器CRC码2540B由主机计算的CRC码从机响应字节数举例从机地址101发送至从机01功能码103读取寄存器读取字1063个寄存器共6字节寄存器地址12000A地址0001中的数据寄存器地址22020B地址
7、0002中的数据寄存器地址32125C地址0003中的数据CRC码2C597从机计算的CRC码从机寄存器内数据不发生变化。功能码06设置单个寄存器主机发送字节数举例从机地址101发送至从机01功能码106单点保存起始地址20001起始地址为0001保存数据20002保存数据0002CRC码259CB由主机计算的CRC码从机响应字节数举例从机地址101发送至从机01功能码106单点保存起始地址20001起始地址为0001保存数据20002保存数据0002CRC码259CB由从机计算的CRC码从机响应这条命令并11执行后,它寄存器0002内数据地
8、址数据就会替换为主机发送过去的保存数据。这时从机小起00010002始地址为0002的寄存器内数据改变如右表所列:0002020B0003125C功能码10H写数据
此文档下载收益归作者所有