Está en la página 1de 216

Machine Translated by Google

Informacion de seguridad

Información importante
Descargo de responsabilidad

Antes de intentar instalar, operar o mantener el equipo, lea atentamente las siguientes instrucciones y familiarícese con el equipo

viéndolas. La siguiente información especial puede aparecer

en otra parte de este documento o en el equipo para alertar al usuario sobre peligros potenciales o llamar la atención sobre

información que aclara o simplifica un proceso.

La adición de este símbolo a la etiqueta de seguridad "Peligro" o "Advertencia" indica que existe un riesgo

de descarga eléctrica y que el incumplimiento de las instrucciones de uso resultará en lesiones personales.

Este es un símbolo recordatorio de precaución de seguridad. Alerta al usuario de un posible riesgo de lesiones personales.

Cumpla con todas las precauciones de seguridad con este símbolo para evitar posibles lesiones personales o

incluso muerto.

Peligro

"Peligro" significa que existe una alta probabilidad de peligro, y el incumplimiento de las instrucciones
puede provocar lesiones personales graves o incluso la muerte.

Advertencia

"Advertencia" significa que existe un posible peligro y el incumplimiento de las instrucciones podría
provocar lesiones personales graves o incluso la muerte, o daños en el equipo.

Precaución

"Precaución" indica un posible peligro que podría provocar lesiones personales graves o daños al
equipo si no se siguen las instrucciones.

Precaución

"Precaución" (sin el símbolo de advertencia de seguridad) indica un peligro potencial que, si se


ignora, podría provocar daños en el equipo.

1
Machine Translated by Google

NOTA
La instalación, operación, reparación y mantenimiento de equipos eléctricos sólo debe ser realizada por

profesionales calificados. Shanghai Flexem Technology Co., Ltd. no es

responsable de las consecuencias derivadas del uso de este documento.

Un profesional calificado es una persona con habilidades y conocimientos relacionados con la fabricación y

operación de equipos eléctricos, que pueden detectar y evitar peligros relevantes después del

entrenamiento de seguridad.

2
Machine Translated by Google

Sobre este libro


Alcance del documento

El propósito de este documento es:

ÿ Presentar la instalación y desinstalación de FStudio Unified (en lo sucesivo, FSU)


software de programación

ÿ Presentar la descripción general básica de la programación de FStudio Unified (en lo sucesivo, FSU)
software

ÿ Introducir el uso del software de programación FStudio Unified (en lo sucesivo, FSU), y
como crear programas y tareas

NOTA: Lea y comprenda esta y toda la documentación relacionada antes de instalar, operar o

mantenimiento del controlador. El usuario debe leer el documento completo para comprender todos los
funciones del controlador.

Todos los derechos de interpretación de este libro pertenecen a Shanghai Flexem Technology Co., Ltd.

3
Machine Translated by Google

Peligro

Peligro de descarga eléctrica, explosión y arco voltaico


ÿ Antes de quitar cualquier cubierta protectora o puerta, o de instalar o quitar cualquier
accesorio, hardware, cables o alambres, desconecte todos los equipos de la alimentación
(incluidos los equipos conectados), excepto que se especifique lo contrario en la guía
de hardware correspondiente al equipo.
ÿ Siempre confirme que todo esté apagado usando los métodos apropiados y
equipos en los lugares y horarios indicados.
ÿ Vuelva a colocar y apriete todas las cubiertas protectoras, accesorios, hardware, cables y
alambres, y asegúrese de que la conexión a tierra sea correcta antes de encender el equipo.

ÿ Se debe usar el voltaje especificado al operar este equipo y


productos
Si no se siguen estas instrucciones, se producirán lesiones graves o la muerte.

Información sobre el producto


El equipo está diseñado para operar fuera de cualquier área peligrosa. El equipo solo debe instalarse
en un entorno seguro conocido.

Peligro
Riesgo de
explosión El equipo solo debe utilizarse en situaciones no peligrosas.
Si no se siguen estas instrucciones, se producirán lesiones graves o la muerte.

Pérdida de
control ÿ El diseñador de cualquier esquema de control debe considerar la posibilidad
de fallas en la ruta de control y proporcionar un medio para que ciertas funciones
críticas de control regresen a un estado seguro en caso de una falla en la ruta y
después de ella. Las paradas de emergencia y de sobrecarga, los cortes de
energía y los reinicios son todas funciones de control críticas.
ÿ Se deben proporcionar rutas de control separadas o redundantes para
funciones de control
ÿ Las rutas de control del sistema pueden incluir enlaces de comunicación. Se deben
tener en cuenta los retrasos de transmisión imprevistos o las fallas de conexión.
ÿ Cumpla con todas las normas de prevención de accidentes y las pautas de seguridad
locales. ÿ Para garantizar un funcionamiento correcto, el equipo debe probarse
exhaustivamente por separado para cada ejecución antes de ponerlo en uso.
Si no se siguen estas instrucciones, se producirá la muerte, lesiones graves o
daños al equipo.
Machine Translated by Google

Advertencia

Funcionamiento inesperado del dispositivo


ÿ Utilice únicamente software aprobado por Flexem para su uso con este
dispositivo. ÿ Actualice la aplicación cada vez que cambie la configuración
del hardware físico.
Si no se siguen estas instrucciones, se producirá la muerte, lesiones
graves o daños al equipo.

5
Machine Translated by Google

Tabla de contenido
Informacion de seguridad................................................ .................................................... .................................................... ...... 1
Sobre este libro............................................... .................................................... .................................................... ............. 3

Información sobre el producto .............................................. .................................................... .......................................... 4

Capítulo 1 Introducción............................................... .................................................... .................................................... ..9

1.1 Introducción a la programación.................................................... .................................................... ...............................9

Descripción general................................................. .................................................... .................................................... ........ 9

1.2 Ayuda del software .................................................. .................................................... .................................................... .. 9

Capítulo 2 Crear una instancia de programación simple........................................... .................................................... ...... 10

2-1 Nuevo proyecto .............................................. .................................................... .................................................... .......10

2-2 Ventana de nuevo proyecto ........................................... .................................................... .......................................... 10

2.1 Circuito de arranque, retención y parada ........................................... .................................................... .......... 11

2.2 Temporizador de llamadas................................... .................................................... .................................................... ...... 15

2.3 Contador de llamadas................................................ .................................................... .................................................... .. 19

2.4 Configurar tarea interrumpida.................................................... .................................................... .............................21

Capítulo 3 Introducción al software .............................................. .................................................... ....................................24

3.1 Obtener el software.................................................... .................................................... .......................................... 24

3.2 Instalación del software .................................................. .................................................... ...................................... 24

3.3 Interfaz.................................................. .................................................... .................................................... ........ 25

3.4 Comando Favoritos.................................................... .................................................... ...................................... 27

3.5 Tabla de referencias cruzadas ........................................... .................................................... .....................................28

3.6 Lista de Vigilancia .................................................. .................................................... .................................................... ......29

3.7 Todas las variables.................................................... .................................................... .................................................... .. 30

3.8 Diálogo de salida.................................................... .................................................... .................................................... 31

Capítulo 4 Implementación del estándar IEC61131-3 y FSU ........................................... ..........................................32

4.1 Norma IEC61131-3 .................................................. .................................................... ......................................32

4.2 Características de IEC61131-3 ................................................ .................................................... ..........................32

ÿ1ÿ Diversidad .................................................. .................................................... ..........................................32

ÿ2ÿ Compatibilidad ............................................... .................................................... ............................. 32

ÿ3ÿ Apertura ............................................... .................................................... .....................................33

ÿ4ÿ Legibilidad .................................................. .................................................... .................................... 33

ÿ5ÿ Conveniencia y seguridad de la operación ........................................... .......................................... 33

4.3 Aplicación ................................................ .................................................... .................................................... .... 33


4.3.1 Tarea ................................................ .................................................... .................................................... ......33

4.3.2 Variables Globales y Locales.................................................... .................................................... ..................... 34

4.4 Unidad de Organización del Programa ............................................... .................................................... ............................37


4.4.1 Estructura de la POU................................................ .................................................... ....................................38

6
Machine Translated by Google

4.4.2 Programa .............................................. .................................................... .......................................................... 39


4.4.3 Bloque de funciones ........................................... .................................................... .......................................... 40

4.4.4 Función .................................................. .................................................... ............................................. 41

4.5 Objeto de aplicación.................................................... .................................................... .......................................... 43

4.5.1 Matriz ................................................ .................................................... .................................................... ......43

4.5.2 Tipo de datos definido por el usuario.................................... .................................................... ..........................45

4.6 Elementos Comunes y Variables ............................................... .................................................... ..........47

4.6.1 Delimitador ............................................... .................................................... .................................................... 47

4.6.2 Palabra clave................................................ .................................................... .................................................... 50


4.6.3 Constante ............................................. .................................................... ............................................. 52

4.6.4 Color de sintaxis ............................................. .................................................... ............................................ 56 4.6.5

Espacio y Comentario................................................. .................................................... .........................56

4.7 Expresión y Declaración de Variables.................................................... .................................................... ...... 57


4.7.1 Variables................................................. .................................................... .................................................... 57

4.7.2 Identificador................................................ .................................................... .................................................... 57

4.7.3 Declaración de variables ............................................... .................................................... ............................. 58

4.8 Tipo e Inicialización de Variables.................................................... .................................................... .......... 59

4.8.1 Tipo de variable ........................................... .................................................... ..........................................59


4.8.2 Inicialización de Variables......................................... .................................................... ........................61

4.8.3 Mapeo de Variables................................................ .................................................... .............................62

Capítulo 5 Lenguajes de programación ............................................... .................................................... ............................63 5.1

Diagrama de escalera ............... .................................................... .................................................... .......................... 63

5.1.1 Lenguaje de programación de diagrama de escalera .................................. ............................................. 63


5.1.2 Elemento de conexión ............................................... .................................................... ............................. 64

5.1.3 Ejemplos de aplicación ........................................... .................................................... .............................71

5.2 Texto estructurado ST .................................................. .................................................... .......................................... 72

5.2.1 Lenguaje de programación de texto estructurado ST .................................. .......................................... 72


5.2.2 Declaración de comando ........................................... .................................................... ............................. 73

5.2.3 Ejemplos de aplicación ............................................. .................................................... ............................82

Capítulo 6 Sistema de Comando .................................................. .................................................... ..........................................83


6.1 Comandos básicos ............................................... .................................................... ............................................ 84

(1) Flip-Flop Set-Eeset ........................................... .................................................... ....................................84

ÿ2ÿ Restablecer-Establecer Flip-Flop .................................. .................................................... .................................... 85

(3) Disparador de detección de borde ascendente .................................. .................................................... .............86

(4) Disparador de detección de flanco descendente .................................. .................................................... .............87

6.2 Comandos lógicos bit a bit.................................................. .................................................... ...............................88

(1) Bit a bit Y .............................................. .................................................... ..........................................88

(2) Bit a bit O .................................................... .................................................... ............................................. 89

ÿ3ÿ XOR bit a bit ............................................... .................................................... ..........................................90

ÿ4ÿ Bit a bit NO ............................................... .................................................... ..........................................91

7
Machine Translated by Google

6.3 Comando Temporizador ........................................... .................................................... .............................................92

ÿ1ÿ Temporizador de pulso TP ........................................... .................................................... ..........................................92

ÿ2ÿ TON Temporizador On-Delay........................................... .................................................... ............................. 93

ÿ3ÿ Retardo de apagado del temporizador TOF ........................... .................................................... ...............................94

(4) Reloj RTC en tiempo real ........................................... .................................................... ...............................95

6.4 Contracomando.................................................... .................................................... ..........................................97

ÿ1ÿ Contador de conteo de CTU ........................................... .................................................... ..........................97

(2) Contador de cuenta regresiva CTD ........................................... .................................................... ......................98

ÿ3ÿ Contador de conteo progresivo/regresivo CTUD .................................. .................................................... ............... 99

6.5 Comando de operación .................................................. .................................................... .................................... 101

6.6 Comando aritmético ............................................... .................................................... ....................................111

6.7 Comando de conversión de datos ............................................... .................................................... .........................119

6.8 Comando de comparación de datos ............................................... .................................................... .......................121

6.9 Comando de control de caracteres ........................................... .................................................... ...................... 127

6.10 Comando de operación de tiempo ........................................... .................................................... ........................136

6.11 Desplazamiento Izquierda-Derecha.................................... .................................................... .............................................140

6.12 Selección ................................................ .................................................... .................................................... ... 144

6.13 Comandos PIN ............................................... .................................................... ..........................................149

6.14 Comandos de puerto libre ........................................... .................................................... ...............................151

6.15 CUALQUIER tipo de análisis .................................................. .................................................... ..........................155 Capítulo

7 Programación básica ........... .................................................... .................................................... ......................156

7.1 Funcionamiento básico de la FSU ........................................... .................................................... .....................................156

7.1.1 Iniciar FSU................................................ .................................................... .......................................................156

7.1.2 Proyecto nuevo................................................ .................................................... ..........................................156 7.1.3

Programa nuevo/ Bloque de función/Función .................................................. ............................................ 157

7.1.3.1 Exportación e importación de programa/bloque de función/función.................................... ......................157

7.1.3.2 Exportación e importación de programas/bloques de funciones/funciones cifrados.................................. .. 158

7.1.4 Nueva tarea ........................................... .................................................... ............................................. 160

7.1.5 Llamar programa en tarea ........................................... .................................................... .............................160

7.1.6 Comando Swith Habilitar EN/ENO.................................... .................................................... ........ 161

7.1.7 Estado del disparador del comando Switch (flanco ascendente, flanco descendente, negación) .................................. .162

7.2 Configuración del hardware del PLC ............................................... .................................................... ....................... 162

7.2.1 Configuración del cuerpo de la CPU ........................................... .................................................... ..................... 163

7.2.2 Configuración de Salidas Digitales .................. .................................................... ..........................................163

7.2.3 Configuración de Entradas Digitales........................................... .................................................... ...........164 7.2.4

Configuración de entradas analógicas .................. .................................................... ..........................................165

7.2.5 Configuración de la salida analógica........................................... .................................................... ............. 165

7.2.6 Comunicación serie ModbusRTU.................................................. .................................................... .. 166

7.2.7 Configuración de Modbus-TCP........................................... .................................................... .......... 170

7.2.8 Protección del Proyecto................................................ .................................................... ............................. 173

8
Machine Translated by Google

7.3 Asignación de direcciones de hardware ............................................... .................................................... ..........175

7.4 Depuración del programa ............................................... .................................................... ..........................................177


7.4.1 Monitoreo en línea ............................................... .................................................... ..........................................177

7.4.2 Forzar componente booleano.................................................. .................................................... .......... 178


7.4.3 Valor forzado variable................................................ .................................................... ......................... 179

7.4.4 Gráfico de tendencia del monitor.................................... .................................................... ............................. 180

7.4.5 Comparación de proyectos ............................................. .................................................... .............................181


7.4.6 Ver Código ST.................................................... .................................................... ........................................183

7.4.7 Ver el ciclo de operación real........................................... .................................................... ........ 184

Capítulo 8 Resolución de problemas ........................................... .................................................... ..........................................185


8.1 Información de estado del indicador ........................................... .................................................... ........................ 185

8.1.1 Información sobre el estado de la luz RUN .................................. .................................................... ............. 185

8.1.2 Información de estado de las luces SL1, SL2 .................................. .................................................... ........185

8.1.3 Información sobre el estado de la luz ETH.................................... .................................................... ............. 185


8.2 Información de estado del indicador del módulo de extensión .................................. .......................................... 186

8.2.1 Información de estado del indicador ERR del módulo de extensión .................................. ..........................186

8.3 Actualización de firmware ........................................... .................................................... ............................. 187

9
Machine Translated by Google

Capítulo 1 Introducción

1.1 Introducción a la programación

Descripción general

FSU proporciona un entorno de configuración y programación para los PLC Flexem y proporciona al usuario

con la lógica necesaria para desarrollar, editar y monitorear aplicaciones de control. Este software sigue estrictamente

el estándar internacional IEC-61131-3 y brinda soporte para dos de los lenguajes de programación, lenguaje

de escalera y lenguaje estructurado. FSU puede estandarizar la programación usando la escalera estándar

o lenguaje estructurado o una combinación de ambos, según los requisitos del usuario.

Diseño de software

El diseño del software FSU se divide principalmente en tres áreas: la barra de menú a la izquierda, la edición

área de configuración de hardware/área en el medio, y la barra de herramientas a la derecha. Consulte 3.3 -

Interfaz en este manual para la introducción de la interfaz específica y las funciones correspondientes.

10
Machine Translated by Google

1.2 Ayuda del software

Después de ingresar a la interfaz del software, los usuarios pueden encontrar el manual de ayuda de este producto en la barra de herramientas

Ayuda o presione directamente F1 y use la tecla de acceso directo para recuperar el manual de ayuda del software del objeto

correspondiente al enfoque del mouse en ese momento para resolver todo tipo de problemas encontrados.

11
Machine Translated by Google

Capítulo 2 Crear una programación simple


Instancia
Los usuarios pueden crear un nuevo proyecto en blanco usando el botón Archivo --> Nuevo proyecto en la barra de herramientas, como se muestra en

Figura 2-1.

Figura 2-1 Nuevo proyecto

Los usuarios pueden editar el nombre del nuevo proyecto, su ubicación de almacenamiento, atributos y notas del proyecto en el

interfaz emergente posterior, como se muestra en la Figura 2-2.

Figura 2-2 Ventana de Nuevo Proyecto

12
Machine Translated by Google

Después de crear el proyecto, puede hacer clic en el botón Tarea en la pestaña izquierda y luego seleccionar el Programa

Unidad de organización para comenzar a editar todo el programa del proyecto, como se muestra en la Figura 2-3.

Figura 2-3 Árbol de POU del proyecto

2.1 Circuito de arranque, retención y parada


En el programa, seleccione Programa principal para editar (ladder) y haga doble clic para agregar un contacto normalmente abierto,

como se muestra en la Figura 2-4.

Figura 2-4 Haga doble clic para agregar un contacto normalmente abierto

Después de agregar un contacto, puede declarar una variable para el contacto que se encuentra arriba (también puede declarar por

haciendo clic en Agregar en la tabla de variables anterior), por ejemplo, ingrese X1 aquí como el nombre de la variable declarada,

y aparecerá un cuadro de diálogo de declaración cuando termine de ingresar, como se muestra en la Figura 2-5.

11
Machine Translated by Google

Figura 2-5 Declaración de la variable local X1


Después de completar los elementos requeridos en la Figura 2-5 (se requiere tipo de variable, nombre y tipo de datos, otros

son opcionales), la declaración de la variable X1 se completa y la interfaz que se muestra en la Figura 2-6 es

obtenido.

Figura 2-6 Declaración de variable X1 exitosa

Haga doble clic en la flecha en el extremo derecho de la variable X1 del contacto normalmente abierto, agregue una bobina a la salida Y1

y declare Y1 de la misma manera que declara X1, como se muestra en la Figura 2-7.

12
Machine Translated by Google

Figura 2-7 Agregue un Y1 y declare

Siga los pasos anteriores para crear un nuevo contacto normalmente cerrado X2 a la derecha del normalmente abierto

contacto X1, como se muestra en la Figura 2-8.

Figura 2-8 Crear contacto normalmente cerrado X2

Seleccione el lado izquierdo del contacto X1, como se muestra en la Figura 2-9.

Figura 2-9 Seleccione el lado izquierdo del contacto X1

Luego haga clic New Branch en los favoritos de acceso directo debajo de la tabla de variables y el diagrama de escalera

será como se muestra en la Figura 2-9 a continuación.

Figura 2-10 Nueva sucursal

Seleccione la nueva flecha en la figura y haga doble clic en ella, aparecerá una nueva bobina, seleccione y haga clic en el lado izquierdo para

agregar un contacto Y1 normalmente abierto, Y1 no necesita ser declarado aquí porque el Y1

variable ha sido declarada antes. Después de crear el contacto normalmente abierto Y1, elimine la salida en blanco

bobina en el lado derecho y se convierte en una flecha, como se muestra en la Figura 2-11

13
Machine Translated by Google

Figura 2-11 Crear un nuevo contacto Y1 normalmente abierto

y elimine la bobina de salida en blanco en el lado derecho

Seleccione la flecha derecha y haga clic en el botón Fusionar sucursales en la barra de herramientas para fusionar el

ramas, como se muestra en la Figura 2-12.

*Nota:

Esta flecha se puede generar eliminando el componente más a la derecha (comando, bobina) de todo el

programa.

Figura 2-12 Combinar ramas

Además, la FSU proporciona un modo de edición de escalera más fácil y eficiente y una operación para

declarar variables del mismo tipo:

· Operación de arrastre: los usuarios pueden terminar el paralelo del LAD y otras operaciones manteniendo presionado

el botón izquierdo del mouse en el punto de inicio de la conexión y arrastrándolo hasta el punto final, lo que ahorra en gran

medida los pasos de la operación, como se muestra en la Figura 2-13.

Figura 2-13 Operación en paralelo fácil y eficiente

Después de completar las operaciones anteriores, haga clic en el botón de compilación en la barra de herramientas de arriba para compilar

(como se muestra en la Figura 2-14). Si la compilación pasa, un simple circuito de inicio, retención y parada tiene

sido completado

14
Machine Translated by Google

Figura 2-14 Botón de compilación

Consejos: Al declarar el mismo tipo de variable que la declarada arriba, simplemente seleccione la línea y

haga clic en Nuevo para crear una nueva variable del mismo tipo que la línea seleccionada, las variables se nombran en orden, los

pasos son los siguientes.

1. Seleccione las variables que deben usarse como plantillas de nombres.

2. Haga clic en el botón Nuevo en la esquina superior izquierda.

3. Genere la nueva variable, que es del mismo tipo que las variables utilizadas como plantillas de nombres, excepto por
los nombres de las variables.

Como se muestra en la Figura 2-15.

Figura 2-15 Acceso directo a nueva variable

2.2 Temporizador de llamadas

Cree nuevas variables X1 e Y1, conéctelas con un contacto normalmente abierto y una bobina de salida

respectivamente, los pasos de operación como se indica arriba y los resultados como se muestra en la Figura 2-16.

15
Machine Translated by Google

Figura 2-16 Nuevo contacto normalmente abierto X1, bobina de salida Y1

Haga clic en la pestaña Caja de herramientas en la barra de herramientas en el lado derecho de la interfaz para que aparezca la interfaz como se muestra

en la Figura 2-17.

Figura 2-17 Interfaz de la caja de herramientas

Abra la caja de herramientas, seleccione TON Timer On-Delay y arrástrelo entre X1 e Y1 para que aparezca el Nuevo

Ventana de instancia, como se muestra en la Figura 2-18.

dieciséis
Machine Translated by Google

Figura 2-18 Interfaz de nueva instancia

Rellene el nombre de la creación de instancias en la ventana Nueva instancia (no se puede repetir el nombre de la variable), elija

active o desactive la opción habilitar control (seleccione desactivado en este ejemplo), haga clic en Aceptar y obtenga el resultado como

se muestra en la Figura 2-19.

Figura 2-19 Nueva instancia TON_1

Haga clic en el pin PT en el lado izquierdo de la instancia TON_1 para agregar una variable de tipo TIME o asignarla

directamente al PT con T#*** (p. ej., T#2s o T#200ms). (Elija agregar una variable Test_Time1 aquí). Similarmente,

agregue una variable Test_Time2 en el pin ET, tenga en cuenta que solo las variables pueden usarse en ET y no asignarse directamente,

resultado como se muestra en la Figura 2-20.

17
Machine Translated by Google

Figura 2-20 Agregar variables Test_Time1 y Test_Time2 del tipo Time

Cumplir por fin, y si la compilación pasa, se completa un programa de escalera de salida temporizado simple.

NOTA: 1) TON es el Timer On-Delay, sus pines PT y ET son de tipo TIME, IN y Q son de tipo BOOL,

PT es el tiempo establecido, ET es el tiempo real actual (por lo que no se puede asignar directamente), después de detectar IN es

Cierto, la variable del pin ET comienza a cronometrar, cuando ET=PT, Q emite Verdadero. El tipo de datos se muestra

en la Figura 2-21.

2) Si desea modificar rápidamente los atributos de una variable después de conectarla al pin TON_1, simplemente

seleccione la variable correspondiente y presione SHIFT+F2 para que aparezca la modificación correspondiente
ventana.

18
Machine Translated by Google

Figura 2-21 Bloque de función TON Introducción

2.3 Contador de llamadas

En la misma operación que la anterior, declare X1, Y1 y la instancia CTU_1, respectivamente, y cree normalmente

contacto abierto X1, salida de bobina Y1 e instancia de contador ascendente CTU_1, respectivamente, como se muestra en la Figura

2-22.

Figura 2-22 Cree el contacto normalmente abierto X1, la salida de bobina Y1 y la instancia de contador progresivo CTU_1

Como la operación anterior, cree y declare las variables X2, Test_Int y Test_Int1 en R, PV y CV,

respectivamente (los números se pueden usar directamente para la asignación en PV, pero en este caso, la variable Test_Int es

elegido) como se muestra en la Figura 2-23.

19
Machine Translated by Google

Figura 2-23 Contador de cuenta progresiva de CTU de llamadas

Cumplir por fin, y si la compilación pasa, un simple programa de escalera de salida de contador de cuenta ascendente es

terminado.

NOTA:

1. CTU es el bloque de función de contador ascendente, el pin R es el tipo BOOL de restablecimiento, el pin PV es el tipo INT máximo

de conteo ascendente (los números se pueden usar directamente para la asignación), CV es el valor de conteo actual (solo

se pueden utilizar variables), Q es el tipo BOOL de salida y CU es el tipo BOOL de entrada. El valor de CV se suma en uno cuando la

entrada CU detecta una señal de pulso de flanco ascendente, y Q emite True cuando CV=PV. CV

se establece en 0 cuando R es verdadero. el tipo de datos se muestra en la Figura 2-24.

Figura 2-24 Introducción a la CTU

2. Además del bloque de función del contador de cuenta ascendente CTU, el software también proporciona cuenta regresiva CTD

bloque de función de contador y CTUD Bloque de función de contador reversible de conteo ascendente/descendente CTUD, consulte

la sección de comando para más detalles.

20
Machine Translated by Google

2.4 Configurar tarea de interrupción

Haga clic con el botón izquierdo en la opción de variable global en el árbol de POU a la izquierda y luego haga clic con el botón izquierdo en "Nuevo" en la parte superior izquierda

esquina de la interfaz emergente para crear dos nuevas variables globales de tipo BOOL y renombrarlas como

Test_GVL1 y Test_GVL2, como se muestra en la Figura 2-25.

Figura 2-25 Crear nueva variable global Test_GVL

Seleccione el programa principal nuevamente y agregue un segmento de programa y las variables requeridas siguiendo las

operaciones anteriores, como se muestra en la Figura 2-26.

Figura 2-26 Crear programa principal

Haga clic con el botón derecho en la opción del programa en el árbol de POU a la izquierda, seleccione Nueva unidad de organización del programa, seleccione

Ladder en la ventana emergente y nombre el nuevo programa como Prueba, como se muestra en la Figura 2-27.

21
Machine Translated by Google

Figura 2-27 Crear nuevo programa de prueba

Agregue el segmento de programa y las variables como se muestra en la Figura 2-28 al programa de prueba siguiendo las

pasos anteriores. (No hay contenido en la tabla de variables locales porque todas son variables globales)

Figura 2-28 Programa de prueba

22
Machine Translated by Google

Haga clic con el botón derecho en la opción de configuración de la tarea en el árbol de la POU de la izquierda, seleccione Nueva tarea, nombre la nueva tarea como

Test_1 en la interfaz emergente, establezca su prioridad en 0 (la más alta) en la esquina superior izquierda de la interfaz, modifique

su tipo a Evento y seleccione Test_GVL1 como disparador. Haga clic para agregar llamada, seleccione el programa de llamada como prueba,

y el resultado se muestra en la Figura 2-29.

Figura 2-29 Crear nueva tarea y configurar

Por último, haga clic en el botón Compilar, si la compilación pasa, se ha configurado una tarea de interrupción. Cuándo

la función Main se ejecuta para que el valor de la variable Test_GVL1 sea True, la tarea Test_1 será

llamado, y el programa de prueba configurado en la tarea Test_1 se ejecutará para que el valor de Test_GVL2 también

se convierte en Verdadero.

NOTA: Para más operaciones, consulte 7.1 Operaciones básicas de FSU.

23
Machine Translated by Google

Capítulo 3 Introducción al software

3.1 Obtener el Software


Inicie sesión en el sitio web oficial de Flexem, seleccione el software del programa en el menú superior para encontrar la

última versión de FSU. Después de descargar el software, puede instalarlo. Después de instalar el software, puede

también actualice el software a través de "Buscar actualizaciones" en el menú Ayuda.

3.2 Instalación del software


Después de descargar el software, haga doble clic en el archivo .exe para ingresar a la instalación, la instalación

asistente guiará al usuario a través de todo el proceso de instalación.

La instalación predeterminada del programa es "solo para usuarios personales", o puede cambiarla a "instalar para todos".

usuarios" según sea necesario, y la ruta predeterminada se instala en la unidad C:, también puede definir la ruta de

instalación según sea necesario. El proceso de instalación se muestra en la Figura 3-1 a continuación.

24
Machine Translated by Google

3.3 Interfaz

Figura 3-2 Interfaz de edición de FSU

Figura 3-3 Interfaz de botón

ÿBotón de compilación: realiza la operación de compilación en el proyecto.

ÿBotón de enlace: Haga clic para conectar/desconectar el PLC.

ÿBotón Cargar: Cargue el archivo fuente del proyecto a la PC si existe en el PLC, y puede elegir abrirlo
directamente.

25
Machine Translated by Google

ÿBotón Descargar: el proyecto se compilará y descargará en el PLC; si no se marca, el archivo fuente


no se descargará.

ÿBotón Ejecutar: Cambia el PLC al estado de ejecución.

ÿBotón de pausa: cambia el PLC al estado de pausa.

ÿBotón Unfore all: Desbloquea el estado forzado de todos los componentes.

ÿBotón de monitor: ingresa al modo de monitor y muestra los valores en tiempo real de cada
componente del programa.

Esta interfaz es la interfaz principal para programar, editar y configurar el proyecto, que se divide en la interfaz de

configuración del árbol de POU (1) a la izquierda, la barra de herramientas de depuración (2) en la parte superior central,

la tabla de variables locales (3), el área de edición de programas (4) y la caja de herramientas y la ventana de búsqueda

más a la derecha (5). En la parte inferior de la interfaz, hay opciones para monitorear, cruzar referencias, todas las variables y

resultados de búsqueda, etc

La mayoría de las operaciones en el programa se pueden realizar en esta interfaz.

Figura 3-4 Interfaz de configuración de hardware

Esta interfaz es la interfaz de configuración de hardware de FSU, dividida principalmente en el hardware

menú de configuración a la izquierda, la interfaz de opciones de configuración específica del hardware en el medio y

la interfaz de selección del modelo de hardware a la derecha.

Esta interfaz permite al usuario completar la configuración del cuerpo principal de hardware del FL5 y su

módulo de extensión, y para consultar el uso real de asignación de E/S y otra información de hardware, la importancia

