Está en la página 1de 226

EcoStruxure Machine Expert - Basic

Guía de la biblioteca de funciones genéricas

EIO0000003292.03
11/2022

www.se.com
Información legal
La marca Schneider Electric y cualquier otra marca comercial de Schneider Electric
SE y sus filiales mencionadas en esta guía son propiedad de Schneider Electric SE o
sus filiales. Todas las otras marcas pueden ser marcas comerciales de sus
respectivos propietarios. Esta guía y su contenido están protegidos por las leyes de
copyright aplicables, y se proporcionan exclusivamente a título informativo. Ninguna
parte de este manual puede ser reproducida o transmitida de cualquier forma o por
cualquier medio (electrónico, mecánico, fotocopia, grabación u otro), para ningún
propósito, sin el permiso previo por escrito de Schneider Electric.
Schneider Electric no concede ningún derecho o licencia para el uso comercial de la
guía o su contenido, excepto por una licencia no exclusiva y personal para
consultarla "tal cual".
La instalación, utilización, mantenimiento y reparación de los productos y equipos de
Schneider Electric la debe realizar solo personal cualificado.
Debido a la evolución de las normativas, especificaciones y diseños con el tiempo, la
información contenida en esta guía puede estar sujeta a cambios sin previo aviso.
En la medida permitida por la ley aplicable, Schneider Electric y sus filiales no
asumen ninguna responsabilidad u obligación por cualquier error u omisión en el
contenido informativo de este material o por las consecuencias derivadas o
resultantes del uso de la información contenida en el presente documento.

Como parte de un grupo de empresas responsables e inclusivas, estamos


actualizando nuestras comunicaciones que contienen terminología no inclusiva. Sin
embargo, hasta que completemos este proceso, es posible que nuestro contenido
todavía contenga términos estandarizados del sector que pueden ser considerados
inapropiados para nuestros clientes.

© 2022 - Schneider Electric. Todos los derechos reservados.


Tabla de contenido
Información de seguridad ..........................................................................7
Antes de empezar ......................................................................................7
Iniciar y probar ...........................................................................................8
Funcionamiento y ajustes ..................................................................................9
Acerca de este libro ..................................................................................10
Introducción ...............................................................................................14
Cómo utilizar ejemplos de código fuente ....................................................14
Bloques de operación ...............................................................................16
Bloques de comparación...........................................................................18
Objetos de lenguaje..................................................................................20
Objetos....................................................................................................20
Objetos de bit de memoria.........................................................................21
Objetos de E/S .........................................................................................22
Objetos de palabra ...................................................................................24
Objetos de coma flotante y de palabra doble...............................................28
Objetos estructurados...............................................................................32
Objetos indexados....................................................................................34
Objetos de bloque de funciones.................................................................36
Instrucciones .............................................................................................38
Procesamiento booleano ..........................................................................38
Instrucciones booleanas......................................................................38
Operadores de carga (LD, LDN, LDR, LDF) ..........................................40
Operadores de asignación (ST, STN, R, S) ...........................................42
Operadores lógicos AND (AND, ANDN, ANDR, ANDF)..........................43
Operadores lógicos OR (OR, ORN, ORR, ORF)....................................44
Operadores OR exclusivos (XOR, XORN, XORR, XORF) ......................45
Operador NOT (N) ..............................................................................47
Funciones ascendentes y descendentes (RISING, FALLING) ................48
Instrucciones de comparación .............................................................50
Procesamiento numérico...........................................................................51
Introducción a operaciones numéricas..................................................51
Instrucciones de asignación.................................................................51
Asignación de cadenas de bits.............................................................52
Asignación de palabras .......................................................................53
Operadores aritméticos en enteros.......................................................54
Instrucciones lógicas...........................................................................57
Instrucciones de desplazamiento .........................................................58
Instrucciones de conversión BCD/binario..............................................59
Instrucciones de conversión de una o dos palabras ...............................61
Programa.................................................................................................61
Instrucciones END ..............................................................................62
Instrucciones NOP ..............................................................................63
Instrucciones de salto..........................................................................63
Elementos condicionales.....................................................................64
Elementos de bucle ............................................................................66
Instrucciones de subrutina ...................................................................67
Coma flotante...........................................................................................68

EIO0000003292.03 3
Instrucciones aritméticas para objetos de coma flotante.........................69
Instrucciones trigonométricas ..............................................................71
Instrucciones de conversión de ángulo .................................................72
Instrucciones de conversión de enteros/flotantes ..................................73
ASCII.......................................................................................................74
Instrucciones ROUND .........................................................................74
Instrucciones de conversión de ASCII a entero .....................................76
Instrucciones de conversión de entero a ASCII .....................................77
Instrucciones de conversión de ASCII a flotante ....................................79
Instrucciones de conversión de flotante a ASCII ....................................81
Instrucciones de conversión de ASCII a palabra doble...........................82
Instrucciones de conversión de palabra doble a ASCII...........................84
Operadores de pila ...................................................................................85
Instrucciones de la pila (MPS, MRD, MPP) ...........................................85
Instrucciones sobre las tablas de objetos....................................................86
Asignación de tablas de palabras, palabras dobles y comas
flotantes .............................................................................................87
Funciones de suma de tablas ..............................................................88
Funciones de comparación de tablas ...................................................89
Funciones de búsqueda en tablas ........................................................90
Funciones de búsqueda de valores máximo y mínimo en tablas .............91
Número de apariciones de un valor en una tabla ...................................92
Funciones de desplazamiento circular de tabla .....................................93
Funciones de clasificación en tablas.....................................................94
Funciones de interpolación en la tabla de coma flotante (LKUP) .............95
Funciones MEAN de los valores de una tabla de coma flotante ..............98
Función SWAP de los valores de una tabla de palabras.........................99
Instrucciones sobre los objetos de E/S ..................................................... 100
Lectura de la entrada digital incrustada inmediata (READ_IMM_
IN) ................................................................................................... 100
Escritura de la salida digital incrustada inmediata (WRITE_IMM_
OUT) ............................................................................................... 101
Parámetro de bloque de funciones de lectura inmediata (READ_
IMM) ................................................................................................ 102
Parámetro de bloque de funciones de escritura inmediata (WRITE_
IMM) ................................................................................................ 103
Objetos de E/S ........................................................................................ 105
Contador rápido (%FC) ........................................................................... 105
Contador de alta velocidad (%HSC) ......................................................... 105
Pulso (%PLS)......................................................................................... 105
Modulación de ancho de pulsos (%PWM)................................................. 105
Objetos de red ......................................................................................... 107
Objetos de red........................................................................................ 107
Objetos de software................................................................................ 108
Uso de bloques de funciones................................................................... 108
Principios de programación de bloques de funciones........................... 108
Adición de un bloque de funciones ..................................................... 109
Configuración de un bloque de funciones ........................................... 111
Temporizador (%TM) .............................................................................. 111
Descripción ...................................................................................... 112

4 EIO0000003292.03
Configuración ................................................................................... 112
TON: Temporizador de retardo de conexión ........................................ 114
TOF: Temporizador de retardo en la desconexión................................ 118
TP: Temporizador de pulso ................................................................ 121
Ejemplo de programación.................................................................. 124
Contador (%C) ....................................................................................... 124
Descripción ...................................................................................... 125
Configuración ................................................................................... 126
Ejemplo de programación.................................................................. 128
Mensaje (%MSG) e intercambio (EXCH) .................................................. 129
Descripción general .......................................................................... 129
Descripción ...................................................................................... 131
Configuración ................................................................................... 135
Ejemplo de programación.................................................................. 138
Ejemplos ASCII ................................................................................ 139
Peticiones y ejemplos estándar de Modbus ........................................ 141
Registro LIFO/FIFO (%R)........................................................................ 148
Descripción ...................................................................................... 148
Configuración ................................................................................... 149
Operación de registro LIFO ............................................................... 151
Operación de registro FIFO ............................................................... 152
Ejemplo de programación.................................................................. 153
Drums (%DR)......................................................................................... 153
Descripción ...................................................................................... 154
Configuración ................................................................................... 155
Ejemplo de programación.................................................................. 156
Registro de bits de desplazamiento (%SBR)............................................. 159
Descripción ...................................................................................... 159
Configuración ................................................................................... 160
Ejemplo de programación.................................................................. 161
Contador de pasos (%SC)....................................................................... 162
Descripción ...................................................................................... 162
Configuración ................................................................................... 163
Ejemplo de programación.................................................................. 164
Fechadores (%SCH)............................................................................... 165
Descripción ...................................................................................... 165
Programación y configuración............................................................ 168
Reloj de tiempo real (%RTC) .................................................................. 170
Descripción ...................................................................................... 170
Configuración ................................................................................... 172
PID........................................................................................................ 173
Función PID ..................................................................................... 173
Registro de datos ................................................................................... 174
Registro de datos.............................................................................. 174
Pasos de Grafcet.................................................................................... 176
Pasos de Grafcet .............................................................................. 176
Objetos PTO ............................................................................................ 177
Motion Task Table (%MT) ........................................................................ 177
Salida de tren de pulsos (%PTO) ............................................................. 177
Objetos de accionamiento ..................................................................... 178
Objetos de accionamiento ....................................................................... 178
EIO0000003292.03 5
Objetos de comunicación ...................................................................... 179
Leer datos desde un dispositivo remoto (%READ_VAR)............................ 179
Descripción ...................................................................................... 179
Configuración de funciones ............................................................... 183
Ejemplo de programación.................................................................. 186
Escritura de datos en un dispositivo Modbus (%WRITE_VAR) ................... 186
Descripción ...................................................................................... 186
Configuración de funciones ............................................................... 188
Ejemplo de programación.................................................................. 191
Leer y escribir datos en un dispositivo Modbus (%WRITE_READ_
VAR)...................................................................................................... 191
Descripción ...................................................................................... 191
Configuración de funciones ............................................................... 193
Ejemplo de programación.................................................................. 195
Comunicación en una conexión ASCII (%SEND_RECV_MSG).................. 196
Descripción ...................................................................................... 196
Configuración de funciones ............................................................... 198
Ejemplo de programación.................................................................. 200
Enviar Recibir SMS (%SEND_RECV_SMS) ............................................. 201
Descripción ...................................................................................... 201
Configuración de funciones ............................................................... 207
Diagramas de tiempos para bloques de funciones de objetos de
comunicación ......................................................................................... 212
Ejemplos de diagramas de tiempos .................................................... 212
Funciones definidas por el usuario ...................................................... 214
Presentación.......................................................................................... 214
Bloques de funciones definidos por el usuario ................................... 215
Presentación.......................................................................................... 215
Funciones de reloj................................................................................... 216
Funciones de reloj .................................................................................. 216
Marcas de fecha y hora........................................................................... 216
Ajuste de fecha y hora ............................................................................ 218
Glosario .................................................................................................... 221
Índice ........................................................................................................ 223

6 EIO0000003292.03
Información de seguridad

Información de seguridad
Información importante
Lea atentamente estas instrucciones y observe el equipo para familiarizarse con
el dispositivo antes de instalarlo, utilizarlo, revisarlo o realizar su mantenimiento.
Los mensajes especiales que se ofrecen a continuación pueden aparecer a lo
largo de la documentación o en el equipo para advertir de peligros potenciales, o
para ofrecer información que aclara o simplifica los distintos procedimientos.

La inclusión de este icono en una etiqueta “Peligro” o “Advertencia” indica que existe
un riesgo de descarga eléctrica, que puede provocar lesiones si no se siguen las
instrucciones.

Éste es el icono de alerta de seguridad. Se utiliza para advertir de posibles riesgos


de lesiones. Observe todos los mensajes que siguen a este icono para evitar
posibles lesiones o incluso la muerte.

! PELIGRO
PELIGRO indica una situación de peligro que, si no se evita, provocará lesiones graves o
incluso la muerte.

! ADVERTENCIA
ADVERTENCIA indica una situación de peligro que, si no se evita, podría provocar lesiones
graves o incluso la muerte.

! ATENCIÓN
ATENCIÓN indica una situación peligrosa que, si no se evita, podría provocar lesiones leves
o moderadas.

AVISO
AVISO indica una situación potencialmente peligrosa que, si no se evita, puede provocar
daños en el equipo.

Tenga en cuenta
La instalación, manejo, puesta en servicio y mantenimiento de equipos eléctricos
deberán ser realizados sólo por personal cualificado. Schneider Electric no se
hace responsable de ninguna de las consecuencias del uso de este material.
Una persona cualificada es aquella que cuenta con capacidad y conocimientos
relativos a la construcción, el funcionamiento y la instalación de equipos
eléctricos, y que ha sido formada en materia de seguridad para reconocer y evitar
los riesgos que conllevan tales equipos.

Antes de empezar
No utilice este producto en maquinaria sin protección de punto de funcionamiento.
La ausencia de protección de punto de funcionamiento en una máquina puede
provocar lesiones graves al operador de dicha máquina.

EIO0000003292.03 7
Información de seguridad

ADVERTENCIA
EQUIPO SIN PROTECCIÓN
• No utilice este software ni los equipos de automatización relacionados en
equipos que no dispongan de protección de punto de funcionamiento.
• No introduzca las manos u otras partes del cuerpo dentro de la maquinaria
mientras está en funcionamiento.
Si no se siguen estas instrucciones, pueden producirse lesiones graves,
muerte o daños en el equipo.

Este equipo de automatización y el software relacionado se utilizan para controlar


diversos procesos industriales. El tipo o modelo del equipo de automatización
adecuado para cada uso varía en función de factores tales como las funciones de
control necesarias, el grado de protección requerido, los métodos de producción,
la existencia de condiciones poco habituales, las normativas gubernamentales,
etc. En algunos usos, puede ser necesario más de un procesador, como en el
caso de que se requiera redundancia de respaldo.
Solamente el usuario, el fabricante de la máquina o el integrador del sistema
conocen las condiciones y los factores presentes durante la configuración, el
funcionamiento y el mantenimiento de la máquina y, por consiguiente, pueden
decidir el equipo asociado y las medidas de seguridad y los enclavamientos
relacionados que se pueden utilizar de forma adecuada. Al seleccionar los
equipos de automatización y control, así como el software relacionado para un
uso determinado, el usuario deberá consultar los estándares y las normativas
locales y nacionales aplicables. La publicación National Safety Council's Accident
Prevention Manual (que goza de un gran reconocimiento en los Estados Unidos
de América) también proporciona gran cantidad de información de utilidad.
En algunas aplicaciones, como en el caso de la maquinaria de embalaje, debe
proporcionarse protección adicional al operador, como la protección de punto de
funcionamiento. Esta medida es necesaria si existe la posibilidad de que las
manos y otras partes del cuerpo del operador puedan introducirse y quedar
atrapadas en áreas o puntos peligrosos, lo que puede provocar lesiones graves.
Los productos de software por sí solos no pueden proteger al operador frente a
posibles lesiones. Por este motivo, el software no se puede sustituir por la
protección de punto de funcionamiento ni puede realizar la función de esta.
Asegúrese de que las medidas de seguridad y los enclavamientos mecánicos/
eléctricos relacionados con la protección de punto de funcionamiento se hayan
instalado y estén operativos antes de que los equipos entren en funcionamiento.
Todos los enclavamientos y las medidas de seguridad relacionados con la
protección de punto de funcionamiento deben estar coordinados con la
programación del software y los equipos de automatización relacionados.
NOTA: La coordinación de las medidas de seguridad y los enclavamientos
mecánicos/eléctricos para la protección de punto de funcionamiento está
fuera del ámbito de la biblioteca de bloques de funciones, la guía de usuario
del sistema o de otras instalaciones mencionadas en esta documentación.

Iniciar y probar
Antes de utilizar los equipos eléctricos de control y automatización para su
funcionamiento normal tras la instalación, es necesario que personal cualificado
lleve a cabo una prueba de inicio del sistema para verificar que los equipos
funcionan correctamente. Es importante realizar los preparativos para una
comprobación de estas características y disponer de suficiente tiempo para llevar
a cabo las pruebas de forma completa y correcta.

8 EIO0000003292.03
Información de seguridad

ADVERTENCIA
PELIGRO DE FUNCIONAMIENTO DEL EQUIPO
• Compruebe que se hayan seguido todos los procedimientos de instalación y
configuración.
• Antes de realizar las pruebas de funcionamiento, retire de todos los
dispositivos todos los bloqueos u otros medios de sujeción temporales
utilizados para el transporte.
• Retire del equipo las herramientas, los medidores y el material de desecho
que pueda haber.
Si no se siguen estas instrucciones, pueden producirse lesiones graves,
muerte o daños en el equipo.

Realice todas las pruebas de inicio recomendadas en la documentación del


equipo. Guarde la documentación del equipo para consultarla en el futuro.
Las pruebas del software deben realizarse tanto en un entorno simulado
como en un entorno real.
Verifique que no existen cortocircuitos ni conexiones a tierra temporales en todo
el sistema que no estén instalados según la normativa local (de conformidad con
National Electrical Code de EE. UU., por ejemplo). Si fuera necesario realizar
pruebas de tensión de alto potencial, siga las recomendaciones de la
documentación del equipo para evitar dañar el equipo fortuitamente.
Antes de dar tensión al equipo:
• Retire del equipo las herramientas, los medidores y el material de desecho
que pueda haber.
• Cierre la puerta de la carcasa del equipo.
• Retire todas las conexiones a tierra temporales de las líneas de alimentación
de entrada.
• Realice todas las pruebas iniciales recomendadas por el fabricante.

Funcionamiento y ajustes
Las precauciones siguientes proceden de NEMA Standards Publication ICS
7.1-1995 (prevalece la versión en inglés):

• Aunque se ha extremado la precaución en el diseño y la fabricación del


equipo o en la selección y las especificaciones de los componentes, existen
riesgos que pueden aparecer si el equipo se utiliza de forma inadecuada.
• En algunas ocasiones puede desajustarse el equipo, lo que provocaría un
funcionamiento incorrecto o poco seguro. Utilice siempre las instrucciones
del fabricante como guía para realizar los ajustes de funcionamiento. El
personal que tenga acceso a estos ajustes debe estar familiarizado con las
instrucciones del fabricante del equipo y con la maquinaria utilizada para los
equipos eléctricos.
• El operador solo debe tener acceso a los ajustes de funcionamiento que
realmente necesita. El acceso a los demás controles debe restringirse para
evitar cambios no autorizados en las características de funcionamiento.

EIO0000003292.03 9
Acerca de este libro

Acerca de este libro


Alcance del documento
En esta guía se describe cómo utilizar bloques de funciones e instrucciones en
los programas que crea con el software EcoStruxure Machine Expert - Basic. Las
descripciones se aplican a todos los controladores lógicos compatibles con
EcoStruxure Machine Expert - Basic.

Campo de aplicación
La información de este manual es aplicable solo para productos compatibles con
EcoStruxure Machine Expert - Basic.
Este documento se ha actualizado para el lanzamiento de EcoStruxureTM Machine
Expert - Basic V1.2 SP1 Patch 1.
Las características descritas en el presente documento, así como las descritas en
los documentos incluidos a continuación en la sección Documentos relacionados,
pueden consultarse en línea. Para acceder a la información en línea, visite la
página de inicio de Schneider Electric www.se.com/ww/en/download/.
Las características descritas en el presente documento deben coincidir con las
características que aparecen en línea. De acuerdo con nuestra política de
mejoras continuas, es posible que a lo largo del tiempo revisemos el contenido
con el fin de elaborar documentos más claros y precisos. Si nota alguna diferencia
entre el manual y la información online, utilice la información online como
referencia.

Documentos relacionados
Título de la documentación Número de referencia
EcoStruxure Machine Expert - Basic - Guía de EIO0000003281 (ENG)
funcionamiento
EIO0000003282 (FRA)

EIO0000003283 (GER)

EIO0000003284 (SPA)

EIO0000003285 (ITA)

EIO0000003286 (CHS)

EIO0000003287 (POR)

EIO0000003288 (TUR)

Funciones avanzadas del Modicon M221 Logic Controller - EIO0000003305 (ENG)


Guía de la biblioteca
EIO0000003306 (FRE)

EIO0000003307 (GER)

EIO0000003308 (SPA)

EIO0000003309 (ITA)

EIO0000003310 (CHS)

EIO0000003311 (POR)

EIO0000003312 (TUR)

10 EIO0000003292.03
Acerca de este libro

Título de la documentación Número de referencia


Modicon M221 Logic Controller - Guía de programación EIO0000003297 (ENG)

EIO0000003298 (FRE)

EIO0000003299 (GER)

EIO0000003300 (SPA)

EIO0000003301 (ITA)

EIO0000003302 (CHS)

EIO0000003303 (POR)

EIO0000003304 (TUR)

Modicon M221 Logic Controller - Guía de hardware EIO0000003313 (ENG)

EIO0000003314 (FRA)

EIO0000003315 (GER)

EIO0000003316 (SPA)

EIO0000003317 (ITA)

EIO0000003318 (CHS)

EIO0000003319 (POR)

EIO0000003320 (TUR)

Información relacionada con el producto

ADVERTENCIA
PÉRDIDA DE CONTROL
• El diseñador del esquema de control debe tener en cuenta los posibles
modos de fallo de rutas de control y, para ciertas funciones de control
críticas, proporcionar los medios para lograr un estado seguro durante y
después de un fallo de ruta. Funciones de control críticas son, por ejemplo,
una parada de emergencia y una parada de sobrerrecorrido, un corte de
alimentación y un reinicio.
• Para las funciones críticas de control deben proporcionarse rutas de control
separadas o redundantes.
• Las rutas de control del sistema pueden incluir enlaces de comunicación.
Deben tenerse en cuenta las implicaciones de los retrasos de transmisión
no esperados o los fallos en el enlace.
• Tenga en cuenta todas las reglamentaciones para la prevención de
accidentes y las directrices de seguridad locales.1
• Cada implementación de este equipo debe probarse de forma individual y
exhaustiva antes de entrar en servicio.
Si no se siguen estas instrucciones, pueden producirse lesiones graves,
muerte o daños en el equipo.

1Para obtener información adicional, consulte NEMA ICS 1.1 (última edición),
"Safety Guidelines for the Application, Installation, and Maintenance of Solid State
Control" (Directrices de seguridad para la aplicación, la instalación y el
mantenimiento del control de estado estático) y NEMA ICS 7.1 (última edición),
"Safety Standards for Construction and Guide for Selection, Installation and
Operation of Adjustable-Speed Drive Systems" (Estándares de seguridad para la
construcción y guía para la selección, instalación y utilización de sistemas de
unidades de velocidad ajustable) o su equivalente aplicable a la ubicación
específica.

EIO0000003292.03 11
Acerca de este libro

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
• Utilice sólo software aprobado por Schneider Electric para este equipo.
• Actualice el programa de aplicación siempre que cambie la configuración de
hardware física.
Si no se siguen estas instrucciones, pueden producirse lesiones graves,
muerte o daños en el equipo.

Normas y términos utilizados


Los términos técnicos, símbolos y las descripciones correspondientes del
presente manual o que aparecen en la parte interior o exterior de los propios
productos se derivan, por lo general, de los términos y las definiciones de
estándares internacionales.
En el área de los sistemas de seguridad funcional, unidades y automatización
general se incluyen, pero sin limitarse a ellos, términos como seguridad, función
de seguridad, estado de seguridad, fallo, reinicio tras fallo, avería, funcionamiento
incorrecto, error, mensaje de error, peligroso, etc.
Estos estándares incluyen, entre otros:

Norma Descripción

IEC 61131-2:2007 Controladores programables, parte 2: Requisitos y ensayos de los


equipos.

ISO 13849-1:2015 Seguridad de la maquinaria: componentes de los sistemas de control


relacionados con la seguridad.

Principios generales del diseño.

EN 61496-1:2013 Seguridad de las máquinas: equipos de protección electrosensibles.

Parte 1: pruebas y requisitos generales.

ISO 12100:2010 Seguridad de las máquinas. Principios generales para el diseño.


Evaluación del riesgo y reducción del riesgo

EN 60204-1:2006 Seguridad de las máquinas. Equipo eléctrico de las máquinas. Parte 1:


Requisitos generales

ISO 14119:2013 Seguridad de la maquinaria. Dispositivos de bloqueo asociados con


protecciones: principios de diseño y selección

ISO 13850:2015 Seguridad de la maquinaria. Parada de emergencia: principios de


diseño
IEC 62061:2015 Seguridad de la maquinaria. Seguridad funcional de los sistemas de
control programable de seguridad eléctrica y electrónica

IEC 61508-1:2010 Seguridad funcional de los sistemas eléctricos/electrónicos/electrónicos


programables relacionados con la seguridad: requisitos generales.

IEC 61508-2:2010 Seguridad funcional de los sistemas eléctricos/electrónicos/electrónicos


programables relacionados con la seguridad: requisitos para los
sistemas eléctricos/electrónicos/electrónicos programables
relacionados con la seguridad.

IEC 61508-3:2010 Seguridad funcional de los sistemas eléctricos/electrónicos/electrónicos


programables relacionados con la seguridad: requisitos de software.

IEC 61784-3:2016 Redes de comunicación industrial - Perfiles - Parte 3: Buses de campo


de seguridad funcionales - Reglas generales y definiciones de perfiles.

2006/42/EC Directiva de maquinaria

2014/30/EU Directiva de compatibilidad electromagnética

2014/35/EU Directiva de baja tensión

12 EIO0000003292.03
Acerca de este libro

Además, los términos utilizados en este documento se pueden usar de manera


tangencial porque se obtienen de otros estándares como:

Norma Descripción

Serie IEC 60034 Máquinas eléctricas giratorias

Serie IEC 61800 Accionamientos eléctricos de potencia de velocidad variable

Serie IEC 61158 Comunicación digital de datos para la medición y control: bus de campo
para su uso en sistemas de control.

Por último, el término zona de funcionamiento se puede utilizar junto con la


descripción de peligros específicos, y se define como tal para una zona de peligro
o zona peligrosa en la Directiva de maquinaria (2006/42/EC) y ISO 12100:2010.
NOTA: Los estándares mencionados anteriormente podrían o no aplicarse a
los productos específicos citados en la presente documentación. Para
obtener más información en relación con los diferentes estándares aplicables
a los productos descritos en este documento, consulte las tablas de
características de las referencias de dichos productos.

EIO0000003292.03 13
Introducción

Introducción
Descripción general
En este capítulo se proporciona información sobre cómo utilizar los ejemplos de
código fuente y los bloques que se requieren para ejecutar muchos de los
ejemplos de operaciones e instrucciones de asignación que se indican en este
documento.

Cómo utilizar ejemplos de código fuente


Descripción general
Excepto donde se mencione explícitamente, los ejemplos de código fuente
contenidos en este documento son válidos para los lenguajes de programación
Diagrama de contactos y Lista de instrucciones. Puede ser necesario más de un
escalón para un ejemplo completo.

Procedimiento de reversibilidad
Para obtener el código fuente de Diagrama de contactos equivalente:

Paso Acción
1 Seleccione y copie (Ctrl+C) el código fuente del primer escalón del programa de
muestra de este manual.
2 En EcoStruxure Machine Expert - Basic, cree un nuevo escalón haciendo clic en

en la barra de herramientas.
3 En este escalón, haga clic en el botón LD > IL para visualizar el código fuente de Lista
de instrucciones.
4 Seleccione el número de línea 0000, haga clic con el botón derecho del ratón y elija
Pegar instrucciones para pegar el código fuente en el escalón:

NOTA: Recuerde eliminar la instrucción LD de la última línea del escalón si ha


pegado las instrucciones insertando las líneas antes del operador LD
predeterminado.

5 Haga clic en el botón IL > LD para visualizar el código fuente de Lista de


instrucciones.
6 Repita los pasos previos para cualquiera de los escalones adicionales del programa
de ejemplo.

14 EIO0000003292.03
Introducción

Ejemplo
Programa Lista de instrucciones:

Escalón Código fuente

0 BLK %R0
LD %M1
I
LD %I0.3
ANDN %R2.E
O
END_BLK

1 LD %I0.3
[%MW20:=%R2.O]

2 LD %I0.2
ANDN %R2.F
[%R2.I:=%MW34]
ST %M1

Diagrama de contactos correspondiente:

EIO0000003292.03 15
Introducción

Bloques de operación
Inserción de operaciones IL e instrucciones de asignación en
diagramas de contactos
Puede utilizar el símbolo gráfico del Bloque de operación para insertar
operaciones de listas de instrucciones e instrucciones de asignación en
escalones de diagrama de contactos:

Bloque de operación al final de un escalón. Bloque de operación en algún lugar de un


escalón.

El símbolo gráfico Bloque de operación se puede insertar en cualquier lugar de


un escalón de diagrama de contactos, excepto la primera columna, ya que no se
puede utilizar como el primer contacto de un escalón.
Si se utiliza más de un símbolo gráfico Bloque de operación en un escalón de
diagrama de contactos, se deberán colocar en serie. Las instrucciones de Bloque
de operación no se pueden utilizar en paralelo.
NOTA: Si la aplicación se configura con un nivel funcional de, como mínimo,
Nivel 5.0:
• Puede utilizar hasta cinco operandos y tres niveles de paréntesis en un
bloque de operación. Los operandos deben corresponder a los mismos
tipos de objeto: palabras con palabras, flotante con flotante, etc.
• Debe haber 20 palabras de memoria (%MW) disponibles para usar varios
operandos en la tarea maestra. Si también se utilizan varios operandos
en una tarea periódica, deberá haber 20 palabras más de memoria
disponibles.
Para insertar un símbolo gráfico de bloque de operación en un escalón de
diagrama de contactos:

Paso Acción
1
Haga clic en el botón Bloque de operación de la barra de herramientas.

2 Haga clic en algún lugar del escalón para insertar el Bloque de operación.

3
Haga clic en el botón Modalidad de selección de la barra de herramientas.

4 Haga doble clic en la línea de expresión de operación.

El botón Codificación inteligente, página 17 aparece al final de la línea. Haga clic


en este botón para obtener ayuda sobre la selección de una función y la sintaxis de la
instrucción.
5 Escriba una operación de lista de instrucciones válida o una instrucción de asignación y
pulse INTRO.

Por ejemplo: %MF10 := ((SIN( %MF12 + 60.0 ) + COS( %MF13 )) + %MF10 ) + 1.2

Puede modificar la expresión en modalidad online. Consulte Modificaciones de la


modalidad en línea (consulte EcoStruxure Machine Expert - Basic, Guía de la biblioteca
de funciones genéricas).

NOTA: Las expresiones de varios operandos no se pueden utilizar en tareas


de evento.

16 EIO0000003292.03
Introducción

Sintaxis de instrucción OPER


La instrucción OPER corresponde a un bloque de operación colocado en algún
lugar de un escalón.
La instrucción OPER equivalente se puede utilizar directamente en escalones de
lista de instrucciones.
OPER [ expresión ] en el que expresión es una expresión válida, que contiene
hasta cinco operandos y tres niveles de paréntesis. Ejemplo:
OPER [ %MF10 := ((SIN( %MF12 + 60.0 ) + COS( %MF13 )) + %MF10 ) + 1.2]

Información sobre herramientas de codificación inteligente en


diagramas de diagrama de contactos
Para facilitar la selección de funciones, EcoStruxure Machine Expert - Basic
muestra información sobre herramientas cuando se escriben nombres de función
en los bloques de operación.
Hay dos tipos de información sobre herramientas:
• Una lista de nombres de función, que se actualiza de forma dinámica con los
nombres de función que empiezan por los caracteres escritos. Por ejemplo,
al escribir "AS" se muestra ASCII_TO_FLOAT, ASCII_TO_INT y ASIN.
• Ayuda sobre la sintaxis de una función, que se muestra al escribir un
paréntesis de apertura. Por ejemplo, al escribir "ABS(" se muestra:

Uso del asistente de Edición inteligente de código


El asistente de Edición inteligente de código aparece al hacer clic en el botón

Edición inteligente de código que se encuentra en la línea de expresión de la


operación:

EIO0000003292.03 17
Introducción

Proceda de la manera siguiente:

Paso Acción
1 Opcionalmente, filtre la lista por categoría de función:
• Todos los tipos
• ASCII
• Punto flotante
• Objetos de E/S
• Coma flotante
• Procesamiento numérico
• Tabla
• PID
• Función definida por el usuario

2 Seleccione una función para añadirla a la expresión.

3 Haga clic en Insertar función.

Obtener ayuda con la sintaxis


Si la sintaxis de la operación de lista de instrucciones o de la instrucción de
asignación es incorrecta, el borde del cuadro de la expresión de operación se
vuelve de color rojo. Si necesita ayuda, haga lo siguiente:
• Mueva el ratón sobre la línea de expresión de operación, o bien
• Seleccione Herramientas > Mensajes de programa.

Bloques de comparación
Inserción de expresiones de comparación de IL en diagramas de
contactos
Puede utilizar el símbolo gráfico del Bloque de comparación para insertar
expresiones de comparación de listas de instrucciones en escalones de diagrama
de contactos:

Los operandos deben corresponder a los mismos tipos de objeto: palabras con
palabras, flotante con flotante, etc.
Proceda de la manera siguiente:

Paso Acción
1

Haga clic en el botón Bloque de comparación en la barra de herramientas.

2 Haga clic en algún lugar del escalón para insertar el Bloque de comparación.

3 Haga doble clic en la línea Expresión de comparación.

4 Escriba una operación de comparación de listas de instrucciones válida y pulse INTRO.

Puede modificar la expresión en modalidad online. Consulte Modificaciones de la


modalidad en línea (consulte EcoStruxure Machine Expert - Basic, Guía de
funcionamiento).

18 EIO0000003292.03
Introducción

NOTA: Si la aplicación está configurada con un nivel funcional (consulte


EcoStruxure Machine Expert - Basic, Guía de funcionamiento) de al menos
Nivel 6.0:
• Puede utilizar hasta cinco operandos y tres niveles de paréntesis en un
bloque de comparación.
• Debe haber 20 palabras de memoria (%MW) disponibles para usar varios
operandos en la tarea maestra. Si también se utilizan varios operandos
en una tarea periódica, deberá haber 20 palabras más de memoria
disponibles.
NOTA: Las expresiones de varios operandos no se pueden utilizar en tareas
de evento.

Obtener ayuda con la sintaxis


Si la operación de comparación de listas de instrucciones es incorrecta, el borde
del cuadro Expresión de comparación se vuelve de color rojo. Si necesita
ayuda, haga lo siguiente:
• Mueva el ratón sobre la línea Expresión de comparación, o bien
• Seleccione Herramientas > Mensajes de programa.

EIO0000003292.03 19
Objetos de lenguaje

Objetos de lenguaje
Objetos
Descripción general
En EcoStruxure Machine Expert - Basic, el término objeto se utiliza para
representar un área de la memoria del controlador lógico reservada para que la
utilice una aplicación. Los objetos pueden ser:
• Variables de software simples, como bits de memoria y palabras.
• Direcciones de las entradas y salidas digitales o analógicas.
• Variables internas del controlador, como palabras y bits del sistema.
• Funciones predefinidas del sistema o de los bloques de funciones, como
temporizadores y contadores.
La memoria del controlador está preasignada para determinados tipos de objetos,
o bien se asigna automáticamente cuando una aplicación se descarga en el
controlador lógico.
Los objetos solo pueden ser direccionados por un programa una vez que se ha
asignado memoria. Los objetos se direccionan mediante el prefijo %. Por ejemplo,
%MW12 es la dirección de una palabra de memoria, %Q0.3 es la dirección de
una salida digital incrustada y %TM0 es la dirección de un bloque de funciones
Timer.

20 EIO0000003292.03
Objetos de lenguaje

Objetos de bit de memoria


Introducción
Los objetos de bit de memoria son variables de software de tipo bit que pueden
utilizarse como operandos y verificarse mediante instrucciones booleanas.
Ejemplos de objetos de bit:
• Bits de memoria
• Bits de sistema
• Bits de pasos
• Bits extraídos de palabras
El rango de objetos válidos va de 0 a la referencia máxima utilizada en su
aplicación (consulte la guía de programación de su controlador lógico).

Sintaxis
Utilice este formato para dirigir objetos de bits de pasos, de memoria y de
sistema:

En esta tabla se describen los elementos en el formato de direccionamiento:

Grupo Ele- Descripción


mento
Símbolo % El símbolo de porcentaje precede a una variable de software.

Tipo de objeto M Los bits de memoria almacenan valores intermedios mientras se


ejecuta un programa.

S Los bits de sistema proporcionan información de control y de


estado del controlador.
X Los bits de pasos proporcionan el estado de las actividades del
paso Grafcet.

Identificador de i El identificador del objeto que representa su instancia secuencial


instancia de objeto en la memoria. La cantidad máxima de objetos depende de la
cantidad de objetos configurada para los límites de la memoria
disponible. Para verificar la cantidad máxima de memoria
disponible, consulte la guía de programación del Logic Controller.

Para obtener información sobre cómo dirigir los bits de E/S, consulte Objetos de
E/S, página 22.
Para obtener información sobre cómo dirigir un bit extraído de una palabra,
consulte Extracción de un bit de un objeto de palabra, página 28.

EIO0000003292.03 21
Objetos de lenguaje

Descripción
En esta tabla se enumeran y se describen los objetos de bits de pasos, de
memoria y de sistema que se utilizan como operandos en las instrucciones
booleanas:

Tipo Descripción Dirección o Acceso de


valor escritura1
Valores 0 ó 1 (Falso o Verdadero) 0o1 –
inmediatos
Memoria Los bits de memoria son áreas de memoria interna %Mi Sí
utilizadas para almacenar valores binarios.
NOTA: Los objetos de E/S no utilizados no se
pueden utilizar como bits de memoria.

System Los bits de sistema %S0 a %S127 permiten %Si Depende


monitorizar la operación correcta del controlador y la de i
ejecución correcta del programa de aplicación,
además de controlar determinadas funciones a nivel
de sistema.
Pasos Los bits %X1 a %Xi se asocian a pasos Grafcet. El %Xi Sí
Grafcet bit de paso Xi se establece en 1 cuando el paso
correspondiente está activo, y en 0 cuando el paso
está desactivado.
1 Escrito por el programa o mediante una tabla de animación.

Ejemplo
En esta página se muestran algunos ejemplos de direccionamiento de objetos de
bit:

Objeto de Descripción
bit
%M25 Bit de memoria número 25
%S20 Bit de sistema número 20
%X4 Paso Grafcet número 4

Objetos de E/S
Introducción
Los objetos de E/S incluyen tanto bits como palabras. Todas las entradas y
salidas físicas están asignadas a estos objetos en la memoria interna. Los objetos
de bit de E/S pueden utilizarse como operandos y se pueden comprobar con
instrucciones booleanas. Los objetos de palabra de E/S pueden utilizarse en la
mayoría de las instrucciones no booleanas como funciones e instrucciones que
contienen operaciones aritméticas.
Ejemplos de objetos de E/S:
• Entradas digitales
• Salidas digitales
• Entradas analógicas
• Salidas analógicas
• Entradas y salidas de comunicación
El rango de objetos válidos oscila entre 0 y el máximo configurado y soportado
por su controlador (consulte la Guía de hardware y la Guía de programación del
Logic Controller).

22 EIO0000003292.03
Objetos de lenguaje

Sintaxis
En esta imagen se muestra el formato de la dirección de entrada/salida:

En esta tabla se describen los componentes del formato del direccionamiento:

Componente Elemento Valor Descripción

Símbolo % – El símbolo de porcentaje precede a una dirección


interna.
Tipo de objeto I – Entrada digital (objeto de bit)

Q – Salida digital (objeto de bit)

IW – Valor de la entrada analógica (objeto de palabra)

QW – Valor de la salida analógica (objeto de palabra)

IWS – Estado de canal de entrada analógica (objeto de


palabra)

QWS – Estado de canal de salida analógica (objeto de


palabra)

Número de y 0 Canal de E/S incrustadas en el logic controller o en un


módulo cartucho insertado en el logic controller.

1...m 1 Canal de E/S en un módulo de extensión conectado


directamente con el controlador.
m+1...n 2 Canal de E/S en un módulo de extensión conectado
utilizando los módulos transmisor/receptor de TM3.

Número de z De 0 a Número de canal de E/S del controlador lógico o el


canal 31 módulo de extensión. El número de canales
disponibles depende del controlador lógico o de la
referencia del módulo de extensión.
p0q 3 Canal de E/S en un cartucho insertado en el logic
controller. El número de canales disponibles depende
de la referencia del cartucho.
1 m es el número de módulos remotos configurados (máximo 7).
2n es el número de módulos remotos configurados (máximo n+7). El número de posición máximo
es 14.
3 p es el número del cartucho del controlador. q es el número de canal del cartucho.

Descripción
En esta tabla se enumeran y describen los objetos de E/S que se utilizan como
operandos en instrucciones:

Tipo Dirección o Acceso de Descripción


valor escritura 1
Bits de %Iy.z 2 No 3 Estos bits son las imágenes lógicas de los estados
entrada eléctricos de las E/S físicas digitales. Se almacenan
en la memoria de datos y se actualizan durante cada
Bits de %Qy.z 2 Sí exploración de la lógica del programa.
salida
Palabra de %IWy.z 2 No Estos objetos de palabra contienen el valor
entrada analógico del canal correspondiente.
Palabra de %QWy.z 2 Sí
salida
Estado de la %IWSy.z 2 No Estos objetos de palabra contienen el estado del
palabra de canal analógico correspondiente.
entrada

EIO0000003292.03 23
Objetos de lenguaje

Tipo Dirección o Acceso de Descripción


valor escritura 1
Estado de la %QWSy.z 2 No
palabra de
salida
1 Escrito por el programa o mediante una tabla de animación.
2y es el número del módulo y z es el número del canal. Consulte Direccionamiento de sintaxis de
E/S, página 23 para obtener descripciones de y y z.
3 Aunque no se pueda escribir en bits de entrada, estos se pueden forzar.

Ejemplos
En la tabla se presentan varios ejemplos de direccionamiento de E/S:

Objeto de E/S Descripción

%I0.5 Número de canal 5 de la entrada digital del controlador (las E/S


incrustadas son el número de módulo 0).

%Q3.4 Número de canal 4 de la salida digital del módulo de extensión en la


dirección 3 (E/S del módulo de extensión).

%IW0.1 Entrada analógica 1 en el controlador (E/S incrustada).

%QW2.1 Salida analógica 1 en el módulo de extensión en la dirección 2 (E/S del


módulo de extensión).

%IWS0.101 Estado de canal de entrada analógica del canal de entrada 1 en el primer


cartucho del logic controller.

%QWS1.1 Estado de canal de salida analógica del canal de salida 1 del módulo de
extensión en la dirección 1 (E/S del módulo de extensión).

Objetos de palabra
Introducción
Objetos de palabra direccionados en forma de palabras de 16 bits, almacenados
en la memoria de datos y que pueden contener un valor entero desde -32.768
hasta 32.767 (excepto para el bloque de funciones del Contador Rápido, que
está entre 0 y 65.535).
Ejemplos de objetos de palabra:
• Valores inmediatos
• Palabras de memoria (%MWi)
• Palabras constantes (%KWi)
• Palabras de intercambio de E/S (%IWi, %QWi, %IWSi, %QWSi)
• Palabras de sistema (%SWi)
• Bloques de funciones (datos de tiempo de ejecución o configuración)
El rango de objetos válidos va desde 0 hasta la máxima referencia utilizada en su
aplicación (consulte la guía de programación del controlador lógico).
Por ejemplo, si la referencia máxima en su aplicación para palabras de memoria
es %MW9, el espacio asignado será desde %MW0 hasta %MW9. En este ejemplo, el
valor de %MW10 no es válido y no se puede acceder a él ni interna ni
externamente.

24 EIO0000003292.03
Objetos de lenguaje

Sintaxis
Utilice este formato para dirigir palabras de sistema, de memoria y constantes:

En esta tabla se describen los elementos en el formato de direccionamiento:

Grupo Ele- Descripción


me-
nto
Símbolo % El símbolo de porcentaje precede a una dirección interna.

Tipo de objeto M Las palabras de memoria almacenan valores mientras se ejecuta


un programa.

K Las palabras constantes almacenan valores constantes o


mensajes alfanuméricos. Su contenido solo se puede escribir o
modificar utilizando EcoStruxure Machine Expert - Basic.

S Las palabras de sistema proporcionan información de control y


estado para el controlador lógico.

Formato W Palabra de 16 bits.


Identificador de i El identificador del objeto que representa su instancia secuencial
instancia de objeto en la memoria. La cantidad máxima de objetos depende de la
cantidad de objetos configurada para los límites de la memoria
disponible. Para verificar la cantidad máxima de memoria
disponible, consulte la guía de programación del Logic Controller.

Formato
El contenido de las palabras o los valores se almacena en la memoria de usuario
en código binario de 16 bits (complemento a dos) mediante la convención que
aparece a continuación:

En la notación binaria con signo, el bit 15 se asigna por convención al signo del
valor codificado:
• Bit 15 establecido en 0: el contenido de la palabra es un valor positivo.
• Bit 15 establecido en 1: el contenido de la palabra es un valor negativo (los
valores negativos están expresados en lógica de complemento a dos).

EIO0000003292.03 25
Objetos de lenguaje

Las palabras y los valores inmediatos (consulte la lista de excepciones, página 26


para conocer los enteros sin signo) pueden introducirse o recuperarse en el
formato siguiente:
• Decimal
Mín.: -32.768, máx.: 32.767 (por ejemplo, 1.579)
• Hexadecimal
Mín.: 16#0000, máx.: 16#FFFF (por ejemplo, 16#A536)
Sintaxis alternativa: #A536
• Las reglas de formato ASCII son las siguientes:
◦ La función lee primero el byte más significativo.
◦ Todo carácter ASCII que se encuentre fuera del intervalo ['0' - '9'] ([16#30 -
16#39]) se considera un carácter de fin, excepto en el caso de un signo
menos '-' (16#2D) cuando se coloca como primer carácter.
◦ En caso de desbordamiento (>32.767 o <-32.768), el bit del sistema %S18
(desborde aritmético o error detectado) se establece en 1 y se devuelve el
valor 32.767 o -32.768.
◦ Si el primer carácter de un operando es un carácter de "fin", se devuelve
el valor 0 y el bit %S18 se establece en 1.
Por ejemplo, "HELLO":
◦ %MW0:="HE"
◦ %MW1:="LL"
◦ %MW2:="O"

Lista de excepciones
En esta tabla se enumera el rango de valores de los objetos que son enteros sin
signo:

Objeto Valor

%SW de 0 a 65535

%FC.V y %FC.P de 0 a 65535

%FC.VD y %FC.PD De 0 a 4294967295

%HSC.V, %HSC.P, %HSC.S0, %HSC.S1, y %HSC.C de 0 a 65535

%HSC.DV, %HSC.PD, %HSC.S0D, %HSC.S1D, y %HSC. De 0 a 4294967295


CD
%HSC.T De 100 a 1.000
%PWM.P 0...32767

%PWM.R de 0 a 100

%PLS.P 0...32767

%PLS.N 0...32767

%PLS.ND de 0 a 2147483647

Aparte de los objetos de la lista de excepciones, los datos tienen los siguientes
rangos de valores:
• Palabras: de -32768 a 32767
• Palabras dobles: -2147483648...2147483647

26 EIO0000003292.03
Objetos de lenguaje

Descripción
En esta tabla se describen los objetos de palabra:

Palabras Descripción Dirección o Acceso de


valor escritura1
Valores Se trata de valores enteros - No
inmediatos expresados en el mismo formato que
las palabras de 16 bits, lo que permite
que los valores se puedan asignar a
estas palabras.

Base 10 (decimal) De -32.768 a


32.767
Base 16 (hexadecimal) De 16#0000 a
16#FFFF
Memoria Palabras "temporales" empleadas para %MWi Sí
almacenar valores durante la
operación en la memoria de datos.

Constantes Almacenan constantes o mensajes %KWi Sí, durante la


alfanuméricos. Su contenido se puede configuración y en
escribir o modificar con EcoStruxure modalidad online
Machine Expert - Basic durante la mediante
configuración y en la modalidad en Propiedades de la
línea (consulte EcoStruxure Machine palabra constante
Expert - Basic, Guía de (consulte
funcionamiento). EcoStruxure
Machine Expert -
Basic, Guía de
funcionamiento) .

System Estas palabras de 16 bits ofrecen %SWi Depende de i


diversas funciones:
• Proporcionan acceso a los datos
que proceden directamente del
controlador mediante la lectura
de las palabras %SWi.
• Realizan operaciones en la
aplicación (por ejemplo, el ajuste
de fechadores).

Bloques de Estas palabras corresponden a los %TM2.P, %Ci.P, Sí


funciones valores o parámetros actuales de los etc.
bloques de funciones.
1 Escrito por el programa o mediante una tabla de animación.

El número máximo de objetos disponibles está determinado por el controlador


lógico. Consulte la guía de programación de su controlador lógico para conocer el
número máximo de objetos.

Ejemplo
En esta tabla se presentan diversos ejemplos de direccionamiento de objetos de
palabras:

Objeto de palabra Descripción

%MW15 Palabra de memoria número 15


%KW26 Palabra constante número 26
%SW30 Palabra de sistema número 30

EIO0000003292.03 27
Objetos de lenguaje

Extracción de bits de los objetos de palabra


En esta tabla se describe cómo extraer 1 de los 16 bits de los siguientes objetos
de palabra:

Objeto de palabra Dirección o valor Acceso de escritura1

Memoria %MWi:Xk Sí
System %SWi:Xk Depende de i

Constante %KWi:Xk No
Valor de entrada %IWy.z:Xk2 No

Valor de salida %QWy.z:Xk2 Sí

Estado de entrada %IWSy.z:Xk2 No

Estado de salida %QWSy.z:Xk2 Sí


1 Escrito por el programa o mediante una tabla de animación.
2Para obtener información sobre objetos de palabra de E/S, consulte Direccionamiento de objetos
de E/S (consulte EcoStruxure Machine Expert - Basic, Guía de funcionamiento).

Xk indica el número de bit que se debe extraer del objeto de palabra. Por ejemplo, %MW0.X3; se
extraerá el bit almacenado en la tercera posición secuencial de la palabra de memoria %MW0.

Objetos de coma flotante y de palabra doble


Introducción
Un objeto de coma flotante es un número real; es decir, un número con una parte
fraccionaria (por ejemplo: 3.4E+38, 2.3 o 1.0).
Una palabra doble consta de 4 bytes almacenados en la memoria de datos y que
contienen un valor complementario a dos comprendido entre -2147483648 y
+2147483647.
Las operaciones con coma flotante y palabras dobles no se pueden realizar en
todos los controladores lógicos.
Para obtener información sobre compatibilidad, consulte la guía de programación
de su controlador lógico.

Formato y valor de la coma flotante


El formato de coma flotante utilizado es el de la norma IEEE STD 734-1985
(equivalente a IEC 559). La longitud de las palabras es de 32 bits, lo que
corresponde a números de coma flotante de decimal simple.
En esta tabla se representa el formato de un valor de coma flotante:

Bit 31 Bits {30...23} Bits {22...0}

Signo del exponente Exponente Significando

La precisión de la representación es de 2 a 24. Para visualizar los números de


coma flotante no es necesario mostrar más de 6 dígitos tras la coma decimal.
NOTA: El valor 1285 se interpreta como un valor entero; para tenerse en
cuenta como valor de coma flotante, debe escribirse: 1285,0

28 EIO0000003292.03
Objetos de lenguaje

Rango límite de funciones aritméticas en objetos de coma


flotante
En esta tabla se describe el rango límite de las funciones aritméticas en los
objetos de coma flotante:

Función aritmética Rango límite y operaciones no válidas

Tipo Sintaxis NaN (No es un Infinito


número)

Raíz cuadrada de un SQRT(x) x<0 x > SQRT(3.402824E


operando +38) es el número
máximo que se puede
obtener
Potencia de un entero EXPT(y, x) x < 0 e y = número X ^ Y > 3,402824E+38
por un real fraccionario
(donde:
EXPT(%MF,%MW)
x^y = %MW^%MF)

Logaritmo de base 10 LOG(x) x<0 Cálculo posible hasta


que se obtiene el valor
máximo de x
(3,402824E+38)

Logaritmo natural LN(x) x<0 Sin valor máximo de x.


LN(3.402824E+38) es
el número máximo
que se puede obtener

Exponencial natural EXP(x) Sin límite en el rango x > 88,72283


real
Si x < –103,973, el
resultado es 0

Comprobación de validez
Cuando el resultado no se encuentra dentro del rango válido, el bit de sistema %
S18 se establece en 1.
La palabra de estado %SW17 indica la causa de un error detectado en una
operación de coma flotante.
Diferentes bits de la palabra %SW17:

%SW17:X0 Operación no válida, el resultado no es un número (NaN)

%SW17:X1 Reservado
%SW17:X2 División entre 0, el resultado no es válido (–Infinito o +Infinito)

%SW17:X3 Resultado superior a +3,402824E+38 en valor absoluto, el resultado no es


válido (–Infinito o +Infinito)

%SW17:X4 to X15 reservado

El sistema restablece esta palabra a 0 tras un arranque en frío; también la puede


restablecer el programa para volver a utilizarla.

Sintaxis
Utilice este formato para dirigir objetos de coma flotante constantes y de memoria:

EIO0000003292.03 29
Objetos de lenguaje

Utilice este formato para dirigir objetos de palabra doble constantes y de


memoria:

En esta tabla se describen los elementos en el formato de direccionamiento:

Grupo Ele- Descripción


me-
nto
Símbolo % El símbolo de porcentaje precede a una dirección interna.

Tipo de objeto M Los objetos de memoria se utilizan para almacenar valores


intermedios mientras se ejecuta un programa.

K Las constantes se utilizan para almacenar valores constantes o


mensajes alfanuméricos (únicamente para palabras dobles).

Formato F Objeto de coma flotante de 32 bits.

D Objeto de palabra doble de 32 bits.

Identificador de i Identificador que representa una instancia (posición secuencial)


instancia de objeto de un objeto en la memoria. Consulte la guía de programación de
su controlador lógico para conocer el número máximo de objetos.

Descripción de objetos de coma flotante y de palabra doble


En esta tabla se describen los objetos de coma flotante y de palabra doble:

Tipo de objeto Descripción Direc- Acceso de escritura


ción
Valores inmediatos Números enteros (palabra doble) o - No
decimales (coma flotante) de
formato idéntico al de los objetos de
32 bits.
Coma flotante de Objetos empleados para almacenar %MFi Sí
memoria valores durante la operación en la
memoria de datos.
Palabra doble de %MDi Sí
memoria
Valor de constante Se utiliza para almacenar %KFi Sí, durante la
flotante constantes. configuración y en
modalidad online
mediante Propiedades
de la palabra
constante (consulte
EcoStruxure Machine
Expert - Basic, Guía
de funcionamiento)

Constante doble %KDi Sí, durante la


configuración y en
modalidad online
mediante Propiedades
de la palabra
constante (consulte
EcoStruxure Machine
Expert - Basic, Guía
de funcionamiento)

NOTA: El número máximo de objetos está determinado por el controlador


lógico; consulte la guía de programación de la plataforma de hardware para
obtener más información.

30 EIO0000003292.03
Objetos de lenguaje

Ejemplo
En esta tabla se presentan algunos ejemplos del direccionamiento de objetos de
palabra doble y coma flotante:

Objeto Descripción

%MF15 Objeto de coma flotante de memoria número 15

%KF26 Objeto de coma flotante constante número 26

%MD15 Palabra doble de memoria número 15


%KD26 Palabra doble constante número 26

Posibilidad de solapamiento entre objetos


Las palabras simples, de doble longitud y flotantes se guardan en el espacio de
datos en una misma zona de memoria. Así, la palabra flotante %MFi y la palabra
doble %MDi se corresponden con las palabras de longitud simple %MWi y %MWi+1;
la palabra %MWi contiene los bits menos significativos y la palabra %MWi+1 los bits
más significativos de la palabra %MFi.
En esta tabla se muestra cómo se superponen las palabras de memoria dobles y
las flotantes:

Flotante y doble Dirección impar Palabras de memoria

%MF0 / %MD0 %MW0


%MF1 / %MD1 %MW1
%MF2 / %MD2 %MW2
%MF3 / %MD3 %MW3
%MF4 / %MD4 %MW4
... %MW5
... ...
%MFi / %MDi %MWi
%MFi+1 / %MDi+1 %MWi+1

En esta tabla se muestra el solapamiento de constantes flotantes y dobles:

Flotante y doble Dirección impar Palabras de memoria

%KF0 / %KD0 %KW0


%KF1 / %KD1 %KW1
%KF2 / %KD2 %KW2
%KF3 / %KD3 %KW3
%KF4 / %KD4 %KW4
... %KW5
... ...
%KFi / %KDi %KWi
%KFi+1 / %KDi+1 %KWi+1

Ejemplo:
%MF0 corresponde a %MW0 y %MW1. %KF43 corresponde a %KW43 y %KW44.

EIO0000003292.03 31
Objetos de lenguaje

Objetos estructurados
Introducción
Los objetos estructurados son combinaciones de objetos adyacentes.
EcoStruxure Machine Expert - Basic admite los siguientes tipos de objetos
estructurados:
• Cadenas de bits
• Tablas de palabras
• Tablas de palabras dobles
• Tablas de palabras flotantes

Cadenas de bits
Las cadenas de bits son series de bits de objetos adyacentes del mismo tipo y
con una longitud definida (L). Se hace referencia a las cadenas de bits a partir de
los límites de bytes.
Ejemplo: Cadena de bits %M8:6

NOTA: %M8:6 es válida (8 es múltiplo de 8) y %M10:16 no es válida (10 no es


múltiplo de 8).
Las cadenas de bits pueden utilizarse con la instrucción de asignación, página 52.

Tipos de bits disponibles


Tipos de bits disponibles para cadenas de bits:

Tipo Dirección Acceso de escritura

Bits de entrada digital %I0.0:L o %I1.0:L(1) No

Bits de salida digital %Q0.0:L o %Q1.0:L(1) Sí

Bits de sistema %Si:L En función de i

con i múltiplo de 8

Bits de pasos Grafcet %Xi:L Sí (mediante el programa)

con i múltiplo de 8

Bits de memoria %Mi:L Sí

con i múltiplo de 8

(1) Sólo se pueden leer los bits de E/S de 0 a 16 en una cadena de bits. Para controladores lógicos
con 24 o 32 canales de E/S, los bits superiores a 16 no se pueden leer en una cadena de bits.

L Representa la longitud de los objetos estructurados (cadenas de bits, tabla de palabras, tabla de
palabras dobles y tabla de palabras flotantes).

El número de bits está determinado por el controlador lógico: consulte la guía de


programación de la plataforma de hardware para obtener más información.

32 EIO0000003292.03
Objetos de lenguaje

Tablas de palabras
Una tabla de palabras es una serie de palabras adyacentes del mismo tipo y de
una longitud definida (L; el valor máximo es 255).
Ejemplo: Tabla de palabras %KW10:7

Las tablas de palabras pueden utilizarse con la instrucción de asignación, página


87.

Tipos de palabras disponibles


Tipos de palabras disponibles para tablas de palabras:

Tipo Dirección Acceso de escritura

Palabras de memoria %MWi:L(1) Sí

Palabras constantes %KWi:L(1) No

Palabras de sistema %SWi:L(1) En función de i

Salidas analógicas %QWi.j:L(2) Sí

Entradas analógicas %IWi.j:L(2) No

Unidades de entrada EtherNet/ %QWEi:L(2) Sí


IP
Unidades de salida EtherNet/ %IWEi:L(2) No
IP
Registros de entrada de %IWMi:L(2) No
asignación Modbus

Registros de salida de %QWMi:L(2) Sí


asignación Modbus

Registros de entrada %IWNa.b.c:L(2) No


IOScanner
Registros de salida IOScanner %QWNa.b.c:L(2) Sí

(1) El número de palabras L está determinado por el controlador lógico: consulte la guía de
programación de la plataforma de hardware para obtener más información.

(2) El número de palabras L depende de la configuración de cada objeto. Consulte Objetos de E/S,
página 22 u Objetos de red, página 107.

Tablas de palabras dobles


Una tabla de palabras dobles es una serie de palabras adyacentes del mismo tipo
y de una longitud definida (L; el valor máximo es 255).
Ejemplo: Tabla de palabras dobles %KD10:7

EIO0000003292.03 33
Objetos de lenguaje

Las tablas de palabras dobles pueden utilizarse con la instrucción de asignación,


página 42.

Tipos de palabras dobles disponibles


Tipos de palabras disponibles para tablas de palabras dobles:

Tipo Dirección Acceso de escritura

Palabras de memoria %MDi:L Sí


Palabras constantes %KDi:L No

Tablas de palabras flotantes


Una tabla de palabras flotantes es una serie de palabras adyacentes del mismo
tipo y de una longitud definida (L; el valor máximo es 255).
Ejemplo: Tabla de comas flotantes %KF10:7

Las tablas de punto flotante pueden utilizarse con la instrucción de asignación,


página 42.

Tipos de palabras flotantes disponibles


Tipos de palabras disponibles para tablas de palabras flotantes:

Tipo Dirección Acceso de escritura

Palabras de memoria %MFi:L Sí


Palabras constantes %KFi:L No

Objetos indexados
Introducción
Un objeto indexado es una palabra simple o doble o un objeto de punto flotante o
de bit de memoria con una dirección de objeto indexado. Existen 2 tipos de
direccionamiento de objetos:
• Direccionamiento directo
• Direccionamiento indexado

Direccionamiento directo
La dirección directa de un objeto se establece y se define cuando se escribe un
programa.

34 EIO0000003292.03
Objetos de lenguaje

Ejemplo: %M26 es un bit de memoria con la dirección directa 26.

Direccionamiento indexado
La dirección indexada de un objeto ofrece un método para modificar la dirección
del objeto mediante la adición de un índice a la dirección directa del objeto. El
contenido del índice se añade a la dirección directa del objeto. El índice lo define
una palabra de memoria %MWi.
Ejemplo: %MW108[%MW2] es una palabra con una dirección compuesta por la
dirección directa 108 más el contenido de la palabra %MW2.
Si la palabra %MW2 tiene un valor de 12, escribir en %MW108[%MW2] es
equivalente a escribir en %MW120 (108 más 12).

Objetos disponibles para el direccionamiento indexado


En esta tabla se describen los tipos de objetos disponibles para las direcciones
indexadas:

Tipo Dirección Acceso de escritura

Palabras de memoria %MWi[MWj] Sí

%MWi[%PARAMj]1 Sí

Palabras constantes %KWi[%MWj] No

Palabras dobles de memoria %MDi[MWj] Sí

Palabras dobles constantes %KDi[%MWj] No

Puntos flotantes de memoria %MFi[MWj] Sí

Puntos flotantes constantes %KFi[%MWj] No

Bits de memoria %Mi[%MWj] Sí

Identificador de instancia de objeto que representa la instancia (posición secuencial) de un objeto


en la memoria. Consulte la guía de programación de su controlador lógico para conocer el número
máximo de objetos.

j Identificador de instancia de objeto del objeto de índice cuyo contenido debe añadirse a la
dirección directa de algún otro objeto.

1Solo es válido en el ESCALÓN de una función definida por el usuario (UDF)/bloque de funciones
definido por el usuario (UDFB) donde se define %PARAMj.

Los objetos indexados pueden utilizarse con la instrucción de asignación, página


51 y en instrucciones de comparación, página 50.
Este tipo de direccionamiento permite explorar series de objetos del mismo tipo
(como palabras de memoria y constantes) de manera sucesiva, modificando el
contenido del objeto de índice en el programa.

Bit del sistema de desborde de índice %S20


El desborde de índice se produce cuando la dirección de un objeto indexado
supera los límites de la zona de memoria que contiene el mismo tipo de objeto.
En resumen:
• La dirección del objeto más el contenido del índice es menor que 0.
• La dirección del objeto más el contenido del índice es mayor que la palabra
de mayor tamaño a la que se hace referencia directamente en la aplicación.
En caso de desborde de índice, el bit de sistema %S20 se establece en 1 y se
asigna al objeto un valor de índice de 0.

EIO0000003292.03 35
Objetos de lenguaje

NOTA: Supervise el desborde. El programa debe leer %S20 para un posible


procesamiento. A continuación, debe confirmar que se restablece a 0.
%S20 (estado inicial = 0):
• En caso de desborde del índice: establecido en 1 por el controlador.
• Reconocimiento de desborde: establecido manualmente en 0 en el
programa después de modificar el índice.
Algunos de los errores matemáticos detectados podrían tener un efecto
importante en la ejecución de su aplicación. Monitorice estos posibles errores y
las instrucciones del programa para controlar adecuadamente la ejecución de su
aplicación en caso de que se produzcan uno o más de estos errores detectados.
Las consecuencias de cualquiera de estos errores detectados dependen de la
configuración, el equipo utilizado y las instrucciones del programa que se hayan
ejecutado antes y después de la detección de los posibles errores.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
• Escriba instrucciones de programación para comprobar la validez de los
operandos que se van a utilizar en operaciones matemáticas.
• No utilice operandos de diferentes tipos de datos en operaciones
matemáticas.
• Monitorice siempre los bits del sistema asignados para indicar resultados
matemáticos no válidos.
Si no se siguen estas instrucciones, pueden producirse lesiones graves,
muerte o daños en el equipo.

Objetos de bloque de funciones


Introducción
Un bloque de funciones es un objeto reutilizable que acepta uno o varios valores
de entrada y devuelve uno o varios valores de salida. A un bloque de funciones se
le llama a través de una instancia (una copia de un bloque de funciones con su
propio nombre y variables dedicados). Todas las instancias de bloque de
funciones tienen un estado persistente (salidas y variables internas) desde una
llamada a la otra.
NOTA: Los bloques de funciones (%FC, %HSC, %PLS y %PWM) y la alarma
de estado dirigen sus entradas y salidas (%I0.x y %Q0.x, afectadas en la
configuración) directamente sin relación con el ciclo del controlador. El
controlador no actualiza los bits de imágenes (%I0.x y %Q0.x). Por lo tanto,
estos bits de entrada y salida no se pueden utilizar directamente en el
programa del usuario, y en una tabla de animación que utilice estas entradas/
salidas no se pueden mostrar los estados actuales de estas.

36 EIO0000003292.03
Objetos de lenguaje

Ejemplo
En esta ilustración se muestra un bloque de funciones Counter:

Objetos de bit
Los objetos de bit corresponden a las salidas del bloque de funciones. A estos
bits se puede acceder mediante las instrucciones de verificación booleanas a
través de uno de los métodos siguientes:
• Directamente (por ejemplo, LD E) si están cableados al bloque en
programación, página 108 reversible.
• Especificando el tipo de bloque (por ejemplo, LD %Ci.E).
Puede accederse a las entradas en forma de instrucciones.

Objetos de palabra
Los objetos de palabra corresponden a parámetros especificados y a valores, tal
como se indica a continuación:
• Parámetros de configuración de bloque: se puede acceder a algunos
parámetros a través del programa (por ejemplo, parámetros de
preselección), pero a otros no (por ejemplo, base de tiempo).
• Valores actuales: por ejemplo, %Ci.V, el valor actual de conteo.

Objetos de palabra doble


Los objetos de palabra doble aumentan la capacidad computacional del
controlador lógico mientras se ejecutan las funciones del sistema, tales como
contadores rápidos (%FC), contadores de alta velocidad (%HSC) y generadores
de pulsos (%PLS, %PWM).
Para direccionar los objetos de palabra doble de 32 bits usados con bloques de
funciones, agregue el carácter D a la sintaxis original de los objetos de palabra
estándar.
En este ejemplo se muestra cómo direccionar el valor actual de un contador
rápido en formato estándar y en formato de palabra doble:
• %FCi.V es el valor actual del contador rápido en formato estándar.
• %FCi.VD es el valor actual del contador rápido en formato de palabra doble.

EIO0000003292.03 37
Instrucciones

Instrucciones
Procesamiento booleano
Objeto de esta sección
En esta sección se ofrece una introducción a las instrucciones de procesamiento
booleano.

Instrucciones booleanas
Introducción
Las instrucciones booleanas pueden compararse con los elementos del lenguaje
del diagrama de contactos. Estas instrucciones se resumen en la tabla siguiente:

Elemento Operador Ejemplo de Descripción


instrucción
Elementos de La instrucción de carga (LD) LD %I0.0 El contacto se cierra cuando
prueba es equivalente al primer el bit %I0.0 tiene el estado
contacto abierto conectado 1.
a un segmento de
alimentación de un
diagrama de contactos.

Las instrucciones lógicas


AND y OR son equivalentes
a los contactos abiertos tras
el primer contacto
conectado al segmento de
alimentación de un
diagrama de contactos.

Elementos de La instrucción de ST %Q0.0 El objeto de bit asociado


acción almacenamiento (ST) toma un valor lógico del
equivale a una bobina. acumulador de bits
(resultado de lógica
anterior).

El resultado booleano de los elementos de prueba se aplica a los elementos de


acción como muestran las siguientes instrucciones:

Escalón Instrucción
0 LD %I0.0
AND %I0.1
ST %Q0.0

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Comprobación de las entradas del controlador


Pueden utilizarse instrucciones de prueba booleanas para detectar flancos
ascendentes o descendentes en las entradas del controlador. Se detecta un
flanco cuando el estado de una entrada cambia de "explorar n-1" a "explorar n".
Dicho flanco permanece detectado durante la exploración actual.

38 EIO0000003292.03
Instrucciones

Reconocimiento de flancos
En esta tabla se resumen las instrucciones de detección de flancos ascendentes
y descendentes y su temporización:

Flanco Instrucción IL Diagrama de Diagrama de tiempos


contactos
Contacto de LDR %M0
flanco
ascendente

Contacto de LDF %M0


flanco
descendente

Los objetos solo se actualizan al principio del siguiente ciclo maestro tras la detección de
flancos. Si se produce un cambio de estado en un bit de memoria (p. ej., %M0), este se indica con
un retardo en la exploración.

NOTA: Los contactos de flanco ascendente y descendente sólo se pueden


usar en objetos de bits de entrada (%I) y bits de memoria (%M).
La detección de flancos también se puede realizar usando las funciones, página
48 RISING y FALLING . Para usarlas, la aplicación debe estar
configurada con un nivel funcional mínimo establecido en el Nivel 6.0.
Una de las diferencias entre los contactos de flanco ascendente y descendente y
las funciones RISING/FALLING es la exploración aplicada en el programa:
• Las instrucciones LDR/LDF indican flancos ascendentes o descendentes con
un retardo de una exploración.
• Las funciones RISING/FALLING indican flancos ascendentes o
descendentes en el mismo ciclo en el que se producen.

Detección de flanco ascendente


La instrucción de cargar flanco ascendente (LDR) equivale a un contacto de
detección de flanco ascendente. El flanco ascendente detecta el cambio del valor
de entrada de 0 a 1.
Como se muestra en este ejemplo, se utiliza un contacto de detección de
transición positiva para detectar un flanco ascendente:

Escalón Instrucción
0 LDR %I0.0

EIO0000003292.03 39
Instrucciones

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Detección de flanco descendente


La instrucción de cargar flanco descendente (LDF) equivale a un contacto de
detección de flanco descendente. El flanco descendente detecta el cambio de la
entrada de control de 1 a 0.
Como se muestra en este ejemplo, se utiliza un contacto de detección de
transición negativa para detectar un flanco descendente:

Escalón Instrucción
0 LDF %I0.0

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Operadores de carga (LD, LDN, LDR, LDF)


Introducción
Los operadores de carga LD, LDN, LDR y LDF corresponden respectivamente a
los contactos abierto, cerrado, de flanco ascendente y de flanco descendente.
LDR y LDF solo se utilizan con entradas del controlador lógico y palabras de
memoria.

Sintaxis
En esta tabla se enumeran los tipos de operadores de carga con los equivalentes
del diagrama de contactos y los operandos:

Operadores Equivalente del diagrama Operandos


de contactos
LD 0/1

%I, %Q, %M, %S, %X, %BLK.x


LDN
%IW:Xk, %QW:Xk, %IWS:Xk, %QWS:Xk, %
MW:Xk, %SW:Xk, %KW:Xk

%Mi[%MWj]1

LDR %I, %M

LDF

1 Nivel funcional >= 10.0

40 EIO0000003292.03
Instrucciones

Ejemplos de codificación
Ejemplos de instrucciones de carga:

Escalón Instrucción
0 LD %I0.1
ST %Q0.3

1 LDN %M0
ST %Q0.2

2 LDR %I0.1
ST %Q0.4

3 LDF %I0.3
ST %Q0.5

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Diagrama de temporización
En el siguiente diagrama se muestran la temporización (y el efecto en la salida)
del código de los ejemplos de codificación:

NOTA: La detección de flancos de bit del bit de memoria (%M) se lleva a cabo
entre exploraciones de tareas maestras.

EIO0000003292.03 41
Instrucciones

Operadores de asignación (ST, STN, R, S)


Introducción
Los operadores de asignación ST, STN, S y R corresponden respectivamente a
las bobinas directa, inversa, Set y Reset.

Sintaxis
En esta tabla se enumeran los tipos de operadores de asignación con los
equivalentes del diagrama de contactos y los operandos:

Operadores Equivalente del diagrama Operandos


de contactos
ST %Q, %M, %BLK.x

%QW:Xk, %MW:Xk, %S(1), %SW:Xk(1)


STN
%Mi[%MWj](2)

S %Q, %M, %S, %X, %BLK.x

%QW:Xk, %MW:Xk, %SW:Xk(1)


R
%Mi[%MWj](2)

(1) %S o %SW:Xk se encuentran en objetos del sistema de no solo lectura.

(2) Nivel funcional >= 10.0

Ejemplos de codificación
Ejemplos de instrucciones de asignación:

Escalón Instrucción
0 LD %I0.1
ST %Q0.3
STN %Q0.2
S %Q0.4

1 LD %I0.2
R %Q0.4

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Diagrama de temporización
En el siguiente diagrama se muestran la temporización (y el efecto en la salida)
del código de los ejemplos de codificación:

42 EIO0000003292.03
Instrucciones

Operadores lógicos AND (AND, ANDN, ANDR, ANDF)


Introducción
Los operadores AND realizan una operación AND lógica entre el operando (o su
inverso, flanco ascendente o flanco descendente) y el resultado booleano de la
instrucción anterior.

Sintaxis
En esta tabla se enumeran los tipos de operadores AND con los equivalentes del
diagrama de contactos y los operandos:

Operadores Equivalente del Operandos


diagrama de contactos

AND 0/1

%I, %Q, %M, %S, %X, %BLK.x


ANDN
%IW:Xk, %QW:Xk, %IWS:Xk, %QWS:Xk, %MW:
Xk, %SW:Xk, %KW:Xk

%Mi[%MWj](1)

ANDR %I, %M

ANDF

(1) Nivel funcional >= 10.0

Ejemplos de codificación
Ejemplos de instrucciones AND lógicas:

Escalón Instrucción
0 LD %I0.1
AND %M1
ST %Q0.3

1 LD %M0
ANDN %I0.0
ST %Q0.2

2 LD %I0.3
ANDR %I0.4
S %Q0.4

3 LD %M3
ANDF %I0.5
S %Q0.5

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

EIO0000003292.03 43
Instrucciones

Diagrama de temporización
En el siguiente diagrama se muestran la temporización (y el efecto en la salida)
del código de los ejemplos de codificación:

Operadores lógicos OR (OR, ORN, ORR, ORF)


Introducción
Los operadores OR realizan una operación OR lógica entre el operando (o su
inverso, flanco ascendente o flanco descendente) y el resultado booleano de la
instrucción anterior.

Sintaxis
En esta tabla se enumeran los tipos de operadores OR con los equivalentes del
diagrama de contactos y los operandos:

Operadores Equivalente del Operandos


diagrama de
contactos
OR 0/1

%I, %Q, %M, %S, %X, %BLK.x

%IW:Xk, %QW:Xk, %IWS:Xk, %QWS:Xk, %MW:Xk,


%SW:Xk, %KW:Xk
ORN
%Mi[%MWj](1)

ORR %I, %M

ORF

(1) Nivel funcional >= 10.0

44 EIO0000003292.03
Instrucciones

Ejemplos de codificación
Ejemplos de instrucciones OR lógicas:

Escalón Instrucción
0 LD %I0.1
OR %M1
ST %Q0.0

1 LD %I0.2
ORN %M2
ST %Q0.1

2 LD %M0
ORR %I0.3
S %Q0.5

3 LDF %I0.5
ORF %I0.6
S %Q0.0

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Diagrama de temporización
En el siguiente diagrama se muestran la temporización (y el efecto en la salida)
del código de los ejemplos de codificación:

Operadores OR exclusivos (XOR, XORN, XORR, XORF)


Introducción
El operador XOR lleva a cabo una operación de OR exclusivo entre el operando y
el resultado booleano de la instrucción anterior.
El operador XORN lleva a cabo una operación de OR exclusivo entre el inverso
del operando y el resultado booleano de la instrucción anterior.
El operador XORR lleva a cabo una operación de OR exclusivo entre el flanco
ascendente del operando y el resultado booleano de la instrucción anterior.
El operador XORF lleva a cabo una operación de OR exclusivo entre el flanco
descendente del operando y el resultado booleano de la instrucción anterior.

EIO0000003292.03 45
Instrucciones

Sintaxis
En la tabla siguiente se enumeran los tipos de operadores XOR y los operandos:

Operadores Equivalente del Operandos


diagrama de contactos

XOR %I, %Q, %M, %S, %X, %BLK.x

%IW:Xk, %QW:Xk, %IWS:Xk, %QWS:Xk, %MW:Xk,


%SW:Xk, %KW:Xk
XORN

XORR %I, %M

XORF

Ejemplos de codificación
En caso de utilizar la instrucción XOR:

Escalón Instrucción
0 LD %I0.1
XOR %M1
ST %Q0.3

Instrucciones lógicas equivalentes del operador XOR:

Escalón Instrucción
0 LD %I0.1
ANDN %M1
OR( %M1
ANDN %I0.1
)
ST %Q0.3

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Diagrama de tiempos
En el siguiente diagrama se muestran la temporización (y el efecto en la salida)
del código de los ejemplos de codificación:

46 EIO0000003292.03
Instrucciones

Casos especiales
No inserte:
• Contactos XOR en la primera posición de un escalón.
• Contactos XOR en paralelo con otros elementos del diagrama de contactos
(consulte el ejemplo siguiente).
Tal como se muestra en el siguiente ejemplo, la inserción de un elemento en
paralelo con el contacto XOR generará un error de validación:

Operador NOT (N)


Introducción
El operador NOT (N) tiene un operando implícito: el resultado almacenado en el
acumulador booleano. NOT niega el valor del acumulador.

Sintaxis
En esta tabla se muestra el operador N:

Operador Equivalente del diagrama Operandos


de contactos
N No aplicable.

Ejemplos de codificación
Ejemplo de la instrucción NOT:

Escalón Instrucción
0 LD %I0.1
N
ST %Q0.0

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

EIO0000003292.03 47
Instrucciones

Diagrama de tiempos
En el siguiente diagrama se muestran la temporización (y el efecto en la salida)
del código de los ejemplos de codificación:

Funciones ascendentes y descendentes (RISING, FALLING)


Introducción
Las funciones RISING y FALLING evalúan respectivamente un flanco
ascendente y un flanco descendente de la expresión que las precede
inmediatamente.
Estas funciones tienen un operando implícito; es decir, el resultado de la
expresión precedente, que se almacena en el acumulador booleano.
No puede colocar estas funciones en la primera columna de un escalón o una
bifurcación de un lenguaje de diagrama de contactos, y no pueden ser la primera
instrucción de un escalón IL.
NOTA: Para usar las funciones RISING y FALLING, la aplicación debe
configurarse con un nivel funcional (consulte EcoStruxure Machine Expert -
Basic, Guía de funcionamiento) como mínimo de Nivel 6.0.

Sintaxis
Función Equivalente del diagrama de Operandos
contactos
RISINGn 1 No aplicable.

FALLINGn 1 No aplicable.

1 n es un entero que se incrementa cada vez que se inserta un flanco ascendente o descendente.

Este entero se calcula automáticamente si:


• No se define ningún índice.
• Se introduce un índice incorrecto.
• Se elimina el índice.
• Se modifica el índice.

48 EIO0000003292.03
Instrucciones

Ejemplos de codificación
Función Escalón Instrucción
RISING 0 LD %M0

RISING0

ST %Q0.0

FALLING 1 LD %I0.1

FALLING0

ST %Q0.7

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.
Puede insertar hasta:
• 32 instrucciones de cada tipo si el nivel funcional es menor que 10.1
• 255 instrucciones de cada tipo si el nivel funcional es mayor o igual que 10.1
No se pueden usar las funciones RISING y FALLING inmediatamente después
de cualquiera de las instrucciones siguientes:
• AND
• ANDN
• OR
• ORN

Diagrama de temporización
En el diagrama siguiente se describe la temporización del ejemplo anterior para el
tiempo de exploración de una tarea maestra:

EIO0000003292.03 49
Instrucciones

Instrucciones de comparación
Introducción
Los operadores de comparación se usan para comparar hasta 5 operandos con 3
niveles de paréntesis.
En esta tabla se enumeran los tipos de operadores de comparación:

Operador Función

> Comprueba si Op1 es mayor que Op2

>= Comprueba si Op1 es mayor o igual que Op2

< Comprueba si Op1 es menor que Op2

<= Comprueba si Op1 es menor o igual que Op2

= Comprueba si Op1 es igual que Op2

<> Comprueba si Op1 es distinto de Op2

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
expresiones de comparación de la lista de instrucciones, página 18 en los
escalones del diagrama de contactos utilizando un elemento gráfico de Bloque
de comparación.
Sintaxis de las instrucciones de comparación:

Operador Sintaxis

>, >=, <, <=, =, <> LD [Op1 operador Op2]

AND [Op1 operador Op2]

OR [Op1 operador Op2]

En esta tabla se muestra la información de los operandos:

Tipo Op1 Op2

Palabras %MWi, %KWi, %IW, %QWi, %SWi, %BLK.x Valor inmediato, %MWi, %KWi, %IW, %QW, %IWSi, %
QWSi, %SWi, %BLK.x, %MWi[%MWi], %KWi[%MWi]

Palabras dobles %MDi, %KDi Valor inmediato, %MDi, %KDi, %MDi[%MWi], %KD[%
MWi]

Palabras de coma flotante %MFi, %KFi Valor de punto flotante inmediato, %MFi, %KFi, %MFi
[%MWi], %KFi[%MWi]

NOTA: Las instrucciones de comparación pueden utilizarse entre paréntesis.

Ejemplos de codificación
La comparación se ejecuta entre corchetes siguiendo las instrucciones LDAND y
OR. El resultado es 1 cuando la comparación solicitada es verdadera.

50 EIO0000003292.03
Instrucciones

Ejemplos de instrucciones de comparación:

Escalón Instrucción
0 LD %I0.2
AND [%MW10>100]
ST %Q0.3

1 LD %M0
AND [%MW20<%KW35]
ST %Q0.4

2 LD %I0.2
OR [%MF30>=%MF40]
ST %Q0.5

Ejemplo de utilización de una instrucción de comparación entre paréntesis:

Escalón Instrucción
0 LD %M0
AND( [%MF20>10.0]
OR %I0.0
)
ST %Q0.1

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Procesamiento numérico
Objeto de esta sección
En esta sección se ofrece una introducción al procesamiento numérico.

Introducción a operaciones numéricas


Presentación
Normalmente, las instrucciones numéricas se aplican a palabras de 16 bits y a
palabras dobles de 32 bits. Se escriben entre corchetes. Si el resultado de la
operación lógica anterior era verdadero (acumulador booleano = 1), se ejecuta la
instrucción numérica. Si el resultado de la operación lógica anterior era falso
(acumulador booleano = 0), la instrucción numérica no se ejecuta y el operando
permanece intacto.

Instrucciones de asignación
Introducción
Las instrucciones de asignación se utilizan para cargar el Op2 (operando 2) en el
Op1 (operando 1).

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.

EIO0000003292.03 51
Instrucciones

Sintaxis de las instrucciones de asignación:

Operador Sintaxis

:= [Op1 := Op2]

Op1 toma el valor de Op2

Pueden realizarse operaciones de asignación en:


• Cadenas de bits
• Palabras
• Palabras dobles
• Palabras flotantes
• Tablas de palabras
• Tablas de palabras dobles
• Tablas de palabras flotantes
• Objetos de salida de tren de pulsos

Asignación de cadenas de bits


Introducción
Las operaciones se pueden realizar en las siguientes cadenas de bits:
• Cadena de bits a cadena de bits (Ejemplo 1)
• Cadena de bits a palabra (Ejemplo 2) o palabra doble (indexada)
• Palabra o palabra doble (indexada) a cadena de bits (Ejemplo 3)
• Valor inmediato a cadena de bits

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Sintaxis de las asignaciones de cadenas de bits:

Operador Sintaxis

:= [Op1 := Op2]

Op1 toma el valor de Op2

En la tabla siguiente se ofrece información detallada de los operandos:

Tipo Op1 Op2

Palabra, palabra %MWi,%QWi, %SWi Valor inmediato, %MWi, %KWi, %IW, %QWi, %IWSi, %
doble %MWi[%MWi], %MDi, %MDi[%MWi] QWSi, %SWi,%BLK.x, %MWi[%MWi], %KWi[%MWi], %
%Mi:L, %Qi:L, %Si:L, %Xi:L MDi[%MWi], %KDi[%MWi], %Mi:L,%Qi:L, %Si:L, %
%TMi.P, %Ci.P, %Ri.I, %Ri.O, %FCi.P, % Xi:L, %Ii:L
PLSi.P, %PWMi.P
%Ci.PD, %FCi.PD %TMi.P, %Ci.P, %Ri.I, %Ri.O, %FCi.P, %PLSi.P,
%PWMi.P

%Ci.PD, %FCi.PD

NOTA: La abreviatura %BLK.x (por ejemplo, %C0.P) se utiliza para describir


cualquier palabra de bloque de funciones.

52 EIO0000003292.03
Instrucciones

Estructura
Ejemplos de asignaciones de cadenas de bits:

Escalón Instrucción
0 LD 1
[%Q0.0:8:=%M64:8]

1 LD %I0.2
[%MW100:=%M0:16]

2 LDR %I0.3
[%MW104:16:=%KW0]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.
Normas de uso:
• Para asignación de cadena de bits a palabra: los bits de la cadena se
transfieren a la palabra comenzando por la derecha (primer bit de la cadena
al bit 0 de la palabra) y los bits de palabra no implicados en la transferencia
(longitud ≤16) se establecen en 0.
• Para la asignación de palabra a cadenas de bits: los bits de palabra se
transfieren desde la derecha (bit de palabra 0 al primer bit de la cadena).

Asignación de palabras
Introducción
Las operaciones de asignación se pueden ejecutar en las palabras y en las
palabras dobles siguientes:
• Palabra (indexada) a palabra (2, por ejemplo) (indexada o no)
• Palabra doble (indexada) a palabra doble (indexada o no)
• Valor entero inmediato a palabra (Ejemplo 3) o palabra doble (indexada o no)
• Cadena de bits a palabra o palabra doble
• Punto flotante (indexado o no) a punto flotante (indexado o no)
• Palabra o palabra doble a cadena de bits
• Valor de punto flotante inmediato a punto flotante (indexado o no)

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Sintaxis de asignaciones de palabras:

Operador Sintaxis

:= [Op1 := Op2]

Op1 toma el valor de Op2

EIO0000003292.03 53
Instrucciones

En esta tabla se muestra la información de los operandos:

Tipo Op1 Op2

Palabra, palabra doble, %BLK.x, %MWi, %MWi[%PARAMj], %QWi, % Valor inmediato, %MWi, %MWi[%PARAMj], %KWi, %IW, %
cadena de bits SWi %MWi[%MWj], %MDi, %MDi[%MWj], %Mi: QWi, %IWSi, QWSi, %SWi, %MWi[%MWj], %KWi[%
L, %Qi:L, %Si:L, %Xi:L MWi], %MDi, %MDi[%MWj], %KDi, %KDi[%MWj], %Mi:
L, %Qi:L, %Si:L, %Xi:L, %Ii:L

Punto flotante %MFi, %MFi[%MWj] Valor de punto flotante inmediato, %MFi, %MFi[%MWj], %
KFi, %KFi[%MWj]

NOTA: La abreviatura %BLK.x (por ejemplo, R3.I) se utiliza para describir


cualquier palabra del bloque de funciones. Para las cadenas de bits %Mi:L, %
Si:L y %Xi:L, la dirección de base del primer elemento de la cadena de bits
debe ser un múltiplo de 8 (0, 8, 16, ..., 96, ...).

Estructura
Ejemplos de asignaciones de palabras:

Escalón Instrucción
0 LD 1
[%SW112:=%MW100]

1 LD %I0.2
[%MW0[%MW10]:=%KW0[%MW20]]

2 LD %I0.3
[%MW10:=100]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Operadores aritméticos en enteros


Introducción
Los operadores aritméticos se utilizan para realizar operaciones aritméticas entre
2 operandos enteros o en 1 operando entero.
En esta tabla se enumeran los tipos de operadores aritméticos:

Operador Función

+ Sumar 2 operandos

- Restar 2 operandos

* Multiplicar 2 operandos

/ Dividir 2 operandos

REM Resto de la división de los 2 operandos

SQRT Raíz cuadrada de un operando

INC Aumentar un operando

DEC Disminuir un operando

ABS Valor absoluto de un operando

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en

54 EIO0000003292.03
Instrucciones

los escalones del diagrama de contactos utilizando un elemento gráfico de


Bloque de operación.
Sintaxis de las instrucciones aritméticas:

Operador Sintaxis

+,-,*,/,REM [Op1 := Op2 operator Op3]

INC, DEC [operator Op1]

SQRT (1) [Op1 := SQRT(Op2)]

ABS (1) [Op1 := ABS(Op2)]

En esta tabla se muestra la información de los operandos:

Tipo Op1 Op2 y Op3 1

Palabras %MWi, %QWi, %SWi, %BLK.x 2, %MWi[%MWj 3], Valor inmediato, %MWi, %KWi, %IWi, %QWi, %IWSi, %
%MWi[%PARAMj] 4 QWSi, %SWi, %BLK.x 2 %MWi[%MWj 3], %MWi[%
PARAMj]4

Palabras dobles %MDi, %BLK.x Immediate value, %MDi, %KDi, %BLK.x 2


1 Con este operador, Op2 no puede ser un valor inmediato. La función ABS solo se puede emplear con palabras dobles (%MD y %KD) y
puntos flotantes (%MF y %KF). Por lo tanto, OP1 y OP2 deben ser palabras dobles o puntos flotantes.
2 %BLK.x representa todos los objetos de bloques.
3 Nivel funcional >= 5,0.
4 Nivel funcional >= 10,0.

Estructura
Ejemplos de instrucciones aritméticas:

Escalón Instrucción
0 LD %M0
[%MW0:=%MW10+10]

1 LD %I0.2
[%MW0:=SQRT(%MW10)]

2 LDR %I0.3
[%MW10:=32767]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Casos especiales
suma
• Desborde durante la operación con palabras
Si el resultado supera la capacidad de la palabra de resultados, el bit %S18
(desborde) se establece en 1 y el resultado no es significativo (consulte el
escalón 1 del ejemplo de aplicación, página 56). El programa de usuario
gestiona el bit %S18.
NOTA: Para las palabras dobles, los límites son -2147483648 y 2147483647.
multiplicación
• Desborde durante la operación
Si el resultado supera la capacidad de la palabra de resultados, el bit %S18
(desborde) se establece en 1 y el resultado no es significativo.

EIO0000003292.03 55
Instrucciones

División/resto
• División entre 0
Si el divisor es 0, la división es imposible y el bit de sistema %S18 se
establece en 1. Así pues, el resultado es incorrecto.
• Desborde durante la operación
Si el cociente de la división supera la capacidad de la palabra de resultados,
el bit %S18 se establece en 1.
Extracción de la raíz cuadrada
• Desborde durante la operación
La extracción de la raíz cuadrada solo se realiza en valores positivos. De
este modo, el resultado es positivo. Si el operando de la raíz cuadrada es
negativo, el bit de sistema %S18 se establece en 1 y el resultado es
incorrecto.
Algunos de los errores matemáticos detectados podrían tener un efecto
importante en la ejecución de su aplicación. Monitorice estos posibles errores y
las instrucciones del programa para controlar adecuadamente la ejecución de su
aplicación en caso de que se produzcan uno o más de estos errores detectados.
Las consecuencias de cualquiera de estos errores detectados dependen de la
configuración, el equipo utilizado y las instrucciones del programa que se hayan
ejecutado antes y después de la detección de los posibles errores.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
• Escriba instrucciones de programación para comprobar la validez de los
operandos que se van a utilizar en operaciones matemáticas.
• No utilice operandos de diferentes tipos de datos en operaciones
matemáticas.
• Monitorice siempre los bits del sistema asignados para indicar resultados
matemáticos no válidos.
Si no se siguen estas instrucciones, pueden producirse lesiones graves,
muerte o daños en el equipo.

NOTA: El programa del usuario debe gestionar los bits de sistema %S17 y %
S18. El controlador los establece en 1, y el programa debe restablecerlos
para que puedan reutilizarse (consulte, por ejemplo, la página anterior).

Ejemplo de aplicación
Desborde durante la suma:

Escalón Instrucción
0 LD %M0
[%MW0:=%MW1+%MW2]

1 LDN %S18
[%MW10:=%MW0]

2 LD %S18
[%MW10 :=32767]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.
Si %MW1 = 23241 y %MW2 = 21853, el resultado sería (45094), que no puede
expresarse en una palabra de 16 bits con signo. Por lo tanto, el bit %S18 se
establece en 1 y el valor de %MW0 (-20442) es incorrecto. En este ejemplo,
cuando el resultado es mayor que 32767, su valor se fija en 32767.

56 EIO0000003292.03
Instrucciones

Instrucciones lógicas
Introducción
Los operadores lógicos pueden utilizarse para realizar operaciones lógicas entre
2 operandos de palabra o, en el caso del NOT lógico, en 1 operando de palabra.
En esta tabla se enumeran los diferentes tipos de instrucciones lógicas:

Instrucción Función
AND AND (ámbito de bit) entre dos operandos

OR OR lógico (ámbito de bit) entre dos operandos

XOR OR exclusivo (ámbito de bit) entre dos operandos

NOT Complemento lógico (ámbito de bit) de un operando

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Sintaxis de las instrucciones lógicas:

Operador Sintaxis Op1 Op2 y Op3

AND, OR, XOR [Op1 := Op2 operator Op3] %MWi, %QWi, %SWi, %BLK.x Valor inmediato (1), %MWi, %
KWi, %IWi, %QWi, %IWSi, %
NOT [Op1 := NOT(Op2)] QWSi, %SWi, %BLK.x

(1) Con NOT, Op2 no puede ser un valor inmediato.

Estructura
Ejemplos de instrucciones lógicas:

Escalón Instrucción
0 LD %M0
[%MW0:=%MW10 AND 16#00FF]

1 LD 1
[%MW0:=%KW5 OR %MW10]

2 LD %I0.3
[%MW102:=NOT(%MW100)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Ejemplo de aplicación
Instrucción AND lógica:
[%MW15:=%MW32 AND %MW12]
Cuando %MW32 = 0001 1011 (binario) (27, decimal) y %MW12 = 0011 0110 (binario)
(54, decimal), el resultado será %MW15 = 0001 0010 (binario) (18, decimal).

EIO0000003292.03 57
Instrucciones

Instrucciones de desplazamiento
Introducción
Las instrucciones de desplazamiento mueven los bits de un operando un
determinado número de posiciones hacia la izquierda o hacia la derecha.
En esta tabla se enumeran los tipos de instrucciones de desplazamiento:

Instrucción Función
Desplazamiento lógico

SHL(op2,n) Desplazamiento lógico de n


posiciones hacia la izquierda.

SHR(op2,n) Desplazamiento lógico de n


posiciones hacia la derecha.

Desplazamiento circular

ROL(op2,n) Desplazamiento circular de n


posiciones hacia la izquierda.

ROR(op2,n) Desplazamiento circular de n


posiciones hacia la derecha.

Donde n es un valor entero inmediato para:


• palabra: 1...16, ambos incluidos
• palabra doble: 1...32, ambos incluidos

NOTA: El bit de sistema %S17 indica el valor del último bit expulsado.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Sintaxis de las instrucciones de desplazamiento:

Operador Sintaxis

SHL, SHR [Op1 := operador (Op2,n)]

ROL, ROR

Donde n es un valor entero inmediato para:


• palabra: 1...16, ambos incluidos
• palabra doble: 1...32, ambos incluidos

58 EIO0000003292.03
Instrucciones

En esta tabla se muestra la información de los operandos:

Tipos Op1 Op2

Palabras %MWi, %QWi, %SWi %MWi, %KWi, %IWi, %QWi, %IWSi, %


QWSi, %SWi, %BLK.x
%BLK.x
Palabras dobles %MDi %MDi, %KDi

%BLK.x %BLK.x

Estructura
Ejemplos de instrucciones de desplazamiento:

Escalón Instrucción
0 LDR %I0.1
[%MW0:=SHL(%MW10,5)]

1 LDR %I0.2
[%MW10:=ROR(%KW9,8)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Instrucciones de conversión BCD/binario


Introducción
Las instrucciones de conversión realizan conversiones entre distintas
representaciones de números.
En esta tabla se enumeran los tipos de instrucciones de conversión de BCD/
binario:

Instrucción Función
BTI Conversión de BCD a binario
ITB Conversión de binario a BCD

Revisión del código BCD


El decimal codificado en binario (BCD) representa un dígito decimal (entre 0 y 9)
codificado con cuatro bits binarios. Un objeto de palabra de 16 bits puede
contener un número de cuatro dígitos (entre 0000 y 9999) y, por consiguiente, un
objeto de palabra doble de 32 bits podrá contener uno de ocho cifras.
Durante una conversión, el bit de sistema %S18 se establece en 1 si el valor no es
BCD. Este bit se debe verificar y restablecer a 0 mediante el programa.
Representación BCD de números decimales:

Deci- 0 1 2 3 4 5 6 7 8 9
mal
BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

Ejemplos:
• La palabra %MW5 expresa el valor BCD 2450, que corresponde al valor
binario: 0010 0100 0101 0000
• La palabra %MW12 expresa el valor decimal 2450, que corresponde al valor
binario: 0000 1001 1001 0010

EIO0000003292.03 59
Instrucciones

La palabra %MW5 se convierte en la palabra %MW12 mediante la instrucción BTI.


La palabra %MW12 se convierte en la palabra %MW5 mediante la instrucción ITB.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Sintaxis de las instrucciones de conversión BCD/binario:

Operador Sintaxis

BTI, ITB [Op1 := operador (Op2)]

En esta tabla se muestra la información de los operandos:

Tipos Op1 Op2

Palabras %MWi, %QWi, %SWi %MWi, %KWi, %IWi, %QWi, %IWSi,


%QWSi, %SWi, %BLK.x
%BLK.x
Palabra doble %MDi %MDi, %KDi

%BLK.x %BLK.x

Estructura
Ejemplos de instrucciones de conversión BCD/binario:

Escalón Instrucción
0 LD %M0
[%MW0:=BTI(%MW10)]

1 LD %I0.2
[%MW10:=ITB(%KW9)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Ejemplo de aplicación
La instrucción BTI se utiliza para procesar un valor de consigna en las entradas
del controlador a través de las ruedas codificadoras en BCD.
La instrucción ITB se utiliza para mostrar los valores numéricos (por ejemplo, el
resultado de un cálculo, el valor actual de un bloque de funciones) en monitores
de operación con codificación BCD.

60 EIO0000003292.03
Instrucciones

Instrucciones de conversión de una o dos palabras


Introducción
En esta tabla se describen las instrucciones utilizadas para realizar conversiones
entre palabras simples y dobles:

Instrucción Función
LW Extrae el byte menos significativo de una palabra doble a una palabra.

HW Extrae el byte más significativo de una palabra doble a una palabra.

CONCATW Concatena dos palabras para formar una palabra doble.

DWORD Convierte una palabra de 16 bits en una palabra doble de 32 bits.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Sintaxis de las instrucciones de conversión de palabras simples y dobles:

Operador Sintaxis Op1 Op2 Op3

LW, HW Op1 = operador (Op2) %MWi %MDi, %KDi, % [-]


BLK.x
CON- Op1 = operador (Op2, %MDi, %BLK.x %MWi, %KWi,, %MWi, %KWi,,
CATW Op3)) valor inmediato valor inmediato

DWORD Op1 = operador (Op2) %MDi, %BLK.x %MWi, %KWi [-]

Estructura
Ejemplos de instrucciones de conversión de palabras simples y dobles:

Escalón Instrucción
0 LD %M0
[%MW0:=HW(%MD10)]

1 LD %I0.2
[%MD10:=DWORD(%KW9)]

2 LD %I0.3
[%MD11:=CONCATW(%MW10,%MW5)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Programa
Objeto de esta sección
En esta sección se ofrece una introducción a las instrucciones del programa.

EIO0000003292.03 61
Instrucciones

Instrucciones END
Introducción
Las instrucciones END definen el final de la ejecución de una exploración del
programa.

END, ENDC y ENDCN


Hay disponibles cuatro instrucciones END diferentes:
• END: fin incondicional del programa
• ENDC: fin de programa si el resultado booleano de la instrucción de prueba
precedente es 1
• ENDCN: fin de programa si el resultado booleano de la instrucción de prueba
precedente es 0
• ENDT: final del escalón de transición en un programa Grafcet (SFC) (sólo
válido en un escalón de transición)
De forma predeterminada (modalidad normal), cuando se activa el fin de un
programa, las salidas se actualizan y se inicia la siguiente exploración.
Si la exploración es periódica, cuando se alcanza el final del periodo se actualizan
las salidas y se inicia la exploración siguiente.
La instrucción END termina el nivel actual:
• Si se activa en una subrutina, una función definida por el usuario o un bloque
de funciones definido por el usuario, finaliza y vuelve al programa que la
llamó.
• Si se activa en una tarea maestra, periódica o de eventos, termina la tarea
actual.

Ejemplos
Ejemplo de una instrucción END incondicional:

Escalón Instrucción
0 LD %M1
ST %Q0.1

1 LD %M2
ST %Q0.2

2 END

Ejemplo de una instrucción END condicional:

Escalón Instrucción
0 LD %I0.0
ST %Q0.0

1 LD %I0.1
ST %Q0.1

2 LD %I0.2
ENDC
3 LD %I0.3
ST %Q0.2

4 END

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

62 EIO0000003292.03
Instrucciones

Instrucciones NOP
Introducción
Las instrucciones NOP no realizan ninguna operación. Utilícelas para "reservar"
líneas en un programa para que pueda insertar instrucciones más adelante sin
modificar los números de línea.

Instrucciones de salto
Introducción
Las instrucciones de salto provocan que la ejecución de un programa se
interrumpa inmediatamente y que continúe a partir de la línea después de la línea
del programa que contiene la etiqueta %Li (i = número máximo de módulos).

JMP, JMPC y JMPCN


Existen tres instrucciones de salto diferentes disponibles:
• JMP: salto de programa incondicional.
• JMPC: salto de programa si el resultado booleano de la lógica anterior es 1.
• JMPCN: salto de programa si el resultado booleano de la lógica anterior es 0.

Ejemplos
Ejemplos de instrucciones de salto:

Escalón Instrucción
0 LD %M15
JMPC %L8
1 LD [%MW24<%MW12]
ST %Q0.3
JMPC %L12
2 %L8:
LD %M12
AND %M13
ST %M12
JMPC %L12
3 LD %M11
S %Q0.0

4 %L12:
LD %I0.0
ST %Q0.4

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

EIO0000003292.03 63
Instrucciones

Directrices
• Las instrucciones de salto no están permitidas entre paréntesis y no deben
situarse entre las instrucciones AND, OR y una instrucción de cierre de
paréntesis ")".
• La etiqueta solo puede situarse antes de una instrucción LD, LDN, LDR, LDF
o BLK.
• El número de etiqueta de la etiqueta %Li debe definirse solo una vez en un
programa.
• El salto de programa se realiza hacia una línea de programación ubicada en
sentido ascendente o descendente. Cuando el salto esté ubicado en sentido
ascendente, preste atención al tiempo de exploración del programa. Un
tiempo de exploración prolongado puede activar el temporizador de
watchdog.

Elementos condicionales
Descripción
Los elementos condicionales permite codificar condiciones en el programa. Los
elementos sólo se pueden programar en la modalidad offline.
Esta función contiene los tres elementos siguientes:
• IF
• ELSE
• ENDIF
Puede insertar un elemento por escalón.
NOTA: La aplicación debe estar configurada con un nivel funcional mínimo
establecido en el Nivel 6.0.

Número máximo de elementos


El número máximo de elementos es de 128 menos el número de %L declarados
en la aplicación.

Descripción del elemento


Elemento Instrucción IL Diagrama de contactos Descripción

IF IF0...THEN0 Debe estar al comienzo de un escalón.

El elemento THEN se añade automáticamente. No puede


modificar este elemento.
ELSE ELSE0 Únicamente si un elemento IF está definido en un escalón
anterior.

Debe estar al comienzo de un escalón.


ENDIF ENDIF0 Debe estar al final de un escalón. No puede insertar otros
elementos en el mismo escalón.

64 EIO0000003292.03
Instrucciones

Configuración de una instrucción de condición


Paso Acción
1
En un escalón vacío, inserte el elemento IF haciendo clic en → →IF. Inserte la condición que se va a
evaluar entre los elementos IF y THEN.

2 Opcionalmente puede cambiar el índice.

Si modifica el índice de un elemento, debe asignar el mismo índice a los demás elementos.

Los elementos con el mismo índice deben estar en la misma POU.


3 Configure el programa. Cuando la condición entre IF y THEN es TRUE, se evalúan los siguientes escalones del
programa entre THEN y la siguiente instrucción condicional (ELSE o ENDIF De lo contrario, se ignorarán los siguientes
escalones y no se evaluarán.

4
De manera opcional, inserte el elemento ELSE haciendo clic en → →ELSE. Cuando la condición entre
IF y THEN es FALSE, se evalúa la parte del programa entre ELSE y ENDIF. Esto incluye instrucciones del programa en el
mismo escalón que el elemento ELSE. De lo contrario, esta parte del programa se ignora y no se evalúa.

5
En el último escalón, inserte el elemento ENDIF haciendo clic en → → ENDIF.

En el siguiente ejemplo:
• Cuando la condición IF es TRUE, es decir, %MW0 es menor de 10:
1. Se evalúa el escalón 3.
2. Se ignora el escalón el ELSE10. %MW2 y %Q0.1 conservan sus últimos
valores.
• Cuando la condición IF es FALSE, es decir, %MW0 es mayor o igual a 10:
1. Se ignora el escalón 3. %MW1 y %Q0.0 conservan sus últimos valores.
2. Se evalúa el escalón ELSE10, es decir, las operaciones en %MW2 y %
Q0.1 se ejecutan cuando %MW0 es superior a 20.
LD Si 10 es nombre Comentario
Cuerpo del
%MW0 < 10
escalón
%MW0 < 10
IF 10 < THEN 10

LD Escalón 3 nombre Comentario


Cuerpo del %MW1 := %MW0 +1
escalón %MW1 := %MW0 +1
...
Comentario
Símbolo
%Q0.0
()

LD Else 10 nombre Comentario


Cuerpo del %MW0 > 20 %MW2 := %MW0 2
escalón %MW0 > 20 %MW2 := %MW0 2
ELSE 10 < ...
Comentario
Símbolo
%Q0.1
()

LD EndIf 10 nombre Comentario


Cuerpo del
escalón ENDIF 10

EIO0000003292.03 65
Instrucciones

Elementos de bucle
Descripción
Los elementos de bucle permiten codificar una secuencia de instrucciones en el
programa. Los elementos sólo se pueden programar en la modalidad offline.
Esta función contiene los dos elementos siguientes:
• FOR
• ENDFOR
Puede insertar un elemento por escalón.
NOTA: La aplicación debe configurarse con un nivel funcional (consulte
EcoStruxure Machine Expert - Basic, Guía de funcionamiento) de al menos
Nivel 6.0.

Número máximo de elementos


El número máximo de elementos es de 128 menos el número de %L declarados
en la aplicación.

Descripción del elemento


Elemento Instrucción IL Diagrama de contactos Descripción

FOR FOR0 Debe estar al comienzo de un escalón.

Haga clic en para configurar.

ENDFOR ENDFOR0 Debe estar al final de un escalón. No puede insertar otros


elementos en el mismo escalón.

Configuración de un bucle
Paso Acción
1
En un escalón vacío, inserte el elemento FOR haciendo clic en →
→FOR.
2 Opcionalmente puede cambiar el índice.

Si modifica el índice de un elemento, debe asignar el mismo índice a los demás


elementos.

Los elementos con el mismo índice deben estar en la misma POU.


3
Haga clic en para configurar el elemento FOR.

Resultado: Aparecerá la ventana Asistente FOR.

4
En el último escalón, inserte el elemento ENDFOR haciendo clic en →
→ENDFOR.

66 EIO0000003292.03
Instrucciones

Configuración del elemento FOR


Etiqueta Descripción

Contador de bucle Escriba una variable %MWx.


Valor inicial Escriba una variable %MWx o un valor entre –32768 y 32767.

Firmar • <
• <=
• =
• >=
• >
• <>
Valor final Escriba una variable %MWx o un valor entre –32768 y 32767.

Paso de incremento Escriba una variable %MWx o un valor entre –32768 y 32767.

Instrucciones de subrutina
Introducción
Las instrucciones de subrutina hacen que un programa lleve a cabo una subrutina
y luego vuelva al programa principal en el punto desde el que se llamó a la
subrutina.

Procedimiento
Se crea una subrutina en una POU disponible. Consulte POU disponibles
(consulte EcoStruxure Machine Expert - Basic, Guía de funcionamiento) para
obtener información sobre la creación de una POU disponible y una subrutina y la
definición del número de subrutina. Además, consulte Administración de POU
(consulte EcoStruxure Machine Expert - Basic, Guía de funcionamiento) para
obtener más información sobre la administración de POU con tareas y escalones.
Llamada de una subrutina en tres pasos:

1 La instrucción SRn llama a la subrutina a la que hace referencia un SRn


de POU disponible si el resultado de la instrucción booleana anterior es 1.

2 Se hace referencia a la subrutina mediante una POU disponible SRn,


donde n es el número de la subrutina.
3 La instrucción de subrutina debe escribirse como una POU disponible
independiente del programa principal.

Para obtener más información sobre las subrutinas, consulte Creación de tareas
periódicas (consulte EcoStruxure Machine Expert - Basic, Guía de
funcionamiento).

EIO0000003292.03 67
Instrucciones

Ejemplos
Ejemplo de instrucciones que contienen una subrutina:

Escalón Instrucción
0 LD %M15
AND %M5
ST %Q0.0

1 LD [%MW24>%MW12]
SR1
2 LD %I0.4
AND %M13
ST %Q0.1
END

Ejemplo de instrucción de subrutina (SR1):

Escalón Instrucción
0 (SR1) LD %I0.0
ST %Q0.0

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Directrices
• Una subrutina no debe llamar a otra subrutina. Si se intenta llamar a una
subrutina de una POU disponible, se generará un error del compilador.
• Las instrucciones de subrutina no están permitidas entre paréntesis, y no
deben colocarse entre las instrucciones AND, OR y una instrucción de
paréntesis de cierre ")".
• Cuando una instrucción de asignación va seguida directamente de una
llamada a una subrutina en IL, se debe tener cuidado. Esto se debe a que es
posible que la subrutina modifique el contenido del acumulador booleano.
Por lo tanto, es posible que tenga un valor de retorno diferente al que tenía
antes de la llamada.

Coma flotante
Objeto de esta sección
En esta sección se describen las instrucciones avanzadas de coma flotante.

68 EIO0000003292.03
Instrucciones

Instrucciones aritméticas para objetos de coma flotante


Introducción
Estas instrucciones permiten efectuar una operación aritmética entre 2 operandos
de coma flotante o en 1 operando de coma flotante:

Instrucción Objetivo

+ Suma de dos operandos

- Resta de dos operandos

* Multiplicación de dos operandos

/ División de dos operandos

LOG Logaritmo de base 10

LN Logaritmo natural

SQRT Raíz cuadrada de un operando

ABS Valor absoluto de un operando

TRUNC Parte entera de un valor de coma flotante


EXP Exponencial natural

EXPT Potencia de un entero por un real

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Operadores y sintaxis de las instrucciones aritméticas en coma flotante:

Operadores Sintaxis

+, - *, / Op1 := Operador Op2 Op3

SQRT, ABS, TRUNC, LOG, EXP, LN Op1 = operador (Op2)

EXPT Op1 := operador (Op2,Op3)

Operandos de las instrucciones aritméticas en coma flotante:

Operadores Op1 Op2 Op3

+, - *, / %MFi %MFi, %KFi, valor %MFi, %KFi, valor


inmediato inmediato
SQRT, ABS, LOG, %MFi %MFi, %KFi [-]
EXP, LN

TRUNC %MFi, %MDi %MFi, %KFi [-]

EXPT %MFi %MFi, %KFi %MWi, %KWi,, valor


inmediato

NOTA: EcoStruxure Machine Expert - Basic Impide el uso de la función con un %MWi como
Op1.

EIO0000003292.03 69
Instrucciones

Estructura
Ejemplo de una instrucción aritmética:

Escalón Instrucción
0 LD %M0
[%MF0:=%MF10+129.7]

1 LD %I0.2
[%MF1:=SQRT(%MF10)]

2 LDR %I0.3
[%MF2:=ABS(%MF20)]

3 LDR %I0.4
[%MF3:=TRUNC(%MF2)]

4 LD %M1
[%MF4:=LOG(%MF10)]

5 LD %I0.5
[%MF5:=LN(%MF20)]

6 LD %I0.0
[%MF6:=EXP(%MF30)]

7 LD %I0.1
[%MF7:=EXPT(%MF40,%MW52)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Reglas de utilización
• Las operaciones con valores de coma flotante y enteros no se pueden
mezclar directamente. Las operaciones de conversión, página 72 llevan a
cabo la conversión a uno de los formatos.
• El bit de sistema %S18 se gestiona del mismo modo que las operaciones con
enteros, página 72; la palabra %SW17 indica la causa del error detectado.
• Cuando el operando de la función es un número no válido (por ejemplo,
logaritmo de un número negativo), produce un resultado indeterminado o
infinito y cambia el bit de %S18 a 1. La palabra %SW17 señala la causa del
error detectado.
NOTA: En la instrucción TRUNC, el bit de sistema %S17 no se ve afectado.

Ejemplos de aplicación de la instrucción TRUNC con %MDi


En la siguiente tabla se muestran ejemplos de la instrucción TRUNC cuando se
utiliza %MDi para almacenar el resultado:

Ejemplo Result

TRUNC(3.5) 3
TRUNC(324.18765) 324
TRUNC(927.8904) 927
TRUNC(-7.7) -7
TRUNC(45.678E+20) 2 147 483 647 (palabra doble con signo máximo) 1

%S18 se establece en 1
TRUNC(-94.56E+13) - 2 147 483 648 (palabra doble con signo mínimo) 1

%S18 se establece en 1
1Este ejemplo se aplica a la instrucción TRUNC cuando se utiliza con %MDi. (Cuando se utiliza
con %MFi, la instrucción TRUNC no tiene desborde y, por lo tanto, carece de límites máximo/
mínimo).

70 EIO0000003292.03
Instrucciones

Instrucciones trigonométricas
Introducción
Estas instrucciones permiten realizar operaciones trigonométricas:

SIN seno de un ángulo expresado en ASIN


radianes arco seno (resultado entre y )

COS coseno de un ángulo expresado en ACOS arco coseno (resultado entre 0 y


radianes )

TAN tangente de un ángulo expresado en ATAN


radianes arco tangente (resultado entre y

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Operadores, operandos y sintaxis de las instrucciones de operaciones
trigonométricas:

Operadores Sintaxis Op1 Op2

SIN, COS, TAN, ASIN, Op1:=operador(Op2) %MFi %MFi, %KFi


ACOS, ATAN

Estructura
Ejemplo de instrucciones Trigonometric:

Escalón Instrucción
0 LD %M0
[%MF0:=SIN(%MF10)]

1 LD %I0.0
[%MF1:=TAN(%MF20)]

2 LD %I0.3
[%MF2:=ATAN(%MF30)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Reglas de utilización
• Cuando el operando de la función es un número no válido (por ejemplo, el
arco coseno de un número superior a 1), produce un resultado indeterminado
o infinito y pone el bit %S18 a 1. La palabra %SW17 señala la causa del error
detectado.
• Las funciones SIN/COS/TAN admiten como parámetro un ángulo entre
y , pero su precisión disminuye progresivamente para ángulos
fuera del rango y debido a la imprecisión introducida por el módulo
en el parámetro antes de realizar cualquier operación.

EIO0000003292.03 71
Instrucciones

Instrucciones de conversión de ángulo


Introducción
Estas instrucciones permiten llevar a cabo operaciones de conversión:

DEG_TO_RAD Conversión de grados a radianes. El resultado es el valor del ángulo


comprendido entre 0 y

RAD_TO_DEG Conversión de un ángulo expresado en radianes, el resultado es el valor del


ángulo comprendido entre 0 y 360 grados

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Operadores, operandos y sintaxis de las instrucciones de conversión

Operadores Sintaxis Op1 Op2

DEG_TO_RAD RAD_ Op1:=operador(Op2) %MFi %MFi, %KFi


TO_DEG

Estructura
Ejemplo de instrucciones de conversión:

Escalón Instrucción
0 LD %M0
[%MF0:=DEG_TO_RAD(%MF10)]

1 LD %M2
[%MF2:=RAD_TO_DEG(%MF20)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Reglas de utilización
El ángulo que se va a convertir debe estar comprendido entre -737280.0 y
+737280.0 (para las conversiones DEG_TO_RAD) o entre y (para
las conversiones RAD_TO_DEG).
Para los valores no comprendidos entre estos límites, el resultado mostrado será
+ NaN; los bits %S18 y %SW17:X0 se establecen en 1.

72 EIO0000003292.03
Instrucciones

Instrucciones de conversión de enteros/flotantes


Introducción
Existen 4 instrucciones de conversión:

INT_TO_REAL Conversión de una palabra entera a flotante

DINT_TO_REAL Conversión de una palabra doble (entera) a flotante

REAL_TO_INT Conversión de una palabra flotante a entera (el resultado es el valor algebraico
más cercano)

REAL_TO_DINT Conversión de una palabra flotante a entera doble (el resultado es el valor
algebraico más cercano)

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Operadores y sintaxis (conversión de una palabra entera a flotante):

Operadores Sintaxis

INT_TO_REAL Op1=INT_TO_REAL(Op2)

Operandos (conversión de una palabra entera a flotante):

Op1 Op2

%MFi %MWi,%KWi

Ejemplo: conversión de palabras enteras a flotante: 147 a 1.47e+02


Operadores y sintaxis (conversión de una palabra doble entera a flotante):

Operadores Sintaxis

DINT_TO_REAL Op1=DINT_TO_REAL(Op2)

Operandos (conversión de una palabra doble entera a flotante):

Op1 Op2

%MFi %MDi,%KDi

Ejemplo: conversión de palabra doble entera a flotante: 68905000 to 6.8905e+07


Operadores y sintaxis (conversión de flotante a palabra entera o palabra doble
entera):

Operadores Sintaxis

REAL_TO_INT Op1=operator(Op2)

REAL_TO_DINT

Operadores (conversión de flotante a palabra entera o palabra doble entera):

Tipo Op1 Op2

Palabras %MWi, %QWi.j, %QWEi, %QWMi %MFi, %KFi

Palabras dobles %MDi %MFi, %KFi

EIO0000003292.03 73
Instrucciones

Ejemplo:
• Conversión de flotante a palabra entera: entre 5978,6 y 5979
• Conversión de flotante a palabra doble entera: entre -1235978,6 y -1235979
NOTA: Si durante una conversión de real a entero (o de real a palabra doble
entera), el valor flotante está fuera de los límites de la palabra (o palabra
doble), el bit %S18 se establece en 1.

Estructura
Ejemplo de instrucción de conversión de entero/flotante:

Escalón Instrucción
0 LD 1
[%MF0:=INT_TO_REAL(%MW10)]

1 LD %I0.8
[%MD2:=REAL_TO_DINT(%MF9)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Precisión de redondeo
La norma IEEE 754 define 4 modalidades de redondeo para las operaciones con
flotantes.
La modalidad utilizada en las instrucciones anteriores es la modalidad "redondear
al valor más cercano":
"Si los valores más cercanos que se pueden representar están a la misma
distancia del resultado teórico, el valor suministrado será aquel cuyo bit menos
significativo sea igual a 0".
Es decir, el valor se redondeará al número par, ya sea superior o inferior.
Ejemplo:
• Redondeo del valor 10.5 a 10.
• Redondeo del valor 11.5 a 12.

ASCII
Objeto de esta sección
En esta sección se describen las instrucciones avanzadas de ASCII.

Instrucciones ROUND
Introducción
La instrucción ROUND redondea una representación de coma flotante
almacenada en una cadena ASCII.

74 EIO0000003292.03
Instrucciones

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Para la instrucción ROUND, utilice la sintaxis: Op1 := ROUND( Op2,Op3 ).
Ejemplo:
[%MW0:7:=ROUND(%MW8,4)]

Parámetros
En esta tabla se describen los parámetros de la función ROUND:

Parámetros Descripción

Op1 %MW en el que se almacena el resultado

Op2 %MW que contiene la coma flotante que se va a redondear.

Op3 Número de dígitos significativos necesarios en el redondeo.

Entero de 1 a 8

Reglas de utilización
Las reglas de la instrucción ROUND son las siguientes:
• El operando se redondea hacia abajo.
• El carácter de fin de la cadena del operando se utiliza como carácter de fin de
la cadena de resultado.
• El carácter de fin puede ser cualquier carácter ASCII que no se encuentre en
el intervalo [0 - 9] ([16#30 - 16#39]), excepto:
◦ punto '.' (16#2E),
◦ menos '-' (16#2D),
◦ más '+' (16#2B),
◦ EXP 'e' o 'E' (16#65 o 16#45).
• El resultado y el operando no deben tener un tamaño superior a 13 bytes: El
tamaño máximo de una cadena ASCII es de 13 bytes.
• No se admite la notación científica.

Casos especiales
El software comprueba la sintaxis. Los ejemplos siguientes crearían errores de
sintaxis:

Sintaxis incorrecta Sintaxis correcta


%MW10:= ROUND(%MW1,4) %MW10:7 := ROUND(%MW1,4)

falta ":7" en el resultado


%MW10:13:= ROUND(%MW1,4) %MW10:7 := ROUND(%MW1,4)

%MW10:n, donde n ≠ 7 es incorrecto

EIO0000003292.03 75
Instrucciones

Ejemplo de aplicación
En esta tabla se muestran ejemplos de la instrucción ROUND:

Ejemplo Result

ROUND("987654321", 5) "987650000"
ROUND("-11.1", 8) "-11,1"

ROUND("NAN") "NAN"

Instrucciones de conversión de ASCII a entero


Introducción
Las instrucciones de conversión de ASCII a entero convierten una cadena ASCII
en un valor entero.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Para las instrucciones de conversión ASCII a entero, use la sintaxis siguiente:
Op1 := ASCII_TO_INT( Op2 )
Ejemplo:
[%MW0:=ASCII_TO_INT(%MW8)]
La instrucción lee hasta cuatro objetos de palabra de Op2, los convierte a formato
de entero y guarda el resultado en Op1.

Parámetros
En esta tabla se describen los parámetros de la función de conversión de ASCII a
entero:

Parámetros Descripción

Op1 %MW en el que se almacena el resultado

Op2 %MW o %KW

76 EIO0000003292.03
Instrucciones

Reglas de utilización
Las reglas de las instrucciones de conversión de ASCII a entero son las
siguientes:
• Op2 debe estar entre -32.768 y 32.767.
• La función lee primero el byte más significativo.
• Se ignoran los espacios iniciales.
• Todo carácter ASCII que se encuentre fuera del rango [0 - 9] ([16#30 -
16#39]) se considera un carácter de fin, excepto en el caso de un signo
menos '-' (16#2D) cuando se coloca como primer carácter.
• En caso de desbordamiento (>32.767 o <-32.768), el bit de sistema %S18
(desborde aritmético o error detectado) se establece en 1 y se devuelve el
valor 32.767 o -32.768.
• Si el primer carácter del operando es un carácter "separador", se devuelve el
valor 0 y el bit %S18 se establece en 1.
NOTA: Los caracteres separadores son '+' y '-', la letra 'e' o 'E', o '.' (el
separador decimal).
• La notación científica no es válida.

Ejemplo de aplicación
Tenga en cuenta que los siguientes datos ASCII se han almacenado entre %MW10
y %MW13:

Parámetro Valor hexadecimal Representación ASCII

%MW10 16#3932 9, 2

%MW11 16#3133 1, 3

%MW12 16#2038 ‘ ’, 8

%MW13 16#387A 8, ‘z’

En esta tabla se muestran ejemplos de la conversión de ASCII a entero:

Ejemplo Result

%MW20 := ASCII_TO_INT(%MW10) %MW20 = 29318

%MW20 := ASCII_TO_INT(%MW12) %MW20 = 8

%MW20 := ASCII_TO_INT(%MW13) %MW20 = 0 y %S18 se establece en 1

Instrucciones de conversión de entero a ASCII


Introducción
Las instrucciones de conversión de entero a ASCII convierten un entero en un
valor de cadena ASCII.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Para las instrucciones de conversión de entero a ASCII, use la sintaxis siguiente:
Op1 := INT_TO_ASCII( Op2 )

EIO0000003292.03 77
Instrucciones

Ejemplo:
[%MW0:4:=INT_TO_ASCII(%MW8)]

Parámetros
En esta tabla se describen los parámetros de la función de conversión de entero a
ASCII:

Parámetros Descripción

Op1 %MW en el que se almacena el resultado

Op2 %MW, %KW, %SW, %IW, %QW o cualquier PALABRA

(No se aceptan valores inmediatos)

Reglas de utilización
Las reglas de conversión de entero a ASCII son las siguientes:
• Op2 debe estar entre -32.768 y 32.767.
• La función escribe el byte más significativo primero.
• Se agrega el carácter final seleccionado en la Comportamiento de la
aplicación (consulte EcoStruxure Machine Expert - Basic, Guía de
funcionamiento). El valor predeterminado es CR (retorno de carro, ASCII 13).
• La función determina automáticamente cuántas variables %MW se deben
llenar con valores ASCII (de 1 a 4).

Errores de sintaxis
El software comprueba la sintaxis. Los ejemplos siguientes crearían errores de
sintaxis:

Sintaxis incorrecta Sintaxis correcta


%MW10 := INT_TO_ASCII(%MW1) %MW10:4 := INT_TO_ASCII(%MW1)

falta ":4" en el resultado


%MW10:n := INT_TO_ASCII(%MW1) %MW10:4 := INT_TO_ASCII(%MW1)

%MW10:n, donde n ≠ 4 es incorrecto

Ejemplo de aplicación
Para la instrucción MW10:4 := INT_TO_ASCII(%MW1) usando el carácter final
"CR":

Si... Entonces...
Valor entero Valor hexadecimal Representación ASCII

%MW10 = 16#3231 2, 1
%MW1 = 123
%MW11 = 16#0D33 CR, 3

%MW10 = 16#3534 5, 4
%MW1 = 45
%MW11 = 16#000D CR
%MW1 = 7 %MW10 = 16#0D37 CR, 7

%MW10 = 16#312D 1, -

%MW1 = -12369 %MW11 = 16#3332 3, 2

%MW10 = 16#3936 9, 6

78 EIO0000003292.03
Instrucciones

Si... Entonces...
Valor entero Valor hexadecimal Representación ASCII

%MW11 = 16#000D CR

Instrucciones de conversión de ASCII a flotante


Introducción
Las instrucciones de conversión de ASCII a flotante convierten una cadena ASCII
en un valor de coma flotante.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Para las instrucciones de conversión de ASCII a flotante, utilice esta sintaxis: Op1
:= ASCII_TO_FLOAT( Op2 ).
Ejemplo:
[%MF0:=ASCII_TO_FLOAT(%MW8)]

Parámetros
En esta tabla se describen los parámetros de la función de conversión de ASCII a
flotante:

Parámetros Descripción

Op1 %MF

Op2 %MW or %KW

EIO0000003292.03 79
Instrucciones

Reglas de utilización
Las reglas de conversión de ASCII a flotante son las siguientes:
• La función lee primero el byte más significativo.
• Todo carácter ASCII que no se encuentre en el intervalo [0 - 9] ([16#30 -
16#39]) se considera un carácter de "fin", excepto:
◦ punto '.' (16#2E),
◦ menos '-' (16#2D),
◦ más '+' (16#2B),
◦ EXP 'e' o 'E' (16#65 o 16#45).
• El formato de la cadena ASCII puede estar en notación científica (es decir,
-2,34567e+13) o decimal (es decir, 9.826,3457).
• En caso de desborde (el resultado del cálculo es >3,402824E+38 o
<-3,402824E+38):
◦ El bit de sistema %S18 (desborde aritmético o error detectado) se
establece en 1.
◦ %SW17:X3 se establece en 1.
◦ Se devuelve el valor +/- 1.#INF (+ o – valor infinito).
• Si el resultado del cálculo se encuentra entre -1,175494E-38 y 1,175494E-
38, se redondea a 0,0.
• Si el operando no es un número:
◦ Se devuelve el valor NaN,
◦ El bit %SW17:X0 se establece en 1.

Ejemplo de aplicación
Tenga en cuenta que los siguientes datos ASCII se han almacenado entre %MW10
y %MW14:

Parámetro Valor hexadecimal Representación ASCII

%MW10 16#382D 8, ‘-’

%MW11 16#322E 2, ‘.’

%MW12 16#3536 5, 6

%MW13 16#2B65 ‘+’, ‘e’

%MW14 16#2032 ‘ ’, 2

En esta tabla se muestran ejemplos de la conversión de ASCII a flotante:

Ejemplo Result

%MF20 := ASCII_TO_FLOAT(%MW10) %MF20 = -826.5

%MF20 := ASCII_TO_FLOAT(%MW11) %MF20 = 26.5

%MF20 := ASCII_TO_FLOAT(%MW12) %MF20 = 6500.0

%MF20 := ASCII_TO_FLOAT(%MW13) %MF20 = NaN

%MF20 := ASCII_TO_FLOAT(%MW14) %MF20 = 2.0

80 EIO0000003292.03
Instrucciones

Instrucciones de conversión de flotante a ASCII


Introducción
Las instrucciones de conversión de flotante a ASCII convierten un valor de punto
flotante en un valor de cadena ASCII.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Para las instrucciones de conversión de flotante a ASCII, utilice esta sintaxis: Op1
:= FLOAT_TO_ASCII(Op2).
Ejemplo:
[%MW0:7:=FLOAT_TO_ASCII(%MF8)]

Parámetros
En esta tabla se describen los parámetros de la función de conversión de flotante
a ASCII:

Parámetro Descripción

Op1 %MW

Op2 %MF or %KF

Reglas de utilización
Las reglas de conversión de flotante a ASCII son las siguientes:
• La función escribe el byte más significativo primero.
• La representación se realiza mediante notación científica convencional.
• Los resultados "Infinito" o "No es un número" devuelven la cadena "NAN".
• Se agrega el carácter final seleccionado en la Comportamiento de la
aplicación (consulte EcoStruxure Machine Expert - Basic, Guía de
funcionamiento). El valor predeterminado es CR (retorno de carro, ASCII 13).
• La función determina automáticamente cuántas variables %MW se deben
llenar con valores ASCII.
• La precisión de conversión es de 6 cifras.

Errores de sintaxis
El software comprueba la sintaxis. Los ejemplos siguientes producirían errores de
sintaxis:

Sintaxis incorrecta Sintaxis correcta


%MW10 := FLOAT_TO_ASCII(%MF1) %MW10:7 := FLOAT_TO_ASCII(%MF1)

falta ":7" en el resultado


%MW10:n := FLOAT_TO_ASCII(%MF1) %MW10:7 := FLOAT_TO_ASCII(%MF1)

%MW10:n donde n ≠ 7 es incorrecto

EIO0000003292.03 81
Instrucciones

Ejemplo de aplicación
Para la instrucción %MW10:7 := FLOAT_TO_ASCII(%MF1):

Número para convertir Result

1234567800 1.234568e+09
0,000000921 9.210000e-07

9,87654321 9.876543e+00

1234 1.234000e+03

Instrucciones de conversión de ASCII a palabra doble


Introducción
La instrucción de conversión de ASCII a palabra doble convierte una cadena
ASCII en un valor de palabra doble.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Para la instrucción de conversión de ASCII a palabra doble, use esta sintaxis: Op1
:= ASCII_TO_DINT( Op2 )
Ejemplo:
[%MD4 := ASCII_TO_DINT(%MW5)]

Parámetros
En esta tabla se describen los parámetros de la instrucción de conversión de
ASCII a palabra doble:

Parámetros Descripción

Op1 %MDx

Op2 %MWy o %KWy

NOTA: No es necesario definir Op1 ni Op2 en una tabla de animación.

82 EIO0000003292.03
Instrucciones

Reglas de utilización
Las reglas de las instrucciones de conversión de ASCII a entero son las
siguientes:
• Op2 debe estar entre –2147483648 y 2147483647.
• La función lee primero el byte más significativo.
• Se ignoran los espacios iniciales.
• Todo carácter ASCII que se encuentre fuera del rango [0 - 9] ([16#30 -
16#39]) se considera un carácter de fin, excepto en el caso de un signo
menos '-' (16#2D) cuando se coloca como primer carácter.
• En caso de desbordamiento (>2147483647 o <–2147483648), el bit de
sistema %S18 (desborde aritmético o error detectado) se establece en 1 y se
devuelve el valor 2147483647 o –2147483648.
• Si el primer carácter del operando es un carácter "separador", se devuelve el
valor 0 y el bit %S18 se establece en 1.
NOTA: Los caracteres separadores son '+' y '-', la letra 'e' o 'E', o '.' (el
separador decimal).
• La notación científica no es válida.

Ejemplo de aplicación
Tenga en cuenta que los siguientes datos ASCII se han almacenado entre %MW11
y %MW13:

Parámetro Valor hexadecimal Representación ASCII

%MW8 16#3431 4, 1

%MW9 16#3532 5, 2

%MW10 16#3239 2, 9

%MW11 16#3133 1, 3

%MW12 16#2038 ‘ ‘, 8

%MW13 16#387A 8, ‘z‘

En esta tabla se muestran ejemplos de la conversión de ASCII a palabra doble:

Ejemplo Result

%MD10 := ASCII_TO_DINT(%MW8) %MD10 = 142592318

%MD10 := ASCII_TO_DINT(%MW12) %MD10 = 8

%MD10 := ASCII_TO_DINT(%MW13) %MD10 = 0 y %S18 se establece en 1

EIO0000003292.03 83
Instrucciones

Instrucciones de conversión de palabra doble a ASCII


Introducción
La instrucción de conversión de palabra doble a ASCII convierte un valor de
palabra doble en un valor de cadena ASCII.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Para la instrucción de conversión de palabra doble a ASCII, use esta sintaxis: Op1
:= DINT_TO_ASCII( Op2 )
Ejemplo:
[%MW4:6 := DINT_TO_ASCII(%MD5)]

Parámetros
En esta tabla se describen los parámetros de la función de conversión de palabra
doble a ASCII:

Parámetros Descripción

Op1 %MWx:6

Op2 %MD o %KD

NOTA: No es necesario definir Op1 y Op2 en una tabla de animación.

Reglas de utilización
Las reglas de conversión de entero a ASCII son las siguientes:
• Op2 debe estar entre –2147483648 y 2147483647.
• La función escribe el byte más significativo primero.
• Se agrega el carácter final seleccionado en la Comportamiento de la
aplicación (consulte EcoStruxure Machine Expert - Basic, Guía de
funcionamiento). El valor predeterminado es CR (retorno de carro, ASCII 13).
• La función determina automáticamente cuántas variables %MW se deben
llenar con valores ASCII (de 1 a 6).

Errores de sintaxis
El software comprueba la sintaxis. Los ejemplos siguientes producirían errores de
sintaxis:

Sintaxis incorrecta Sintaxis correcta


%MW2 := DINT_TO_ASCII (%MD1) %MW2:6 := DINT_TO_ASCII (%MD1)

falta ":6" en el resultado


%MW2:n := DINT_TO_ASCII (%KD7) %MW2:6 := DINT_TO_ASCII (%KD7)

%MW2:n, donde n ≠ 6 es incorrecto

84 EIO0000003292.03
Instrucciones

Ejemplo de aplicación
Para la instrucción %MW0:6 := DINT_TO_ASCII(%MD10) usando el carácter de
final de línea "CR":

Si... Entonces...
Valor entero Valor hexadecimal Representación ASCII

%MD10 = 1236589 %MW0 = 16#3231 2, 1

%MW1 = 16#3633 6, 3

%MW2 = 16#3835 8, 5

%MW3 = 16#0D37 CR, 9

%MD10 = 45 %MW0 = 16#3534 5, 4

%MW1 = 16#000D CR
%MD10 = -1236945 %MW0 = 16#3145 1, -

%MW1 = 16#3332 3, 2

%MW2 = 16#3936 9, 6

%MW3 = 16#3534 5, 4

%MW4 = 16#000D CR

Operadores de pila
Objeto de esta sección
En esta sección se describen las instrucciones avanzadas de la pila.

Instrucciones de la pila (MPS, MRD, MPP)


Introducción
Las instrucciones de la pila procesan el enrutamiento a bobinas. Las
instrucciones MPS, MRD y MPP utilizan un área de almacenamiento temporal
llamada pila, que puede almacenar hasta 32 expresiones booleanas.
NOTA: Estas instrucciones no se pueden utilizar en una expresión entre
paréntesis.

Sintaxis
En esta tabla se describen las tres instrucciones de pila:

Instrucción Descripción Función

MPS Introducir memoria en pila Almacena el resultado de la última instrucción


lógica (contenidos del acumulador) en la parte
superior de la pila (introducir) y desplaza el resto
de los valores a la parte inferior de la pila.

MRD Leer memoria desde pila Lee la parte superior de la pila en el acumulador.

MPP Sacar memoria de pila Copia el valor de la parte superior de la pila en el


acumulador (sacar) y desplaza el resto de los
valores hacia la parte superior de la pila.

NOTA: Para cada instrucción MPS (introducir) debe mostrarse una


instrucción MPP (extraer) coincidente en el mismo escalón.

EIO0000003292.03 85
Instrucciones

Operación
En este diagrama se muestra cómo funcionan las instrucciones de pila:

Ejemplo de aplicación
Ejemplo de uso de instrucciones de pila:

Escalón Instrucción
0 LD %I0.0
AND %M1
MPS
AND %I0.1
ST %Q0.0
MRD
AND %I0.2
ST %Q0.1
MRD
AND %I0.3
ST %Q0.2
MPP
AND %I0.4
ST %Q0.3

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Instrucciones sobre las tablas de objetos


Objeto de esta sección
En esta sección se describen las instrucciones para gestionar las tablas de
objetos de:
• Palabras dobles
• Objetos de coma flotante

86 EIO0000003292.03
Instrucciones

Asignación de tablas de palabras, palabras dobles y comas


flotantes
Introducción
Las operaciones de asignación se pueden ejecutar en las siguientes tablas de
objetos:
• Valor entero inmediato a tabla de palabras (vea el escalón 0 de la estructura
de ejemplo, página 88) o a tabla de palabras dobles
• Palabra a tabla de palabras (vea el escalón 1 de la estructura de ejemplo,
página 88)
• Tabla de palabras a tabla de palabras (vea el escalón 2 de la estructura de
ejemplo, página 88)
La longitud de la tabla (L) debe ser igual para ambas tablas.
• Palabra doble a tabla de palabras dobles
• Tabla de palabras dobles a tabla de palabras dobles
La longitud de la tabla (L) debe ser igual para ambas tablas.
• Valor de punto flotante inmediato a tabla de punto flotante
• Punto flotante a tabla de punto flotante
• Tabla de punto flotante a tabla de punto flotante
La longitud de la tabla (L) debe ser igual para ambas tablas.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Sintaxis de las asignaciones de tablas de palabras, palabras dobles y puntos
flotantes:

Operador Sintaxis

:= [Op1 := Op2]

Op1 toma el valor de Op2

En esta tabla se muestra la información de los operandos:

Tipo Op1 Op2

Tabla de palabras %MWi:L, %SWi:L, %QWi.j:L, % %MWi:L, %SWi:L, valor entero inmediato, %MWi, %KWi, %IW, %
QWEi:L, %QWMi:L, %QWNi.j.k:L QW, %SWi, %BLK.x, %QWi.j:L, %QWEi:L, %QWMi:L, %QWNi.
j.k:L, %IWi.j:L, %IWEi:L, %IWMi:L, %IWNi.j.k:L

Tablas de palabras dobles %MDi:L Valor entero inmediato, %MDi, %KDi,%MDi:L, %KDi:L

Tablas de palabras flotantes %MFi:L Valor de punto flotante inmediato, %MFi, %KFi, %MFi:L, %KFi:L

L Longitud de la tabla (máximo 255).

NOTA: La abreviatura %BLK.x (por ejemplo, R3.I) se utiliza para describir


cualquier palabra del bloque de funciones.

EIO0000003292.03 87
Instrucciones

Estructura
Ejemplos de asignaciones de tablas de palabras:

Escalón Instrucción
0 LD 1
[%MW0:10:=100]

1 LD %I0.0
[%MW0:10:=%MW11]

2 LDR %I0.3
[%MW10:20:=%KW20:20]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Funciones de suma de tablas


Introducción
La función SUM_ARR realiza la suma de todos los elementos de una tabla de
objetos:
• Si la tabla se compone de palabras dobles, el resultado se presenta en forma
de palabra doble.
• Si la tabla se compone de palabras flotantes, el resultado se presenta en
forma de palabra flotante.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Sintaxis de la instrucción de suma en tabla:
Res:=SUM_ARR(Tab)
Parámetros de la instrucción de suma en tabla:

Tipo Resultado (Res) Tabla (Tab)

Tablas de palabras dobles %MDi %MDi:L,%KDi:L

Tablas de palabras flotantes %MFi %MFi:L,%KFi:L

L Longitud de la tabla (máximo 255).

NOTA: Cuando el resultado no se encuentra dentro del rango válido de


formato de palabra doble según el operando de la tabla, el bit de sistema %
S18 se establece en 1.

88 EIO0000003292.03
Instrucciones

Estructura
Ejemplo de función de suma:

Escalón Instrucción
0 LD %I0.2
[%MD5:=SUM_ARR(%MD3:1)]

1 LD 1
[%MD5:=SUM_ARR(%KD5:2)]

2 LD 1
[%MF2:=SUM_ARR(%MF8:5)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Ejemplo de aplicación
%MD4:=SUM_ARR(%MD30:4)
Donde %MD30= 10, %MD32= 20, %MD34= 30, %MD36= 40
Por tanto, %MD4:= 10 + 20 + 30 + 40

Funciones de comparación de tablas


Introducción
La función EQUAL_ARR realiza la comparación de dos tablas, elemento por
elemento.
Si aparece una diferencia, el rango de los primeros elementos diferentes se
muestra en forma de palabra, de lo contrario, el valor mostrado es igual a -1.
La comparación se realiza en toda la tabla.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Sintaxis de la instrucción de comparación de tablas:
Res:=EQUAL_ARR(Tab1,Tab2)
Parámetros de las instrucciones de comparación de tablas:

Tipo Resultado (Res) Tablas (Tab1 y Tab2)

Tablas de palabras dobles %MWi %MDi:L,%KDi:L

Tablas de palabras flotantes %MWi %MFi:L,%KFi:L

L Longitud de la tabla (máximo 255).

NOTA: Las tablas deben tener la misma longitud y ser del mismo tipo.

EIO0000003292.03 89
Instrucciones

Estructura
Ejemplo de función de comparación de tablas:

Escalón Instrucción
0 LD %I0.2
[%MW5:=EQUAL_ARR(%MD20:7,%KD0:7)]

1 LD 1
[%MW0:=EQUAL_ARR(%MD20:7,%KD0:7)]

2 LD 1
[%MF2:=SUM_ARR(%MF8:5)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Ejemplo de aplicación
%MW5:=EQUAL_ARR(%MD30:4,%KD0:4)
Comparación de las 2 tablas:

Rango Tabla de palabras Tablas de palabras Diferencia


constantes
0 %MD30=10 %KD0=10 =

1 %MD32=20 %KD2=20 =

2 %MD34=30 %KD4=60 Diferente


3 %MD36=40 %KD6=40 =

El valor de la palabra %MW5 es 2 (primer rango diferente).

Funciones de búsqueda en tablas


Introducción
Se proponen tres funciones de búsqueda:
• FIND_EQR: búsqueda de la posición en una tabla de palabras dobles o de
flotantes del primer elemento igual a un valor determinado.
• FIND_GTR: búsqueda de la posición en una tabla de palabras dobles o de
flotantes del primer elemento mayor que un valor determinado.
• FIND_LTR: búsqueda de la posición en una tabla de palabras dobles o de
flotantes del primer elemento menor que un valor determinado.
El resultado de estas instrucciones es igual al rango del primer elemento
encontrado o a -1 si la búsqueda es infructuosa.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Sintaxis de las instrucciones de búsqueda en tablas:

Función Sintaxis
FIND_EQR Res:=Function(Tab,Val)

FIND_GTR

90 EIO0000003292.03
Instrucciones

Función Sintaxis
FIND_LTR

Parámetros de las instrucciones de búsqueda en tablas de palabras flotantes y


palabras dobles:

Tipo Resultado (Res) Tabla (Tab) Valor (Val)

Tablas de palabras %MWi %MFi:L,%KFi:L %MFi,%KFi


flotantes
Tablas de palabras %MWi %MDi:L,%KDi:L %MDi,%KDi
dobles
L Longitud de la tabla (máximo 255).

Estructura
Ejemplo de función de búsqueda en tablas:

Escalón Instrucción
0 LD %I0.2
[%MW5:=FIND_EQR(%MD20:7,%KD0)]

1 LD %I0.3
[%MW6:=FIND_GTR(%MD20:7,%KD0)]

2 LD 1
[%MW7:=FIND_LTR(%MF40:5,%KF4)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Ejemplo de aplicación
%MW5:=FIND_EQR(%MD30:4,%KD0)
Búsqueda de la posición de la primera palabra doble = %KD0=30 en la tabla:

Rango Tabla de palabras Resultado

0 %MD30=10 -

1 %MD32=20 -

2 %MD34=30 Valor (val), rango

3 %MD36=40 -

Funciones de búsqueda de valores máximo y mínimo en tablas


Introducción
Se proponen dos funciones de búsqueda:
• MAX_ARR: búsqueda del valor máximo en una tabla de palabras dobles y de
flotantes.
• MIN_ARR: búsqueda del valor mínimo en una tabla de palabras dobles y de
flotantes.
El resultado de estas instrucciones es igual al valor máximo (o mínimo)
encontrado en la tabla.

EIO0000003292.03 91
Instrucciones

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Sintaxis de las instrucciones de búsqueda de valores máximos y mínimos en
tablas:

Función Sintaxis
MAX_ARR Result:=Function(Tab)

MIN_ARR

Parámetros de las instrucciones de búsqueda de valores máximos y mínimos en


tablas:

Tipo Resultado (Res) Tabla (Tab)

Tablas de palabras dobles %MDi %MDn:L,%KDn:L

Tablas de palabras flotantes %MFi %MFn:L,%KFn:L

i es el indicador de instancia de objeto para la variable de memoria.

n es el índice de memoria de la tabla que indica la dirección de base de la búsqueda.

L es el número de posiciones que se deben considerar en una búsqueda, incluido el índice de


dirección de base (el valor máximo de L es 255).

NOTA: En L se incluyen sólo las direcciones que no se superponen durante la


búsqueda. Para obtener más información, consulte Posibilidad de
solapamiento entre objetos, página 31.

Estructura
Ejemplo de función de búsqueda en tablas:

Escalón Instrucción
0 LD %I0.2
[%MD0:=MIN_ARR(%MD20:7)]

1 LD 1
[%MF8:=MIN_ARR(%MF40:5)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Número de apariciones de un valor en una tabla


Introducción
Esta función OCCUR_ARR realiza una búsqueda en una tabla de palabras
dobles o flotantes del número de elementos iguales a un valor determinado.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.

92 EIO0000003292.03
Instrucciones

Sintaxis de las instrucciones de búsqueda de valores máximos y mínimos en


tablas:

Función Sintaxis
OCCUR_ARR Res:=Function(Tab,Val)

Parámetros de las instrucciones de búsqueda de valores máximos y mínimos en


tablas:

Tipo Resultado (Res) Tabla (Tab) Valor (Val)

Tablas de palabras %MWi %MDi:L,%KDi:L %MDi,%KDi


dobles
Tablas de palabras %MWi %MFi:L,%KFi:L %MFi,%KFi
flotantes
L Longitud de la tabla (máximo 255).

Estructura
Ejemplo de número de apariciones:

Escalón Instrucción
0 LD %I0.3
[%MW5:=OCCUR_ARR(%MF20:7,%KF0)]

1 LD %I0.2
[%MW5:=OCCUR_ARR(%MD20:7,%MD1)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Funciones de desplazamiento circular de tabla


Introducción
Hay 2 funciones de desplazamiento:
• ROL_ARR: realiza un desplazamiento circular de n posiciones de arriba
abajo de los elementos de una tabla de palabras flotantes
Ilustración de las funciones ROL_ARR

• ROR_ARR: realiza un desplazamiento circular de n posiciones de abajo


arriba de los elementos de una tabla de palabras flotantes
Ilustración de las funciones ROR_ARR

EIO0000003292.03 93
Instrucciones

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Sintaxis de las instrucciones de desplazamiento circular en tablas de palabras
dobles o flotantes ROL_ARR y ROR_ARR:

Función Sintaxis
ROL_ARR Function(n,Tab)

ROR_ARR

Parámetros de las instrucciones de desplazamiento circular en tablas de


flotantes: ROL_ARR y ROR_ARR:

Tipo Número de posiciones (n) Tabla (Tab)

Tablas de palabras flotantes %MWi, %KWi, immediate %MFi:L


value
Tablas de palabras dobles %MWi, %KWi, immediate %MDi:L
value
L Longitud de la tabla (máximo 255).

NOTA: Si el valor de n es negativo o nulo, no se efectuará ningún


desplazamiento.

Estructura
Ejemplo de función de desplazamiento circular en tablas:

Escalón Instrucción
0 LD %I0.2
[ROL_ARR(%KW0,%MD20:7)]

1 LD %I0.3
[ROR_ARR(2,%MD20:7)]

2 LD %I0.4
[ROR_ARR(2,%MF40:5)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Funciones de clasificación en tablas


Introducción
La función de clasificación SORT_ARR realiza clasificaciones en orden
ascendente o descendente de los elementos de una tabla de palabras dobles o
de palabras flotantes y almacena el resultado en la misma tabla.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.

94 EIO0000003292.03
Instrucciones

Sintaxis de las funciones de clasificación en tablas:

Función Sintaxis
SORT_ARR Function(direction,Tab)

El parámetro "direction" proporciona el orden de la clasificación:


• Direction > 0: la clasificación se efectúa en orden ascendente.
• Direction < 0: la clasificación se efectúa en orden descendente.
• Direction = 0: no se realiza ninguna clasificación.
El resultado (tabla ordenada) se devuelve en el parámetro Tab (tabla para
clasificar).
Parámetros de las funciones de clasificación en tablas:

Tipo Dirección de la clasificación Tabla (Tab)

Tablas de palabras dobles %MWi, %KWi, immediate %MDi:L


value
Tablas de palabras flotantes %MWi, %KWi, immediate %MFi:L
value
L Longitud de la tabla (máximo 255).

Estructura
Ejemplo de función de clasificación en tablas:

Escalón Instrucción
0 LD %I0.1
[SORT_ARR(%MW20,%MF0:6)]

1 LD %I0.2
[SORT_ARR(%MW20,%MF0:6)]

2 LD %I0.3
[SORT_ARR(0,%MF40:8)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Funciones de interpolación en la tabla de coma flotante (LKUP)


Introducción
La función LKUP se usa para interpolar un conjunto de datos de coma flotante de
X con respecto a Y para un valor dado de X.

Revisión de la interpolación lineal


La función LKUP utiliza la regla de interpolación lineal, como se define en esta
ecuación:

(Ecuación 1)

para , donde ;

sabiendo que los valores están dispuestos en orden ascendente:


.

EIO0000003292.03 95
Instrucciones

NOTA: Si dos valores consecutivos Xi cualesquiera son iguales (Xi=Xi+1=X), la


ecuación (1) resulta en una excepción no válida. En este caso, para
solucionar esta excepción se usa el algoritmo siguiente en lugar de la
ecuación (1):

(Ecuación 2)

para , donde .

Representación gráfica
Este gráfico muestra la regla de interpolación lineal descrita anteriormente:

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
La función LKUP usa tres operandos, dos de los cuales son atributos de función,
tal como se describe en esta tabla:

Sintaxis Op1 Op2 Op3

Variable de salida Valor (X) definido por el Matriz de variables (Xi,Yi) definida por
usuario el usuario
[Op1 := LKUP(Op2,Op3)] %MWi %MF0 Valor entero, %MWi,or %KWi

Definición de Op1
Op1 es la palabra de memoria que contiene la variable de salida de la función de
interpolación.

96 EIO0000003292.03
Instrucciones

En función del valor de Op1, puede saber si la interpolación se ha realizado


correctamente o no, y qué es lo que puede haber causado un fallo, como se
explica en esta tabla:

Op1 (%MWi)) Descripción

0 Interpolación correcta

1 Error de interpolación detectado: Matriz incorrecta, Xm < Xm-1

2 Error de interpolación detectado: Op2 fuera de rango, X < X 1

4 Error de interpolación detectado: Op2 fuera de rango, X > X m

8 Tamaño no válido de la matriz de datos:


• Op3 se define como número impar o bien
• Op3 < 6.

NOTA: Op1 no contiene el valor (Y) de interpolación calculado. Para un valor


dado (X), el resultado de la interpolación (Y) está contenido en %MF2 de la
matriz Op3, página 97.

Definición de Op2
Op2 es la variable de coma flotante (%MF0 de la matriz de coma flotante de Op3)
que contiene el valor (X) definido por el usuario para el que se va a calcular el
valor (Y) interpolado.

Rango válido para Op2: .

Definición de Op3
Op3 establece el tamaño (Op3 / 2) de la matriz de coma flotante en la que se
almacenan los pares de datos (Xi,Yi).
Los datos Xi e Yi se almacenan en objetos de coma flotante con índices pares,
empezando por %MF4 (observe que los objetos de coma flotante %MF0 y %MF2 se
reservan para la consigna del usuario X y el valor Y interpolado,
respectivamente).
Dada una matriz de (m) pares de datos (Xi,Yi), el índice superior (u) de la matriz
de coma flotante (%MFu) se establece mediante las relaciones siguientes:
• (Ecuación 3)
• (Ecuación 4)
La matriz de coma flotante Op3 (%MFi) presenta una estructura similar a la de
este ejemplo (donde Op3=8):

(X) (X1) (X2) (X3)

%MF0 %MF4 %MF8 %MF12


%MF2 %MF6 %MF10 %MF14
(Y) (Y1) (Y2) (Y3)

(Op3=8)

NOTA: Como resultado de la estructura de la matriz de coma flotante anterior,


Op3 debe cumplir los dos requisitos siguientes; de lo contrario, se activará un
error en la función LKUP:
• Op3 es un número par y
• Op3 ≥ 6 (ya que debe haber, al menos, dos puntos de datos para que
pueda haber interpolación lineal).

EIO0000003292.03 97
Instrucciones

Estructura
Las operaciones de interpolación se realizan de la forma siguiente:

Escalón Instrucción
0 LD %I0.2
[%MW20:=LKUP(%MF0,%KW1)]

1 LD %I0.3
[%MW22:=LKUP(%MF0,10)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Ejemplo de aplicación
Uso de una función de interpolación LKUP:
[%MW20:=LKUP(%MF0,10)]
En este ejemplo:
• %MW20 es Op1 (la variable de salida).
• %MF0 es el valor (X) definido por el usuario cuyo valor (Y) correspondiente se
debe calcular mediante interpolación lineal.
• %MF2 almacena el valor (Y) calculado resultante de la interpolación lineal.
• 10 es Op3 (calculado mediante la ecuación 3 explicada anteriormente).
Establece el tamaño de la matriz de coma flotante. El elemento más alto de la
serie %MFu, donde u=18 se calcula mediante la ecuación 4 descrita
anteriormente.
Existen cuatro pares de puntos de datos almacenados en la matriz Op3 [%
MF4,...%MF18]:
• %MF4 contiene X1,%MF6 contiene Y1.
• %MF8 contiene X2,%MF10 contiene Y2.
• %MF12 contiene X3,%MF14 contiene Y3.
• %MF16 contiene X4,%MF18 contiene Y4.

Funciones MEAN de los valores de una tabla de coma flotante


Introducción
La función MEAN permite calcular la media de un número determinado de valores
de una tabla de coma flotante.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Sintaxis de la función de cálculo de la media de una tabla de coma flotante:

Función Sintaxis
MEAN Resultado=Función(Op1)

98 EIO0000003292.03
Instrucciones

Parámetros de la función de cálculo para un número L determinado (máximo 255)


de valores de una tabla de comas flotantes:

Op1 Resultado (Res)

%MFi:L, %KFi:L %MFi

Estructura
Ejemplo de función de media:

Escalón Instrucción
0 LD %I3.2
[%MF0:=MEAN(%MF10:5)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Función SWAP de los valores de una tabla de palabras


Introducción
La función SWAP se usa para intercambiar los bytes bajos y altos de los valores
de una tabla de palabras y almacenar el resultado en una tabla de palabras.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Para la función SWAP, use la sintaxis:
Op1 := SWAP(Op2)
Donde:

Operando Tipo

Op1 %MWx:L, %QWx.y:L, %QWEx:L, %QWMx:L, %QWNx.y.z:L

Op2 %MWx:L, %KWx:L, %QWx.y:L, %IWx.y:L, %QWEx:L, %IWEx:


L, %QWMx:L, %IWMx:L, %QWNx.y.z:L, %IWNx.y.z:L

L Longitud de la tabla (máximo 255).

Estructura
Ejemplo de función SWAP:

Escalón Instrucción
0 %MW0:3 := "1234"
[%MW0:3 := SWAP(%MW0:3)]

Para este ejemplo, el resultado es:


%MW0="12" y %MW1="34"
NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el
diagrama de contactos equivalente.

EIO0000003292.03 99
Instrucciones

Instrucciones sobre los objetos de E/S


Objeto de esta sección
En esta sección se describen las instrucciones sobre los objetos de E/S.

Lectura de la entrada digital incrustada inmediata (READ_IMM_


IN)
Introducción
La instrucción READ_IMM_IN lee una entrada digital incrustada (entrada
integrada en el controlador lógico) durante la ejecución de una tarea e
inmediatamente actualiza la imagen de entrada. Así se evita tener que esperar el
siguiente tiempo de ciclo de tarea para actualizar la imagen de entrada.
NOTA: Esta instrucción sólo es válida para las entradas digitales incrustadas.
NOTA: Al usar esta instrucción, evalúe el rendimiento relativo (active y
desactive retardos) de entradas normales y entradas rápidas. Consulte
Entradas digitales en la guía de programación de su controlador lógico.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Para la instrucción READ_IMM_IN, utilice la sintaxis siguiente:
Op1 := READ_IMM_IN(Op2)
Donde:

Operando Tipo Descripción

Op1 %MWi Almacena el código de retorno de la función (consulte la


siguiente tabla).

Op2 Valor inmediato (entero) Define el índice de entrada (%I0.x).

%MWi

%KWi
i Indicador de instancia de objeto para la variable de memoria.

Código de retorno de la función


En esta tabla se describe el código de retorno de la función:

Código Descripción

0 No se ha detectado ningún error.

1 La entrada declarada es mayor que la entrada máxima permitida.

2 La entrada declarada está forzada.

100 EIO0000003292.03
Instrucciones

Ejemplo
%MW0 := READ_IMM_IN(2)
En la ejecución de este bloque de operación, el valor actual de la entrada %I0.2
se lee y la imagen de entrada se actualiza inmediatamente. El código de retorno
de la función se guarda en la palabra de memoria %MW0.

Estructura
Ejemplo de la instrucción READ_IMM_IN:

Escalón Instrucción
0 LD %M0
[%MW0:=READ_IMM_IN(%MW5)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Escritura de la salida digital incrustada inmediata (WRITE_IMM_


OUT)
Introducción
La instrucción WRITE_IMM_OUT escribe físicamente en una salida digital
incrustada (salida integrada en el controlador lógico). El valor se lee
inmediatamente a partir de la imagen de salida. Así se evita tener que esperar el
siguiente tiempo de ciclo de tarea para escribir en la salida incrustada.
NOTA: Esta función sólo es válida para las salidas digitales incrustadas.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Para la instrucción WRITE_IMM_OUT, utilice la sintaxis siguiente:
Op1 := WRITE_IMM_OUT(Op2)
Donde:

Operando Tipo Descripción

Op1 %MWi Almacena el código de retorno de la función (consulte la


siguiente tabla).

Op2 Valor inmediato (entero) Define el índice de salida (%Q0.x).

%MWi

%KWi
i es el indicador de instancia de objeto para la variable de memoria.

EIO0000003292.03 101
Instrucciones

Código de retorno de la función


En esta tabla se describe el código de retorno de la función:

Código Descripción

0 No se ha detectado ningún error.

3 La salida declarada es mayor que la salida máxima permitida.

4 La salida declarada está forzada.


5 La salida declarada se utiliza como una salida de hardware dedicada.
6 La salida declarada se utiliza como una salida de alarma.

Ejemplo
%MW0 := WRITE_IMM_OUT(%MW5) (con %MW5 = 2)
En la ejecución de este bloque de operación, la imagen de salida %Q0.2 se
escribe físicamente en la salida digital incrustada. El código de retorno de la
función se guarda en la palabra de memoria %MW0.

Estructura
Ejemplo de la instrucción WRITE_IMM_OUT:

Escalón Instrucción
0 LD %M0
[%MW0:= WRITE_IMM_OUT(%MW4)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Parámetro de bloque de funciones de lectura inmediata (READ_


IMM)
Introducción
La instrucción READ_IMM lee un parámetro de bloque de funciones durante la
ejecución de una tarea y actualiza la imagen de entrada durante el mismo ciclo.
Esta función sólo está disponible para determinados parámetros de bloques de
funciones. La instrucción READ_IMM lee directamente desde los registros HSC.V
y HSC.P en bloques de funciones de Contador de alta velocidad (%HSC). Para
obtener más información, consulte Contador de alta velocidad (%HSC) en la Guía
de la biblioteca de funciones avanzadas de su controlador lógico.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Para la instrucción READ_IMM, utilice la sintaxis siguiente:
READ_IMM(Op1)

102 EIO0000003292.03
Instrucciones

Donde:

Operando Tipo Descripción

Op1 %HSCx.P, %HSCx.PD, Esta instrucción lee un parámetro de bloque de funciones


%HSCx.V, %HSCx.VD dado en Op1 y actualiza el valor en la imagen de E/S y en
el registro correspondiente.

x es el indicador de instancia de objeto para el bloque de funciones.

Ejemplo
A continuación se muestra un ejemplo de uso de la instrucción READ_IMM:

Escalón Instrucción
0 LD %M0
[READ_IMM(%HSC0.P)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.
NOTA: La aplicación debe configurarse con un nivel funcional (consulte
EcoStruxure Machine Expert - Basic, Guía de funcionamiento) de como
mínimo Nivel 3.3 para usar la instrucción READ_IMM.

Parámetro de bloque de funciones de escritura inmediata


(WRITE_IMM)
Introducción
La instrucción WRITE_IMM escribe un parámetro de bloque de funciones durante
la ejecución de una tarea y actualiza la imagen de salida durante el mismo ciclo.
Esta función sólo está disponible para determinados parámetros de bloques de
funciones. La instrucción WRITE_IMM escribe directamente desde los registros
HSC.V y HSC.P en bloques de funciones de Contador de alta velocidad (%HSC).
Para obtener más información, consulte Contador de alta velocidad (%HSC) en la
Guía de la biblioteca de funciones avanzadas de su controlador lógico.

Sintaxis
A continuación, se describe la sintaxis de la lista de instrucciones. Puede insertar
operaciones de lista de instrucciones e instrucciones de asignación, página 16 en
los escalones del diagrama de contactos utilizando un elemento gráfico de
Bloque de operación.
Para la instrucción WRITE_IMM, utilice la sintaxis siguiente:
WRITE_IMM(Op1)
Donde:

Operando Tipo Descripción

Op1 %HSCx.P, %HSCx.PD, Esta instrucción escribe un parámetro de bloque de


%HSCx.V, %HSCx.VD funciones dado en Op1 y actualiza el valor en la imagen
de E/S.
x es el indicador de instancia de objeto para el bloque de funciones.

EIO0000003292.03 103
Instrucciones

Ejemplo
A continuación se muestra un ejemplo de uso de la instrucción WRITE_IMM:

Escalón Instrucción
0 LD %M1
[WRITE_IMM(%HSC0.V)]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.
NOTA: La aplicación debe estar configurada con un nivel funcional como
mínimo de Nivel 3.3 para utilizar la instrucción WRITE_IMM.

104 EIO0000003292.03
Objetos de E/S

Objetos de E/S
Contador rápido (%FC)
Uso de los bloques de funciones del contador rápido
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones Fast Counter.

Descripción general
Consulte la Guía de la biblioteca de funciones avanzadas de su controlador.

Contador de alta velocidad (%HSC)


Uso de los bloques de funciones del contador de alta velocidad
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones High Speed Counter.

Descripción general
Consulte la Guía de la biblioteca de funciones avanzadas de su controlador.

Pulso (%PLS)
Uso de los bloques de funciones de pulsos
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones Pulse.

Descripción general
Consulte la Guía de la biblioteca de funciones avanzadas de su controlador.

Modulación de ancho de pulsos (%PWM)


Uso de los bloques de funciones de modulación de ancho de
pulsos
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones Pulse Width Modulation.

EIO0000003292.03 105
Objetos de E/S

Descripción general
Consulte la Guía de la biblioteca de funciones avanzadas de su controlador.

106 EIO0000003292.03
Objetos de red

Objetos de red
Objetos de red
Presentación
Los objetos de red se utilizan para la comunicación a través de EtherNet/IP,
Modbus TCP o IOScanner serie Modbus.
Hay dos tipos de objeto de red para la comunicación EtherNet/IP:
• %QWE: Input Assembly
• %IWE: Output Assembly
Hay dos tipos de objeto de red para la comunicación Modbus TCP:
• %QWM: Registros de entrada
• %IWM: Registros de salida
Para IOScanner serie Modbus, se utilizan los siguientes tipos de objetos de red:
• %IN: Entradas digitales (IOScanner)
• %QN: Salidas digitales (IOScanner)
• %IWN: Tamaño ensamblado de entrada (IOScanner)
• %QWN: Registros de salida (IOScanner)
• %IWNS: Códigos de diagnóstico de red de IOScanner
NOTA: Las referencias a entradas y salidas se realizan desde el punto de
vista del maestro EtherNet/IP o cliente Modbus TCP.
Para obtener más información sobre cómo configurar objetos de red, consulte la
guía de programación del logic controller.

EIO0000003292.03 107
Objetos de software

Objetos de software
Uso de bloques de funciones
Principios de programación de bloques de funciones
Descripción general
Un bloque de funciones es un objeto reutilizable que acepta uno o varios valores
de entrada y devuelve uno o varios valores de salida.
Puede insertar hasta cinco bloques de funciones en cada escalón del diagrama
de contactos.
Los parámetros de los bloques de funciones no están disponibles si:
• su controlador no admite el bloque de funciones;
• el bloque de funciones no está configurado.

Programas de diagrama de contactos


Para utilizar un bloque de funciones en un escalón de diagrama de contactos:

Paso Acción
1 Inserte, página 109 el bloque de funciones en un escalón.

2 Conecte las entradas y salidas según sea necesario.

3 Configure, página 111 el bloque de funciones especificando los valores de sus


parámetros.

Programas de la lista de instrucciones


Para añadir un bloque de funciones a un programa de lista de instrucciones,
puede utilizar uno de los siguientes métodos:
• Instrucciones del bloque de funciones (por ejemplo, BLK %TM2): método
reversible de programación reversible que permite que las operaciones que
se van a realizar en el bloque se lleven a cabo en un único lugar del
programa.
• Instrucciones específicas (por ejemplo, CU %Ci). Este método no reversible
permite que las operaciones que se van a realizar en las entradas del bloque
de funciones se lleven a cabo en diversos lugares del programa. Ejemplo:

Línea Instrucción
1000 CU %C1

1074 CD %C1

1209 R %C1

Utilice las instrucciones BLK, OUT_BLK y END_BLK para la programación


reversible de los bloques de funciones:
• BLK: indica el principio del bloque.
• OUT_BLK: se emplea para conectar las salidas del bloque directamente.
• END_BLK: indica el final del bloque.
NOTA: Se pueden colocar instrucciones de entrada y de prueba en el bloque
pertinente únicamente entre las instrucciones BLK y OUT_BLK (o entre BLK y
END_BLK cuando no se programa OUT_BLK).

108 EIO0000003292.03
Objetos de software

Ejemplo con salidas cableadas


En este ejemplo se muestra un bloque de funciones Counter en un programa con
salidas cableadas:

Escalón Instrucción
0 BLK %C8
LDF %I0.1
R
LD %I0.1
AND %M0
CU
OUT_BLK
LD D
AND %M1
ST %Q0.0
END_BLK

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Ejemplo sin salidas cableadas


En este ejemplo se muestra la programación reversible de un bloque de funciones
Counter sin salidas cableadas:

Escalón Instrucción
0 BLK %C8
LDF %I0.1
R
LD %I0.2
AND %M0
CU
END_BLK

1 LD %C8.D
AND %M1
ST %Q0.4

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Adición de un bloque de funciones


Inserción de un bloque de funciones en un programa de diagrama de
contactos
Siga este procedimiento:

Paso Acción
1 Cree un nuevo escalón del diagrama de contactos en el área de trabajo de
programación de EcoStruxure Machine Expert - Basic. Consulte la sección
EcoStruxure Machine Expert - Basic Guía de funcionamiento para obtener más
información.
2 Haga clic en el botón Función de la barra de herramientas gráfica situada en la parte
superior del área de trabajo de programación.

Resultado: Se muestra una lista de todos los objetos de bloques de funciones


disponibles (consulte la tabla siguiente).

3 Seleccione el bloque de funciones.

4 Mueva el bloque de funciones a la posición deseada en el escalón y, a continuación,


haga clic para insertarlo.

Puede insertar hasta cinco bloques de funciones en serie o en paralelo.

EIO0000003292.03 109
Objetos de software

Objetos de bloques de funciones disponibles


En esta tabla se muestran los objetos de bloques de funciones disponibles:

Objeto de bloque de Descripción


funciones
Temporizador

Registro LIFO/FIFO

Registro de bits de desplazamiento

Contador de pasos

Contador

Contador rápido

Contador de alta velocidad

Drum

RTC (Reloj de tiempo real)

Pulso

Modulación de ancho de pulsos

Mensaje

Registro de datos

Salida de tren de pulsos


NOTA: Para obtener una lista completa de objetos PTO,
consulte la Guía de la biblioteca de funciones avanzadas, PTO
Function Blocks.
Objetos de accionamiento
NOTA: Para ver una lista completa de objetos de
accionamiento, consulte la Guía de la biblioteca de funciones
avanzadas, Bloques de funciones de accionamiento.

Bloques de funciones de comunicación


NOTA: Para obtener una lista completa de los bloques de
funciones de comunicación, consulte Objetos de comunicación,
página 179.

Bloque de funciones definido por el usuario

110 EIO0000003292.03
Objetos de software

Configuración de un bloque de funciones


Configuración de un bloque de funciones en un programa de diagrama de
contactos
Siga el procedimiento siguiente:

Paso Acción
1 De manera opcional, haga clic en Dirección dentro del bloque de funciones.

Aparece una dirección predeterminada en el cuadro de texto; por ejemplo, "%TM0"


para un bloque de funciones Timer.

Para modificar la dirección predeterminada, elimine el último dígito de la dirección (el


identificador de la instancia).

Aparece una lista de todas las direcciones disponibles.

Seleccione la dirección que se utilizará para identificar esta instancia del bloque de
funciones.

Las propiedades del bloque de funciones aparecen en el centro del objeto de bloque
de funciones y en la tabla Propiedades, en la mitad inferior del área de trabajo de
programación.

Cuando lo desee, puede hacer doble clic en cualquier parte dentro del bloque de
funciones para visualizar las propiedades.

2 De manera opcional, haga clic en Comentario dentro del bloque de funciones y


escriba una breve descripción del bloque de funciones. Por ejemplo, Temporizador
de pulso.

3 De manera opcional, haga clic en la etiqueta Símbolo dentro del bloque de funciones
y comience a escribir el nombre del símbolo para asociarlo con este bloque de
funciones.

Aparece una lista de todos los símbolos existentes con nombres que comienzan con
el carácter o caracteres que ha escrito; haga clic en el símbolo para usarlo.

A fin de crear un nuevo símbolo para este bloque de funciones, escriba el nombre del
símbolo para crearlo y seleccione el objeto para asociarlo con el símbolo.

Consulte la EcoStruxure Machine Expert - Basic Guía de funcionamiento (consulte


EcoStruxure Machine Expert - Basic, Guía de funcionamiento) para obtener
información detallada sobre el uso de los símbolos.
4 Haga clic en el bloque de funciones.

Resultado: Se muestra la información sobre herramientas de Configuración.

5 Configure los parámetros disponibles de cada bloque de funciones, como se explica


en el tema "Parámetros" de las descripciones de cada bloque de funciones.

Puede modificar los valores de los objetos en la modalidad online. Consulte


Modificaciones de la modalidad online (consulte EcoStruxure Machine Expert - Basic,
Guía de funcionamiento).

NOTA: Además, puede visualizar la tabla Propiedades haciendo doble clic


en el bloque de funciones en un escalón.

Temporizador (%TM)
Uso de los bloques de funciones del temporizador
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones Timer.

EIO0000003292.03 111
Objetos de software

Descripción
Introducción

Los bloques de funciones Timer se utilizan para especificar un periodo de


tiempo antes de hacer algo, por ejemplo, activar un evento.

Ilustración
En esta ilustración se muestra el bloque de funciones Timer.

Comentario
Símbolo
IN Q
%TM0
Ret., din. Preajuste
Tipo: TON
TB: 1 min
Preestablecido: 9999

Entradas
El bloque de funciones Timer contiene la siguiente entrada:

Etiqueta Descripción Valor

IN Dirección (o Inicia el Timer cuando se detecta un flanco ascendente (tipos


instrucción) de TON o TP) o un flanco descendente (tipo TOF).
entrada

Salidas
El bloque de funciones Timer contiene la siguiente salida:

Etiqueta Descripción Valor

Q Dirección de salida El bit asociado %TMi.Q se establece en 1 (en función del tipo
(%TMi.Q) de Timer) cuando el Timer se agota.

Configuración
Parámetros
Para configurar los parámetros, siga el procedimiento de configuración de un
bloque de funciones, página 111 y lea la descripción de las modalidades de
asignación de memoria en la Guía de funcionamiento de EcoStruxure Machine
Expert - Basic.

112 EIO0000003292.03
Objetos de software

El bloque de funciones Timer contiene los parámetros siguientes:

Parámetro Descripción Valor Editable


en
modali-
dad
online
Utilizado Dirección utilizada Si se selecciona, esta dirección está en uso en el programa. No

Dirección Dirección del objeto Timer (%TMi) Un programa puede contener sólo un número limitado de No
objetos Timer. Consulte la guía de programación de la
plataforma correspondiente para saber cuál es el número
máximo de temporizadores.

Símbolo Símbolo El símbolo asociado con este objeto. Consulte la EcoStruxure No


Machine Expert - Basic Guía de funcionamiento, Definición y
uso de los símbolos (consulte EcoStruxure Machine Expert -
Basic, Guía de funcionamiento) para obtener más información.

Tipo Tipo Timer Uno de los siguientes: Sí 1


• TON, página 114: temporizador de retardo de conexión
(predeterminado)
• TOF, página 118: temporizador de retardo en la
desconexión
• TP, página 121: temporizador de pulso (monoestable)

Retentivo TRUE/FALSE Si no se ha seleccionado la casilla Retentivo (valor Sí 1


predeterminado), el valor se restablece cuando se detecta un
flanco descendente del parámetro IN. El conteo se reinicia
desde 0.

Si se ha seleccionado la casilla Retentivo, el temporizador


retiene el valor cuando se detecta un flanco descendente del
parámetro IN antes de que se alcance el valor Preajuste. El
conteo se reinicia a partir de este valor.
NOTA: La aplicación debe configurarse con un nivel
funcional (consulte EcoStruxure Machine Expert - Basic,
Guía de funcionamiento) de como mínimo Nivel 3.3 para
usar el parámetro Retentivo.

Preajuste TRUE/FALSE Cuando la casilla de verificación Preajuste dinámico no está Sí 1


dinámico seleccionada (valor predeterminado) y el valor preestablecido
se modifica (mediante instrucciones de programación o usando
EcoStruxure Machine Expert - Basic), el valor preestablecido
modificado sólo tiene efecto en la próxima activación del
temporizador.

Cuando la casilla de verificación Preajuste dinámico está


seleccionada y el valor preestablecido se modifica (mediante
instrucciones de programación o usando EcoStruxure Machine
Expert - Basic), el valor preestablecido modificado tiene efecto
inmediatamente.

Cuando la casilla de verificación Preajuste dinámico está


seleccionada y se recibe un nuevo valor preestablecido
mientras el temporizador está en funcionamiento:
• Si el valor actual (TMi.V) es mayor o igual al nuevo valor
preestablecido, el temporizador se comporta como si se
hubiera alcanzado el valor preestablecido.
• Si el valor actual (TMi.V) es menor que el nuevo valor
preestablecido, el temporizador continuará ejecutándose
hasta que alcance el nuevo valor preestablecido.
NOTA: Su aplicación debe configurarse con un nivel
funcional (consulte EcoStruxure Machine Expert - Basic,
Guía de funcionamiento) de como mínimo Nivel 12.0 para
usar el parámetro Preajuste dinámico.

Referencia de Referencia de tiempo La unidad de referencia de tiempo del temporizador. Cuanto Sí 1


tiempo más pequeña sea la unidad de referencia del temporizador,
mayor será la precisión del temporizador:
• 1 ms (admitido en %TM0...%TM5)
• 10 ms
• 100 ms
• 1s
• 1 min (predeterminado)

EIO0000003292.03 113
Objetos de software

Parámetro Descripción Valor Editable


en
modali-
dad
online
Preajuste Valor preestablecido 0...9999. El valor predeterminado es 9.999. Sí1

Periodo del temporizador = Preajuste x Base de tiempo

Retardo del temporizador = Preajuste x Base de tiempo

Este valor preestablecido configurado puede leerse, probarse y


modificarse con el objeto asociado %TMi.P.

Comentario Comentario Se puede asociar un comentario con este objeto. No


1 El temporizador se restablece de forma inmediata en 0 después de cualquier cambio en el valor del parámetro en modalidad online.

Objetos
El bloque de funciones Timer contiene los objetos siguientes:

Objeto Descripción Valor

%TMi.P Valor Consulte la descripción en la tabla Parámetros anterior.


preestablecido

%TMi.V Valor actual Palabra que aumenta de 0 al valor preestablecido %TMi.P


cuando el temporizador está en funcionamiento. El programa
puede leer y comprobar el valor, pero no escribir en él.

Su valor puede modificarse en una tabla de animación.

%TMi.Q Salida Timer Consulte la descripción en la tabla Salidas anterior.

TON: Temporizador de retardo de conexión


Introducción
Utilice el temporizador de tipo TON (On-Delay Timer) para controlar las acciones
de retardo de conexión. Este retardo se puede programar mediante el software.

114 EIO0000003292.03
Objetos de software

Casos especiales
La tabla siguiente incluye una lista de casos especiales para programar el bloque
de funciones de temporizador:

Caso especial Descripción

Efecto de un reinicio en frío (%S0% Fuerza el valor a 0. Establece el %TMi.Q de salida en 0. El


=1) valor preestablecido se restablece al valor definido durante
la configuración.

Efecto de un reinicio en caliente (% No tiene ningún efecto en el valor del temporizador ni en su


S1=1) valor preestablecido. El valor del temporizador no cambia
durante un corte de alimentación.
Efecto de una detención del La detención del controlador no inmoviliza el valor.
controlador
Efecto de un salto del programa Un salto sobre el bloque del temporizador no inmoviliza el
temporizador. El temporizador continúa aumentando hasta
que alcanza el valor preestablecido (%TMi.P). En este
punto, el bit de Done (%TMi.Q) asignado a la salida Q del
bloque del temporizador cambia de estado. Sin embargo, la
salida asociada conectada directamente a la salida del
bloque no se activa y el autómata no la explora.

Comprobación por bit %TMi.Q (bit Permite probar el bit %TMi.Q una sola vez en el programa.
Done)

Efecto de modificar el preajuste % El efecto de modificar el valor predefinido mediante una


TMi.P instrucción o ajustando el valor con una tabla de animación
depende de la configuración del parámetro Preajuste
dinámico. Consulte la sección Parámetro Preajuste
dinámico para obtener más información.

Diagrama de tiempos
En este diagrama se muestra el funcionamiento del tipo TON Timer.

(1) El Timer comienza en el flanco ascendente de la entrada IN.


(2) El valor %TMi.V aumenta de 0 a %TMi.P en incrementos de 1 unidad para
cada pulso del parámetro de la base de tiempo TB.
(3) El bit de salida %TMi.Q se define en 1 cuando el valor ha alcanzado el valor
preestablecido %TMi.P.
(4) El bit de salida %TMi.Q permanece en 1 mientras que la entrada IN está en 1.
(5) Si se detecta un flanco descendente en la entrada IN, se detiene el Timer,
incluso si el Timer no ha alcanzado %TMi.P,el valor %TMi.V se define en 0.

EIO0000003292.03 115
Objetos de software

Diagrama de tiempos con la casilla Retentivo seleccionada


En este diagrama se muestra el funcionamiento del temporizador (Timer) de tipo
TON si se ha seleccionado la casilla Retentivo.

(1) El Timer comienza en el flanco ascendente de la entrada IN.


(2) El valor %TMi.V aumenta de 0 a %TMi.P en incrementos de 1 unidad para
cada pulso del parámetro de la base de tiempo TB.
(3) En el flanco descendente de la entrada IN, el Timer se detiene y permanece
sin cambios a la espera del siguiente flanco ascendente de la entrada IN.
(4) En el flanco ascendente de la entrada IN, el Timer vuelve a comenzar a partir
del valor en el que se detuvo.
(5) El bit de salida %TMi.Q se define en 1 cuando el valor alcanza el valor
preestablecido %TMi.P.
(6) Cuando se detecta un flanco descendente en la entrada IN, si el Timer ha
alcanzado el valor preestablecido %TMi.P, el valor %TMi.V se establece en 0.

116 EIO0000003292.03
Objetos de software

Diagrama de tiempo con la casilla de verificación de preajuste dinámico


seleccionada
Este diagrama ilustra el funcionamiento del Timer tipo TON si se ha seleccionado
la casilla de verificación Preajuste dinámico.
(1) (2) (3)(4)(5) (6) (7) (8) (9) (10)

IN

80
TMi.P

30

TMi.V

Q
t

(1) El Timer comienza en el flanco ascendente de la entrada IN.


(2) El valor %TMi.P se cambia a 80. Dado que %TMi.V es menor que el nuevo
valor %TMi.P, el valor de bit de salida %TMi.Q no se modifica y %TMi.V sigue
aumentando con cada pulso del parámetro Time BaseTB
(3) El bit de salida %TMi.Q se define en 1 cuando %TMi.V alcanza el nuevo valor
preestablecido %TMi.P.
(4) El bit de salida %TMI.Q permanece en 1 mientras que la entrada IN está en 1.
(5) El Timer se detiene en un flanco descendente de la entrada IN. %TMi.V se
establece en 0.
(6) El Timer comienza en el flanco ascendente de la entrada IN.
(7) El valor %TMi.P se cambia a 30. El nuevo valor %TMi.P se tendrá en cuenta
en la próxima actualización del valor del parámetro Time Base. Debido a que %
TMi.V es mayor que el nuevo valor %TMi.P, el bit de salida %TMi.Q se define en
1.
(8) Cuando se detecta un flanco descendente en la entrada IN, el Timer se
detiene. %TMi.V se establece en 0.
(9) El Timer comienza en el flanco ascendente de la entrada IN.
(10) Si se detecta un flanco descendente en la entrada IN, el Timer se detiene,
incluso si no se ha alcanzado el valor %TMi.P. El valor %TMi.V se establece en
0.

EIO0000003292.03 117
Objetos de software

Diagrama de tiempo con las casillas de verificación de preajuste dinámico


y retentivo seleccionadas
Este diagrama ilustra el funcionamiento del Timer tipo TON cuando si se han
seleccionado las casillas de verificación Preajuste dinámico y Retentivo.
(1) (2) (3)(4)(5) (6) (7) (8) (9) (10) (11)

IN

80
TMi.P
30

TMi.V

Q
t

(1) El Timer comienza en el flanco ascendente de la entrada IN.


(2) El valor %TMi.P se cambia a 80. Dado que %TMi.V es menor que el nuevo
valor %TMi.P, el valor %TMi.Q no se modifica y %TMi.V sigue aumentando con
cada pulso del parámetro Time Base TB.
(3) El bit de salida %TMi.Q se define en 1 cuando %TMi.V alcanza el nuevo valor
preestablecido %TMi.P.
(4) El bit de salida %TMI.Q permanece en 1 mientras que la entrada IN
permanece en 1.
(5) El Timer se detiene en un flanco descendente de la entrada IN. %TMi.V se
establece en 0.
(6) El Timer comienza en el flanco ascendente de la entrada IN.
(7) El valor %TMi.P se cambia a 30. El nuevo valor %TMi.P se tendrá en cuenta
en la próxima actualización del valor del parámetro Time Base. Debido a que %
TMi.V es mayor que el nuevo valor %TMi.P, el bit de salida %TMi.Q se define en
1.
(8) Cuando se detecta un flanco descendente en la entrada IN, el Timer se
detiene. %TMi.V se establece en 0.
(9) El Timer comienza en el flanco ascendente de la entrada IN.
(10) Cuando se detecta un flanco descendente en la entrada IN, el Timer se
detiene. %TMi.V no se modifica a medida cuando se habilita el parámetro
Retentive.
(11) Si %TMi.P está establecido en un valor inferior a %TMi.V cuando el
temporizador está deshabilitado (es decir, la entrada IN está establecida en 0), el
valor %TMi.V se establece en 0.

TOF: Temporizador de retardo en la desconexión


Introducción
Utilice el tipo TOF (Off-Delay Timer) de Timer para controlar las acciones de
retardo de desconexión. Este retardo se puede programar mediante el software.

118 EIO0000003292.03
Objetos de software

Diagrama de tiempos
En este diagrama se muestra el funcionamiento del tipo TOF Timer.

(1) En un flanco ascendente de la entrada IN, %TMi.Q se establece en 1.


(2) El Timer se inicia en el flanco descendente de la entrada IN.
(3) El valor %TMi.V aumenta hasta el valor preestablecido %TMi.P en
incrementos de 1 unidad por cada pulso del parámetro de la base de tiempo TB.
(4) El bit de salida %TMi.Q se restablece en 0 cuando el valor alcanza el valor
preestablecido %TMi.P.
(5) En un flanco ascendente de la entrada IN, %TMi.V se establece en 0.
(6) En un flanco ascendente de la entrada IN, %TMi.V se establece en 0, aunque
no se alcance el valor preestablecido.

Diagrama de tiempos con la casilla Retentivo seleccionada


En este diagrama se muestra el funcionamiento del temporizador (Timer) de tipo
TOF si se ha seleccionado la casilla Retentivo.

(1) En un flanco ascendente de la entrada IN, %TMi.Q se establece en 1.


(2) El Timer se inicia en el flanco descendente de la entrada IN.
(3) El valor %TMi.V aumenta hasta el valor preestablecido %TMi.P en
incrementos de 1 unidad por cada pulso del parámetro de la base de tiempo TB
(4) En un flanco ascendente de la entrada IN, el temporizador se detiene y
permanece sin cambios a la espera del siguiente flanco descendente de la
entrada IN.
(5) El bit de salida %TMi.Q se restablece en 0 cuando el valor alcanza el valor
preestablecido %TMi.P
(6) En un flanco ascendente de la entrada IN, %TMi.V se establece en 0 y %TMi.
Q se establece en 1.

EIO0000003292.03 119
Objetos de software

Diagrama de tiempo con la casilla de verificación de preajuste dinámico


seleccionada
Este diagrama ilustra el funcionamiento del Timer tipo TOF si se ha seleccionado
la casilla de verificación Preajuste dinámico.
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

IN

80
TMi.P

30

TMi.V

Q
t

(1) En un flanco ascendente de la entrada IN, %TMi.Q se establece en 1.


(2) El Timer se inicia en el flanco descendente de la entrada IN.
(3) El valor %TMi.P se cambia a 80. Dado que %TMi.V es menor que el nuevo
valor %TMi.P, el valor de bit de salida %TMi.Q no se modifica y %TMi.V sigue
aumentando con cada pulso del parámetro Time BaseTB
(4) El bit de salida %TMi.Q se restablece en 0 cuando %TMi.V alcanza el valor
preestablecido %TMi.P.
(5) En un flanco ascendente de la entrada IN, %TMi.V se establece en 0.
(6) El Timer se inicia en el flanco descendente de la entrada IN.
(7) El valor %TMi.P se cambia a 30. El nuevo valor %TMi.P se tendrá en cuenta
en la próxima actualización del valor del parámetro Time Base. El nuevo valor %
TMi.P se tendrá en cuenta en la próxima actualización del valor del parámetro
Time Base. Debido a que %TMi.V es mayor que el nuevo valor %TMi.P, el bit de
salida %TMi.Q se restablece en 0.
(8) En un flanco ascendente de la entrada IN, %TMi.V se establece en 0.
(9) El Timer se inicia en el flanco descendente de la entrada IN.
(10) En un flanco ascendente de la entrada IN, %TMi.V se establece en 0,
aunque no se haya alcanzado el valor preestablecido %TMi.P.

120 EIO0000003292.03
Objetos de software

Diagrama de tiempo con las casillas de verificación de preajuste dinámico


y retentivo seleccionadas
Este diagrama ilustra el funcionamiento del Timer tipo TOF cuando se han
seleccionado las casillas de verificación Preajuste dinámico y Retentivo.
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)

IN

80
TMi.P
30

TMi.V

Q
t

(1) En un flanco ascendente de la entrada IN, %TMi.Q se establece en 1.


(2) El temporizador se inicia en un flanco descendente de la entrada IN.
(3) El valor %TMi.P se cambia a 80. Dado que %TMi.V es menor que el nuevo
valor %TMi.P, el valor de bit de salida %TMi.Q no se modifica y %TMi.V sigue
aumentando con cada pulso del parámetro Time BaseTB
(4) El bit de salida %TMi.Q se restablece en 0 cuando el valor %TMi.V alcanza el
nuevo valor preestablecido %TMi.P.
(5) Al detectar un flanco ascendente de la entrada IN, %TMi.V se establece en 0.
(6) El Timer se inicia en el flanco descendente de la entrada IN.
(7) El valor %TMi.P se cambia a 30. El nuevo valor %TMi.P se tendrá en cuenta
en la próxima actualización del valor del parámetro Time Base. Debido a que %
TMi.V es mayor que el nuevo valor %TMi.P, el bit de salida %TMi.Q se
restablece en 0.
(8) Al detectar un flanco ascendente de la entrada IN, %TMi.V se establece en 0.
(9) El Timer se inicia en el flanco descendente de la entrada IN.
(10) En un flanco ascendente de la entrada IN, se detiene el Timer. %TMi.V no se
modifica a medida cuando se habilita el parámetro Retentive.
(11) Si %TMi.P se establece en un valor inferior a %TMi.V cuando el
temporizador está deshabilitado (es decir, la entrada IN se establece en 1) %TMi.
V se restablece en 0.

TP: Temporizador de pulso


Introducción
El Timer de tipo TP (temporizador de pulso) se emplea para generar pulsos de
una duración determinada. Este retardo se puede programar mediante el
software.

EIO0000003292.03 121
Objetos de software

Diagrama de tiempos
En este diagrama se muestra el funcionamiento del Timer de tipo TP.

(1) El Timer comienza en el flanco ascendente de la entrada IN. El valor actual %


TMi.V se establece en 0 si el Timer aún no se ha iniciado y %TMi.Q se establece
en 1 cuando se inicia el Timer.
(2) El valor actual %TMi.V del Timer aumenta de 0 al valor preestablecido %TMi.
P en incrementos de una unidad por pulso del parámetro de la base de tiempo
TB.
(3) El bit de salida %TMi.Q se define en 0 cuando el valor actual ha alcanzado el
valor preestablecido %TMi.P.
(4) El valor actual %TMi.V se establece en 0 cuando %TMi.V es igual a %TMi.P y
la entrada IN vuelve a ser 0.
(5) Este Timer no se puede restablecer.
(6) Cuando %TMi.V es igual a %TMi.P y la entrada IN es 0, %TMi.Q se establece
en 0.

122 EIO0000003292.03
Objetos de software

Diagrama de tiempo con la casilla de verificación de preajuste dinámico


seleccionada
Este diagrama ilustra el funcionamiento del Timer tipo TP si se ha seleccionado la
casilla de verificación Preajuste dinámico.
(1) (2) (3) (4) (5) (6) (7) (8)(9) (10)

IN

80
TMi.P

30

TMi.V

Q
t

(1) El temporizador se inicia en un flanco ascendente de la entrada IN. %TMi.V se


establece en 0 si el temporizador aún no se ha iniciado. El valor de bit de salida %
TMi.Q se establece en 1 cuando se inicia el temporizador.
(2) El valor actual %TMi.V del Timer aumenta de 0 al valor preestablecido %TMi.
P en incrementos de una unidad por pulso del parámetro Time Base TB.
(3) El valor %TMi.P se cambia a 80. Dado que %TMi.V es menor que el nuevo
valor %TMi.P, el valor %TMi.Q no se modifica y %TMi.V sigue aumentando con
cada pulso del parámetro Time Base TB.
(4) El bit de salida %TMi.Q se restablece en 0 cuando %TMi.V alcanza el valor
del parámetro preestablecido %TMi.P.
(5) El valor actual %TMi.V se establece en 0 cuando %TMi.V es igual a %TMi.P y
la entrada IN se restablece en 0.
(6) El temporizador se inicia en un flanco ascendente de la entrada IN. El valor
actual %TMi.V se establece en 0 si el temporizador aún no se ha iniciado y %
TMi.Q se establece en 1 cuando se inicia el temporizador.
(7) El valor %TMi.P se cambia a 30. El nuevo valor %TMi.P se tendrá en cuenta
en la próxima actualización del valor del parámetro Time Base. Debido a que %
TMi.V es mayor que el nuevo valor %TMi.P, el bit de salida %TMi.Q se
restablece en 0.
(8) El Timer se inicia en un flanco ascendente de la entrada IN. El valor actual %
TMi.V se establece en 0 si el temporizador aún no se ha iniciado y %TMi.Q se
establece en 1 cuando se inicia el temporizador.
(9) Este tipo de temporizador no se puede restablecer.
(10) Cuando %TMi.V es igual a %TMi.P y la entrada IN es 0, %TMi.Q se
establece en 0.

EIO0000003292.03 123
Objetos de software

Ejemplo de programación
Introducción
Los bloques de funciones Timer tienen las siguientes modalidades de
funcionamiento:
• TON (Timer On-Delay), página 114: utilizado para especificar un periodo de
tiempo entre la activación de una entrada específica y el encendido de un
sensor de salida.
• TOF (Timer Off-Delay), página 118: utilizado para especificar un periodo de
tiempo entre la no detección de una salida asociada con un sensor y el
apagado de la salida correspondiente.
• TP (Timer - Pulse), página 121: utilizado para generar un pulso de duración
determinada.
Los retardos o periodos de pulsos de Timers se pueden programar y configurar
desde el software.

Programación
Este ejemplo es un bloque de funciones Timer con instrucciones reversibles:

Escalón Instrucción reversible


0 BLK %TM0
LD %M0
IN
OUT_BLK
LD Q
ST %Q0.0
END_BLK

1 LD [%TM0.V<400]
ST %Q0.1

2 LD [%TM0.V>=400]
ST %Q0.2

En este ejemplo se muestra el mismo bloque de funciones Timer con


instrucciones no reversibles:

Escalón Instrucción no reversible


0 LD %M0
IN %TM0
1 LD %TM0.Q
ST %Q0.0

2 LD [%TM0.V<400]
ST %Q0.1

3 LD [%TM0.V>=400]
ST %Q0.2

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Contador (%C)
Uso de bloques de funciones del contador
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones Counter.

124 EIO0000003292.03
Objetos de software

Descripción
Introducción

El bloque de funciones Counter cuenta los eventos de forma progresiva y


regresiva. Estas 2 operaciones se pueden realizar de manera simultánea.

Ilustración
En esta ilustración se presenta el bloque de funciones Counter.

Entradas
El bloque de funciones Counter contiene las siguientes entradas:

Etiqueta Descripción Valor

R Restablecer entrada Establece el contador (%Ci.V) en 0 cuando la entrada de


(o instrucción) reseteado (R) se ha establecido en 1.

S Establecer entrada (o Establece el contador (%Ci.V) en el valor preestablecido


instrucción) (%Ci.P) cuando la entrada establecida (S) se ha
establecido en 1.
CU Conteo progresivo Aumenta el valor del contador (%Ci.V) en 1 en un flanco
ascendente en la entrada Conteo progresivo (CU).

CD Conteo regresivo Disminuye el valor del contador (%Ci.V) en 1 en un


flanco ascendente en la entrada Conteo regresivo (CD).

EIO0000003292.03 125
Objetos de software

Salidas
El bloque de funciones Counter contiene las siguientes salidas:

Etiqueta Descripción Valor

E Desborde de El bit asociado %Ci.E (contador vacío) se ha establecido en 1


conteo regresivo cuando el contador alcanza el valor 0. En caso de disminución
posterior, el valor del contador pasa a 9.999.

D Salida El bit asociado %Ci.D (conteo realizado) se ha establecido en


predeterminada 1 cuando %Ci.V = %Ci.P.
alcanzada
F Desborde de El bit asociado %Ci.F=1 (contador completo), cuando %Ci.V
conteo progresivo cambia de 9999 a 0 (establecido en 1 cuando %Ci.V alcanza 0
y se resetea a 0 si el Counter continúa con el conteo
progresivo).

Configuración
Parámetros
Para configurar los parámetros, siga el procedimiento de configuración de un
bloque de funciones, página 111 y lea la descripción de las modalidades de
asignación de memoria en la Guía de funcionamiento de EcoStruxure Machine
Expert - Basic.
El bloque de funciones Counter contiene los parámetros siguientes:

Parámetro Descripción Valor ¿Edita-


ble en
modali-
dad
online?
Utilizado Dirección utilizada Si está seleccionada, esta dirección se está No
utilizando actualmente en un programa.

Dirección Dirección de Un programa sólo puede contener un número No


objeto Counter limitado de objetos de contador. Consulte la
guía de programación de su controlador para
averiguar el número de contadores.

Símbolo Símbolo El símbolo asociado con este objeto. No


Consulte la EcoStruxure Machine Expert -
Basic Guía de funcionamiento, Definición y
uso de los símbolos (consulte EcoStruxure
Machine Expert - Basic, Guía de
funcionamiento) para obtener más
información.
Preajuste Valor Valores aceptados por el valor preestablecido Sí
preestablecido [0 − 9.999]. El valor predeterminado es 9.999.
Este valor configurado se puede leer, probar
y modificar utilizando el objeto asociado %Ci.
P.
Comentario Comentario Se puede asociar un comentario con este No
objeto.

126 EIO0000003292.03
Objetos de software

Objetos
El bloque de funciones Counter contiene los objetos siguientes:

Objeto Descripción Valor

%Ci.V Valor actual de Esta palabra aumenta o disminuye según las


Counter entradas (o instrucciones) CU y CD (consulte la
tabla de entradas, página 125). Solo se pueden
leer.

Puede modificarse en una tabla de animación.


%Ci.P Valor Consulte la tabla de parámetros, página 126.
preestablecido
Puede modificarse en una tabla de animación.
%Ci.E Vacío Consulte la tabla de salidas, página 126.

Puede modificarse en una tabla de animación.


%Ci.D Done Consulte la tabla de salidas, página 126.

Puede modificarse en una tabla de animación.


%Ci.F Completo Consulte la tabla de salidas, página 126.

Puede modificarse en una tabla de animación.

Operaciones
En esta tabla se describen las principales fases de las operaciones del bloque de
funciones Counter:

Operación Acción Result

Restablecer La entrada R se establece en el El valor actual %Ci.V se fuerza a 0. Las


estado 1 (o se activa la instrucción salidas %Ci.E, %Ci.D y %Ci.F están a
R). 0. La entrada de restablecimiento tiene
prioridad.

Set Si la entrada S se establece en 1 El valor actual %Ci.V toma el valor %


(o si se activa la instrucción S) y la Ci.P y la salida %Ci.D se establece en
entrada restablecida está en el 1.
estado 0 (o la instrucción R está
inactiva).

Conteo Aparece un flanco ascendente en El valor actual %Ci.V aumenta en una


la entrada de conteo progresivo CU unidad.
(o se activa la instrucción CU).

El valor actual %Ci.V es igual al El bit de salida "preajuste alcanzado" %


valor preestablecido %Ci.P. Ci.D cambia a 1.

El valor actual %Ci.V cambia de El bit de salida %Ci.F (desborde de


9999 a 0. conteo progresivo) cambia a 1.

Si el Counter continúa con el El bit de salida %Ci.F (desborde de


conteo progresivo. conteo progresivo) se restablece a 0.

Conteo regresivo Aparece un flanco ascendente en El valor actual %Ci.V disminuye en una
la entrada de conteo regresivo CD unidad.
(o se activa la instrucción CD).

El valor actual %Ci.V cambia de 0 El bit de salida %Ci.E (desborde de


a 9999. conteo regresivo) cambia a 1.

Si el Counter continúa con el El bit de salida %Ci.F (desborde de


conteo regresivo. conteo regresivo) se restablece a 0.

EIO0000003292.03 127
Objetos de software

Casos especiales
En esta tabla se muestra una lista de casos de configuración/funcionamiento
especiales para el bloque de funciones Counter:

Caso especial Descripción

Efecto de un reinicio en frío (%S0=1) o INIT • El valor actual %Ci.V se establece en 0.


• Los bits de salida %Ci.E, %Ci.D, y %Ci.F se
establecen en 0.
• El valor preestablecido se inicializa con el valor
definido durante la configuración.

Efecto de un reinicio en caliente (%S1=1) No tiene ningún efecto en el valor actual de Counter
de una detención del controlador (%Ci.V).

Efecto de modificar el preajuste %Ci.P La modificación del valor preestablecido mediante


una instrucción o ajustándolo entra en vigor cuando
la aplicación procesa el bloque (activación de una de
las entradas).

NOTA: El efecto de INIT es el mismo que %S0=1.

Ejemplo de programación
Introducción
El ejemplo siguiente muestra un contador que permite contar hasta un máximo de
5.000 elementos. Cada pulso de entrada %I0.2 (cuando el bit de memoria %M0
está establecido en 1) aumenta el bloque de funciones Counter %C8 hasta su
valor preestablecido final (bit %C8.D=1). El contador se restablece mediante la
entrada %I0.1.

Programación
Este ejemplo es un bloque de funciones Counter con instrucciones reversibles:

Escalón Instrucción reversible


0 BLK %C8
LD %I0.1
R
LD %I0.2
AND %M0
CU
END_BLK

1 LD %C8.D
ST %Q0.0

En este ejemplo se muestra el mismo bloque de funciones Counter con


instrucciones no reversibles:

Escalón Instrucción no reversible


0 LD %I0.1
R %C8
1 LD %I0.2
AND %M0
CU %C8
2 LD %C8.D
ST %Q0.0

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

128 EIO0000003292.03
Objetos de software

Configuración
Durante la configuración, deben introducirse los parámetros:
En este ejemplo, el valor Preajuste (%Ci.P): se establece en 5.000.

Ejemplo de un contador progresivo/regresivo


Esta ilustración es un ejemplo de un bloque de funciones Counter.

En este ejemplo, %M0 es la orden de aumento (%M0 = Falso) y de disminución (%


M0 = Verdadero). El contador realiza un conteo del flanco frontal de %I0.0. Si %
M0 está establecido en False, en cada flanco frontal de %I0.0, %C1.V aumenta
hasta el valor preestablecido %C1.P y el indicador Finalizado %C1.D cambia a
TRUE. La salida %C1.D establece %M0 y cambia la instrucción en orden de
disminución. En cada flanco frontal de %I0.0, %C1.V disminuirá hasta llegar a 0.
El indicador Vacío (%C1.E) se enciende y restablece %M0 (orden de incremento).

Mensaje (%MSG) e intercambio (EXCH)


Uso de los bloques de funciones del mensaje
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones Message.

Descripción general
Introducción
Un controlador lógico puede configurarse para comunicarse en el protocolo
Modbus o puede enviar o recibir mensajes en modalidad de caracteres (ASCII).
EcoStruxure Machine Expert - Basic ofrece las siguientes funciones para este tipo
de comunicaciones:
• Instrucción de Intercambio (EXCH) para transmitir/recibir mensajes.
• Bloque de funciones Message (%MSG) para controlar los intercambios de
datos.
Cuando se procesa una instrucción de Intercambio el controlador lógico utiliza el
protocolo configurado para el puerto especificado. A cada puerto de
comunicación se le puede asignar un protocolo distinto. Es posible acceder a los

EIO0000003292.03 129
Objetos de software

puertos de comunicación agregando el número de puerto a la instrucción de


Intercambio (EXCH1, EXCH2) o el bloque de funciones Message (%MSG1, %
MSG2).
Los controladores lógicos implementan mensajes Modbus TCP en la red Ethernet
utilizando la instrucción EXCH3 y el bloque de funciones %MSG3.
En esta tabla se muestra la instrucción de Intercambio y el bloque de funciones
Message que permiten acceder a los puertos de comunicación del controlador:

Puerto de comunicación Instrucción de intercambio Bloque de funciones del


mensaje

2 líneas serie EXCH1 %MSG1

EXCH2 %MSG2

1 línea serie y 1 Ethernet EXCH1 %MSG1

EXCH3 %MSG3

Instrucción de intercambio
La instrucción de Intercambio permite a un controlador lógico enviar o recibir
información dirigida a dispositivos ASCII o Modbus o procedente de ellos. El
usuario define una tabla de palabras (%MWi:L) que contiene la información de
control y los datos que se enviarán o recibirán. Consulte Configuración de la tabla
de transmisión, página 136. El intercambio de mensajes se realiza mediante la
instrucción de Intercambio.

Sintaxis
A continuación, se muestra el formato de la instrucción de Intercambio:
[EXCHx %MWi:L]
Donde: x = número de puerto; L = número total de palabras de la tabla de
palabras.
El controlador lógico debe finalizar el intercambio desde la primera instrucción de
Intercambio antes de que se pueda iniciar una segunda instrucción de
Intercambio. Se debe utilizar el bloque de funciones Message cuando se envíen
varios mensajes.

Protocolo ASCII
El protocolo ASCII proporciona al Logic Controller un protocolo de modalidad de
caracteres que permite transmitir o recibir datos mediante un dispositivo. Este
protocolo se admite mediante la instrucción de Intercambio y se controla
mediante el bloque de funciones Message.
Pueden utilizarse los tres tipos de comunicaciones siguientes con el protocolo
ASCII:
• Solo transmisión
• Transmisión/recepción
• Solo recepción

Protocolo Modbus
Si se trata de una conexión serie, el protocolo Modbus es un protocolo maestro/
esclavo que permite a un único maestro solicitar respuestas de los esclavos o
realizar acciones dependiendo de las peticiones. En Ethernet, diversos maestros
(clientes) pueden intercambiar con un esclavo (servidor). Cada esclavo debe
tener una dirección exclusiva. El maestro puede dirigirse a los esclavos

130 EIO0000003292.03
Objetos de software

individuales o iniciar un mensaje de difusión para los esclavos. Los esclavos


devuelven un mensaje (respuesta) a las peticiones que se les envían
individualmente. No se devuelven respuestas a las peticiones de difusión del
maestro.
La modalidad maestro Modbus permite al controlador enviar una petición Modbus
a un esclavo y esperar una respuesta. La modalidad maestro Modbus sólo se
admite a través de la instrucción de Intercambio. La modalidad maestro Modbus
admite Modbus ASCII y Modbus RTU.
La modalidad esclavo Modbus permite al controlador responder a las peticiones
Modbus estándar procedentes de un maestro Modbus.
Para obtener información detallada sobre el protocolo Modbus, consulte el
documento Protocolo de aplicación Modbus que está disponible en http://www.
modbus.org.

Esclavo Modbus
El protocolo Modbus admite dos capas de conexión de datos de los formatos del
modelo OSI: ASCII y RTU. Cada uno está definido mediante la implementación
de la capa física: ASCII utiliza 7 bits de datos y RTU utiliza 8 bits de datos.
Cuando se utiliza la modalidad Modbus ASCII, cada byte del mensaje se envía
como dos caracteres ASCII. La trama Modbus ASCII comienza con un carácter
inicial (':') y finaliza con dos caracteres finales (CR y LF). El carácter de final de
trama está predeterminado en 0x0A (LF). El valor de comprobación de la trama
Modbus ASCII es un complemento a dos de la trama, excluyendo los caracteres
inicial y final.
La modalidad Modbus RTU no vuelve a formatear el mensaje antes de enviarlo;
sin embargo, utiliza una modalidad de cálculo de suma de comprobación
diferente, especificado como CRC.
La capa de conexión de datos de Modbus tiene las limitaciones siguientes:
• Dirección 1-247
• Bits: 128 bits previa solicitud
• Palabras: 125 palabras de 16 bits previa solicitud

Descripción
Introducción
El bloque de funciones Message administra los intercambios de datos y
tiene tres funciones:
• Comprobación de errores de comunicación:
La comprobación de errores verifica el tamaño de cada tabla de intercambio
y la validez del intercambio en relación con la configuración.
• Coordinación de varios mensajes:
Para garantizar la coordinación cuando se envían varios mensajes, el bloque
de funciones Message proporciona la información necesaria para determinar
el momento en el que ha finalizado el mensaje anterior.
• Transmisión de mensajes prioritarios:
El Message bloque de funciones permite que la transmisión del mensaje en
curso se detenga para permitir el envío inmediato de un mensaje urgente.
La programación del bloque de funciones Message es opcional.
Cuando se detectan errores, los códigos se escriben en las palabras de sistema %
SW63, %SW64, y %SW65 para los bloques de intercambio EXCH1, EXCH2 y EXCH3,
respectivamente. Para obtener más información, consulte la Guía de
programación del controlador.

EIO0000003292.03 131
Objetos de software

Ilustración
En esta ilustración se presenta el bloque de funciones Message:

Entradas
El bloque de funciones Message contiene la siguiente entrada:

Etiqueta Descripción Valor

R Restablecer Establecer en 1 para reinicializar la comunicación:


entrada (% • La salida de Comunicación finalizada (%MSGx.D) se
MSGx.R)
establece en 1
• La salida de Error de comunicación detectado (%MSG.E) se
establece en 0
• Se establece un error en cualquier bloque de funciones
activo (%READ_VAR, %WRITE_VAR, etc.).
• Las conexiones TCP activas a otros Modicon M221 Logic
Controller están cerradas.
NOTA: En un puerto de comunicación sólo puede estar activo
un bloque de funciones Message, una instrucción EXCH o un
bloque de funciones de comunicación a la vez durante un
ciclo de tarea maestra. Si intenta utilizar varios bloques de
funciones de comunicación, MSG o instrucciones EXCH a la
vez en el mismo puerto de comunicación, los bloques de
funciones devuelven un código de error. Por consiguiente,
verifique que no hay ningún intercambio activo (%MSGx.D es
TRUE) en curso en un puerto de comunicación antes de
iniciar un bloque de funciones de comunicación, bloque de
funciones Message o instrucción EXCH. Verifique también
que el IOScanner no esté activo en el puerto de
comunicación.
NOTA: El IOScanner no actualiza las salidas del bloque de
funciones %MSG. Por consiguiente, el bit %MSG.D es
inadecuado para la función del IOScanner.

132 EIO0000003292.03
Objetos de software

Salidas
El bloque de funciones Message contiene las siguientes salidas:

Etiqueta Descripción Valor

D Comunicación Estado 1:
finalizada (% • Final de la transmisión (si hay transmisión)
MSGx.D)
• Final de la recepción (carácter final recibido)
• Error
• Restablecimiento del bloque
Estado 0: petición en curso

E Error de Estado 1:
comunicación
• Comando sin definir
detectado (%
MSGx.E) • Tabla mal configurada
• Carácter incorrecto recibido (velocidad, paridad, etc.)
• Tabla de recepción llena (no actualizada)
Estado 0: longitud del mensaje correcta, conexión establecida

En la tabla siguiente se indican los códigos de error que se


escriben en las palabras de sistema cuando se detecta un error de
comunicación.

EIO0000003292.03 133
Objetos de software

Códigos de error de comunicación


En esta tabla se describen los códigos de error que se escriben en las palabras
de sistema cuando se detecta un error de comunicación:

Palabra de Función Descripción


sistema
%SW63 Código de Código de error EXCH1:
error del
bloque 0: operación correcta
EXCH1
1: el número de bytes que se va a transmitir excede el límite (> 255)

2: tabla de envío insuficiente

3: tabla de palabras insuficiente

4: tabla de recepción desbordada

5: tiempo de inactividad transcurrido

6: envío

7: comando incorrecto en la tabla

8: puerto seleccionado no configurado/disponible

9: error de recepción: este código de error refleja una trama de


recepción incorrecta o dañada. Puede deberse a una configuración
incorrecta en los parámetros físicos (por ejemplo, paridad, bits de
datos, velocidad en baudios, etc.) o a una conexión física inestable
que causa un empeoramiento de la señal.

10: no se puede utilizar %KW si se está recibiendo

11: offset de envío mayor que la tabla de envío

12: offset de recepción mayor que la tabla de recepción

13: procesamiento EXCH detenido por el controlador

%SW64 Código de Código de error EXCH2: Consulte %SW63.


error del
bloque
EXCH2
%SW65 Código de 1-4, 6-13: Consulte %SW63. (Tenga en cuenta que el código de error
error del 5 no es válido y se sustituye por los códigos de error 109 y 122
bloque específicos de Ethernet que se describen a continuación).
EXCH3
A continuación, se indican los códigos de error específicos de
Ethernet:

101: dirección IP incorrecta

102: sin conexión TCP

103: no hay sockets disponibles (todos los canales de conexión


están ocupados).

104: no hay red.

105: no se puede alcanzar la red.

106: la red perdió la conexión durante el restablecimiento.

107: conexión cancelada por el dispositivo del mismo nivel.

108: conexión restablecida por el dispositivo del mismo nivel.

109: temporización de conexión transcurrida.

110: intento de conexión rechazado.

111: el host no funciona.

120: índice incorrecto (el dispositivo remoto no está indexado en la


tabla de configuración)

121: error del sistema (MAC, chip, IP duplicada)

122: ha finalizado el tiempo de conexión del proceso de recepción


tras el envío de los datos

123 - Inicio de Ethernet en curso.

134 EIO0000003292.03
Objetos de software

Configuración
Error detectado
Si se ha detectado un error al utilizar una instrucción de intercambio, los bits %
MSGx.D y %MSGx.E se establecen en 1, la palabra del sistema %SW63 contiene el
código de error para el puerto 1, y %SW64 contiene el código de error para el
puerto 2. Consulte el capítulo Palabras de sistema de la Guía de programación
del logic controller.

Operaciones
En esta tabla se describen las principales fases de las operaciones del bloque de
funciones Message:

Operación Acción Resultado

Restablecer La entrada R se establece en el • Se detiene la transmisión de todos


estado 1 (o se activa la instrucción los mensajes que se están
R). transmitiendo.
• La salida del error de
comunicación se restablece a 0.
• El bit de finalización se establece
en 1.
Se puede enviar un mensaje nuevo.

Comunicación La salida D se establece en el El Logic Controller está preparado para


finalizada estado 1. enviar otro mensaje. Uso del bit %MSGx.
D para evitar la pérdida de mensajes
cuando se envían varios mensajes.

Error de La salida del error de comunicación se establece en 1:


comunicación
• Debido a un error de programación de comunicaciones o a un error de
detectado transmisión de mensajes.
• Si el número de bytes definido en el bloque de datos asociado a la
instrucción de Intercambio (palabra 1, byte menos significativo) es
mayor que 128 (+80 en formato hexadecimal por FA).
• Si se detecta un error al enviar un mensaje Modbus a un dispositivo
Modbus. En este caso, debe comprobar el cableado y que el dispositivo
de destino sea compatible con la comunicación Modbus.

Casos especiales
Esta tabla contiene una lista de casos especiales para el funcionamiento de
Message:

Caso especial Descripción

Efecto de un reinicio en frío (%S0=1) o Fuerza la reinicialización de la comunicación.


INIT
Efecto de un reinicio en caliente (%S1=1) No tiene ningún efecto.

Efecto de una detención del controlador Si se está transmitiendo un mensaje, el controlador


detiene la transferencia y reinicializa las salidas %
MSGx.D y %MSGx.E.

NOTA: El efecto de INIT es el mismo que %S0=1.

EIO0000003292.03 135
Objetos de software

Limitaciones
Tenga en cuenta las siguientes limitaciones:
• La disponibilidad (para protocolo ASCII) y el tipo del puerto 2 (consulte %SW7)
solo se comprueban en el encendido o reseteado.
• La presencia (para protocolo Modbus) y configuración (RS-485) del puerto 2
se comprueban durante el encendido o restablecimiento.
• El procesamiento de cualquier mensaje en el puerto 1 se cancela
cuando EcoStruxure Machine Expert - Basic está conectado.
• Las instrucciones de Intercambio anulan los procesamientos del esclavo
Modbus activo.
• El procesamiento de las instrucciones de Intercambio no se repite en caso
de error detectado.
• La entrada de restablecimiento (R) puede utilizarse para anular el
procesamiento de recepción de la instrucción de Intercambio.
• Las instrucciones de Intercambio se configuran con un timeout en caso de
protocolo Modbus.
• Los mensajes múltiples se controlan a través de %MSGx.D

Configuración de la tabla de transmisión/recepción


El tamaño máximo de las tramas enviadas o recibidas es de:
• 250 bytes para protocolo Modbus.
• 255 bytes para protocolo ASCII.
La tabla de palabras asociada a la instrucción de Intercambio consta de las
tablas de control, transmisión y recepción:

Byte más significativo Byte menos significativo

Modbus ASCII Modbus ASCII


Tabla de control Comando Longitud (transmisión/recepción)

Offset de Reservado (0) Offset de Reservado (0)


recepción transmisión

Tabla de Byte 1 transmitido Byte 2 transmitido


transmisión
...
...
Byte n transmitido

Byte n+1 transmitido

Tabla de Byte 1 recibido Byte 2 recibido


recepción
...
...
Byte p recibido

Byte p+1 recibido

NOTA: Además de las peticiones a los esclavos individuales, el controlador


maestro Modbus puede iniciar una petición de difusión destinada a todos los
esclavos. En caso de petición de difusión, el byte Comando debe
establecerse en 00, mientras que la dirección de esclavo debe establecerse
en 0.

Tabla de control para protocolo ASCII


El byte Longitud contiene la longitud de la tabla de transmisión en bytes (255
como máximo), sobrescrita por el número de caracteres recibidos al final de la
recepción, en caso de que ésta se solicite.

136 EIO0000003292.03
Objetos de software

El byte Comando debe contener uno de los siguientes elementos:


• 0: Solo transmisión
• 1: Envío/recepción
• 2: Sólo recepción

Tabla de control para protocolo Modbus


El byte Longitud contiene la longitud de la tabla de transmisión en bytes (250
como máximo), sobrescrita por el número de caracteres recibidos al final de la
recepción, en caso de que ésta se solicite.
Este parámetro es la longitud en bytes de la tabla de transmisión. Si el parámetro
Offset de emisión es igual a 0, este parámetro será igual a la longitud de la
trama de transmisión. Si el parámetro Offset de emisión no es igual a 0, no se
transmitirá un byte de la tabla de transmisión (indicado por el valor de offset) y
este parámetro será igual a la longitud de la propia trama más 1.
El byte de comando, en caso de que se produzca una petición RTU de Modbus
(excepto para difusión), debe ser igual a 1 (Tx y Rx). Para difusión, debe ser 0.
El byte Offset de emisión contiene el rango (1 para el primer byte, 2 para el
segundo byte, etc.) dentro de la tabla de transmisión del byte que se ignorará
cuando se transmitan los bytes. Se utiliza para gestionar envíos asociados a
valores de byte/palabra en el protocolo Modbus. Por ejemplo, si este byte
contiene 3, el tercer byte se ignorará, haciendo que el cuarto byte de la tabla sea
el tercero en transmitirse.
El byte Offset de recepción contiene el rango (1 para el primer byte, 2 para el
segundo byte, etc.) dentro de la tabla de recepción que se agregará cuando se
transmita el paquete. Se utiliza para gestionar envíos asociados a valores de
byte/palabra en el protocolo Modbus. Por ejemplo, si este byte contiene 3, el
tercer byte de la tabla se rellenaría con un 0, y el tercer byte que ha recibido se
introduciría en la cuarta ubicación de la tabla.

Tablas de transmisión/recepción para protocolo ASCII


En modalidad de sólo transmisión, las tablas de control y transmisión de tipo %
MW se rellenan antes de ejecutar la instrucción de intercambio (EXCH). En la
modalidad de sólo transmisión no se requiere espacio para la recepción de
caracteres. Una vez que se han enviado todos los bytes, %MSGx.D se establece
en 1 y se puede ejecutar una nueva instrucción de intercambio (EXCH).
En la modalidad de transmisión/recepción, las tablas de control y de transmisión
se completan antes de ejecutar la instrucción de intercambio (EXCH), y deben
ser de tipo %MW. Se requiere espacio para un máximo de 256 bytes de recepción
al final de la tabla de transmisión. Cuando se han transmitido todos los bytes, el
controlador lógico cambia a la modalidad de recepción y está preparado para
recibir bytes.
En la modalidad de sólo recepción, la tabla de control se rellena antes de ejecutar
la instrucción de intercambio y debe ser del tipo %MW. Se requiere espacio para
un máximo de 256 bytes de recepción al final de la tabla de control. El controlador
lógico pasa inmediatamente a la modalidad de recepción y está preparado para
recibir bytes.
La recepción finaliza cuando se recibe el último byte utilizado para la trama o se
llena la tabla de recepción. En este caso, aparece un código de error detectado
(tabla de recepción desbordada) en las palabras de sistema %SW63 y %SW64. Si
se configura un timeout diferente de cero, la recepción finaliza cuando termina el
timeout. Si se selecciona un timeout de valor cero, no habrá ningún timeout de
recepción. Por consiguiente, para detener la recepción, la entrada %MSGx.R
deberá estar activada.

EIO0000003292.03 137
Objetos de software

Tablas de transmisión/recepción para protocolo Modbus


Al utilizar cualquiera de las dos modalidades (Modbus ASCII o Modbus RTU), la
tabla de transmisión se completa con la petición antes de ejecutar la instrucción
de intercambio (EXCH). En el momento de la ejecución, el controlador lógico
determina cuál es la capa de conexión de datos y realiza las conversiones
necesarias para procesar la transmisión y la respuesta. Los caracteres de inicio,
fin y comprobación no se almacenan en las tablas de transmisión/recepción.
Cuando se han transmitido todos los bytes, el controlador lógico cambia a la
modalidad de recepción y está preparado para recibir bytes.
La recepción finaliza de una de las formas siguientes:
• Se detecta un timeout en un carácter o en una trama.
• Los caracteres de fin de trama se reciben en modalidad ASCII.
• La tabla de recepción está llena.
Las entradas x del byte transmitido contienen los datos del protocolo Modbus
(codificación RTU) que se van a transmitir. Si el puerto de comunicación está
configurado para Modbus ASCII, los caracteres de trama correctos se agregan a
la transmisión. El primer byte contiene la dirección del dispositivo (específica o de
difusión), el segundo byte contiene el código de función y el resto contiene
información asociada a ese código de función.
NOTA: Se trata de una aplicación típica, pero que no define todas las
posibilidades. No se realizará ninguna validación de los datos que se estén
transmitiendo.
Las entradas x de los bytes recibidos contienen los datos del protocolo Modbus
(codificación RTU) que se van a recibir. Si el puerto de comunicación está
configurado para Modbus ASCII, los caracteres de trama correctos se eliminan de
la respuesta. El primer byte contiene la dirección del dispositivo, el segundo byte
contiene el código de función (o código de respuesta) y el resto contiene
información asociada a ese código de función.
NOTA: Se trata de una aplicación típica, pero que no define todas las
posibilidades. No se realizará ninguna validación de los datos que se estén
recibiendo, salvo para la verificación de la suma de comprobación.

Ejemplo de programación
Introducción
A continuación se muestran ejemplos de programación de un bloque de funciones
Message.

Programación de una transmisión de varios mensajes sucesivos


La ejecución de la instrucción Intercambio activa un bloque de funciones
Message en el programa de aplicación. El mensaje se transmite si el bloque de
funciones Message todavía no está activo (%MSGx.D = 1). Si se envían varios
mensajes en el mismo ciclo, sólo el primer mensaje se transmite utilizando el
mismo puerto.

138 EIO0000003292.03
Objetos de software

Ejemplo de transmisión de dos mensajes sucesivos en el puerto 1:

Escalón Instrucción reversible Comentario


0 LD %M142 Escribe en un esclavo, en la dirección 1:
[%MW2:=16#0106] valor 7 en el registro 4.
[%MW3:=0]
[%MW4:=16#0106] [%MW2:=16#0106]: Código de comando:
[%MW5:=4] 01 hex, longitud de transmisión: 06 hex
[%MW6:=7]
[%MW3:=0]: Sin compensación de
recepción o transmisión

[%MW4:=16#0106]: Dirección del


esclavo: 01 hex, código de función: 06 hex
(escribir un solo registro)

[%MW5:=4]: Dirección de registro

[%MW6:=7]: Valor que se va a escribir

1 LD %MSG1.D %MSG2.D: detecta si el puerto está


AND %M0 ocupado o no y gestiona la coordinación
[EXCH1 %MW2:8] de múltiples mensajes en consecuencia.
R %M0
2 LDR %I0.0 –
AND %MSG1.D
[EXCH1 %MW2:8]
S %M0

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Programación de un intercambio de reinicialización


Un intercambio se cancela activando la entrada (o instrucción) R. Esta entrada
inicializa la comunicación y restablece la salida %MSGx.E a 0 y la salida %MSGx.D
a 1. Permite reinicializar un intercambio si se detecta un error.
Ejemplo de reinicialización de un intercambio:

Escalón Instrucción reversible Comentario


0 BLK %MSG1 –
LD %M0
R
END_BLK

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Ejemplos ASCII
Escritura en aplicación
Ejemplo de aplicación ASCII:

Escalón Instrucción Comentario


0 LD 1 [%MW10:=16#0104]: Código de comando: 01 hex,
[%MW10:=16#0104] longitud de transmisión: 04 hex
[%MW11:=16#0000]
[%MW12:=16#4F4B] [%MW11:=16#0000]: 0000: Nulo

1 LD 1 [%MW12:=16#4F4B]: Correcto
AND %MSG2.D
NOTA: La tabla tiene 8 elementos.
[EXCH2 %MW10:8]

2 LD %MSG2.E
ST %Q0.0
END

EIO0000003292.03 139
Objetos de software

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.
Use EcoStruxure Machine Expert - Basic para crear un programa con tres
escalones:
• En primer lugar, inicialice las tablas de control y de transmisión que va a
utilizar para la instrucción de Intercambio. En este ejemplo se configura un
comando para enviar y recibir datos. La cantidad de datos a enviar se
establece en 4 bytes, como se define en la aplicación, seguido por el carácter
de fin de trama definido en la configuración. Los caracteres de inicio y fin no
se visualizan en una tabla de animación, pues solo se muestran caracteres
de datos. En cualquier caso, cuando se utilizan, estos caracteres se
transmiten automáticamente o se verifican en la recepción (con %SW63 y %
SW64).
NOTA: Los caracteres de fin definidos en la configuración se envían
automáticamente al final de la trama. Por ejemplo, si ha configurado el
primer carácter de fin en 10 y el segundo carácter de fin en 13, 16#0A0D
(códigos ASCII, 0A = LF y 0D = CR) se envía al final de la trama.
• A continuación, compruebe el bit de estado asociado a %MSG2 y envíe la
instrucción EXCH2, sólo si el puerto está preparado. Se especifica un valor de
ocho palabras para la instrucción EXCH2. Existen dos palabras de control (%
MW10 y %MW11), dos palabras que se usarán para transmitir información (%
MW12 y %MW13) y cuatro palabras para recibir datos (de %MW14 a %MW17).
• Finalmente, se comprueba el estado de error detectado del %MSG2 y se
almacena en el primer bit de salida en la E/S del controlador base local.
También se podría añadir una comprobación de errores adicional mediante %
SW64 para una mayor precisión.

Inicialización de la tabla de animación


Ejemplo de inicialización de una tabla de animación en la modalidad online:

Dirección Valor Formato


%MW10 0104 Hexadecimal
%MW11 0000 Hexadecimal
%MW12 4F4B Hexadecimal
%MW13 0A0D Hexadecimal
%MW14 AL ASCII
%MW15 OH ASCII
%MW16 A ASCII

Para visualizar los posibles formatos, haga clic con el botón derecho en la casilla
Valores de la tabla de animación.
El último paso consiste en descargar la aplicación al controlador y ejecutarla.
Inicialice una tabla de animación para animar y visualizar las palabras de %MW10 a
%MW16. Esta información se intercambia con el controlador lógico y se visualiza
en una tabla de animación.

140 EIO0000003292.03
Objetos de software

Peticiones y ejemplos estándar de Modbus


Maestro Modbus: lectura de N bits
En esta tabla se representan las peticiones 01 y 02 (01 para el bit de memoria o
salida; 02 para el bit de entrada):

Tabla Byte más significativo Byte menos significativo

Índice
Tabla de control 0 01 (transmisión/recepción) 06 (longitud de transmisión)(1)

1 03 (offset de recepción) 00 (offset de transmisión)

Tabla de transmisión 2 Esclavo en (de 1 a 247) 01 ó 02 (código de petición)

3 Dirección del primer bit que se leerá en el esclavo

4 N1 = Número de bits que se van a leer

Tabla de recepción 5 Esclavo en (de 1 a 247) 01 ó 02 (código de respuesta)


(después de la
respuesta) 6 00 (byte añadido por la acción N2
offset de recepción)
= Número de bytes de datos que se van a leer

= [1+(N1-1)/8],

donde el resultado es la parte entera de la


división.
7 Valor del primer bit (valor 00 o 01) Valor del segundo bit (si N2>1) expandido a
expandido a un byte un byte

8 Valor del tercer bit (si N1>1) –


expandido a un byte

... ... ...


(N2/2)+6 (si N2 es par) Valor del bitN 2º
(si N1>1) –
expandido a un byte
(N2/2+1)+6 (si N2 es
impar)

(1) Este byte también recibe la longitud de la cadena transmitida tras la respuesta.

EIO0000003292.03 141
Objetos de software

Maestro Modbus: lectura de N palabras


En esta tabla se representan las peticiones 03 y 04 (03 para la palabra de
memoria o salida; 04 para la palabra de entrada):

Tabla Byte más significativo Byte menos significativo

Índice
Tabla de control 0 01 (transmisión/recepción) 06 (longitud de transmisión)(1)

1 03 (offset de recepción) 00 (offset de transmisión)

Tabla de transmisión 2 Esclavo en (de 1 a 247) 03 ó 04 (código de petición)

3 Dirección de la primera palabra que se va a leer

4 N = Número de palabras que se van a leer

Tabla de recepción (después 5 Esclavo en (de 1 a 247) 03 ó 04 (código de respuesta)


de la respuesta)
6 00 (byte añadido por la acción offset de 2*N (número de bytes leídos)
recepción)

7 Primera palabra leída

8 Segunda palabra leída (si N>1)

... ...
N+6 Palabra N leída (si N>2)

(1) Este byte también recibe la longitud de la cadena transmitida tras la respuesta.

NOTA: El offset de recepción de 3 agrega un byte (valor = 0) en la tercera


posición de la tabla de recepción. Esto permite un buen posicionamiento en
esta tabla del número de bytes leídos y de los valores de las palabras leídas.

Maestro Modbus: escritura de un bit


En esta tabla se representa la petición 05 (escriba un solo bit: salida o memoria):

Tabla Byte más significativo Byte menos significativo

Índice
Tabla de control 0 01 (transmisión/recepción) 06 (longitud de transmisión)(1)

1 00 (offset de recepción) 00 (offset de transmisión)

Tabla de transmisión 2 Esclavo@(1...247) o 0 en caso de 05 (código de petición)


difusión
3 Valor que se va a escribir para el MSB de la palabra indexada 4; 0xFF o 0x00(2).

4 Valor de bit que se va a escribir en el esclavo (16#0000 = False y 16#FF00 = True)

Tabla de recepción (después 5 Esclavo en (de 1 a 247) 05 (código de respuesta)


de la respuesta)
6 Dirección del bit escrito
7 Valor escrito
(1) Este byte también recibe la longitud de la cadena transmitida tras la respuesta.

(2) Para asignar el valor 1 a un bit, la palabra asociada en la tabla de transmisión debe contener el valor FF00h, y 0 para asignar el valor 0
a un bit.

NOTA:
• Esta petición no necesita utilizar un offset.
• La trama de respuesta es la misma que la de esta petición (en un caso
normal).

142 EIO0000003292.03
Objetos de software

Maestro Modbus: escritura de una palabra


En esta tabla se representa la petición 06 (escriba un solo bit: salida o memoria):

Tabla Byte más significativo Byte menos significativo

Índice
Tabla de control 0 01 (transmisión/recepción) 06 (longitud de transmisión)(1)

1 00 (offset de recepción) 00 (offset de transmisión)

Tabla de transmisión 2 Esclavo@(1...247) o 0 en caso de 06 (código de petición)


difusión
3 Dirección de la palabra que se va a escribir

4 Valor de la palabra que se va a escribir

Tabla de recepción (después 5 Esclavo en (de 1 a 247) 06 (código de respuesta)


de la respuesta)
6 Dirección de la palabra escrita

7 Valor escrito
(1) Este byte también recibe la longitud de la cadena transmitida tras la respuesta.

NOTA:
• Esta petición no necesita utilizar un offset.
• La trama de respuesta es la misma que la de esta petición (en un caso
normal).

Maestro Modbus: escritura de N bits


En esta tabla se representa la petición 15 (escriba N bits: salida o memoria):

Tabla Byte más significativo Byte menos significativo

Índice
Tabla de control 0 01 (transmisión/recepción) 8 + número de bytes (transmisión)

1 00 (offset de recepción) 07 (offset de transmisión)

Tabla de transmisión 2 Esclavo@(1...247) o 0 en caso 15 (código de petición)


de difusión
3 Dirección del primer bit que se va a escribir

4 N1 = Número de bits que se van a escribir

5 00 (byte no enviado, efecto de N2


offset)
= Número de bytes de datos que se van a
escribir

= [1+(N1-1)/8],

donde el resultado es la parte entera de la


división.
6 Valor del primer byte Valor del segundo byte

7 Valor del tercer byte Valor del cuarto byte

... ... ...


(N2/2)+5 (si N2 es par) Valor del byte N2th

(N2/2+1)+5 (si N2 es
impar)

Tabla de recepción – Esclavo en (de 1 a 247) 15 (código de respuesta)


(después de la
respuesta) – Dirección del primer bit escrito

– Números de los bits escritos (= N1)

EIO0000003292.03 143
Objetos de software

NOTA: El offset de transmisión = 7 suprime el séptimo byte de la trama


enviada. Permite también una correspondencia correcta entre los valores de
las palabras en la tabla de transmisión.

Maestro Modbus: escritura de N palabras


En esta tabla se representa la petición 16:

Tabla Byte más significativo Byte menos significativo

Índice
Tabla de control 0 01 (transmisión/recepción) 8 + (2*N) (longitud de transmisión)

1 00 (offset de recepción) 07 (offset de transmisión)

Tabla de transmisión 2 Esclavo@(1...247) o 0 en caso de 16 (código de petición)


difusión
3 Dirección de la primera palabra que se va a escribir

4 N = Número de palabras que se van a escribir

5 00 (byte no enviado, efecto de offset) 2*N = Número de bytes que se van a


escribir
6 Primer valor de la palabra que se va a escribir

7 Segundo valor que se va a escribir

... ...
N+5 Valores N que se van a escribir

Tabla de recepción (después N+6 Esclavo en (de 1 a 247) 16 (código de respuesta)


de la respuesta)
N+7 Dirección de la primera palabra escrita

N+8 Número de palabras escritas (= N)

NOTA: El offset de transmisión = 7 suprime el séptimo byte de la trama


enviada. Permite también una correspondencia correcta entre los valores de
las palabras en la tabla de transmisión.

Petición Modbus: lectura de identificación de dispositivo


En esta tabla se representa la petición 43 (identificación del dispositivo de
lectura):

Escalón Instrucción Comentario


0 LD 1 [%MW800:=16#0105]: encabezado Modbus estándar
[%MW800:
=16#0105] [%MW801:=16#0000]: sin offset de transmisión y
[%MW801: recepción
=16#0000]
[%MW802: [%MW802:=16#032B]: dirección del esclavo, código de
=16#032B] función
[%MW803:
=16#0E01] [%MW803:=16#0E01]: tipo MEI, lectura de código de ID de
[%MW804: dispositivo
=16#0000]
[%MW804:=16#0000]: ID de objeto, sin utilizar

144 EIO0000003292.03
Objetos de software

Petición Modbus: diagnóstico


En esta tabla se representa la petición 8 (diagnóstico):

Escalón Instrucción Comentario


0 LD 1 [%MW1000:=16#0106]: encabezado Modbus estándar
[%MW1000:
=16#0106] [%MW1001:=16#0000]: sin offset de transmisión y
[%MW1001: recepción
=16#0000]
[%MW1002: [%MW1002:=16#0308]: dirección del esclavo, código de
=16#0308] función
[%MW1003:
=16#0000] [%MW1003:=16#0000]: Código de subfunción
[%MW1004:
=16#1234] [%MW1004:=16#1234]: Cualquier dato

La respuesta de esclavo será una copia de la petición. Esta


modalidad se denomina modalidad eco o espejo.

Ejemplo 1: Escritura de la aplicación Modbus


Programa maestro:

Escalón Instrucción Comentario


0 LD 1 [%MW0:=16#0106]: longitud de transmisión = 6
[%MW0:=16#0106]
[%MW1:=16#0300] [%MW1:=16#0300]: recepción de offset = 3, transmisión de
[%MW2:=16#0203] offset = 0
[%MW3:=16#0000]
[%MW4:=16#0004] %MW2 a %MW4: transmisión

[%MW2:=16#0203]: esclavo 2, función 3 (lectura de


palabras múltiples)

[%MW3:=16#0000]: primera dirección de palabra que se


leerá en el esclavo: a dirección 0

[%MW4:=16#0004]: número de palabras que se leerán: 4


palabras (de %MW0 a %MW3)

1 LD 1 –
AND %MSG2.D
[EXCH2 %MW0:11]

2 LD %MSG2.E –
ST %Q0.0
END

Programa del esclavo:

Escalón Instrucción Comentario


0 LD 1 –
[%MW0:=16#6566]
[%MW1:=16#6768]
[%MW2:=16#6970]
[%MW3:=16#7172]
END

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.
Con ayuda de EcoStruxure Machine Expert - Basic, cree un programa de
aplicación para el maestro y el esclavo. Para el esclavo, escriba algunas palabras
de memoria para un conjunto de valores conocidos. En el maestro, se inicializa la
tabla de palabras de la instrucción de Intercambio para leer cuatro palabras del
esclavo en la dirección Modbus 2 que comienza en la ubicación %MW0.

EIO0000003292.03 145
Objetos de software

NOTA: Observe el uso del offset de recepción establecido en %MW1 del


maestro Modbus. El offset de 3 añadirá un byte (valor = 0) en la tercera
posición del área de recepción de la tabla. De este modo, las palabras se
alinean en el maestro, de forma que se mantengan correctamente dentro de
los límites de palabras. Sin este offset, cada palabra de datos se dividiría en
dos palabras en el bloque de Intercambio. Este offset se utiliza por
comodidad.
Antes de ejecutar la instrucción EXCH2, la aplicación comprueba el bit de
comunicación asociado a %MSG2. Finalmente, se detecta el estado de error del %
MSG2 y se almacena en el primer bit de salida en la E/S del controlador base
local. También se podría añadir una verificación de errores adicional mediante %
SW64 para una mayor precisión.
Inicialización de la tabla de animación en la modalidad online correspondiente a la
parte de la tabla de recepción:

Dirección Valor Formato


%MW5 0203 Hexadecimal
%MW6 0008 Hexadecimal
%MW7 6566 Hexadecimal
%MW8 6768 Hexadecimal
%MW9 6970 Hexadecimal
%MW10 7172 Hexadecimal

Después de descargar y configurar los controladores lógicos para que se


ejecuten, abra una tabla de animación en el maestro. Examine la sección de
respuesta de la tabla para comprobar que el código de respuesta sea 3 y
asegurarse de que se haya leído el número de bytes correcto. En este ejemplo,
las palabras leídas del esclavo (comenzando por %MW7) están alineadas
correctamente con los límites de palabras del maestro.

Ejemplo 2: Escritura de la aplicación Modbus


Programa maestro:

Es- Instrucción Comentario


calón
0 LD 1 [%MW0:=16#010C]: longitud de la tabla de transmisión: 0C hex
[%MW0: = 12 dec, de %MW2 a %MW7
=16#010C]
[%MW1: [%MW1:=16#0007]
=16#0007]
[%MW2: [%MW2:=16#0210]: dirección del esclavo 2, escritura de
=16#0210] palabras con el código funcional 10h
[%MW3:
=16#0010] [%MW3:=16#0010]: de la dirección 16 en el esclavo
[%MW4:
=16#0002] [%MW4:=16#0002]: escritura de 2 palabras
[%MW5:
=16#0004] [%MW5:=16#0004]: número de bytes que se van a escribir
[%MW6:
[%MW6:=16#6566]: valor de la primera palabra
=16#6566]
[%MW7: [%MW7:=16#6768]: valor de la segunda palabra
=16#6768]

1 LD 1 –
AND %MSG2.D
[EXCH2 %
MW0:12]

2 LD %MSG2.E –
ST %Q0.0
END

146 EIO0000003292.03
Objetos de software

Programa del esclavo:

Es- Instrucción Comentario


calón
0 LD 1 –
[%MW18:
=16#FFFF]
END

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.
Con ayuda de EcoStruxure Machine Expert - Basic, cree un programa de
aplicación para el maestro y el esclavo. Para el esclavo, escriba una única
palabra de memoria %MW18. De este modo, se asignará espacio en el esclavo
para las direcciones de memoria de %MW0 a %MW18. Sin asignar el espacio, la
petición Modbus intentaría escribir en ubicaciones que no existen en el esclavo.
En el maestro, se inicializa la tabla de palabras de la instrucción EXCH2 para leer
cuatro bytes en el esclavo en la dirección Modbus 2 en la dirección %MW16 (10
hexadecimal).
NOTA: Observe el uso del offset de transmisión establecido en %MW1 de la
aplicación del maestro Modbus. El offset de 7 suprimirá el byte alto en la sexta
palabra (el valor 00 hexadecimal en %MW5). De esta forma, se alinean los
valores de datos en la tabla de transmisión de la tabla de palabras, de modo
que se mantengan correctamente dentro de los límites de palabras.
Antes de ejecutar la instrucción EXCH2, la aplicación comprueba el bit de
comunicación asociado a %MSG2. Finalmente, se detecta el estado de error del %
MSG2 y se almacena en el primer bit de salida en la E/S del controlador base
local. También se podría añadir una verificación de errores detectados adicional
mediante %SW64 para una mayor precisión.
Inicialización de la tabla de animación en el maestro:

Dirección Valor Formato


%MW0 010C Hexadecimal
%MW1 0007 Hexadecimal
%MW2 0210 Hexadecimal
%MW3 0010 Hexadecimal
%MW4 0002 Hexadecimal
%MW5 0004 Hexadecimal
%MW6 6566 Hexadecimal
%MW7 6768 Hexadecimal
%MW8 0210 Hexadecimal
%MW9 0010 Hexadecimal
%MW10 0004 Hexadecimal

Inicialización de la tabla de animación en el esclavo:

Dirección Valor Formato


%MW16 6566 Hexadecimal
%MW17 6768 Hexadecimal

Después de descargar y configurar todos los controladores lógicos para que se


ejecuten, abra una tabla de animación en el controlador esclavo. Los dos valores
de %MW16 y %MW17 se escriben en el esclavo.
En el maestro, se puede utilizar una tabla de animación para examinar la parte de
la tabla de recepción de los datos de intercambio. Estos datos indican la dirección
del esclavo, el código de respuesta, la primera palabra escrita y el número de
palabras escritas comenzando por %MW8 en el ejemplo anterior.

EIO0000003292.03 147
Objetos de software

Registro LIFO/FIFO (%R)


Uso de bloques de funciones del registro LIFO/FIFO
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones LIFO/FIFO Register.

Descripción
Introducción

Un bloque de funciones LIFO/FIFO Register es un bloque de memoria que


puede almacenar hasta 16 palabras de 16 bits cada una de dos modos distintos:
• Cola (First In, First Out), conocida como FIFO.
• Pila (Last In, First Out), conocida como LIFO.

Ilustración
En esta ilustración se muestra el bloque de funciones LIFO/FIFO Register.

Entradas
El bloque de funciones LIFO/FIFO Register contiene las siguientes entradas:

Etiqueta Descripción Valor

R Restablecer En el estado 1, inicializa el LIFO/FIFO Register.


entrada (o
instrucción)

I Entrada (o Con cada flanco ascendente almacena el contenido de la palabra


instrucción) de asociada %Ri.I en el LIFO/FIFO Register.
almacenamiento
O Entrada (o Con cada flanco ascendente, carga una palabra de datos del
instrucción) de LIFO/FIFO Register en la palabra asociada %Ri.O.
recuperación

148 EIO0000003292.03
Objetos de software

Salidas
El bloque de funciones LIFO/FIFO Register contiene las siguientes salidas:

Etiqueta Descripción Valor

E Salida vacía (% El bit asociado %Ri.E indica que el LIFO/FIFO Register está
Ri.E) vacío. El valor de %Ri.E puede probarse, por ejemplo, en una
tabla de animación o con una instrucción.
F Salida llena (% El bit asociado %Ri.F indica que el LIFO/FIFO Register está
Ri.F) lleno. El valor de %Ri.F puede probarse, por ejemplo, en una
tabla de animación o con una instrucción.

Configuración
Parámetros
Para configurar los parámetros, siga el procedimiento de configuración de un
bloque de funciones, página 111 y lea la descripción de las modalidades de
asignación de memoria en la Guía de funcionamiento de EcoStruxure Machine
Expert - Basic.
El bloque de funciones LIFO/FIFO Register contiene los parámetros siguientes:

Parámetro Descripción Valor Editable


en
modalidad
en línea
Utilizado Dirección utilizada Si está seleccionada, esta dirección se está utilizando actualmente No
en un programa.

Dirección Dirección de objeto LIFO/FIFO Un programa puede contener sólo un número limitado de objetos No
Register LIFO/FIFO Register. Consulte la guía de programación de la
plataforma de hardware para saber cuál es el número máximo de
registros.

Símbolo Símbolo El símbolo asociado con este objeto. Consulte la EcoStruxure No


Machine Expert - Basic Guía de funcionamiento, Definición y uso de
los símbolos (consulte EcoStruxure Machine Expert - Basic, Guía
de funcionamiento) para obtener más información.

Tipo Tipo LIFO/FIFO Register FIFO (cola) o LIFO (pila). Sí

Comentario Comentario Se puede asociar un comentario con este objeto. No

Objetos
El bloque de funciones LIFO/FIFO Register contiene los objetos siguientes:

Objeto Descripción Valor

%Ri.I LIFO/FIFO Register Se puede leer, verificar y escribir.


palabra de entrada
Puede modificarse en una tabla de animación.
%Ri.O LIFO/FIFO Register Se puede leer, verificar y escribir.
palabra de salida
Puede modificarse en una tabla de animación.
%Ri.E Salida vacía Consulte la tabla anterior Salidas.
%Ri.F Salida llena Consulte la tabla anterior Salidas.

EIO0000003292.03 149
Objetos de software

Casos especiales
En esta tabla hay una lista de casos especiales para programar el bloque de
funciones LIFO/FIFO Register:

Caso especial Descripción

Efecto de un reinicio en frío (%S0=1) o INIT Inicializa el contenido de LIFO/FIFO Register. El bit
de salida %Ri.E asociado a la salida E se establece
en 1.
Efecto de un reinicio en caliente (%S1=1) o No tiene ningún efecto en el valor actual de LIFO/
una detención del controlador FIFO Register ni en el estado de sus bits de salida.

Flanco ascendente detectado en %Ri.O y % Si se detecta un flanco ascendente sobre ambos %Ri.
Ri.I O y %Ri.I en la misma llamada de bloque de
funciones LIFO/FIFO Register, los valores no se
almacenan ni recuperan; el programa debe gestionar
el almacenamiento o la recuperación de los valores.

NOTA: El efecto de INIT es el mismo que %S0=1.

150 EIO0000003292.03
Objetos de software

Operación de registro LIFO


Introducción
En la operación LIFO (Last In, First Out), el último elemento de datos introducido
es el primero que se recupera.

Operación
En esta tabla se describe el funcionamiento de LIFO:

Etapa Descripción Ejemplo

1 Almacenamiento: Almacenamiento del contenido de %Ri.I en la parte


superior de la pila.
Cuando se recibe una petición de almacenamiento (flanco ascendente
en la entrada I o activación de la instrucción I), el contenido de la
palabra de entrada %Ri.I se almacena en la parte superior de la pila.
Cuando la pila está llena (salida F=1), no es posible continuar el
almacenamiento.

2 Recuperación: Recuperación de la palabra de datos superior en la


pila.
Cuando se recibe una petición de recuperación (flanco ascendente en
la entrada

O o activación de la instrucción O), la palabra de datos superior (la


última palabra introducida) se carga en la palabra %Ri.O. Cuando el
LIFO/FIFO Register está vacío (salida E=1), no es posible continuar la
recuperación. La palabra de salida %Ri.O no se modifica y conserva su
valor.

3 Resetear: –

La pila se puede restablecer en cualquier momento (estado 1 en la


entrada R o activación de la instrucción R). La pila está vacía después
de un reseteado (%Ri.E =1).

EIO0000003292.03 151
Objetos de software

Operación de registro FIFO


Introducción
En la operación FIFO (First In, First Out), el primer elemento de datos introducido
es el primero que se recupera.

Operación
En esta tabla se describe el funcionamiento de FIFO:

Etapa Descripción Ejemplo

1 Almacenamiento: Almacenamiento del contenido de %Ri.I en la parte


superior de la pila.
Cuando se recibe una petición de almacenamiento (flanco ascendente
en la entrada I o activación de la instrucción I), el contenido de la
palabra de entrada %Ri.I se almacena en la parte superior de la cola.
Cuando la cola está llena (salida F=1), no es posible continuar el
almacenamiento.

2 Recuperación: Recuperación del primer elemento de datos que


luego se carga en %Ri.O.
Cuando se recibe una petición de recuperación (flanco ascendente en
la entrada O o activación de la instrucción O), la palabra de datos
inferior de la cola se carga en la palabra de salida %Ri.O y el contenido
de LIFO/FIFO Register se desplaza una posición hacia abajo en la cola.

Cuando el LIFO/FIFO Register está vacío (salida E=1), no es posible


continuar la recuperación. La palabra de salida %Ri.O no se modifica y
conserva su valor.

3 Resetear: –

La cola se puede restablecer en cualquier momento (estado 1 en la


entrada R o activación de la instrucción R). La cola está vacía después
de un reseteado (%Ri.E=1).

152 EIO0000003292.03
Objetos de software

Ejemplo de programación
Introducción
El siguiente ejemplo de programación muestra el contenido de una palabra de
memoria (%MW34) que se carga en un LIFO/FIFO Register (%R2.I) al recibir una
petición de almacenamiento (%I0.2) si LIFO/FIFO Register %R2 no está
completo (%R2.F = 0). La petición de almacenamiento en el LIFO/FIFO Register
se realiza mediante %M1. La petición de recuperación se confirma mediante la
entrada %I0.3, y %R2.O se carga en %MW20 si el registro no está vacío (%R2.E =
0).

Programación
Este ejemplo es un bloque de funciones LIFO/FIFO Register con instrucciones
reversibles:

Escalón Instrucción reversible


0 BLK %R2
LD %M1
I
LD %I0.3
ANDN %R2.E
O
END_BLK

1 LD %I0.3
[%MW20:=%R2.O]

2 LD %I0.2
ANDN %R2.F
[%R2.I:=%MW34]
ST %M1

En este ejemplo se muestra el mismo bloque de funciones LIFO/FIFO Register


con instrucciones no reversibles:

Escalón Instrucción no reversible


0 LD %M1
I %R2
1 LD %I0.3
ANDN %R2.E
O %R2
2 LD %I0.3
[%MW20:=%R2.O]

3 LD %I0.2
ANDN %R2.F
[%R2.I:=%MW34]
ST %M1

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Drums (%DR)
Uso de los bloques de funciones de Drum
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones Drum.

EIO0000003292.03 153
Objetos de software

Descripción
Introducción

El bloque de funciones Drum funciona según un principio similar a un


secuenciador Drum electromecánico, que cambia el paso según los eventos
externos. En cada paso, el punto superior de una leva proporciona un comando,
que es ejecutado por el controlador. En el caso de un bloque de funciones Drum,
estos puntos superiores se simbolizan mediante el estado 1 para cada paso y se
asignan a bits de salida %Qi.j o a bits de memoria %Mi.

Ilustración
En esta figura se muestra el bloque de funciones Drum en modalidad offline.

Pasos Muestra el número total de pasos configurados en el Asistente Drum.


Paso Aparece en la modalidad offline cuando se crea un bloque. En la modalidad
online, muestra el número de paso actual.

Entradas
El bloque de funciones Drum contiene las siguientes entradas:

Etique- Descripción Valor


ta
R Para volver al paso 0 En el estado 1, ajusta el Drum al paso 0.
(o instrucción)

U Entrada (o En un flanco ascendente, hace que el Drum avance un paso y


instrucción) de actualiza los bits de control.
avance

Salidas
El bloque de funciones Drum contiene la siguiente salida:

Etique- Descripción Valor


ta
F Salida (%DRi.F) Indica que el paso actual equivale al último paso definido. Se
puede probar el bit asociado %DRi.F.

154 EIO0000003292.03
Objetos de software

Configuración
Parámetros
Para configurar los parámetros, siga el procedimiento de configuración de un
bloque de funciones, página 111 y lea la descripción de las modalidades de
asignación de memoria en la Guía de funcionamiento de EcoStruxure Machine
Expert - Basic.
El bloque de funciones Drum contiene los parámetros siguientes:

Parámetro Descripción Valor ¿Editable


en
modalidad
online?
Utilizado Dirección utilizada Si está seleccionada, esta dirección se No
está utilizando actualmente en un
programa.

Dirección Dirección de objeto Un programa puede contener sólo un No


Drum número limitado de objetos Drum.
Consulte la Guía de programación de su
controlador para determinar el número
máximo de objetos Drum.

Símbolo Símbolo El símbolo asociado con este objeto. No


Consulte la EcoStruxure Machine Expert
- Basic Guía de funcionamiento,
Definición y uso de los símbolos
(consulte EcoStruxure Machine Expert -
Basic, Guía de funcionamiento) para
obtener más información.
Configuración Asistente Drum Haga clic para mostrar el Asistente Sí (todos
Drum, página 156. los
parámetros
de la
ventana
Asistente
Drum)

Comentario Comentario Se puede asociar un comentario con No


este objeto.

Objetos
El bloque de funciones Drum contiene el siguiente objeto:

Objeto Descripción Valor

%DRi.S Número del paso 0<=%DRi.S<=7. Palabra que se puede leer y escribir.
actual El valor escrito debe ser un valor inmediato decimal.
Cuando se escribe, el efecto se produce en la
siguiente ejecución del bloque de funciones.

Se puede modificar en una tabla de animación o en la


modalidad online.
%DRi.F Completo Consulte la tabla de salidas, página 154.

Operación
El bloque de funciones Drum consta de:
• Una matriz de datos constantes (las levas) organizada en 8 pasos (de 0 a 7)
y 16 bits (estado del paso) organizada en columnas numeradas de 0 a 15.
• Una lista de bits de control está asociada con una salida configurada (%Qi.j)
o una palabra de memoria (%Mi). En el transcurso del paso actual, los bits de
control adquieren los estados binarios definidos para este paso.

EIO0000003292.03 155
Objetos de software

Asistente Drum
Utilice el Asistente Drum para configurar el bloque de funciones Drum.
Configure el Número de pasos: De 1 a 8 y las salidas o bits de memoria
asociados a cada paso: Bit0 ... Bit15 y, a continuación, haga clic en Aceptar.

NOTA: La configuración también se puede llevar a cabo mediante bits de


memoria (%Mi).

Casos especiales
Esta tabla contiene una lista de casos especiales para el funcionamiento de
Drum:

Caso especial Descripción

Efectos de un reinicio en Restablece el Drum en el paso 0 (actualización de los bits de


frío (%S0=1) control).

Efecto de un reinicio en Actualiza los bits de control después del paso actual.
caliente (%S1=1)

Efecto de un salto del El hecho de que el Drum ya no se explore significa que los bits de
programa control conservan su estado más reciente.

Actualización de los bits de Solo ocurre cuando se produce un cambio de paso o un reinicio en
control frío o en caliente.

Ejemplo de programación
Introducción
A continuación se muestra un ejemplo de programación de un Drum que está
configurado de modo que ninguno de los controles está establecido en el paso 0 y
los controles están establecidos para los pasos 1 a 6 de las salidas %Q0.0 a %
Q0.5 respectivamente (consulte la Configuración, página 159).

156 EIO0000003292.03
Objetos de software

Las primeras 6 salidas de %Q0.0 a %Q0.5 se activan sucesivamente cada vez


que la entrada %I0.1 se establece en 1. Cuando el valor de la entrada %I0.0 es
alto, los siguientes valores se restablecen a 0:
• Salida de Drum F (%DRi.F = 0)
• Número del paso actual (%DRi.S = 0)

Programación
Este ejemplo es un programa de bloque de funciones Drum:

Escalón Instrucción
0 BLK %DR1
LD %I0.0
R
LD %I0.1
U
OUT_BLK
LD F
ST %Q0.7
END_BLK

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

EIO0000003292.03 157
Objetos de software

Diagrama de tiempos
En este diagrama se muestra el funcionamiento de Drum:

(1) En un flanco ascendente en la entrada U, se aumenta el paso actual.


(2) Cuando se actualiza el paso actual, se actualizan las salidas.
(3) Cuando se alcanza el último paso, la salida F se establece en 1.
(4) Cuando el último paso está activo, un flanco ascendente en la entrada U
restablece el paso actual a 0.
(5) El valor actual %DR0.R = 1 (flanco ascendente) se establece en 0
(6) El usuario escribe el valor del número de paso: %DR0.S = 4
(7) El valor escrito por el usuario se actualiza en el siguiente tiempo de ejecución.

158 EIO0000003292.03
Objetos de software

Configuración
Durante la configuración se define la siguiente información:
• Número de pasos: 6
• Estados de salida (bits de control) para cada paso de Drum:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Paso 0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Paso 1: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Paso 2: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
Paso 3: 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
Paso 4: 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
Paso 5: 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0

• Asignación de los bits de control:


En esta tabla se muestran las salidas asociadas de los bits de control:

Bit Salida asociada


0 Salida no asociada
1 %Q0.1

2 %Q0.2

3 %Q0.3

4 %Q0.4

5 %Q0.5

Registro de bits de desplazamiento (%SBR)


Uso de los bloques de funciones del registro de bits de
desplazamiento
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones Shift Bit Register.

Descripción
Introducción

El bloque de funciones Shift Bit Register proporciona un desplazamiento de


bits de datos binarios hacia la izquierda o la derecha (0 o 1).

EIO0000003292.03 159
Objetos de software

Ilustración
En esta ilustración se muestra el bloque de funciones Shift Bit Register:

El valor del Shift Bit Register se muestra en el centro del bloque de funciones:
• Valor decimal, por ejemplo, 7
• Valor binario, por ejemplo, 111
• Valor hexadecimal, por ejemplo, 16#7

Entradas
El bloque de funciones Shift Bit Register contiene las siguientes entradas:

Etiqueta Descripción Valor

R Restablecer entrada (o Cuando el parámetro de función R es 1, los bits de


instrucción) registro de 0 a 15 %SBRi.j se establecen en 0.

CU Desplazar hacia la entrada En un flanco ascendente, desplaza un bit de registro


(o instrucción) izquierda hacia la izquierda.

CD Desplazar hacia la entrada En un flanco ascendente, desplaza un bit de registro


(o instrucción) derecha hacia la derecha.

Configuración
Parámetros
Para configurar los parámetros, siga el procedimiento de configuración de un
bloque de funciones, página 111 y lea la descripción de las modalidades de
asignación de memoria en la Guía de funcionamiento de EcoStruxure Machine
Expert - Basic.
El bloque de funciones Shift Bit Register contiene los siguientes parámetros:

Parámetro Descripción Valor

Utilizado Dirección utilizada Si está seleccionada, esta dirección se está utilizando


actualmente en un programa.

Dirección Shift Bit Register Un programa solo puede contener un número limitado
dirección del objeto de objetos de Shift Bit Register. Consulte la guía de
programación de la plataforma de hardware para
saber cuál es el número máximo de registros.

Símbolo Símbolo El símbolo asociado con este objeto. Consulte la


EcoStruxure Machine Expert - Basic Guía de
funcionamiento, Definición y uso de los símbolos
(consulte EcoStruxure Machine Expert - Basic, Guía
de funcionamiento) para obtener más información.

Comentario Comentario Se puede asociar un comentario con este objeto.

160 EIO0000003292.03
Objetos de software

Objetos
El bloque de funciones Shift Bit Register contiene los siguientes objetos:

Objeto Descripción Valor

%SBRi Número de registro De 0 a 7

Puede modificarse en una tabla de animación.


%SBRi.j Bit de registro Los bits 0 a 15 (j = 0 a 15) del registro de
desplazamiento pueden probarse mediante una
instrucción de prueba y escribirse usando una
instrucción de asignación.

Operación
En la siguiente ilustración se muestra un modelo de bit antes y después de una
operación de desplazamiento:

Esto también es aplicable para una petición de desplazamiento de un bit a la


derecha (bit 15 a bit 0) mediante la instrucción CD. El bit 0 se pierde.
Si un registro de 16 bits no es adecuado, se puede utilizar el programa para
mostrar en cascada diversos registros.

Casos especiales
En esta tabla hay una lista de casos especiales para programar el bloque de
funciones Shift Bit Register:

Caso especial Descripción

Efecto de un reinicio en frío (%S0=1) Establece todos los bits de la palabra de


registro en 0.

Efecto de un reinicio en caliente (%S1=1) No tiene efecto sobre los bits de la palabra de
registro.

Ejemplo de programación
Introducción
El bloque de funciones Shift Bit Register proporciona un desplazamiento a la
izquierda o a la derecha de bits de datos binarios (0 o 1).

Programación
En este ejemplo, un bit se desplaza hacia la izquierda cada segundo mientras que
el bit 0 asume el estado al bit 15.

EIO0000003292.03 161
Objetos de software

En instrucciones reversibles:

Escalón Instrucción reversible


0 BLK %SBR0
LD %S6
CU
END_BLK

1 LD %SBR0.15
ST %SBR0.0

En instrucciones no reversibles:

Escalón Instrucción no reversible


0 LD %S6
CU %SBR0
1 LD %SBR0.15
ST %SBR0.0

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Contador de pasos (%SC)


Uso de los bloques de funciones del contador de pasos
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones Step Counter.

Descripción
Introducción

Un bloque de funciones Step Counter permite realizar una serie de pasos a


los que se pueden asignar acciones. El desplazamiento de un paso a otro
depende de eventos internos o externos. Cada vez que un paso esté activo, el bit
asociado (el bit de Step Counter %SCi.j) se establece en 1. Solo se puede activar
un paso de un Step Counter cada vez.

Ilustración
Esta ilustración corresponde a un bloque de funciones Step Counter:

162 EIO0000003292.03
Objetos de software

Entradas
El bloque de funciones Step Counter contiene las siguientes entradas:

Etiqueta Descripción Valor

R Restablecer entrada (o Cuando el parámetro de la función R es 1, se restablece


instrucción) el Step Counter.

CU Aumentar entrada (o En un flanco ascendente, aumenta un paso el Step


instrucción) Counter.

CD Disminuir entrada (o En un flanco ascendente, disminuye un paso el Step


instrucción) Counter.

Configuración
Parámetros
Para configurar los parámetros, siga el procedimiento de configuración de un
bloque de funciones, página 111 y lea la descripción de las modalidades de
asignación de memoria en la Guía de funcionamiento de EcoStruxure Machine
Expert - Basic.
El bloque de funciones Step Counter contiene los parámetros siguientes:

Parámetro Descripción Valor

Utilizado Dirección utilizada Si está seleccionada, esta dirección se está utilizando


actualmente en un programa.

Dirección Dirección de objeto Un programa puede contener solamente un número


Step Counter limitado de objetos Step Counter. Consulte la guía de
programación de la plataforma de hardware para saber
cuál es el número máximo de Step Counter.

Símbolo Símbolo El símbolo asociado con este objeto. Consulte la Guía


de funcionamiento de EcoStruxure Machine Expert -
Basic, Definición y uso de símbolos para obtener
información detallada.
Comentario Comentario Se puede asociar un comentario con este objeto.

Objetos
El bloque de funciones Step Counter contiene el siguiente objeto:

Objeto Descripción Valor

%SCi.j Bit de Step Counter Los bits de Step Counter 0 a 255 (j = de 0 a 255) se
pueden verificar mediante una operación lógica de
carga y se pueden escribir mediante una instrucción de
asignación.

Puede modificarse en una tabla de animación.

Caso especial
Esta tabla contiene una lista de casos especiales de funcionamiento del bloque
de funciones Step Counter:

Caso especial Descripción

Efecto de un reinicio en frío (%S0=1) Inicializa el Step Counter.

Efecto de un reinicio en caliente (%S1=1) No tiene ningún efecto sobre el Step Counter.

EIO0000003292.03 163
Objetos de software

Ejemplo de programación
Introducción
En este ejemplo se muestra un bloque de funciones Step Counter.
• El Step Counter 0 se reduce mediante la entrada %I0.1.
• El Step Counter 0 se aumenta mediante la entrada %I0.2.
• El Step Counter 0 se restablece a 0 mediante la entrada %I0.3 o cuando
llega al paso 3.
• El paso 0 controla la salida %Q0.1, el paso 1 controla la salida %Q0.2 y el
paso 2 controla la salida %Q0.3.

Programación
Este ejemplo es un bloque de funciones Step Counter con instrucciones
reversibles:

Escalón Instrucción reversible


0 BLK %SC0
LD %SC0.3
OR %I0.3
R
LD %I0.2
CU
LD %I0.1
CD
END_BLK

1 LD %SC0.0
ST %Q0.1

2 LD %SC0.1
ST %Q0.2

3 LD %SC0.2
ST %Q0.3

En este ejemplo se muestra un bloque de funciones Step Counter con


instrucciones no reversibles:

Escalón Instrucción no reversible


0 LD %SC0.3
OR %I0.3
R %SC0
1 LD %I0.2
CU %SC0
2 LD %I0.1
CD %SC0
3 LD %SC0.0
ST %Q0.1

4 LD %SC0.1
ST %Q0.2

5 LD %SC0.2
ST %Q0.3

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

164 EIO0000003292.03
Objetos de software

Diagrama de tiempos
En este diagrama se muestra el funcionamiento del bloque de funciones Step
Counter:

(1) El paso 0 está activo, por lo que %SC0.0 se establece en 1.


(2) En el flanco ascendente de la entrada CU, el paso se incrementa y se
actualizan las salidas
(3) El paso se incrementa y se actualizan las salidas
(4) El paso 3 está activo, de modo que la entrada Reset está activa después de
un ciclo.
(5) Cuando Reset está activo, el paso actual se establece en 0 y la entrada de
restablecimiento se establece en 0 tras un ciclo
(6) El paso actual se incrementa en el flanco ascendente de la entrada CU.
(7) En el flanco ascendente de la entrada de CD, el paso se reduce y se
actualizan las salidas.

Fechadores (%SCH)
Uso de los fechadores
En esta sección se proporcionan descripciones y directrices de programación
para utilizar Schedule blocks.

Descripción
Introducción
Los fechadores se utilizan para controlar las acciones en un mes, día u hora
predefinidos.
Los fechadores sólo se configuran en EcoStruxure Machine Expert - Basic; no se
pueden insertar en un escalón de programa del mismo modo que otros bloques
de funciones.

EIO0000003292.03 165
Objetos de software

NOTA: Compruebe el bit del sistema %S51 y la palabra del sistema %SW118
para confirmar que la opción Reloj de tiempo real (RTC) esté instalada. La
opción RTC también es necesaria para utilizar Schedule blocks.
Los fechadores pueden configurarse:
• En la ventana Propiedades de los fechadores (ficha Herramientas >
Fechadores).
• Usando objetos dedicados %SCHi.xxx, página 166.

Configuración de propiedades de fechadores


Para configurar un fechador, lea la descripción de las Modalidades de asignación
de memoria (consulte EcoStruxure Machine Expert - Basic, Guía de
funcionamiento).
Los Schedule blocks presentan las siguientes funciones:

Parámetro Descripción Valor

Utilizado Dirección utilizada Si está seleccionada, esta dirección se está utilizando


actualmente en un programa.

Dirección Dirección de objeto Schedule blocks Un programa puede contener sólo un número limitado de
objetos Schedule blocks. Consulte la guía de la plataforma de
hardware para saber cuál es el número máximo de Schedule
blocks.
Configurado Indica si el número de Schedule blocks Si se selecciona la casilla de verificación, está configurado
seleccionado está configurado para ser utilizado. para ser utilizado. De lo contrario, no se utiliza.

Bit de salida Bit de salida El Schedule blocks activa la asignación de salida: %Mi o %Qj.
k.

Esta salida se establece en 1 cuando la fecha y la hora


actuales están entre el ajuste del inicio del periodo activo y el
ajuste del final del periodo activo.

Día de inicio Día del mes de inicio de los Schedule blocks. De 1 a 31


Mes de inicio Mes de inicio de los Schedule blocks. Schedule blocks.

Día de finalización Día del mes de finalización de los Schedule De 1 a 31


blocks.
Mes de finalización Mes de finalización de los Schedule blocks. Enero...diciembre
Hora de inicio El momento del día, las horas y los minutos para Hora: 0-23
iniciar los Schedule blocks.
Minuto: 0-59
Hora de El momento del día, las horas y los minutos para Hora: 0-23
finalización finalizar los Schedule blocks.
Minuto: 0-59
lunes Casillas de verificación que identifican el día de la Si se selecciona la casilla de verificación, está configurado
semana para activar los Schedule blocks. para ser utilizado. De lo contrario, no se utiliza.
Martes
Miércoles
Jueves
Viernes
Sábado
Domingo

Comentario Comentario Se puede asociar un comentario con este objeto.

Objetos
Estos objetos sólo están disponibles si el bloque se configura como se explicaba
anteriormente.
La aplicación debe configurarse con un nivel funcional (consulte EcoStruxure
Machine Expert - Basic, Guía de funcionamiento), como mínimo Nivel 6.0.

166 EIO0000003292.03
Objetos de software

Los objetos de los fechadores son:

Objetos Descripción

%SCHi.STARTDAY Día del mes de inicio de los Schedule blocks.

%SCHi.STARTMONTH Mes de inicio de los Schedule blocks.

%SCHi.STARTHOUR La hora de inicio de los Schedule blocks.

%SCHi.STARTMIN El minuto de inicio de los Schedule blocks.


%SCHi.ENDDAY Día del mes de finalización de los Schedule
blocks.
%SCHi.ENDMONTH Mes de finalización de los Schedule blocks.

%SCHi.ENDHOUR La hora de finalización de los Schedule blocks.


%SCHi.ENDMIN El minuto de finalización de los Schedule
blocks.
%SCHi.DOW El día de la semana para la activación de los
Schedule blocks.

La modificación de esos valores de objetos en el programa permite cambiar de


forma dinámica la configuración del fechador. La modificación se tiene en cuenta
en la siguiente exploración MAST.
Después de un reinicio en frío (%S0=1), los valores de objetos se restablecen al
valor definido durante la configuración.

Configuración de fechadores usando palabras de sistema o de memoria


También se pueden configurar fechadores usando palabras de sistema o de
memoria.

Habilitación de fechadores
Los bits de la palabra de sistema %SW114 habilitan (bit establecido en 1) o
deshabilitan (bit establecido en 0) el funcionamiento de cada uno de los 16
Schedule blocks.
Asignación de Schedule blocks en %SW114:

De forma predeterminada (o después de un reinicio en frío) los bits de esta


palabra de sistema se establecen en 1 (habilitado). El programa usa esos bits de
forma opcional.

Salida de los fechadores


Si varios fechadores asignan la misma salida (%Mi o %Qj.k), se asignará
finalmente el OR de los resultados de cada uno de los bloques a este objeto (es
posible tener varios Schedule blocks para la misma salida).
Por ejemplo, los fechadores %SCH0 y %SCH1 están ambos asignados a la salida %
Q0.0. %SCH0 establece la salida desde las 12:00 h hasta las 13:00 h el lunes y %
SCH1 establece la salida desde las 12:00 h hasta las 13:00 h el martes. Como
resultado, la salida está establecida desde las 12:00 h hasta las 13:00 h en lunes
y martes.

EIO0000003292.03 167
Objetos de software

Programación y configuración
Introducción
Los Schedule blocks se utilizan para controlar las acciones en un mes, día u hora
predefinidos.

Ejemplo de programación
En esta tabla se muestran los parámetros de ejemplo de un programa de
vaporización para un mes veraniego:

Parámetro Valor Descripción ¿Editable en


modalidad
online?
Dirección Reloj de tiempo real 6 Schedule blocks número 6 No

Configurado Casilla seleccionada Casilla seleccionada para configurar los Schedule No


blocks número 6.
Bit de salida %Q0.2 Activar salida %Q0.2 Sí

Día de inicio 21 Inicia la actividad el día 21 de junio Sí

Mes de inicio Junio Inicia la actividad en junio Sí

Hora de inicio 21 Inicia la actividad a las 21:00 Sí


Día de finalización 21 Detiene la actividad el día 21 de septiembre Sí

Mes de finalización Septiembre Detiene la actividad en septiembre Sí

Hora de finalización 22 Detiene la actividad a las 22:00 Sí


lunes Casilla seleccionada Realiza la actividad el lunes Sí
Martes Casilla no seleccionada Sin actividad Sí
Miércoles Casilla seleccionada Realiza la actividad el miércoles Sí
Jueves Casilla no seleccionada Sin actividad Sí
Viernes Casilla seleccionada Realiza la actividad el viernes Sí

Sábado Casilla no seleccionada Sin actividad Sí


Domingo Casilla no seleccionada Sin actividad Sí

Con este programa, los Schedule blocks pueden deshabilitarse mediante un


conmutador o un detector de humedad cableado en la entrada %I0.1:

Escalón Instrucción Comentario


0 LD %I0.1 En este ejemplo, se valida %SCH6.
ST %SW114:X6

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

168 EIO0000003292.03
Objetos de software

En la tabla siguiente se presenta un programa de ejemplo:

Escalón Instrucción
0 LD %M4

[ %M0:4 := 7 ]

1 LD %M0

RISING1

OPER [ %SCH0.STARTDAY := %MW0]

OPER [ %SCH0.STARTMONTH := %MW1]

OPER [ %SCH0.STARTHOUR := %MW2]

OPER [ %SCH0.STARTMIN := %MW3]

R %M0
2 LD %M1

RISING0

OPER [ %SCH0.ENDDAY := %MW4

OPER [ %SCH0.ENDMONTH := %MW5]

OPER [ %SCH0.ENDHOUR := %MW6]

OPER [ %SCH0.ENDMIN := %MW7]

R %M1
3 LD %M2

RISING2

[%SCH0.DOW := %MW8]

Diagrama de tiempos
Este diagrama de tiempos muestra la activación de la salida %Q0.2:

EIO0000003292.03 169
Objetos de software

Reloj de tiempo real (%RTC)


Uso de bloques de funciones de RTC
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones RTC.
NOTA: La aplicación debe estar configurada con un nivel funcional (véase
EcoStruxure Machine Expert - Basic, Guía de funcionamiento) como mínimo
del Nivel 5.0 para utilizar los bloques de funciones de RTC.

Descripción
Introducción

El bloque de funciones de RTC permite leer y escribir en el Reloj en tiempo


real (RTC) de M221 Logic Controller.

Ilustración
En esta ilustración se muestra el bloque de funciones de RTC.

170 EIO0000003292.03
Objetos de software

Entradas
El bloque de funciones RTC contiene las siguientes entradas:

Etiqueta Objeto Valor

Enable - Habilita el bloque de funciones cuando se detecta un flanco ascendente


de esta entrada.

En el estado 1, los valores de entrada RD y WR se leen de forma


continuada para determinar la acción que se debe llevar a cabo.

En el estado 0, el bloque de funciones se deshabilita y se restablecen las


salidas.
RD - Una combinación de los valores de las dos entradas determina la acción
se que se va a llevar a cabo:
WR -
• RD = 0 y WR = 0. Ninguna acción.
Las salidas Done y Error se establecen en 0.
• RD = 1 y WR = 0. Se lee el valor de RTC.
Si se realiza correctamente, la salida Done se establece en 1 y la
salida Error se establece en 0.
Los objetos de entrada se actualizan de forma continuada con los
valores leídos del RTC. Utilice una tabla de animación (consulte
EcoStruxure Machine Expert - Basic, Guía de funcionamiento) para
mostrar los valores de los objetos.
• RD = 0 y WR = 1. Cuando se detecta el flanco ascendente de WR,
se actualiza el RTC utilizando los valores de objeto especificados en
los parámetros de RTC asociados con este bloque de funciones
(véase a continuación).
Si la actualización se realiza correctamente, la salida de Done se
establece en 1 y la salida de Error se establece en 0. El RTC se
actualiza.
Si no se realiza correctamente, la salida de Done se establece en 0
y la salida de Error se establece en 1.
• RD = 1 y WR = 1. No compatible.
La salida de Done se establece en 0, la salida de Error se establece
en 1 y la salida de ErrorId, página 172 se establece en 256 (lectura y
escritura simultáneas).

Day %RTCi.DAY Día

Valor predeterminado: 12

De 1 a 31
Month %RTCi.MONTH Mes

Valor predeterminado: 6

1-12
Year %RTCi.YEAR Año

Valor predeterminado: 2017

Igual o superior a 2000

Hours %RTCi.HOURS Horas

Valor predeterminado: 0

0-23
Minutes %RTCi.MINUTES Minutos

Valor predeterminado: 0

0-59
Seconds %RTCi.SECONDS Segundos

Valor predeterminado: 0

0-59

EIO0000003292.03 171
Objetos de software

Salidas
El bloque de funciones RTC contiene las siguientes salidas:

Etiqueta Objeto Valor

Done %RTCi.Done Se establece en 1 cuando las operaciones de lectura y


escritura del RTC se realizan correctamente.

Se establece en 0 cuando la operación de lectura o


escritura no se realiza correctamente.
Error %RTCi.Error Se establece en 1 si se produce un error durante la
ejecución. La ejecución del bloque de funciones ha
finalizado. El objeto de salida ErrorId indica la causa del
error.
DayOfWeek %RTCi. Devuelve el día de la semana, calculado a partir del
DayOfWeek valor de la semana actual.

Rango: De 0 a 7

0: Bloque de funciones aún no ejecutado

1...7: día de la semana.


ErrorId %RTCi.ErrorId Identificador del código de error.

Consulte Códigos de error, página 172 a continuación.

Códigos de error
A continuación se indican los códigos de error que se pueden devolver en el
objeto %RTCi.ErrorId cuando la salida Error se establece en 1.

Código de error Descripción

0 Sin errores
1 Error de año
2 Error de mes
3 Error de día
4 Error de semana
5 Error de hora
6 Error de minuto
7 Error de segundo

8 Error de combinación
9 Error interno de RTC
256 Lectura y escritura simultáneas

257 Actualización de RTC en curso (bit del sistema %S50 = 1)

Configuración
Presentación
Configure las propiedades del bloque de funciones RTC con los valores que se
van a utilizar para actualizar el RTC en el logic controller.
Para mostrar la página RTC propiedades, siga uno de estos pasos:
• Haga doble clic en un bloque de funciones de RTC.
• En la ficha Programación, seleccione Herramientas > Objetos de software
> RTC.

172 EIO0000003292.03
Objetos de software

RTC propiedades
Para configurar los parámetros, siga el procedimiento de configuración de un
bloque de funciones, página 111 y lea la descripción de las modalidades de
asignación de memoria en la Guía de funcionamiento de EcoStruxure Machine
Expert - Basic.
La página RTC propiedades muestra las propiedades siguientes:

Propiedad Descripción Valor ¿Editable en


modalidad
online?
Utilizado La dirección del objeto está Si está seleccionada, esta dirección se está utilizando No
en uso. actualmente en un programa.

Dirección Dirección de objeto RTC %RTCi, donde i es el número de objeto. No

Un programa puede contener sólo un número limitado de


objetos RTC. Consulte la Guía de programación de su
controlador para determinar el número máximo de
objetos RTC.

Símbolo Símbolo El símbolo asociado con este objeto. Consulte la Sí


EcoStruxure Machine Expert - Basic Guía de
funcionamiento, Definición y uso de los símbolos
(consulte EcoStruxure Machine Expert - Basic, Guía de
funcionamiento) para obtener más información.

Día Día del mes De 1 a 31 Sí


Mes Mes del año De 1 a 12 Sí
Año Año Igual o superior a 2000 Sí

Horas Hora del día 0-23 Sí


Minutos Minutos de la hora 0-59 Sí
Segundos Segundos del minuto 0-59 Sí

Comentario Comentario Se puede asociar un comentario con este objeto. Sí

PID
Función PID
Introducción
La función PID se utiliza para controlar un proceso dinámico de manera continua.
El propósito del control PID es mantener un proceso en ejecución tan cerca como
sea posible del valor de consigna deseado.
Consulte la Guía de la biblioteca de funciones avanzadas para obtener
información detallada sobre el comportamiento y funcionalidades del PID y la
implementación de la función PID:
• Modos de funcionamiento de PID
• Configuración del ajuste automático de PID
• Configuración estándar de PID
• Asistente de PID
• Programación de PID
• Parámetros de PID
◦ Rol e influencia de los parámetros de PID
◦ Método de ajuste del parámetro de PID

EIO0000003292.03 173
Objetos de software

Registro de datos
Registro de datos
Descripción del bloque de funciones
La función de registro de datos permite almacenar de manera retentiva datos de
objetos o cadenas en el archivo /user/DATALOGx.csv, donde x es el entero
correspondiente al número de instancia de registro de datos. Este archivo se
almacena en la tarjeta SD.
Si DATALOGx.csv supera el tamaño de archivo máximo definido, se le cambia el
nombre por DATALOGx.bak, y se sobrescribe cualquier archivo DATALOGx.bak
existente. Los nuevos datos de registro se almacenan en el nuevo archivo
DATALOGx.csv. El archivo DATALOGx.bak también se almacena en la tarjeta SD.
El nombre de la tarjeta SD debe ser DATA.
NOTA: La aplicación debe configurarse con un nivel funcional (consulte
EcoStruxure Machine Expert - Basic, Guía de funcionamiento) de como
mínimo Nivel 6.0 y la versión del cargador de arranque 50 o superior.
Consulte Palabra de sistema (consulte Modicon M221 Logic Controller, Guía
de programación) %SW13.

Representación gráfica

174 EIO0000003292.03
Objetos de software

Configuración del registro de datos


Paso Acción
1 En la ventana Programación, haga clic en Herramientas > Objetos de software >
Registro de datos.

2
En la columna Configuración, haga clic en .

Resultado: Aparecerá el asistente DATALOG.

3 Escriba el Tamaño máximo de archivo.

El Tamaño máximo de archivo puede ser de 1 a 500. El valor predeterminado es 100.

4 Seleccione Datos históricos o Registro de eventos.

La función Datos históricos permite almacenar varios datos de objetos. Únicamente


se permiten los objetos de EcoStruxure Machine Expert - Basic. Puede almacenar
hasta 32 objetos.

La función Registro de eventos le permite almacenar una cadena (consulte


EcoStruxure Machine Expert - Basic, Guía de funcionamiento).

5 Borre o seleccione Añadir marca de hora.

Esta función añade la hora del evento al archivo CSV.


6 Escriba el objeto en la columna Dirección.

Si ha seleccionado Registro de eventos, escriba el primer %MW de la cadena.

Si ha asignado un símbolo al objeto, se muestra en la columna Símbolo. Aquí no se


puede cambiar el símbolo.

7 Haga clic en Aplicar.

8 Para insertar el bloque de funciones en el editor del diagrama de contactos, lleve a


cabo uno de los métodos siguientes:

• Haga clic en y en .
• Arrastre y suelte desde las propiedades de Registro de datos.

Input
En la tabla siguiente se describe la entrada del bloque de funciones:

Etiqueta Tipo Descripción

EXECUTE BOOL Arranca la ejecución de bloques de funciones cuando se


detecta un flanco ascendente.

Si se detecta un segundo flanco ascendente durante la


ejecución del bloque de funciones, se ignora y el comando en
curso no se ve afectado.

Salidas
En la tabla siguiente se describen las salidas del bloque de funciones:

Etiqueta Tipo Descripción

DONE BOOL Si es TRUE, indica que la ejecución del bloque de funciones ha


finalizado correctamente y no se han detectado errores.

BUSY BOOL Si TRUE, indica que la ejecución del bloque de funciones está
en curso.
ERROR BOOL Si TRUE, indica que se ha detectado un error. Detenida la
ejecución de bloques de funciones. La salida Errorld indica el
código de error.

BAK BOOL Si es TRUE, indica que se ha creado el archivo BAK.

EIO0000003292.03 175
Objetos de software

Códigos de error
Código de error Descripción

0 Sin errores.
1 Operación en curso.

2 Error al almacenar datos en el archivo CSV.


3 Error al crear el archivo BAK.
4 Instancia de registro de datos ya usada.

10 Restaurar el tiempo de espera. Extraer la tarjeta


SD.
11 Tarjeta SD no detectada.

12 Tarjeta SD protegida contra escritura.

50 Error del sistema de archivos.


51 Error al abrir el archivo CSV.

Pasos de Grafcet
Pasos de Grafcet
Descripción general
Los objetos de paso de Grafcet (%Xi) se utilizan para identificar el estado del
paso Grafcet correspondiente i de un programa.

Parámetros
La ventana Propiedades de paso de Grafcet muestra las siguientes propiedades:

Parámetro Descripción Valor

Utilizado Dirección utilizada Si se selecciona, esta dirección está en uso en un


programa.

Dirección Dirección de objetos El número máximo de objetos de paso Grafcet que la


de paso de Grafcet aplicación puede contener es:
• 96, si el nivel funcional < 10.0.
• 200, si el nivel funcional>= 10.0.

Símbolo Símbolo El símbolo asociado con este objeto. Consulte la


EcoStruxure Machine Expert - Basic Guía de
funcionamiento, Definición y uso de los símbolos
(consulte EcoStruxure Machine Expert - Basic, Guía de
funcionamiento) para obtener más información.

Comentario Comentario Comentario asociado con este objeto.

176 EIO0000003292.03
Objetos PTO

Objetos PTO
Motion Task Table (%MT)
Uso de Motion Task Table
Esta sección contiene descripciones y directrices de programación para utilizar
las Motion Task Tables y los bloques de funciones Motion Task Table.

Descripción general
Consulte la Guía de la biblioteca de funciones avanzadas de su controlador.

Salida de tren de pulsos (%PTO)


Utilización de bloques de funciones de salida de tren de pulsos
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones Pulse Train Output.

Descripción general
Consulte la Guía de la biblioteca de funciones avanzadas de su controlador.

EIO0000003292.03 177
Objetos de accionamiento

Objetos de accionamiento
Objetos de accionamiento
Descripción general
Los objetos de accionamiento controlan las unidades ATV y otros dispositivos
configurados en el IOScanner serie Modbus. o Modbus TCP IOScanner.
Consulte la Guía de la biblioteca de funciones avanzadas de su controlador
lógico.

178 EIO0000003292.03
Objetos de comunicación

Objetos de comunicación
Introducción
Los bloques de funciones de comunicación se utilizan para la comunicación con
dispositivos Modbus y enviar/recibir mensajes en la modalidad de caracteres
(ASCII).
NOTA: En un puerto de comunicación sólo puede estar activo un bloque de
funciones de comunicación cada vez durante un ciclo de tarea maestra. Si
intenta utilizar varios bloques de funciones de comunicación o instrucciones
EXCH de manera simultánea en el mismo puerto de comunicación, los
bloques de funciones devuelven un código de error. Por lo tanto, antes de
iniciar un bloque de funciones de comunicación o una instrucción EXCH,
compruebe que no esté en proceso ningún intercambio activo (%MSGx.D es
TRUE) en un puerto de comunicación.

Leer datos desde un dispositivo remoto (%READ_VAR)


Utilizar bloques de funciones %READ_VAR
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones %READ_VAR.

Descripción
Introducción
El bloque de funciones %READ_VAR se utiliza para leer datos desde un
dispositivo remoto en Modbus SL o Modbus TCP.

Ilustración
En esta ilustración se muestra el bloque de funciones %READ_VAR:

EIO0000003292.03 179
Objetos de comunicación

Entradas
El bloque de funciones %READ_VAR contiene las siguientes entradas:

Etiqueta Tipo Valor

Ejecutar BOOL Arranca la ejecución de bloques de funciones cuando se detecte un


flanco ascendente.

Si se detecta un segundo flanco ascendente durante la ejecución del


bloque de funciones, se ignora y el comando en curso no se ve afectado.

Abort BOOL Detiene la ejecución de bloques de funciones cuando se detecte un


flanco ascendente.

La salida cancelada se establece en 1 y el objeto %READ_VARi.


CommError contiene el código 02 hex (el intercambio se detiene cuando
lo solicita un usuario).

NOTA: Configurar la salida Ejecutar o Anular para TRUE en el primer ciclo


de tarea en ejecución no se detecta como un flanco ascendente. El bloque de
funciones debe ver primero la entrada como FALSE para detectar un flanco
ascendente posterior.

Salidas
El bloque de funciones %READ_VAR contiene las siguientes salidas:

Etiqueta Tipo Valor

Termina- BOOL Si TRUE, indica que la ejecución del bloque de funciones se


do completa correctamente sin errores detectados.

Busy BOOL Si TRUE, indica que la ejecución del bloque de funciones está en
curso.
Cancela- BOOL Si TRUE, indica que la ejecución del bloque de funciones se ha
do cancelado con la entrada Anular.
Error BOOL Si TRUE, indica que se ha detectado un error. Detenida la
ejecución de bloques de funciones.

Para obtener más información sobre CommError y OperError,


consulte las tablas códigos de error de comunicación, página 181
y códigos de error de funcionamiento, página 182.

En esta tabla se describen los objetos de salida del bloque de funciones:

Objeto de Tipo Descripción


salida
CommError BYTE Para obtener información sobre %READ_VARi.CommError, consulte
la tabla Códigos de error de comunicación, página 181.

OperError DWORD Para obtener información sobre %READ_VARi.OperError, consulte


la tabla Códigos de error de funcionamiento, página 182.

180 EIO0000003292.03
Objetos de comunicación

Códigos de error de comunicación


En esta tabla se describen los códigos de error escritos en el objeto de palabra %
READ_VARi.CommError:

Name Código de Descripción


error
detectado
CommunicationOK 0 (00 hex) Intercambio correcto.

TimedOut 1 (01 hex) Intercambio detenido porque se ha agotado el


timeout.
Abort 2 (02 hex) Parada del intercambio cuando lo solicite el usuario
(entrada Anular).

BadAddress 3 (03 hex) El formato de dirección es incorrecto.

BadRemoteAddr 4 (04 hex) La dirección remota es incorrecta.

BadMgtTable 5 (05 hex) El formato de la tabla de gestión es incorrecto.

BadParameters 6 (06 hex) Los parámetros específicos son incorrectos.

ProblemSendingRq 7 (07 hex) Emisión incorrecta de la petición al destinatario.

RecvBufferNotAlloc 9 (09 hex) El tamaño de búfer de recepción es insuficiente.

SendBufferNotAlloc 10 (0A hex) El tamaño de búfer de transmisión es insuficiente.

SystemResourceMis- 11 (0B hex) Recurso del sistema no disponible.


sing

BadLength 14 (0E hex) La longitud es incorrecta.

ProtocolSpecificE- 254 Indica un error de protocolo Modbus. Para obtener


rror (FE hex) más información, consulte los códigos de error de
funcionamiento., página 182

Refused 255 (FF hex) Se rechaza el mensaje. Para obtener más


información, consulte los códigos de error de
funcionamiento., página 182.

EIO0000003292.03 181
Objetos de comunicación

códigos de error de funcionamiento


Este código de retorno es significativo cuando el código de error de comunicación
(objeto CommError) tiene el valor:
• 0 (00 hex) (correcto)
• 254 (FE hex) (código de excepción Modbus)
• 255 (FF hex) (rechazado)
En esta tabla se describen los códigos de error escritos en el objeto de palabra
doble %READ_VARi.OperError:

CommError Name Código de error detectado Descripción

0 (00 hex) OperationOK 0 (00000000 hex) Intercambio correcto.


(correcto)
NotProcessed 1 (00000001 hex) La petición no se ha procesado.

BadResponse 2 (00000002 hex) La respuesta recibida es incorrecta.

254 (FE hex) IllegalFunction 1 (00000001 hex) El código de función recibido en la petición no
(código de es una acción autorizada para el esclavo. El
excepción estado del esclavo puede ser erróneo para
Modbus) procesar una petición específica.

IllegalDataAddress 2 (00000002 hex) La dirección de datos recibida por el esclavo


no es una dirección autorizada para el
esclavo.
IllegalDataValue 3 (00000003 hex) El valor en el campo de datos de petición no
es un valor autorizado para el esclavo.

SlaveDeviceFailure 4 (00000004 hex) El esclavo no logra realizar una acción


solicitada debido a un error irrecuperable.

Acknowledge 5 (00000005 hex) El esclavo ha confirmado la petición, pero las


comunicaciones han superado el timeout
antes de que el esclavo haya finalizado.

SlaveDeviceBusy 6 (00000006 hex) El esclavo está ocupado procesando otro


comando.
MemoryParityError 8 (00000008 hex) El esclavo detecta un error de paridad en la
memoria al intentar leer la memoria ampliada.

GatewayPathUnavailable 10 (0000000A hex) La pasarela está sobrecargada o no está


configurada correctamente.

GatewayTargetDeviceFailed- 11 (0000000B hex) El esclavo no está presente en la red.


ToRespond

255 (FF hex) TargetResourceMissing 1 (00000001 hex) El recurso del sistema de destino no está
(rechazado) disponible.

BadLength 5 (00000005 hex) La longitud es incorrecta.

CommChannelErr 6 (00000006 hex) Se ha detectado un error en el canal de


comunicación.
BadAddr 7 (00000007 hex) La dirección es incorrecta.

SystemResourceMissing 11 (0000000B hex) Recurso del sistema no disponible.

TargetCommInactive 12 (0000000C hex) Hay una función de comunicación de destino


inactiva.
TargetMissing 13 (0000000D hex) No se puede establecer la comunicación con
el destino.
ChannelNotConfigured 15 (0000000F hex) Vía no configurada.

182 EIO0000003292.03
Objetos de comunicación

Configuración de funciones
Propiedades
Haga doble clic en el bloque de funciones para abrir la tabla de propiedades de la
función.
Las propiedades de este bloque de funciones no se pueden modificar en la
modalidad online.

EIO0000003292.03 183
Objetos de comunicación

El bloque de funciones %READ_VAR tiene las propiedades siguientes:

Propiedad Valor Descripción

Utilizado Casilla de verificación activada/desactivada Indica si se está utilizando la dirección.


Dirección %READ_VARi, donde i va desde 0 hasta el número i es el identificador de instancia. Para conocer el número
de objetos disponibles en este Logic Controller. máximo de instancias, consulte Número máximo de objetos
(consulte Modicon M221, Controlador lógico, Guía de
programación).

Símbolo Texto definido por el usuario El símbolo identifica este objeto de forma inequívoca. Para
obtener más información, consulte la EcoStruxure Machine
Expert - Basic Guía de funcionamiento (Definición y uso de los
símbolos) (consulte EcoStruxure Machine Expert - Basic, Guía
de funcionamiento).

Enlace • SL1: Serie 1 Selección de puerto.


• SL2: Serie 2 NOTA: SL2 y ETH1 los puertos de comunicación
• ETH1: Ethernet incorporados sólo están disponibles en algunas
referencias de los controladores.
ID Este parámetro depende de la configuración de la Identificador del dispositivo.
conexión:
Para obtener más información sobre el índice Ethernet,
• De 1 a 247 para la dirección de esclavo de consulte Adición de servidores remotos (consulte Modicon
líneas serie M221, Controlador lógico, Guía de programación).
• De 1 a 16 para el índice Ethernet

Timeout Especificado en unidades de 100 ms, con un valor El timeout establece el tiempo máximo de espera de recepción
predeterminado de 100 (10 segundos). de una respuesta.

Un valor de 0 significa que no se ha aplicado Si el timeout finaliza, el intercambio finaliza en error con un
timeout. código de error (CommError = 01 hex). Si el sistema recibe una
respuesta después de la caducidad del timeout, esta respuesta
se ignora.
NOTA: El timeout establecido en el bloque de funciones
anula el valor configurado en las pantallas de
configuración de EcoStruxure Machine Expert - Basic
(Configuración de Modbus TCP (consulte Modicon M221,
Controlador lógico, Guía de programación) y Configuración
de la línea serie (consulte Modicon M221, Controlador
lógico, Guía de programación).

ObjType El tipo de objeto que se va a leer: Los tipos de códigos de función de lectura Modbus son:
• 0 para palabras • Mbs 0x03 - Lectura de varias palabras (registro de
• 1 para entradas digitales mantenimiento)

• 2 para salidas digitales • Mbs 0x02 - Lectura de varios bits (entradas digitales)

• 3 para palabras de entrada • Mbs 0x01 - Lectura de varios bits (salidas digitales)
• Mbs 0x04 - Lectura de varias palabras (registro de
entrada)

FirstObj de 0 a 65535 Dirección del primer objeto del dispositivo remoto desde donde
se leen los valores.
Cantidad • De 1 a 125 para %MW Número de objetos que se van a leer desde el dispositivo
remoto.
• De 1 a 2000 para %I
• De 1 a 2000 para %Q o %M
• De 1 a 125 para %IW

IndexData De 0 a 7999 Dirección de la tabla de palabras local (%MW) en la que se


guardan los valores leídos.

Durante la lectura de bits (%I o %Q), los bits recuperados se


escriben en la tabla de palabras comenzando por la primera
dirección especificada. Por ejemplo, al leer 16 bits con
IndexData = 10 y Cantidad = 16, el resultado se almacena en
%MW10:X0 hasta %MW10:X15.

Comentario Texto definido por el usuario Un comentario para asociar a este objeto.

184 EIO0000003292.03
Objetos de comunicación

Objetos
El bloque de funciones %READ_VAR contiene los objetos siguientes:

Objeto Descripción Valor

%READ_VARi.LINK Selección de puerto Consulte Propiedades, página 183. Se


puede leer y escribir. Se puede modificar en
una tabla de animación.
%READ_VARi.ID Identificador del dispositivo remoto Consulte Propiedades, página 183. Se
puede leer y escribir. Se puede modificar en
una tabla de animación.
%READ_VARi.TIMEOUT Timeout del bloque de funciones Consulte Propiedades, página 183. Se
puede leer y escribir. Se puede modificar en
una tabla de animación.
%READ_VARi.OBJTYPE Tipo de objetos que se van a leer Consulte Propiedades, página 183. Se
puede leer y escribir. Se puede modificar en
una tabla de animación.
%READ_VARi.FIRSTOBJ Dirección del primer objeto del dispositivo Consulte Propiedades, página 183. Se
remoto desde donde se leen los valores. puede leer y escribir. Se puede modificar en
una tabla de animación.
%READ_VARi.QUANTITY Número de objetos que se van a leer desde Consulte Propiedades, página 183. Se
el dispositivo remoto. puede leer y escribir. Se puede modificar en
una tabla de animación.
%READ_VARi.INDEXDATA Dirección de la tabla de palabras local (% Consulte Propiedades, página 183. Se
MW) en la que se guardan los valores puede leer y escribir. Se puede modificar en
leídos. una tabla de animación.
%READ_VARi.COMMERROR Códigos de error de comunicación Consulte los códigos de error de
comunicación, página 181. Sólo lectura. Se
puede leer en una tabla de animación.

%READ_VARi.OPERERROR códigos de error de funcionamiento Consulte los códigos de error de


funcionamiento, página 182. Sólo lectura.
Se puede leer en una tabla de animación.

%READ_VARi.DONE Ejecución completada correctamente Consulte Salidas, página 180. Sólo lectura.
Se puede leer en una tabla de animación.

%READ_VARi.BUSY La ejecución está en proceso Consulte Salidas, página 180. Sólo lectura.
Se puede leer en una tabla de animación.

%READ_VARi.ABORTED La ejecución se ha cancelado Consulte Salidas, página 180. Sólo lectura.


Se puede leer en una tabla de animación.

%READ_VARi.ERROR Se ha detectado un error Consulte Salidas, página 180. Sólo lectura.


Se puede leer en una tabla de animación.

EIO0000003292.03 185
Objetos de comunicación

Ejemplo de programación
Introducción
El bloque de funciones %READ_VAR se puede configurar como se muestra en
este ejemplo de programación.

Programación
Este ejemplo es un bloque de funciones %READ_VAR:

Escalón Instrucción
0 BLK %READ_VAR0
LD %I0.0
EXECUTE
LD %I0.1
ABORT
OUT_BLK
LD DONE
ST %Q0.0
LD BUSY
ST %Q0.1
LD ABORTED
ST %M1
LD ERROR
ST %Q0.2
END_BLK

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Diagrama de tiempos
Diagramas de tiempos para bloques de funciones de comunicación, página 212.

Escritura de datos en un dispositivo Modbus (%WRITE_


VAR)
Utilizar bloques de funciones %WRITE_VAR
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones %WRITE_VAR.

Descripción
Introducción
El bloque de funciones %WRITE_VAR se utiliza para escribir datos en un
dispositivo externo utilizando el protocolo Modbus SL o Modbus TCP.

186 EIO0000003292.03
Objetos de comunicación

Ilustración
En esta ilustración se muestra el bloque de funciones %WRITE_VAR:

Entradas
El bloque de funciones %WRITE_VAR contiene las siguientes entradas:

Etiqueta Tipo Valor

Ejecutar BOOL Arranca la ejecución de bloques de funciones cuando se detecte un


flanco ascendente.

Si se detecta un segundo flanco ascendente durante la ejecución del


bloque de funciones, se ignora y el comando en curso no se ve afectado.

Abort BOOL Detiene la ejecución de bloques de funciones cuando se detecte un


flanco ascendente.

La salida cancelada se establece en 1 y el objeto %WRITE_VARi.


CommError contiene el código 02 hex (el intercambio se detiene cuando
lo solicita un usuario).

NOTA: Configurar la salida Ejecutar o Anular para TRUE en el primer ciclo


de tarea en ejecución no se detecta como un flanco ascendente. El bloque de
funciones debe ver primero la entrada como FALSE para detectar un flanco
ascendente posterior.

Salidas
El bloque de funciones %WRITE_VAR contiene las siguientes salidas:

Etiqueta Tipo Valor

Termina- BOOL Si TRUE, indica que la ejecución del bloque de funciones se


do completa correctamente sin errores detectados.

Busy BOOL Si TRUE, indica que la ejecución del bloque de funciones está en
curso.
Cancela- BOOL Si TRUE, indica que la ejecución del bloque de funciones se ha
do cancelado con la entrada Anular.
Error BOOL Si TRUE, indica que se ha detectado un error. Detenida la
ejecución de bloques de funciones.

Para obtener más información sobre CommError y OperError,


consulte las tablas códigos de error de comunicación, página 181
y códigos de error de funcionamiento, página 182.

EIO0000003292.03 187
Objetos de comunicación

En esta tabla se describen los objetos de salida del bloque de funciones:

Objeto de Tipo Descripción


salida
CommError BYTE Para obtener información sobre %READ_VARi.CommError, consulte
la tabla Códigos de error de comunicación, página 181.

OperError DWORD Para obtener información sobre %READ_VARi.OperError, consulte


la tabla Códigos de error de funcionamiento, página 182.

Códigos de error de comunicación


Consulte los códigos de error de comunicación, página 181.

Códigos de error de funcionamiento


Consulte los códigos de error de funcionamiento, página 182.

Configuración de funciones
Propiedades
Haga doble clic en el bloque de funciones para abrir la tabla de propiedades de la
función.
Las propiedades de este bloque de funciones no se pueden modificar en la
modalidad online.

188 EIO0000003292.03
Objetos de comunicación

El bloque de funciones %WRITE_VAR tiene las propiedades siguientes:

Propiedad Valor Descripción

Utilizado Casilla de verificación activada / desactivada Indica si se está utilizando la dirección.


Dirección %WRITE_VARi, donde i va desde 0 hasta el número de objetos i es el identificador de instancia. Para conocer el
disponibles en este Logic Controller. número máximo de instancias, consulte la tabla
Número Número máximo de objetos (consulte
Modicon M221, Logic Controller, Guía de
programación).

Símbolo Texto definido por el usuario El símbolo identifica este objeto de forma
inequívoca. Para obtener más información,
consulte la EcoStruxure Machine Expert - Basic
Guía de funcionamiento (Definición y uso de los
símbolos) (consulte EcoStruxure Machine Expert -
Basic, Guía de funcionamiento).

Enlace • SL1: Serie 1 Selección de puerto.


• SL2: Serie 2 NOTA: SL2 y ETH1 los puertos de
• ETH1: Ethernet comunicación incorporados sólo están
disponibles en algunas referencias de los
controladores.
ID Este parámetro depende de la configuración de la conexión: Identificador del dispositivo.
• 0 para difusión Para el valor 0, el controlador maestro Modbus
• De 1 a 247 para la dirección de esclavo de líneas serie inicia una difusión destinada a todos los esclavos
conectados. En el modo de difusión, los esclavos
• De 1 a 16 para el índice Ethernet
no responden al maestro.

Para obtener más información sobre el índice


Ethernet, consulte Adición de servidores remotos
(consulte Modicon M221, Controlador lógico, Guía
de programación).

Timeout Especificado en unidades de 100 ms, con un valor El timeout establece el tiempo máximo de espera
predeterminado de 100 (10 segundos). de recepción de una respuesta.

Un valor de 0 significa que no se ha aplicado timeout. Si el timeout finaliza, el intercambio finaliza en


error con un código de error (CommError =
01 hex). Si el sistema recibe una respuesta
después de la caducidad del timeout, esta
respuesta se ignora.
NOTA: El timeout establecido en el bloque de
funciones anula el valor configurado en las
pantallas de configuración de EcoStruxure
Machine Expert - Basic (Configuración de
Modbus TCP (consulte Modicon M221,
Controlador lógico, Guía de programación) y
Configuración de la línea serie (consulte
Modicon M221, Controlador lógico, Guía de
programación).

ObjType Se admiten los siguientes códigos de función Modbus: El tipo de objetos que se escribirá:
• 0 • Mbs 0x10 - Escritura de varias palabras
(registro)
• 2
• Mbs 0x0F - Escritura de varios bits
• 4
(salidas digitales)
• 5
• Mbs 0x05 - Escritura de un bit (salida
digital)
• Mbs 0x06 - Escritura de una palabra
(registro)
NOTA: Para utilizar los códigos de
función Modbus Single Coil (Mbs 0x05)
o Single Register (Mbs 0x06), la
aplicación debe configurarse con un
nivel funcional mínimo establecido en
5.0.
FirstObj de 0 a 65535 Dirección del primer objeto del dispositivo remoto
en el que se escriben los valores.

Cantidad • De 1 a 123 (registro interno) para %MW Número de objetos que se van a escribir en el
dispositivo remoto.
• De 1 a 1968 (bit interno) para %M o %Q
Se ignora para objetos de tipo Single Coil y Single
Register.

EIO0000003292.03 189
Objetos de comunicación

Propiedad Valor Descripción

IndexData De 0 a 7999 Dirección de la tabla de palabras local (%MW) que


contiene los valores que se van a escribir en el
dispositivo remoto. Esta tabla de palabras de
memoria (%MW) se utiliza para todos los códigos
de función admitidos.

Durante la escritura de bits (%M o %Q), los valores


que se vayan a escribir se recuperan de la tabla de
palabras comenzando por la primera dirección
especificada. Por ejemplo, al escribir 16 bits con
IndexData = 10 y Cantidad = 16, los valores se
recuperan de %MW10:X0 hasta %MW10:X15.

Comentario Texto definido por el usuario Un comentario para asociar a este objeto.

Objetos
El bloque de funciones %WRITE_VAR contiene los objetos siguientes:

Objeto Descripción Valor

%WRITE_VARi.LINK Selección de puerto Consulte Propiedades, página 188. Se


puede leer y escribir. Se puede modificar en
una tabla de animación.
%WRITE_VARi.ID Identificador del dispositivo remoto Consulte Propiedades, página 188. Se
puede leer y escribir. Se puede modificar en
una tabla de animación.
%WRITE_VARi.TIMEOUT Timeout del bloque de funciones Consulte Propiedades, página 188. Se
puede leer y escribir. Se puede modificar en
una tabla de animación.
%WRITE_VARi.OBJTYPE Tipo de objetos que se van a escribir Consulte Propiedades, página 188. Se
puede leer y escribir. Se puede modificar en
una tabla de animación.
%WRITE_VARi.FIRSTOBJ Dirección del primer objeto del dispositivo Consulte Propiedades, página 188. Se
remoto en el que se escriben los valores. puede leer y escribir. Se puede modificar en
una tabla de animación.
%WRITE_VARi.QUANTITY Número de objetos que se van a escribir en Consulte Propiedades, página 188. Se
el dispositivo remoto. puede leer y escribir. Se puede modificar en
una tabla de animación.
%WRITE_VARi.INDEXDATA Dirección de la tabla de palabras local (% Consulte Propiedades, página 188. Se
MW) que contiene los valores que se van a puede leer y escribir. Se puede modificar en
escribir en el dispositivo remoto. una tabla de animación.

%WRITE_VARi.COMMERROR Códigos de error de comunicación Consulte los códigos de error de


comunicación, página 188. Sólo lectura. Se
puede leer en una tabla de animación.

%WRITE_VARi.OPERERROR códigos de error de funcionamiento Consulte los códigos de error de


funcionamiento, página 188. Sólo lectura.
Se puede leer en una tabla de animación.

%WRITE_VARi.DONE Ejecución completada correctamente Consulte Salidas, página 187. Sólo lectura.
Se puede leer en una tabla de animación.

%WRITE_VARi.BUSY La ejecución está en proceso Consulte Salidas, página 187. Sólo lectura.
Se puede leer en una tabla de animación.

%WRITE_VARi.ABORTED La ejecución se ha cancelado Consulte Salidas, página 187. Sólo lectura.


Se puede leer en una tabla de animación.

%WRITE_VARi.ERROR Se ha detectado un error Consulte Salidas, página 187. Sólo lectura.


Se puede leer en una tabla de animación.

190 EIO0000003292.03
Objetos de comunicación

Ejemplo de programación
Introducción
El bloque de funciones %WRITE_VAR se puede configurar como se muestra en
este ejemplo de programación.

Programación
Este ejemplo es un bloque de funciones %WRITE_VAR:

Escalón Instrucción
0 BLK %WRITE_VAR0
LD %I0.0
EXECUTE
LD %I0.1
ABORT
OUT_BLK
LD DONE
ST %Q0.0
LD BUSY
ST %Q0.1
LD ABORTED
ST %M1
LD ERROR
ST %Q0.2
END_BLK

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Diagrama de tiempos
Diagramas de tiempos para bloques de funciones de comunicación, página 212.

Leer y escribir datos en un dispositivo Modbus (%WRITE_


READ_VAR)
Utilizar bloques de funciones %WRITE_READ_VAR
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones %WRITE_READ_VAR.

Descripción
Introducción
El bloque de funciones %WRITE_READ_VAR se utiliza para leer y escribir datos
guardados en la memoria de las palabras internas a un dispositivo externo
utilizando el protocolo Modbus SL o Modbus TCP.
Este bloque de funciones ejecuta una única petición de escritura seguida de una
única petición de lectura en la misma transacción.

EIO0000003292.03 191
Objetos de comunicación

Ilustración
En esta ilustración se muestra el bloque de funciones %WRITE_READ_VAR:

Entradas
El bloque de funciones %WRITE_READ_VAR contiene las siguientes entradas:

Etiqueta Tipo Valor

Ejecutar BOOL Arranca la ejecución de bloques de funciones cuando se detecte un


flanco ascendente.

Si se detecta un segundo flanco ascendente durante la ejecución del


bloque de funciones, se ignora y el comando en curso no se ve afectado.

Abort BOOL Detiene la ejecución de bloques de funciones cuando se detecte un


flanco ascendente.

La salida cancelada se establece en 1 y el objeto %WRITE_READ_


VARi.CommError contiene el código 02 hex (el intercambio se detiene
cuando lo solicita un usuario).

NOTA: Configurar la salida Ejecutar o Anular para TRUE en el primer ciclo


de tarea en ejecución no se detecta como un flanco ascendente. El bloque de
funciones debe ver primero la entrada como FALSE para detectar un flanco
ascendente posterior.

Salidas
El bloque de funciones %WRITE_READ_VAR contiene las siguientes salidas:

Etiqueta Tipo Valor

Termina- BOOL Si TRUE, indica que la ejecución del bloque de funciones se


do completa correctamente sin errores detectados.

Busy BOOL Si TRUE, indica que la ejecución del bloque de funciones está en
curso.
Cancela- BOOL Si TRUE, indica que la ejecución del bloque de funciones se ha
do cancelado con la entrada Anular.
Error BOOL Si TRUE, indica que se ha detectado un error. Detenida la
ejecución de bloques de funciones.

Para obtener más información sobre CommError y OperError,


consulte las tablas códigos de error de comunicación, página 181
y códigos de error de funcionamiento, página 182.

192 EIO0000003292.03
Objetos de comunicación

En esta tabla se describen los objetos de salida del bloque de funciones:

Objeto de Tipo Descripción


salida
CommError BYTE Para obtener información sobre %READ_VARi.CommError, consulte
la tabla Códigos de error de comunicación, página 181.

OperError DWORD Para obtener información sobre %READ_VARi.OperError, consulte


la tabla Códigos de error de funcionamiento, página 182.

Códigos de error de comunicación


Consulte los códigos de error de comunicación, página 181.

Códigos de error de funcionamiento


Consulte los códigos de error de funcionamiento, página 182.

Configuración de funciones
Propiedades
Haga doble clic en el bloque de funciones para abrir la tabla de propiedades de la
función.
Las propiedades de este bloque de funciones no se pueden modificar en la
modalidad online.

EIO0000003292.03 193
Objetos de comunicación

El bloque de funciones %WRITE_READ_VAR tiene las propiedades siguientes:

Propiedad Valor Descripción

Utilizado Casilla de verificación activada / desactivada Indica si se está utilizando la dirección.


Dirección %WRITE_READ_VARi, donde i va desde 0 i es el identificador de instancia. Para conocer el número
hasta el número de objetos disponibles en máximo de instancias, consulte la tabla Número Número
este Logic Controller. máximo de objetos (consulte Modicon M221, Logic
Controller, Guía de programación).

Símbolo Texto definido por el usuario El símbolo identifica este objeto de forma inequívoca.
Para obtener más información, consulte la EcoStruxure
Machine Expert - Basic Guía de funcionamiento
(Definición y uso de los símbolos) (consulte EcoStruxure
Machine Expert - Basic, Guía de funcionamiento).

Enlace • SL1: Serie 1 Selección de puerto


• SL2: Serie 2 NOTA: SL2 y ETH1 los puertos de comunicación
• ETH1: Ethernet incorporados sólo están disponibles en algunas
referencias de los controladores.
ID Este parámetro depende de la configuración Identificador del dispositivo
de la conexión:
Para obtener más información sobre el índice Ethernet,
• De 1 a 247 para la dirección de esclavo consulte Adición de servidores remotos (consulte Modicon
de líneas serie M221, Controlador lógico, Guía de programación).
• De 1 a 16 para el índice Ethernet

Timeout Especificado en unidades de 100 ms, con un El timeout establece el tiempo máximo de espera de
valor predeterminado de 100 (10 segundos). recepción de una respuesta.

Un valor de 0 significa que no se ha aplicado Si el timeout finaliza, el intercambio finaliza en error con
timeout. un código de error (CommError = 01 hex). Si el sistema
recibe una respuesta después de la caducidad del
timeout, esta respuesta se ignora.
NOTA: El timeout establecido en el bloque de
funciones anula el valor configurado en las pantallas
de configuración de EcoStruxure Machine Expert -
Basic (Configuración de Modbus TCP (consulte
Modicon M221, Controlador lógico, Guía de
programación) y Configuración de la línea serie
(consulte Modicon M221, Controlador lógico, Guía de
programación).

ObjType %MW (Mbs Fct 17): palabras de memoria El tipo de código de función de lectura/escritura de
Modbus es Mbs Fct 17, que equivale al código 17 de
función de Modbus.
FirstWriteObj de 0 a 65535 Dirección del primer objeto del dispositivo remoto en el
que se escriben los valores.

WriteQuantity De 1 a 121 Número de objetos que se van a escribir en el dispositivo


remoto.
IndexDataOut De 0 a 7999 Dirección de la tabla de palabras local (%MW) que
contiene los valores que se van a escribir en el dispositivo
remoto.
FirstReadObj de 0 a 65535 Dirección del primer objeto del dispositivo remoto desde
donde se leen los valores.
ReadQuantity De 1 a 125 Número de objetos que se van a leer desde el dispositivo
remoto.
IndexDataIn De 0 a 7999 Dirección de la tabla de palabras local (%MW) en la que
se guardan los valores leídos.

Comentario Texto definido por el usuario Un comentario para asociar a este objeto.

194 EIO0000003292.03
Objetos de comunicación

Objetos
El bloque de funciones %WRITE_READ_VAR contiene los objetos siguientes:

Objeto Descripción Valor

%WRITE_READ_VARi.LINK Selección de puerto Consulte Propiedades, página 193. Se


puede leer y escribir. Se puede modificar en
una tabla de animación.
%WRITE_READ_VARi.ID Identificador del dispositivo remoto Consulte Propiedades, página 193. Se
puede leer y escribir. Se puede modificar en
una tabla de animación.
%WRITE_READ_VARi.TIMEOUT Timeout del bloque de funciones Consulte Propiedades, página 193. Se
puede leer y escribir. Se puede modificar en
una tabla de animación.
%WRITE_READ_VARi.OBJTYPE Tipo de objetos que se van a leer Consulte Propiedades, página 193. Se
puede leer y escribir. Se puede modificar en
una tabla de animación.
%WRITE_READ_VARi.FIRSTWRITEOBJ Dirección del primer objeto del Consulte Propiedades, página 193. Se
dispositivo remoto en el que se escriben puede leer y escribir. Se puede modificar en
los valores. una tabla de animación.
%WRITE_READ_VARi.WRITEQUANTITY Número de objetos que se van a escribir Consulte Propiedades, página 193. Se
en el dispositivo remoto. puede leer y escribir. Se puede modificar en
una tabla de animación.
%WRITE_READ_VARi.INDEXDATAOUT Dirección de la tabla de palabras local Consulte Propiedades, página 193. Se
(%MW) que contiene los valores que se puede leer y escribir. Se puede modificar en
van a escribir en el dispositivo remoto. una tabla de animación.

%WRITE_READ_VARi.FIRSTREADOBJ Dirección del primer objeto del Consulte Propiedades, página 193. Se
dispositivo remoto desde donde se leen puede leer y escribir. Se puede modificar en
los valores. una tabla de animación.
%WRITE_READ_VARi.READQUANTITY Número de objetos que se van a leer Consulte Propiedades, página 193. Se
desde el dispositivo remoto. puede leer y escribir. Se puede modificar en
una tabla de animación.
%WRITE_READ_VARi.INDEXDATAIN Dirección de la tabla de palabras local Consulte Propiedades, página 193. Se
(%MW) en la que se guardan los valores puede leer y escribir. Se puede modificar en
leídos. una tabla de animación.
%WRITE_READ_VARi.COMMERROR Códigos de error de comunicación Consulte los códigos de error de
comunicación, página 193. Sólo lectura. Se
puede leer en una tabla de animación.

%WRITE_READ_VARi.OPERERROR códigos de error de funcionamiento Consulte los códigos de error de


funcionamiento, página 193. Sólo lectura.
Se puede leer en una tabla de animación.

%WRITE_READ_VARi.DONE Ejecución completada correctamente Consulte Salidas, página 192. Sólo lectura.
Se puede leer en una tabla de animación.

%WRITE_READ_VARi.BUSY La ejecución está en proceso Consulte Salidas, página 192. Sólo lectura.
Se puede leer en una tabla de animación.

%WRITE_READ_VARi.ABORTED La ejecución se ha cancelado Consulte Salidas, página 192. Sólo lectura.


Se puede leer en una tabla de animación.

%WRITE_READ_VARi.ERROR Se ha detectado un error Consulte Salidas, página 192. Sólo lectura.


Se puede leer en una tabla de animación.

Ejemplo de programación
Introducción
El bloque de funciones %WRITE_READ_VAR se puede configurar como se
muestra en este ejemplo de programación.

EIO0000003292.03 195
Objetos de comunicación

Programación
Este ejemplo es un bloque de funciones %WRITE_READ_VAR:

Escalón Instrucción
0 BLK %WRITE_READ_VAR0
LD %I0.0
EXECUTE
LD %I0.1
ABORT
OUT_BLK
LD DONE
ST %Q0.0
LD BUSY
ST %Q0.1
LD ABORTED
ST %M1
LD ERROR
ST %Q0.2
END_BLK

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Diagrama de tiempos
Diagramas de tiempos para bloques de funciones de comunicación, página 212.

Comunicación en una conexión ASCII (%SEND_RECV_


MSG)
Utilizar bloques de funciones %SEND_RECV_MSG
En esta sección se proporcionan descripciones y directrices de programación
para utilizar bloques de funciones %SEND_RECV_MSG.

Descripción
Introducción
El bloque de funciones %SEND_RECV_MSG se emplea para enviar o recibir
datos en una línea serie configurada para el protocolo ASCII.

196 EIO0000003292.03
Objetos de comunicación

Ilustración
En esta ilustración se muestra el bloque de funciones %SEND_RECV_MSG:

Entradas
El bloque de funciones %SEND_RECV_MSG contiene las siguientes entradas:

Etiqueta Tipo Valor

Ejecutar BOOL Arranca la ejecución de bloques de funciones cuando se detecte un


flanco ascendente.

Si se detecta un segundo flanco ascendente durante la ejecución del


bloque de funciones, se ignora y el comando en curso no se ve afectado.

Abort BOOL Detiene la ejecución de bloques de funciones cuando se detecte un


flanco ascendente.

La salida cancelada se establece en 1 y el objeto %SEND_RECV_MSGi.


CommError contiene el código 02 hex (el intercambio se detiene cuando
lo solicita un usuario).

NOTA: Configurar la salida Ejecutar o Anular para TRUE en el primer ciclo


de tarea en ejecución no se detecta como un flanco ascendente. El bloque de
funciones debe ver primero la entrada como FALSE para detectar un flanco
ascendente posterior.

Salidas
El bloque de funciones %SEND_RECV_MSG contiene las siguientes salidas:

Etiqueta Tipo Valor

Termina- BOOL Si TRUE, indica que la ejecución del bloque de funciones se


do completa correctamente sin errores detectados.

Busy BOOL Si TRUE, indica que la ejecución del bloque de funciones está en
curso.
Cancela- BOOL Si TRUE, indica que la ejecución del bloque de funciones se ha
do cancelado con la entrada Anular.
Error BOOL Si TRUE, indica que se ha detectado un error. Detenida la
ejecución de bloques de funciones.

Para obtener más información sobre CommError y OperError,


consulte las tablas códigos de error de comunicación, página 181
y códigos de error de funcionamiento, página 182.

EIO0000003292.03 197
Objetos de comunicación

Códigos de error de comunicación


Consulte los códigos de error de comunicación, página 181.

Códigos de error de funcionamiento


Consulte los códigos de error de funcionamiento, página 182.

Condiciones de finalización
Para una operación de sólo envío, la salida Finalizado se establece en TRUE
cuando se han enviado todos los datos (incluido cualquier carácter de arranque/
parada).
Para una operación de sólo recepción, el sistema recibe caracteres hasta que se
la condición de finalización sea TRUE. Cuando se alcanza la condición de
finalización, la salida Finalizado se establece en TRUE. Los caracteres recibidos
se copian en BufferToRecv, hasta los caracteres RecvBuffer. sizeRecvBuffer
no es una condición de finalización.
La condición de finalización debe ajustarse en la Pantalla Configuración de la
línea serie (consulte Modicon M221, Controlador lógico, Guía de programación):

La condición de finalización se puede establecer en:


• Cantidad de bytes recibidos: Longitud recibida de trama
• Un silencio de fin de trama: Timeout de trama recibido (ms)
• Una estructura de trama: Primer carácter de fin
Para una operación de envío y recepción, primero se envían los caracteres a la
línea y entonces se reciben hasta que la condición de finalización es TRUE (el
mismo proceso que en sólo recepción).

Configuración de funciones
Propiedades
Haga doble clic en el bloque de funciones para abrir la tabla de propiedades de la
función.

198 EIO0000003292.03
Objetos de comunicación

Las propiedades de este bloque de funciones no se pueden modificar en la


modalidad online.
El bloque de funciones %SEND_RECV_MSG tiene las propiedades siguientes:

Propiedad Valor Descripción

Utilizado Casilla de verificación activada/desactivada Indica si se está utilizando la dirección.


Dirección %SEND_RECV_MSGi, donde i va desde 0 hasta el número i es el identificador de instancia. Para conocer
de objetos disponibles en este Logic Controller. la cantidad máxima de instancias, consulte la
guía de programación para el controlador
lógico.

Símbolo Texto definido por el usuario El símbolo identifica este objeto de forma
inequívoca. Para obtener más información,
consulte la EcoStruxure Machine Expert -
Basic Guía de funcionamiento (Definición y uso
de los símbolos) (consulte EcoStruxure
Machine Expert - Basic, Guía de
funcionamiento).

Enlace • SL1: Serie 1 Selección de puerto


• SL2: Serie 2 NOTA: El puerto de comunicación
incorporado SL2 sólo está disponible en
algunas referencias de controladores.

Timeout Especificado en unidades de 100 ms, con un valor El timeout establece el tiempo máximo de
predeterminado de 100 (10 segundos). espera de recepción de una respuesta.

Un valor de 0 significa que no se ha aplicado timeout. Si el timeout finaliza, el intercambio finaliza en


error con un código de error (CommError =
01 hex). Si el sistema recibe una respuesta
después de la caducidad del timeout, esta
respuesta se ignora.
NOTA: El timeout establecido en el bloque
de funciones anula el valor establecido en
las pantallas de configuración de
EcoStruxure Machine Expert - Basic
(Configuración de Modbus TCP y
Configuración de línea serie; consulte la
guía de programación del controlador
lógico).

QuantityToSend De 0 a 255 Número de bytes para enviar

Un valor de 0 significa que el bloque de funciones sólo


recibe datos.
BufferToSend De 0 a 7999 Dirección del primer objeto para enviar

SizeRecvBuffer De 0 a 255 Tamaño disponible en bytes del búfer de


recepción.
Un valor de 0 significa que el bloque de funciones sólo
envía datos.
BufferToRecv De 0 a 7999 La primera dirección de la tabla de palabras en
la que se guardan los valores de lectura (%
MW).

QuantityRecv De 0 a 255 Cantidad de datos recibidos en bytes

Comentario Texto definido por el usuario Un comentario para asociar a este objeto.

EIO0000003292.03 199
Objetos de comunicación

Objetos
El bloque de funciones %SEND_RECV_MSG contiene los objetos siguientes:

Objeto Descripción Valor

%SEND_RECV_MSGi.LINK Selección de puerto Consulte Propiedades, página 198. Se


puede leer y escribir. Se puede modificar en
una tabla de animación.
%SEND_RECV_MSGi.TIMEOUT Timeout del bloque de funciones Consulte Propiedades, página 198. Se
puede leer y escribir. Se puede modificar en
una tabla de animación.
%SEND_RECV_MSGi. Número de bytes para enviar Consulte Propiedades, página 198. Se
QUANTITYTOSEND puede leer y escribir. Se puede modificar en
una tabla de animación.
%SEND_RECV_MSGi.BUFFERTOSEND Dirección del primer objeto para enviar Consulte Propiedades, página 198. Se
puede leer y escribir. Se puede modificar en
una tabla de animación.
%SEND_RECV_MSGi.SIZERECVBUFFER Tamaño disponible en bytes del búfer de Consulte Propiedades, página 198. Se
recepción puede leer y escribir. Se puede modificar en
una tabla de animación.
%SEND_RECV_MSGi.BUFFERTORECV Primera dirección de la tabla de palabras en Consulte Propiedades, página 198. Se
la que se guardan los valores de lectura puede leer y escribir. Se puede modificar en
una tabla de animación.
%SEND_RECV_MSGi.QUANTITYRECV Cantidad de datos recibidos en bytes Consulte Propiedades, página 198. Sólo se
pueden leer. Se puede modificar en una
tabla de animación.
%SEND_RECV_MSGi.COMMERROR Códigos de error de comunicación Consulte los códigos de error de
comunicación, página 198. Sólo lectura. Se
puede leer en una tabla de animación.

%SEND_RECV_MSGi.OPERERROR códigos de error de funcionamiento Consulte los códigos de error de


funcionamiento, página 198. Sólo lectura.
Se puede leer en una tabla de animación.

%SEND_RECV_MSGi.DONE Ejecución completada correctamente Consulte Salidas, página 197. Sólo lectura.
Se puede leer en una tabla de animación.

%SEND_RECV_MSGi.BUSY La ejecución está en proceso Consulte Salidas, página 197. Sólo lectura.
Se puede leer en una tabla de animación.

%SEND_RECV_MSGi.ABORTED La ejecución se ha cancelado Consulte Salidas, página 197. Sólo lectura.


Se puede leer en una tabla de animación.

%SEND_RECV_MSGi.ERROR Se ha detectado un error Consulte Salidas, página 197. Sólo lectura.


Se puede leer en una tabla de animación.

Ejemplo de programación
Introducción
El bloque de funciones %SEND_RECV_MSG se puede configurar como se
muestra en este ejemplo de programación.

200 EIO0000003292.03
Objetos de comunicación

Programación
Este ejemplo es un bloque de funciones %SEND_RECV_MSG:

Escalón Instrucción
0 BLK %SEND_RECV_MSG0
LD %I0.0
EXECUTE
LD %I0.1
ABORT
OUT_BLK
LD DONE
ST %Q0.0
LD BUSY
ST %Q0.1
LD ABORTED
ST %M1
LD ERROR
ST %Q0.2
END_BLK

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

Diagrama de tiempos
Diagramas de tiempos para bloques de funciones de comunicación, página 212.

Enviar Recibir SMS (%SEND_RECV_SMS)


Utilización del bloque de funciones %SEND_RECV_SMS
En esta sección se proporcionan descripciones y directrices de programación
para utilizar el bloque de funciones %SEND_RECV_SMS.

Descripción
Introducción
El bloque de funciones %SEND_RECV_SMS sirve para enviar y recibir mensajes
SMS (servicio de mensajes cortos) mediante un módem conectado a una línea
serie. Por ejemplo, el controlador puede enviar un SMS para transmitir una
alarma a un teléfono móvil especificado, o recibir un SMS para finalizar una
función de la máquina.
NOTA: La aplicación debe configurarse con un nivel funcional (consulte
EcoStruxure Machine Expert - Basic, Guía de funcionamiento) de como
mínimo Nivel 3.2 para usar la funcionalidad de SMS.
El bloque de funciones %SEND_RECV_SMS se utiliza para una de estas
opciones:
• Enviar un SMS a un solo destinatario, o
• Recibir un SMS filtrado por una tabla de números de teléfono aprobados
En un programa sólo se puede utilizar 1 bloque de funciones %SEND_RECV_
SMS.

EIO0000003292.03 201
Objetos de comunicación

Se debe tener cuidado y adoptar las medidas adecuadas para utilizar la función
de SMS como dispositivo de control remoto, con el fin de evitar consecuencias no
deseadas en el funcionamiento solicitado de máquinas, cambios de estado del
controlador, o alteración de la memoria de datos o de los parámetros de
funcionamiento de la máquina.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
• Asegúrese de que un observador local, competente y cualificado, esté
presente al utilizarlo desde una ubicación remota.
• Configure e instale la entrada Run/Stop en la aplicación con el objetivo de
poder mantener el control local sobre el inicio y la detención del controlador,
independientemente de los comandos remotos enviados al controlador.
Si no se siguen estas instrucciones, pueden producirse lesiones graves,
muerte o daños en el equipo.

La función de SMS depende de una red de telecomunicaciones externa y sus


parámetros. Puede que los comandos y mensajes SMS transmitidos a la máquina
se retrasen, no se envíen o no se reciban. No utilice la función de SMS para
funciones críticas para la seguridad u otras funciones críticas.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
• No permita funciones críticas para la seguridad en comandos por SMS.
• No utilice comandos o mensajes SMS para ninguna función que sea crítica.
Si no se siguen estas instrucciones, pueden producirse lesiones graves,
muerte o daños en el equipo.

NOTA: Verifique las funciones de SMS y la red de telecomunicaciones


asociada durante la puesta en funcionamiento, y pruébela periódicamente
para verificar la cobertura de la red.

Ilustración
En esta ilustración se muestra el bloque de funciones %SEND_RECV_SMS:

202 EIO0000003292.03
Objetos de comunicación

Entradas
En esta tabla se describen las entradas del bloque de funciones:

Etiqueta Tipo Valor

Ejecutar BOOL Inicia la ejecución del bloque de funciones cuando se detecta un flanco
ascendente.

Si se detecta un segundo flanco ascendente durante la ejecución del


bloque de funciones, se ignora y el comando en curso no se ve afectado.

Abort BOOL Detiene la ejecución del bloque de funciones cuando se detecta un flanco
ascendente.

La salida Aborted se establece en 1 y el objeto %SEND_RECV_SMSi.


CommError contiene el código 02 hex (intercambio detenido en un flanco
ascendente en la entrada Abort).

S BOOL Si es 1, el bloque de funciones está configurado para enviar un SMS.

Si es 0, el bloque de funciones está configurado para recibir un SMS.

El cambio de valor se aplica cuando se interrumpe el bloque de


funciones.

NOTA: Configurar la salida Execute o Abort para 1 en el primer ciclo de tarea


en ejecución no se detecta como un flanco ascendente. El bloque de
funciones debe ver primero la entrada como 0 para detectar un flanco
ascendente posterior.
En esta tabla se describen los objetos de entrada del bloque de funciones:

Objeto de entrada Tipo Rango de valores Descripción

Enlace BYTE 1 - SL1 Indica la línea serie utilizada para la comunicación a través del módem.

2 - SL2
Timeout WORD De 0 a 255 Establece el tiempo máximo de espera de recepción de una respuesta del
módem.

Especificado en unidades de 100 ms, con un valor predeterminado de 100


(10 segundos). El valor 0 significa que no se ha establecido ningún tiempo
de espera.

Índice WORD 0 a 15 Se utiliza el valor del índice:


• En el envío, para seleccionar el texto que se va a enviar desde la
tabla Mensajes.
0 corresponde a la primera cadena de la tabla.
• En la recepción, para seleccionar una cadena de la tabla Comandos
que coincida con el texto recibido.
Se establece en FFFF hex si no se encuentra ninguna cadena
coincidente.
VAD DINT -2.147.483.648 a • Durante el envío, el valor de %SEND_RECV_SMSi.VAD sustituye al
2147483647 marcador de posición $VAD en el texto del SMS.
• Durante la recepción, el valor de %SEND_RECV_SMSi.VAD
contiene el valor en el que se inserta el marcador de posición $VAD
en el SMS almacenado en la tabla Comandos.
VBD DINT -2.147.483.648 a • Durante el envío, el valor de %SEND_RECV_SMSi.VBD sustituye al
2147483647 marcador de posición $VBD en el texto del SMS.
• Durante la recepción, el valor de %SEND_RECV_SMSi.VBD
contiene el valor en el que se inserta el marcador de posición $VBD
en el SMS almacenado en la tabla Comandos.
MASKPHONE WORD 0 a 15 • Durante el envío, la máscara se utiliza para seleccionar el
destinatario del SMS de la tabla Números de teléfono.
• Durante la recepción, la máscara se aplica a la tabla Números de
teléfono para crear una lista de números válidos.

EIO0000003292.03 203
Objetos de comunicación

Salidas
En esta tabla se describen las salidas del bloque de funciones:

Etiqueta Tipo Valor

Termina- BOOL Si es TRUE, indica que la ejecución del bloque de funciones ha finalizado
do correctamente y no se han detectado errores.

Busy BOOL Si TRUE, indica que la ejecución del bloque de funciones está en curso.

Cancela- BOOL Si es TRUE, indica que la ejecución del bloque de funciones se ha


do cancelado con la entrada %SEND_RECV_SMSi.Abort.

Error BOOL Si es TRUE, indica que se ha detectado un error. Se ha detenido la


ejecución del bloque de funciones.

Para obtener información sobre %SEND_RECV_SMSi.CommError y %


SEND_RECV_SMSi.OperError, consulte las tablas Códigos de error de
comunicación, página 205 y Códigos de error de funcionamiento, página
205.

NOTA: Cuando la salida Busy se establece en TRUE, la ejecución continúa hasta que una de
las salidas Done, Aborted o Error se establece en TRUE.
NOTA: Mientras la salida Busy está establecida en TRUE, los cambios en la entrada Execute
no afectan a la ejecución del bloque de funciones en curso. Sin embargo, si se llama a otro
bloque de funciones %SEND_RECV_SMS, éste finaliza con un error (CommError = 255 (FF
hex) y OperError = 11 (0B hex)).

En esta tabla se describen los objetos de salida del bloque de funciones:

Objeto de Tipo Descripción


salida
CommError BYTE Para obtener información sobre %SEND_RECV_SMSi.CommError,
consulte la tabla Códigos de error de comunicación, página 205.

OperError DWORD Para obtener información sobre %SEND_RECV_SMSi.OperError,


consulte la tabla Códigos de error de funcionamiento, página 205.

204 EIO0000003292.03
Objetos de comunicación

Códigos de error de comunicación


En esta tabla se describen los códigos de error escritos en el objeto de salida %
SEND_RECV_SMSi.CommError:

Código de error Name Descripción


decimal
(hexadecimal)
detectado
0 (00 hex) CommunicationOK Intercambio correcto.
NOTA: En este caso, el objeto de salida %SEND_RECV_
SMSi.OperError contiene el nivel de señal del módem en
vez de un código de error.

1 (01 hex) TimedOut Intercambio detenido porque se ha agotado el timeout.

2 (02 hex) Abort Intercambio detenido en un flanco ascendente en la entrada %


SEND_RECV_SMSi.Abort.

3 (03 hex) BadLink Enlace incorrecto.

4 (04 hex) BadCommand Comando incorrecto.

5 (05 hex) BadMgtTable El formato de la tabla de gestión es incorrecto.

6 (06 hex) BadParameters Los parámetros específicos son incorrectos.

7 (07 hex) ProblemSendingSms Error de comando de envío de SMS.

9 (09 hex) RecvCmdError Comando no válido.

10 (0A hex) SendValueError Valor no válido.

11 (0B hex) SystemResourceMissing Recurso del sistema no disponible.

14 (0E hex) BadLength La longitud es incorrecta.

254 (FE hex) ProtocolSpecificError Indica que se ha detectado un error de protocolo.


NOTA: En este caso, el objeto de salida %SEND_RECV_
SMSi.OperError contiene más información. Consulte los
códigos de error de funcionamiento, página 205.

255 (FF hex) Refused SMS rechazado.


NOTA: En este caso, el objeto de salida %SEND_RECV_
SMSi.OperError contiene más información. Consulte los
códigos de error de funcionamiento, página 205.

Códigos de error de funcionamiento


Este código de retorno es significativo cuando el código de error de comunicación
(objeto de salida %SEND_RECV_SMSi.CommError) tiene el valor:
• 0 (00 hex) (protocolo correcto)
• 254 (FE hex) (protocolo incorrecto)
• 255 (FF hex) (SMS rechazado)
Cuando %SEND_RECV_SMSi.CommError es 0 (00 hex) (protocolo correcto), el
objeto de salida %SEND_RECV_SMSi.OperError especifica la RSSI (del inglés
Received Signal Strength Indication, indicación de fuerza de la señal recibida):

Valor decimal en el objeto % Nivel de señal del módem RSSI


SEND_RECV_SMSi.OperError

Inferior a 9 Valor marginal (la atenuación sobrepasa el límite necesario


para que la red inalámbrica funcione)

De 10 a 14 Ok
De 15 a 19 Bueno
Superior a 20 Excelente

EIO0000003292.03 205
Objetos de comunicación

Cuando %SEND_RECV_SMSi.CommError es 254 (FE hex) (protocolo


incorrecto), el objeto de salida %SEND_RECV_SMSi.OperError devuelve más
información:

Valor decimal (hexadecimal) en el Name Descripción


objeto %SEND_RECV_SMSi.OperError

256 (00000100 hex) ModemConfSLAsciiFailed La configuración ASCII de la línea serie es


incorrecta.
512 (00000200 hex) ModemReconfSLFailed La configuración de la línea de serie en la
configuración de usuario es incorrecta.

768 (00000300 hex) ModemBusy El módem responde BUSY para el comando de


marcación.
1024 (00000400 hex) ModemNoDialtone El módem responde NODIALTONE para el
comando de marcación.
1280 (00000500 hex) ModemNoCarrier La señal de portadora del módem se ha perdido o
desconectado. El módem responde NO CARRIER
para el comando de marcación.

1536 (00000600 hex) ModemBadAnswer La respuesta del módem es incorrecta.

Errores específicos de uso de la tarjeta SIM

4096 (00001000 hex) SimConfigurationFailed La configuración de la tarjeta SIM es incorrecta.


Por ejemplo, se solicita un código PUK.

8192 (00002000 hex) SimPinCodeInvalid El código PIN es incorrecto.

16384 (00004000 hex) SimSmsCenterInvalid El número de teléfono del centro de SMS es


incorrecto.

Cuando %SEND_RECV_SMSi.CommError es 255 (FF hex) (SMS rechazado), el


objeto de salida %SEND_RECV_SMSi.OperError devuelve más información:

Valor decimal (hexadecimal) en el Name Descripción


objeto %SEND_RECV_SMSi.
OperError

1 (00000001 hex) TargetResourceMissing El recurso del sistema de destino no está


disponible.

5 (00000005 hex) BadLength La longitud es incorrecta.

6 (00000006 hex) CommChannelErr Se ha detectado un error en el canal de


comunicación.
11 (0000000B hex) SystemResourceMissing Recurso del sistema no disponible.

12 (0000000C hex) TargetCommInactive La función de comunicación de destino no está


activa.
13 (0000000D hex) TargetMissing El destino no está disponible.

15 (0000000F hex) ChannelNotConfigured El canal de comunicación no está configurado.

16 (00000010 hex) PhoneNumberNotMatching El número de teléfono del mensaje recibido no


coincide con la lista de números aprobados (lista
blanca).

17 (00000011 hex) MessageNotMatching El mensaje recibido no coincide con ningún


mensaje de la lista de comandos. Sólo se emite si
el número de teléfono del emisor coincide con una
entrada de la lista de números aprobados (lista
banca).

206 EIO0000003292.03
Objetos de comunicación

Configuración de funciones
Pasos principales
El siguiente procedimiento describe los pasos principales para configurar el
bloque de funciones %SEND_RECV_SMS tras conectar un módem a la línea
serie:

Paso Acción
1 En la ficha Configuración de EcoStruxure Machine Expert - Basic, configure la línea serie con el módem, el Comando Init y
el protocolo ASCII. Para obtener más información, consulte la guía de programación correspondiente a su controlador lógico.

2 Verifique que el módem esté conectado a la línea serie del controlador y que:
• La tarjeta SIM está desbloqueada, es decir, no protegida mediante un código PIN
• El número de teléfono del centro de SMS está configurado correctamente en la tarjeta SIM

3 En la ficha Programación:
• Añada el bloque de funciones %SEND_RECV_SMS y haga doble clic en el bloque de funciones para ver la tabla de
propiedades de la función
• Haga clic en el botón Configuración de SMS para abrir la ventana Asistente de SMS
• Edite las tablas Mensajes, Comandos y Números de teléfono
Para obtener más información, consulte el Asistente de SMS.
• Haga clic en Aplicar para cerrar el Asistente de SMS
NOTA: Si la dirección del bloque de funciones (por ejemplo %SEND_RECV_SMS0) no es válida y hacer doble clic está
deshabilitado, compruebe que el nivel funcional de la aplicación (ficha Programación > Tareas > Comportamiento)
esté como mínimo en el Nivel 3.2).

4 En la ficha Programación, edite los campos de la tabla de propiedades de la función.

Para obtener información sobre estos campos, consulte Propiedades, página 209.

ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Antes de usar el bloque de funciones, verifique que los índices para los
mensajes, comandos y números de teléfono utilizados en el bloque de
funciones sean válidos (aquellos que piense usar).
Si no se siguen estas instrucciones, pueden producirse lesiones graves,
muerte o daños en el equipo.

Para obtener más información acerca de la instalación y la configuración de los


modems SR2MOD03, consulte Modems inalámbricos SR2MOD02 y SR2MOD03
- Guía del usuario (EIO00000001575).

Asistente de SMS
Para utilizar el bloque de funciones %SEND_RECV_SMS, configure las tablas de
comandos, mensajes y números de teléfono.
Haga clic en el botón Configuración de SMS en el área de propiedades de
Enviar Recibir SMS para abrir la ventana Asistente de SMS.

EIO0000003292.03 207
Objetos de comunicación

La ventana Asistente de SMS tiene tres fichas con tablas para configurar:
• Mensajes
Especifique las cadenas que se utilizan cuando el controlador envía un SMS.
Utilice marcadores de posición para incluir variables, fecha y hora. Tenga en
cuenta los límites de número de caracteres y el formato.
• Comandos
Especifique las cadenas que se utilizan cuando el controlador recibe un
SMS. Utilice marcadores de posición para incluir variables. Tenga en cuenta
los límites de número de caracteres y el formato.
• Números de teléfono
Al programar el bloque de funciones para el envío de mensajes SMS,
seleccione el destinatario en esta tabla.
Al programar el bloque de funciones para la recepción de mensajes SMS,
seleccione los números de teléfono de origen autorizados en esta lista.
Cuando una llamada y el SMS correspondiente se transmiten a la aplicación
a través del módem, el número de teléfono de origen se valida antes de
considerar el SMS entrante.
Para obtener más información, consulte la línea MASKPHONE en
Propiedades, página 209.
NOTA: Consulte la documentación del módem para ver el formato de los
códigos de marcación internacionales.
Si la aplicación se configura con el nivel funcional mínimo Nivel 6.1, puede
declarar las cadenas en una variable %MW e introducir esta variable de memoria
en el campo Valor.
NOTA: Las variables %MW se admiten como variables, no como cadenas.
Cada tabla contiene un máximo de 16 entradas con un índice en cada línea de 0
a 15.
Las cadenas incluidas en las tablas del asistente se pueden interpretar con los
siguientes formatos y límite de tamaño de mensaje:

Formato de caracteres Tablas Mensajes y Comandos

GSM 7-bit Máximo 105 caracteres


UNICODE Máximo 45 caracteres

NOTA: El formato de caracteres viene determinado automáticamente por los caracteres del
campo de texto.

Se pueden añadir los siguientes marcadores de posición en el texto de Mensajes


o Comandos para que se interpreten como variables:

Marcador de Sustituido en la ejecución por: Número de Número de


posición caracteres en caracteres en
formatos GSM 7- formato UNICODE
bit

$DATE(1) YY/MM/DD (fecha actual) 8+1 16 + 2

$TIME(1) HH:MM:SS (hora actual) 8+1 16 + 2

$VAD El valor DWORD del parámetro % 12 máximo 24 máximo


SEND_RECV_SMSi.VAD
convertido a texto.

$VBD El valor DWORD del parámetro % 12 máximo 24 máximo


SEND_RECV_SMSi.VBD
convertido a texto.

$$ El símbolo $ 1 2

NOTA: Cuando el texto introducido es válido (límite de caracteres no excedido, marcadores de


posición válidos), el botón Aplicar está activo.
(1) Ignorado para Comandos

208 EIO0000003292.03
Objetos de comunicación

Ejemplos
Este ejemplo muestra el uso de marcadores de posición en los mensajes:

Mensajes

Mensaje $DATE: $TIME - Valor A = $VAD y Valor B = $VBD


configurado

Valores de los VAD = 10; VBD = 2000


marcadores de
posición

SMS final 15/04//27: 11:15:43 - Valor A = 10 y Valor B = 2000 !


enviado

Este ejemplo muestra el uso de marcadores de posición en los comandos:

Comandos
Comando Valor A = $VAD y Valor B = $VBD
configurado

SMS recibido Valor A = 300 y Valor B = 2

Valores VAD = 300; VBD = 2


capturados

Propiedades
Haga doble clic en el bloque de funciones para abrir la tabla de propiedades de la
función.
Las propiedades de este bloque de funciones no se pueden modificar en la
modalidad online.

EIO0000003292.03 209
Objetos de comunicación

El bloque de funciones %SEND_RECV_SMS tiene las propiedades siguientes:

Propiedad Valor Descripción

Utilizado Casilla de verificación activada/ Indica si se está utilizando la dirección.


desactivada.
Dirección %SEND_RECV_SMSi, donde i va i es el identificador de instancia. Para saber el número máximo de instancias,
desde 0 hasta el número de objetos consulte la guía de programación de su controlador lógico.
disponibles en este controlador
lógico.

Símbolo Texto definido por el usuario. El símbolo identifica este objeto de forma inequívoca. Para obtener más
información, consulte Definición y uso de los símbolos (consulte EcoStruxure
Machine Expert - Basic, Guía de funcionamiento).

Enlace 1 - SL1 Línea serie en la que se ha configurado el módem (ficha Configuración).

2 - SL2
Timeout De 0 a 255 El timeout establece el tiempo máximo de espera de recepción de una
respuesta del módem.
Especificado en unidades de
100 ms, con un valor Si se supera el timeout, el intercambio finaliza con un código de error (%SEND_
predeterminado de 100 RECV_SMSi.CommError = 01 hex). Si el sistema recibe una respuesta
(10 segundos). después de la caducidad del timeout, esta respuesta se ignora.

Un valor de 0 significa que no se ha NOTA: El timeout establecido en el bloque de funciones anula el valor
aplicado timeout. configurado en la pantalla de configuración EcoStruxure Machine Expert -
Basic. Para obtener más información, consulte la guía de programación
correspondiente a su controlador lógico.

Índice 0 a 15 • En el envío, el valor del índice se utiliza para seleccionar un texto para
NOTA: 0 corresponde a la enviar en la tabla Mensajes.
primera cadena de la lista. • En la recepción, el valor corresponde al índice de la tabla Comandos
que coincide con el texto recibido.

VAD De –214748364 a 2147483647 • Durante el envío, el valor de %SEND_RECV_SMSi.VAD sustituye al


marcador de posición $VAD en el texto del SMS.
• Durante la recepción, el valor de %SEND_RECV_SMSi.VAD contiene el
valor en el que se inserta el marcador de posición $VAD en el SMS
almacenado en la tabla Comandos.
VBD De –214748364 a 2147483647 • Durante el envío, el valor de %SEND_RECV_SMSi.VBD sustituye al
marcador de posición $VBD en el texto del SMS.
• Durante la recepción, el valor de %SEND_RECV_SMSi.VBD contiene el
valor en el que se inserta el marcador de posición $VBD en el SMS
almacenado en la tabla Comandos.
MASKPHONE De 0000000000000000 bin a El valor inicial de la máscara.
1000000000000000 bin • Durante el envío, esta máscara se utiliza para seleccionar el destinatario
del SMS de la tabla Números de teléfono.
Ejemplo: 0000000000000010 bin = el SMS se envía al segundo número
de teléfono (índice 1) que aparece en la tabla Números de teléfono.
• Durante la recepción, la máscara se aplica a la tabla Números de
teléfono para crear una lista de números de teléfono de origen válidos.
Un bit de la máscara indica el número de teléfono utilizado para enviar el
SMS al controlador lógico.
Ejemplo: 0000000000000100 bin significa que el tercer número de
teléfono de la lista Números de teléfono (índice 2) ha enviado el SMS.

Comentario Texto definido por el usuario Un comentario para asociar a este objeto.

210 EIO0000003292.03
Objetos de comunicación

Objetos
El bloque de funciones %SEND_RECV_SMS contiene los objetos siguientes:

Objeto Descripción Valor

%SEND_RECV_SMSi.LINK Selección de puerto Consulte Propiedades, página 209. Se


puede leer y escribir. Se puede modificar en
una tabla de animación.
%SEND_RECV_SMSi.TIMEOUT Timeout del bloque de funciones Consulte Propiedades, página 209. Se
puede leer y escribir. Se puede modificar en
una tabla de animación.
%SEND_RECV_SMSi.INDEX Índice en la tabla de Mensajes o Comandos Consulte Propiedades, página 209. Se
puede leer y escribir. Se puede modificar en
una tabla de animación.
%SEND_RECV_SMSi.VAD VAD - marcador de posición A Consulte Propiedades, página 209. Se
puede leer y escribir. Se puede modificar en
una tabla de animación.
%SEND_RECV_SMSi.VBD VBD - marcador de posición B Consulte Propiedades, página 209. Se
puede leer y escribir. Se puede modificar en
una tabla de animación.
%SEND_RECV_SMSi.MASKPHONE Máscara para seleccionar entradas en la Consulte Propiedades, página 209. Se
tabla de números de teléfono puede leer y escribir. Se puede modificar en
una tabla de animación.
%SEND_RECV_SMSi.COMMERROR Códigos de error de comunicación Consulte los códigos de error de
comunicación, página 205. Sólo se pueden
leer. Se puede modificar en una tabla de
animación.
%SEND_RECV_SMSi.OPERERROR códigos de error de funcionamiento Consulte los códigos de error de
funcionamiento, página 205. Sólo se
pueden leer. Se puede modificar en una
tabla de animación.
%SEND_RECV_SMSi.DONE Ejecución completada correctamente Consulte Salidas, página 204. Sólo se
pueden leer. Se puede modificar en una
tabla de animación.
%SEND_RECV_SMSi.BUSY La ejecución está en proceso Consulte Salidas, página 204. Sólo se
pueden leer. Se puede modificar en una
tabla de animación.
%SEND_RECV_SMSi.ABORTED La ejecución se ha cancelado Consulte Salidas, página 204. Sólo se
pueden leer. Se puede modificar en una
tabla de animación.
%SEND_RECV_SMSi.ERROR Se ha detectado un error Consulte Salidas, página 204. Sólo se
pueden leer. Se puede modificar en una
tabla de animación.

Diagramas de tiempos
Consulte Comportamiento de la señal de los bloques de funciones con la entrada
Execute, página 212.

EIO0000003292.03 211
Objetos de comunicación

Diagramas de tiempos para bloques de funciones de


objetos de comunicación
Ejemplos de diagramas de tiempos
Ejemplo 1
Ejecución completada sin errores:

Ejemplo 2
Ejecución completada con un error:

Ejemplo 3
Bloque de funciones interrumpido por la aplicación:

212 EIO0000003292.03
Objetos de comunicación

Si Execute ya se ha restablecido en FALSE cuando se ha producido la solicitud


de interrupción, Abort se establece en TRUE únicamente para un ciclo.

(1) Establecer en TRUE únicamente para un ciclo, puesto que Execute ya se ha


establecido en FALSE.

Ejemplo 4
Ejecución completada sin error después de que Execute se haya establecido en
FALSE.

(1) Establecer en TRUE únicamente para un ciclo, puesto que Execute ya se ha


establecido en FALSE.

EIO0000003292.03 213
Funciones definidas por el usuario

Funciones definidas por el usuario


Presentación
Descripción general
Una función definida por el usuario permite crear funciones nuevas con uno o
más parámetros de entrada, variables locales y un valor de retorno. Las funciones
definidas por el usuario se almacenan como parte del proyecto EcoStruxure
Machine Expert - Basic.
Puede llamar a las funciones definidas por el usuario en:
• La tarea maestra
• Tareas periódicas
• POU disponibles
Para crear funciones definidas por el usuario, la aplicación debe configurarse con
un nivel funcional (consulte EcoStruxure Machine Expert - Basic, Guía de
funcionamiento) de al menos nivel 6.0.
Para obtener información sobre el uso de funciones definidas por el usuario,
consulte EcoStruxure Machine Expert - Basic Guía de funcionamiento -
Funciones definidas por el usuario (consulte EcoStruxure Machine Expert - Basic,
Guía de funcionamiento).

214 EIO0000003292.03
Bloques de funciones definidos por el usuario

Bloques de funciones definidos por el usuario


Presentación
Descripción general
Un bloque de funciones definido por el usuario permite crear nuevos bloques de
funciones con uno o más parámetros de entrada y salida, variables locales y un
valor de retorno. Los bloques de funciones definidos por el usuario se almacenan
como parte del proyecto EcoStruxure Machine Expert - Basic.
Puede llamar a los bloques de funciones definidos por el usuario en:
• La tarea maestra
• Tareas periódicas
• Eventos
• POU disponibles
Para crear bloques de función funciones definidas por el usuario, la aplicación
debe configurarse con un nivel funcional (consulte EcoStruxure Machine Expert -
Basic, Guía de funcionamiento) de al menos nivel 6.0.
Para obtener información sobre el uso de bloques de funciones definidos por el
usuario, consulte EcoStruxure Machine Expert - Basic Guía de funcionamiento -
Bloques de funciones definidos por el usuario (consulte EcoStruxure Machine
Expert - Basic, Guía de funcionamiento).

EIO0000003292.03 215
Funciones de reloj

Funciones de reloj
Descripción general
En este capítulo se describen las funciones de gestión de tiempo para los
controladores.

Funciones de reloj
Introducción
En controladores lógicos equipados con una función de reloj en tiempo real
(RTC), puede utilizar las siguientes funciones del reloj de fecha/hora cuando
EcoStruxure Machine Expert - Basic esté conectado al controlador lógico:
• Los bloques de funciones RTC, página 170 se utilizan para leer la hora y la
fecha del RTC, o para actualizar el RTC en el logic controller con una fecha y
hora definidas por el usuario.
• Los bloques de funciones del Programador, página 165 se utilizan para
controlar acciones a horas predefinidas o calculadas.
• Fijación de fecha y hora, página 216 se utiliza para asignar fechas y horas a
eventos y para medir la duración de los eventos.
El reloj de fecha/hora puede ajustarse mediante un programa, página 216. La
batería del controlador facilita que la configuración del reloj siga funcionando
durante un año como máximo aunque el controlador esté apagado. El controlador
no tiene una batería recargable. La vida útil promedio de la batería es de 4 años y
debe reemplazarse antes del final de su vida útil. Con el objetivo de no perder los
datos durante la sustitución de la batería, cámbiela durante los 120 segundos
posteriores a la extracción de la batería del controlador.
El reloj de fecha y hora tiene formato de 24 horas y tiene en cuenta los años
bisiestos.

Marcas de fecha y hora


Introducción
Las palabras de sistema %SW49 a %SW53 contienen la fecha y la hora actuales en
formato BCD que resulta útil para realizar visualizaciones o transmisiones a un
dispositivo periférico. Estas palabras de sistema se pueden utilizar para
almacenar la fecha y la hora de un evento.
Las instrucciones BTI se utilizan para convertir fechas y horas de formato BCD a
formato binario. Para obtener más información, consulte las Instrucciones de
conversión BCD/binaria, página 59.

Fechado de un evento
Para asociar una fecha a un evento, basta con utilizar operaciones de asignación
para transferir el contenido de palabras de sistema a palabras de memoria y
luego procesar estas palabras de memoria (por ejemplo, transmisión a una
pantalla mediante la instrucción EXCH).

216 EIO0000003292.03
Funciones de reloj

Ejemplo de programación
En este ejemplo se muestra cómo fechar un flanco ascendente en una entrada %
I0.1:

Escalón Instrucción
0 LDR %I0.1
[%MW11:5:=%SW49:5]

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.
Una vez detectado un evento, la tabla de palabras tendrá el siguiente contenido:

Codificación Byte más significativo Byte menos significativo

%MW11 - Día de la semana (1)

%MW12 00 Segundo

%MW13 Hora Minuto


%MW14 Mes Día
%MW15 Siglo Año

(1) 1 = Lunes, 2 = Martes, 3 = Miércoles, 4 = Jueves, 5 = Viernes, 6 = Sábado, 7 = Domingo

Ejemplo de tabla de palabras


Datos de ejemplo para el lunes 3 de junio de 2013 a las 13:40:30:

Word Valor (hexadecimal) Significado

%MW11 0001 lunes


%MW12 0030 30 segundos

%MW13 1340 13 horas, 40 minutos

%MW14 0603 06 = junio, el día 03

%MW15 2013 2013

Fecha y hora de la última parada


Las palabras de sistema %SW54 a %SW57 contienen la fecha y la hora de la última
parada, y la palabra %SW58 contiene el código que muestra la causa de la última
parada, en formato BCD.

EIO0000003292.03 217
Funciones de reloj

Ajuste de fecha y hora


Introducción
Los ajustes de fecha y hora en el logic controller pueden actualizarse mediante
uno de estos métodos:
• Utilice la ficha Gestión de RTC de la ficha Puesta en funcionamiento de
EcoStruxure Machine Expert - Basic. Este método sólo está disponible en la
modalidad modalidad online (consulte EcoStruxure Machine Expert - Basic,
Guía de funcionamiento).
Puede elegir entre dos métodos:
◦ Manual: este método muestra un selector de hora/fecha y le permite
seleccionar manualmente la hora del logic controller.
◦ Automático: este método utiliza la hora del PC en el que se ejecuta
EcoStruxure Machine Expert - Basic.
Para obtener más información, consulte Gestión de RTC (consulte
EcoStruxure Machine Expert - Basic, Guía de funcionamiento).
• En un programa, mediante los bloques de funciones RTC, página 170.
• En modalidad online, actualice las palabras del sistema, ya sea de forma
directa o por programación mediante bloques de funciones, de %SW49 a %
SW53 o la palabra del sistema %SW59.
NOTA: La fecha y la hora sólo pueden definirse cuando la característica RTC
está disponible en su logic controller (consulte la guía de programación del
logic controller).

Utilización de %SW49 a %SW53


Para establecer la fecha y la hora utilizando las palabras de sistema de %SW49 a
%SW53, el bit %S50 debe establecerse en 1. Si %S50 está establecido en 1, el logic
controller no actualiza las palabras del sistema de %SW49 a %SW53. En un flanco
descendente de %S50 (%S50 establecido en 0), el RTC interno del controlador se
actualiza con los valores de %SW49 a %SW53. El controlador reanuda a
continuación la actualización de %SW49 a %SW53 mediante el RTC.
En esta tabla se indican las palabras del sistema que contienen los valores de
fecha y hora actuales (en BCD) para las funciones de reloj en tiempo real (RTC):

Palabra de sistema Descripción

%SW49 xN día de la semana (N=1 para el lunes)

%SW50 00SS: segundos

%SW51 HHMM: hora y minutos

%SW52 MMDD: mes y día

%SW53 CCYY: siglo y año

Consulte la guía de programación de su controlador para obtener una lista


completa de palabras y bits de sistema.
Ejemplo de programación:

Escalón Instrucción Comentario


0 LD %S50 –
R %S50
1 LD %I0.1 Consulte las Instrucciones de conversión de BCD/
[%SW50:=%MW11] binario, página 59.
[%SW51:=%MW12]
[%SW52:=%MW13]
[%SW53:=%MW14]
S %S50

218 EIO0000003292.03
Funciones de reloj

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.
Las palabras de %MW11 a %MW14 contienen la nueva fecha y hora (consulte
Revisión del código BCD, página 59) y corresponden a la codificación de las
palabras de %SW50 a %SW53.
NOTA: Se calcula automáticamente %SW49 (día de la semana) en función de
la fecha proporcionada.
La tabla de palabras debe contener la nueva fecha y hora:

Codificación Byte más significativo Byte menos significativo

%MW11 – Segundo

%MW12 Hora Minuto


%MW13 Mes Día
%MW14 Siglo Año

Ejemplo de datos para el 3 de junio de 2013:

Word Valor (hexadecimal) Significado

%MW11 0030 30 segundos

%MW12 1340 13 horas, 40 minutos

%MW13 0603 06 = junio, el día 03

%MW14 2013 2013

Utilización de %SW59
Otro método para actualizar la fecha y la hora es utilizar el bit de sistema %S59 y
la palabra de sistema de ajuste de fecha %SW59.
El establecimiento del bit %S59 en 1 permite configurar la fecha y la hora actuales
mediante la palabra %SW59. %SW59 aumenta o disminuye cada uno de los
componentes de fecha y hora en un flanco ascendente.
En esta tabla se describe cada bit de la palabra de sistema %SW59 para ajustar
los parámetros de fecha y hora:

Aumentar Reducir Parámetro


Bit 0 Bit 8 Día de la semana(1)

Bit 1 Bit 9 Segundos

Bit 2 Bit 10 Minutos


Bit 3 Bit 11 Horas
Bit 4 Bit 12 Días
Bit 5 Bit 13 Mes
Bit 6 Bit 14 Años
Bit 7 Bit 15 Siglos(1)

(1) El usuario no puede modificar (ni aumentar ni disminuir) el día de la semana ni los siglos.

Consulte la guía de programación de su controlador para obtener una lista


completa de palabras y bits de sistema.

EIO0000003292.03 219
Funciones de reloj

Ejemplo de aplicación
Este panel frontal se ha creado para modificar la hora, los minutos y los segundos
del reloj interno.

Descripción de los comandos:


• El conmutador de horas/minutos/segundos selecciona la visualización de la
hora para cambiarla mediante las entradas %I0.2, %I0.3 y %I0.4
respectivamente.
• El botón pulsador "+" aumenta la visualización del tiempo seleccionado
mediante la entrada %I0.0.
• El botón pulsador "-" reduce la visualización del tiempo seleccionado
mediante la entrada %I0.1.
Este programa lee las entradas del panel y ajusta el reloj interno:

Escalón Instrucción Comentario


0 LD %M0 –
ST %S59
1 LD %I0.2 Hora
ANDR %I0.0
ST %SW59:X3
2 LD %I0.2 –
ANDR %I0.1
ST %SW59:X11
3 LD %I0.3 Minuto
ANDR %I0.0
ST %SW59:X2
4 LD %I0.3 –
ANDR %I0.1
ST %SW59:X10
5 LD %I0.4 Segundo
ANDR %I0.0
ST %SW59:X1
6 LD %I0.4 –
ANDR %I0.1
ST %SW59:X9

NOTA: Consulte el procedimiento de reversibilidad, página 14 para obtener el


diagrama de contactos equivalente.

220 EIO0000003292.03
Glosario
A
ASCII:
(Código estándar estadounidense para el intercambio de información) Un
protocolo que representa caracteres alfanuméricos (letras, números y algunos
caracteres gráficos y de control).

B
bloque de funciones:
Una unidad de programación que dispone de una o varias entradas y devuelve
una o varias salidas. Los FBs se llaman mediante una instancia (copia del bloque
de funciones con nombre y variables dedicados), y todas las instancias tienen un
estado persistente (salidas y variables internas) de una llamada a otra.
Ejemplos: temporizadores, contadores

E
elemento condicional:
Permite implementar condiciones en el programa en modalidad offline.

elemento de bucle:
Permite implementar una secuencia de instrucciones en el programa en
modalidad offline.

entrada analógica:
Convierte los niveles de tensión o corriente recibidos en valores numéricos.
Puede almacenar y procesar estos valores en el controlador lógico.

L
lenguaje de diagrama de contactos:
Una representación gráfica de instrucciones de un programa de controlador con
símbolos para contactos, bobinas y bloques en una serie de escalones
ejecutados de forma secuencial por un controlador (consulte IEC 61131-3).

lenguaje de la lista de instrucciones:


Un programa escrito en el lenguaje de la lista de instrucciones que se compone
de una serie de instrucciones basadas en texto y ejecutadas secuencialmente
por el controlador. Cada instrucción incluye un número de línea, un código de
instrucción y un operando (consulte IEC 61131-3).

Q
%Q:
Según el estándar IEC, %Q representa un bit de salida (por ejemplo, un objeto de
lenguaje de tipo OUT digital).

R
registro de datos:
Almacena datos de los objetos o cadenas de forma permanente.

EIO0000003292.03 221
RTC:
(reloj de tiempo real) Un reloj calendario de fecha/hora con respaldo de batería
que funciona de forma continua aunque el controlador no reciba alimentación,
mientras dure la batería.

S
salida analógica:
Convierte los valores numéricos del controlador lógico y envía niveles de tensión
o corriente proporcionales.

%:
Según el estándar IEC, % es un prefijo que identifica direcciones de memoria
interna en el controlador lógico que se utilizan para almacenar el valor de las
variables del programa, constantes, E/S, etc.

222 EIO0000003292.03
dividir ...................................................................54
Índice %DR .................................................................. 154
Drum
configuration.................................................... 155
A description....................................................... 154
programming example...................................... 156
ABS .....................................................................69
ACOS...................................................................71
AND .....................................................................43
ANDF ...................................................................43
E
ANDN...................................................................43 ejemplos, código fuente .........................................14
ANDR...................................................................43 elemento condicional.............................................64
ASCII configuración .....................................................65
ejemplos ......................................................... 139 elemento de bucle .................................................66
ASIN ....................................................................71 configuración .....................................................66
Asistente Drum ................................................... 156 EQUAL_ARR ........................................................89
ATAN....................................................................71 EXCH................................................................. 129
EXP .....................................................................69
expresión de comparación
B insertar en escalones del diagrama de
contactos.........................................................18
bits de sistema
EXPT ...................................................................69
%S18................................................................29
bloques de comparación
insertar expresiones IL en...................................18
bloques de funciones
F
counter............................................................ 125 FALLING
definidos por el usuario..................................... 215 operador ...........................................................48
descripción general ............................................36 fechadores
Drum............................................................... 154 programación y configuración ........................... 168
Fechadores ..................................................... 165 FIND_ ..................................................................90
LIFO/FIFO register........................................... 148 flanco ascendente
message ......................................................... 131 detección con instrucción LDR ............................39
principios de programación ............................... 108 detección con operador RISING..........................39
%READ_VAR .................................................. 179 flanco descendente
Reloj en tiempo real (RTC) ............................... 170 detección con instrucción LDF ............................40
%SEND_RECV_MSG ...................................... 196 detección con operador FALLING .......................40
%SEND_RECV_SMS ...................................... 201 formato de dirección de entrada/salida....................22
shift bit register ................................................ 159 funciones de reloj
step counter .................................................... 162 ajuste de fecha y hora ...................................... 218
timer ............................................................... 112 descripción general .......................................... 216
%WRITE_READ_VAR ..................................... 191 marcas de fecha y hora .................................... 216
%WRITE_VAR................................................. 186 funciones definidas por el usuario......................... 214
bloques de funciones definidos por el usuario........ 215
bloques de operación
insertar instrucciones de asignación en ...............16 G
Grafcet ............................................................... 176
C
%C..................................................................... 125 H
cadenas de bits .....................................................32
código fuente, ejemplo de uso ................................14 herramientas
COS.....................................................................71 Objetos de accionamiento ................................ 178
counter objetos de red.................................................. 107
configuration.................................................... 126
description....................................................... 125
ejemplo de programación ................................. 128 I
%I ........................................................................22
incremento............................................................54
D instrucción NOP ....................................................63
DEG_TO_RAD .....................................................72 instrucciones
Desborde aritmético ..........................................................54
índice................................................................35 ASCII ................................................................74
desborde de índice ................................................35 booleano ...........................................................38
DINT_TO_REAL ...................................................73 comparación......................................................50
direccionamiento conversión de ángulo .........................................72
formato .............................................................23 conversión de ASCII a entero..............................76
Objetos de E/S ..................................................22 conversión de ASCII a flotante ............................79
disminución ..........................................................54 conversión de ASCII a palabra doble ...................82
conversión de entero a ASCII..............................77
EIO0000003292.03 223
conversión de enteros/flotantes...........................73 M
conversión de flotante a ASCII ............................81
conversión de palabra doble a ASCII ...................84 %M ......................................................................21
MAX_ARR ............................................................91
END..................................................................62
%MD ....................................................................28
intercambio ..................................................... 129
NOP .................................................................63 MEAN ..................................................................98
message
objetos de entrada/salida.................................. 105
configuration.................................................... 135
pila....................................................................85
ROUND ............................................................74 description....................................................... 131
salto..................................................................63 programming example...................................... 138
%MF ....................................................................28
SR ....................................................................67
subrutina ...........................................................67 MIN_ARR .............................................................91
tabla de objetos .................................................86 modbus
peticiones y ejemplos estándar ......................... 141
tablas de objetos................................................88
%MSG ............................................................... 131
trigonométricas ..................................................71
instrucciones aritméticas........................................54 multiplicar .............................................................54
%MW ...................................................................24
instrucciones booleanas ........................................38
instrucciones de asignación
cadenas de bits..................................................52
insertar en escalones del diagrama de N
contactos.........................................................16 N..........................................................................47
numérico ...........................................................51
palabras ............................................................53
tablas de objetos................................................87 O
instrucciones de comparación ................................50
instrucciones de conversión objetos
BCD/Binario ......................................................59 definición...........................................................20
una/dos palabras ...............................................61 dirección directa.................................................34
instrucciones de desplazamiento ............................58 dirección indexada .............................................34
instrucciones de intercambio estructurados.....................................................32
EXCH1............................................................ 129 indexados..........................................................34
EXCH2............................................................ 129 red .................................................................. 107
EXCH3............................................................ 129 software .......................................................... 108
instrucciones de la pila tablas................................................................32
MPP .................................................................85 Objetos de accionamiento.................................... 178
MPS .................................................................85 objetos de bit
MRD .................................................................85 bloque de funciones ...........................................37
Instrucciones de SR (subrutina)..............................67 objetos de bit de memoria
Instrucciones END.................................................62 descripción ........................................................21
instrucciones lógicas .............................................57 objetos de coma flotante
instrucciones numéricas descripción ........................................................28
desplazamiento .................................................58 objetos de palabra
INT_TO_REAL......................................................73 bloque de funciones ...........................................37
%IW .....................................................................22 descripción ........................................................24
%IWS...................................................................22 objetos de palabra doble
bloque de funciones ...........................................37
descripción ........................................................28
K objetos de red ..................................................... 107
OCCUR_ARR .......................................................92
%KD ....................................................................28 operaciones
%KF.....................................................................28 insertar en escalones del diagrama de
%KW....................................................................24 contactos.........................................................16
operador NOT.......................................................47
operadores
L AND..................................................................43
asignación.........................................................42
LD........................................................................40
LDF......................................................................40 carga ................................................................40
LDN .....................................................................40 FALLING ...........................................................48
NOT..................................................................47
LDR ............................................................... 39–40
LIFO/FIFO register OR....................................................................44
configuration.................................................... 149 RISING .............................................................48
XOR .................................................................45
description....................................................... 148
Operadores AND...................................................43
FIFO ............................................................... 152
LIFO ............................................................... 151 operadores de asignación ......................................42
operadores de carga .............................................40
programming example...................................... 153
Operadores OR.....................................................44
LKUP ...................................................................95
LN........................................................................69 operadores OR exclusivos .....................................45
LOG .....................................................................69 OR .......................................................................44
ORF .....................................................................44
ORN.....................................................................44
224 EIO0000003292.03
ORR.....................................................................44 descripción ...................................................... 162
ejemplo de programación ................................. 164
STN .....................................................................42
P SUM_ARR............................................................88
sumar...................................................................54
palabras de sistema %SW....................................................................24
%SW17.............................................................29 SWAP ..................................................................99
PID .................................................................... 173
potencia ...............................................................54
procesamiento numérico T
asignación.........................................................51
descripción general ............................................51 tablas
Propiedades de %Xi (paso de Grafcet) ................. 176 instrucciones en.................................................86
TAN......................................................................71
timer
Q configuration.................................................... 112
description....................................................... 112
%Q ......................................................................22 programming example...................................... 124
%QW ...................................................................22 TOF type ......................................................... 118
%QWS .................................................................22 TON type......................................................... 114
TP type ........................................................... 121
%TM .................................................................. 112
R TRUNC ................................................................69
R.................................................................. 42, 148
RAD_TO_DEG .....................................................72
raíz cuadrada........................................................54 U
READ_IMM_IN ................................................... 100 uso de ejemplos de código fuente...........................14
%READ_VAR ..................................................... 179
configuración ................................................... 183
descripción ...................................................... 179
ejemplo de programación ................................. 186
V
REAL_TO_DINT ...................................................73 valor absoluto .......................................................54
REAL_TO_INT......................................................73
registro de datos ................................................. 174
configuración ................................................... 175 W
restar....................................................................54
resto.....................................................................54 WRITE_IMM_OUT .............................................. 101
RISING %WRITE_READ_VAR......................................... 191
operador ...........................................................48 configuración ................................................... 193
ROL_ARR ............................................................93 descripción ...................................................... 191
ROR_ARR............................................................93 ejemplo de programación ................................. 195
RTC %WRITE_VAR .................................................... 186
configuration.................................................... 172 configuración ................................................... 188
descripción ...................................................... 186
ejemplo de programación ................................. 191
S
%S ................................................................. 21, 42 X
%SBR ................................................................ 159
%SC .................................................................. 162 %X .......................................................................21
%SCH ................................................................ 165 XOR.....................................................................45
schedule blocks XORF...................................................................45
descripción ...................................................... 165 XORN ..................................................................45
%SEND_RECV_MSG ......................................... 196 XORR ..................................................................45
configuración ................................................... 198
descripción ...................................................... 196
ejemplo de programación ................................. 200
%SEND_RECV_SMS.......................................... 201
configuración ................................................... 207
descripción ...................................................... 201
shift bit register
configuración ................................................... 160
descripción ...................................................... 159
programming example...................................... 161
SIN ......................................................................71
SORT_ARR ..........................................................94
SQRT...................................................................69
ST........................................................................42
step counter
configuración ................................................... 163

EIO0000003292.03 225
Schneider Electric
35 rue Joseph Monier
92500 Rueil Malmaison
France
+ 33 (0) 1 41 29 70 00
www.se.com

Debido a que las normas, especificaciones y diseños cambian


periódicamente, solicite la confirmación de la información dada en esta
publicación.

© 2022 Schneider Electric. Reservados todos los derechos.


EIO0000003292.03

También podría gustarte