需要同時(shí)讀取寄存器的上、下位,共8位16進(jìn)制數(shù)。
●若讀取到的8位16進(jìn)制數(shù)的第一位數(shù)值≤7,則為正數(shù),請(qǐng)直接轉(zhuǎn)換為十進(jìn)制。
●若讀取到的8位16進(jìn)制數(shù)的第一位數(shù)值>7,則為負(fù)數(shù),先將8位16進(jìn)制數(shù)轉(zhuǎn)換為32位二進(jìn)制數(shù)值,進(jìn)行取反、加一,然后將得到得32位二進(jìn)制數(shù)值轉(zhuǎn)換位10進(jìn)制數(shù)值,最后加上負(fù)號(hào)。
例:驅(qū)動(dòng)器AZD-KD(站號(hào)設(shè)定為1),讀取檢測(cè)位置。
①通過(guò)AZ功能篇說(shuō)明書(shū)中可以確認(rèn)到檢測(cè)位置的寄存器地址為上位00CC、下位00CD。
②使用03H功能碼同時(shí)讀取上位和下位,即寫(xiě)入指令為01 03 00CC 0002 0434。
③反映為 01 03 04 XXXX XXXX YYYY,其中XXXX XXXX為讀取到數(shù)值,即當(dāng)前檢測(cè)位置,YYYY為校驗(yàn)碼。
●若XXXX XXXX為0003 FC12,第一位數(shù)值≤7,為正數(shù)。
直接轉(zhuǎn)換為10進(jìn)制數(shù)261138,即檢測(cè)位置為261138step。
●若XXXX XXXX為FFFC 0322,第一位數(shù)值>7,為負(fù)數(shù)。
◇先將FFFC 0322轉(zhuǎn)化為32位二進(jìn)制數(shù)值:1111 1111 1111 1100 0000 0011 0010 0010。
◇取反:0000 0000 0000 0011 1111 1100 1101 1101。
◇加一:0000 0000 0000 0011 1111 1100 1101 1110。
◇轉(zhuǎn)化為10進(jìn)制數(shù):261342,加上-號(hào),即檢測(cè)位置為-261342step。