×
Siemens Industry Online Support
Siemens AG
Tipo de artículo: FAQ ID de artículo 29738463, Fecha del artículo: 09/05/2015
(7)
Evaluar

¿Cómo se programan los bloques de comunicación FB67 "TUSEND", FB68 "TURCV", FB65 "TCON" y FB66 "TDISCON" para utilizar el protocolo UDP en el intercambio de datos a través de las interfaces PROFINET integradas de una CPU del S7-300 / S7-400?

  • Artículo
  • Relacionado con producto(s)
Para el intercambio de datos a través de la interfaz Industrial Ethernet de una CPU, se puede utilizar la comunicación abierta de Industrial Ethernet entre otras.

En este caso se soportan los siguientes protocolos:

  • TCP
  • ISO-on-TCP
  • UDP

Para la comunicación abierta a través de Industrial Ethernet con el ayuda del protocolo UDP se dispone de los siguientes bloques de comunicación:

  • FB65 "TCON": para configurar el punto final UDP
  • FB66 "TDISCON": para desactivar el punto final UDP
  • FB67 "TUSEND": para el envío de datos
  • FB68 "TURCV": para la recepción de datos

Estos bloques de comunicación están disponibles en la librería estándar -> Bloques de comunicación.
Copie la versión actual de los bloques de función arriba mencionados desde la librería estándar e insértelos en el programa de usuario, y llámelos finalmente desde éste.
Los parámetros para configurar el punto final UDP se guardan en una estructura de datos. En este ejemplo se utiliza la estructura de datos "OUCW_2". Esta estructura de datos se guarda en el bloque de datos DB1 y lo parametriza el propio usuario.

Indicación

  • Para la configuración sencilla del punto final UDP se puede utilizar el asistente para "Open Communication". Este asistente está disponible en la página del Customer Support con número ID 98957840 para su descarga.
  • En enlace UDP no se configura en el NetPro.

La tabla 01 muestra la disposición de la estructura de datos "OUCW_2", en la cual se guardan los parámetros para configurar el punto final UDP.
 

Byte Parámetro Tipo de datos Descripción
0 a 1 block_length WORD Longitud de la estructura "OUCW_2"
2 a 3 id BYTE Referencia al enlace entre el programa de usuario y la capa de comunicación del sistema operativo
Rango de valores: w#16#0001 a w#16#0FFF
El valor de este parámetro debe indicarse en el parámetro ID de cada bloque.
4 connection_type BYTE Variante del protocolo UDP: B#16#13
5 active_est BOOL Identificador para el modo para crear el enlace
Este parámetro debe tener el valor FALSE.
6 local_device_id BYTE Comunicación a través de la interfaz PN integrada de la CPU 315-2 PN/DP: B#16#02
7 local_tsap_id_len BYTE Longitud utilizada del parámetro "local_tsap_id": 2 bytes
8 rem_subnet_id_len BYTE Este parámetro no se utiliza actualmente. Tiene el valor B#16#00.
9 rem_staddr_len BYTE Este parámetro no se utiliza actualmente. Tiene el valor B#16#00.
10 rem_tsap_id_len BYTE Este parámetro no se utiliza actualmente. Tiene el valor B#16#00.
11 next_staddr_len BYTE Este parámetro no se utiliza actualmente. Tiene el valor B#16#00.
12 a 27 local_tsap_id ARRAY
[1 ..16] of BYTE
Número del puerto local, por ejemplo 2000
local_tsap_id[1] = B#16#7 (byte alto del número del puerto en representación hexadecimal)
local_tsap_id[2] = B#16#D0 (byte bajo del número del puerto en representación hexadecimal)
local_tsap_id[3-16] = B#16#00
28 a 33 rem_subnet_id ARRAY
[1 ..6] of BYTE
Este parámetro no se utiliza actualmente.
rem_subnet_id[1-6] = B#16#00
34 a 39 rem_staddr ARRAY
[1 ..6] of BYTE
Este parámetro no se utiliza actualmente.
rem_staddr[1-6] = B#16#00
40 a 55 rem_tsap_id ARRAY
[1 ..16] of BYTE
Este parámetro no se utiliza actualmente.
rem_tsap_id[1-16] = B#16#00
56 a 61 next_staddr ARRAY
[1 ..6] of BYTE
Este parámetro no se utiliza actualmente.
next_staddr[1-6] = B#16#0
62 a 63 spare WORD Reservado, el parámetro tiene el valor W#16#0000.
Tabla 01

