En este tema se describen la gestión y las operaciones de las funciones de comunicación de los controladores utilizando el bloque de funciones READ_VAR como ejemplo. (El estándar PLCopen define reglas para los bloques de funciones).
NOTA: Estos parámetros son comunes a todos los bloques de funciones PLCCommunication (excepto ADDM).
En este gráfico se resaltan los parámetros comunes a todos los bloques de funciones de la biblioteca PLCCommunication:
Estos parámetros los comparten varios bloques de funciones de la biblioteca PLCCommunication:
Entrada |
Tipo |
Comentario |
---|---|---|
Execute |
BOOL |
La función se ejecuta en el flanco ascendente de esta entrada. NOTA: si xExecute se establece en TRUE en el primer ciclo de tarea EN EJECUCIÓN después de un reseteo en frío o en caliente, el flanco ascendente no se detecta. |
Abort |
BOOL |
Cancela la operación en curso en el flanco ascendente |
Addr |
ADDRESS |
La dirección del dispositivo externo de destino (puede ser la salida del bloque de funciones ADDM) |
Timeout |
WORD |
El timeout del intercambio es un múltiplo de 100 ms (0 para infinito) NOTA: El Timeout time está fijado en @1 s para el HMI SCU y no puede establecerse para los bloques de funciones de comunicación de Modbus. |
NOTA: una operación de bloque de funciones puede requerir varios intercambios. El timeout se aplica a cada intercambio realizado entre el controlador y el modem, de manera que la duración global del bloque de funciones puede ser mayor que el timeout. |
Salida |
Tipo |
Comentario |
---|---|---|
Done |
BOOL |
Done se establece en TRUE cuando la función se completa correctamente. |
Busy |
BOOL |
Busy se establece en TRUE mientras la función está en curso. |
Aborted |
BOOL |
Aborted se establece en TRUE cuando la función se cancela con la entrada Abort. Cuando la función se cancela, CommError contiene el código Canceled - 16#02 (el intercambio se detiene cuando lo solicita un usuario). |
Error |
BOOL |
Error se establece en TRUE cuando la función se detiene debido a que se ha detectado un error. Cuando se ha detectado un error, CommError y OperError contienen información sobre el error detectado. |
CommError |
BYTE |
CommError contiene códigos de errores de comunicación. |
OperError |
DWORD |
OperError contiene códigos de errores de funcionamiento. |
NOTA:
En cuanto la salida Busy se restablece en 0, una (y sólo una) de estas 3 salidas se establece en 1:
oDone
oError
oAborted
Los bloques de funciones requieren un flanco ascendente para iniciarse. El bloque de funciones debe ver en primer lugar la entrada Execute como falsa para detectar un flanco ascendente posterior.
|
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO |
Realice siempre la primera llamada a un bloque de funciones con su entrada Execute establecida en FALSE de manera que detecte un flanco ascendente posterior. |
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al equipo. |
La función se inicia en el flanco ascendente de la entrada Execute. A continuación se establece la salida Busy en TRUE. En esta figura se muestra el comportamiento del bloque de funciones cuando se completa automáticamente la operación (con o sin errores detectados):
Nota 1: El bit de Done o Error se establece en TRUE sólo durante un ciclo de tarea sólo si Execute ya se ha restablecido en FALSE cuando ha finalizado la operación.
En esta figura se muestra la función que cancela la aplicación. El flanco ascendente de la entrada Abort cancela la función en curso. En esos casos, la salida cancelada se establece en 1 y CommError contiene el código Canceled - 16#02 (intercambio detenido por una petición de usuario):
Nota 1: el bit de Abort se establece en TRUE sólo durante un ciclo de tarea sólo si Execute ya se ha restablecido en FALSE cuando se ha producido la petición de cancelación.