Descripción
A través del controlador S7-1200 se pueden recibir telegramas GPS estándares del tipo de dato RMC en conformidad con el estándar NMEA-0183. Los telegramas GPS se reciben en la interfaz RS 232 del módulo de comunicación RS232 CM1241 del S7-1200 usando un ratón GPS.
El bloque de función "gps_rcv" que se encuentra en la librería adjunta ofrece los grados de longitud y latitud de la posición actual así como la fecha y hora UTC actual en el formato de tipo de dato "DTL" y actualiza la hora del sistema. El bloque de función "gps_rcv" se usa para preajustar la configuración de hardware con los parámetros que aparecen en la tabla 2. No es necesaria ninguna configuración adcicional de la conexión del puerto del módulo de comunicación RS232 CM1241 del S7-1200.
El bloque de función "gps_rcv" se procesa en un ciclo de CPU. Los valores de posición actuales así como la información con la fecha y la hora sólo se encuentran disponibles en el ciclo de evaluación. Se dispone de más detalles sobre las variables en la tabla 6.
Instrucciones El registro de datos mínimo recomendado C (RMC) del estándar NMEA-0183 se evalúa para determinar la posición geográfica y la hora UTC. Está estructurado de la siguiente manera.
Información
Contenido
Observaciones
Identificación del registro de datos
$GPRMC
Comienzo del registro de datos
Hora UTC
"hhmmss" o "hhmmss.sss"
- usado en relación con la fecha para la sincronización
Estado
"A" para OK o "V" para aviso
- usado para asegurar la validez de los datos
Latitud
"ggmm.mmmm"
- usado para el cálculo de la latitud en formato decimal
Dirección
"N" para Norte o "S" para Sur
Longitud
"gggmm.mmmm"
- usado para el cálculo de la longitud en formato decimal
Dirección
"E" para Este o "W" para Oeste
Velocidad
- no aplicable
Curso
Date
"ddmmaa"
- usado en relación con la hora UTC para la sincronización
Desviación
- no aplicable
Signos
Integridad de la señal
sólo disponible para la NMEA 0183 versión V2.3
Suma de comprobación
"*hh"
Final del registro de datos
Tabla 1
Los bloques indiviuales de información se separan con comas (",").
Nota
Los registros de datos se pueden leer para su comprobación también a través del Hyper Terminal en Microsoft Windows.
Parámetros de comunicación
El bloque de función "gps_rcv" se configura para trabajar con un receptor GPS estándar conforme con el estándar NMEA 0183. Las especificaciones son como se describe a continuación.
Parámetro
Ajuste
Paridad
Ninguna
Bits de datos
8 bits por carácter
Bits de paro
1
Control de flujo
Ninguna
Tabla 02
Puesta en servicio del hardware
El bloque "gps_rcv" se ha probado con éxito con los receptores GPS citados a continuación.
NAVILOCK NL-403P (fuente de alimentación externa: 5V a través de LOGO! POWER 5V DC/3A)
GARMIN GPS18x PC (fuente de alimentación externa: 8-30V a través de la CPU S7-1200)
Fig. 01
Configuración de hardware en el S7-1200
No.
Configuración de hardware en el S7-1200
1.
Conectar el receptor GPS al S7-1200.
Proceder de la siguiente manera:
Equipar el S7-1200 con un módulo de comunicación RS232 CM 1241.
Conectar el receptor GPS al módulo de comunicación.
Nota
La fuente de alimentación del receptor GPS se debería dar desde la fuente de alimentación externa pedida en la descripción (nivel de tensión y polaridad).
2.
Añadir el módulo de comunicación a la "Configuración del equipo".
Proceder de la siguiente manera:
Abrir la "Configuración del equipo" en la parte de navegación del proyecto.
Seleccionar la ficha "Vista de dispositivo".
Arrastrar y soltar "Módulo de comunicación" > "RS232" desde el "Catálogo de hardware" hasta la "Vista del dispositivo".
Fig. 02
Tabla 03
Evaluar los valores de posición y sincronizar la fecha y hora del sistema del S7-1200 Véase el proyecto de ejemplo dado en el fichero zip adjunto "gps_rcv_proj.zip".
No.
Sincronizar la fecha y hora del sistema del S7-1200
1.
Descargar y abrir la librería global del S7-1200 "gps_rcv".
Proceder de la siguiente manera:
Descargar, descomprimir y abrir la librería global del S7-1200 "gps_rcv.zip".
Pulsar en el botón "Abrir librería global" para abrir la librería.
Fig. 03
2.
Conectar el bloque de función "gps_rcv".
Proceder de la siguiente manera:
Arrastrar y soltar el bloque de función "gps_rcv" en un segmento al que se llame de forma cíclica.
Conectar las entradas del bloque de función "gps_rcv" tal y como se describe en la tabla 5.
Fig. 04
Tabla 04
Entradas del bloque de función "gps_rcv"
Conexión
Tipo de dato
Observaciones
cmd_get_
time_n_date
BOOL
La evaluación de un mensaje RMC-GPS se dispara con un flanco positivo.
En el programa de ejemplo se dispara a intervalos regulares mediante los bits de la marca de ciclo.
En la "Configuración del dispositivo" para el S7-1200 abrir la ficha de "Propiedades" y seleccionar la entrada "Marca de ciclo y sistema".
Comprobar la selección que habilita el uso del byte de marca de ciclo.
Introducir una dirección para el byte de marca de ciclo. En este ejemplo, la dirección del bit de marcas de 0,5 Hz es la M10.7.
Fig. 05
cmd_hw_id
PORT
Aquí, se introduce el ID hardware del módulo de comunicación. El ID hardware se da bajo "Configuración del dispositivo" > "Propiedades CM1241" > "Interfaz RS232" > "Hardware ID".
Fig. 06
cmd_baud
UInt
Velocidad de transmisión del puerto RS232:
1: 300 baudios
2: 600 baudios
3: 1200 baudios
4: 2400 baudios
5: 4800 baudios (ajuste estándar)
6: 9600 baudios
7: 19200 baudios
8: 38400 baudios
9: 57600 baudios
10: 76800 baudios
11: 115200 baudios
cmd_restart
BOOL
Opcional: Esta variable habilita el cambio de velocidad de transmisión de la interfaz RS232 cuando se produce un flanco positivo.
Tabla 05
Variables de salida del bloque de función "gps_rcv"
Variable
Tipo de dato
Observaciones
"gps_rcv_DB.gps_latitude_Real"
Real
Esta variable incluye la posición de latitud actual en formato decimal (número de 32 bits en coma flotante). Sólo se puede evaluar junto con el "return_done".
"gps_rcv_DB.gps_latitude_LReal"
LReal
Esta variable incluye la posición de latitud actual en formato decimal (número de 64 bits en coma flotante). Sólo se puede evaluar junto con el "return_done".
"gps_rcv_DB.gps_longitude_Real"
Real
Esta variable incluye la posición de longitud actual en formato decimal (número de 32 bits en coma flotante). Sólo se puede evaluar junto con el "return_done".
"gps_rcv_DB.gps_longitude_LReal"
LReal
Esta variable incluye la posición de longitud actual en formato decimal (número de 64 bits en coma flotante). Sólo se puede evaluar junto con el "return_done".
"gps_rcv_DB.return_done"
BOOL
Esta variable se pone a "true" en el ciclo en el que el telegrama GPS se recibe correctamente y la hora del sistema de la CPU se actualiza con éxito.
"gps_rcv_DB.return_aborted"
BOOL
Esta variable se pone a "true" en el ciclo en el que ha fallado la recepción del telegrama GPS o la sincronización de fecha y hora.
"gps_rcv_DB.gps_time_n_date"
DTL
Esta variable incluye la fecha y hora UTC actual recibida con el GPS. Con "return_done" = "true" la hora del sistema de la CPU se sincroniza con esta hora.
Tabla 06
Descarga La descarga consta de una librería de bloques y de un proyecto de ejemplo.
Copiar el fichero en un directorio independiente y ejecutarlo haciendo doble clic sobre el mismo.
Después de haber descomprimido la librería seguir los pasos indicados en la tabla 4. Después de descomprimir el proyecto, se puede abrir y editar con STEP 7 V11.0 SP2.
Información adicional Se dispone de información detallada sobre el tema de las "Operaciones punto a punto" del SIMATIC S7-1200 bajo la entrada con ID 36932465 o en la ayuda del STEP 7 V11.0 SP2.
Entorno de creación Las pantallas y descargas contenidas en este FAQ se han creado con STEP 7 V11.0 SP2 Update 5.
Esta entrada es válida para la CPU con firmware V2.2 o superior.
¿Cómo se compensa la incoherencia de Strings entre los módulos RCV_PTP y SEND_PTP?
Descripción:
Al trabajar con variables de tipo String, los módulos de comunicación PTP (Point-to-Point) ignoran las propiedades específicas sobre la longitud máxima y la longitud actual del String (figura 01). Si una variable de tipo String se escribe con datos, el módulo RCV_PTP sobreescribe los datos de cabecera del String (figura 02).
Al leer los datos de una variable String, el módulo SEND_PTP lee la información de la cabecera del String como si fuese parte de los datos virtuales del String y también los envía (figura 03).
Estructura de una variable de tipo String
Una variable de tipo String en STEP 7 Basic consta de 3 partes:
Longitud máxima del String
Longitud actual del String
Datos virtuales del String
Figura 01
Desde el punto de vista de la comunicación PTP, una variable de tipo String sólo consta de datos virtuales.
Características del módulo RCV_PTP
El módulo RCV_PTP escribe los datos virtuales del String en la variable tipo String preparada en el S7-1200, sin los datos de longitud necesarios en los 2 primeros bytes. Por tanto, no se puede continuar con la elaboración de los datos, ya que falta la cabecera de la variable String.
Figura 02
Características del módulo SEND_PTP El módulo SEND_PTP lee los datos String solicitados, incluyendo los datos de cabecera que se envían como 2 primeros Bytes de los datos de la variable.
Figura 03
Requerimientos
El módulo de datos (DB) en el que se crean las variable de tipo String debe ser "no simbólico".
Se necesita utilizar un direccionamiento absoluto del buffer.
Creación de una variable tipo String en un módulo de datos no simbólico Haga doble clic sobre la opción "Insertar nuevo módulo" de la "Navegación del proyecto" de su control. Haga clic sobre la opción "Módulo de datos (DB)" en la ventana "Insertar nuevo módulo" y desactive la casilla de selección "Direccionable sólo simbólicamente". Para que coincida con la dirección absoluta utilizada en este ejemplo, ajuste el número de este módulo de datos a "2". Confirme la entrada con "OK".
Figura 04
Haga doble clic sobre el módulo de datos "Data_block_2 (DB2)" en la navegación del proyecto. En la columna de la tabla "Estático", introduzca una variable de tipo "String[8]".
Figura 05
Compensación de la incoherencia de Strings con ayuda del módulo RCV_PTP
Para realizar la compensación, la información sobre la longitud del String tiene que tratarse por separado.
En este ejemplo se utiliza una variable String con una longitud de 8 Bytes.
Nº
Compensación de la incoherencia de Strings con ayuda del módulo RCV_PTP
1.
Escriba los datos virtuales del String dentro de la variable String
Para mantener los datos de la cabecera del String, los datos virtuales contenidos en el String deben escribirse comenzando a partir del tercer byte en la variable. Esto es posible gracias al direccionamiento absoluto del buffer.
En este ejemplo, la variable de tipo String tiene una longitud de 8 bytes. Comienza con el Offset 10.0 (DB2.DBBX10.0), por tanto los datos virtuales del String comienzan en el Offset 12.0 (DB2.DBBX12.0).
El aspecto de la dirección consta de los siguientes elementos:
Puntero "P#".
Dirección absoluta del primer bit del tercer Byte (por ejemplo, DB2.DBX12.0).
Número de Bytes que se quieren escribir en la variable de tipo String, separados por un carácter vacío. Este debe ser la longitud máxima de la variable de tipo String (por ejemplo, BYTE 8).
Figura 06
2.
Copie la longitud de String actual y máximaen la cabecera del String
Figura 07
Advertencia:
Antes de copiar el valor de la "longitud actual", hay que convertir su tipo de datos de UINT a BYTE.
Tabla 01
Compensación de la incoherencia de Strings con ayuda del módulo SEND_PTP Para realizar la compensación, la información sobre la longitud del String ha de tratarse por separado.
En este ejemplo se utiliza una variable String con una longitud de 8 Bytes.
Nº
Compensación de la incoherencia de Strings con ayuda del módulo SEND_PTP
1.
Sustituya la longitud actual del String en el módulo SEND_PTP.
Figura 08
Advertencia:
Antes de sustituir el valor "#length", hay que convertir su tipo de datos de BYTE a UINT.
2.
Lealos datos virtuales del String desde la variable String
Para evitar que se envíen los datos de cabecera del String, el módulo SEND_PTP debe comenzar a leerse a partir del tercer Byte de la variable String. Esto es posible gracias al direccionamiento absoluto del buffer.
En este ejemplo, la variable de tipo String tiene una longitud de 8 bytes. Esta comienza con el Offset 10.0 (DB2.DBBX10.0), por tanto los datos virtuales del String comienzan en el Offset 12.0 (DB2.DBBX12.0).
El aspecto de la dirección es parecido al utilizado en la figura 06 de la tabla 01.
Figura 09
Tabla 02
Requerimientos:
S7-1200
Cable de Ethernet
PC / PG con interfase Ethernet
STEP 7 Basic V10.5
¿Con qué equipos puede comunicar el S7-1200 a través de la interfaz PROFINET integrada y qué protocolos permite utilizar el S7-1200?
Equipos que permiten trabajar con comunicaciones de usuario abiertas (Open User Communications)
Máximo número de conexiones de comunicación asíncronas, simultáneas La CPU del S7-1200 permite el siguiente número máximo de conexiones de comunicación asíncronas, simultáneas:
Tipo de conexión
Descripción y número máximo de conexiones
Comunicaciones de usuario abiertas (OUC)
La CPU del S7-1200 permite trabajar con 8 conexiones para comunicaciones de usuario abiertas (activas o pasivas) usando las siguientes instrucciones: T_SEND_C, T_RECV_C, TCON, TDISCON, TSEND y TRECV.
Nota Modbus TCP emplea conexiones de comunicaciones de usuario abiertas (OUC) como ruta de comunicaciones para Modbus. En ese caso puede haber múltiples conexiones cliente-servidor además de la conexión entre el STEP 7 y la CPU. Se pueden tener conexiones de cliente y servidor combinadas hasta el número máximo permitido por la CPU para las comunicaciones de usuario abiertas.
Comunicación S7
3 conexiones para una comunicación entre una CPU del S7-1200 pasiva y una CPU del S7 activa o LOGO!, esto significa que el S7-1200 se comporta como un servidor S7. El LOGO! o la CPU activa del S7 establece la conexión y usa las instrucciones PUT y GET (S7-300, S7-400 y S7-1200) o la instrucción ETHx_XFER (S7-200)
para leer y escribir datos.
8 conexiones para una comunicación entre un LOGO! o una CPU del S7-1200 activa y una CPU del S7 pasiva, esto significa que el S7-1200 se comporta como un cliente S7. La CPU activa del S7-1200 establece la conexión y usa las instrucciones PUT y GET para leer y escribir datos.
Conexiones HMI
La CPU del S7-1200 ofrece conexiones HMI dedicadas para permitir hasta 3 equipos HMI.
Conexiones de PG
La CPU del S7-1200 ofrece conexiones para permitir la conexión de 1 equipo de programación (PG).
Conexiones de servidor Web (HTTP)
El S7-1200 ofrece conexiones para el servidor web.
Fig. 01
PROFINET y PROFIBUS Para PROFINET, la CPU del S7-1200 permite trabajar con un máximo de 8 equipos IO PROFINET y 128 submódulos, lo primero que se alcance. PROFIBUS permite trabajar con un máximo de 16 esclavos DP en un maestro DP con un máximo de 256 submódulos por esclavo DP.
A partir de la versión de firmware V3.0 la CPU del S7-1200 permite trabajar con 16 equipos IO PROFINET con un máximo de 256 submódulos. PROFIBUS permite trabajar con 32 esclavos DP con un máximo de 512 submódulos por esclavo DP.
Validez Esta entrada es válida para:
Las CPUs del S7-1200 con la versión de firmware V1.0.0.
STEP 7 Basic V10.5 sin Service Pack.
Interfaz PROFINET integrada del S7-1200 La interfaz PROFINET integrada de la CPU del S7-1200 está realizada como conector RJ45.
Fig. 02
Protocolos admitidos El S7-1200 admite los siguientes protocolos a través de la interfaz PROFINET integrada:
Protocolo
Versión de firmware
TCP
V1.0
ISO-on-TCP (RFC 1006)
V1.0
UDP
V2.0
PROFINET RT - Servicios básicos y controlador I/O
V2.0
Comunicación S7 (servidor S7)
V1.0
Comunicación S7 las instrucciones PUT / GET (cliente S7)
V2.0
Servidor Web
V2.0
Modbus TCP
V2.1
HTTP (protocolo de transferencia de hipertexto)
V2.0
HTTPS - Hyper Text Transfer Protocol Secure
V2.0
SNMP - Simple Network Management Protocol (protocolo de gestión de red simple)
V2.0
LLDP - Link Layer Discovery Protocol (protocolo de descubrimiento de capa de enlace)
V2.0
DCP - Discovery & Configuration Protocol (protocolo de descubrimiento y configuración)
V2.0
NTP - Network Time Protocol (protocolo de hora de red)
V2.0
ARP - Address Resolution Protocol (protocolo de resolución de dirección)
V2.0
Información adicional Se dispone de más información sobre las comunicaciones con la CPU del S7-1200 en el manual dle S7-1200 que se encuentra bajo la entrada con ID: 36932465.