Conmutan la 3, 4 y 8 perfectamente pero la 1 y la 2 no lo hacen.
Los números de registros cargados en la pantalla son 6001, 6002 ... 6008.
Probé con 1, 2 ... 8 pero el relé enciende y se apaga inmediatamente después.
Las lámparas virtuales en la pantalla conmuntan bien, lo único que no funciona son las salidas 1 y 2.
Buenas tardes Mariano,
No lo pude probar hoy, pero por lo que veo en el programa, estás usando
números en vez de las constantes
DOUT1,
DOUT2,
DOUT3, etc en las funciones
DoutSetOn() y
DoutSetOn().
Proba remplazarlas todas por las constantes respectivas:
if(MbRtuServGetGpCoil(6001)){DoutSetOn(DOUT1);}
else{DoutSetOff(DOUT1);}
if(MbRtuServGetGpCoil(6002)){DoutSetOn(DOUT2);}
else{DoutSetOff(DOUT2);}
if(MbRtuServGetGpCoil(6003)){DoutSetOn(DOUT3);}
else{DoutSetOff(DOUT3);}
if(MbRtuServGetGpCoil(6004)){DoutSetOn(DOUT4);}
else{DoutSetOff(DOUT4);}
if(MbRtuServGetGpCoil(6008)){DoutSetOn(DOUT8);}
else{DoutSetOff(DOUT8);}
Las constantes
DOUT tienen distinto valor numérico que utilizar "1, 2, 3, ..., etc".
Por ejemplo, hacer DoutSetOff(3) es equivalente a hacer DoutSetOff(DOUT1 | DOUT2), apaga las dos al mismo tiempo. Ya que las constantes representan BITs, y el número 3, en binario es 11, es decir, ambos bits en la posición de DOUT1 y DOUT2.
Avísame si te sigue fallando.
Saludos!