Configuración de dispositivos mediante el canal de servicio
El maestro Sercos puede usar el canal de servicio (SVC) para leer y escribir IDN y comandos de procedimiento. La comunicación mediante SVC usa el canal de tiempo real, pero no es cíclica. El tiempo de ejecución típico de un parámetro de 4 bytes es de aproximadamente 10 ciclos Sercos. En función de la disponibilidad de SVC, el tiempo de ejecución puede ser considerablemente mayor. Como es posible colocar en cola hasta 20 comandos de procedimiento y operaciones de lectura y escritura de IDN en un búfer común, un comando de procedimiento o una operación de lectura o escritura de IDN dados pueden tardar más tiempo en finalizar.
Consulte Comunicación Sercos no cíclica mediante RTC si desea más información sobre SVC y consulte la sección Parámetros Sercos si desea más información sobre IDN y comandos de procedimiento.
Lectura y escritura de comandos de procedimiento
Los comandos de procedimiento se ejecutan de forma asincrónica. Esto significa que llamar a un comando de procedimiento no bloquea la tarea. Debe leer el estado del comando de procedimiento si desea saber si el comando de procedimiento ha finalizado.
Hay dos formas de ejecutar un comando de procedimiento:
oMediante FC_ExecuteProcedureCommandAsync con IDN y dirección de topología de los parámetros de entrada
oMediante FC_ExecuteProcedureCommandAsyncViaHandle con IDN y controlador de los parámetros de entrada
Posibles valores devueltos:
DINT |
Nombre (ET_Result) |
Descripción |
---|---|---|
0 |
Ok |
Comando de procedimiento ejecutado. |
8 |
Pending |
Comando de procedimiento esperando ejecución. |
–1 |
DeviceManagerInvalidDeviceHandle |
El comando de procedimiento no se puede ejecutar. Solo para llamada con controlador. |
-2 |
DeviceManagerNoPhysicalSlaveConnected |
El comando de procedimiento no se puede ejecutar. |
-11 |
TopologicalAddressOutOfBounds |
El comando de procedimiento no se puede ejecutar. Solo para llamada con dirección de topología. |
-15 |
ServiceChannelIdnInvalid |
El comando de procedimiento no se puede ejecutar. |
-43 |
ServiceChannelBusy |
El comando de procedimiento no se puede ejecutar. |
-99 |
UnexpectedFeedback |
El comando de procedimiento no se puede ejecutar. |
Hay dos formas de leer el estado de un comando de procedimiento:
oMediante FC_ReadProcedureCommandAsync con dirección de topología de los parámetros de entrada
oMediante FC_ReadProcedureCommandAsyncViaHandle con controlador de los parámetros de entrada
Los valores devueltos son los mismos que en la ejecución de un comando de procedimiento. La llamada devuelve el estado del comando de procedimiento que se está procesando. Si no se está procesando ningún comando de procedimiento, la llamada devuelve el estado del siguiente comando de procedimiento de la cola. Un comando de procedimiento ha finalizado si el valor devuelto no es 8.
La lectura o la escritura de un parámetro se realizan de forma asincrónica. Esto significa que la tarea no se bloquea.
Use el bloque de funciones FB_WriteIDN para escribir un parámetro y el bloque de funciones FB_ReadIDN para leer los valores de un parámetro.
El tiempo de espera es uno de los parámetros de entrada de FB_WriteIDN y FB_ReadIDN. El valor predeterminado del tiempo de espera es 1 000 000 µs (1 s). El tiempo de espera empieza a contar cuando se desencadena el comando de lectura o escritura, no cuando empieza en la cola. En función del número de elementos de la cola y del tiempo necesario para procesar estos elementos, es posible que un comando de lectura o escritura agote su tiempo de espera incluso antes de empezar a procesarse.