Sistema Operativo: Windows 11
Machines Simulator 3.19.1
OPC Server: Kepserver 6.9.584
PLC: Siemens 1211c DC/DC/RLY
Tengo una simulación de un tanque de líquido. En MachinesSimulator hice un UDC con un script (si una válvula está abierta, la bomba encendida y un par de condiciones más, el nivel del depósito sube)
Hasta hace unos días, funcionaba perfectamente. Escribo la variable analógica con IOManager.SetAInput()
Ahora, sin haber hecho cambios, da el error de la imagen.
Cosas que he probado:
- Comentar la escritura de las analógicas en el código: Si lee/escribe solo variables digitales: Funciona (pero obviamente no hay nivel)
- Dejar en el código la escritura de las analógicas pero no usarlas en el driver: Funciona (pero obviamente no hay nivel)
- Escribir la analógica en un DB en lugar de un IW: No funciona, sale el error y se "cuelga"
- He probado tanto a escribir en un word, como en un float, etc. No funciona
Alguna idea?
Debes de verificar que los valores escritos en la variable 'valor' que usas en la función IOManager.SetAInput(valor) son rangos válidos para el sistema donde envías los datos.
haz una prueba con valores fijos para ver que no se trata de un problema de comunicación, ejm:
IOManager.SetAInput(1)
IOManager.SetAInput(5)
IOManager.SetAInput(0.25f)
etc...
Verificado todo y sigue igual.
De momento, para salir del paso, me envío las variables a un 1200 (s7comm) y luego ese 1200 las reenvía al resto de PLCs, leyendo también sus salidas y enviandolas a MS.
Seguiré investigando.
Gracias por la respuesta