de esta interfaz no se puede ignorar en el proceso de completar el proyecto.

26
Machine Translated by Google

3.4 Comando Favoritos


favoritos de comando es una operación conveniente proporcionada por FSU para que los usuarios accedan rápidamente con frecuencia

comandos usados, ubicados como se muestra en la Figura 3-5.

Figura 3-5 comando favorito

El usuario puede agregar, eliminar comandos en los favoritos de comandos para adaptarse mejor a las necesidades y hábitos de diferentes

usuarios

Agregar: en la caja de herramientas de comandos a la derecha, haga clic con el botón derecho en el comando que debe agregarse

a los favoritos de comandos y haga clic en Agregar a favoritos para completar la operación de agregar, como se muestra en la Figura 3-6

abajo.

Figura 3-6 Agregar comando al comando favorito

Sugerencias: hay un comando vacío en el comando favorito de forma predeterminada, puede arrastrarlo primero y luego

ingrese el nombre del comando a través del teclado.

27
Machine Translated by Google

Eliminar: los usuarios pueden seleccionar el comando que se eliminará en los favoritos de comandos, hacer clic con el botón derecho y seleccionar

Quitar de favoritos para quitar el comando de los favoritos, y todavía puede agregarlo y recuperarlo de

la caja de herramientas

Figura 3-7 Eliminar comando del favorito de comandos

3.5 Tabla de referencias cruzadas


La tabla de referencias cruzadas en FSU se puede ver de varias maneras, y los usuarios pueden optar por hacer clic en la referencia

cruzada en la parte inferior de la interfaz para llamar, como se muestra en la Figura 3-8 a continuación.

Figura 3-7 Tabla de referencias cruzadas de llamadas 1

28
Machine Translated by Google

El usuario también puede abrir la tabla de referencias cruzadas para una variable en FSU haciendo clic derecho en la variable

referencia cruzada y seleccionando la opción Referencia cruzada (como en la Figura 3-9 a continuación), así como

la opción Referencia cruzada a la derecha de la tabla de variables cuando se monitorea en línea.

Figura 3-9 Tabla de referencias cruzadas de llamadas 2

La tabla de referencias cruzadas proporciona una manera clara y conveniente para que los usuarios vean las llamadas a las variables, lo

que puede ser muy útil al editar un proyecto. La tabla de referencias cruzadas de la FSU proporciona

información sobre cada llamada a una variable, como el POU de la llamada, el tipo de acceso, la ubicación de

la llamada y el rango válido.

Figura 3-10 Tabla de referencias cruzadas de llamadas

3.6 Lista de Vigilancia

En el estado de monitor en línea, FSU proporciona una interfaz que permite al usuario recopilar todas las variables que

necesitan ser monitoreados juntos, es decir, una lista de vigilancia. Puede hacer clic derecho en la variable que desea agregar

el estado de monitoreo en línea y seleccione Agregar monitoreo. Después de agregar, puede encontrar el botón Monitoreo

en la parte inferior de la interfaz de FSU y haga clic izquierdo en él para abrirlo y mostrar el estado actual de todos los

variables monitoreadas, como se muestra en la Figura 3-11

29
Machine Translated by Google

Figura 3-11 Lista de vigilancia abierta

3.7 Todas las variables

Se proporciona una ventana en FSU para que el usuario vea todas las variables y su información, que se puede

puede ver haciendo clic en Todas las variables en la parte inferior, como se muestra en la Figura 3-12.

Figura 3-12 Abrir todas las variables

En la tabla de la tabla Todas las variables, los usuarios pueden ver todo tipo de información de todas las variables en el proyecto,

como POU, tipo de variable, dirección, rango válido, número de usos y comentarios. Esta función ayuda

el usuario comprender más fácilmente el uso de todas las variables en el proyecto, como se muestra en la Figura 3-13.

Figura 3-13 Tabla de todas las variables

30
Machine Translated by Google

3.8 Diálogo de salida


El botón de diálogo de salida se encuentra en la parte inferior izquierda de toda la interfaz, como se muestra en la Figura 3-14
abajo.

Figura 3-14 Diálogo de salida

Esta interfaz le permite ver la salida del compilador y sus mensajes de error y advertencia, como

se muestra en la Figura 3-15 a continuación.

Figura 3-15 Contenido del cuadro de diálogo de salida

31
Machine Translated by Google

Capítulo 4 Norma IEC61131-3 y FSU


Implementación

4.1. Estándar IEC61131-3


Dado que la FSU se desarrolla completamente en base a la norma IEC 61131-3, el concepto de IEC 61131-3

necesita ser presentado aquí.

IEC 61131-3 es la parte 3 del estándar IEC 61131 desarrollado por International Electrotechnical

Comisión (IEC) en diciembre de 1993 para estandarizar los sistemas de programación para lógica programable

(PLCs), DCS, IPC, CNC y SCADA, y la aplicación de la norma IEC 61131-3 se ha convertido en tendencia en el campo del

control industrial. IEC 61131-3 especifica la sintaxis y la semántica del programable

lenguaje del controlador, define cinco lenguajes de programación y define el modelo de software básico a través de

definiciones formales, sintaxis y descripciones semánticas (parciales) y ejemplos. En el caso de los PLC, la

El software de edición solo necesita cumplir con la especificación estándar internacional IEC 61131-3, de modo que

la estructura del lenguaje de conformidad con cada estándar se puede utilizar para crear programas que se pueden

entendido por cualquiera.

4.2. Características de IEC61131-3

(1) Diversidad

Hay cinco lenguajes de programación diferentes, que se dividen en dos categorías: gráficos

lenguaje de programación y lenguaje de programación basado en texto. Especialmente cuando se trata de grandes

proyectos, los usuarios pueden combinar e integrar múltiples lenguajes de programación en un proyecto de acuerdo con el

necesidades reales, a fin de realizar la optimización de la programación y proporcionar un buen entorno operativo para la

aplicación de controladores programables.

(2) Compatibilidad

A medida que se adoptan los estándares internacionales de lenguajes de programación, se aplica a los lenguajes programables

controladores, sistema de control distribuido, sistema de control de bus de campo, adquisición de datos y sistemas

visuales, sistemas de control de movimiento, etc. Y el modelo de software se aplica para aplicaciones industriales en diferentes

industrias y estructuras. Como resultado, el lenguaje de programación estándar incorpora la importante

característica de ser más independiente del hardware utilizado y menos dependiente del especificado

proveedor de hardware para el usuario.

32
Machine Translated by Google

(3) Apertura

La estandarización de los lenguajes de programación trae otro beneficio de hacer que los sistemas sean abiertos. Ninguna

producto producido por un proveedor que se ajusta a un lenguaje de programación estándar se puede programar

usando el lenguaje de programación estándar, esencialmente cortó la dependencia entre el software

y el hardware específico. Sin embargo, en la actualidad, es difícil lograr un completamente sin modificar

software, por ejemplo, las direcciones de E/S de los terminales externos de diferentes controladores programables pueden ser

diferentes, y las definiciones de dirección correspondientes deben volver a ingresarse durante la transferencia.

(4) Legibilidad

Una gran cantidad de expresiones en el lenguaje de programación son similares a las de la computadora común.

lenguajes de programación. Por ejemplo, las declaraciones de selección como IF y CASE, y las declaraciones de bucle como

FOR, WHILE y REPEAT, son similares a los lenguajes de programación de computadoras, que en gran medida

facilita la comprensión del usuario del uso del lenguaje estándar y mejora la legibilidad de

programas

ÿ5ÿ Operación Conveniencia y Seguridad

En general, la facilidad de operación y la seguridad son contradictorias, pero en este estándar, han sido

combinado orgánicamente. El lenguaje de programación estándar es una continuación, mejora y extensión de los lenguajes de

programación informáticos comunes, por lo que conserva las ventajas de estos

lenguajes de programación y supera las desventajas, haciéndolo más fácil de operar; al mismo

tiempo, debido a que estos lenguajes son estándar, la probabilidad de error se ha controlado al mínimo,

hacer que el lenguaje de programación sea más seguro.

4.3. Solicitud

La aplicación en la FSU es una colección de objetos que se necesitan para ejecutar programas en un dispositivo de hardware

(SOCIEDAD ANÓNIMA). El usuario puede gestionarlos en la Unidad de Organización del Programa (POU). Los objetos de la aplicación incluyen

tareas, POU, configuraciones de tareas, variables globales, administradores de bibliotecas, seguimientos de muestras, etc. Diferentes

Los objetos de aplicación tienen diferentes ámbitos válidos y se pueden llamar desde ellos.

4.3.1. Tarea
Un programa puede estar escrito en diferentes lenguajes de programación. Un programa típico generalmente consiste en un

número de bloques de función que intercambian datos entre sí. Dentro de un programa, la ejecución de

diferentes partes está controlada por "tareas". Una "tarea" se configura para que una serie de programas o funciones

los bloques pueden comenzar a ejecutar un programa periódicamente o desencadenados por un evento específico.

33
Machine Translated by Google

En el árbol de POU de la izquierda, se encuentra la opción "Configuración de tareas", que se puede utilizar para controlar la

procesamiento de ejecución de otras subrutinas dentro del proyecto. Una tarea se utiliza para especificar los atributos de una unidad

de organización del programa en tiempo de ejecución, y es un elemento de control de ejecución con capacidad de llamada. Una vez

se establece una tarea, puede controlar la ejecución del ciclo del programa o iniciar la ejecución por un evento específico

generar.

En la configuración de la tarea, se define por nombre, prioridad y tipo de inicio de la tarea. El tipo de inicio se puede definir

por tiempo (período) o por un evento (tarea de activación interna o externa), por ejemplo, utilizando el flanco ascendente de un valor booleano

variable global o un evento específico en el sistema. Para cada tarea, se puede establecer una secuencia de programas que

es iniciado por la tarea. Si esta tarea se ejecuta durante el ciclo actual, estos programas se procesan en

la duración de un ciclo.

La combinación de prioridades y condiciones determinará la secuencia de tiempo de ejecución de las tareas. Él

La interfaz de ajustes de configuración de tareas específicas se muestra en la Figura 4-1.

Figura 4-1 Interfaz de configuración de tareas

NOTA: Las tareas tienen atributos correspondientes y deben seguir las siguientes reglas al configurar

a ellos.

1ÿ Los programas de procesamiento y llamada se ejecutan en orden de arriba hacia abajo según la tarea

configuración.

4.3.2. Variables globales y locales

El alcance de una definición de variable determina la Unidad de organización del programa (POU) en la que se encuentra.

permite ser llamado, y se divide en variables globales y locales en términos de alcance. El alcance de cada

La variable se define por la ubicación donde se declara y la palabra clave utilizada para la declaración.

4.3.2.1. Variables globales

Las variables definidas en la tabla de variables globales se denominan variables globales. Las variables globales pueden ser

compartidas por otras unidades organizativas del programa en el proyecto. Todos los programas pueden compartir la misma fuente de datos y

incluso puede intercambiar datos con otras redes. Sin embargo, no puede haber dos variables globales con el

mismo nombre en un sistema. Además de estar definidas en la tabla de variables globales, las variables globales pueden

también se definirá en el lenguaje de programación ST con las siguientes palabras clave de declaración:

34
Machine Translated by Google

VAR_GLOBAL

<Declaración de variable global>

END_VAR

La tabla de variables globales se encuentra en el árbol de POU de la izquierda, lo que le permite declarar variables globales.

variables e importar la tabla de variables globales existente, proporcionando una forma clara y concisa de consultar y

declarar. Como se muestra en la Figura 4-2.

Figura 4-2 Tabla de variables globales

Puntas:

1) Cuando necesite operar en una gran cantidad de variables, primero puede exportarlas todas en forma de

tablas y luego abrirlas en Excel, y luego editarlas, y luego importarlas después de completarlas, lo cual

puede ayudarnos a ahorrar más tiempo gracias a las potentes funciones de Excel.

2) Al llamar a variables globales en el lenguaje ST y la interfaz de edición de diagramas de escalera, puede usar "G".

+ formato de nombre de variable global correspondiente para llamar a las variables globales correspondientes rápidamente.

35
Machine Translated by Google

4.3.2.2. Variables locales


Las variables definidas dentro de una Unidad de organización del programa (POU) son variables internas que solo son válidas

dentro de esa POU y también pueden denominarse "variables locales".

El formato de la palabra clave del idioma ST de la variable local es el siguiente.

FUE

<Declaración de variable local>

END_VAR

La tabla de variables locales se encuentra en la parte superior del programa, el bloque de funciones y la interfaz de funciones en su forma válida.

rango, respectivamente. Como se muestra en la Figura 4-3.

Figura 4-3 Tabla de variables locales

NOTA:

FSU no admite dos o más variables asignadas a la misma dirección, por lo que para lograr el

misma función, se puede usar una variable global para mapear la dirección correspondiente y luego llamarla en el

programa requerido o bloque de función.

36
Machine Translated by Google

4.4. Unidad de Organización del Programa


La Unidad de Organización del Programa (POU) consta de dos partes, el área de declaración y el área de código,

y es la unidad de software más pequeña de un programa de usuario. Es equivalente a un bloque en la programación tradicional

sistemas y es la base para una comprensión integral de los nuevos conceptos lingüísticos. Por función,

La unidad de organización del programa (POU) se puede dividir en funciones (FUN), bloques de funciones (FB) y

Programas (PRG).

El usuario puede agregar una POU seleccionando diferentes subopciones en el árbol de POU en el lado izquierdo y puede llamar

el programa en la configuración de tareas. La POU de este software admite la edición en dos programas.

(LD: lenguaje de programación de lógica de escalera; ST: lenguaje de programación de texto estructurado).

La creación de una nueva POU se muestra en la Figura 4-4.

Figura 4-4 POU nueva

37
Machine Translated by Google

4.4.1. Estructura de POU


Una POU completa consta de tres partes principales, tal como se indica a continuación.

1ÿTipo de POU y denominación;

2ÿDeclaración de variables

3ÿSección de comando de código (cuerpo principal de POU)

En términos de funciones específicas, pueden constituir programas, bloques de funciones y funciones, respectivamente.

Sin embargo, en términos de cada estructura de función, se puede dividir en una parte de declaración y una parte de código.

(1) Área de declaración

El área de declaración de variables es el área utilizada para especificar el nombre y el tipo de la variable, y para

asignar el valor inicial.

El área de declaración de variables se utiliza para declarar variables de POU y tipos de datos. Todas las variables que serán

utilizados en este POU se declaran en la sección de declaración del POU, estas variables incluyen: entrada

variables, variables de salida, variables de entrada/salida, variables locales y constantes. Se hacen declaraciones

directamente en la tabla en el modo de edición Ladder (LD) y en el modo de edición de lenguaje de texto estructurado (ST),

el formato de declaración se basa en el estándar IEC 61131-3 y las variables se declaran utilizando el siguiente formato.

<identificador>{AT<Dirección>}:<tipo de datos>{:=<inicialización>}ÿ

La parte en {} es opcional.

38
Machine Translated by Google

(2) Área de código

En el área de código, FSU admite dos lenguajes de programación: diagrama de escalera (LD) y texto estructurado

(S T). El área de código se muestra en la Figura 4-5 a continuación.

Figura 4-5 Arriba está el área de código del diagrama de escalera, abajo está el área de código de idioma

4.4.2. Programa
El programa es el núcleo para planificar una tarea y tiene los derechos de llamada máximos para llamar a bloques de función y

funciones En un sentido más amplio, también incluye configuración de hardware, configuración de tareas y

configuración de comunicación.

Las variables globales comunes, las variables globales de direcciones de hardware asignadas y las variables locales suelen ser

definido en el programa. La lógica de la aplicación se implementa a través de llamadas entre programas.

instancias de bloques de funciones, las funciones pueden llamarse en el programa y el programa es

considerado global, y el programa es la forma más grande de la unidad organizativa del programa. Similarmente,

los bloques de funciones pueden llamar a otros bloques de funciones y funciones, pero las funciones solo pueden llamar a otras

funciones, no a instancias de bloques de funciones. la relación de llamadas de POU (Unidad de organización del programa) es como

sigue en la Figura 4-6.

39
Machine Translated by Google

La cantidad y el tipo de unidades de organización del programa que se pueden llamar.

Programa>bloque de función>Función

Relación de llamada de POU (unidad de organización del programa)

4.4.3. Bloque de funciones

El bloque de función es la conversión de una parte repetidamente utilizada del bloque de programa en una parte común,

que puede ser llamado por cualquier lenguaje de programación en el programa y utilizado repetidamente, no solo para

mejorar la eficiencia del desarrollo del programa, sino también para reducir los errores en la programación, mejorando así la calidad

del programa.

Se puede generar una unidad de organización de programa con uno o más valores cuando se está ejecutando un bloque de

funciones. El bloque de funciones conserva sus propias variables internas especiales y el objetivo del controlador

El sistema de ejecución debe asignar memoria a las variables de estado internas del bloque de función, que

constituyen sus propias características estatales. La lógica de ejecución del bloque de función constituye sus propias características

de comportamiento del objeto. Por lo tanto, para valores de variables de entrada del mismo parámetro, como diferentes

pueden existir variables de estado internas, por supuesto es posible obtener diferentes resultados de cálculo. en un

sistema de control, un bloque de función puede ser un cierto algoritmo de control, por ejemplo, un bloque de función PID para cerrado

control de bucle, se pueden usar otros bloques de funciones para contadores, aumento y filtrado, etc.

Atributos de los bloques de funciones:

1) instanciación

Según IEC 61131-3, los tipos de bloques de función son definiciones de tipos estructurales abstractos, no

entidades de datos reales, y no pueden ser llamados y ejecutados por programas si no están definidos e instanciados. Por lo

tanto, es necesario crear una instancia de los bloques de funciones antes de poder utilizarlos.

Los bloques de funciones instanciados son datos privados, totalmente encapsulados, variables estructurales independientes

40
Machine Translated by Google

que realizan una función específica de acuerdo con una lógica definida, convirtiendo así el resumen anterior

definición de tipo en una entidad de datos.

2) EN and ENO

Los bloques de funciones tienen atributos afiliados a EN y ENO y se usan de manera similar a EN y ENO

en funciones.

3) La diferencia entre funciones y bloques de funciones

Como se muestra en la Tabla 4-7 a continuación.

Función (resultado consistente para Bloque de funciones (los resultados pueden ser
cada llamada) inconsistentes para cada llamada)

Asignación Sin dirección de asignación de memoria especificada Todos los datos asignados con dirección de memoria
de memoria

Variables de
entrada/salida Habrá una variable de valor de retorno con el mismo
Múltiples variables de salida o ninguna variable de
nombre que el nombre de la función de forma salida
predeterminada, y el tipo se puede especificar

Relación de llamadas Las funciones se pueden llamar, pero no funcionan Se pueden llamar bloques de funciones o funciones
bloques

Figura 4-7 La diferencia entre funciones y bloques de funciones

4.4.4. Función
Una función (FUN) también se define como una unidad de organización del programa a la que se le pueden asignar parámetros pero que no

tiene variables estáticas, es decir, cuando se llama a una función con los mismos parámetros de entrada, la función

siempre produce el mismo resultado que el valor de la función (valor de retorno). Una característica importante de las funciones.

es que no pueden usar variables internas para almacenar valores, a diferencia de los bloques de funciones.

Una función (FUN) es una unidad algorítmica básica que no tiene estado interno (sin asignación de memoria en tiempo de ejecución).

En otras palabras, siempre que se proporcionen los mismos parámetros de entrada, la función llamada definitivamente obtendrá la

mismos resultados, absolutamente ninguna ambigüedad. Las diversas funciones matemáticas que solemos usar son

tipos de funciones típicas, como sin(x), sqrt(x), etc.

Una función es una unidad algorítmica básica con al menos una variable de entrada, sin datos privados y solo un valor de retorno. Las

funciones pueden ser utilizadas por funciones, bloques de funciones y programas.

Atributos de funciones

41
Machine Translated by Google

1) Sobrecarga

Para una función, si sus entradas se describen en términos de tipos de datos de clase genéricos, se denomina función sobrecargada.

función. Esto significa que la entrada a la función no se limita a un solo tipo de datos, sino que se puede usar para diferentes

tipos de datos. Si la función solo se aplica a un determinado tipo de datos, se declara en la función

nombre, que se llama tipificación de la función.

2) Extensibilidad

El atributo de que el número de variables de entrada de una función puede extenderse se llama extensibilidad.

de la función Por ejemplo, la función ADD puede tener más de dos variables de entrada, puede agregar

múltiples variables de entrada, por lo que la función ADD puede considerarse extensible. No todo estándar

funciones son extensibles, los límites de la extensión de la función está limitada por los límites superiores impuestos

por el PLC, los límites de altura de las cajas en el lenguaje de programación gráfico o las limitaciones en la definición de la

propia función, por ejemplo, la función DIV tiene este atributo. Funciones con

La extensibilidad simplifica el programa y reduce la cantidad de espacio de almacenamiento requerido.

3) EN and ENO

Este atributo solo es válido en el diagrama de escalera. EN y ENO son la habilitación de entrada y la habilitación de salida de

la función, respectivamente. Los principios de aplicación son los siguientes.

ÿ Cuando se llama a la función de entrada y el valor de EN es FALSO, la operación definida por el

el programa no ejecuta el cuerpo de la función y el estado de ENO es FALSO.

ÿ Cuando EN es VERDADERO, se llama a la función y la operación definida por el cuerpo de la función es

ejecutado, mientras que el valor de ENO es VERDADERO.

ÿ Los atributos EN y ENO son atributos adicionales que se pueden usar o deshabilitar según sea necesario

4.5. Objeto de aplicación

42
Machine Translated by Google

4.5.1. Formación

Una matriz es una unión de datos ordenados, donde cada elemento tiene el mismo tipo de datos. Por ejemplo, si un

el dispositivo tiene 20 puntos para medir la temperatura, sin usar una matriz, declararía nTemp1,

nTemp2.... nTemp20, 20 variables en total como los valores de temperatura específicos de la medición

puntos, pero si usa una matriz, solo necesita definir una matriz nTemp con 20 miembros para completar

la definición de estas 20 variables de temperatura. El comando ST específico es el siguiente:

nTemp :ARRAY [1..20 ] DE REAL;

Los datos entre corchetes indican los 20 puntos de medición definidos del 1 al 20, por ejemplo, nTemp[17]

indica el valor de temperatura del punto de medición 17.

En FSU, las matrices 1D, 2D y 3D se pueden definir directamente como tipos de datos. El usuario puede definir matrices en el

tipo de datos definido por el usuario con la siguiente interfaz como se muestra en la Figura 4-8.

Figura 4-8 Definir matriz

Las matrices unidimensionales a tridimensionales se pueden definir en FSU.

(1) matriz unidimensional

Los arreglos unidimensionales son uno de los tipos de datos comunes, y el número dentro de [] es la longitud del

formación.

(2) matriz bidimensional

Una matriz bidimensional puede considerarse como una matriz unidimensional especial cuyos elementos propios pueden

entenderse como una nueva matriz unidimensional. Por ejemplo, a puede ser considerado como uno

matriz dimensional con tres elementos: a[0], a[1] y a[2], cada uno de los cuales contiene un unidimensional

matriz de cuatro elementos. Como se muestra en la Figura 4-9.

43
Machine Translated by Google

Figura 4-9 Array bidimensional

(3) matriz tridimensional

Similar a la forma en que se entiende una matriz bidimensional, una matriz tridimensional se obtiene por

considerando cada elemento de un arreglo bidimensional como un arreglo unidimensional.

(4) Inicialización de arreglos

Los valores iniciales se asignan a los elementos de la matriz al definir la matriz, ya sea todos o solo algunos de ellos.

Para disposiciones duplicadas, puede definirlas a granel simplemente prefijando los paréntesis con el

número, por ejemplo:

arr1 :ARRAY [1..5] DE INT :=[1,2(3)];

Para arreglos 2D/3D, puede escribir todos los datos entre corchetes y asignar valores iniciales a los

elementos en el orden en que están dispuestos los arreglos, por ejemplo:

arr2: ARRAY[1..2,3..4] OF INT :=[1,3(7)];

El resultado de las asignaciones anteriores esÿarr2[1,3]=1,arr2[1,4]=7,arr2[2,3]=7,arr2[2,4]=7

(5) Referencias a arreglos

Las matrices deben definirse antes de que se les haga referencia. El formulario de referencia de datos es el siguiente:

<Nombre de matriz>[Índice1,Índice2,Índice3]

(6) Estructura de almacenamiento de variables de matriz

Cuando se ejecuta un programa, para acceder a los elementos de la matriz, es importante comprender cómo funcionan las variables de la matriz.

primero se almacenan en la memoria.

Las variables de matriz comienzan en los límites de las palabras, es decir, la dirección de inicio es una dirección de BYTE par. Entonces cada uno

elemento de estructura se almacena en la memoria en el orden en que fue declarado. Los elementos de estructura de los tipos

de datos BOOL y BYTE se almacenan a partir de bytes pares, y los elementos de matriz de otros tipos de datos se almacenan.

almacenados a partir de direcciones de palabras, como se muestra en las matrices unidimensionales de la figura 4-10.

El orden de los elementos en un arreglo bidimensional es por fila, es decir, los elementos de la primera fila se almacenan en

memoria en orden, seguidos por los elementos de la segunda fila, y así sucesivamente. Esto se muestra en

Figura 4-10.

44
Machine Translated by Google

El orden en que se organizan las matrices tridimensionales en la memoria: los subíndices en el primer

la dimensión cambia más lentamente y los subíndices más a la derecha cambian más rápido. Esto se muestra en la Figura

4-10.

Figura 4-10 Estructura de almacenamiento de variables de matriz

4.5.2. Tipo de datos definido por el usuario

Hay otros tres tipos de datos provistos en FSU para manejar matrices, a saber, enumeraciones, estructuras y

rango.

(1) Estructura

A diferencia de las matrices, que solo pueden almacenar una serie de variables del mismo tipo, las estructuras se utilizan a menudo

para encapsular atributos para formar nuevos tipos, y el usuario puede definir los tipos de estos atributos.

La ventaja de tal encapsulación es que puede reutilizarse. Esto se muestra en la Figura 4-11.

Figura 4-11 Crear y definir una estructura

NOTA: También se pueden usar otros tipos de datos definidos por el usuario en las estructuras, por ejemplo, las matrices se pueden usar en

structs, llamados arreglos de estructuras. Esto se muestra en la Figura 4-12.

45
Machine Translated by Google

Figura 4-12 Definir matriz de estructura

(2) Enumeración

Si una variable tiene varios valores posibles, se puede definir como un tipo de enumeración, donde los valores de

las variables se enumeran una por una, y el valor de la variable solo puede estar dentro del rango de los valores

enumerados. La definición de un tipo de enumeración se muestra en la Figura 4-13.

Figura 4-13 Crear y definir el tipo de enumeración

46
Machine Translated by Google

4.6. Elementos comunes y variables


Los programas de PLC se componen de una cierta cantidad de elementos básicos del lenguaje (unidades mínimas) que se agrupan para

formar instrucciones o declaraciones, incluidos delimitadores, palabras clave, identificadores,

comentarios, etc

4.6.1. delimitador
Un delimitador es un carácter o una combinación de caracteres que se utiliza para separar elementos de una programación.

idioma. Es un carácter especial y diferentes delimitadores tienen diferentes significados; La tabla 4-15 muestra

Ejemplos de aplicación de varios delimitadores.

delimitador Ocasiones de aplicación Comentarios o ejemplos

Espacio Permitir la inserción de uno o más No permita la inserción directa de espacios en


espacios en el programa del PLC palabras clave, textos, identificadores y valores
enumerados

PESTAÑA Permitir la inserción de TAB en el


No permitir la inserción directa de TAB en
programa de autómata
palabras clave, textos, identificadores y valores
enumerados

ÿ* ST Comenzar comentario Comentarios definidos por el usuario, que se


pueden ingresar en cualquier lugar donde el
ST Finalizar comentario programa permita espacios
*ÿ

+ Notación de prefijo para números +456;+1.23


decimales (número positivo)

Agregar operador 23+11

Notación de prefijo para números -789


decimales (número negativo)
-
Separador de año, mes y día D#1980-02-09

Quitar operador 19-11

# Separador de números base 2#1101;16#FF

Separador de tipos de datos SIN#123

47
Machine Translated by Google

Separador de texto de tiempo T#200ms;TOD#05:30:35;

t#14m12s

. Separador de enteros y decimales 3.14;2.15

Separador de direccionamiento con clase %IX0.3

Separador de elementos de estructura Canal[0].tipo;abc.número

Separador de estructura de TON1.Q; SR_3.S1


bloque de funciones

Yy Separador de exponente real 1.0e+6; 3.14E6

'
Marca de inicio/fin de cadena 'Hola Mundo'

ps Comienzo de caracteres especiales en '$L' significa avance de línea; '$R' significa


una cadena retorno de carro

: Separador de texto de momento TOD#12:14:11.11

Separador de variable/tipo Prueba:INT

:= Operador de inicialización Var1:INT:=3

Operador continuo variable de INT_2(UNICO:=z2,PRIORIDAD:=1)


entrada

Operador de asignación Var2:=45

( ) Separador de tabla de enumeración V:(B1_10V,ARRIBA_10V,IP_15V) :=ARRIBA_10V

separador de subrango DATOS:INT(-32768..32767)

Inicializar factor de iteración ARRAYÿ1..2ÿ1..3ÿDE INT:=1,2,3(4),6

Función variable independiente Var2*LIMIT(Var1)

Clasificación de subexpresiones (A*(BC)+D)

