Bonjour, j'ai un équipement avec qui je communique en Modbus, je récupère registre type Word de 16 bits, et je dois regrouper deux registres qui se suivent pour avoir une valeur réel de 32 bits
pour cela j'ai utilisé la méthode BitConverter.GetBytes et BitConverter.ToSingle
Pitch_Col2 = Math.Round(BitConverter.ToSingle(BitConverter.GetBytes(RegistresSix.InputReg[0][2] << 16 | RegistresSix.InputReg[0][3]), 0),7);
avec :
- RegistresSix.InputReg[0][2] = premier registre
- RegistresSix.InputReg[0][3] = deuxième registre
mon problème se pose quand le deuxième registre est négatif j’obtient NaN au lieu de la valeur
mais par contre quand j'ai le premier registre qui est négatif ou les deux qui sont positifs j'obtient ce que je veux
vous avez des solutions ou des explication à ce problème ?
Partager