Siemens S7

Conectar PLC Siemens S7 sobre S7comm: rack y slot, áreas de memoria, direccionamiento tipado por byte y bit, y los tipos de dato nativos.

Ver como Markdown

El driver Siemens S7 habla con PLC Siemens S7 sobre S7comm, el protocolo clásico de Step 7 transportado sobre ISO-on-TCP. Usa direccionamiento absoluto (área de memoria, número de bloque de datos, byte y bit), así que funciona sin ninguna exportación de símbolos del proyecto de ingeniería. Agregue un dispositivo bajo el driver Siemens S7 en el Connector y llene los campos de abajo; el panel muestra solo los campos que usa este protocolo.

La conexión

Campo Significado Valor inicial
Host o IP Dirección IP o nombre de host de la CPU (o del módulo CP que la fronte). vacío
Rack / Slot Los números de rack y de slot de la CPU, tal como están configurados en la disposición de hardware de Siemens. Dos cajas de número en una misma fila: primero el rack, después el slot. 0 / 0
Intervalo de sondeo (ms) El periodo de lectura de todo el dispositivo, para los tags que no lo invaliden. 1,000

El puerto TCP es fijo en 102 (ISO-on-TCP), así que no hay campo de puerto. El encabezado del dispositivo muestra el punto de conexión armado, por ejemplo s7://192.168.0.2:0:1 (host, rack, slot).

El rack y el slot tienen que coincidir con el hardware: las CPU S7-1200 y S7-1500 contestan en el rack 0, slot 0 o 1; una CPU S7-300 típica está en el rack 0, slot 2; los racks S7-400 varían según la disposición. Un slot equivocado hace fallar la conexión en lugar de leer datos equivocados.

Cada tag puede poner su propio Intervalo de sondeo (ms); un valor de 0 en el tag cae en el intervalo del dispositivo.

El direccionamiento

Un tag de S7 se direcciona con campos tipados, no con una cadena de texto libre. El panel los muestra en la tarjeta Origen del tag:

Campo Significado Valores aceptados Valor inicial
Área El área de memoria que se lee. DataBlock, Merker, ProcessInput, ProcessOutput, Timer, Counter DataBlock
Número de DB Qué bloque de datos, mostrado solo cuando el Área es DataBlock. 0 en adelante 1
Byte inicial El desplazamiento en bytes dentro del área donde empieza el valor. En las áreas Timer y Counter la caja se rotula Número de temporizador o Número de contador y pide el número del temporizador o del contador en su lugar. 0 en adelante 0
Bit (0 a 7) La posición del bit dentro del byte inicial. Se muestra solo en los tags booleanos. de 0 a 7 0
Longitud máxima (en blanco = 254) El máximo declarado de un STRING de S7. Se muestra solo en los tags String fuera de las áreas Timer y Counter. 1 en adelante, o en blanco en blanco

Las áreas corresponden a la notación habitual de Siemens: Merker es la memoria de marcas (M), ProcessInput las entradas de la imagen de proceso (I/E), ProcessOutput las salidas de la imagen de proceso (Q/A), y Timer/Counter las áreas de temporizadores y contadores de S7. Los temporizadores y los contadores se direccionan por número, no por byte: Timer con el número 5 lee T5, y Counter con el número 3 lee C3. Traduciendo las direcciones absolutas clásicas:

Dirección clásica Tipo de dato Campos que hay que llenar
DB5.DBD12 con un REAL Float Área DataBlock, Número de DB 5, Byte inicial 12
DB1.DBX3.4 Boolean Área DataBlock, Número de DB 1, Byte inicial 3, Bit 4
DB2.DBW20 con un INT Int16 Área DataBlock, Número de DB 2, Byte inicial 20
MW10 Int16 Área Merker, Byte inicial 10
M10.3 Boolean Área Merker, Byte inicial 10, Bit 3
IB2 Byte Área ProcessInput, Byte inicial 2
Q4.1 Boolean Área ProcessOutput, Byte inicial 4, Bit 1
T5 Int16 Área Timer, Número de temporizador 5
C3 Int16 Área Counter, Número de contador 3

Un tag booleano lee y escribe exactamente un bit en el bus; nunca reescribe el byte que lo rodea. Todos los demás tipos se direccionan por byte en el byte inicial, con el ancho exacto de su tipo de dato. La línea de solo lectura Dirección de origen (bus) de la tarjeta Origen muestra la dirección armada conforme usted edita.

Los tipos de dato

El Tipo de dato del tag decide el tipo nativo de S7 que va en el bus. Están disponibles los trece anchos nativos de S7:

Tipo de dato Tipo de S7 Tamaño en el bus
Boolean BOOL 1 bit
SByte SINT 1 byte
Byte USINT 1 byte
Int16 INT 2 bytes
UInt16 UINT 2 bytes
Int32 DINT 4 bytes
UInt32 UDINT 4 bytes
Int64 LINT 8 bytes
UInt64 ULINT 8 bytes
Float REAL 4 bytes
Double LREAL 8 bytes
String STRING longitud máxima + 2 bytes
DateTime DTL 12 bytes

Los valores de varios bytes usan automáticamente el orden de bytes big-endian nativo de S7; no hay opción de orden de bytes porque no hace falta ninguna.

Un tag String lee la disposición estándar de un STRING de S7: un byte con el máximo declarado, un byte con la longitud actual, y luego los caracteres ASCII. La Longitud máxima tiene que coincidir con la declaración del STRING en el bloque (en blanco significa el máximo de S7, 254); el driver transfiere la longitud máxima más 2 bytes por lectura. Un tag DateTime corresponde a la estructura DTL de la familia S7-1200/1500 (del año a los nanosegundos); el DATE_AND_TIME antiguo, de 8 bytes, no se ofrece.

Las escrituras

Los tags cuyo Acceso es Lectura y escritura o Solo escritura se pueden escribir. Las escrituras direccionan la misma área, el mismo byte y el mismo bit que las lecturas: una escritura booleana pone su único bit, y todo lo demás escribe los bytes exactos del tipo. Un tag nuevo arranca como Solo lectura.

El descubrimiento

S7comm no tiene descubrimiento por difusión, así que el Connector no muestra botón Descubrir para este driver. Agregue el dispositivo y sus tags a mano.

Bueno saber

  • En las CPU S7-1200/1500, el direccionamiento absoluto de S7comm exige dos ajustes en el proyecto de Siemens: Permitir el acceso con comunicación PUT/GET en la CPU, y el acceso optimizado a bloques desactivado en cada bloque de datos que usted direccione. Un DB optimizado no tiene desplazamientos de byte que direccionar.
  • Las áreas Timer y Counter se direccionan por número, no por desplazamiento de byte: la caja pide el temporizador o el contador mismo (T0, T1, T2 y C0, C1, C2). Cada valor es una palabra de 16 bits, así que empárejelo con Int16; un tipo de dato más ancho o más angosto se rechaza, con el tag nombrado en el diario técnico, y los demás tags del dispositivo siguen leyendo.
  • Un PLC inalcanzable no cuesta nada al arrancar: el dispositivo sigue reintentando en segundo plano y sus tags se leen con mala calidad hasta que la conexión llega.
  • Un cable jalado después de que el dispositivo está en línea se nota en la siguiente lectura: el dispositivo se va sin conexión, sus tags pasan a mala calidad, y se reconecta solo en cuanto la red regresa. Una dirección que la CPU rechaza no hace eso, así que un tag mal escrito nunca se lleva consigo al resto del dispositivo.