Separador de tabla de entrada de TON_1(ENTRADA:=#IX5.1PT:=T#500ms);


bloque de funciones

[] Separador de subíndice de matriz MOD_5_CFG.CH[5].Rango:=BI_10V;

, Separador de valor enumerado V:(BI_10V,IN_10V):=BI_10V

Separador de valor inicial ARRAY(1..2,1..3) DE INT:=1,2,3(4),6;

Separador de subíndice de matriz ARRAY(1..2,1..3) DE INT:=1,2,3(4),6;

48
Machine Translated by Google

Separador de variable declarado VAR_ENTRADA A,B,C:REAL;

Separador de valores iniciales del TON_1(ENTRADA:=#IX5.1,PT:=T#500ms);


bloque de funciones

Separador de tabla de entrada de SR_1(S1:=%IX1.1,RESET:=%IX2.2);


bloque de funciones

Separador de tabla de operandos ARRAY(1..2,1..3) DE INT:=1,2,3(4),6;

Separador de tabla de variable LÍMITE(MN:=4.IN:=%IW0,MX:=20);


independiente de función

Separador de tabla de valor de caso CASESTEPOF1,5:PANTALLA:=FALSO;

; Separador de tipo TIPO R:REAL;END_TYPE

Separador de declaraciones A:=B+C;D:=A+B;

.. separador de subrango MATRIZ(1..2,1..3);

Separador de rango de casos CASO PASO DE (1..5 ):Test_X:=FALSO;

% Prefijos que representan directamente %IW0


variables

=> Operador de conexión de salida C10(CU:=bEntrada,Q=>Salida);

Tabla 4-15 Juego de caracteres

49
Machine Translated by Google

4.6.2. Palabra clave

Las palabras clave son unidades léxicas para la caracterización de los elementos del lenguaje. En la norma IEC 61131-3,

Las palabras clave se utilizan como palabras del lenguaje de programación para definir diferentes estructuras o software específico.

elementos.

Algunas palabras clave se usan en pares, como "FUNCTION" y "END_FUNCTION", y algunas palabras clave se pueden usar por

separado, como "ABS". Las palabras clave no se pueden utilizar para ningún otro fin, como variables

nombres o nombres de extensión, es decir, ni TON como nombre de variable ni VAR como nombre de extensión.

Como las palabras clave son identificadores estándar, no pueden contener espacios. Las palabras clave y las descripciones

comúnmente utilizados en FSU se enumeran en la Tabla 4-16.

Palabras clave Descripción Palabras clave Descripción

PROGRAMA Iniciar segmento EN,ENO Habilitar


de programa entrada/salida
END_PROGRAM
Segmento final
del programa
FUNCIÓN Iniciar segmento CIERTO lógica verdadera

de función
END_FUNCTION FALSO Lógica falsa
Segmento de

función final
Iniciar segmento de bloque ESCRIBE
BLOQUE_FUNCIÓN
de función Iniciar segmento de
END_FUNCTION_BLOCK END_TYPE tipo de datos

Función final Segmento de tipo


de datos final
cuadra

segmento

FUE Iniciar segmento ESTRUCTURA Estructura de inicio

de variable interna
END_STRUCT Estructura final
END_VAR
Finalizar

segmento variable interno


VAR_ENTRADA Iniciar segmento de SI DESPUÉS declaración SI
variable de entrada
END_VAR ELSIF

Variable de entrada final DE LO CONTRARIO END_IF

segmento

VAR_SALIDA Iniciar segmento CASO DE Declaración de CASO


variable de salida
MÁS
END_VAR

Segmento END_CASE
variable de salida final

50
Machine Translated by Google

VAR_IN_OU PARA POR instrucción


Iniciar segmento de bucle FOR
T END_VAR variable de entrada salida HACER

Fin entrada salida END_FOR


segmento variable

VAR_GLOBAL REPETIR instrucción de


Iniciar segmento variable bucle REPETIR
END_VAR HASTA QUE
global

Finalizar segmento de END_REPEAT


variable global

CONSTANTE La variable constante MIENTRAS HACE instrucción de


bucle WHILE
END_WHILE

GAMA DE Formación DEVOLVER Carácter de


retorno de salto

EN Dirección directa NO, Y, O, Operador lógico

GRATIS

Tabla 4-16 Palabras clave

Además, los identificadores de los siguientes módulos de funciones y funciones están reservados como palabras clave.

1) Tipo de datos estándar: BOOL, REAL, INT, etc.

2) Nombre de la función estándar y nombre del bloque de funciones: SIN, COS, CTU, etc.

3) Operadores de texto en lenguajes de texto estructurado: NOT, MOD o AND, etc;

51
Machine Translated by Google

4.6.3. Constante
Literal numérico se utiliza para definir un valor numérico, que puede ser un número en decimal u otro valor posicional.

notaciones Hay dos tipos de literales numéricos: literales enteros y literales reales, que se escriben en

el siguiente formato.

<Tipo># <valor numérico>

<Tipo>ÿ Especifique el tipo de datos deseado. Los tipos admitidos son BOOL, SINT, USINT, BYTE, INT,

UINT, WORD, DINT, UDINT, DWORD, REAL y LREAL.

<Valor numérico>ÿEspecifique una constante. Los datos de entrada deben coincidir con el tipo de datos especificado <tipo>.

(1) Constante numérica

La constante numérica se puede expresar en binario, decimal y hexadecimal.

La expresión binaria es 2#<valor>;

No es necesario ingresar el 10# antes del valor decimal;

La expresión hexadecimal es 16#<valor>.

Los detalles se muestran en la Tabla 4-17 a continuación.

Tipo literal numérico Expresión Ejemplo

Entero entero binario 2#0010_0010(34)

entero octal 8#77(63)

Entero hexadecimal 16#E5(229)

Número Real entero con signo, entero 3.1415926

número booleano [nombre de tipo booleano #] 0 o 1, 0ÿ1ÿVerdaderoÿBOOL#1

Falso o Verdadero

Tabla 4-17 Expresión y ejemplo de constante numérica

52
Machine Translated by Google

(2) Constante BOOL

Las constantes BOOL son valores lógicos VERDADERO y FALSO, y también se pueden expresar como 1 (verdadero) y 0

(falso), que tienen el mismo significado.

(3) constante de TIEMPO

La constante TIME se expresa mediante un carácter de inicio T o t y el identificador numérico #, más el tiempo real,

pero no es necesario que contenga todas las unidades de tiempo; se debe tener cuidado al usarlo que el

el orden de los días, horas, minutos y segundos no está fuera de lugar y las unidades de tiempo deben ser consecutivas.

Por ejemplo: T#14ms, T#100s12ms, t#12h34m15s.

Ejemplo de error: T#30m12h, T#12h30s

(4) FECHA constante

Estas constantes se pueden utilizar para representar fechas. Al declarar una constante de FECHA, el carácter inicial

es d, D, seguido de un signo #, y luego cualquier fecha puede representarse en el "año-mes-día".

formato. Por ejemplo

D#1996-05-06

D#1972-03-29

(5) constante TIME_OF_DAY

Se pueden guardar diferentes horas del día usando este tipo de constante. La declaración de la

La constante TIME_OF_DAY usa el carácter de inicio tod#, TOD# seguido de una hora en el formato

"hora:minuto:segundo". El valor de los segundos puede ser un número entero o un decimal, por ejemplo:

TOD#15:36:30.123

Tod#00:00:00ÿ

(6) constante FECHA_Y_HORA

Las constantes DATE y TIME_OF_DAY se pueden combinar para formar el llamado DATE_AND_TIME

constante. dt#, DT# son los caracteres iniciales para las constantes DATE_AND_TIME. Por ejemplo:

DT#1996-05-06-15:36:30

dt#1972-03-29-00:00:00

53
Machine Translated by Google

(7) Constante REAL/LREAL

Las constantes REAL y LREAL se pueden expresar en fracciones decimales y en forma exponencial, usando los EE.UU.

formato con punto decimal para número real (REAL/LREAL), por ejemplo:

7.4 reemplaza 7,4

1.64e+009 reemplaza a 1,64e+009ÿ

NOTA: En FSU, los valores de REAL y LREAL deben tener decimales, por ejemplo, 1,0, 3,4.

(8) constante de CADENA

Una cadena es una cola de caracteres. Las constantes STRING utilizan una comilla simple como prefijo y sufijo. Blanco

también se pueden ingresar espacios y caracteres especiales y estos serán tratados como todos los demás caracteres,

ejemplos de expresiones para cadenas son los siguientes.

¡¡FSU!!

'FLEXIÓN'

'- _-'

En la cola de caracteres, la combinación del signo "$" y los dos números hexadecimales que le siguen

se interpreta como una expresión hexadecimal del código de caracteres de 8 bits. Además, el significado de la

La combinación de dos caracteres con $ como carácter de inicio se muestra en la Tabla 4-18 a continuación.

54
Machine Translated by Google

combinaciones de caracteres Descripción

$<dos números hexadecimales> Expresión hexadecimal del código ASCII

$$ Signo de dólar

ps Una frase

$l o $l línea de entrada

$N o $n Nueva línea

$p o $p Página de entrada

$R o $r Linea de alimentación

$T o $t Tecla <Tab>

combinaciones de caracteres Descripción

$<dos números hexadecimales> Expresión hexadecimal del código ASCII

$$ Signo de dólar

ps Una frase

$l o $l línea de entrada

$N o $n Nueva línea

$p o $p Página de entrada

$R o $r Linea de alimentación

$T o $t Tecla <Tab>

Tabla 4-18 Combinaciones de caracteres y su expresión

55
Machine Translated by Google

4.6.4. Color de sintaxis


El texto diferente en todos los editores viene en diferentes colores, lo que no solo identifica errores, sino que también ayuda a

detectarlos rápidamente.

4.6.5. Espacio y comentario

(1) Espacio

Se permite insertar uno o más espacios en cualquier parte del texto del programa. No se permiten espacios

dentro de palabras clave, identificadores, delimitadores, etc. La Tabla 4-19 muestra ejemplos de espacios permitidos y no

permitió.

Ejemplo

Espacio permitido LD%IX0.2ÿSR1(SET1 :=Iniciar, Restablecer:=Detener)

Espacio ahora permitido LD%IX0.2ÿSR1(SE T1:=Iniciar, Restablecer:=Detener)

Tabla 4-19 Ejemplo de aplicación de espacio

(3) comentario

Es común agregar comentarios a las áreas con fuerte lógica de un programa para mostrar cómo la lógica de la

programa funciona y para que sea más fácil de entender para usted y para otros más adelante. Los comentarios apropiados pueden

mejorar la legibilidad del código.

Se permiten comentarios en todos los editores de texto, editores de declaraciones, tablas de declaraciones, texto estructurado

idiomas y tipos de datos definidos por el usuario. Si el proyecto usa una plantilla para la impresión, los comentarios ingresados

durante la declaración de variables aparecen en el componente de programación basado en texto después de cada variable. Él

El software tiene diferentes métodos de comentarios para diferentes lenguajes de programación y editores, que son

se explica en detalle a continuación.

1ÿ Comentarios de Texto Estructurado (ST)

Comentarios entre paréntesis: comienzan con (*, terminan con *), por ejemplo (*Prueba*);

Comentarios de una sola línea: comentarios de línea, usando el símbolo "//", por ejemplo: //Prueba

Comentarios anidados: en el uso diario, es común encontrar aplicaciones que requieren

comentarios anidados, y FSU admite este método de comentarios.

2ÿComentarios del diagrama de escalera (LD)

En el modo de edición de escalera, el usuario puede agregar comentarios a las variables en la tabla de variables,

como se muestra en la Figura 4-20.

56
Machine Translated by Google

Figura 4-20 Comentarios de la variable LD

4.7. Expresión y Declaración de Variables


Las variables se pueden usar para representar un valor numérico, un valor de cadena o una matriz, etc. FSU clasifica los tipos de

datos de las variables como tipo de datos estándar, tipo de datos extendido y tipos de datos definidos por el usuario.

4.7.1. Variable
Las variables son datos abstractos almacenados en la memoria para ser procesados y son nombres utilizados para identificar el

entradas/salidas del PLC, el área de almacenamiento dentro del PLC y se puede utilizar en el programa en lugar de

la dirección física.

El valor de los datos almacenados en una variable se puede cambiar en cualquier momento según sea necesario. el valor de un

variable puede cambiar durante la ejecución de un programa. Las variables se deben declarar antes de que se puedan usar, y se

debe especificar su tipo y nombre. Las variables tienen un nombre, un tipo y un valor. Los datos

El tipo de una variable determina el tamaño y el tipo de memoria que representa. El nombre de la variable es el

identificador en el código fuente del programa.

4.7.2. identificador
El identificador es el nombre de la variable. Al definir un identificador, debe constar de letras, números

y caracteres de subrayado según IEC 61131-3. Además, se deben seguir las siguientes reglas.

ÿ El primer carácter del identificador debe ser una letra o guión bajo, el último carácter debe ser una letra o un
número, y se permiten letras, números y guiones bajos en el medio.

ÿ No distingue entre mayúsculas y minúsculas en los identificadores

ÿ Los guiones bajos son parte del identificador, pero no se permiten dos o más guiones bajos consecutivos en el
identificador

ÿ Los nombres de las variables no deben exceder los 32 caracteres de longitud.

ÿ No se permiten espacios.

ÿ No se pueden usar palabras clave separadas para nombrar variables.

57
Machine Translated by Google

4.7.3. Declaración de variables


La declaración de variables es el proceso de especificar el nombre y el tipo de una variable y asignarle un nombre inicial.

valor. La declaración de variables es muy importante y las variables no declaradas no se pueden compilar o

utilizado en el programa. Las variables se pueden declarar en la Unidad de Organización del Programa (POU), en la Tabla de

Variables Globales y en el diálogo de declaración automática. Hay dos tipos de declaración: normal

declaraciones de variables y declaraciones de variables directas, estas últimas requieren que la variable esté vinculada a la

dirección correcta. Como se muestra en la Figura 4-21 a continuación, las tres primeras variables se declaran con direcciones

ya vinculado a ellos, ver 2.1 para detalles del proceso de declaración.

Figura 4-21 Declaración de variables

58
Machine Translated by Google

4.8. Tipos e Inicialización de Variables


La FSU define atributos para las variables de acuerdo con el estándar IEC 61131-3 y asigna sus

atributos relevantes a las variables estableciéndolas. Las variables se pueden clasificar según su

el ámbito de la aplicación y la FSU proporciona atributos adicionales para las variables además del tipo de variable.

4.8.1. Tipo de variable


Los atributos de las variables soportadas por la FSU se muestran en la Tabla 4-22.

Palabra clave de Atributo variable Externo L/E interno


tipo variable L/E
FUE Variable local L/E

VAR_ENTRADA Variable de entrada, proporcionada externamente L/E R

VAR_OUTPUT Variable de salida, proporcionada por internos En L/E


variable a externa

VAR_IN_OUT variable de entrada-salida L/E L/E

VAR_GLOBAL Variables globales que se pueden usar dentro L/E L/E


de todas las configuraciones y recursos

SÍ_TEMP R
Variable temporal, variable utilizada para el
almacenamiento interno de programas y
bloques de funciones.

VAR_EXTERNAL Variable externa, que puede ser L/E L/E

modificado dentro del programa, pero debe

ser proporcionado por una variable global

(solo disponible en el lenguaje ST)

Tabla 4-22 Atributos de variables

En FSU, los atributos adicionales de las variables se muestran en la Tabla 4-23.

Palabra clave de atributo adicional variable (solo Atributo adicional variable


disponible en lenguaje ST)
RETENER Conservar variables para conservar el apagado

CONSTANTE Constante

Tabla 4-23 Atributo adicional variable

59
Machine Translated by Google

(1) RETENER

La variable de tipo se declara con la palabra clave RETAIN, que retiene su valor después de que el controlador haya

sido apagado normalmente, abierto (o recibido un comando en línea para "detener"), o incluso apagado

inesperadamente. El valor almacenado continuará funcionando cuando el programa comience a ejecutarse nuevamente.

Las variables RETAIN se declaran en el siguiente formato.

FUE RETENIDO

<identificador>ÿ<tipo de dato>;

END_VAR

Sin embargo, la variable RETENCIÓN se reinicializará después del "restablecimiento del valor inicial" y el programa

descargar.

Ubicación de almacenamiento de memoria: las variables RETAIN se almacenan únicamente en un área de memoria separada.

(2) CONSTANTE

Una cantidad que solo se puede leer, pero no modificar, durante la operación del programa se llama constante, con la palabra clave

CONSTANTE. Las constantes se pueden declarar como constantes locales o como constantes globales.

Las constantes se declaran en el siguiente formato.

CONSTANTE VAR

<identificador>: <tipo de dato> :=<valor de inicialización>;

END_VAR

En la práctica, a menudo es posible establecer parámetros o coeficientes importantes como constantes, de modo que sean

no modificado por otras variables, lo que finalmente afectaría la estabilidad y seguridad general del

sistema.

Se proporciona una forma más conveniente de configurar en FSU como se muestra en la Figura 4-24 a continuación

Figura 4-24 Configuración de atributos adicionales para variables en la tabla de variables

60
Machine Translated by Google

4.8.2. Inicialización de Variables


En los programas a veces es necesario preasignar valores iniciales a algunas variables, FSU permite

variables que se inicializarán cuando se definan, con la variable y su tipo a la izquierda de la

operador de asignación ":=", y la variable que acepta el valor de la dirección o expresión a la derecha.

NOTA: A varias variables del mismo tipo se les pueden asignar valores iniciales simultáneamente, p.

Test_BOOL1, Test_BOOL2, Test_BOOL3:BOOL:=Verdadero;

Asignar valores iniciales a arreglos, estructuras, etc. es relativamente complejo, con el siguiente ejemplo de

asignando valores iniciales a las matrices.

FUE

ARR1:ARRAY[1..5] OF INT ;=[1,2,3,4,5];

ARR2:ARRAY[1..2,3..4] OF INT :=[1,3(7)];

ARR3;ARRAY[1..2,2..3,3..4] OF INT := [2(0),4(4),2,3];

END_VAR

Las estructuras se pueden inicializar solo con algunos de sus miembros, como en el siguiente ejemplo:

FUE

MOTOR_1:MOTOR:=(VENDEDOR:='FESTO',FRENO:=VERDADERO);

END_VAR

El valor inicial de la variable (valor predeterminado) se puede ingresar directamente en la tabla de variables en la posición como

se muestra en la Figura 4-25.

Figura 4-25 Valores iniciales de las variables

61
Machine Translated by Google

4.8.3. Mapeo de Variables


Haga clic en la configuración en la parte superior de la barra de menú izquierda de la FSU para ver todo el hardware

configuraciones del PLC, que incluye las direcciones de E/S del hardware. El usuario puede vincular las

direcciones de E/S de las entradas/salidas a las variables requeridas de acuerdo con sus necesidades y cuando las E/S

tienen entradas y salidas externas, el valor de esa variable vinculada también cambiará, y de manera similar, cuando

el valor límite cambia, las E/S correspondientes también tendrán entradas/salidas, que es el mapeo de variables.

Como se muestra en la Figura 4-26.

Figura 4-26 Mapeo de variables

NOTA:

1) FSU no admite dos o más variables asignadas a la misma dirección. Para lograr lo mismo

funcionalidad, se puede usar una variable global para mapear la dirección correspondiente y luego llamarla en el

programa requerido o bloque de función.

2) Correspondencia del área de direcciones de la siguiente manera

Figura 4-27 Relación mutua de áreas de direcciones

62
Machine Translated by Google

Capítulo 5 Lenguajes de programación

5.1 diagrama de escalera

5.1.1 Lenguaje de programación de diagrama de escalera


El diagrama de escalera se originó en los EE. UU., se basa en una representación gráfica de la lógica de los relés y es un

Lenguaje gráfico utilizado en la programación de PLC. El programa de escalera tiene dos rieles eléctricos verticales en el lado

izquierdo y derecho. El riel de energía en el lado izquierdo suministra nominalmente el flujo de energía de izquierda a derecha a lo largo de un

escalera horizontal a través de los contactos individuales, funciones, bloques de funciones, bobinas, etc. El flujo de energía termina

en el carril de energía en el lado derecho. Cada contacto representa el estado de una variable booleana y cada

bobina representa el estado de un dispositivo real. Si el contacto es "VERDADERO", la bobina del soft correspondiente

El relé en el diagrama de escalera está "energizado", su contacto normalmente abierto está encendido y su contacto normalmente

cerrado está apagado, este estado se denomina estado "VERDADERO" o "ENCENDIDO" del relé suave. Si el contacto es "FALSO" y el estado

de la bobina y el contacto del relé suave correspondiente es lo contrario de lo anterior, entonces el estado de suave

relé se llama "FALSO" o "APAGADO".

(1) Ejecutando procesos

1) Barra colectora: los diagramas de escalera utilizan una estructura de red, una red de diagramas de escalera está delimitada por

el autobús de la izquierda. Al analizar la lógica de un diagrama de escalera, para tomar prestado el análisis

método de un diagrama de circuito de relé, es posible imaginar que hay una izquierda positiva y una derecha

voltaje de suministro de CC negativo entre los buses izquierdo y derecho (bus izquierdo y bus derecho), y que

hay un "flujo de energía" de izquierda a derecha entre los autobuses.

2) Sección: la sección es la unidad más pequeña de la estructura de la red en escalera y se denomina programa

segmento en FSU. La red lógica relevante a partir de las condiciones de entrada a una bobina se llama

una sección. En el editor, las secciones se organizan verticalmente y se ejecutan en orden de arriba hacia abajo.

3) Flujo de energía: El flujo de energía se puede considerar como una "corriente conceptual" o "corriente de energía" hipotética.

flujo" que fluye de izquierda a derecha, una dirección que es consistente con el orden de las operaciones lógicas

realizado por el programa de usuario. La corriente de energía solo puede fluir de izquierda a derecha. El concepto

del flujo de energía se puede utilizar para ayudarnos a comprender y analizar mejor los diagramas de escalera.

4) Rama: cuando hay ramas en el diagrama de escalera, el estado de cada elemento del gráfico es

También se analiza según el orden de ejecución de arriba a abajo y de izquierda a derecha. Para

elementos conectados verticalmente, el estado del elemento conectado en el lado derecho es

determinado de acuerdo con las reglas antes mencionadas, y el proceso de evaluación de izquierda a derecha y de

arriba a abajo se lleva a cabo uno por uno.

63
Machine Translated by Google

5.1.2 Elemento de conexión

1. Elemento de línea

(1) Carril de alimentación (barra colectora)

El elemento gráfico del Power Rail del diagrama de escalera también se conoce como barra colectora. Su

La representación gráfica se encuentra en el lado izquierdo del diagrama de escalera y también se puede consultar

como la barra colectora izquierda. (como se muestra en la Figura 5-1)

Figura 5-1 Embarrado izquierdo

(2) Línea de conexión

En un diagrama de escalera, los símbolos gráficos están conectados por líneas de conexión, que se dividen

en líneas de conexión horizontales y verticales, como se muestra en la Figura 5-2, en el orden de horizontal

y líneas de conexión verticales.

Figura 5-2 Línea de conexión horizontal y vertical

(3) Reglas para pasar elementos de conexión

El estado de los elementos de conexión se pasa de izquierda a derecha para lograr el flujo de energía,

y el paso de su estado observa las reglas siguientes.

1) El elemento de conexión conectado al riel de alimentación izquierdo , cuyo estado es VERDADERO en cualquier
momento, indica que el carril de alimentación izquierdo es el punto de partida del flujo de energía. La derecha

el riel de alimentación es similar al potencial cero en el diagrama eléctrico.

64
Machine Translated by Google

2) Un elemento de conexión horizontal está representado por una línea de conexión horizontal, que

pasa el estado del elemento gráfico al elemento gráfico a su derecha, comenzando desde el elemento gráfico

inmediatamente a su izquierda.

3) Un elemento de conexión vertical siempre está conectado a uno o más elementos de conexión horizontales, es decir,

consta de uno o más elementos de conexión horizontales que se cruzan con el

línea vertical a cada lado. El estado del elemento de conexión vertical se determina mediante una operación "o" de

acuerdo con el estado de cada elemento de conexión horizontal del lado izquierdo para

que está conectado.

Por lo tanto, el estado del elemento de conexión vertical se determina de acuerdo con lo siguiente

reglas.

Si el estado de todos los elementos conectados horizontalmente a la izquierda es FALSO, el estado de un

elemento de conexión vertical es FALSO. Y el estado de un elemento de conexión vertical es VERDADERO

si el estado de uno o más elementos de conexión horizontal a la izquierda es VERDADERO. el estado de un

elemento de conexión vertical se pasa a todos los elementos de conexión horizontal conectados a su

derecha, pero no a todos los elementos de conexión horizontales conectados a su izquierda.

2. Sección

Las secciones son las entidades básicas de un diagrama de escalera (LD). En el editor LD de FSU, las secciones también están

llamados segmentos de programa, y cada segmento tiene un número de segmento con el programa,

función y la expresión del bloque de funciones debajo de ella. Puede agregar un título a un segmento ingresando un área

de nombre de título para el segmento; también puede agregar comentarios al segmento en los comentarios

zona.

Sugerencias: en FSU, puede hacer clic en el lado izquierdo de un segmento para seleccionar todo el segmento y hacer clic

con el botón derecho en el menú emergente para habilitar el control, copiarlo y pegarlo.

3. Contacto

(1) Tipo de contacto

Un contacto es un elemento gráfico de un diagrama de escalera. El contacto de un diagrama de escalera sigue el

terminología de contacto de los diagramas lógicos eléctricos y se utiliza para representar un cambio en el estado de un

Variable booleana. Un contacto es un elemento de escalera que pasa un estado al conectado horizontalmente

elemento a su derecha.

Los contactos se pueden dividir en contacto normalmente abierto (NO) y contacto normalmente cerrado

(CAROLINA DEL NORTE). Contacto normalmente abierto significa que el contacto está abierto en condiciones normales de funcionamiento, y

su estado es FALSO. Contacto normalmente cerrado significa que el contacto está cerrado en condiciones normales de funcionamiento.

condiciones, y su estado es VERDADERO. La Figura 5-3 enumera los tipos de contacto comunes y sus

descripciones en FSU.

sesenta y cinco
Machine Translated by Google

Escribe Símbolo gráfico Descripción

Si el contacto corresponde a

el valor de la variable booleana actual

de TRUE, el contacto se activa.

Contacto normalmente abierto Si el estado del conectado

elemento en el lado izquierdo de la

el contacto es VERDADERO, el estado VERDADERO

se pasa al lado derecho del

contacto, haciendo que el estado de la

elemento conectado en el lado derecho

es VERDADERO. Por el contrario, cuando

el valor de la variable booleana es

FALSO, el estado de la derecha

elemento de conexión es FALSO.

Si este contacto corresponde al

valor de la variable booleana actual de

FALSO, normalmente cerrado

el contacto está apretado, y si el

estado del elemento conectado en


Contacto normalmente cerrado
el lado izquierdo del contacto es

VERDADERO, el estado VERDADERO se

pasa al lado derecho del contacto,

hacer el estado de los conectados

elemento en el lado derecho VERDADERO.

Por el contrario, cuando el valor booleano

el valor de la variable es VERDADERO, el

se desconecta el contacto y el

estado del elemento conectado en

el lado derecho es FALSO.

Solo cuando el contacto corresponde


hasta el momento en que el valor de

la variable booleana actual

Contacto de borde ascendente cambia de Falso a Verdadero, es

tirado, de modo que el estado de la

el elemento conectado a la derecha es VERDADERO.

66
Machine Translated by Google

Sólo cuando el contacto

corresponde al momento en que

el valor del booleano actual

Contacto de borde descendente la variable cambia de Falso a

Es cierto que se tira hacia adentro, de modo que el

estado del derecho conectado

elemento es VERDADERO.

Tabla 5-3 Símbolos gráficos y descripciones de los elementos de contacto

(2) Reglas del estado de paso

En función del estado del contacto y del estado del elemento de conexión izquierdo al que se

contacto está conectado, el estado de su símbolo gráfico derecho se determina de acuerdo con las siguientes

reglas.

1) Solo cuando el estado del elemento gráfico en el lado izquierdo del contacto es VERDADERO, su

pase el estado al elemento gráfico en el lado derecho del contacto, pase de acuerdo

a las siguientes reglas de paso.

ÿ Si el estado del contacto es VERDADERO, el estado del elemento gráfico a la derecha del contacto es
CIERTO.

ÿ Si el estado del contacto es FALSO, el estado del elemento gráfico a la derecha del contacto es
FALSO.

2) Cuando el estado del elemento gráfico izquierdo del contacto es FALSO, el estado del contacto

no se puede pasar al elemento gráfico derecho, independientemente del estado del contacto, es decir, el estado del

elemento gráfico derecho es FALSO.

3) Cuando el estado del elemento gráfico izquierdo del contacto cambia de FALSO-->VERDADERO, su variable

relacionada también cambia de FALSO a VERDADERO, entonces el estado gráfico derecho del

el contacto cambia de FALSO a VERDADERO. Se mantendrá durante un ciclo, luego cambiará a FALSO,

que se llama disparador de borde ascendente.

4) Cuando el estado del elemento gráfico izquierdo del contacto cambia de VERDADERO --> FALSO, su variable

relacionada también cambia de VERDADERO a FALSO, entonces el estado gráfico derecho del

el contacto cambia de VERDADERO a FALSO. Se mantendrá durante un ciclo, luego cambiará a VERDADERO,

que se llama disparador de borde descendente.

67
Machine Translated by Google

4. Bobina

(1) Tipo de
bobina Las bobinas son los elementos gráficos de los diagramas de escalera. Las bobinas en los diagramas de escalera

siguen la terminología de las bobinas en los diagramas lógicos eléctricos y se utilizan para representar cambios en el estado de las variab

Dependiendo de las características de las bobinas, se pueden dividir en bobinas instantáneas y

bobinas de enganche, donde las bobinas de enganche se dividen en bobinas de ajuste y bobinas de reinicio. La Tabla

5-4 enumera los símbolos de bobina comunes y las descripciones de los diagramas gráficos.

Símbolos Descripción
Escribe
gráficos

instantáneo El estado del elemento conectado izquierdo se pasa al

nuestra bobina variable booleana relevante y conectada a la derecha

elemento. Si el estado del elemento conectado izquierdo del

bobina es VERDADERO, el tipo booleano de la bobina es VERDADERO, y

viceversa, la bobina será FALSO.

Hay una S en la bobina. Cuando el estado de la izquierda


Bobina de ajuste
elemento conectado es VERDADERO, la variable booleana para ese

la bobina se establece y se mantiene hasta que la bobina de reinicio la restablece.

Restablecer Hay una R en la bobina. Cuando el estado de la izquierda

bobinas elemento conectado es VERDADERO, la variable booleana para ese

la bobina se restablece y se mantiene hasta que la bobina configurada se restablece.

Negación Hay un "/" en la bobina. El estado del booleano

Bobina La variable de esta bobina es falsa cuando la izquierda está conectada

elemento es VERDADERO, y Verdadero viceversa.

Tabla 5-4 Símbolos gráficos y descripciones de los elementos de la bobina

68
Machine Translated by Google

(2) Regla de paso de la bobina

La bobina es un elemento de diagrama de escalera que pasa el estado del elemento conectado horizontal o verticalmente

a la izquierda al elemento conectado horizontalmente a su derecha sin ningún cambio. Durante el

transferencia, el estado de las variables relevantes y las direcciones directas de la conexión izquierda se almacenan en

las variables booleanas apropiadas. Por el contrario, la bobina de negación es el elemento de escalera que pasa el

estado de su elemento de la izquierda conectado horizontal o verticalmente al de la derecha horizontalmente.

elemento conectado.

Las bobinas de ajuste y reinicio mantienen el estado del momento en que el elemento conectado horizontalmente

del lado izquierdo cambia de FALSO a VERDADERO y de VERDADERO a FALSO durante un ciclo de evaluación, y

pasar su estado de elemento del lado izquierdo conectado horizontalmente al lado derecho conectado horizontalmente

elemento en otros momentos.

Ninguna regla estipula que en el lado derecho solo se puede conectar un elemento, por lo que el usuario puede expandir

en el lado derecho, simplificando así el proceso.

(3) Doble bobina

Una bobina doble es un fenómeno en el que la misma bobina se utiliza dos o más veces en un programa de usuario y

se llama salida de bobina doble. En el mismo ciclo de exploración, la lógica de las dos bobinas puede tener resultados

opuestos, es decir, una bobina puede estar "encendida" y la otra puede estar "apagada".

Esta salida de doble bobina está permitida siempre que sólo la operación lógica correspondiente a una de las

bobinas se ejecuta en el mismo ciclo de exploración.

Los siguientes tres casos permiten salidas de doble bobina.

ÿ Se permiten salidas de doble bobina en dos segmentos de programa con condiciones de evaluación opuestas

