Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
en otra parte de este documento o en el equipo para alertar al usuario sobre peligros potenciales o llamar la atención sobre
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
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
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
ÿ 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
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
5
Machine Translated by Google
Tabla de contenido
Informacion de seguridad................................................ .................................................... .................................................... ...... 1
Sobre este libro............................................... .................................................... .................................................... ............. 3
6
Machine Translated by Google
7
Machine Translated by Google
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
8
Machine Translated by Google
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.2.1 Información de estado del indicador ERR del módulo de extensión .................................. ..........................186
9
Machine Translated by Google
Capítulo 1 Introducció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
Interfaz en este manual para la introducción de la interfaz específica y las funciones correspondientes.
10
Machine Translated by Google
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
Figura 2-1.
Los usuarios pueden editar el nombre del nuevo proyecto, su ubicación de almacenamiento, atributos y notas del proyecto en el
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-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
son opcionales), la declaración de la variable X1 se completa y la interfaz que se muestra en la Figura 2-6 es
obtenido.
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
Siga los pasos anteriores para crear un nuevo contacto normalmente cerrado X2 a la derecha del normalmente abierto
Seleccione el lado izquierdo del contacto X1, como se muestra en la Figura 2-9.
Luego haga clic New Branch en los favoritos de acceso directo debajo de la tabla de variables y el diagrama de escalera
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
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
Seleccione la flecha derecha y haga clic en el botón Fusionar sucursales en la barra de herramientas para fusionar el
*Nota:
Esta flecha se puede generar eliminando el componente más a la derecha (comando, bobina) de todo el
programa.
Además, la FSU proporciona un modo de edición de escalera más fácil y eficiente y una operación para
· 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
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
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
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.
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
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.
Abra la caja de herramientas, seleccione TON Timer On-Delay y arrástrelo entre X1 e Y1 para que aparezca el Nuevo
dieciséis
Machine Translated by Google
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
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,
17
Machine Translated by Google
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
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
19
Machine Translated by Google
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
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
20
Machine Translated by Google
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
Seleccione el programa principal nuevamente y agregue un segmento de programa y las variables requeridas siguiendo las
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
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)
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,
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.
23
Machine Translated by Google
última versión de FSU. Después de descargar el software, puede instalarlo. Después de instalar el software, puede
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
ÿ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 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
menú de configuración a la izquierda, la interfaz de opciones de configuración específica del hardware en el medio y
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
26
Machine Translated by Google
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.
Sugerencias: hay un comando vacío en el comando favorito de forma predeterminada, puede arrastrarlo primero y luego
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
cruzada en la parte inferior de la interfaz para llamar, como se muestra en la Figura 3-8 a continuación.
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 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
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
29
Machine Translated by Google
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.
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.
30
Machine Translated by Google
Esta interfaz le permite ver la salida del compilador y sus mensajes de error y advertencia, como
31
Machine Translated by Google
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
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
(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
(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
característica de ser más independiente del hardware utilizado y menos dependiente del especificado
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
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
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
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,
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.
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.
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.
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
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
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
FUE
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.
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
36
Machine Translated by Google
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).
37
Machine Translated by Google
2ÿDeclaración de variables
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.
El área de declaración de variables es el área utilizada para especificar el nombre y el tipo de la variable, y para
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
En el área de código, FSU admite dos lenguajes de programación: diagrama de escalera (LD) y texto estructurado
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
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
39
Machine Translated by Google
Programa>bloque de función>Función
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.
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
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.
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
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
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
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
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
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
ÿ Los atributos EN y ENO son atributos adicionales que se pueden usar o deshabilitar según sea necesario
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
Los datos entre corchetes indican los 20 puntos de medición definidos del 1 al 20, por ejemplo, nTemp[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.
Los arreglos unidimensionales son uno de los tipos de datos comunes, y el número dentro de [] es la longitud del
formación.
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
43
Machine Translated by Google
Similar a la forma en que se entiende una matriz bidimensional, una matriz tridimensional se obtiene por
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
Para arreglos 2D/3D, puede escribir todos los datos entre corchetes y asignar valores iniciales a los
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]
Cuando se ejecuta un programa, para acceder a los elementos de la matriz, es importante comprender cómo funcionan las variables de la matriz.
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.
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.
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
45
Machine Translated by Google
(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
46
Machine Translated by Google
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
47
Machine Translated by Google
t#14m12s
'
Marca de inicio/fin de cadena 'Hola Mundo'
48
Machine Translated by Google
49
Machine Translated by Google
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
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
segmento
de variable interna
END_STRUCT Estructura final
END_VAR
Finalizar
segmento
Segmento END_CASE
variable de salida final
50
Machine Translated by Google
GRATIS
Además, los identificadores de los siguientes módulos de funciones y funciones están reservados como palabras clave.
2) Nombre de la función estándar y nombre del bloque de funciones: SIN, COS, CTU, 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>ÿ Especifique el tipo de datos deseado. Los tipos admitidos son BOOL, SINT, USINT, BYTE, INT,
<Valor numérico>ÿEspecifique una constante. Los datos de entrada deben coincidir con el tipo de datos especificado <tipo>.
Falso o Verdadero
52
Machine Translated by Google
Las constantes BOOL son valores lógicos VERDADERO y FALSO, y también se pueden expresar como 1 (verdadero) y 0
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.
Estas constantes se pueden utilizar para representar fechas. Al declarar una constante de FECHA, el carácter inicial
D#1996-05-06
D#1972-03-29
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ÿ
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
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:
NOTA: En FSU, los valores de REAL y LREAL deben tener decimales, por ejemplo, 1,0, 3,4.
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,
¡¡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
$$ 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>
$$ 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>
55
Machine Translated by Google
detectarlos rápidamente.
(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
(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
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
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
En el modo de edición de escalera, el usuario puede agregar comentarios a las variables en la tabla de variables,
56
Machine Translated by Google
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
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.
ÿ Los guiones bajos son parte del identificador, pero no se permiten dos o más guiones bajos consecutivos en el
identificador
ÿ No se permiten espacios.
57
Machine Translated by Google
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
58
Machine Translated by Google
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.
SÍ_TEMP R
Variable temporal, variable utilizada para el
almacenamiento interno de programas y
bloques de funciones.
CONSTANTE Constante
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.
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.
CONSTANTE VAR
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
60
Machine Translated by Google
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.
Asignar valores iniciales a arreglos, estructuras, etc. es relativamente complejo, con el siguiente ejemplo de
FUE
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
61
Machine Translated by Google
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.
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
62
Machine Translated by Google
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
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
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
determinado de acuerdo con las reglas antes mencionadas, y el proceso de evaluación de izquierda a derecha y de
63
Machine Translated by Google
1. Elemento de línea
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
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
El estado de los elementos de conexión se pasa de izquierda a derecha para lograr el flujo de energía,
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
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,
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
Por lo tanto, el estado del elemento de conexión vertical se determina de acuerdo con lo siguiente
reglas.
elemento de conexión vertical se pasa a todos los elementos de conexión horizontal conectados a su
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
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
Si el contacto corresponde a
se desconecta el contacto y el
66
Machine Translated by Google
elemento es VERDADERO.
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
ÿ 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
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,
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,
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
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
68
Machine Translated by Google
La bobina es un elemento de diagrama de escalera que pasa el estado del elemento conectado horizontal o verticalmente
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
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
Ninguna regla estipula que en el lado derecho solo se puede conectar un elemento, por lo que el usuario puede expandir
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
ÿ 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
ÿ 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
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.
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
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
2) La columna de entrada está en el lado izquierdo del cuadro rectangular, y la columna de salida está a la derecha
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.
70
Machine Translated by Google
(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
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.
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
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
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
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
72
Machine Translated by Google
sentencias de salto. sentencias y sentencias de salto. La tabla 5-6 enumera todas las declaraciones utilizadas en el texto estructurado.
Sentencia de := bVentilador:=VERDADERO;
asignación
Bloque de
Sentencia de función/Nombre
control de
de funciónÿÿ;
funciones y bloques de funciones
<>;
TERMINARA SI;
...;
MÁS
END_CASE;
HACER
<contenido de la declaración>;
END_FOR;
73
Machine Translated by Google
<contenido de la declaración>;
END_WHILE;
REPETIR REPETIR;
<expresión booleana>
END_REPEAT;
DEVOLVER DEVOLVER;
1. Declaración de cesión
el valor generado por la expresión en su lado derecho se asigna al operando (variable o dirección)
<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.
ÿ El valor de retorno de la función se usa como el valor de la expresión cuando se llama a la función,
74
Machine Translated by Google
Las sentencias de funciones y bloques de funciones se utilizan para llamar a funciones y bloques de funciones.
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:
Por ejemploÿTest_ADD:=ADD(Test_INT1,Test_INT2);
En las llamadas a bloques de funciones, la llamada se implementa instanciando el nombre del bloque de funciones, por ejemplo, el temporizador está
3. Declaración de selección
(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:
Cuando se utiliza el formato anterior, el <contenido de la declaración> se ejecuta solo si el resultado de la <expresión
<contenido de declaración> puede ser una sola declaración, varias declaraciones en paralelo o incluso una declaración
75
Machine Translated by Google
El formato básico para implementar una estructura de selección de dos ramas con una instrucción IF...ELSE
es como sigue:
MÁS
TERMINARA SI;
...
MÁS
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
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:
...
MÁS
END_CASE;
77
Machine Translated by Google
· 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
· 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
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.
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
PARA <variable> := <valor inicial> TO <valor objetivo> {POR <tamaño de paso>} HACER
<contenido de la declaración>
END_FOR;
· 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
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.
<contenido de la declaración>;
END_WHILE;
· 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.
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
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.
79
Machine Translated by Google
REPETIR
<contenido de la declaración>;
HASTA QUE
<expresión booleana>
END_REPEAT;
· Cuando el valor de <expresión booleana> sea VERDADERO ÿ, deje de ejecutar <contenido de declaración>.
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
5. Declaración de salto
Si el comando EXIT se usa en los bucles FOR, WHILE y REPEAT, el bucle interno se detiene
SALIDA;
Por ejemplo:
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;
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
2ÿ Un comentario de una sola línea, comenzando con "//" y continuando hasta el final de la línea.
81
Machine Translated by Google
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
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.
El procedimiento del cuerpo del bloque de función para determinar la señal de entrada es el siguiente.
SI Q ENTONCES
ELSIFIN1>(VAL+HYS )ENTONCES
P:=VERDADERO;
TERMINARA SI;
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
La parte anterior del programa también se puede representar mediante el siguiente programa, que tiene
el mismo resultado
fbHystersis.Q;
82
Machine Translated by Google
83
Machine Translated by Google
Operador
RS
Gráficos
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
Operador
RS
Gráficos
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.
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
Operador
R_TRIG
Gráficos
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;
Expresión en LD
Expresión en ST
Secuencia
Diagrama
Restricciones de uso
Precauciones
86
Machine Translated by Google
Operador
F_TRIG
Gráficos
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;
Expresión en LD
Expresión en ST
Secuencia
Diagrama
Restricciones de uso
Precauciones
87
Machine Translated by Google
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
Producción:
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:
FUE
Declaración de variables
COMIENZO ÿ BOOL ;
END_VAR
Precauciones
88
Machine Translated by Google
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
Producción:
Cuando START es TRUE, el bloque de funciones OR se activa y ENO_1 genera TRUE; Dat1 variable 1
Por ejemplo:
FUE
Declaración de variables
COMIENZO ÿ BOOL ;
END_VAR
Dat3:=Dat1 O Dat2;
lenguaje ST
ejemplo
Ejemplo de
lenguaje LD
Precauciones
89
Machine Translated by Google
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
Producción:
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:
FUE
Declaración de variables
COMIENZO ÿ BOOL ;
END_VAR
Ejemplo de
Dat3:=Dat1 XOR Dat2;
lenguaje ST
Ejemplo de
lenguaje LD
Precauciones
90
Machine Translated by Google
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:
FUE
Declaración de variables
INICIO : BOOL;
END_VAR
lenguaje ST
Ejemplo de
lenguaje LD
Precauciones
91
Machine Translated by Google
Operador
TP
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
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;
Q_1: BOOL;
ET_1:HORA;
END_VAR
Expresión en LD
ET_1 := TP_1.ET;
Q_1 := TP_1.Q;
Diagrama de secuencia
Restricciones de uso
Precauciones
92
Machine Translated by Google
Operador
TONELADA
Gráficos
EN: Booleano (BOOL); Esta entrada es booleana y detecta la entrada de señal del flanco ascendente para
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
TONELADA_1: TONELADA;
EN_1: BOOL;
PT_1: HORA;
Q_1: BOOL;
ET_1:HORA;
END_VAR
Expresión en LD
TON_1.ET;
Q_1 := TON_1.Q;
Diagrama de secuencia
Restricciones de uso
Precauciones
93
Machine Translated by Google
Operador
TOF
Función descriptiva Este bloqueo de función se utiliza como retardo de apagado del temporizador.
Gráficos
EN: Booleano (BOOL); Esta entrada es booleana y detecta la entrada de señal del flanco descendente para
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
TOF_1:
TOF; EN 1:
BOOL;
PT_1: HORA;
Q_1: BOOL;
ET_1:HORA;
END_VAR
Expresión en LD
ET_1 := TOF_1.ET;
Q_1 := TOF_1.Q;
Diagrama de secuencia
Restricciones de uso
Precauciones
94
Machine Translated by Google
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
variable a ingresar
Producción:
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
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:
Producción:
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
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
Cuando RESET es FALSO, CV se agregará 1 cuando haya un flanco ascendente de FALSO a VERDADERO
UTC_1: UTC;
CU_1: BOOL;
REINICIAR_1: BOOL;
PV_1: INT;
Q_1: BOOL;
CV_1:INT;
END_VAR
Expresión en LD
Q_1 := CTU_1.Q;
Diagrama de secuencia
Restricciones de uso
Precauciones
97
Machine Translated by Google
Operador
CTD
Función descriptiva Este bloque de funciones se utiliza como contador de cuenta atrás.
Gráficos
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
conteo decreciente y CV mantiene el valor PV superior del conteo decreciente; cuando LD es FALSO, cuando hay
CTD_1: CTD;
CD_1: BOOL;
CARGAR_1: BOOL;
PV_1: INT;
Q_1:BOOL;
CV_1:INT;
END_VAR
Expresión en LD
Q_1 := CTD_1.Q;
Diagrama de secuencia
Restricciones de uso
Precauciones
98
Machine Translated by Google
Operador
CTUD
Función descriptiva Este bloque de funciones se utiliza como contador de conteo ascendente/descendente.
Gráficos
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
PV: valor (ANY_INT); esta entrada es un valor que establece el límite de conteo superior para el
Producción:
QU: booleano (BOOL); Salida de estado del contador, el CV de salida se incrementa al conteo superior
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
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
Diagrama de secuencia
Restricciones de uso
Precauciones
100
Machine Translated by Google
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
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
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
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);
Precauciones
102
Machine Translated by Google
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.
fórmula
Gráficos
Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido
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
Función Esta función calcula el logaritmo común del valor de entrada (en base 10). Operador IEC estándar.
descriptiva
fórmula
Gráficos
Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido
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
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)
fórmula
Gráficos
Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido
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
Operador PECADO
Función Esta función calcula el seno del valor de entrada; expresado en radianes. Operador IEC estándar.
descriptiva
fórmula
Gráficos
Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido
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
Operador porque
Función Esta función calcula el coseno del valor de entrada; expresado en radianes. Operador IEC estándar.
descriptiva
fórmula
Gráficos
Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido
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
Operador BRONCEARSE
Función Esta función calcula la tangente del valor de entrada; expresado en radianes. Operador IEC estándar.
descriptiva
fórmula
Gráficos
Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido
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
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.
fórmula
Gráficos
Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido
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
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.
fórmula
Gráficos
Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido
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
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.
fórmula
Gráficos
Descripción
Descripción del parámetro de entrada
de parámetros
Variable Tipo de datos Sentido
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
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
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
Por ejemplo:
Dat1=4ÿDat2=2ÿDat3=6
FUE
Declaración de variables
Inicio : BOOL;
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
ESÿHabilitación del bloque de funciones (tipo BOOL); cuando es de nivel alto, el bloque de funciones SUB se activa
Producción:
ENO: Salida auxiliar (tipo BOOL); una vez que EN es de nivel alto, su valor es de nivel alto
Cuando Start es 1, el bloque de función SUB se activa y ENO_1 Output es 1; después de restar Dat2 de
Por ejemplo:
Dat1=4ÿDat2=2ÿDat3=3
FUE
Declaración de variables
INICIO: BOOL;
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
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
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,
Por ejemplo:
Dat1=4ÿDat2=2ÿDat3=8
FUE
Declaración de variables
INICIO : BOOL;
END_VAR
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
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
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,
Por ejemplo:
Dat1=4ÿDat2=2ÿDat3=2
FUE
Declaración de variables
INICIO : BOOL;
END_VAR
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.
115
Machine Translated by Google
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
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
Por ejemplo:
Dat1=5ÿDat2=2ÿDat3=1
FUE
Declaración de variables
INICIO : BOOL;
END_VAR
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
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
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
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
Producción:
Cuando START es TRUE, el bloque de función MOVE se activa y la salida ENO_1 es TRUE; transferir datos
Por ejemplo:
FUE
Declaración de variables
INICIO : BOOL;
END_VAR
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
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
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
Operador
GT
Gráficos
Definición de pines
Aporte:
Producción:
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
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.
121
Machine Translated by Google
Operador
GE
Gráficos
Definición de pines
Aporte:
Producción:
Cuando IN1 es mayor o igual que IN2, la salida OUT es VERDADERA; de lo contrario, la salida es FALSA;
EN 1:
EN T; EN 2:
EN T;
Q_1: BOOL;
END_VAR
Expresión en LD
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.
122
Machine Translated by Google
(2) EQ Igual a
Operador
ecualizador
Gráficos
Definición de pines
Aporte:
Producción:
Cuando IN1 es igual a IN2, la salida OUT es VERDADERA; de lo contrario, la salida es FALSA;
EN_1:INT;
EN_2:INT;
Q_1: BOOL;
END_VAR
Expresión en LD
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.
123
Machine Translated by Google
(3) LT Menos de
Operador
LT
Gráficos
Producción:
Cuando IN1 es menor que IN2, la salida OUT es VERDADERA; de lo contrario, la salida es FALSA;
EN 1:
EN T; EN 2:
EN T;
Q_1: BOOL;
END_VAR
Expresión en LD
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.
124
Machine Translated by Google
Gráficos
Definición de pines
Aporte:
Producción:
Cuando IN1 es menor o igual que IN2, la salida OUT es VERDADERA; de lo contrario, la salida es FALSA;
EN 1:
EN T; EN 2:
EN T;
Q_1: BOOL;
END_VAR
Expresión en LD
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.
125
Machine Translated by Google
(5) NE No es igual a
Operador
NO
Gráficos
Definición de pines
Aporte:
Producción:
Cuando IN1 no es igual a IN2, la salida OUT es VERDADERA; de lo contrario, la salida es FALSA;
EN 1:
EN T; EN 2:
EN T;
Q_1: BOOL;
END_VAR
Expresión en LD
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.
126
Machine Translated by Google
Operador
SOLO
Gráficos
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
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
Cadena_1: CADENA;
Tamaño: INT;
Resultado: Cadena;
END_VAR
Expresión en LD
Restricciones de uso
Precauciones
128
Machine Translated by Google
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
Cadena_1: CADENA;
Tamaño: INT;
Resultado: Cadena;
END_VAR
Expresión en LD
Restricciones de uso
Precauciones
129
Machine Translated by Google
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
Cadena de entrada
FUERZA
Cadena
Longitud extraída
L ANY_INT
Cadena de salida
FUERA
Cadena
Declaración de variables FUE
Cadena_1: CADENA;
EN T;
Resultado: Cadena;
END_VAR
Expresión en LD
Restricciones de uso
Precauciones
130
Machine Translated by Google
Operador
CONCAT
Función descriptiva Combine dos cadenas para formar una nueva salida de cadena.
Gráficos
Cadena_1: CADENA;
Cadena_2: CADENA;
Resultado: Cadena;
END_VAR
Expresión en LD
Restricciones de uso
Precauciones
131
Machine Translated by Google
Operador
INSERTAR
Función descriptiva Inserte otra cadena en una cadena para formar una nueva salida de cadena.
Gráficos
cadena inicial
EN 1 Cadena
Cadena para insertar en STR1
EN 2 Cadena
Cadena_1: CADENA;
Cadena_2: CADENA;
PosÿINT;
Resultado: Cadena;
END_VAR
Expresión en LD
Restricciones de uso
Precauciones
132
Machine Translated by Google
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
cadena inicial
EN Cadena
Longitud eliminada
L ANY_INT
en
Cadena_1: CADENA;
Longitud: INT;
Expresión en LD
Restricciones de uso
Precauciones
133
Machine Translated by Google
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
Cadena_1: CADENA;
Cadena_ÿ: CADENA;
Longitud: INT;
Expresión en LD
Restricciones de uso
Precauciones
134
Machine Translated by Google
Operador
ENCONTRAR
Función descriptiva Encuentre la posición inicial de una cadena específica de una cadena
Gráficos
FUERA
EN T
Cadena_1: CADENA;
Cadena_ÿ: CADENA;
Expresión en LD
Restricciones de uso
135
Machine Translated by Google
Operador *_ADD_**
Función Este bloque de funciones se utiliza como una suma de hora o fecha, Hora3=Hora1+Hora2
descriptiva
Gráficos
ESÿHabilitación del bloque de funciones (tipo BOOL); cuando es de nivel alto, se activa el bloque de funciones ADD
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
Por ejemplo:
Tiempo1=t#10s, Tiempo2=t#20s,Tiempo3=t#30s
Declaración
de variables FUE
Inicio : BOOL;
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
Operador *_SUB_**
Función Este bloque de funciones se utiliza como resta de hora o fecha , Hora3=Hora1-Hora2
descriptiva
Gráficos
ESÿHabilitación del bloque de funciones (tipo BOOL); cuando es de alto nivel, el bloque de funciones *_SUB_** es
activado
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
Por ejemplo:
Tiempo1=t#4s,Tiempo2=t#2s,Tiempo3=t#2s
Declaración
de variables FUE
Inicio : BOOL;
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
Operador *_MUL_**
Función Este bloque de funciones se utiliza como una multiplicación de hora o fecha, Time3=Time1*Data1
descriptiva
Gráficos
ESÿHabilitación del bloque de funciones (tipo BOOL); cuando es de alto nivel, el bloque de funciones *_SUB_** es
activado
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
Por ejemplo:
Tiempo1=t#4s, Datos1=2,Tiempo3=t#8s
Declaración
de variables FUE
Inicio : BOOL;
END_VAR
Ejemplo de Hora3:=Hora1*Datos1;
lenguaje ST
Ejemplo de
lenguaje LD
Restricciones de uso
Data1 tipo de datos ANY_INT, ANY_REAL;
Precauciones
138
Machine Translated by Google
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_**
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
Por ejemplo:
Tiempo1=t#4s, Datos1=2,Tiempo3=t#2s
Declaración
de variables FUE
Inicio : BOOL;
END_VAR
Ejemplo de Tiempo3:=Tiempo1/Datos1;
lenguaje ST
Ejemplo de
lenguaje LD
Restricciones de uso
Data1 tipo de datos ANY_INT, ANY_REAL;
Precauciones
139
Machine Translated by Google
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
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 ÿ
Ejemplo de
lenguaje LD
Uso
restricciones Tipos de datos aplicables para Var1, Var2, Var3: BYTE, INT, WORD, DWORD, SINT, UINT
Nota: En el ejemplo anterior, aunque el valor de la variable de entrada es el mismo, el resultado obtenido es diferente porque el
140
Machine Translated by Google
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
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 ÿ
Uso
restricciones Tipos de datos aplicables para Var1, Var2, Var3: BYTE, INT, WORD, DWORD, SINT, UINT
141
Machine Translated by Google
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 ÿ
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
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
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
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 ÿ
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
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
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
144
Machine Translated by Google
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
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
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
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
Declaración FUE
de variables Dat_IN0:
EN T;
Dat_IN1:
EN T;
Dat_SALIDA: INT;
END_VAR
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
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
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
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
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
Operador PID
Función Este bloque de funciones se utiliza para el control del algoritmo PID
descriptiva
Gráficos
Definición de pines
Aporte:
Producción:
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 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
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:
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.
Producción:
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
152
Machine Translated by Google
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
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
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:
Ejemplo de
lenguaje LD
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
ÿÿÿÿ
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
155
Machine Translated by Google
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.
Sugerencias: el centro de la posición de visualización del proyecto se ordena por orden de tiempo de apertura, el más reciente
156
Machine Translated by Google
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
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
157
Machine Translated by Google
POU a la izquierda, haga clic con el botón derecho y seleccione Importar, luego seleccione el archivo de destino en la importación
puede hacer clic derecho para abrir el menú y seleccionar la operación deseada y elegir la ruta, como se muestra en la
158
Machine Translated by Google
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
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
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.
160
Machine Translated by Google
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.
161
Machine Translated by Google
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.
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.
162
Machine Translated by Google
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
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
163
Machine Translated by Google
7-15. En esta interfaz, los usuarios pueden ver claramente los puntos de entrada utilizados con la información de sus
Nota: Esta interfaz también puede mostrar los valores en tiempo real de las variables vinculadas en el estado de
164
Machine Translated by Google
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
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.
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
y otras opciones para la configuración definida por el usuario para cumplir con diferentes escenarios de usuario.
165
Machine Translated by Google
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
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
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
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
(1) Todas las acciones se comunican normalmente, bit de bandera de comunicación de la estación
(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.
código de comunicación.
3. FSU admite copiar y pegar para toda la configuración, haga clic con el botón derecho en la
configuración maestro/cliente del proyecto a otros proyectos, que es fácil de operar para los
usuarios.
167
Machine Translated by Google
interfaz maestra para que los usuarios configuren, y la comunicación en serie con el módulo maestro se puede
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.
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.
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
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
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
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
171
Machine Translated by Google
172
Machine Translated by Google
Después de hacer clic para seleccionar Protección->Configuración, aparecerá la ventana Establecer contraseña/Confirmar 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
en la figura 7-30.
173
Machine Translated by Google
174
Machine Translated by Google
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". +
La interfaz de asignación de direcciones real para el cuerpo principal se muestra en la Figura 7-32 a continuación.
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
176
Machine Translated by Google
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
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.
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
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
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
mostrado a continuación.
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
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
Las variables que no sean componentes booleanos también se pueden forzar, de forma similar a los
179
Machine Translated by Google
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
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
180
Machine Translated by Google
Una función de comparación de proyectos está disponible en FSU para ayudar al usuario a comparar las diferencias entre proyectos
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
NOTA: La comparación del proyecto interno del PLC requiere que la opción "Descargar archivo fuente del proyecto"
181
Machine Translated by Google
182
Machine Translated by Google
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
183
Machine Translated by Google
FSU proporciona al usuario una forma de obtener el ciclo de ejecución real en el tiempo de ejecución de Trask en
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
Las luces SL1 y SL2 corresponden al puerto serie 1 y puerto serie 2 respectivamente, cuando están encendidas
185
Machine Translated by Google
186
Machine Translated by Google
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
188
Machine Translated by Google
189
Machine Translated by Google
inversores serie
190
Machine Translated by Google
191
Machine Translated by Google
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.
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.
192
Machine Translated by Google
Puerto ATV32:
193
Machine Translated by Google
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
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.
195
Machine Translated by Google
196
Machine Translated by Google
El módulo FL3-4G está conectado a la interfaz del módulo de extensión en el lado izquierdo del
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
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.
199
Machine Translated by Google
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
200
Machine Translated by Google
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
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.
202
Machine Translated by Google
**Las direcciones IP que se muestran aquí son direcciones IP virtuales en el lado de la PC y deben estar en la misma red
203
Machine Translated by Google
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
Protocolo
Código Descripción
modbus
¡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.
205
Machine Translated by Google
Protocolo
Código Descripción
modbus
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
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.
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
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.
208
Machine Translated by Google
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
209
Machine Translated by Google
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
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
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
211
Machine Translated by Google
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
Una vez que se haya completado el programa anterior, complételo y descárguelo al PLC FL5 y
213
Machine Translated by Google
213