Salut,
maintenant que je suis expert en Modbus TCP pour le Siemens je peux t'aider

(
viewtopic.php?p=40405#p40405) lol
Ton MB_MODE = 0 donc tu fait de la lecture de donnée :
Sur la doc du materiel c'est indiqué (page 26
https://www.qsenz.nl/application/files/ ... 200114.pdf)=>
Code : Tout sélectionner
Mapping of Parameter specific Input Register :
Input register,16bit, RO => parameter 1 result :
Tag name => bmP1Status
Address => 0x0080
Type => bitmask
Length =>1
R/W => R
Description => Para.1 status
Address=>128
Tag name => xP1Value
Address => 0x0082
Type => float
Length =>1
R/W => R
Description => Para.1 result
Address=>130
Il faut donc mettre la valeur 40129 à ton MB_DATA_ADDR puis, à partir de la logiquement je dirais que tu as, dans ton MB_DATA_PTR:
Premiere valeur :
PTR[1] = status de la connexion
PTR[2] = 1ere partie de la valeur
PTR[3] = 2eme partie de la valeur
Deuxième valeur :
PTR[4] = status de la connexion
PTR[5] = 1ere partie de la valeur
PTR[6] = 2eme partie de la valeur
Etc...
D'abord, bien allée dans propriété et désactiver l’accès au bloc optimisé de ton DB ou il y a tes variables PTR ensuite, par exemples, si le numéro de décalage de ta variable PTR[2] = 22.0 (et logiquement PTR[3] = 24.0) alors il te suffit de convertir ta variable PTR[2] qui est en INT en REAL et la normalement la variable REAL va donc prendre les Bytes 22.0 à 25.0 soit les INT PTR[2] et PTR[3] et donc, tu auras ta bonne valeur.
Dites moi si c'est clair et corrigez moi si je me trompe
