×
Siemens Industry Online Support
Siemens AG
Tipo de artículo: FAQ ID de artículo 29737950, Fecha del artículo: 01/12/2014
(18)
Evaluar

¿Cómo se programan los bliques de comunicación FB63 "TSEND", FB64 "TRCV", FB65 "TCON" y FB66 "TDISCON" utilizando el protocolo TCP para realizar el intercambio de datos a través de la interfaz PROFINET integrada en una CPU del S7-300 o del S7-400?

  • Artículo
  • Relacionado con producto(s)
Descripción Las CPUs con interfaz PROFINET integrada y el WinAC RTX soportan la comunicación IE abierta. ...

Descripción
Las CPUs con interfaz PROFINET integrada y el WinAC RTX soportan la comunicación IE abierta.

En la página del Customer Support con el número ID 18909487 se dispone de una vista general sobre los servicios de comunicación que soportan las CPUs con interfaz PROFINET integrada y por el WinAC RTX. En esta vista general se dispone de información sobre qué protocolos de la comunicación IE abierta son soportados por las CPUs con interfaz PROFINET integrada y por el WinAC RTX.

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

  • FB65 "TCON" para crear el enlace
  • FB66 "TDISCON" para desactivar el enlace
  • FB63 "TSEND" para enviar datos
  • FB64 "TRCV" para recibir datos

Estos bloques de comunicación están disponibles en la "librería estándar -> Bloques de comunicación ".
Copie dentro del programa de usuario la versión actual de los bloques de función arriba descritos de la librería estándar y llámelos en dicho programa de usuario.
Los datos de conexión para el enlace TCP se guardan en una estructura de datos. En este ejemplo se utiliza la estructura de datos "OUCW_2". Esta estructura se guarda en el bloque de datos DB1 y la parametriza el propio usuario.

Indicación

  • Utilice el asistente "Open Communication" para crear fácilmente los datos del enlace. Este asistente está disponible en la página del Customer Support con el número ID 98957840 para su descarga.
  • El enlace TCP no se configura en el NetPro.

La tabla 01 muestra la estructura de datos "OUCW_2", en la que se guardan los datos del enlace.
 

Byte Parámetro Tipo de datos Descripción
0 al 1 block_length WORD Longitud de la estructura de datos "OUCW_2"
2 al 3 id BYTE Referencia a este enlace
Rango de valores: w#16#0001 al w#16#0FFF
El valor de este parámetro se debe indicar en el bloque correspondiente dentro del parámetro ID.
4 connection_type BYTE Variante del protocolo TCP: B#16#11
5 active_est BOOL Identificador para el tipo de la creación del enlace
  • FALSE: Creación pasiva del enlace
  • TRUE: Creación activa del enlace
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 para el parámetro "local_tsap_id"
Valores posibles cuando "connection_type" = B#16#11: 0 ó 2
(lado activo: 0 ó 2, lado pasivo: 2)
8 rem_subnet_id_len BYTE Este parámetro no se utiliza actualmente. Esta asignado con el valor B#16#00.
9 rem_staddr_len BYTE Longitud de la dirección del punto final remoto del enlace:
  • 0: no especificado, es decir, el parámetro "rem_staddr" es irrelevante.
  • 4: Dirección IP válida en el parámetro "rem_staddr".
