Ejemplo de programación de bloques de función del sistema
9.7 Programación de un programa de usuario RK512
9.7
Programación de un programa de usuario RK512
9.7.1
Programa CP 441 RK512 Send/Recv
General
En el bloque de organización OB 1 se accede cíclicamente a los bloques FC21 para enviar
(SFB BSEND) y FC 23 para recibir los datos (SFB BRCV).
En el ejemplo, los bloques de función de sistema SFB BSEND y SFB BRCV funcionan con
los bloques de datos DB 12 y DB 13 como DBs de instancia y DB 42 y DB 43 como DBs de
envío y recepción.
La configuración de los bloques de función de sistema de este ejemplo se produce en parte
con constantes y en parte con operandos actuales direccionados simbólicamente.
Para BSEND y el STATUS correspondiente, el ID del enlace especificado es 1000
(hexadecimal). Para BRCV y el STATUS correspondiente, el ID del enlace especificado es
1001 (hexadecimal). Si trabaja con un CP 441-1, debe especificar también el ID de enlace
1000 (hexadecimal) para BRCV y el correspondiente STATUS. De ese modo podrá recibir
datos desde el interlocutor a través de la interfaz 1.
Para la transmisión de datos se utiliza el par de bloques BSEND y BRCV. Para ambos
bloques se utiliza el mismo R_ID.
Los valores de R_ID se registran una única vez durante el arranque y ya no pueden
modificarse.
Para garantizar que al principio se ejecuten una vez los bloques de función de sistema
BSEND y STATUS con REQ = "0" (de ese modo se consigue un flanco de "0" a "1" en
REQ), el parámetro REQ del OB 100 se pone a "0" una única vez tras el rearranque (véase
el apartado "Diagnóstico a través del área de notificación de errores SYSTAT
(Página 204)").
Descripción de FC 21 (SEND)
Sección del programa "Generate edge SEND_REQ":
El BSEND se ejecuta una vez al comienzo con BSEND_REQ =0. A continuación
BSEND_REQ adopta el valor 1. Si en el parámetros de control BSEND_REQ del BSEND se
reconoce un cambio de estado de señal de 0 a 1, la petición BSEND se inicia.
Con BSEND_DONE = 1 ó BSEND_ERROR = 1, BSEND_REQ pasa de nuevo a "0".
Sección del programa "BSEND_DONE = 1"
Si la transferencia se completa con éxito, en la salida de parámetros del BSEND
BSEND_DONE pasa a 1.
A fin de posibilitar la distinción de transferencias consecutivas, en la palabra de datos 0 del
bloque fuente DB 42 se añade un contador de envíos "BSEND_COUNTER_OK".
234
Configurar y parametrizar el acoplamiento punto a punto CP 441
Manual de producto, 04/2012, A5E00405452-03