(por ejemplo, programas automáticos y manuales), es decir, las bobinas de la misma variable pueden aparecer una vez en cada

de los dos segmentos del programa. En la práctica, el PLC ejecuta solo un comando de salida de bobina de

el elemento de doble bobina en el segmento de programa que se está procesando.

ÿ Se permite el fenómeno de doble bobina en dos subrutinas con condiciones de llamada opuestas (por ejemplo,

programas automáticos y manuales), es decir, las bobinas de la misma variable pueden aparecer una vez en cada una

de las dos subrutinas. Los comandos en una subrutina se ejecutan solo cuando se llama al programa, no

cuando no se llama.

ÿ Para evitar la salida de doble bobina, el comando set/reset se puede usar varias veces para el mismo

variable.

69
Machine Translated by Google

5. Llamadas de funciones y bloques de funciones

Si desea implementar llamadas a funciones o bloques de funciones, debe utilizar bloques de cálculo. El bloque de

cálculo puede representar todas las POU, incluidos bloques de funciones, funciones e incluso programas.

Los bloques de funciones, como temporizadores y contadores, se pueden insertar en el segmento de programa del LD.

El bloque de cálculo puede tener cualquier entrada y cualquier salida.

Al igual que los contactos y las bobinas, el usuario puede insertar bloques de funciones y funciones en el programa.

En una red, deben tener una entrada y una salida con valores booleanos y pueden usarse en la misma

posición como contactos, es decir, en el lado izquierdo de la red LD.

El diagrama de contactos y el lenguaje de texto estructurado admiten funciones y llamadas a bloques de funciones. Cuándo

se realizan llamadas a funciones y bloques de funciones, es necesario tener en cuenta los siguientes puntos.

1) Las funciones y los bloques de funciones se representan mediante un cuadro rectangular. Las funciones pueden tener múltiples entrad

parámetros pero solo un parámetro de retorno. Los bloques de funciones pueden tener múltiples parámetros de entrada y

múltiples parámetros de salida.

2) La columna de entrada está en el lado izquierdo del cuadro rectangular, y la columna de salida está a la derecha

lado de la caja rectangular.

3) Los nombres de las funciones y los bloques de funciones se muestran en la mitad superior del cuadro, y

los bloques de funciones deben crearse instancias con sus nombres de instancia enumerados en la mitad superior de la

caja afuera. Utilice el nombre de instancia del bloque de funciones como su identificador único en el proyecto.

4) Para garantizar que el flujo de energía pueda pasar a través de la función o el bloque de funciones, cada

llamada función o bloque de función debe tener al menos una función de entrada y salida. Para que se ejecute el bloque de

funciones conectado, se debe conectar al menos una entrada booleana al riel de alimentación vertical izquierdo a través

de la escalera horizontal.

5) Cuando se llama al bloque de funciones, el valor del argumento se puede completar directamente en la conexión externa

línea del bloque de funciones para ese nombre de variable de parámetro interno.

6) Si no hay parámetros de entrada/salida dedicados para EN y ENO, las funciones y la función

los bloques se ejecutarán automáticamente y el estado se pasará aguas abajo.

70
Machine Translated by Google

5.1.3 Ejemplos de aplicación

Caso 5-1 Señal de luz intermitente

(1) Requisitos de control


Se forma un sistema de luz intermitente de señal utilizando un temporizador y una función lógica. La salida de línea

permite que la luz de señal se encienda (ON) y se apague (OFF) regularmente.

(2) Programación

El programa implementa los requisitos de control de la luz intermitente de la señal girando alternativamente

bLamp y bLamp1 encendido (ON) y apagado (OFF). El programa se implementa en un diagrama de escalera como

se muestra en la Figura 5-5.

El usuario puede configurar el tiempo de encendido y apagado a través de t_SetValue, que se establece en 500 ms en el programa.

Las variables específicas se definen como se muestra en la Figura 5-5 a continuación.

Figura 5-5 Programa de escalera de la luz intermitente de señal

Cuando se ejecuta este programa, las salidas de bLamp y bLamp1 son exactamente opuestas entre sí, y el tiempo de cambio

de estado es exactamente 1 s.

71
Machine Translated by Google

5.2 Texto estructurado ST

5.2.1 Lenguaje de programación de texto estructurado ST


El texto estructurado es un lenguaje de texto de alto nivel que se puede utilizar para describir el comportamiento de funciones,

bloques de funciones y programas, así como el comportamiento de pasos, acciones y transiciones en secuencia

diagramas de funciones

El lenguaje de programación de texto estructurado es un lenguaje de alto nivel, similar a Pascal, desarrollado especialmente para

Aplicaciones de control industrial. También es el otro idioma que se admite en FSU además de la escalera

diagrama. Para quienes estén familiarizados con el desarrollo de lenguajes informáticos de alto nivel, los lenguajes de texto

estructurado son más fáciles de aprender y usar, y permiten funciones como la selección, la iteración y las declaraciones de salto. Además,

Los lenguajes de texto estructurado son fáciles de leer y comprender, especialmente cuando se comentan con significado.

identificadores y anotaciones. En sistemas de control complejos, el texto estructurado puede reducir en gran medida la cantidad de

código y simplificar los problemas complejos del sistema, pero la desventaja es hacer que la depuración no

visualizado y la compilación es relativamente lenta.

El orden de ejecución de los programas que utilizan texto estructurado se basa en "números de línea" de arriba a abajo.

Una expresión incluye un operador y un operando. El operando opera de acuerdo con las reglas.

especificado por el operador para obtener el resultado y devolverlo. Los operandos pueden ser variables, constantes, registro

direcciones, funciones, etc.

Sugerencias: si desea llamar a variables globales en lenguaje ST, puede usar "G". + el global correspondiente

formato de nombre de variable para llamar a las variables globales correspondientes, y las variables del sistema pueden ser llamadas por

utilizando "S". delante del nombre de la variable correspondiente.

72
Machine Translated by Google

5.2.2 Declaración de comando


Hay cinco tipos principales de declaraciones de texto estructurado, a saber, declaraciones de asignación, función y

sentencias de control de bloques de funciones, sentencias de selección, sentencias de iteración (bucle) y

sentencias de salto. sentencias y sentencias de salto. La tabla 5-6 enumera todas las declaraciones utilizadas en el texto estructurado.

Tipo de declaración Expresión Ejemplo

Sentencia de := bVentilador:=VERDADERO;

asignación
Bloque de
Sentencia de función/Nombre
control de
de funciónÿÿ;
funciones y bloques de funciones

Declaración SI SI<sentencia de selección>ENTONCES


de selección

<>;

TERMINARA SI;

CASO CASO<variable de condición>DE

<valor 1>ÿ<contenido de declaración 1>;

...;

<valor n>ÿ<contenido de declaración n>;

MÁS

<contenido de sentencia ELSE>;

END_CASE;

Declaración de POR FOR<variable>:=< valor inicial>TO<valor


iteración (bucle) objetivo>{BY<tamaño de paso>}

HACER

<contenido de la declaración>;

END_FOR;

73
Machine Translated by Google

TIEMPO WHILE<expresión booleana>;

<contenido de la declaración>;

END_WHILE;

REPETIR REPETIR;

<contenido de la declaración>; HASTA QUE

<expresión booleana>

END_REPEAT;

Saltar sentencia SALIR SALIDA;

DEVOLVER DEVOLVER;

Tabla 5-6 Sentencias de texto estructurado

1. Declaración de cesión

(1) Formato y función

La sentencia de asignación es una de las sentencias más utilizadas en texto estructurado, la

el valor generado por la expresión en su lado derecho se asigna al operando (variable o dirección)

en el lado izquierdo, usando ":=", en el siguiente formato:

<variable>:=<expresión>;

Por ejemplo:

bVentilador:=VERDADERO;

bVentilador1:=FALSO;

NOTA: Para la coincidencia de tipos de datos, si hay diferentes tipos de datos en dos lados, debe usar los datos

función de conversión de tipo para convertirlos al mismo tipo antes de asignar el valor.

ÿ Puede haber más de una declaración en una línea, como "Test_1:=TRUE;Test_2:=FALSE;",

que se escriben en una línea.

ÿ El valor de retorno de la función se usa como el valor de la expresión cuando se llama a la función,

y debe ser el último resultado de la evaluación.

74
Machine Translated by Google

2. Sentencias de control de funciones y bloques de funciones

Las sentencias de funciones y bloques de funciones se utilizan para llamar a funciones y bloques de funciones.

(1) Declaración de control de función

El valor de retorno se asigna a la variable directamente después de la llamada de función como el valor de la

expresión.

En el siguiente formato:

Variable := Nombre de la función (tabla de parámetros);

Por ejemploÿTest_ADD:=ADD(Test_INT1,Test_INT2);

(2) Declaración de control del bloque de funciones

En las llamadas a bloques de funciones, la llamada se implementa instanciando el nombre del bloque de funciones, por ejemplo, el temporizador está

el nombre de instancia del bloque de funciones TON.

El formato de la instrucción de control del bloque de funciones es el siguiente.

Nombre de la instancia del bloque de funciones (parámetro del bloque de funciones);

Por ejemplo: TON1ÿIN:= , Q=> , Y=> ÿ;

3. Declaración de selección

El enunciado de selección es un enunciado que determina la ejecución de su composición en base a un

expresión de selección condicional especificada, y se puede dividir en dos categorías, IF y CASE.

(1) instrucción SI

El formato básico para implementar una estructura de selección de una sola rama con una instrucción IF

es como sigue:

SI <expresión booleana> DESPUÉS

<contenido de la declaración>; TERMINARA SI;

Cuando se utiliza el formato anterior, el <contenido de la declaración> se ejecuta solo si el resultado de la <expresión

booleana> es VERDADERO; de lo contrario, el <contenido de la declaración> de la declaración IF no se ejecuta. Él

<contenido de declaración> puede ser una sola declaración, varias declaraciones en paralelo o incluso una declaración

vacía. Como se muestra en la Figura 5-7.

75
Machine Translated by Google

Figura 5-7 Flujo de ejecución de sentencias IF y IF.... .ELSE

(2) instrucción IF...ELSE

El formato básico para implementar una estructura de selección de dos ramas con una instrucción IF...ELSE

es como sigue:

SI <expresión booleana> ENTONCES

<contenido de declaración 1>;

MÁS

<contenido de declaración 2>;

TERMINARA SI;

La estructura de declaración anterior primero determina el valor de <expresión booleana> y ejecuta

<afirmación 1> si es VERDADERA y <afirmación 2> si es FALSA. El flujo de ejecución de IF...ELSE

declaración se muestra en la figura 5-7.

(3) Declaración IF...ELSIF...ELSE

Además, la estructura de selección de múltiples sucursales se puede presentar en el siguiente formato:

SI <expresión booleana 1> ENTONCES

<contenido de declaración 1> ;

ELSIF <expresión booleana 2> ENTONCES

<contenido de declaración 2>;

ELSIF <expresión booleana 3> ENTONCES

<contenido de declaración 3>;

...

MÁS

<contenido de declaración n>;

TERMINARA SI ;

76
Machine Translated by Google

Si la expresión <expresión booleana 1> es VERDADERA, entonces solo se ejecuta <contenido de declaración 1> y ninguna otra

se ejecutan los comandos. De lo contrario, comienza desde <expresión booleana 2> hasta uno de los booleanos

expressions es TRUE, y luego ejecuta el contenido de la instrucción correspondiente. Si todas las expresiones booleanas son

FALSAS, solo se ejecuta <contenido de declaración n>. El flujo de ejecución de la sentencia IF...ELSIF...ELSE

se muestra en la Figura 5-8

Figura 5-8 Flujo de ejecución de sentencias IF...ELSIF...ELSE

(4) sentencia CASO

La declaración CASE también es una declaración de selección de múltiples ramas, permite que el programa seleccione

una de múltiples ramas para ejecución basada en el valor de expresión, con lo siguiente
formato básico:

CASO <variable de condición> DE

<valor 1>: <contenido de declaración 1>;

<valor 2>: <contenido de declaración 2>;

<valor 3ÿvalor 4ÿvalor 5>: <contenido de declaración 3>;

<valor 6...valor 10>: <contenido de declaración 4>;

...

<valor n>: <contenido de sentencia n>;

MÁS

<contenido de sentencia ELSE>;

END_CASE;

La instrucción CASE se ejecuta de acuerdo con el siguiente patrón.

77
Machine Translated by Google

· Si el valor de <variable de condición> es <valor i>, entonces se ejecuta el comando correspondiente


<contenido de declaración i>.

· Si <variable condicional> no tiene ningún valor especificado, entonces se ejecuta el comando <ELSE
declaración contenido>.

· Si se requieren varios valores de una variable de condición para ejecutar el mismo comando, entonces el

Los valores se pueden escribir uno tras otro y separados por comas para que el comando común

se ejecuta, como en la línea 4 del formato básico anterior.

· Si necesita la variable de condición para ejecutar el mismo comando dentro de un cierto rango, entonces

puede escribir los valores inicial y final por separado, separados por dos puntos, para que se ejecute el comando

común, como en la línea 5 del formato básico anterior.

4. Declaración de iteración (bucle)

Las declaraciones de iteración (bucle) se utilizan principalmente en programas que se ejecutan repetidamente. En FSU, el común

Las declaraciones de iteración (bucle) son FOR, REPEAT y WHILE. La siguiente es una descripción detallada de tales
declaraciones.

(1) bucle FOR

La declaración de bucle FOR se utiliza para calcular una secuencia de inicialización que repite el anidado

sentencias y calcula una secuencia de expresiones iterativas cuando una condición es VERDADERA, o

termina el ciclo si es FALSO, en el siguiente formato:

PARA <variable> := <valor inicial> TO <valor objetivo> {POR <tamaño de paso>} HACER

<contenido de la declaración>

END_FOR;

El orden de ejecución del bucle FOR es el siguiente:

· Determinar si <variable> está dentro del rango de <valor inicial> y <valor objetivo>.

· Ejecutar <contenido de declaración> cuando <variable> está dentro del rango de <valor inicial> y <valor objetivo>.

· Cuando <variable> no está dentro del rango de <valor inicial> y <valor objetivo>, entonces <sentencia
content> no se ejecuta.

· Cada vez que se ejecuta <contenido de declaración>, <variable> siempre aumenta su valor en el valor especificado

paso. El paso puede ser cualquier valor entero. Si no se especifica ningún paso, el valor predeterminado es 1. Cuando

<variable> es mayor que <valor objetivo>, sale del bucle.

(2) bucle MIENTRAS

78
Machine Translated by Google

El ciclo WHILE es similar al ciclo FOR, excepto que la condición final del ciclo WHILE puede ser una expresión lógica arbitraria.

El ciclo WHILE puede especificar una condición que, cuando se cumple, ejecuta el ciclo en el siguiente formato.

WHILE <expresión booleana>

<contenido de la declaración>;

END_WHILE;

La secuencia de ejecución del bucle WHILE es la siguiente:

· Calcular el valor de retorno de <expresión booleana>

· Repetir <contenido de declaración> cuando el valor de <expresión booleana> sea VERDADERO.

· Cuando el valor de <expresión booleana> es FALSO, <contenido de declaración> no se ejecutará y saltará al final de la declaración
WHILE.

El diagrama de flujo del bucle WHILE se muestra en la figura 5-9.

Figura 5-9 Diagrama de flujo del bucle WHILE

En cierto sentido, el bucle WHILE es más poderoso que el bucle FOR porque el bucle WHILE no necesita

conocer el número de bucles antes de que se ejecute. Por lo tanto, en algunos casos, es suficiente usar solo

MIENTRAS bucles. Sin embargo, si se conoce claramente el número de bucles, entonces el bucle FOR es mejor porque evita la

creación de un "bucle muerto".

(3) bucle REPETIR

El bucle REPEAT difiere de WHILE en que el bucle REPEAT comprueba si hay una condición final solo después de que se

ejecuta el comando, lo que significa que el bucle se ejecuta al menos una vez, independientemente del final.

condición. Su formato específico es el siguiente:

79
Machine Translated by Google

REPETIR

<contenido de la declaración>;

HASTA QUE

<expresión booleana>

END_REPEAT;

La secuencia de ejecución del bucle REPEAT es la siguiente.

· Cuando el valor de <expresión booleana> es FALSO, ejecuta <contenido de declaración>.

· Cuando el valor de <expresión booleana> sea VERDADERO ÿ, deje de ejecutar <contenido de declaración>.

· Después de la primera ejecución de <contenido de declaración>, si el valor de <expresión booleana> es VERDADERO,

entonces <contenido de la declaración> se ejecuta solo una vez.

NOTA:

Si el valor de <expresión booleana> es siempre FALSO, se generará un "bucle muerto", que debería ser

se evita cambiando la condición en la sección de comando de bucle. Por ejemplo, utilice un contador de conteo ascendente/descendente para

evitar "bucles muertos".

5. Declaración de salto

(1) Declaración de SALIDA

Si el comando EXIT se usa en los bucles FOR, WHILE y REPEAT, el bucle interno se detiene

inmediatamente independientemente de la condición final, en el siguiente formato:

SALIDA;

Por ejemplo:

PARA Test_INT:=0 A 5 POR 1 HACER


Contador_Prueba:=AÑADIR(Contador_Prueba,1);
SI Test_exit=1 ENTONCES
SALIDA;

TERMINARA SI;

END_FOR;

80
Machine Translated by Google

(2) VOLVER

El comando RETURN es un comando de retorno que se utiliza para salir de la Unidad de organización del programa (POU) en

el siguiente formato:

DEVOLVER;

Por ejemplo:

SI bSwitch=VERDADERO ENTONCES

DEVOLVER;

TERMINARA SI; nContador:=nContador+1;

6. Comentar

El comentario es una parte muy importante de un programa, haciéndolo más legible sin afectar su

operación. Los comentarios se pueden agregar en cualquier parte de las secciones de declaración o ejecución del estructurado.

editor de texto.

1ÿ Comentarios de varias líneas, comenzando con (* y terminando con *). Este método de comentarios permite que los coment

aparecer en varias líneas.

2ÿ Un comentario de una sola línea, comenzando con "//" y continuando hasta el final de la línea.

81
Machine Translated by Google

5.2.3 Ejemplos de aplicación


Por ejemplo: bloque de funciones de histéresis FB_Hysteresis

(1) Requisitos de control

Este bloque de funciones tiene tres señales de entrada: la señal de entrada de valor actual en tiempo real, la

la señal de entrada del valor establecido de comparación y la señal de entrada del valor de desviación. Además, una salida

Se requiere valor. Cuando la señal de salida es VERDADERA, la salida cambia a FALSO solo si la señal de entrada IN1 es

menor que VAL - HYS; cuando la señal de salida es FALSA, la salida

cambia a TRUE solo si la señal de entrada IN1 es mayor que VAL + HYS.

La Figura 5-10 muestra un diagrama esquemático del proceso de histéresis y el gráfico de bloques de funciones.

Figura 5-10 Bloque de función Histéresis

(2) Programación de bloques de funciones

El procedimiento del cuerpo del bloque de función para determinar la señal de entrada es el siguiente.

SI Q ENTONCES

IFIN1<(VAL - HYS) ENTONCES


P:=FALSO;
TERMINARA SI;

ELSIFIN1>(VAL+HYS )ENTONCES
P:=VERDADERO;

TERMINARA SI;

(3) Aplicación del bloque de funciones

El bloque de funciones FB_Hystersis se puede utilizar para el control de señales de bits, donde IN1 está conectado a

la variable de proceso rActuallyValue, VAL está conectado al valor de ajuste de proceso rSetValue, y

rTolerancia es la desviación de control deseada. El cuerpo del programa es el siguiente:

fbHystersis(IN1:rActualmenteValor, VAL:=rValorEstablecido, HYS:=rTolerancia, Q=bSalida);

La parte anterior del programa también se puede representar mediante el siguiente programa, que tiene

el mismo resultado

fbHystersis(IN1:rActuallyValue, VAL:=rEstablecerValor, HYS:=rTolerancia,); bSalida:=

fbHystersis.Q;

82
Machine Translated by Google

Capítulo 6 Sistema de Comando

83
Machine Translated by Google

6.1 Comandos básicos

(1) Flip-Flop de configuración y reinicio

Operador
RS

Este bloque de funciones se utiliza como un flip-flop set-reset.


Función descriptiva

Gráficos

Definición de pines Aporte:


SET1: BOOL; Esta entrada es una entrada establecida, establece la entrada cuando es VERDADERO, y la entrada establecida
desaparece cuando es FALSO

REINICIO: BOOL; Esta entrada es una entrada de reinicio, reinicia la entrada cuando es VERDADERO, y la entrada de
reinicio desaparece cuando es FALSO

Salida:
Q1: BOOL; salida de estado de flip-flop, una vez que se produce la entrada SET1, Q1 emite
VERDADERO Cuando SET1 es VERDADERO, la salida de Q1 es VERDADERO, independientemente de si REINICIAR es VERDADERO.
Cuando SET1 es FALSO, si la salida Q1 es VERDADERA, una vez que RESET es VERDADERO, la salida Q1 se
restablece a FALSO inmediatamente. Si la salida Q1 es FALSA, independientemente de si RESET es VERDADERO o
FALSO, la salida Q1 permanece FALSA.
Expresión lógica del bloque de funciones: Q1 = (NO RESTABLECER Y Q1) O SET1

FUE
Declaración de variables
SR_1: SR;
CONJUNTO1_1:BOOL;
REINICIAR_1: BOOL;
Q1_1: BOOL;
END_VAR

Expresión en LD

Expresión en ST

Secuencia
Diagrama

Restricciones de uso

Precauciones

84
Machine Translated by Google

ÿ2ÿ Restablecer-establecer Flip Flop

Operador
RS

Este bloque de funciones se utiliza como un flip flop reset-set.


Función descriptiva

Gráficos

Definición de pines Aporte:


SET1: BOOL; Esta entrada es una entrada establecida, establece la entrada cuando es VERDADERO, y la entrada establecida
desaparece cuando es FALSO

REINICIO: BOOL; Esta entrada es una entrada de reinicio, reinicia la entrada cuando es VERDADERO, y la entrada
de reinicio desaparece cuando es FALSO

Salida:
Q1: BOOL; Salida de estado flip-flop, una vez que ocurre la entrada RESET1, Q1 emite FALSO Cuando
RESET1 es VERDADERO, la salida de Q1 es FALSO, independientemente de si SET es VERDADERO.
Cuando RESET1 es FALSO, si la salida Q1 es FALSO, una vez que SET es VERDADERO, la salida Q1 se restablece a
VERDADERO inmediatamente. Si la salida Q1 es VERDADERA, independientemente de si SET es VERDADERO o FALSO, la
salida Q1 sigue siendo VERDADERA.

Expresión lógica del bloque de funciones: Q1 = NO RESTABLECER1 Y (Q1 O ESTABLECER)

FUE
Declaración de variables
RS_1: RS;
CONJUNTO_1: BOOL;
REINICIAR1_1: BOOL;
Q1_1: BOOL;
END_VAR

Expresión en LD

Expresión en ST

Secuencia
Diagrama

Restricciones de uso

Precauciones

85
Machine Translated by Google

(3) Disparador de detección de borde ascendente

Operador
R_TRIG

Este bloque de funciones se utiliza como detección de flanco ascendente.


Función descriptiva

Gráficos

Definición de pines Aporte


CLK: BOOL; Esta entrada es la entrada de señal para el flanco ascendente del tipo booleano que se detecta

Salida:
Q: BOOL; Salida de estado de activación, una vez que se detecta una señal de flanco ascendente en CLK, la salida
Q es VERDADERO Cuando CLK cambia de FALSO a VERDADERO, la salida Q primero cambia a VERDADERO y
luego la salida Q cambia a FALSO.
Si CLK sigue siendo FALSO o VERDADERO, la salida Q sigue siendo FALSO;

Declaración de variables FUE


R_TRIG_1: R_TRIG;
CLK_1: BOOL;
Q_1: BOOL;
END_VAR

Expresión en LD

Expresión en ST

Secuencia
Diagrama

Restricciones de uso

Precauciones

86
Machine Translated by Google

(4) Disparador de detección de borde descendente

Operador
F_TRIG

Este bloque de funciones se utiliza como detección de flanco descendente.


Función descriptiva

Gráficos

Definición de pines Aporte


CLKÿBOOLÿEsta entrada es la entrada de señal para el flanco descendente del tipo booleano que se está detectando

Salida:
Q: BOOL; Salida de estado de activación, una vez que se detecta una señal de flanco descendente en CLK, la
salida Q es VERDADERO Cuando CLK cambia de VERDADERO a FALSO, la salida Q primero cambia a VERDADERO
y luego la salida Q cambia a FALSO.
Si CLK sigue siendo FALSO o VERDADERO, la salida Q sigue siendo FALSO;

Declaración de variables FUE


F_TRIG_1: F_TRIG;
CLK_1: BOOL;
Q_1: BOOL;
END_VAR

Expresión en LD

Expresión en ST

Secuencia
Diagrama

Restricciones de uso

Precauciones

87
Machine Translated by Google

6.2 Comando lógico bit a bit


(1) AND bit a bit
Y
Operador

Función
Este bloque de funciones se utiliza como una operación "Y" de variables o constantes.
descripción
Gráficos

Aporte:
Definición de pines
ESÿActivar bloque de funciones; Booleano (BOOL); cuando es VERDADERO, Y

el bloque de funciones está activado

Dat1: Variable 1; ver restricciones de uso para el tipo de datos

Dat2: mismo tipo de datos que Dat1

Producción:

ENO: Booleano (BOOL); el valor es VERDADERO una vez que EN es VERDADERO

Dat3: Variable 3, resultado de la operación AND de la variable 1 y la variable 2; el mismo tipo


de datos que Dat1

Cuando START es VERDADERO, el bloque de función AND se activa y ENO_1 emite VERDADERO; Dat1 y

Dat2 realiza la operación AND y asigna el resultado a Dat3, Dat3:=Dat1 AND Dat2;

Por ejemplo:

Dat1 es Verdadero, Dat2 es Falso, el resultado Dat3 es Falso;

Dat1 es 2#10010011, Dat2 es 2#10001010, el resultado Dat3 es 2#10000010

FUE
Declaración de variables
COMIENZO ÿ BOOL ;

Dat1ÿBOOL ;(*u otros tipos como se describe en las restricciones de uso*)

Dat2ÿBOOL ;(*tipo de datos como Dat1*)

Dat3ÿBOOL ;(*tipo de datos comoDat1*)

END_VAR

lenguaje ST Dat3:=Dat1 Y Dat2;


ejemplo
Ejemplo de
lenguaje LD

Tipos de datos aplicables para Dat1,Dat2,Dat3: BOOL,BYTE,WORD,DWORD,LWORD


Uso

restricciones El tipo de datos de Dat1,Dat2,Dat3 debe ser consistente

Precauciones

88
Machine Translated by Google

(2) O bit a bit

Operador O
Función
Este bloque de funciones se utiliza como una operación "O" de variables o constantes.

descripción
Gráficos

Aporte:
Definición de pines
ESÿActivar bloque de funciones; Booleano (BOOL); cuando es VERDADERO, O el bloque de funciones está activado

Dat1: Variable 1; ver restricciones de uso para el tipo de datos

Dat2: mismo tipo de datos que Dat1

Producción:

ENO: Booleano (BOOL); el valor es VERDADERO una vez que EN es VERDADERO

Dat3: Variable 3, resultado de la operación OR de la variable 1 y la variable 2; el mismo tipo de


datos que Dat1

Cuando START es TRUE, el bloque de funciones OR se activa y ENO_1 genera TRUE; Dat1 variable 1

y Dat2 variable 2 realizan la operación OR y asignan el resultado a Dat3, Dat3:=Dat1 OR Dat2;

Por ejemplo:

Dat1 es Verdadero, Dat2 es Falso, el resultado Dat3 es Verdadero;

Dat1 es 2#10010011, Dat2 es 2#10001010, el resultado Dat3 es 2#10011011

FUE

Declaración de variables
COMIENZO ÿ BOOL ;

Dat1ÿBOOL ;(*u otros tipos como se describe en las restricciones de uso*)

Dat2ÿBOOL ;(*tipo de datos como Dat1*)

Dat3ÿBOOL ;(*tipo de datos como Dat1*)

END_VAR

Dat3:=Dat1 O Dat2;
lenguaje ST

ejemplo
Ejemplo de
lenguaje LD

Tipos de datos aplicables para Dat1,Dat2,Dat3: BOOL,BYTE,WORD,DWORD,LWORD


Uso
El tipo de datos de Dat1,Dat2,Dat3 debe ser consistente
restricciones

Precauciones

89
Machine Translated by Google

(3) XOR bit a bit

Operador XOR Este

Función bloque de funciones se utiliza como una operación "XOR" de variables o constantes.

descripción
Gráficos

Aporte:
Definición de pines
ESÿActivar bloque de funciones; Booleano (BOOL); cuando es TRUE, el bloque de función XOR está activado

Dat1: Variable 1; ver restricciones de uso para el tipo de datos

Dat2: mismo tipo de datos que Dat1

Producción:

ENO: Booleano (BOOL); el valor es VERDADERO una vez que EN es VERDADERO

Dat3: Variable 3, resultado de la operación XOR de la variable 1 y la variable 2; el mismo tipo de


datos que Dat1

Cuando START es TRUE, el bloque de funciones XOR se activa y ENO_1 genera TRUE; Dat1 variable 1

y Dat2 variable 2 realizan la operación XOR y asignan el resultado a Dat3, Dat3:=Dat1 XOR Dat2;

Por ejemplo:

Dat1 es Verdadero, Dat2 es Falso, el resultado Dat3 es Verdadero;

Dat1 es Verdadero, Dat2 es Verdadero, el resultado Dat3 es Falso;

Dat1 es 2#10010011, Dat2 es 2#10001010, el resultado Dat3 es 2#00011001

FUE

Declaración de variables
COMIENZO ÿ BOOL ;

Dat1ÿBOOL ;(*u otros tipos como se describe en las restricciones de uso*)

Dat2ÿBOOL ;(*tipo de datos como Dat1*)

Dat3ÿBOOL ;(*tipo de datos como Dat1*)

END_VAR

Ejemplo de
Dat3:=Dat1 XOR Dat2;
lenguaje ST
Ejemplo de
lenguaje LD

Tipos de datos aplicables para Dat1,Dat2,Dat3: BOOL,BYTE,WORD,DWORD,LWORD


Uso
El tipo de datos de Dat1,Dat2,Dat3 debe ser consistente
restricciones

Precauciones

90
Machine Translated by Google

(4) Bit a bit NO

Operador NO
Este bloque de funciones se utiliza como una operación "NOT" de variables o constantes.
Función

descripción
Gráficos

Aporte:
Definición de pines
Dat1: Variable 1; ver restricciones de uso para el tipo de datos

Producción:

Dat2: Variable 2, resultado de la Variable 1 después de la operación "NO"; tipo de datos como Dat1

La variable 1 de Dat1 realiza la operación NOT y asigna su resultado a Dat2, Dat2:=NOT Dat1 ;

Por ejemplo:

Dat1 es Verdadero, Dat2 es Falso;

Dat1 es 2#10010011, el resultado Dat2 es 2#01101100

FUE
Declaración de variables
INICIO : BOOL;