Descripción del programa ejemplo
El programa S7 contiene la llamada al FB65 "TCON" y la estructura de datos UDT65 "OUCW_2" en la que se guardan los parámetros para configurar el punto final UDP. Además, el programa S7 contiene 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" sirve para enviar datos a una estación S7, a una estación PC o a un sistema ajeno. El FB68 "TURCV" sirve para recibir datos de una estación S7, a una estación PC o a un sistema ajeno.

Cree primero la configuración hardware de la estación S7-300. Tenga en cuenta que hay que configurar el byte de marcas 100 como marca de ciclo. A través de esta marca de ciclo se activa el servicio de envío. Guarde y compile la configuración hardware de la estación S7-300 y cárguela en la CPU.

El programa de STEP 7 contiene los bloques OB100, OB1, FB1, DB11, DB1, DB100, DB200, FB63, FB64, FB67 y FB68.

OB100
El OB 100 es un OB de arranque que se ejecuta cuando se rearranca la CPU (rearranque en caliente). En este OB se crea la liberación para la primera comunicación con ayuda de la marca M0.3.

OB1
El OB1 se ejecuta de forma cíclica. En el OB1 se llama al FB1 con el bloque de datos de instancia DB11, con la marca M0.3 como parámetro INIT_COM y con la marca M10.0 como parámetro ABORT. La marca M0.3 se resetea de nuevo en el OB1 tras la llamada al FB1.


Figura 01

FB1
El FB1 se llama cíclicamente en el OB1. Dentro del FB1 se llama a los siguientes bloques de función:

  • FB65 "TCON"
  • FB67 "TUSEND"
  • FB68 "TURCV"
  • FB66 "TDISCON"

Definición del número de enlace
El número de enlace se puede adaptar individualmente. Adapte el número de enlace en el segmento 2 del FB1 en función de cada configuración.
El número de enlace se guarda en una variable estática dentro del bloque de datos de instancia DB11.
En este ejemplo se define el número de enlace "3".


Figura 02

Creación del enlace
La creación del punto final UDP se arranca con un flanco positivo en el parámetro de entrada "REQ" del FB65 "TCON". La estructura de datos "OUCW_2" con la parametrización del punto final UDP se inserta en el bloque de datos DB1.
En el parámetro de entrada "CONNECT" del FB65 "TCON" se indica la zona de memoria que contiene la parametrización del punto final UDP.
La creación del punto final UDP se efectúa al arrancar el sistema y se mantiene hasta que se desconecta, por ejemplo, con el FB66 "TDISCON", la CPU pasa a modo STOP o se desconecta la alimentación.


Figura 03

El servicio de envío se activa con un flanco positivo en el parámetro de entrada "REQ" del FB67 "TUSEND". La activación del servicio de envío se controla con la marca M100.6 y la variable "SEND_BUSY". Si el servicio de envío está activo, "SEND_BUSY" está activado. De esta forma, no es posible realizar un nuevo servicio de envío.
En el parámetro de entrada "DATA", se indica la zona de memoria que contiene los datos a enviar.
En el parámetro de entrada "LEN", se indica el número de bytes a enviar.
En este ejemplo los datos de envío se guardan en el DB100. Se envían 100 bytes de datos al interlocutor de comunicación.
En el parámetro de entrada ADDR, se indica la zona de datos donde se guarda la dirección IP del receptor. En este ejemplo se guardan los parámetros de direccionamiento del interlocutor de comunicación, dentro de la estructura de datos "OUCW_3". Estos se indican en el módulo de datos de instancia DB1.
Los parámetros de salida "DONE", "ERROR" y "STATUS" se necesitan para evaluar el servicio.


Figura 04

La tabla 02 muestra la disposición de la estructura de datos "OUCW_3", en la cual se guardan los parámetros de direccionamiento del interlocutor de comunicación.
 

