J'ai un problème concernant le type de données que je reçois lors de la lecture d'un SPS avec Labview.Numéro d'interprète Labview en tant que flottant
je reçois un tableau 1D de valeurs entières 32 bits de la S7Read_VI que je dois interprete comme valeurs flottantes que ces valeurs sont de type REAL dans le SPS. Labview affiche les nombres comme ceci: 1131655987
qui est censé être 243.7 (quand interprété comme float). Le s7Read_VI offre également des lectures de type REAL lui-même, mais de toute façon cela ne fonctionne pas (certains collègues ont également remarqué ce problème).
J'essaie maintenant d'interpréter ces nombres (1131655987
) comme nombres à virgule flottante dans labview et jusqu'ici n'ai pas trouvé une solution valide.
Est-ce que andybody a une idée de comment je peux interpréter un nombre décimal comme un nombre à virgule flottante? une conversion comme SGL montré dans l'image, n'a pas de sens je crois, comme le nombre est déjà flottant et juste affiché comme décimal.
Meilleures salutations, jonnyx
'1131655987' est un entier de 32 bits. Si vous interprétez la valeur (les 32 bits) comme un flottant de 32 bits, vous obtenez en effet '243.7' (je viens de vérifier cela). Je ne sais pas comment vous pouvez lancer un tel nombre entier pour flotter dans Labview, cependant. En Pascal, ce serait 'IntValue: = 1131655987; myFloat: = PSingle (@Intvalue) ^; ', en C (probablement UB, bien que):' int invalue = 1131655987; float myfloat = * ((float *) (void *) & intvalue); ' –
ouais, pour ceux qui se demandent,' 1131655987' est '4373B333' en hexadécimal, que vous pouvez passer dans un convertisseur à flotteur que vous pouvez trouver en ligne, par exemple: [link] (https://www.h-schmidt.net/FloatConverter/IEEE754de.html) – jonnyx