Dat1ÿPALABRA ;(*u otros tipos como se describe en las restricciones de uso*)

Dat2ÿPALABRA;(*tipo de datos como Dat1*)

END_VAR

Dat2 :=NO Dat1;


Ejemplo de

lenguaje ST
Ejemplo de
lenguaje LD

Tipos de datos aplicables para Dat1,Dat2,Dat3: BOOL,BYTE,WORD,DWORD,LWORD


Uso
El tipo de datos de Dat1, Dat2 debe ser consistente
restricciones

Precauciones

91
Machine Translated by Google

6.3 Comando de temporizador

(1) Temporizador de pulso TP

Operador
TP

Este bloqueo de función se utiliza como temporizador.


Función descriptiva

Gráficos

Aporte:
Definición de pines
EN: Booleano (BOOL); Esta entrada es booleana y detecta la entrada de señal del flanco ascendente para

activar el temporizador

PTÿHORA; Esta entrada es una cantidad de tiempo utilizada para establecer el límite superior de la

temporización de ET de salida

Producción:

PÿBooleano (BOOL); Salida de estado del temporizador, Q emite VERDADERO hasta que el tiempo de ET alcanza el

establecer el límite de tiempo de PT

ETÿHORA; esta salida es el valor en tiempo real de la temporización, comenzando desde el flanco ascendente de IN

Cuando se detecta el flanco ascendente de IN, independientemente de si IN sigue siendo VERDADERO o no, la ET

se emite con precisión de milisegundos y Q emite VERDADERO hasta que el tiempo ET alcanza el tiempo establecido

límite PT, y FALSO tan pronto como el tiempo ET alcance el límite de tiempo establecido PT;

Si IN no detecta un flanco ascendente, la salida Q es FALSO;


FUE
Declaración de variables
TP_1:TP;
EN_1:BOOL;
PT_1: HORA;

Q_1: BOOL;

ET_1:HORA;

END_VAR

Expresión en LD

Expresión en ST TP_1(EN := EN_1, PT := PT_1);

ET_1 := TP_1.ET;

Q_1 := TP_1.Q;

Diagrama de secuencia

Restricciones de uso

Precauciones

92
Machine Translated by Google

(2) TON Temporizador On-Delay

Operador
TONELADA

Este bloqueo de función se utiliza como retardo de activación del temporizador.


Función descriptiva

Gráficos

Definición de pines Aporte:

EN: Booleano (BOOL); Esta entrada es booleana y detecta la entrada de señal del flanco ascendente para

activar el temporizador de retraso

PTÿHORA; Esta entrada es una cantidad de tiempo utilizada para configurar el tiempo de retardo de encendido

Producción:

PÿBooleano (BOOL); Salida de estado del temporizador, salida ET para retrasar el tiempo PT, luego Q salida TRUE

ETÿHORA; esta salida es un valor retardado en tiempo real, valor de tiempo que comienza desde el aumento

borde de IN.

Cuando se detecta el flanco ascendente de IN, la salida ET comienza a contar el tiempo, y la salida de estado del temporizador Q es

VERDADERO solo cuando la entrada IN permanece VERDADERA y el tiempo alcanza el tiempo establecido PT;

Si la entrada IN cambia de VERDADERO a FALSO antes de que el temporizador alcance el tiempo establecido PT, el

la salida de estado del temporizador Q sigue siendo FALSA;

Declaración de variables FUE

TONELADA_1: TONELADA;

EN_1: BOOL;
PT_1: HORA;
Q_1: BOOL;
ET_1:HORA;
END_VAR

Expresión en LD

Expresión en ST TON_1(EN := EN_1, PT := PT_1); ET_1 :=

TON_1.ET;

Q_1 := TON_1.Q;

Diagrama de secuencia

Restricciones de uso

Precauciones

93
Machine Translated by Google

(3) Retardo de apagado del temporizador TOF

Operador
TOF

Función descriptiva Este bloqueo de función se utiliza como retardo de apagado del temporizador.

Gráficos

Definición de pines Aporte:

EN: Booleano (BOOL); Esta entrada es booleana y detecta la entrada de señal del flanco descendente para

activar el temporizador de retraso

PTÿHORA; Esta entrada es una cantidad de tiempo utilizada para configurar el tiempo de retardo de apagado

Producción:

PÿBooleano (BOOL); Salida de estado del temporizador, salida ET para retrasar el tiempo PT, luego salida Q FALSO

ETÿHORA; esta salida es un valor en tiempo real retrasado, valor de tiempo que comienza desde la caída

borde de IN.

Cuando se detecta el flanco descendente de IN, la salida ET comienza a cronometrar y el estado del temporizador sale Q

es VERDADERO solo cuando la entrada IN permanece FALSA y el tiempo alcanza el tiempo establecido PT;

Si la entrada IN cambia de FALSO a VERDADERO antes de que el temporizador alcance el tiempo establecido PT, la salida

de estado del temporizador Q sigue siendo VERDADERO;

Declaración de variables FUE

TOF_1:

TOF; EN 1:

BOOL;

PT_1: HORA;

Q_1: BOOL;

ET_1:HORA;

END_VAR

Expresión en LD

Expresión en ST TOF_1(EN := EN_1, PT := PT_1);

ET_1 := TOF_1.ET;

Q_1 := TOF_1.Q;

Diagrama de secuencia

Restricciones de uso

Precauciones

94
Machine Translated by Google

(4) Comando de escritura de reloj en tiempo real RTC_WR

Operador
RTC_WR

Función descriptiva Este bloqueo de función se utiliza como un comando de escritura de reloj en tiempo real.

Gráficos

Definición de pines Aporte:

ESÿBooleano (BOOL); esta entrada es booleana, habilite la entrada.

BOOL_1ÿBooleano (BOOL); ejecuta un comando de escritura en 1, no

operación en 0. DT_1: tipo de fecha (DT) almacena la fecha y la hora

variable a ingresar

Producción:

ENO: booleano (BOOL), habilitar salida;

HECHO: booleano (BOOL), 1 si se establece correctamente.

ERROR: booleano (BOOL), establecido en 1 en caso de error fallido.

Declaración de variables VAR WR:

BOOL;

BOOL_1:BOOL;

DT_1:DT;

HECHO:BOOL;

ERROR:BOOL;

END_VAR

Expresión en LD

Expresión en ST

Restricciones de uso

Precauciones

95
Machine Translated by Google

(5) Comando de lectura de reloj en tiempo real RTC_RD

Operador
RTC_RD
Este bloqueo de función se utiliza como un comando de lectura de reloj en tiempo real.
Función descriptiva

Gráficos

Definición de pines

Aporte:

ESÿBooleano (BOOL); esta entrada es booleana, habilite la entrada.

BOOL_1ÿBooleano (BOOL); ejecuta un comando de lectura en 1, ninguna operación en 0.

Producción:

DT_1: Tipo de fecha (DT) almacena la variable de fecha y hora en la lectura

ENO: booleano (BOOL), habilitar salida;

HECHO: booleano (BOOL), establecido en 1 si se establece correctamente.

ERROR: booleano (BOOL), establecido en 1 en caso de error de lectura.

Declaración de variables ERA RD:

BOOL;

BOOL_1:BOOL;

DT_1:DT;

HECHO:BOOL;

ERROR:BOOL;
END_VAR

Expresión en LD

Expresión en ST

Restricciones de uso

Precauciones

96
Machine Translated by Google

6.4 Contracomando
(1) Contador de conteo
Operador
CTU

Función descriptiva Este bloque de funciones se utiliza como contador de cuenta ascendente.

Gráficos

Definición de pines Aporte:

CUÿBooleano (BOOL); Esta entrada es booleana y detecta la entrada de señal del flanco ascendente para activar el
incremento de CV de salida

R: Booleano (BOOL); Esta entrada es booleana y se utiliza para restablecer el contador, si es VERDADERO, el CV se
restablece a 0

PV: valor (ANY_INT); Esta entrada es un valor para establecer el límite superior de la salida CV

recuento de incrementos

Producción:

PÿBooleano (BOOL); Salida de estado del contador, el CV de salida se incrementa al límite de conteo superior
PV, luego salida Q VERDADERO

CVÿValor (ANY_INT); Esta salida es el valor en tiempo real del conteo incremental, que muestra el

valor incremental de 0 a PV en orden según el flanco ascendente de CU

Cuando R es VERDADERO, independientemente de si la CU detecta un flanco ascendente, el contador de cuenta ascendente

no se puede activar y el CV sigue siendo 0;

Cuando RESET es FALSO, CV se agregará 1 cuando haya un flanco ascendente de FALSO a VERDADERO

en CU, y CV se incrementará hasta el límite superior PV

Declaración de variables FUE

UTC_1: UTC;

CU_1: BOOL;

REINICIAR_1: BOOL;

PV_1: INT;

Q_1: BOOL;

CV_1:INT;
END_VAR

Expresión en LD

Expresión en ST R_TRIG1(CLK := CU_1);

CTU_1(CU := R_TRIG1.Q, R := RESET_1, PV :=

PV_1); CV_1 := CTU_1.CV;

Q_1 := CTU_1.Q;

Diagrama de secuencia

Restricciones de uso

Precauciones

97
Machine Translated by Google

(2) Contador de cuenta regresiva CTD

Operador
CTD

Función descriptiva Este bloque de funciones se utiliza como contador de cuenta atrás.

Gráficos

Definición de pines Aporte:

CDÿBooleano (BOOL); Esta entrada es booleana y detecta la entrada de señal del flanco ascendente para activar
el decremento de CV de salida

LD: Booleano (BOOL); Esta entrada es booleana y se utiliza para restablecer el contador, si es VERDADERO, el
CV se restablece a 0

PV: valor (ANY_INT); Esta entrada es un valor para establecer el límite superior de la salida CV

cuenta decreciente

Producción:

PÿBooleano (BOOL); Salida de estado del contador, cuando el CV de salida disminuye a 0, entonces salida Q
CIERTO

CVÿValor (ANY_INT); esta salida es el valor en tiempo real del conteo decreciente, de acuerdo con el

flanco ascendente del CD para mostrar el valor creciente de PV a 0

Cuando LD es TRUE, independientemente de si CD detecta un flanco ascendente, no puede activar el

conteo decreciente y CV mantiene el valor PV superior del conteo decreciente; cuando LD es FALSO, cuando hay

un flanco ascendente de FALSO a VERDADERO en CD, si CV es mayor que 0, CV disminuirá en 1, y cuando CV es

igual a 0, la salida Q será VERDADERO;


Declaración de variables FUE

CTD_1: CTD;

CD_1: BOOL;

CARGAR_1: BOOL;

PV_1: INT;

Q_1:BOOL;
CV_1:INT;
END_VAR

Expresión en LD

Expresión en ST R_TRIG1(CLK := CD_1);

CTD_1(CD:= R_TRIG1.Q,LD :=LOAD_1,PV:=

PV_1); CV_1 := CTD_1.CV;

Q_1 := CTD_1.Q;

Diagrama de secuencia

Restricciones de uso

Precauciones

98
Machine Translated by Google

(3) Contador ascendente/descendente de CTUD

Operador
CTUD

Función descriptiva Este bloque de funciones se utiliza como contador de conteo ascendente/descendente.

Gráficos

Definición de pines Aporte:

CUÿBooleano (BOOL); Esta entrada es booleana y detecta la entrada de señal de la subida

flanco para activar el incremento de CV de salida

CDÿBooleano (BOOL); Esta entrada es booleana y detecta la entrada de señal de la subida

flanco para activar el decremento de CV de salida

R: Booleano (BOOL); Esta entrada es booleana y se utiliza para restablecer el contador ascendente, si es VERDADERO.

el CV se pone a 0

LD: Booleano (BOOL); Esta entrada es booleana y se utiliza para restablecer el contador de cuenta regresiva, si

VERDADERO, CV se restablece al límite superior

PV: valor (ANY_INT); esta entrada es un valor que establece el límite de conteo superior para el

CV de salida decreciente o decreciente

Producción:

QU: booleano (BOOL); Salida de estado del contador, el CV de salida se incrementa al conteo superior

limitar PV, luego Q salida VERDADERO

QDÿBooleano (BOOL); Salida de estado del contador, cuando la salida CV disminuye a 0, entonces Q emite
VERDADERO

CV: valor (ANY_INT); esta salida es el valor en tiempo real de conteo incremental o decreciente

Cuando RESET es VERDADERO, el contador no se puede activar independientemente de si la CU o el CD detectan un


flanco ascendente, y el CV permanece en 0;

Cuando LOAD es VERDADERO, el contador no se puede activar independientemente de si CU o CD

detecta un flanco ascendente y CV mantiene el valor PV del límite superior de conteo decreciente;
Declaración de variables FUE

CTUD_1: CTUD;

CU_1: BOOL;

CD_1: BOOL;

REINICIAR_1: BOOL;

CARGAR_1: BOOL;

PV_1: INT;

QU_1: BOOL;

QD_1: BOOL;

CV_1: INT;

END_VAR

Expresión en LD

99
Machine Translated by Google

Expresión en ST R_TRIG1(CLK := CU_1);


R_TRIG2(CLK := CD_1);
CTUD_1(CU:=R_TRIG1.Q,CD:=R_TRIG2.Q,R:=RESET_1,LD:=LOAD_1,PV:=
PV_1); QD_1 := CTUD_1.QD;
CV_1 := CTUD_1.CV;

Diagrama de secuencia

Restricciones de uso

Precauciones

100
Machine Translated by Google

6.5 Comando de operación

(1) Valor absoluto ABS

Operador abdominales

Función Esta función calcula el valor absoluto del valor de entrada y asigna el resultado a la salida. Operador IEC estándar.

descriptiva

Matemático
Resultado = Valor |;

fórmula

Gráficos

Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido

Tipo de datos básicos Valor de entrada


Valor

Descripción del parámetro de salida

Variable Tipo de datos Sentido

Tipo de datos básicos Valor de salida


Resultado

FUE

Declaración de variables
Valor: INT;
Resultado: INT;

END_VAR

Expresión en LD

Expresión en ST Resultado:=ABS(Valor);

Restricciones de uso

Precauciones

101
Machine Translated by Google

(2) Raíz cuadrada SQRT

Operador SQRT

Función Esta función calcula el valor de la raíz cuadrada del valor de entrada y asigna el
descriptiva resultado a la salida. Operador IEC estándar.

Matemático

fórmula

Gráficos

Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido

Valor REAL, REAL Valor de entrada

Descripción del parámetro de salida

Variable Tipo de datos Sentido

Resultado
REAL, REAL Valor de salida

FUE
Declaración de variables
Valor: INT;

Resultado: REAL;

Expresión en LD

Expresión en ST Resultado:=SQRT(Valor);

El valor de entrada no puede ser inferior a 0


Restricciones de uso

Precauciones

102
Machine Translated by Google

(3) Logaritmo natural LN

Operador LN

Función Esta función calcula el logaritmo natural del valor de entrada (con la constante e como base).
descriptiva Operador IEC estándar.

Matemático Resultado= Ln(Valor) ;

fórmula

Gráficos

Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido

Valor REAL, REAL Valor de entrada

Descripción del parámetro de salida

Variable Tipo de datos Sentido

REAL, REAL Valor de salida


Resultado

FUE
Declaración de variables
Valor: REAL

Resultado: REAL;

END_VAR

Expresión en LD

Expresión en ST Resultado:=LN(Valor);

Restricciones de uso

Precauciones

103
Machine Translated by Google

(4) Logaritmo LOG en Base 10


Operador INICIAR SESIÓN

Función Esta función calcula el logaritmo común del valor de entrada (en base 10). Operador IEC estándar.
descriptiva

Matemático Resultado = Registro (Valor);

fórmula

Gráficos

Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido

REAL, REAL Valor de entrada


Valor

Descripción del parámetro de salida

Variable Tipo de datos Sentido

REAL, REAL Valor de salida


Resultado

FUE
Declaración de variables
Valor: REAL

Resultado: REAL;

END_VAR

Expresión en LD

Expresión en ST Resultado:=LOG(Valor);

Restricciones de uso

Precauciones

104
Machine Translated by Google

(5) EXP Función Exponencial


Operador Exp

Función Esta función calcula la potencia utilizando la constante natural e como base y el valor ÿ

descriptiva de entrada como exponente. Operador IEC estándar. Su función inversa es el logaritmo natural Ln(x)

Matemático Resultado= Exp(Valor)

fórmula

Gráficos

Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido

REAL, REAL Valor de entrada


Valor
Descripción del parámetro de salida

Variable Tipo de datos Sentido

REAL, REAL Valor de salida


Resultado

FUE
Declaración de variables

Valor: REAL;

Resultado:

REAL;

END_VAR
Expresión en LD

Expresión en ST Resultado:=EXP(Valor);

Restricciones de uso

Precauciones

105
Machine Translated by Google

(6) SIN Seno

Operador PECADO

Función Esta función calcula el seno del valor de entrada; expresado en radianes. Operador IEC estándar.
descriptiva

Matemático Resultado= Sin(Valor) ;

fórmula

Gráficos

Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido

REAL, REAL Valor de entrada


Valor
Descripción del parámetro de salida

Variable Tipo de datos Sentido

REAL, REAL Valor de salida


Resultado

FUE
Declaración de variables
Valor: REAL;

Resultado: REAL;

END_VAR

Expresión en LD

Expresión en ST Resultado:=SIN(Valor);

Restricciones de uso

Precauciones

106
Machine Translated by Google

(7) COS Coseno

Operador porque

Función Esta función calcula el coseno del valor de entrada; expresado en radianes. Operador IEC estándar.
descriptiva

Matemático Resultado= Cos(Valor);

fórmula

Gráficos

Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido

REAL, REAL Valor de entrada


Valor
Descripción del parámetro de salida

Variable Tipo de datos Sentido

REAL, REAL Valor de salida


Resultado

FUE
Declaración de variables
Valor: REAL;

Resultado: REAL;

END_VAR

Expresión en LD

Expresión en ST Resultado:=COS(Valor);

Restricciones de uso

Precauciones

107
Machine Translated by Google

(8) Tangente TAN

Operador BRONCEARSE

Función Esta función calcula la tangente del valor de entrada; expresado en radianes. Operador IEC estándar.
descriptiva

Matemático Resultado= Tan(Valor);

fórmula

Gráficos

Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido

REAL, REAL Valor de entrada


Valor
Descripción del parámetro de salida

Variable Tipo de datos Sentido

REAL, REAL Valor de salida


Resultado

FUE
Declaración de variables
Valor: REAL;

Resultado: REAL;

END_VAR

Expresión en LD

Expresión en ST Resultado:=TAN(Valor);

Restricciones de uso

Precauciones

108
Machine Translated by Google

(9) ASIN arco seno

Operador SAL

Función Esta función calcula el arco seno del valor de entrada, la función inversa de la función seno; expresado
descriptiva en radianes. Operador IEC estándar.

Matemático Resultado= Asen(Valor) ;

fórmula

Gráficos

Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido

Valor REAL, REAL Valor de entrada

Descripción del parámetro de salida

Variable Tipo de datos Sentido

REAL, REAL Valor de salida


Resultado

FUE
Declaración de variables
Valor: REAL;

Resultado: REAL;

END_VAR

Expresión en LD

Expresión en ST Resultado:=ASIN(Valor);

-1 ÿ Valor ÿ 1
Restricciones de uso

Precauciones

109
Machine Translated by Google

(10) ACOS Arco coseno

Operador ACOS

Función Esta función calcula el arco coseno del valor de entrada, la función inversa de la función coseno; expresado
descriptiva en radianes. Operador IEC estándar.

Matemático Resultado= ACOS(VALOR);

fórmula

Gráficos

Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido

REAL, REAL Valor de entrada


Valor
Descripción del parámetro de salida

Variable Tipo de datos Sentido

REAL, REAL Valor de salida


Resultado

FUE
Declaración de variables
Valor: REAL;

Resultado: REAL;

END_VAR

Expresión en LD

Expresión en ST Resultado:=ACOS(Valor);

-1 ÿ Valor ÿ 1
Restricciones de uso

Precauciones

110
Machine Translated by Google

(11) ATAN Arco tangente

Operador UN BRONCEADO

Función Esta función calcula el arco tangente del valor de entrada, la función inversa de la función tangente;
descriptiva expresado en radianes. Operador IEC estándar.

Matemático Resultado= ATAN(VALOR);

fórmula

Gráficos

Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido

REAL, REAL Valor de entrada


Valor
Descripción del parámetro de salida

Variable Tipo de datos Sentido

REAL, REAL Valor de salida


Resultado

FUE
Declaración de variables
Valor: REAL;

Resultado: REAL;

END_VAR

Expresión en LD

Expresión en ST Resultado:=ATAN(Valor);

Restricciones de uso

Precauciones

111
Machine Translated by Google

6.6 Comando aritmético

(1) AÑADIR Adición

Operador AÑADIR
Función Este bloque de funciones se utiliza como suma de variables o constantes, Dat3=Dat1+Dat2

descriptiva

Gráficos

Aporte:
Definición de pines
ESÿHabilitación del bloque de funciones (tipo BOOL); cuando es de nivel alto, se activa el bloque de funciones ADD

Dat1ÿAddend1, vea las restricciones de uso para el tipo de datos

Dat2ÿAddend2, vea las restricciones de uso para el tipo de datos

Producción:

ENO: Salida auxiliar; una vez que EN es de nivel alto, su valor es de nivel alto

Dat3: suma, es decir, el resultado de sumar los valores de entrada; ver restricciones de uso para tipos de datos

Cuando Start es TRUE, el bloque de función ADD está activado y ENO_1 Output es TRUE; después de sumar Dat1 y Dat2, el

resultado se asigna a Dat3

Por ejemplo:

Dat1=4ÿDat2=2ÿDat3=6

FUE
Declaración de variables
Inicio : BOOL;

Dat1ÿINT;(*u otros tipos de datos como en las restricciones de uso*)

Dat2:ÿINT;(*u otros tipos de datos como en las restricciones de uso*)

Dat3ÿ INT;(*u otros tipos de datos como en las restricciones de uso*)

END_VAR

Ejemplo de Dat3:=Dat1+Dat2;
lenguaje ST
Ejemplo de
lenguaje LD

Tipos de datos aplicables para Dat1,Dat2,Dat3: SINT, USINT, INT, UINT, DINT, UDINT, REAL;

Restricciones de uso Establezca Dat1, Dat2, Dat3 en el mismo tipo de datos; de lo contrario, la compilación generará un error de
discrepancia en el tipo de datos.
Precauciones
Las variables de tipo TIME no pueden utilizar la función de suma. Las variables de tipo TIME deben convertirse a tipos de datos
INT, UINT, DINT, UDINT, REAL. y luego realice la operación o use el comando de operación de fecha real directamente.

112
Machine Translated by Google

(2) Substracción

SUB
Operador

Función Este bloque de funciones se utiliza como resta de variables o constantes, Dat3=Dat1-Dat2;

descripción

Gráficos

Definición de pines Aporte:

ESÿHabilitación del bloque de funciones (tipo BOOL); cuando es de nivel alto, el bloque de funciones SUB se activa

, Dat1ÿMinuend1, vea las restricciones de uso para el tipo de datos

Dat2ÿSustraendo2, consulte las restricciones de uso para el tipo de datos

Producción:

ENO: Salida auxiliar (tipo BOOL); una vez que EN es de nivel alto, su valor es de nivel alto

Dat3ÿDiferencia, es decir, el resultado de restar el sustraendo del minuendo; ver uso

restricciones para tipos de datos

Cuando Start es 1, el bloque de función SUB se activa y ENO_1 Output es 1; después de restar Dat2 de

Dat1, el resultado se asigna a Dat3

Por ejemplo:

Dat1=4ÿDat2=2ÿDat3=3

FUE
Declaración de variables

INICIO: BOOL;

Dat1ÿINT;(*u otros tipos de datos como en las restricciones de uso*)

Dat2ÿINT;(*u otros tipos de datos como en las restricciones de uso*)

Dat3ÿ INT;(*u otros tipos de datos como en las restricciones de uso*)

END_VAR

Ejemplo de Dat3:=Dat1-Dat2;
lenguaje ST
Ejemplo de
lenguaje LD

Tipos de datos aplicables para Dat1,Dat2,Dat3: SINT, USINT, INT, UINT, DINT, UDINT, REAL;

Restricciones de uso Establezca Dat1, Dat2, Dat3 en el mismo tipo de datos; de lo contrario, la compilación generará un error de
discrepancia en el tipo de datos.

Precauciones
Las variables de tipo TIME no pueden usar la función de resta. Las variables de tipo TIME deben convertirse a tipos de datos INT, UINT,
DINT, UDINT, REAL. y luego realice la operación o use el comando de operación de fecha real directamente.

113
Machine Translated by Google

(3) Multiplicación MUL

TENGO
Operador
Función Este bloque de funciones se utiliza como una multiplicación de variables o constantes, Dat3=Dat1*Dat2
descriptiva

Gráficos

Aporte:
Definición de pines
ESÿHabilitación del bloque de funciones (tipo BOOL); cuando es de nivel alto, el bloque de función MUL se activa

Dat1ÿMultiplicador1, vea las restricciones de uso para el tipo de datos

Dat2: Multiplicador2, consulte las restricciones de uso para el tipo de datos

Producción:

ENO: Salida auxiliar (tipo BOOL); una vez que EN es de nivel alto, su valor es de nivel alto

Dat3ÿProducto, es decir, el resultado de multiplicar las variables de entrada; ver restricciones de uso de datos

tipos

Cuando EN es VERDADERO, el bloque de funciones MUL está activado y la salida ENO_1 es de nivel alto; después de multiplicar Dat1,

Dat2, el resultado se asigna a Dat3

Por ejemplo:

Dat1=4ÿDat2=2ÿDat3=8
FUE
Declaración de variables
INICIO : BOOL;

Dat1 ÿ INT;(*u otros tipos de datos como en las restricciones de uso*)

Dat2 ÿ INT;(*u otros tipos de datos como en las restricciones de uso*)

Dat3ÿ INT;(*u otros tipos de datos como en las restricciones de uso*)

END_VAR

Ejemplo de Dat3:=Dat1* Dat2;


lenguaje ST
Ejemplo de
lenguaje LD

Tipos de datos aplicables para Dat1,Dat2,Dat3: SINT, USINT, INT, UINT, DINT, UDINT, REAL;

Restricciones de uso Establezca Dat1, Dat2, Dat3 en el mismo tipo de datos; de lo contrario, la compilación generará un error de
discrepancia en el tipo de datos.

Precauciones

114
Machine Translated by Google

(4) División DIV

DIV
Operador
Función Este bloque de funciones se utiliza para dividir variables o constantes, Dat3=Dat1/Dat2

descriptiva

Gráficos

Aporte:
Definición de pines
ESÿHabilitación del bloque de funciones (tipo BOOL); cuando es de nivel alto, el bloque de función DIV se activa

Dat1ÿDividendo1, consulte las restricciones de uso para el tipo de datos

Dat2ÿDivisor2, vea las restricciones de uso para el tipo de datos

Producción:

ENO: Salida auxiliar (tipo BOOL); una vez que EN es de nivel alto, su valor es de nivel alto

Dat3ÿCocientes, es decir, el resultado de dividir el dividendo por el divisor; ver restricciones de uso de datos

tipos

Cuando EN es VERDADERO, el bloque de funciones DIV se activa y ENO_1 emite VERDADERO; después de dividir Dat1 por Dat2,

el resultado se asigna a Dat3

Por ejemplo:

Dat1=4ÿDat2=2ÿDat3=2
FUE
Declaración de variables
INICIO : BOOL;

Dat1 ÿ INT;(*u otros tipos de datos como en las restricciones de uso*)

Dat2 ÿ INT;(*u otros tipos de datos como en las restricciones de uso*)

Dat3 ÿ INT;(*u otros tipos de datos como en las restricciones de uso*)

END_VAR

Ejemplo de Dat3 := Dat1 / Dat2 ;


lenguaje ST
Ejemplo de
lenguaje LD

Tipos de datos aplicables para Dat1,Dat2,Dat3: SINT, USINT, INT, UINT, DINT, UDINT, REAL;

Restricciones de uso Establezca Dat1, Dat2, Dat3 en el mismo tipo de datos; de lo contrario, la compilación generará un error de
discrepancia en el tipo de datos.

Precauciones El divisor no puede ser 0.

115
Machine Translated by Google

(5) modelo MOD

EN CONTRA
Operador
Función
Este bloque de funciones se usa para dividir el valor de Dat1 por el valor de Dat2 para obtener el resto,
descriptiva Dat3=Dat1 EN CONTRA Dat2;

Gráficos

Aporte:
Definición de pines
ESÿHabilitación del bloque de funciones (tipo BOOL); cuando es de nivel alto, el bloque de función MOD se activa

Dat1ÿDividendo1, consulte las restricciones de uso para el tipo de datos

Dat2ÿDivisor2, vea las restricciones de uso para el tipo de datos

Producción:

ENO: Salida auxiliar (tipo BOOL); una vez que EN es de nivel alto, su valor es de nivel alto

Dat3ÿMódulo, es decir, el resto después de la división; ver restricciones de uso para tipos de datos

Cuando EN es de nivel alto, el bloque de función MOD se activa y la salida ENO_1 es de nivel alto; ES debería ser

se mantiene alto cuando la función MOD se ejecuta continuamente; después de dividir el dividendo Dat1 por el divisor Dat2, el

el resto del resultado se asigna a Dat3.

Por ejemplo:

Dat1=5ÿDat2=2ÿDat3=1
FUE
Declaración de variables
INICIO : BOOL;

Dat1ÿINT;(*u otros tipos de datos como en las restricciones de uso*)

Dat2ÿINT;(*u otros tipos de datos como en las restricciones de uso*)

Dat3ÿ INT;(*u otros tipos de datos como en las restricciones de uso*)

END_VAR

Ejemplo de Dat3:=Dat1 CONTRA Dat2;


lenguaje ST
Ejemplo de
lenguaje LD

Tipos de datos aplicables para Dat1,Dat2,Dat3: SINT, USINT, INT, UINT, DINT, UDINT, REAL;

Restricciones de uso Establezca Dat1, Dat2, Dat3 en el mismo tipo de datos; de lo contrario, la compilación generará un dato
error de discrepancia de tipos.

Precauciones

116
Machine Translated by Google

(6) EXPT Exponente

Operador exp.

Descripción de la función Esta función es un cálculo de potencia con Value_1 como base y Value_2 como exponente.
Operador IEC estándar.
Resultado= (Valor_ 1)Valor_
2;
Matemático
fórmula
Gráficos

Descripción de parámetros Descripción del parámetro de entrada

Variable Tipo de datos Sentido

REAL, REAL Valor de entrada


Valor_1

tipo de datos básicos Valor de entrada


Valor_2

Descripción del parámetro de salida

Variable Tipo de datos Sentido

REAL, REAL Valor de salida


Resultado

Declaración de variables FUE

Valor_1: REAL;

Valor_2: INT;

Resultado: REAL;

END_VAR

Expresión en LD

Resultado:=EXPT(Valor_1,Valor_2);
Expresión en ST

Restricciones de uso

Precauciones

117
Machine Translated by Google

(7) MOVER Asignación

MOVERSE
Operador

Función
Este bloque de funciones se utiliza para asignar el valor de una constante o variable a otra variable.
descriptiva

