|
Descripción Se puede usar la comunicación abierta a través de PROFINET, por ejemplo, para el intercambio de datos a través de la interfaz Industrial Ethernet integrada de una CPU. Para ello, se puede trabajar con los protocolos dados a continuación:
Se dispone de los siguientes bloques de comunicación para la comunicación abierta por medio de Industrial Ethernet usando el protocolo UDP:
- FB65 "TCON" para la conexión del extremo UDP
- FB66 "TDISCON" para la desconexión del extremo UDP
- FB67 "TUSEND" para el envío de datos
- FB68 "TURCV" para la recepción de datos
Estos bloques de comunicación se encuentran disponibles en la Librería Estándar -> Bloques de comunicación.
Copiar las versiones más recientes de los bloques de comunicación mencionados con anterioridad de la librería estándar en su programa de usuario y después realizar llamadas a éstos en el programa de usuario.
Los parámetros para la conexión del extremo UDP se guardan en una estructura de datos. En este ejemplo, se usa la estructura de datos UDT65 "TCON_PAR", que se parametriza por parte del usuario. No hay necesidad de configurar un enlace de comunicación en NetPro.
Descripción del programa de ejemplo El programa de S7 contiene la llamada al FB65 "TCON" y la estructura de datos UDT65 "TCON_PAR" con los parámetros para la conexión del extremo UDP. El programa de S7 incluye también la llamada a los bloques de comunicación FB67 "TUSEND" y FB68 "TURCV" de la librería estándar -> Bloques de comunicación. El FB67 "TUSEND" es para el envío de datos a una estación S7, a una estación PC o a un sistema de otro fabricante. El FB68 "TURCV" es para la recepción de datos procedente de una estación S7, de una estación PC o de un sistema de otro fabricante.
Crear primero la configuración de hardware para la estación S7-300. Configurar el bytes de marcas 10 como marca de reloj. La petición de envío se dispara a través de dicha marca de ciclo. Guardar y compilar la configuración de hardware en la estación S7-300 y transferirla a la CPU.
El programa de STEP 7 consta de los bloques OB100, OB1, FB500, DB500, FC95, FC96, UDT65, UDT66, y FB63, FB64, FB67 y FB68.
OB100 El OB100 es un OB de rearranque y se ejecuta cuando la CPU se reinicia (arranque en caliente). En este OB, se habilita el primer disparo de comunicación con la marca M0.3.
OB1 El OB1 se ejecuta de forma cíclica. En el OB1 se llama al FB500 con el bloque de datos de instancia DB500 y la marca M0.3 como parámetro INIT_COM. La marca M0.3 se pone a cero en el OB1 después de que se haya llamado al FB500.

Fig. 01
FB500 Al FB500 se le llama cíclicamente en el OB1.
Las funciones FC95 "SET_UDP_REMOTE" y FC96 "SET_UDP_ENDPOINT" así como los bloques de función FB65 "TCON", FB67 "TUSEND", FB68 "TURCV" y FB66 "TDISCON" se llaman en el FB500.

Fig. 02
Usando los parámetros de entrada de la función FC96 "SET_UDP_ENDPOINT" se definen los parámetros del extremo UDP.
| Parámetros de entrada |
Tipo de dato |
Descripción |
| ID |
Word |
Número de enlace |
| DEV_ID |
Byte |
B#16#01 para la IM151-8 PN/DP CPU
B#16#02 para la CPU 31x-2 PN/DP, IM154-8 CPU
B#16#03 para la CPU 319-3 PN/DP
B#16#05 para la CPU 412-2 PN, CPU 414-3 PN/DP, CPU 416-3 PN/DP |
| LOC_PORT |
DInt |
Puerto local en la CPU
Números de puerto permitidos para las CPUs de la gama S7-300 hasta e incluyendo la V2.6 y para las CPUs de la gama S7-400 hasta e incluyendo la V5.1: de 2000 a 5000
Números de puerto permitidos para las CPUs del S7-300 de la V2.7 en adelante y para las CPUs del S7-400 de la V5.2 en adelante: de 1 a 49151 |

Fig. 03
Usando los parámetros de entrada de la función FC95 "SET_UDP_REMOTE" se definen los parámetros del extremo UDP.
| Parámetros de entrada |
Tipo de dato |
Descripción |
| REM_PORT |
DInt |
Puerto remoto del interlocutor de comunicación
Números de puerto permitidos para las CPUs de la gama S7-300 hasta e incluyendo la V2.6 y para las CPUs de la gama S7-400 hasta e incluyendo la V5.1: de 2000 a 5000
Números de puerto permitidos para las CPUs del S7-300 de la V2.7 en adelante y para las CPUs del S7-400 de la V5.2 en adelante: de 1 a 49151 |
| IP_ADDR1 |
Int |
Dirección IP del interlocutor de comunicación |
| IP_ADDR2 |
Int |
| IP_ADDR3 |
Int |
| IP_ADDR4 |
Int |
Nota Se introduce el número de enlace en el segmento 2 del FB500. Esta información se guarda en una variable estática y, de esa manera, en el bloque de datos de instancia DB500.

