1、通讯协议、通讯协议简介1.1.通讯协议采用传输模式模式中每个字节(位)的格式为:个起始位个数据位个奇偶校验位个停止位注: 帧校验采用循环冗余校验(),仪表的应答延迟不大于1.2.与通讯有关的参数说明与通讯有关的参数位于仪表的第组参数中仪表通讯地址,参数地址,取值范围,出厂设置为通讯速率选择,参数地址,取值范围、 、()可选,出厂设置为校验方式选择,参数地址,取值范围,出厂设置为选择为时,通讯采用无校验方式选择为时,通讯采用奇校验方式选择为时,通讯采用偶校验方式注: 当选择为无校验时,使用位停止位、通讯命令简介本系列仪表支持的命令集功能码寻址范围命令名称命令类型(十六进制)(十进制)读测量值读输
2、入寄存器读输出模拟量值读多个保持读仪表参数值寄存器读开关量输入状态读输入离散量读开关量输出状态读线圈输出模拟量命令写多个保持设置仪表参数值寄存器输出单个开关量写单个线圈输出多个开关量写多个线圈指令中涉及到的测量值、参数值、模拟量值均采用位浮点数(标准格式)表示,占用个连续的寄存器。每条指令的具体功能请参见通讯命令详解、通讯命令详解3.1.命令说明所有命令中的数值均采用十六进制表示1) 读测量值命令将测量值定义为个连续的输入寄存器,寻址范围 命令:通讯地址功能码寄存器起始地址寄存器个数校验值响应:通讯地址功能码测量值字节数测量值校验值为寄存器起始地址,时读测量值,时读峰值,时读谷值例:命令:响应
3、: 01040442C本命令读取地址为的仪表的测量值响应表明读取的测量值为42C3999A( 十进制数为 )2) 读输出模拟量值命令 ( 变送输出 )将模拟量值定义为个连续的保持寄存器,寻址范围 命令:通讯地址功能码寄存器起始地址寄存器个数校验值响应:通讯地址功能码模拟量值字节数模拟量值校验值例:命令: 2C响应:本命令读取地址为的仪表的模拟量输出值响应表明读取的模拟量输出值为( 十进制数为, 表示的是模拟量输出量程的)3) 读仪表参数值命令将参数值定义为个保持寄存器,寻址范围,每个连续的保持寄存器表示一个参数值。寄存器起始地址与仪表参数地址的对应关系是:寄存器起始地址参数地址例如,仪表第组参
4、数的地址是,那么它对应的寄存器起始地址:( )命令:通讯地址功能码寄存器起始地址寄存器个数校验值响应:通讯地址功能码参数值字节数参数值校验值例:命令:响应:本命令读取地址为的仪表的参数地址为的参数值响应表明读取的参数值为41A( 十进制数为 )4) 读开关量输入状态命令将开关量输入定义为第个输入离散量命令:通讯地址功能码开关量起始地址开关量个数校验值响应:通讯地址功能码开关量状态字节数开关量状态校验值用个字节表示,最低位为表示开入闭合,为表示开入断开;例:命令:响应:本命令读取地址为的仪表的第点开关量输入状态响应表明本仪表的第点开入闭合5) 读开关量输出状态命令 ( 报警输出 )将开关量输出定
5、义为第 个线圈,寻址范围 ,分别对应第 点报警命令:通讯地址功能码开关量起始地址开关量个数校验值响应:通讯地址功能码开关量状态字节数开关量状态校验值表示开关量地址,取值,分别对应第点报警表示开关量个数用一个字节表示,其中由低位到高位依次表示从开始的连续个开关量输出状态(表示有效,表示无效)例:命令:响应:本命令读取地址为的仪表的第点报警输出状态1 / 2响应表明本仪表的第、两点报警输出有效例:命令:响应:本命令读取地址为的仪表的第、两点报警输出状态响应表明本仪表的第点报警输出有效6) 输出模拟量命令将模拟量值定义为个连续的保持寄存器,寻址范围 命令:通讯地功能寄存器起始寄存器输出模拟量输出的模
6、拟校验址码地址个数字节数量值值正常响应:通讯地址功能码寄存器起始地址寄存器个数校验值模拟量字节数寄存器个数例:命令:响应:本命令控制地址为的仪表输出模拟量值为(十进制数,表示的是模拟量输出量程的)响应表明此指令操作正确注:在使用此指令前应先将仪表第组参数中的设置为如,参数“输入上限”的小数点位置为。如果接收到写参数命令中的参数值为,则将“输入上限”修改为;如果接收到写参数命令中的参数值为,则将“输入上限”修改为注: 设置参数时,必须先将仪表第组参数中的设置为注: 向第组中地址为的参数(不可见)写入则通讯清零,写入则通讯清峰谷值8) 输出单个开关量命令命令:通讯地址功能码开关量起始地址开关量状态
7、校验值正常响应:通讯地址功能码开关量起始地址开关量状态校验值表示开关量地址,取值,分别对应第点报警的取值只能为或为时,表示将相应地址的输出开关量设置为无效为时,表示将相应地址的输出开关量设置为有效例:命令:响应:本命令将地址为的仪表的第点输出开关量设置为有效响应表明此指令操作正确注:在使用此指令前应先将仪表第组参数中的设置为9) 输出多个开关量命令命令:3.2.异常码返回当仪表接收到主机发送的指令,在处理过程中出现异常时,返回异常码返回异常码的格式为:通讯地址差错码异常码校验值的取值为:指令的功能码的取值为:、为的情况有:输入的功能码错误,即输入了、 、以外的功能码为的情况有:寄存器地址错误或
8、开关量地址错误为的情况有:寄存器个数为或开关量个数为在输出模拟量命令中,模拟量字节数错误在设置仪表参数值命令中,参数值字节数错误在输出单个开关量命令中,开关量状态错误在输出多个开关量命令中,开关量状态字节数错误为的情况有:在输出模拟量命令中,仪表第组参数没有设置为或模拟量值超出了所允许的范围在输出开关量命令中,仪表第组参数没有设置为在设置仪表参数值指令中,没有先将仪表第组参数设置为,或参数值超出参数的取值范围,或参数在存储过程中发生了错误3.3.仪表不响应的情况7) 设置仪表参数值命令命令:功能寄存器起寄存器参数值参数通讯地址校验值码始地址个数字节数值正常响应:通讯地址功能码寄存器起始地址寄存
9、器个数校验值参数值字节数寄存器个数此指令中的与读仪表参数值命令中的相同例:命令:响应:本命令将地址为的仪表的参数地址为的参数值设置为(十进制数)响应表明此指令操作正确注:如果参数值的小数点位数多于该参数规定的小数点位数,则省略多余的位数;参数值的小数点位数少于该参数的小数点位数,则将不够的位数补零。例通讯地址错误波特率错误通讯地功能开关量起始开关量开关量状态字开关量校验奇偶校验错误址码地址个数节数状态值校验错误正常响应:命令长度输入错误注:通讯地址功能码开关量起始地址开关量个数校验值在设置状态下,仪表不进行通讯处理此指令中的、和与读输出开关量状态命令中的一致通讯指令中的通讯地址是进制数,而仪表通讯地址参数中例:命令:的数值采用十进制表示。例:如果仪表参数为,通讯命令中地响应:址应该为本命令将地址为的仪表的第、两点开关量设置为有效输出模拟量指令中的模拟量的范围是:响应表明此指令操作正确例:命令:响应:本命令将地址为的仪表的第、两点开关量设置为有效响应表明此指令操作正确注:在使用此指令前应先将仪表第组参数中的设置为2 / 2