Gráficos

Definición de pines Aporte:

ESÿBooleano (BOOL); cuando es TRUE, se activa el bloque de función MOVE

Dat1ÿVariable1, ver restricciones de uso para el tipo de datos

Producción:

ENO ÿ Booleano (BOOL); una vez que EN es VERDADERO, su valor es VERDADERO

Dat2ÿVariable2, consulte las restricciones de uso para el tipo de datos

Cuando START es TRUE, el bloque de función MOVE se activa y la salida ENO_1 es TRUE; transferir datos

de la variable 1 a la variable 2 especificada, Dat2=Dat1;

Por ejemplo:

Dat1 es 5, el resultado Dat2 es 5

FUE
Declaración de variables
INICIO : BOOL;

Dat1 ÿ INT;(*u otros tipos de datos como en el

restricciones de uso*) Dat2 ÿ INT;(*u otro

tipos de datos como en las restricciones de uso*)

END_VAR

Ejemplo de Dat2 :=Dat1;


lenguaje ST
Ejemplo de
lenguaje LD

Tipos de datos aplicables para Dat1,Dat2: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, TIME,
DT, BOOL, CADENA, MATRIZ;
Restricciones de uso

Establezca Dat1, Dat2 en el mismo tipo de datos; de lo contrario, la compilación generará un error de
discrepancia de tipo de datos.

Precauciones

118
Machine Translated by Google

6.7 Comando de conversión de datos


(1) Conversión de tipo TO

Operador *_TO_*

Función Este bloque de funciones se utiliza para convertir datos de un tipo en datos de otro tipo
descriptiva
Gráficos

Definición de pin -

-
Declaración de variables

Ejemplo de
lenguaje ST

Ejemplo de
lenguaje LD

Cuando se llama al comando TO, aparece el cuadro de diálogo Llamar comando, seleccione el tipo de datos de salida de entrada que
Observación
se convertirá;

Restricciones de uso

Precauciones

119
Machine Translated by Google

(2) TRUNC Truncamiento

Operador TROMPA
Función Este bloque de funciones se utiliza para convertir el tipo REAL en tipo INT, que utilizará la parte entera del valor.
descriptiva
Gráficos

Definición de pines

FUE
Declaración de variables
Inicio : BOOL;

Dato_IN1: REAL;

Dat_SALIDA: INT;

END_VAR

Ejemplo de
Eso_SALIDA:=TRUNC(Eso_en1);
lenguaje ST

Ejemplo de
lenguaje LD

Observación

Restricciones de uso

Precauciones

120
Machine Translated by Google

6.8 Comando de comparación de datos

(1) GT Mayor que

Operador
GT

Función descriptiva Este bloque de funciones se utiliza para la comparación de datos.

Gráficos

Definición de pines
Aporte:

EN 1 ÿ Cualquier tipo de dato básico;

EN 2 ÿ Cualquier tipo de dato básico;

Producción:

SALIDA: Booleano (BOOL); Comparar resultados

Cuando IN1 es mayor que IN2, la salida OUT es VERDADERA; de lo contrario, la salida es FALSA;

Declaración de variables
FUE

EN_1:INT;
EN_2:INT;
Q_1: BOOL;

END_VAR

Expresión en LD

Expresión en ST GT_OUT := GT(EN := VERDADERO, IN1 := IN1, IN2 := IN2);

Q_1 := GT_SALIDA;

Restricciones de uso Establezca IN1, IN2 en el mismo tipo de datos; de lo contrario, la compilación generará un error de discrepancia de tipo de datos.

Precauciones El tipo de datos de la variable no puede ser BOOL

121
Machine Translated by Google

(1) GE mayor o igual que

Operador
GE

Función descriptiva Este bloque de funciones se utiliza para la comparación de datos.

Gráficos

Definición de pines

Aporte:

EN 1 ÿ Cualquier tipo de dato básico;

EN 2 ÿ Cualquier tipo de dato básico;

Producción:

SALIDA: Booleano (BOOL); Comparar resultados

Cuando IN1 es mayor o igual que IN2, la salida OUT es VERDADERA; de lo contrario, la salida es FALSA;

Declaración de variables FUE

EN 1:

EN T; EN 2:

EN T;

Q_1: BOOL;

END_VAR

Expresión en LD

Expresión en ST GE_OUT := GE(EN := VERDADERO, IN1 := IN1, IN2 := IN2);

Q_1 := GE_SALIDA;

Restricciones de uso Establezca IN1, IN2 en el mismo tipo de datos; de lo contrario, la compilación generará un error de discrepancia de tipo de datos.

Precauciones El tipo de datos de la variable no puede ser BOOL

122
Machine Translated by Google

(2) EQ Igual a

Operador
ecualizador

Función descriptiva Este bloque de funciones se utiliza para la comparación de datos.

Gráficos

Definición de pines

Aporte:

EN 1 ÿ Cualquier tipo de dato básico;

EN 2 ÿ Cualquier tipo de dato básico;

Producción:

SALIDA: Booleano (BOOL); Comparar resultados

Cuando IN1 es igual a IN2, la salida OUT es VERDADERA; de lo contrario, la salida es FALSA;

Declaración de variables FUE

EN_1:INT;
EN_2:INT;
Q_1: BOOL;

END_VAR

Expresión en LD

Expresión en ST EQ_OUT := EQ(EN := VERDADERO, IN1 := IN1, IN2 := IN2);

Q_1 := EQ_SALIDA;

Restricciones de uso Establezca IN1, IN2 en el mismo tipo de datos; de lo contrario, la compilación generará un error de discrepancia de tipo de datos.

Precauciones El tipo de datos de la variable no puede ser BOOL

123
Machine Translated by Google

(3) LT Menos de

Operador
LT

Función descriptiva Este bloque de funciones se utiliza para la comparación de datos.

Gráficos

Definición de pines Aporte:

EN 1 ÿ Cualquier tipo de dato básico;

EN 2 ÿ Cualquier tipo de dato básico;

Producción:

SALIDA: Booleano (BOOL); Comparar resultados

Cuando IN1 es menor que IN2, la salida OUT es VERDADERA; de lo contrario, la salida es FALSA;

Declaración de variables FUE

EN 1:

EN T; EN 2:

EN T;

Q_1: BOOL;

END_VAR

Expresión en LD

Expresión en ST EQ_OUT := EQ(EN := VERDADERO, IN1 := IN1, IN2 := IN2);

Q_1 := EQ_SALIDA;

Restricciones de uso Establezca IN1, IN2 en el mismo tipo de datos; de lo contrario, la compilación generará un error de discrepancia de tipo de datos.

Precauciones El tipo de datos de la variable no puede ser BOOL

124
Machine Translated by Google

ÿ4ÿ LE menor o igual que


Operador
EL

Función descriptiva Este bloque de funciones se utiliza para la comparación de datos.

Gráficos

Definición de pines
Aporte:

EN 1 ÿ Cualquier tipo de dato básico;

EN 2 ÿ Cualquier tipo de dato básico;

Producción:

SALIDA: Booleano (BOOL); Comparar resultados

Cuando IN1 es menor o igual que IN2, la salida OUT es VERDADERA; de lo contrario, la salida es FALSA;

Declaración de variables FUE

EN 1:

EN T; EN 2:

EN T;

Q_1: BOOL;

END_VAR

Expresión en LD

Expresión en ST LE_OUT := LE(EN := VERDADERO, IN1 := IN1, IN2 := IN2);

Q_1 := LE_SALIDA;

Restricciones de uso Establezca IN1, IN2 en el mismo tipo de datos; de lo contrario, la compilación generará un error de discrepancia de tipo de datos.

Precauciones El tipo de datos de la variable no puede ser BOOL

125
Machine Translated by Google

(5) NE No es igual a

Operador
NO

Función descriptiva Este bloque de funciones se utiliza para la comparación de datos.

Gráficos

Definición de pines

Aporte:

EN 1 ÿ Cualquier tipo de dato básico;

EN 2 ÿ Cualquier tipo de dato básico;

Producción:

SALIDA: Booleano (BOOL); Comparar resultados

Cuando IN1 no es igual a IN2, la salida OUT es VERDADERA; de lo contrario, la salida es FALSA;

Declaración de variables FUE

EN 1:

EN T; EN 2:

EN T;

Q_1: BOOL;

END_VAR

Expresión en LD

Expresión en ST NE_OUT := NE(EN := VERDADERO, IN1 := IN1, IN2 := IN2);

Q_1 := NE_SALIDA;

Restricciones de uso Establezca IN1, IN2 en el mismo tipo de datos; de lo contrario, la compilación generará un error de discrepancia de tipo de datos.

Precauciones El tipo de datos de la variable no puede ser BOOL

126
Machine Translated by Google

6.9 Comando de control de personajes

(1) LEN Longitud de la cadena

Operador
SOLO

Función descriptiva La longitud de la cadena de caracteres de entrada de retorno.

Gráficos

Definición de pines Descripción del pin de entrada

identificador Tipo de datos Sentido

Cadena de caracteres de entrada


FUERZA
Cadena
Descripción del pin de salida

identificador Tipo de datos Sentido

Longitud de la cadena de salida


FUERA ANY_INT

Declaración de variables FUE

Cadena_1: CADENA;

Resultado: INT;

END_VAR

Expresión en LD

Expresión en ST Resultado:=LARGO(Cadena_1);

Restricciones de uso

Precauciones

127
Machine Translated by Google

(2) IZQUIERDA Extrae la cadena de la izquierda

Operador
IZQUIERDA

Función descriptiva Extraiga un número específico de caracteres de la parte más a la izquierda de la cadena a la derecha; formar una nueva salida de
cadena.
Gráficos

Definición de pines Descripción del pin de entrada

identificador Tipo de datos Sentido

Cadena de caracteres de entrada


FUERZA
Cadena
Número de bits extraídos
TALLA ANY_INT

Descripción del pin de salida

identificador Tipo de datos Sentido

Cadena de caracteres de salida


FUERA Cadena
Declaración de variables FUE

Cadena_1: CADENA;

Tamaño: INT;

Resultado: Cadena;

END_VAR

Expresión en LD

Expresión en ST Resultado:=IZQUIERDA(Cadena_1, Tamaño);

Restricciones de uso

Precauciones

128
Machine Translated by Google

(3) DERECHA Extrae la cadena de la derecha

Operador
CORRECTO

Función descriptiva Extraiga un número específico de caracteres de la parte más a la derecha de la cadena a la izquierda; formar una nueva salida de
cadena.
Gráficos

Definición de pines Descripción del pin de entrada

identificador Tipo de datos Sentido

Cadena de caracteres de entrada


FUERZA
Cadena
Número de bits extraídos
TALLA ANY_INT

Descripción del pin de salida

identificador Tipo de datos Sentido

Cadena de caracteres de salida


FUERA Cadena
Declaración de variables FUE

Cadena_1: CADENA;

Tamaño: INT;

Resultado: Cadena;

END_VAR

Expresión en LD

Expresión en ST Resultado:=DERECHA(Cadena_1, Tamaño);

Restricciones de uso

Precauciones

129
Machine Translated by Google

(4) MID Extrae la cadena del medio

Operador
MEDIO

Función descriptiva Extraiga un número específico de caracteres desde el medio de la cadena; formar una nueva cadena de salida.

Gráficos

Definición de pines
Descripción del pin de entrada

identificador Tipo de datos Sentido

Cadena de entrada
FUERZA
Cadena
Longitud extraída
L ANY_INT

El número de dígito donde


PAG ANY_INT
comienza la extracción, cuente desde
la izquierda

Descripción del pin de salida


identificador Tipo de datos Sentido

Cadena de salida
FUERA
Cadena
Declaración de variables FUE

Cadena_1: CADENA;

Longitud: INT; Posÿ

EN T;

Resultado: Cadena;

END_VAR

Expresión en LD

Expresión en ST Resultado:=MID(Cadena_1, Longitud, Pos);

Restricciones de uso

Precauciones

130
Machine Translated by Google

(5) CONCAT Cadena de concatenación

Operador
CONCAT

Función descriptiva Combine dos cadenas para formar una nueva salida de cadena.

Gráficos

Definición de pines Descripción del pin de entrada

identificador Tipo de datos Sentido

Cabeza de la cadena fusionada


EN 1 Cadena

Fin de la cadena fusionada


EN 2 Cadena
Descripción del pin de salida

identificador Tipo de datos Sentido

Salida de la cadena fusionada


FUERA Cadena
Declaración de variables FUE

Cadena_1: CADENA;

Cadena_2: CADENA;

Resultado: Cadena;

END_VAR

Expresión en LD

Expresión en ST Resultado:=CONCAT(String_1, String_2);

Restricciones de uso

Precauciones

131
Machine Translated by Google

(6) INSERTAR Insertar cadena

Operador
INSERTAR

Función descriptiva Inserte otra cadena en una cadena para formar una nueva salida de cadena.

Gráficos

Definición de pines Descripción del pin de entrada

identificador Tipo de datos Sentido

cadena inicial
EN 1 Cadena
Cadena para insertar en STR1
EN 2 Cadena

STR1 comienza a contar desde la izquierda


PAG
ANY_INT e inserta STR2 después de esta posición

Descripción del pin de salida

identificador Tipo de datos Sentido

Salida de la cadena fusionada


FUERA Cadena
Declaración de variables FUE

Cadena_1: CADENA;

Cadena_2: CADENA;

PosÿINT;

Resultado: Cadena;

END_VAR

Expresión en LD

Expresión en ST Resultado:=INSERT(String_1, String_2, Pos);

Restricciones de uso

Precauciones

132
Machine Translated by Google

(7) ELIMINAR Cadena de eliminación

Operador
ELIMINAR
Función descriptiva Elimine una parte consecutiva específica de una cadena, los caracteres restantes forman la salida de la cadena

Gráficos

Definición de pines Descripción del pin de entrada

identificador Tipo de datos Sentido

cadena inicial
EN Cadena
Longitud eliminada
L ANY_INT

Posición eliminada contada desde la


PAG ANY_INT
izquierda (contiene esta posición)
Descripción del pin de salida

en

Salida de la cadena fusionada


FUERA Cadena
Declaración de variables FUE

Cadena_1: CADENA;

Longitud: INT;

Expresión en LD

Expresión en ST Resultado:=DELETE(String_1, Legth, Pos);

Restricciones de uso

Precauciones

133
Machine Translated by Google

(8) REEMPLAZAR Reemplazar cadena

Operador
REEMPLAZAR

Función descriptiva Reemplace parte de una cadena más larga con una cadena para formar una nueva salida de cadena.

Gráficos

Definición de pines Descripción del pin de entrada

identificador Tipo de datos Sentido

ENÿ cadena inicial


Cadena
ENÿ Reemplazo de cuerda
Cadena

Longitud de la cadena reemplazada


L ANY_INT

Posición reemplazada contada


PAG
ANY_INT
desde la izquierda (contiene esta
posición)
Descripción del pin de salida

identificador Tipo de datos Sentido

Salida de la cadena fusionada


FUERA Cadena
Declaración de variables FUE

Cadena_1: CADENA;

Cadena_ÿ: CADENA;

Longitud: INT;

Expresión en LD

Expresión en ST Resultado:=REPLACE(String_1, String_2, Legth, Pos);

Restricciones de uso

Precauciones

134
Machine Translated by Google

(9) ENCONTRAR Buscar cadena

Operador
ENCONTRAR

Función descriptiva Encuentre la posición inicial de una cadena específica de una cadena

Gráficos

Definición de pines Descripción del pin de entrada

identificador Tipo de datos Sentido

ENÿ cadena inicial


Cadena
ENÿ Cadena buscada
Cadena
Descripción del pin de salida

identificador Tipo de datos Sentido

FUERA
EN T

Declaración de variables FUE

Cadena_1: CADENA;

Cadena_ÿ: CADENA;

Expresión en LD

Expresión en ST Pos:=ENCONTRAR(Cadena_1, Cadena_2);

Restricciones de uso

Precauciones Tenga en cuenta el caso de las letras de cadena


IN2 Posición de inicio en IN1, si IN2 no se encuentra en IN1, salida "0"

135
Machine Translated by Google

6.10 Comando de operación de tiempo

(1) *_ADD_** Adición de fecha y hora

Operador *_ADD_**
Función Este bloque de funciones se utiliza como una suma de hora o fecha, Hora3=Hora1+Hora2
descriptiva
Gráficos

Definición de pines Aporte:

ESÿHabilitación del bloque de funciones (tipo BOOL); cuando es de nivel alto, se activa el bloque de funciones ADD

Time1ÿAddend1, vea las restricciones de uso para el tipo de datos

Time2ÿAddend2, vea las restricciones de uso para el tipo de datos

Producción:

ENO: Salida auxiliar (tipo BOOL); una vez que EN es de nivel alto, su valor es de nivel alto

Time3: suma, es decir, el resultado de sumar los valores de entrada; ver restricciones de uso de datos

tipos

Cuando Start es TRUE, el bloque de funciones *_ADD_** se activa y ENO_1 Output es TRUE; HORA1 y

TIME2 se suman y el resultado se asigna a TIME3

Por ejemplo:

Tiempo1=t#10s, Tiempo2=t#20s,Tiempo3=t#30s

Declaración
de variables FUE

Inicio : BOOL;

Time1 ÿ TIME;(*u otros tipos de datos como en las restricciones de uso*)

Time2: ÿ TIME;(*u otros tipos de datos como en las restricciones de uso*)

Time3ÿTIME;(*u otros tipos de datos como en las restricciones de uso*)

END_VAR

Ejemplo de Dat3:=Dat1+Dat2;
lenguaje ST
Ejemplo de
lenguaje LD

Hora1 tipo de datos HORA DT TOD; Tiempo2 tipo de datos TIEMPO; El tipo de datos Time3 sigue a Time1.
Restricciones de uso

Precauciones

136
Machine Translated by Google

(2) *_SUB_** Resta de fecha y hora

Operador *_SUB_**
Función Este bloque de funciones se utiliza como resta de hora o fecha , Hora3=Hora1-Hora2
descriptiva
Gráficos

Definición de pines Aporte:

ESÿHabilitación del bloque de funciones (tipo BOOL); cuando es de alto nivel, el bloque de funciones *_SUB_** es

activado

Time1ÿMinuend1, vea las restricciones de uso para el tipo de datos

Time2ÿSustraendo2, vea las restricciones de uso para el tipo de datos

Producción:

ENO: Salida auxiliar (tipo BOOL); una vez que EN es de nivel alto, su valor es de nivel alto

Time3ÿDiferencia, es decir, el resultado de restar los valores de entrada; ver restricciones de uso de datos

tipos

Cuando Start es TRUE, el bloque de funciones *_SUB_** se activa y ENO_1 Output es TRUE; HORA1 y

TIME2 se restan y el resultado se asigna a TIME3

Por ejemplo:

Tiempo1=t#4s,Tiempo2=t#2s,Tiempo3=t#2s

Declaración
de variables FUE

Inicio : BOOL;

Time1ÿTIME;(*u otros tipos de datos como en el uso

restricciones*) Hora2: ÿHORA;(*u otros tipos de datos

como en las restricciones de uso*) Hora3 ÿ HORA;(*o

otros tipos de datos como en las restricciones de uso*)

END_VAR

Ejemplo de Hora3:=Hora1+Hora2;
lenguaje ST
Ejemplo de
lenguaje LD

Restricciones de uso Hora1 tipo de datos HORA DT TOD FECHA; TIEMPO2 tipo de datos TIEMPO.

El tipo de datos Time3 cambia con Time1: cuando Time1 TIME, solo puede ser TIME; Time1 es FECHA, puede

ser solo FECHA; Time1 es TOD, puede ser TOD o TIME; Time1 es D, puede ser DT o TIME.

Precauciones

137
Machine Translated by Google

(3) *_MUL_** Multiplicación de fecha y hora

Operador *_MUL_**
Función Este bloque de funciones se utiliza como una multiplicación de hora o fecha, Time3=Time1*Data1
descriptiva
Gráficos

Definición de pines Aporte:

ESÿHabilitación del bloque de funciones (tipo BOOL); cuando es de alto nivel, el bloque de funciones *_SUB_** es

activado

Hora 1: Multiplicando 1, consulte las restricciones de uso para el tipo de datos

Datos1: Multiplicador1, consulte las restricciones de uso para el tipo de datos

Producción:

ENO: Salida auxiliar; una vez que EN es de nivel alto, su valor es de nivel alto

Time3ÿProducto, es decir, el resultado de multiplicar los valores de entrada; ver restricciones de uso de datos

tipos

Cuando Start es TRUE, el bloque de funciones *_MUL_** se activa y ENO_1 Output es TRUE; HORA1 y

Data1 se multiplican y el resultado se asigna a TIME3

Por ejemplo:

Tiempo1=t#4s, Datos1=2,Tiempo3=t#8s
Declaración
de variables FUE

Inicio : BOOL;

Time1ÿTIME;(*u otros tipos de datos como en el uso

restricciones*) Data1:ÿINT;(*u otros tipos de datos como

en las restricciones de uso*) Hora3 ÿ HORA;(*o

otros tipos de datos como en las restricciones de uso*)

END_VAR

Ejemplo de Hora3:=Hora1*Datos1;
lenguaje ST
Ejemplo de
lenguaje LD

Hora1 tipo de datos TIEMPO ÿ

Restricciones de uso
Data1 tipo de datos ANY_INT, ANY_REAL;

TIEMPO3 tipo de datos TIEMPO ÿ

Precauciones

138
Machine Translated by Google

(4) *_DIV_** División de fecha y hora

Operador
*_DIV_**
Función Este bloque de funciones se utiliza como una división de fecha o hora , Time3=Time1/Data1
descriptiva
Gráficos

Definición de pines

Aporte:

ESÿHabilitación del bloque de funciones (tipo BOOL); cuando es de nivel alto, se activa el bloque de función *_DIV_**

Time1ÿDividend1, vea las restricciones de uso para el tipo de datos

Data1ÿDivisor1, consulte las restricciones de uso para el tipo de datos

Producción:

ENO: Salida auxiliar; una vez que EN es de nivel alto, su valor es de nivel alto

Tiempo3: Cocientes, es decir, el resultado de multiplicar los valores de entrada; ver restricciones de uso de datos

tipos

Cuando Start es TRUE, el bloque de funciones *_DIV_** se activa y ENO_1 Output es TRUE; HORA1 y

Data1 se dividen y el resultado se asigna a TIME3

Por ejemplo:

Tiempo1=t#4s, Datos1=2,Tiempo3=t#2s
Declaración
de variables FUE

Inicio : BOOL;

Time1ÿTIME;(*u otros tipos de datos como en el uso

restricciones*) Data1:ÿINT;(*u otros tipos de datos como

en las restricciones de uso*) Hora3 ÿ HORA;(*o

otros tipos de datos como en las restricciones de uso*)

END_VAR

Ejemplo de Tiempo3:=Tiempo1/Datos1;
lenguaje ST
Ejemplo de
lenguaje LD

Hora1 tipo de datos TIEMPO ÿ

Restricciones de uso
Data1 tipo de datos ANY_INT, ANY_REAL;

TIEMPO3 tipo de datos TIEMPO ÿ

Precauciones

139
Machine Translated by Google

6.11 Desplazamiento de izquierda a derecha

(1) Desplazamiento a la izquierda

Operador SHL
Función Este bloque de función se utiliza para desplazar el operando por bits hacia la izquierda, el bit desplazado hacia la izquierda no se procesa
descriptiva y el derecho se rellena automáticamente con 0.
Gráficos

Entrada de definición de pin:


ESÿActivar bloque de funciones; Booleano (BOOL); cuando es TRUE, el bloque de función SHL está activado
Var1ÿVariable 1; ver restricciones de uso para el tipo de datos
Var2ÿVariable 2; ver restricciones de uso para el tipo de datos
Producción:
ENOÿBooleanoÿBOOLÿ; Una vez que EN es VERDADERO, su valor es VERDADERO
Var3ÿVariable 3; resultado de un desplazamiento a la izquierda bit a bit del operando; mismo tipo de datos que Var1

Cuando EN es VERDADERO, el bloque de funciones SHL está activado, la salida ENO es VERDADERO; El resultado de desplazar la

La variable operando 1 dejada por los bits de la variable 2 se asigna a Var3, Var3:=SHL(Var1,Var2).

Por ejemplo:
Var1 es 16#45, Var2 es 2, el resultado Var3 es 16#0114
Declaración FUE
de variables EN_1 ÿBOOL ÿ

Var1ÿPALABRA;(*u otros tipos como se describe en las restricciones de uso*)


Var2ÿPALABRA;(*u otros tipos como se describe en las restricciones de uso*)
ENO_1 : BOOL ÿ

Var3ÿPALABRA;(*tipo de datos como Var1*)


END_VAR

Ejemplo de Var3 :=SHL( Var1, Var2);


lenguaje ST

Ejemplo de
lenguaje LD

Uso
restricciones Tipos de datos aplicables para Var1, Var2, Var3: BYTE, INT, WORD, DWORD, SINT, UINT

El tipo de datos de Var3 debe ser el mismo que Var1


