需要同时读取寄存器的上、下位,共8位16进制数。
●若读取到的8位16进制数的第一位数值≤7,则为正数,请直接转换为十进制。
●若读取到的8位16进制数的第一位数值>7,则为负数,先将8位16进制数转换为32位二进制数值,进行取反、加一,然后将得到得32位二进制数值转换位10进制数值,最后加上负号。
例:驱动器AZD-KD(站号设定为1),读取检测位置。
①通过AZ功能篇说明书中可以确认到检测位置的寄存器地址为上位00CC、下位00CD。
②使用03H功能码同时读取上位和下位,即写入指令为01 03 00CC 0002 0434。
③反映为 01 03 04 XXXX XXXX YYYY,其中XXXX XXXX为读取到数值,即当前检测位置,YYYY为校验码。
●若XXXX XXXX为0003 FC12,第一位数值≤7,为正数。
直接转换为10进制数261138,即检测位置为261138step。
●若XXXX XXXX为FFFC 0322,第一位数值>7,为负数。
◇先将FFFC 0322转化为32位二进制数值:1111 1111 1111 1100 0000 0011 0010 0010。
◇取反:0000 0000 0000 0011 1111 1100 1101 1101。
◇加一:0000 0000 0000 0011 1111 1100 1101 1110。
◇转化为10进制数:261342,加上-号,即检测位置为-261342step。