Byte Parámetro Tipo de datos Descripción
0 a 3 rem_ip_addr ARRAY
[1 .. 4] of BYTE
Dirección IP del interlocutor remoto, por ejemplo 192.168.0.30
rem_ip_addr[1] = B#16#C0
rem_ip_addr[2] = B#16#A8
rem_ip_addr[3] = B#16#00
rem_ip_addr[4] = B#16#1E
4 a 5 rem_port_nr ARRAY
[1 .. 2] of BYTE
Número del puerto remoto, por ejemplo 2000
local_tsap_id[1] = B#16#7 (byte alto del número del puerto en representación hexadecimal)
local_tsap_id[2] = B#16#D0 (byte bajo del número del puerto en representación hexadecimal)
6 a 7 spare ARRAY
[1 .. 2] of BYTE
Reservado, el parámetro tiene el valor.
Tabla 02

Una vez ejecutado el servicio de envío sin que se hayan producido errores se desactivará "SEND_BUSY", y se podrá volver a llamar un nuevo servicio de envío.
Si la ejecución del bloque ha finalizado con error, se desactiva también el parámetro "SEND_BUSY" y se guarda el valor del parámetro de salida "STATUS" del FC67 para analizar dicho fallo.


Figura 05


Figura 06

En cuanto el punto final UDP se haya creado, se pueden recibir datos.
En el parámetro de entrada "DATA" se indica la dirección y la longitud de la zona de datos donde se guardan los datos recibidos.
En este ejemplo se reciben 100 bytes y se guardan en el DB200.
En el parámetro de entrada ADDR, se indica la zona de datos donde se guarda la dirección IP del receptor. En este ejemplo se guardan los parámetros de direccionamiento del interlocutor de comunicación, dentro de la estructura de datos "OUCW_3". Estos se indican en el bloque de datos de instancia DB1. La tabla 02 muestra la disposición de la estructura de datos "OUCW_3".


Figura 07

El parámetro de salida NDR sirve para mostrar que se han recibido nuevos datos. El parámetro de salida RCVD_LEN indica la longitud de los datos recibidos.
Si los datos se han recibido correctamente, se guarda el valor del parámetro de salida RCVD_LEN. .


Figura 08

Si los datos no se han recibido correctamente, se guarda y evalúa el valor del parámetro de salida STATUS.


Figura 09

Con ayuda del FB66 "TDISCON", es posible desactivar el punto final UDP. El servicio para desactivar el punto final UDP se arranca con un flanco positivo en el parámetro de entrada "REQ" del FB66 "TDISCON".


Figura 10

El proyecto de STEP 7 como descarga
El proyecto de STEP 7 contiene un programa ejemplo con la llamada al FB1, así como a los bloques de función FB65 "TCON", FB66 "TDISCON", FB67 "TUSEND" y FB68 "TURECV" con la evaluación del estado. Se ha creado con STEP 7 V5.5 + SP3.

 Registro necesario sample_open_udp.zip (294,6 KB)

Configuración de enlaces UDP adicionales
Para configurar puntos finales UDP adicionales, copie el FB1 de manera que contenga otros bloques de función adicionales (por ejemplo, FB101). Modifique los parámetros de los puntos finales UDP locales y remotos, y genere nuevos bloques de datos de instancia. Cree una nueva estructura de datos con el asistente "Open Communication", en la que se guarden los parámetros para el nuevo punto final UDP.

Información adicional

  • Información detallada sobre la comunicación abierta a través de Industrial Ethernet está disponible en el manual "Funciones estándar y del sistema para S7-300/400: Tomos 1 y 2", página del Customer Support con número ID 44240604.
  • Unas instrucciones para la programación de un enlace UDP para la comunicación a través de las CPs Industrial Ethernet del S7-300 y S7-400 están disponibles en la página del Customer Support con número ID 47885893.
Información de seguridad
Para proteger las infraestructuras tecnológicas, los sistemas, las máquinas y las redes contra amenazas cibernéticas, es necesario implementar y mantener continuamente un concepto de seguridad de TI holístico de última generación. Los productos y soluciones de Siemens son parte de este concepto. Para obtener más información sobre seguridad cibernética. Encontrará más información sobre la seguridad cibernética en
https://www.siemens.com/cybersecurity#Ouraspiration.
Respaldo de estadísticas
With this function the IDs found are listed according to number (format .txt).

Generar lista
Copiar URL
Mostrar esta página en el nuevo diseño
mySupport Cockpit