10 rem_tsap_id_len BYTE Longitud utilizada para el parámetro "rem_tsap_id"
Valores posibles cuando "connection_type" = B#16#11: 0 ó 2
11 next_staddr BYTE Longitud utilizada para el parámetro "next_staddr"
12 al 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 al 33 rem_subnet_id ARRAY [1..6] of BYTE Este parámetro no se utiliza actualmente. Esta asignado con el valor B#16#00.
34 al 39 rem_staddr ARRAY [1..6] of BYTE Dirección IP del punto de enlace remoto, por ejemplo 192.168.0.30
rem_staddr[1] = B#16#C0
rem_staddr[2] = B#16#A8
rem_staddr[3] = B#16#00
rem_staddr[4] = B#16#1E
rem_staddr[5-6] = B#00 (reservado)
40 al 55 rem_tsap id ARRAY [1..16] of BYTE Número del puerto del punto de enlace 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)
local_tsap_id[3-16] = B#16#00
56 al 61 next_staddr ARRAY [1..6] of BYTE next_staddr[1-6] = B#16#00
62-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 "TCON_PAR" con los parámetros de conexión para crear el enlace TCP. Además, el programa S7 -contiene la llamada a los bloques de comunicación FB63 "TSEND" y FB64 "TRCV" de la librería estándar -> Bloques de comunicación. El FB63 "TSEND" sirve para enviar datos a una estación S7 o S5, a una estación PC o a un sistema ajeno. El FB64 "TRCV" sirve para recibir datos de una estación S7 o S5, 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 10 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 el OB100, el OB1, el FB300, el DB300, el FC97, el UDT65, el FB63, el FB64, el FB65 y el FB66.

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 "START-UP".

OB1:
El OB1 se ejecuta de forma cíclica. En este OB se llama al FB 300 (DB de instancia: DB 300) con la M 0.3 "START-UP" como parámetro (INIT_COM). Al final del OB1 se resetea la M0.3 "START-UP".


Figura01

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

  • FB65 "TCON"
  • FB63 "TSEND",
  • FB64 "TRCV"
  • FB66 "TDISCON"

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


Figura 02

Creación del enlace
La creación del enlace se arranca 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 enlace se inserta en el bloque de datos de instancia del FB300. En el parámetro de entrada "CONNECT" del FB65 "TCON", se indica la zona de memoria que contiene la parametrización del enlace.
El enlace se crea 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 FB63 "TSEND". La activación del servicio de envío se controla con la marca M10.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. Los parámetros de salida "DONE", "ERROR" y "STATUS" se necesitan para evaluar el servicio.


Figura 04

Una vez que se haya ejecutado el 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 el servicio de envío 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 FC63 para analizar dicho fallo.


Figura 05


Figura 06

En cuanto se crea el enlace TCP, se pueden recibir datos. En el parámetro de entrada "DATA" y el parámetro de entrada "LEN" se indican la dirección y la longitud de la zona de datos donde se guardan los datos recibidos.

En este ejemplo se reciben 100 bytes de datos y se guardan dentro del DB200.


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 no se han recibido correctamente, se guarda y evalúa el valor del parámetro de salida "RCVD_LEN".


Figura 08

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


Figura 09

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


Figura 10

Indicación
En este programa ejemplo se utiliza el protocolo TCP para realizar la transferencia de datos, es decir, dentro de la estructura de datos "OUCW_2" esta definido el parámetro "connection_type" con el valor "B#16#11".
Las CPUs S7-300 con la versión V2.3 soportan el "modo de compatibilidad TCP". Si el programa ejemplo se quiere ejecutar en una CPU S7-300 con la versión V2.3, modifique el parámetro "connection_type" dentro de la estructura de datos "OUCW_2" y ajuste el valor "B#16#01".

El proyecto de STEP 7 en forma de descarga:
El proyecto de STEP 7 contiene un programa ejemplo con la llamada al FB1, así como los bloques de función  FB65 "TCON", FB66 "TDISCON", FB63 "TSEND" y FB64 "TRECV" con la evaluación del estado. Se ha creado con el STEP 7 V5.5 + SP3.

Sample_open_TCP.zip ( 286 KB )

Configuración de enlaces TCP adicionales
Para configurar otros enlaces TCP adicionales, copie el FB300 de forma que contenga otro bloque de función (por ejemplo, el FB101). Modifique los parámetros y genere un nuevo bloque de datos de instancia.

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, tomo 1 y 2", página del Customer Support con el número ID 44240604.
  • Unas instrucciones para la configuración de un enlace TCP para la comunicación a través de CPs de Industrial Ethernet con el S7-300 y S7-400 está disponible en la página del Customer Support con el número ID 22385024.
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.