Fig. 04
El establecimiento de la conexión del extremo UDP se inicia con un flanco positivo en el parámetro de entrada "REQ" del FB65 "TCON". La estructura de datos UDT65 "TCON_PAR" con la parametrización del extremo UDP local se incorpora en el bloque de datos de instancia del FB500.
En el parámetro de entrada CONNECT del FB65 "TCON", se especifica la zona de memoria que contiene la parametrización del extremo UDP local.
La conexión del extremo UDP se establece en el arranque del sistema y se mantiene hasta que se deshabilita con el FB66 "TDISCON", la CPU pasa a modo STOP, o la fuente de alimentación se desconecta.

Fig. 05
El trabajo de envío se dispara a través de un flanco positivo en el parámetro de entrada "REQ" del FB67 "TUSEND". El disparo del trabajo de envío se controla por medio de la marca de ciclo M10.6 y el tag "C1.SEND_BUSY". Si el trabajo de envío se está ejecutando, "C1.SEND_BUSY" estará activo. Entonces no será posible lanzar una nueva petición de envío.
La zona de memoria que contiene los datos que se han de enviar se especifica en el parámetro de entrada "DATA".
Se introduce el número de bytes a enviar en el parámetro de entrada "LEN".
En el parámetro de entrada "ADDR" se especifica la dirección de la zona de datos donde se guarda la dirección IP del receptor. En este ejemplo, los parámetros de dirección del interlocutor de comunicación se guardan en la estructura de datos UDT66 "TADDR_PAR". Esto se incorpora en el bloque de datos de instancia DB500.
Los parámetros de salida "DONE", "ERROR" y "STATUS" son necesarios para poder evaluar el trabajo.

Fig. 06
Si el trabajo de envío se ha completado correctamente, "C1.SEND_BUSY" se desactivará. Ya se podrá lanzar un nuevo trabajo de envío.
Si el trabajo de envío finaliza con un error, entonces el "C1.SEND_BUSY" también se desactivará y el valor del parámetro de salida "STATUS" del FB67 se guardará para poder analizar la causa del error.

Fig. 07

Fig. 08
Los datos se pueden recibir tan pronto como esté conectado el extremo UDP.
Con el parámetro de entrada "DATA", se especifica la dirección y longitud de la zona de datos donde se guardan los datos que se reciben.
En el parámetro de entrada "ADDR" se especifica la dirección de la zona de datos donde se guarda la dirección IP del emisor. En este ejemplo, los parámetros de dirección del interlocutor de comunicación se guardan en la estructura de datos UDT66 "TADDR_PAR". Esto se incorpora en el bloque de datos de instancia DB500.

Fig. 09
El parámetro de salida "NDR" se utiliza para mostrar que se han recibido nuevos datos. El parámetro de salida RCVD_LEN indica la longitud de los datos recibidos.
Si no se reciben los datos correctamente, entonces el valor del parámetro de salida "RCVD_LEN" se guardará.
Si no se reciben los datos correctamente, entonces el valor del parámetro de salida STATUS se guardará y evaluará.

Fig. 10
Se puede desconectar el extremo UDP con el FB66 "TDISCON". Se inicia la petición de desconectar el extremo UDP a través de un flanco positivo en el parámetro de entrada "REQ" del FB66 "TDISCON".

Fig. 11
El proyecto de STEP 7 como descarga El proyecto de STEP 7 contiene un programa de ejemplo para la llamada al FB500 y a las funciones FC95 "SET_UDP_ENDPOINT" y FC96 "SET_UDP_REMOTE", a los bloques FB65 "TCON", FB66 "TDISCON", FB67 "TUSEND" y FB68 "TURECV" con evaluación de estados. Se ha creado con el STEP 7 V5.4 SP3.
Sample_open_UDP.zip ( 44 KB )
Configuración de conexiones UDP Con el fin de enviar datagramas UDP a múltiples interlocutores de comunicación, se configuran extremos UDP locales y remotos adicionales. Copiar el FB500 de manera que se tengan más bloques de función (como por ejemplo el FB501). Cambiar los parámetros del extremo UDP local y remoto y generar nuevos bloques de datos de instancia.
El ID del extremo UDP local se puede seleccionar en el rango de valores que va desde 1 hasta 4095.
Los puertos local y remoto para las CPUs de la gama S7-300 a partir de la V2.7 y para las CPUs de la gama S7-400 a partir de la V5.2 se pueden seleccionar del rango de valores comprendido entre 1 y 49151.
El ID y el puerto han de ser únicos para cada extremo UDP local, en otras palabras, se ha de definir un ID diferente y un puerto diferente para cada extremo UDP local.
Definir el puerto remoto y la dirección IP conforme con la configuración del interlocutor de comunicación.
La siguiente tabla muestra cómo configurar extremos UDP locales y remotos múltiples. En este ejemplo, se usan el mismo ID y el mismo puerto para los extremos local y remoto.
| Extremo UDP local / remoto |
1 |
2 |
3 |
| ID |
1 |
2 |
3 |
| LOC_PORT |
2000 |
2001 |
2002 |
| REM_PORT |
2000 |
2001 |
2002 |
| Dirección IP del interlocutor de comunicación |
172.16.43.40 |
172.16.43.50 |
172.16.43.60 |
Información adicional
- Se dispone de información detallada sobre la comunicación abierta a través de Industrial Ethernet en el manual "Funciones de sistema y estándares para el S7-300 / 400 Volumen 1 y Volumen 2" en la entrada con ID: 44240604.
- Se dispone de instrucciones para la configuración de un enlace UDP para la comunicación a través de los CPs del S7-300 y del S7-400 de Industrial Ethernet bajo la entrada con ID: 47885893.
|