Vedo che hai dichiarato la variabile di tipo int, non so che tipo di variabile hai definito nella impostazione di X sul pannello. Le variabili LW sul pannello sono variabili a 16 bit quindi:
- Se dichiari la variabile come 16-bit Signed nella macro la funzione GetData dovrà appoggiare il valore su una variabile di tipo short.
- Se dichiari la variabile come 32-bit Signed (Utilizza 2 LW consecutive) nella macro la funzione GetData dovrà appoggiare il valore su una variabile di tipo int.
- Se dichiari la variabile come 32-bit Float (Utilizza 2 LW consecutive) nella macro la funzione GetData dovrà appoggiare il valore su una variabile di tipo float.
Ecco la macro da me testata.
macro_command main()
short V16Bit=0
int V32Bit=0
float VFloat=0
GetData(V16Bit, "Local HMI", LW, 0, 1)
GetData(V32Bit, "Local HMI", LW, 10, 1)
GetData(VFloat, "Local HMI", LW, 20, 1)
TRACE("Value 16-bit: %d", V16Bit)
TRACE("Value 32-bit: %d", V32Bit)
TRACE("Value Float: %f", VFloat)
end macro_command