Precauciones Var3:=SHL(16#45,2); (*Var3:BYTE; el resultado Var3 es 16#14*) Var3:=SHL(16#45,2); (*Var3: PALABRA; el resultado Var3 es 16#0114*)

Nota: En el ejemplo anterior, aunque el valor de la variable de entrada es el mismo, el resultado obtenido es diferente porque el

tamaño del tipo de datos de salida es diferente.

140
Machine Translated by Google

(2) Desplazamiento a la derecha

Operador Función SHR


Este bloque de función
se usa para desplazar el operando por bit a la derecha, el bit desplazado a la derecha no se procesa descripción y el izquierdo se llena
automáticamente con 0.
Gráficos

Entrada de definición de pin:


ESÿActivar bloque de funciones; Booleano (BOOL); cuando es TRUE, el bloque de función SHR está activado

Var1ÿVariable 1; ver restricciones de uso para el tipo de datos


Var2ÿVariable 2; ver restricciones de uso para el tipo de datos

Producción:
ENOÿBooleanoÿBOOLÿ; Una vez que EN es VERDADERO, su valor es VERDADERO
Var3ÿVariable 3; resultado de un desplazamiento bit a bit a la derecha del operando; mismo tipo de datos que Var1

Cuando EN es VERDADERO, el bloque de funciones SHR está activado, la salida ENO es VERDADERO; El resultado de desplazar la

la variable operando 1 junto a los bits de la variable 2 se asigna a Var3, Var3:=SHR(Var1,Var2).

Por ejemplo:
Var1 es 16#45, Var2 es 2, el resultado Var3 es 16#0011
Declaración FUE
de variables
EN_1 ÿBOOL ÿ

Var1: PALABRA ÿ (*u otros tipos como se describe en las restricciones de uso*)
Var2: PALABRA; (*u otros tipos como se describe en las restricciones de uso *)
ENO_1 : BOOL ÿ

Var3ÿPALABRA;(*tipo de datos como Var1*)


END_VAR

Ejemplo de Var3 :=SHR(Var1,Var2);


lenguaje ST
Ejemplo de
lenguaje LD

Uso
restricciones Tipos de datos aplicables para Var1, Var2, Var3: BYTE, INT, WORD, DWORD, SINT, UINT

El tipo de datos de Var3 debe ser el mismo que Var1


Precauciones

141
Machine Translated by Google

(3) Rotación a la izquierda

ROL del operador


Función Este bloque de funciones se utiliza para desplazar el operando un bit cíclicamente a la izquierda, y el bit desplazado a la izquierda se suma
descriptiva directamente al bit más bajo a la derecha.
Gráficos

Entrada de definición de pin:


ESÿBooleano (BOOL); cuando es TRUE, el bloque de función ROL está activado
Var1ÿVariable 1; ver restricciones de uso para el tipo de datos
Var2ÿVariable 2; ver restricciones de uso para el tipo de datos

Producción:
ENOÿBooleanoÿBOOLÿ; Una vez que EN es VERDADERO, su valor es VERDADERO
Var3ÿVariable 3; resultado de un desplazamiento a la izquierda bit a bit del operando; mismo tipo de datos que Var1

Cuando EN es VERDADERO, el bloque de funciones ROL está activado, la salida ENO es VERDADERO; El resultado de desplazar la

variable operando 1 dejada por los bits de la variable 2 se asigna a Var3, Var3:=ROL(Var1,Var2).

Por ejemplo:
Var1 es 16#45, Var2 es 2, el resultado Var3 es 16#0114
Declaración FUE
de variables
EN_1 ÿBOOL ÿ

Var1ÿPALABRA;(*u otros tipos como se describe en las restricciones de uso*)


Var2ÿPALABRA;(*u otros tipos como se describe en las restricciones de uso*)
ENO_1 : BOOL ÿ

Var3ÿPALABRA;(*tipo de datos Var1*)


END_VAR

Ejemplo de
lenguaje ST
Var3 :=ROL(Var1,Var2);
Ejemplo de
lenguaje LD

Uso
restricciones Tipos de datos aplicables para Var1, Var2, Var3: BYTE, INT, WORD, DWORD, SINT, UINT

El tipo de datos de Var3 debe ser el mismo que Var1


Precauciones
Var3:=ROL(16#45,2); (*Var3:BYTE; el resultado Var3 es 16#15*) Var3:=ROL(16#45,2); ÿ*Var3ÿ
PALABRAÿresultado Var3 es 16#0114*ÿ

Nota: En el ejemplo anterior, aunque el valor de la variable de entrada es el mismo, el resultado obtenido es diferente porque el
tamaño del tipo de datos de salida es diferente.

142
Machine Translated by Google

(4) Rotación a la derecha

Operador ROR

Función Este bloque de funciones se utiliza para desplazar el operando en bits cíclicamente hacia la derecha, y el bit desplazado a la derecha se
descriptiva suma directamente al bit superior a la izquierda.
Gráficos

Entrada de definición de pin:


ESÿBooleano (BOOL); cuando es TRUE, el bloque de funciones ROR está activado
Var1ÿVariable 1; ver restricciones de uso para el tipo de datos
Var2ÿVariable 2; ver restricciones de uso para el tipo de datos

Producción:
ENOÿBooleanoÿBOOLÿ; Una vez que EN es VERDADERO, su valor es VERDADERO
Var3ÿVariable 3; resultado de un desplazamiento bit a bit a la derecha del operando; mismo tipo de datos que Var1

Cuando EN es VERDADERO, el bloque de funciones ROR está activado, la salida ENO es VERDADERO; El resultado de

desplazar la variable operando 1 a la derecha los bits de la variable 2 se asigna a Var3, Var3:=ROR(Var1,Var2).

Por ejemplo:
Var1 es 16#45, Var2 es 2, el resultado Var3 es 16#40011
Declaración FUE
de variables EN_1 ÿBOOL ÿ

Var1ÿPALABRA ;(*u otros tipos como se describe en las restricciones de uso*)


Var2ÿPALABRA ;(*u otros tipos como se describe en las restricciones de uso*)
ENO_1 : BOOL ÿ

Var3ÿPALABRA;(*tipo de datos Var1*)


END_VAR

Ejemplo de
Var3 :=ROR(Var1,Var2);
lenguaje ST
Ejemplo de
lenguaje LD

Uso
restricciones Tipos de datos aplicables para Var1, Var2, Var3: BYTE, INT, WORD, DWORD, SINT, UINT

El tipo de datos de Var3 debe ser el mismo que Var1


Precauciones
Var3:=ROR(16#45,2); (*Var3 ÿ BYTEÿ el resultado Var3 es 16#51*) Var3:=ROR(16#45,2);
(*Var3: PALABRA; el resultado Var3 es 16#4011*)

Nota: En el ejemplo anterior, aunque el valor de la variable de entrada es el mismo, el resultado

obtenido es diferente porque el tamaño del tipo de datos de salida es diferente.

143
Machine Translated by Google

6.12 Selección

ÿ1ÿ Cualquiera O

Operador ESTE
Función Este bloque de funciones se utiliza para seleccionar una variable de entrada como salida de dos variables de entrada
descriptiva
Gráficos

Entrada de definición de pin:


GÿSeñal de selección; Booleano (BOOL); si esta entrada es FALSA, salida OUT:=IN0; si la entrada es VERDADERA, salida
SALIDA:=ENTRADA1

IN0ÿVariable candidata uno para la elección o bien; cualquier tipo de datos básico
IN1: Remolque variable candidato para la opción o; cualquier tipo de datos básico

Salidaÿ
Resultado de la selección; cualquier tipo de datos básicos; una de las dos variables candidatas se seleccionará como salida.

Por ejemplo:
Dat_OUT:=SEL(VERDADERO,3,4); resultado Dat_OUT=4
Dat_OUT:=SEL(Falso,3,4); resultado Dat_OUT=3
Declaración FUE
de variables
G_1: BOOL;
Dat_IN0: INT;
Dat_IN1: INT;
Dat_SALIDA: INT;
END_VAR

Ejemplo de
Dat_OUT :=SEL(G_1,Dat_IN0,Dat_IN1);
lenguaje ST

Ejemplo de
lenguaje LD

Se recomienda que Dat_IN0, Dat_IN1, Dat_OUT se establezcan en el mismo tipo de datos para evitar errores y equivocaciones en la
Restricciones de uso
conversión de datos.

Precauciones Los tipos de variables para IN0 e IN1 en el lado de Entrada pueden ser diferentes, pero deben ser de un tipo de datos comparable, por

ejemplo, IN0 es BYTE, IN1 es Real, Out es Real está permitido; por ejemplo, IN0 es BOOL (su valor es Falso o Verdadero), IN1 es

Real, Out es Real no está permitido, porque los tipos Bool no se pueden comparar con números enteros o de coma flotante. Además,

el tipo de variable en el lado de salida debe cubrir la longitud de la variable en el lado de entrada, por ejemplo, si las variables en el

lado de entrada son BYTE e INT respectivamente, entonces el tipo de variable en el lado de salida debe estar en menos INT, y no

puede ser BYTE (consulte la sección Tipos de variables para obtener una descripción de las longitudes de los tipos de datos

variables). Si el valor de la variable G en el lado de entrada se selecciona como

Falso o Verdadero, el lado de salida tendrá la salida

144
Machine Translated by Google

(2) Valor máximo

Operador MÁX.

Función Este bloque de funciones se utiliza para seleccionar el número más grande de los valores de dos o más variables del lado de entrada como
descriptiva valor de salida
Gráficos

Entrada de definición de pin :


Pin1: valor de comparación 1; cualquier tipo de datos básico
Pin2: valor de comparación 2; cualquier tipo de datos básico
Producción:
Resultado de la comparación; cualquier tipo de datos básico

Por ejemplo:
Dat_OUT:=MAX(90,30); resultado Dat_OUT=90

Declaración FUE
de variables Dat_IN0:
EN T;
Dat_IN1:
EN T;
Dat_SALIDA: INT; END_VAR

, lenguaje ST Dat_OUT :=MAX(Dat_IN0,Dat_IN1,Dat_IN2);


ejemplo
Ejemplo de
lenguaje LD

El número máximo de entradas no debe exceder las 480, de lo contrario, el software se cerrará de manera anormal durante la compilación. Para
garantizar el funcionamiento normal del programa, se recomienda que el número de datos que no intervienen en la comparación no supere los
Restricciones de uso
300.

Se recomienda que Dat_IN0, Dat_IN1, Dat_OUT se establezcan en el mismo tipo de datos para evitar errores y equivocaciones en la conversión
de datos.
Precauciones
El número de entradas de datos puede ser más de dos, a través del elemento de menú "Insertar entrada" en el idioma LD.

Varias variables de entrada pueden ser de diferentes tipos, pero deben ser tipos de datos comparables, por ejemplo, un pin de entrada es BYTE,
otro pin de entrada es Real y se permite Out is Real; por ejemplo, un pin de entrada es BOOL (su valor es Falso o Verdadero) y otro pin de entrada
es Real. La variable de salida es Real no está permitida, porque el tipo Bool no es comparable con números enteros o de coma flotante.

Si los tipos de entrada son diferentes, el tipo de variable de salida debe ser uno que pueda cubrir la longitud de la variable de entrada, por
ejemplo, si las entradas son BYTE e INT respectivamente, el tipo de variable de salida debe ser al menos INT y no puede ser BYTE ( consulte
la sección Tipos de variables para obtener una descripción de las longitudes de los tipos de datos variables).

145
Machine Translated by Google

(3) Valor mínimo

Operador MÍN.

Función Este bloque de funciones se utiliza para seleccionar el número más pequeño de dos o más datos.
descriptiva
Gráficos

Entrada de definición de pin :


Pin1: valor de comparación 1; cualquier tipo de datos básico
Pin2: valor de comparación 2; cualquier tipo de datos básico
Producción:
Resultado de la comparación; cualquier tipo de datos básico
Por ejemplo:
Dat_OUT:=MIN(90,30); resultado Dat_OUT=30

Declaración FUE
de variables Dat_IN0:
EN T;
Dat_IN1:
EN T;
Dat_SALIDA: INT;
END_VAR

Ejemplo de Dat_OUT :=MIN(Dat_IN0,Dat_IN1);


lenguaje ST

Ejemplo de
, lenguaje LD

El número máximo de entradas no debe exceder las 480, de lo contrario, el software se cerrará de manera anormal durante la compilación.
Para garantizar el funcionamiento normal del programa, se recomienda que el número de datos que no intervienen en la comparación no
Restricciones de uso
supere los 300.

Se recomienda que Dat_IN0, Dat_IN1, Dat_OUT se establezcan en el mismo tipo de datos para evitar errores y equivocaciones en la
conversión de datos.
Precauciones
El número de entradas de datos puede ser más de dos, a través del elemento de menú "Insertar entrada" en el idioma LD.

Varias variables de entrada pueden ser de diferentes tipos, pero deben ser tipos de datos comparables, por ejemplo, un pin de entrada es
BYTE, otro pin de entrada es Real y se permite Out is Real; por ejemplo, un pin de entrada es BOOL (su valor es Falso o Verdadero) y otro
pin de entrada es Real, la variable de salida es Real no está permitida, porque el tipo Bool no es comparable con números enteros o de coma
flotante.

Si los tipos de entrada son diferentes, el tipo de variable de salida debe ser uno que pueda cubrir la longitud de la variable de entrada,
por ejemplo, si las entradas son BYTE e INT respectivamente, el tipo de variable de salida debe ser al menos INT y no puede ser BYTE
( consulte la sección Tipo de variable para obtener una descripción de las longitudes de tipos de datos variables).

146
Machine Translated by Google

(4) Valor límite

Operador LÍMITE
Función Este bloque de funciones se usa para limitar la salida al valor de la variable de entrada, de modo que solo se emitan los
descriptiva valores entre MN y MX, independientemente del cambio en la variable de entrada IN.
Gráficos

Definición de pines
Aporte:
MNÿValor mínimo al que la salida es mayor o igual; cualquier tipo de datos básico
INÿDatos originales, cuando su valor está entre MN y MX, la salida es igual a este valor; cualquier tipo de datos básico
MXÿValor máximo, la salida es menor o igual a este valor; cualquier tipo de datos básico

Salidaÿ
Resultados limitados; cualquier tipo de dato básico.
Si MX ÿ IN ÿ MN, el valor de salida es igual a IN; si IN ÿ MN, el valor de salida es igual al valor de MN; si IN ÿ MX, el valor
de Salida es igual al valor de MX.

Por ejemplo:
Dat_OUT:=LIMIT( 4ÿ8ÿ10 )ÿresulta Dat_OUT=8;
Dat_OUT:=LIMIT( 4ÿ3ÿ10 )ÿresulta Dat_OUT=4;
Dat_OUT:=LIMIT( 4ÿ11ÿ10 )ÿresulta Dat_OUT=10;
Declaración FUE
de variables Dat_Min:
EN T;
Dat_IN1:INT;
Dat_Max:
EN T; Dat_OUT:
EN T;
END_VAR

Ejemplo de Dat_OUT :=LIMIT(Dat_Min,Dat_IN1,Dat_Max);


lenguaje ST
Ejemplo de
lenguaje LD

El valor de MN debe ser menor que el valor de MX.


Restricciones de uso

Se recomienda que Dat_Min, Dat_IN1, Dat_Max y Dat_OUT se establezcan en el mismo tipo de datos para evitar errores y
equivocaciones en la conversión de datos.
Precauciones
Varias variables de entrada pueden ser de diferentes tipos, pero deben ser tipos de datos comparables, por ejemplo, un pin de
entrada es BYTE, otro pin de entrada es Real y se permite Out is Real; por ejemplo, un pin de entrada es BOOL (su valor es Falso
o Verdadero) y otro pin de entrada es Real, la variable de salida es Real no está permitida, porque el tipo Bool no es comparable
con números enteros o de punto flotante.

Si los tipos de entrada son diferentes, el tipo de variable de salida debe ser uno que pueda cubrir la longitud de la variable de
entrada, por ejemplo, si las entradas son BYTE e INT respectivamente, el tipo de variable de salida debe ser al menos INT y no
puede ser BYTE ( consulte la sección Tipo de variable para obtener una descripción de las longitudes de tipos de datos variables).

Si el valor de la variable en la variable de entrada MN es mayor que el valor de la variable en la variable de entrada MX, la salida
emite el valor de la variable en la variable de entrada MX, independientemente del valor de IN.

147
Machine Translated by Google

(5) opción múltiple

Operador MUX
Función Este bloque de funciones se usa para seleccionar una salida variable de varios pines de entrada
descriptiva
Gráficos

Definición de pines
Aporte:
KÿNúmero de selección de datos; el valor de K determinará qué pin de entrada se selecciona como salida
Otros pines: opción múltiple de variables candidatas; cualquier tipo de datos básico

Producción:

FUERAÿResultado de la selección; cualquier tipo de datos básicos; salida después de seleccionar una de las múltiples variables candidatas
Por ejemplo:
Dat_OUT:=MUX(0,30,40,50,60,70,80); (* 0 significa que se selecciona el primer dato, resultado Dat_OUT=30 *);
Declaración FUE
de variables K_1: BYTE;
Dat_IN0: INT;
Dat_IN1: INT;
Dat_IN2: INT;
Dat_IN3: INT;
Dat_SALIDA: INT;
END_VAR

Ejemplo de Dat_OUT :=MUX(K_1,Dat_IN0,Dat_IN1,Dat_IN2,Dat_IN3);


lenguaje ST
Ejemplo de
lenguaje LD

Los tipos de datos aplicables para K son: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT o UDINT;
Restricciones de uso

Cualquier tipo de datos es aplicable para el número y la salida seleccionados, pero se recomienda utilizar los mismos tipos de
datos para evitar errores y errores en la conversión de datos.

El número máximo de entradas no debe exceder las 480, de lo contrario, el software se cerrará de manera anormal durante la
compilación. Para garantizar el funcionamiento normal del programa, se recomienda que el número de datos que no intervienen en la
comparación no supere los 300.

Precauciones
El número de entradas de datos puede ser más de dos, a través del elemento de menú "Insertar entrada" en el idioma LD.

Varias variables de entrada pueden ser de diferentes tipos, pero deben ser tipos de datos comparables, por ejemplo, un pin de entrada
es BYTE, otro pin de entrada es Real y se permite Out is Real; por ejemplo, un pin de entrada es BOOL (su valor es Falso o Verdadero) y
otro pin de entrada es Real, la variable de salida es Real no está permitida,
porque el tipo Bool no es comparable con números enteros o de punto flotante.

Si los tipos de entrada son diferentes, el tipo de variable de salida debe ser uno que pueda cubrir la longitud de la variable de entrada,
por ejemplo, si las entradas son BYTE e INT respectivamente, el tipo de variable de salida debe ser al menos INT y no puede ser BYTE
( consulte la sección Tipo de variable para obtener una descripción de las longitudes de tipos de datos variables).

Si el valor de la entrada K seleccionada es mayor que el número de variables de entrada seleccionadas, generará la última variable
de entrada.

148
Machine Translated by Google

6.13 Comandos PID

Operador PID
Función Este bloque de funciones se utiliza para el control del algoritmo PID
descriptiva
Gráficos

Definición de pines
Aporte:

ES: BOOL | Habilitar entrada

AUTOÿ BOOL | 0-Manual 1-Auto

VPÿREAL | Variable de proceso, es decir, valor real

SPÿREAL | Valor ajustado

X0: VERDADERO | Ajuste de parámetros durante el ajuste


KPÿREAL | Parámetros proporcionales

TR: REAL | Tiempo integral


TDÿREAL | Tiempo derivado
CICLO: TIEMPO | Ciclo de muestreo

Producción:

ENO: BOOL | Habilitar


SalidaXOUTÿREAL | Salida PID

Ejemplo de PID_1(EN := (*BOOL*), AUTO := (*BOOL*), PV := (*REAL*), SP := (*REAL


lenguaje ST
*), X0 := (*REAL*), KP := (*REAL*), TR := (*REAL*), TD := (*REAL*), CICLO
Y := (*HORA*));

149
Machine Translated by Google

Ejemplo de
lenguaje LD

Restricciones de uso

Precauciones Coeficiente proporcional KP: acelere la velocidad correspondiente del sistema, en el caso de la estabilidad del sistema, aumente
el coeficiente proporcional, puede reducir el error de estado estable, pero no puede eliminar el error de estado estable; KP
demasiado grande causará oscilación, e incluso hará que el sistema tienda a ser inestable.

Coeficiente de integración TR: eliminación de errores de estado estacionario en el sistema.

Coeficiente diferencial TD: refleja la tendencia de la señal de desviación, acelera la acción del sistema y acorta el tiempo
de ajuste.

150
Machine Translated by Google

6.14 Comandos de puerto libre

1ÿ SEND_RECV_MSG Puerto Serial Libre Enviar/Recibir Comando de Datos

Operador SEND_RECV_MSG
Función Comando de envío/recepción de datos de puerto libre serie

descripción
Gráficos

Definición de pines
Aporte:

ESÿBOOL habilitar entradaÿ

Ejecutar: BOOL Ejecución del interruptor;

IsSend: BOOL TRUE es enviar datos de usuario, FALSE es recibir datos de usuario;

Cancelar: Dejar de recibir datos (se envió una configuración de datos no válida)

Flush_Buf: BOOL Limpia los datos del búfer antes de enviarlos; borre los datos del búfer después de recibirlos.

Puerto: UINT usa COMx, recibe solo 1 o 2;

DataToSendÿARRAY[0..255] OF Byte array, datos a enviar;

Cantidad a enviar: longitud UINT de los datos enviados;

Cantidad a recibir: longitud UINT del envío de datos;

Producción:

ENOÿBOOL Habilitar salida;

ListoÿBOOL Resultado de la ejecuciónÿ

Abortado: BOOL establecido en 1 después de ejecutar Abort;

Ocupado: el valor es 1 mientras lee o escribe;

Error: desbordamiento del búfer BOOL;

DataToRecvÿARRAY[0..255] OF Byte array, lectura de datos'

Ejemplo de
lenguaje ST
SEND_RECV_MSG_1(EN:= (*BOOL*),Ejecutar:= (*BOOL*),IsSend:=
(*BOOL*), Abortar := (*BOOL*), Flush_Buf := (*BOOL*), Puerto :=
(*UINT*), Datos a enviar := (*ARRAY [0..255] OF BYTE*), Cantidad a
enviar := (*UINT*), Cantidad a recibir := (*UINT*));

151
Machine Translated by Google

Ejemplo de
lenguaje LD

La longitud de la matriz de bytes admite un máximo de 256 elementos


Restricción de uso
Precauciones Solo un conjunto de acciones de envío y recepción puede estar en vigor en un programa que se ejecuta al mismo tiempo para evitar problemas como
conflictos de datos.

152
Machine Translated by Google

2ÿ STRING_TO_BYTEARRAY Comando de matriz de cadena a byte


Operador STRING_TO_BYTEARRAY
Función Comando de matriz de cadena a byte

descripción

Gráficos

Definición de pines
Aporte:
EN:BOOL Habilitación de entrada;
Str: STRING Cadena de entrada;
UseAsciiÿBOOL Cuando es verdadero, la cadena de entrada se convierte en una cadena ASCII y luego se convierte en una matriz;
cuando es False, la cadena de entrada se convierte en una cadena hexadecimal y luego en una matriz.

Salidaÿ
ENOÿBOOL Habilitación de salida;
Arrÿ ARRAY[0..255] OF BYTE Habilitación de BYTE de salida;

Ejemplo de
lenguaje ST
CADENA_A_BYTEARRAY_1(EN:= (*BOOL*),Cadena:= (*CADENA*),
UsarAscii :
= (*BOOL*));

Ejemplo de
lenguaje LD

La longitud de la matriz de bytes admite un máximo de 256 elementos


Restricción de uso

Precauciones
Solo un conjunto de acciones de envío y recepción puede estar en vigor en un programa que se ejecuta al mismo tiempo para evitar problemas
como conflictos de datos.

153
Machine Translated by Google

3 ) BYTEARRAY_TO_STRING Matriz de bytes a comando de cadena


Operador BYTEARRAY_TO_STRING

Función Matriz de bytes a comando de cadena

descripción

Gráficos

Definición de pines

Entradaÿ EN:BOOL
Activación de entradaÿ Arrÿ ARRAY[0..255] OF BYTE Matriz de
BYTE de salidaÿ LongitudÿLongitud UINT convertidaÿ UseAsciiÿ
BOOL cuando es Verdadero, la matriz se convierte en una cadena ASCII, cuando es Falso, la matriz es convertido
a una cadena hexadecimal.

Producción:

ENOÿBOOL Habilitar salida;


Str: STRING Cadena de salida;

Ejemplo de BYTEARRAY_TO_STRING_1(EN := (*BOOL*), Arr := (*ARRAY [0..255]


lenguaje ST
OF
BYTE*), Longitud := (*UINT*), UseAscii := (*BOOL*));

Ejemplo de
lenguaje LD

La longitud de la matriz de bytes admite un máximo de 256 elementos


Restricción de uso

Precauciones
Solo un conjunto de acciones de envío y recepción puede estar en efecto en un programa que se ejecuta al mismo tiempo para evitar problemas
como conflictos de datos

154
Machine Translated by Google

6.15 CUALQUIER tipo de análisis


Muchos comandos en FSU proporcionan pines que admiten múltiples tipos de datos para facilitar la
entrada conveniente, donde el cuadro de aviso se mostrará como ANY_XXX cuando se admita un tipo de
datos principal, donde XXX es el nombre de un tipo de datos, como se muestra en la tabla a continuación.

ÿÿÿÿ
CUALQUIER ANY_NUMANY_INT INT
UINT
SMO
FUERZA DE

UDINT
HILAS
ULIN
ANY_REAL REAL
LREAL
ANY_BIT BIT
BYTE
PALABRA
PALABRA L
PALABRA DORADA

La primera fila de la tabla es la prioridad, si es nivel I significa que se puede


usar cualquier tipo, si es nivel II significa que se pueden usar tipos de datos de nivel
III y IV bajo su tipo, pero ningún otro dato Se pueden utilizar tipos de nivel I y II.

155
Machine Translated by Google

Capítulo 7 Programación básica


7.1 Operación básica de FSU

7.1.1 Iniciar FSU


FSU se puede iniciar haciendo doble clic en el icono de FSU generado en el escritorio después de la instalación o

abriendo el icono de FSU en el menú Inicio, como se muestra en la Figura 7-1.

Figura 7-1 Icono del software FSU

7.1.2 Nuevo proyecto


Después de iniciar FSU e ingresar a su interfaz inicial, puede crear y abrir un proyecto desde el

Botón Nuevo Proyecto/Abrir Proyecto en la parte superior central de la interfaz inicial, o desde la opción Nuevo/Abrir

Proyecto en la opción Archivo en la barra de menú superior izquierda. Después de hacer clic en el botón Nuevo

proyecto, aparecerá la interfaz Nuevo proyecto y los usuarios pueden definir el nombre del proyecto y su ubicación

de almacenamiento (el nombre del proyecto debe seguir las reglas de nomenclatura). El nuevo proyecto se muestra

en la Figura 7-2.

Figura 7-2 Nuevo proyecto

Sugerencias: el centro de la posición de visualización del proyecto se ordena por orden de tiempo de apertura, el más reciente

proyecto abierto está en la primera posición a la izquierda.

156
Machine Translated by Google

7.1.3 Nuevo programa/bloque de función/función


Seleccione el programa/bloque de función/opción de función que desea crear en el árbol de POU de la izquierda y haga

clic con el botón derecho para abrir la nueva interfaz, como se muestra en la Figura 7-3. Puede elegir el idioma LD o el

idioma ST para el nuevo programa/bloque de función/función, y el nombre debe

siguiendo las reglas de nomenclatura.

Figura 7-3 Nuevo programa/bloque de función/función

7.1.3.1 Importación y exportación de programa/bloque de función/función


Las funciones de importación y exportación se utilizan a menudo en la programación colaborativa para mejorar la eficiencia.

Cuando necesite exportar un programa/bloque de función/función, selecciónelo y haga clic derecho para elegir la

opción Exportar, luego puede exportar a la ubicación de destino después de determinar la dirección de almacenamiento

y el nombre. Como se muestra en la Figura 7-4.

157
Machine Translated by Google

Figura 7-4 Programa de exportación/bloque de función/función

Cuando necesite importar un programa/bloque de función/función, seleccione la opción correspondiente en el árbol de

POU a la izquierda, haga clic con el botón derecho y seleccione Importar, luego seleccione el archivo de destino en la importación

interfaz para importar el archivo, como se muestra en la Figura 7-5.

Figura 7-5 programa de importación/bloque de función/función

7.1.3.2 Exportación e importación de programas/funciones encriptados


Bloques/Funciones
La importación y exportación de POU cifrada es la misma que la importación y exportación de POU normal,

puede hacer clic derecho para abrir el menú y seleccionar la operación deseada y elegir la ruta, como se muestra en la

Figura 7-6 y 7-7.

158
Machine Translated by Google

Figura 7-6 Exportar POU cifrada

Figura 7-7 Importar POU cifrada

NOTA:

La POU en estado cifrado aún está cifrada después de la importación o exportación, si necesita abrirla para ver su

contenido, debe volver a importar la POU exportada cifrada nuevamente y luego ingresar la contraseña
para desbloquear.

159
Machine Translated by Google

7.1.4 Nueva tarea

En IEC 61131-3, la tarea también es un elemento importante, y la operación de la tarea en FSU se encuentra principalmente

en la opción de configuración de tareas en el árbol de POU izquierdo. Si necesita crear una nueva tarea, seleccione la opción

y haga clic derecho, seleccione la opción emergente "Nueva tarea" , luego ingrese el nombre de la tarea y

prioridad para completar la nueva tarea. Como se muestra en la Figura 7-8.

Figura 7-8 Nueva tarea

7.1.5 Programa de llamada en tarea


En la opción Configuración de tareas, puede configurar tareas según sea necesario, donde puede seleccionar el

programa deseado a llamar. Para llamar a un programa específico, haga clic izquierdo en el botón Agregar llamada en el

esquina superior izquierda y seleccione el nombre del programa en la nueva barra de tareas y arrástrelo a la posición

deseada de ejecución de acuerdo con el diseño lógico real. Esto se muestra en la Figura 7-9.

Figura 7-9 Programa de llamada en la tarea

160
Machine Translated by Google

7.1.6 Habilitar comando de interruptor EN/ENO

Al usar el comando, si necesita modificar el comando para habilitar EN/ENO, simplemente haga doble clic en el bloque de

comando que desea modificar y haga clic en el botón de cambio EN/ENO en la opción emergente para completar la modificación.

Como se muestra en la Figura 7-10.

Nota: - Algunos comandos no admiten el cambio EN/ENO, como NOT, etc.

Figura 7-10 Interruptor de habilitación

161
Machine Translated by Google

7.1.7 Estado de activación del comando de conmutación (flanco ascendente, flanco


descendente, negación)
Si necesita cambiar el estado de activación del comando durante la programación, debe seleccionar el

línea de conexión horizontal conectada con el pin de disparo de comando y luego haga clic derecho sobre

él, y seleccione la opción correspondiente en la interfaz emergente para completar la modificación, como se muestra en

Figura 7-11.

Figura 7-11 Estado de activación del comando de conmutación

7.2 Configuración del hardware del PLC

La función de configuración de hardware para el PLC también está disponible en la FSU y es muy clara,

simple y conveniente debido a la operación visual. Se puede acceder a la interfaz seleccionando la pestaña

Configuración en la parte superior del menú de la izquierda. Como se muestra en la Figura 7-12.

Figura 7-12 Interfaz de configuración de hardware del PLC

162
Machine Translated by Google

7.2.1 Configuración del cuerpo de la CPU

En la interfaz de configuración de hardware, haga clic izquierdo en el modelo de PLC en el menú de la izquierda

para expandir la configuración del cuerpo. La entrada/salida digital incorporada, el contador de alta velocidad

incorporado, la salida de pulsos incorporada y Ethernet se pueden configurar utilizando las opciones

correspondientes. Como se muestra en la Figura 7-13.

Figura 7-13 Configuración del cuerpo de la CPU

7.2.2 Configuración de salida digital

En FSU se proporciona una conveniente interfaz de configuración de salida digital, como se muestra en la Figura 7-14.

En esta interfaz, los usuarios pueden ver claramente los puntos de salida utilizados con sus variables vinculadas
información como el estado de alarma en forma tabular.

Nota: Esta interfaz también puede mostrar los valores en tiempo real de las variables vinculadas en el estado de

monitoreo, verde significa Verdadero y gris significa Falso.

163
Machine Translated by Google

Figura 7-14 Interfaz de configuración de salida digital

7.2.3 Configuración de entradas digitales


En FSU se proporciona una conveniente interfaz de configuración de entrada digital, como se muestra en la Figura

7-15. En esta interfaz, los usuarios pueden ver claramente los puntos de entrada utilizados con la información de sus

variables vinculadas, como las tareas solicitadas, las prioridades, etc.

Nota: Esta interfaz también puede mostrar los valores en tiempo real de las variables vinculadas en el estado de

monitoreo, verde significa Verdadero y gris significa Falso.

Figura 7-15 Interfaz de configuración de entradas digitales

164
Machine Translated by Google

7.2.4 Configuración de entrada analógica

La interfaz de entrada analógica en FSU se abre arrastrando el módulo analógico desde la derecha

caja de herramientas-->Hardware a la opción de bus de E/S de expansión izquierda, como se muestra en la Figura 7-16. El

cuerpo principal de la configuración de entrada analógica es una tabla, que es conveniente para que los usuarios entiendan y

editar la información de configuración.

La interfaz de configuración proporciona cuatro tipos de entrada diferentes (0-10 V, -10-10 V, 0-20 mA, 4-20 mA),

dos métodos de filtro (filtro de Kalman, filtro de paso bajo), dos frecuencias de muestreo (100 ms/canal,

10 ms/canal) y otras opciones de configuración definida por el usuario para satisfacer las necesidades de diferentes

escenarios.

Figura 7-16 Interfaz de configuración de entrada analógica

7.2.5 Configuración de salida analógica

El módulo de salida analógica en FSU es el mismo que su módulo de entrada, que se puede abrir configurando primero un

módulo de extensión, y su interfaz se muestra en la Figura 7-17. La interfaz proporciona tres tipos de salida diferentes (0-10

V, 0-20 mA, 4-20 mA) con valores de falla preestablecidos, unidades,

y otras opciones para la configuración definida por el usuario para cumplir con diferentes escenarios de usuario.

Figura 7-17 Interfaz de configuración de salida analógica

165
Machine Translated by Google

7.2.6 Comunicación serie ModbusRTU

FSU proporciona una interfaz de configuración detallada y conveniente para el puerto de comunicación en serie,

que se divide en dos interfaces principales: maestra y esclava. Como se muestra en la Figura 7-18 a 7-21.

Higo

ure 7-18 Interfaz de configuración maestra de comunicación serie 1 (Configuración básica)

La interfaz de configuración maestra 1 (modo de dirección) proporciona opciones para velocidad en baudios, verificación de paridad,

bits de datos, orden de bytes, etc. A través de estas opciones, los usuarios pueden completar la configuración básica de

el módulo maestro y realizar la comunicación en serie con el esclavo.

Nota:

Si el bit indicador de una acción en una estación está en un estado no normal, el bit indicador de comunicación de

toda la estación se establecerá en Verdadero.

Figura 7-19 Interfaz 2 de configuración del maestro de comunicación en serie (configuración de acción)

166
Machine Translated by Google

La interfaz de configuración maestra 2 (configuración de acciones) es principalmente para configurar las acciones,

variables mapeadas y banderas de comunicación que deben ser realizadas por el maestro. 8

las operaciones se proporcionan como se muestra en la Figura 7-20 a continuación, correspondientes a los tipos de

datos de 0X, 1X, 3X y 4X respectivamente. La interfaz visualizada para la configuración de acciones proporciona una

operación más clara y conveniente.

Nota: 1. Descripción de cada código de comunicación de acción:

(1) Todas las acciones se comunican normalmente, bit de bandera de comunicación de la estación

FALSO, código de comunicación de cada acción 0.

(2) El código de comunicación de acción 2 no puede leer la estación esclava

Datos del Domicilio.

(3) Código de comunicación de acción de falla de conexión de esclavo (puerto serie) 239.

(4) Código de comunicación de acción de falla de conexión de esclavo (puerto de red) 238.

(5) código de comunicación 11 de acción de falla de respuesta del dispositivo objetivo de

puerta de enlace; Otros códigos de error se describen en el Apéndice - Descripción del

código de comunicación.

2. Hay un límite superior de 16 variables de configuración por acción en la FSU.

3. FSU admite copiar y pegar para toda la configuración, haga clic con el botón derecho en la

ventana de activación en el modo de dirección para copiar la configuración de esa dirección.

4. Importar/Exportar en la interfaz de configuración puede importar rápidamente el

configuración maestro/cliente del proyecto a otros proyectos, que es fácil de operar para los

usuarios.

167
Machine Translated by Google

Figura 7-20 Configuración de la acción del maestro de comunicaciones en serie

Figura 7-21 Interfaz de configuración de esclavos de comunicación serie (configuración básica)

La configuración básica de la interfaz de configuración esclava también proporciona opciones similares a la

interfaz maestra para que los usuarios configuren, y la comunicación en serie con el módulo maestro se puede

realizar después de completar la configuración de acuerdo con las opciones correspondientes de

el maestro. A diferencia del maestro, la asignación de direcciones Modbus del esclavo se configura como un

interfaz separada, que se comparte con el servidor Modbus-TCP, como se muestra en la Figura 7-22.

Figura 7-22 Interfaz de configuración de esclavos (configuración de direcciones)

Figura 7-23 Información de configuración de la dirección del esclavo

Esta interfaz permite al usuario configurar y visualizar las direcciones de comunicación de las variables globales

con las que el PLC necesita comunicarse cuando actúa como Esclavo/Servidor. Variables que

168
Machine Translated by Google

han sido mapeados en la POU se le asignará automáticamente una dirección de comunicación, que
se puede comprobar en la tabla siguiente Figura 7-22. Por ejemplo: nombre de variable "Test_BOOL",
dirección de mapeo "QX0.0", si necesita los datos en esta variable para la comunicación, debe marcar
la habilitación "0X". Las variables globales con direcciones no asignadas en la POU también se
pueden configurar manualmente para las direcciones de comunicación, y la FSU brinda la capacidad
de importar variables globales de forma masiva, como se muestra en la Figura 7-24.

Figura 7-24 Configuración manual de direcciones de comunicación (importar variables globales)

Esta función permite al usuario verificar directamente las variables globales que requieren control manual.
configuración de la dirección de comunicación, eliminando el tedioso proceso de selección individual.

169
Machine Translated by Google

7.2.7 Configuración Modbus-TCP

La interfaz de configuración de comunicación Ethernet en la FSU se muestra en la Figura 7-25.

Figura 7-25 Interfaz de configuración de Ethernet

El usuario puede establecer la configuración de IP y Modbus-TCP para FL5 en esta interfaz. El modbus

La interfaz de servidor y cliente de configuración de TCP se muestra en la Figura 7-26 y 7-27. Es similar a

la interfaz de configuración de comunicación en serie, la diferencia es que la configuración de comunicación

es la configuración del puerto, el valor predeterminado es el puerto 502 y el número de estación predeterminado es 1.

170
Machine Translated by Google

Figura 7-26 Interfaz de configuración del cliente Modbus-TCP


Esta pantalla le permite configurar la IP, el número de estación y la información del puerto del servidor que
desea conectarse. El resto de la interfaz es similar al maestro de comunicación serial

interfaz, puede consultar el contenido maestro de comunicación en serie para obtener una descripción detallada.

La interfaz del servidor para Modbus-TCP se muestra en la Figura 7-27 a continuación. Los ajustes detallados se

comparten con los esclavos de comunicación en serie en una interfaz separada, como se describe en el Capítulo

7.2.6 Configuración de esclavos.

Nota: Consulte el Apéndice - Descripciones de códigos de comunicación para obtener descripciones de


códigos de comunicación

171
Machine Translated by Google

Figura 7-27 Interfaz de configuración del servidor Modbus-TCP

172
Machine Translated by Google

7.2.8 Protección de proyectos


La configuración de protección del proyecto se puede abrir haciendo clic con el botón derecho en la POU a proteger, como

se muestra en la Figura 7-28.

Figura 7-28 Configuración de protección de proyecto abierto

Después de hacer clic para seleccionar Protección->Configuración, aparecerá la ventana Establecer contraseña/Confirmar contraseña.

hacia arriba, como se muestra en la Figura 7-29.

Figura 7-29 Interfaz de configuración/confirmación de contraseña

Haga clic en Aceptar cuando haya terminado de ingresar en esta interfaz para completar la protección.

ajustes para la POU seleccionada. Si necesita ver el contenido de la POU la próxima vez, debe ingresar la contraseña

nuevamente.

Después de cifrar la POU, la contraseña también se puede eliminar desprotegiendo la POU, después de lo cual el usuario no

necesita ingresar la contraseña para ver el contenido de la POU, como se muestra

en la figura 7-30.

173
Machine Translated by Google

Figura 7-30 Quitar protección de POU

174
Machine Translated by Google

7.3 Asignación de direcciones de hardware

Para el formato de dirección de hardware y las reglas de asignación en la FSU, consulte el

asignación de direcciones en la interfaz de configuración de hardware, reglas de asignación.

1) La dirección predeterminada del host es "0". + dirección, donde la apertura "0". puede omitirse.

2) Dirección del primer bloque del módulo de extensión: "1". + dirección, el segundo bloque "2". +

dirección, no se puede omitir la apertura

La interfaz de asignación de direcciones real para el cuerpo principal se muestra en la Figura 7-32 a continuación.

Figura 7-32 Interfaz de asignación de dirección real del cuerpo principal

La interfaz de asignación de direcciones real para el módulo de extensión digital se muestra en la Figura 7-33
abajo.

175
Machine Translated by Google

Figura 7-33 Interfaz de asignación de direcciones real para módulos de ampliación digitales

La interfaz de asignación de direcciones real para el módulo de extensión analógica se muestra en la Figura 7-
34 a continuación.

Figura 7-34 Interfaz de asignación de direcciones real para módulos de ampliación analógicos

Nota: "." no se puede agregar después de direcciones de tipo W como IW/QW. El siguiente diagrama muestra

la tabla de relación de direcciones.

176
Machine Translated by Google

7.4 Depuración de programas


FSU proporciona un enfoque y un entorno de depuración de programas completos. El usuario siempre puede

acceder a la información de depuración que necesitan seleccionando Monitor, Referencia cruzada, Todos

Variables y resultados de búsqueda en la parte inferior de la interfaz, como se muestra en la Figura 7-35

Figura 7-35 Cómo se obtiene la información durante la depuración

Además, FSU ofrece una variedad de funciones, como monitoreo en línea, forzar variable y agregar monitoreo

para facilitar aún más el acceso a información en tiempo real y la conveniencia de la depuración.

7.4.1 Supervisión en línea La

supervisión en línea es una función básica de la depuración de programas y está disponible en la FSU en la

barra de herramientas central superior de la interfaz general, como se muestra en la Figura 7-36. Solo está disponible cuando

el PLC está conectado, el programa se ha descargado correctamente y se está ejecutando.

Figura 7-36 Botón Iniciar monitor

Después de ingresar al modo de monitoreo en línea, los valores reales de cada variable, contacto y bobina se

pueden ver en tiempo real y los valores en la tabla de variables se muestran en tiempo real. Como se muestra

en la Figura 7-37

Figura 7-37 Supervisión en línea

177
Machine Translated by Google

Notas:

Como volver a descargar restablecerá los parámetros del programa anterior, si necesita conservar la ejecución

parámetros de las variables anteriores, puede restaurarlos exportando los parámetros actuales antes de descargarlos y

luego importándolos en la siguiente operación de ejecución, exportación e importación como

mostrado a continuación.

7.4.2 Forzar componente booleano


En el modo de monitoreo, el usuario puede forzar VERDADERO/FALSO en el diagrama de escalera haciendo doble clic

en el componente booleano que se va a forzar, como se muestra en la Figura 7-29. Esta función afecta directamente los

valores reales dentro del PLC y no sigue la lógica del programa original, y tiene la

más alta prioridad. Como se muestra en la Figura 7-38.

Figura 7-38 Hacer doble clic en el componente booleano en el diagrama de escalera

Además del diagrama de escalera, el usuario también puede hacer doble clic en el componente booleano que se va a

forzar dentro de la tabla de variables para forzarlo, como se muestra en la Figura 7-39.

Figura 7-39 Hacer doble clic para forzar el componente booleano en la variable
mesa

178
Machine Translated by Google

7.4.3 Valor forzado variable

Las variables que no sean componentes booleanos también se pueden forzar, de forma similar a los

componentes booleanos. Como se muestra en las Figuras 7-40 y 7-41 a continuación.

Figura 7-40 Forzado de variables en la tabla de variables

Figura 7-41 Fuerza variable en el diagrama de escalera

179
Machine Translated by Google

7.4.4 Gráfico de tendencia del monitor

FSU proporciona una función de generación de curva de monitoreo incorporada, que permite al usuario ver la tendencia de los valores

de las variables especificadas durante un período de tiempo establecido durante la operación. Como se muestra en la Figura 7-42 a

continuación

Figura 7-42 Gráfico de tendencia del monitor

La interfaz de configuración de esta función se muestra en la Figura 7-43 a continuación.

Figura 7-43 Interfaz de configuración del gráfico de tendencias del monitor

Como se muestra, el usuario puede configurar las variables a monitorear y autodefinir los colores de las

curvas generadas (para distinguir múltiples variables). En "Avanzado" FSU ofrece la posibilidad

para establecer condiciones de activación, lo que permite al usuario comenzar a generar gráficos de tendencia cuando una variable

configurada como activación salta a una condición de valor establecida, si es necesario.

180
Machine Translated by Google

7.4.5 Comparación de proyectos

Una función de comparación de proyectos está disponible en FSU para ayudar al usuario a comparar las diferencias entre proyectos

y descubrir las modificaciones entre proyectos antiguos y nuevos, al mismo tiempo.

parte inferior de la barra de menú superior del PLC, como se muestra en la figura.

La interfaz de opciones para esta función se muestra a continuación y permite la comparación de proyectos locales

y comparación de proyectos dentro del PLC.

NOTA: La comparación del proyecto interno del PLC requiere que la opción "Descargar archivo fuente del proyecto"

La opción está marcada al descargar el programa, de lo contrario, la comparación no es posible.

181
Machine Translated by Google

La interfaz de resultados de comparación de proyectos se muestra a continuación, reflejando visualmente los

resultados de los dos proyectos en varios aspectos.

182
Machine Translated by Google

7.4.6 Ver código ST

El siguiente error puede ser informado por el usuario durante la compilación.

FSU proporciona una forma de ver la ubicación exacta del error, ya sea desde "Ver código ST"

opción en la barra de menú del PLC o haciendo doble clic directamente en el mensaje de error.

Puede localizar rápidamente el error según el número de líneas que se muestran en el informe de errores y

volver a la interfaz de programación para realizar cambios.

183
Machine Translated by Google

7.4.7 Ver el ciclo de operación real

FSU proporciona al usuario una forma de obtener el ciclo de ejecución real en el tiempo de ejecución de Trask en

la interfaz de configuración, de la siguiente manera.

Esta función genera el tiempo de ejecución máximo/mínimo de una tarea después de que se haya ejecutado

una vez, proporcionando una base para que el usuario establezca el ciclo de ejecución de la tarea.

184
Machine Translated by Google

Capítulo 8 Resolución de problemas


8.1 Información de estado del indicador del cuerpo principal del PLC

8.1.1 Información de estado de la luz RUN


Una luz indicadora de estado RUN está ubicada en la parte delantera del cuerpo principal de la máquina para mostrar

el estado operativo en tiempo real, como se muestra en la Tabla 8-1 a continuación.

Figura 8-1 Tabla de información correspondiente a las luces de estado

8.1.2 Información de estado de la luz SL1ÿSL2

Las luces SL1 y SL2 corresponden al puerto serie 1 y puerto serie 2 respectivamente, cuando están encendidas

indican que se está produciendo interacción de datos en el puerto serie correspondiente.

8.1.3 Información de estado de la luz ETH

La luz ETH corresponde al puerto Ethernet en el host y se encenderá si hay datos


interacción en el puerto Ethernet.

185
Machine Translated by Google

8.2 Información de estado del indicador del módulo de extensión

8.2.1 Información de estado del indicador ERR del módulo de extensión

Estado del indicador ERR Descripción del estado


Luz roja fija error de hardware
Luz verde fija Hardware listo
Luz verde parpadeante Comunicación de datos disponible
Luz naranja fija Modo de fábrica (tarjetas IO no conectadas o no reconocidas o
entrada forzada)
Parpadeo rápido en naranja y rojo Fallo de autenticación
Parpadeo lento en naranja y verde Con errores (p. ej., datos de calibración analógicos faltantes)

186
Machine Translated by Google

8.3 Actualización de firmware


El firmware se puede actualizar a través de la opción Actualizar firmware en el menú de software PLC, el

el archivo de firmware específico debe seleccionarse por modelo.

Como se muestra arriba, puede averiguar el modelo del PLC conectado y la versión actual del firmware en el

PLC en la interfaz Actualizar firmware, para que pueda descargar y actualizar el firmware seleccionando el

modelo correspondiente.

187
Machine Translated by Google

Apéndice

A. Descripción del código de comunicación

Código de comunicación Descripción


01 Funciones ilegales. Para el servidor (o esclavo), no se permite la operación del
código de función recibido en la consulta, posiblemente porque el código de función
solo está disponible para el nuevo dispositivo y no está implementado en la unidad
seleccionada. También se indica que el servidor (o esclavo) está procesando dicha
solicitud en un estado de error, por ejemplo, está desconfigurado y se solicita que
se devuelva un valor de registro.
02 Dirección de datos ilegal. Para el servidor (o esclavo), la dirección de datos recibida
en la consulta es una dirección no permitida, en particular, la combinación de
número de referencia y longitud de transmisión no es válida. Para un controlador
con 100 registros, una solicitud con un desplazamiento de 96 y una longitud de 4
tendrá éxito, mientras que una solicitud con un desplazamiento de 96 y una longitud
03 de 5 generará un código de excepción Valores de datos ilegales. Para el servidor (o
esclavo), el valor incluido en la consulta es un valor no permitido. El valor indica una
falla en la estructura restante de la solicitud combinada. Por ejemplo, la longitud
implícita es incorrecta. El protocolo Modbus no conoce el significado de ningún valor
especial de ningún registro especial, donde el elemento de datos que se envía para
almacenamiento tiene un valor diferente al esperado por la aplicación.

04 Fallo del dispositivo esclavo. Se genera un error irrecuperable mientras el


servidor (o esclavo) intenta realizar la operación solicitada.
05 Confirmado. Usado junto con el comando de programación, el servidor (o
esclavo) ha aceptado la solicitud y la está procesando, pero requiere una larga
duración para realizar estas operaciones, devolver esta respuesta evita que
ocurra un error de tiempo de espera en el cliente (o maestro), y el cliente (o host)
puede continuar enviando un mensaje de finalización del programa de sondeo para
confirmar que el procesamiento se ha completado.
06 Dispositivo esclavo ocupado. Se utiliza junto con un comando de programación.
El servidor (o esclavo) está procesando un comando de programación de
larga duración. Cuando el servidor (o esclavo) está inactivo, el usuario (o maestro)
debe enviar un mensaje de texto más tarde.
08 Almacena errores de paridad. Se utiliza junto con los códigos de función 20 y 21 y
el tipo de referencia 6 para indicar que el área del archivo ampliado no supera la
comprobación de coherencia. El servidor (o esclavo) logra leer el archivo de
registro pero encuentra un error de paridad en la memoria. El cliente (o maestro)
puede reenviar la solicitud, pero puede solicitar el servicio en el dispositivo servidor
(o esclavo).
10 Ruta de puerta de enlace no disponible. Se usa junto con una puerta de
enlace para indicar que la puerta de enlace no puede asignar una ruta de comunicación
interna desde el puerto de entrada al puerto de salida para procesar solicitudes. Por
lo general, significa que la puerta de enlace está mal configurada o sobrecargada.
11 La respuesta del dispositivo de destino de la puerta de enlace falló. Se usa
junto con una puerta de enlace para indicar que no se obtuvo respuesta del
dispositivo de destino. Por lo general, significa que el dispositivo no está en la red.
238 Una respuesta anormal o no válida, que generalmente ocurre cuando el lado del
servidor Modbus TCP no se inicia correctamente.
239 La respuesta no es compatible y generalmente ocurre cuando el otro puerto
serie no está abierto.
240 Tiempo de espera
241 desconectado

188
Machine Translated by Google

B. Tabla de relaciones del área de direcciones

189
Machine Translated by Google

C. Aplicación de comunicación FC5 ModbusRTU


——Comunicación ModbusRTU con Schneider ATV32

inversores serie

C.1 Configuración de comunicación


C.1.1 Configuración de comunicación del inversor serie ATV32
Utilice el controlador para establecer los parámetros básicos de comunicación, así como el modo por

introduciendo los siguientes parámetros según el manual de comunicación ATV32Modbus.

Parámetros de prueba usados en esta pruebaÿAdd=1ÿtbr=9.6ÿtfd=8n1ÿttd=10

190
Machine Translated by Google

191
Machine Translated by Google

C.1.2 Configuración de la comunicación FL5

Como se muestra arriba, abra la interfaz de configuración, ya que el entorno de experimentación

de la aplicación es utilizar el cableado del puerto serie 2 para la comunicación con el inversor.

controlador, por lo que en la comunicación serie 2 para su configuración, los parámetros específicos como

se muestra en la figura.

Nota: La frecuencia de comunicación predeterminada de FL5 es 115200, debe cambiarla a


9600 de lo contrario la comunicación no tendrá éxito.

C.1.3 Instrucciones de cableado

Como el variador de la serie ATV32 solo admite comunicación RS485 con el PLC a través del

Puerto de red RJ45, el puerto de red debe conectarse de acuerdo con el diagrama a continuación.

Aquí se utiliza la comunicación RS485, por lo que solo se requieren tres cables, es decir, 4, 5 y 8.

El cableado real se muestra en el siguiente diagrama.

192
Machine Translated by Google

Puerto ATV32:

Puerto PLC FL5:

193
Machine Translated by Google

C.2 Redacción del programa FSU

De acuerdo con el manual de comunicación Modbus del variador de frecuencia ATV32, los siguientes

Los estados deben darse en secuencia antes de que el motor pueda arrancar y funcionar.

194
Machine Translated by Google

De acuerdo con el manual de programación del inversor ATV32, la palabra de comando (CMD) es

4X8501 y la velocidad establecida es 4X8602

La palabra de estado (ETA) es 4X3201 y la velocidad actual es 4X8604.

Dado que la dirección de comunicación Modbus en el PLC comienza en 1 y no en 0, cree el

variable correspondiente en la FSU y configurar la dirección de comunicación Modbus.

Figura - Asignación de direcciones de comunicación Modbus

Para una comprensión más visual de cómo usar diagramas de escalera para implementar la máquina de estado

transiciones en la FSU, los diagramas de escalera para los pasos 1 a 3 se muestran a continuación.

Figura - Transición de la máquina de estados del paso 1 al paso 3

Para detener el motor, establezca CMD en 0.

195
Machine Translated by Google

Después de completar los procedimientos anteriores, Complie y descárguelos al PLC FL5 y

ejecutar, se puede implementar un programa ModbusRTU de comunicación en serie simple para

controlar el funcionamiento del motor inversor.

196
Machine Translated by Google

Ejemplo de aplicación DDFC5: módulo 4G

D.1 Instalación y cableado

El módulo FL3-4G está conectado a la interfaz del módulo de extensión en el lado izquierdo del

El mainframe FC5 y su puerto de red se pueden conectar directamente al mainframe FC5

puerto de red o mediado a través de un conmutador u otro dispositivo para garantizar que pueda hacer ping a través
el uno al otro

197
Machine Translated by Google

D.2 Función de control de datos

D.2.1 Configuración de FlexManager

1. Agregue el módulo 4G correspondiente e ingrese el número SN y la contraseña correspondientes


desde la etiqueta en el lado izquierdo del módulo 4G en la figura a continuación a
FlexManager para conectarlo a la cuenta correspondiente.

2. Configure el canal, haga clic en la posición en la siguiente figura para ingresar a la interfaz de configuración

198
Machine Translated by Google

Cuando aparezca la siguiente interfaz, configúrela como se muestra a continuación, donde se encuentra la dirección IP.

para ser ingresado como la dirección IP real del host FC5 correspondiente.

**Ver IP local de PLC en FSU


Como se muestra en la figura, después de conectar el PLC, haga clic en Leer la configuración del PLC en Hardware

Configuración - Ethernet - IP para leer la información IP del PLC actual.

199
Machine Translated by Google

3. Agregar punto de control

Como se muestra a continuación en la interfaz de Monitoreo de datos, haga clic en Nuevo monitor en la parte inferior izquierda

esquina de la mano.

Aparece la ventana correspondiente, complete la dirección correspondiente y la acción para completar la configuración del

monitoreo del punto.

200
Machine Translated by Google

4. Monitorear, escribir el punto de monitoreo correspondiente

Como se muestra a continuación, los puntos de configuración se pueden escribir y monitorear a través del
interfaz.

201
Machine Translated by Google

D.2.2 Configuración del lado FSU

1. Habilita el monitoreo FlexManager de los puntos correspondientes

Configure el módulo 4G como se muestra arriba y luego importe las variables a monitorear en el
Dirección de red del esclavo Modbus.

Luego, el punto se puede monitorear en el lado de FlexManager utilizando la dirección Modbus correspondiente.

D.3 Funciones de transferencia, monitor en línea y fuerza

D.3.1 Configuración de FlexManager

1. Configuración de paso a través


Como se muestra a continuación, haga clic en el botón de paso a través de VPN en la interfaz

202
Machine Translated by Google

Aparecerá la siguiente ventana. Después de configurar la IP correspondiente, puede


hacer clic en la conexión para acceder a la FSU para operar el paso.

**Las direcciones IP que se muestran aquí son direcciones IP virtuales en el lado de la PC y deben estar en la misma red

segmento como el PLC a transmitir, y las IP no deben duplicarse.

203
Machine Translated by Google

D.3.2 Configuración de la FSU

Como se muestra en la figura anterior, el lado de la FSU no requiere ninguna operación adicional
después de que el canal de transferencia de VPN se ha habilitado en FlexManager, puede
entenderse directamente como una conexión directa entre la máquina local y el PLC mediante
un cable de red. La descarga, el seguimiento en línea, el forzado, etc. se pueden realizar a través de un
Conexión Ethernet a la IP correspondiente.

204
Machine Translated by Google

Casos de aplicación de comunicación E.FC5 y ABB


ACS510 ModbusRTU

E.1 Configuración de la comunicación

E.1.1 Configuración de comunicación del ACS510

Protocolo
Código Descripción
modbus

5301 ID DE PROTOCOLO EFB Solo lectura. Al establecer el parámetro


9802 COMM PROT SEL (selección de
El ID y la versión del programa del protocolo
protocolo de comunicación) en un valor distinto
de comunicación. de cero, se establecerá automáticamente este
parámetro. El formato es: XXYY, donde XX = ID
de protocolo, YY = versión del programa.

5302 EFB ID ESTACIÓN Se utiliza un valor único para representar


URL del sitio del enlace RS485. cada unidad en la red. Cuando se selecciona
este protocolo, el valor predeterminado para
este parámetro es 1.

¡Nota! Para que una nueva dirección surta efecto, el variador debe apagarse y luego encenderse
nuevamente, o el parámetro 5302 debe establecerse en 0 antes de seleccionar una nueva dirección. El
parámetro 5302 = 0 restablece el canal RS485 y deshabilita la comunicación.

De acuerdo con el manual ABB ACS510, use el controlador para ingresar los siguientes
parámetros y configure los parámetros y modos de comunicación básicos.

Ejemplo de entorno de configuración del proyecto: 5302 =1

205
Machine Translated by Google

Protocolo
Código Descripción
modbus

5303 EFB BAUDIOS Seleccione este protocolo y el valor


La velocidad de comunicación de la red RS485 se expresa en predeterminado para este parámetro es 9.6.
kbits/s.
1,2 kb/s 19.2 kb/s
2,4 kb/s 38.4kb/s
4,8 kb/s 57.6kb/s
9,6 kb/s 76.8kb/s

5304 EFB PARIDAD Seleccione este protocolo y el valor


Longitud de datos, bit de verificación de paridad y bit de predeterminado para este parámetro es 1.
parada para comunicación RS485.

• La configuración debe ser la misma para todos los sitios de la red.

0=8 NONE1 : datos de 8 bits, sin verificación de paridad, 1 parada


bit.
1 = 8NINGUNODatos de 2-8 bits , sin verificación de paridad, 2 paradas
pedacitos

2 = 8EVEN1- datos de 8 bits, incluso verificación de paridad, 1 parada


bit.
3=8ODD1- datos de 8 bits, comprobación de paridad impar, 1 bit
de parada.
5305 EFB PERFIL CONTROL Seleccione este protocolo y el valor
predeterminado Seleccione el perfil de comunicación utilizado para el EFB para este parámetro es 0. protocolo.

0 = ABB DRV LIM - La operación de la palabra de control/


palabra de estado debe cumplir con los requisitos del
perfil de convertidor ABB, las aplicaciones típicas son las
mismas que para el convertidor ACS400.

ÿ = PERFIL DCU -El funcionamiento del


las palabras de control/estado deben cumplir con los
requisitos del perfil DCU de 32 bits. ÿ = ABB DRV FULL
—El funcionamiento del
Las palabras de control/estado deben cumplir con los
requisitos del perfil del variador ABB, las aplicaciones
típicas son las mismas que para el
Convertidores ACS600/800

Entorno de configuración del proyecto de caso: 5303=9.6ÿ5304=0ÿ5305=0

Provisión de protocolo Modbus1


parámetro de la unidad Valor Descripción Unidad ABB DCU
Configuración
1001 Externo 1 10 El control de arranque/ parada es 40001 bit 0ÿ3 40031 bit 0 , 1 seleccionado
Dominio (Comunicación)
por el bus de campo a través de Ext1

1002 Externo 2 10 El control de arranque/ parada es 40001 bit 0 ÿ3 40031 bit 0, 1 seleccionado
Dominio (Comunicación)
por el bus de campo a través de Ext2

1003 Dirección 3 Dirección controlada por bus 40002/400032 40031 bit 3


de campo
(bidireccional)

Entorno de configuración del proyecto de caso: 1001 = 10, 1003 = 3

206
Machine Translated by Google

Provisión de
Valor del protocolo Modbus
parámetro de la unidad parámetro Descripción
Unidad ABB DCU
Configuración
1102 Externo 1/2 8 La selección se realiza a través 40001 bit 11 40031 bit 5
Selección (Comunicación) del bus de campo.

1103 Dado 1 8 La entrada dada 1 opción 40002


Selección (Comunicación) proviene del bus de campo.

1106 Dado 2 8 La opción de entrada dada 40003


Selección (Comunicación) 2 proviene del bus de campo.

Entorno de configuración del proyecto de caso: 1102 = 8, 1103 = 8

207
Machine Translated by Google

Provisión de protocolo
Valor del Modbus
parámetro de la unidad Descripción
parámetro Unidad ABB DCU
Configuración
1601 PERMITIR MARCHA 7 (Comunicación 40001 bit 3 40031 bit 6 ) La señal de permiso
del bus de
decampo.
marcha proviene
(antilógico)

1604 SEL REINICIO FALLO 8(Comunicación) La señal de restablecimiento de fallas viene 40001 bit 7 40031 bit4 del
bus de campo.

1606 BLOQUEO LOCAL 8 La señal de 40031 bits de selección de bloqueo de control local no
(Comunicación)
requerida proviene del bus de campo. 14

1607 GUARDAR PARAM 1 (Almacenamiento) Guarde los parámetros 41607


modificados en la memoria (el valor de retorno es 0).

1608 PERMISO DE INICIO 1 7 (Comunicación El origen de la señal para 40032 bit 2 no requerido ) habilitación de inicio 1
es la palabra de comando de bus de campo.

1609 HABILITAR INICIO 2 7 (Comunicación) La fuente de la señal para la autorización 40032 bit 3
de arranque 2 es la palabra de comando
del bus de campo.

2201 ACC/DEC 1/2 SELÿ7(Commu La fuente de la señal para la nicación) El par de rampa 40031 bits10
de aceleración/desaceleración es el bus de campo.

Entorno de configuración del proyecto de caso: 1601=7, 1604=8, 1606=8, 1607=1 .

208
Machine Translated by Google

E.1.2 Configuración de comunicación FL5

Como se muestra arriba, se abre la interfaz de configuración, debido a que esta aplicación está

utilizando el puerto serie cableado 2 para la comunicación con el controlador del inversor, la

configuración se realiza en la comunicación serie 2, como se muestra en la figura.

Nota: La frecuencia de comunicación predeterminada de FL5 es 115200, debe cambiarla


a 9600, de lo contrario la comunicación no tendrá éxito.

209
Machine Translated by Google

E.2 Escritura del programa


De acuerdo con el manual del controlador del inversor ACS510, los siguientes estados deben estar

dado en secuencia antes de que el motor pueda arrancar y funcionar.

Paso Valor de la palabra de control Descripción


1 CW = 0000 0000 0000 0110 Este valor pone el variador en el estado LISTO PARA
ENCENDIDO.
bit15 bit0
2 Espere al menos 100 ms antes de pasar al siguiente paso
3 CW = 0000 0000 0000 0111 Este valor pone el variador en el estado LISTO PARA OPERAR
Expresar.

4 CW = 0000 0000 0000 1111 Este valor pone el variador en 0FUNCIONAMIENTO HABILITADO
Expresar. El accionamiento arranca, pero no acelera.
5 CW = 0000 0000 0010 1111 Este valor libera el generador de funciones integral
(RFG) y el variador entra en el estado RFG:
ACELERADOR HABILITADO.
6 CW = 0000 0000 0110 1111 Este valor libera la salida del generador de funciones integrales
(RFG) y el variador ingresa al estado OPERATIVO . El
accionamiento acelera hasta el valor dado y funciona de
acuerdo con el valor dado.

Por lo tanto, las variables correspondientes se crean en FSU y la dirección de la zona M se asigna para

facilitar la operación de direccionamiento, y se configura la dirección de comunicación Modbus.

Figura Asignación de direcciones de zona M

Nota: Start_1 a Start_5 son las variables de bit de direccionamiento correspondientes a la variable de

palabra de control Control, Speed es la velocidad actual que se establecerá para la transmisión de

comunicación, Read_Speed es la velocidad actual que se leerá y


almacenado en esta variable.

Figura Asignación de direcciones de comunicación Modbus

Para comprender mejor cómo usar los diagramas de escalera para las transiciones de la máquina de

estado en la FSU, a continuación se muestran los diagramas de escalera para los pasos 1 a 3.

210
Machine Translated by Google

Transición de la máquina de estados de figuras del paso 1 al paso 3

Como se muestra arriba, Inicio es la condición de inicio. Al encender Start se


configuran las variables globales Start_2 y Start_3, que mapean las direcciones
MX0.1 y MX0.2, como se mapea la dirección MW0, también se cambia la variable
Control y se configura la dirección Modbus, y el el maestro está configurado para escribir un solo
registrarse en la dirección 4X0001 del esclavo correspondiente.

4X0001 es la palabra de control del ACS510 y el diagrama de escalera anterior completa


la transición del paso 1 al 3 de la máquina de estados.

211
Machine Translated by Google

De manera similar, las siguientes conversiones de los pasos 3 a 6 incluyen la velocidad


de escritura final, que primero se escribe en WriteSpeed y se asigna a la variable global Speed
antes de ser comunicado a través de ModbusRTU.

212
Machine Translated by Google

Si desea detener el motor, debe restablecer la variable Start_1, que se asigna a la dirección MX0.0, en

este caso utilizando la variable Stop para restablecer, como


sigue.

Una vez que se haya completado el programa anterior, complételo y descárguelo al PLC FL5 y

ejecútelo, se puede implementar un programa ModbusRTU de comunicación serial simple para

controlar la operación del motor inversor.

213
Machine Translated by Google

Imagen de todo el dispositivo adjunto:

213

También podría gustarte