Jump to content

xiangjinjiao

Staff group
  • Content Count

    110
  • Joined

  • Last visited

Everything posted by xiangjinjiao

  1. Este es un programa de PLC para enclavamiento y desenclavamiento de circuito para salida. Circuito de enclavamiento y desenclavamiento de PLC Descripción del problema En algunos sistemas de transporte, el operador llena el tanque manualmente al operar la bomba de agua manualmente. En esta situación, el operador espera mientras se llena el tanque porque cuando el tanque alcanza un nivel alto, la bomba de agua debe detenerse. Además, la bomba de agua debe permanecer en estado ENCENDIDO hasta que el tanque alcance un nivel alto. Por ejemplo, en este artículo consideramos un sistema de transporte de agua manual. Diagrama del problema Solución del problema En este ejemplo, consideramos un tanque de almacenamiento de agua y usamos una bomba de agua para llenar el tanque. También usamos un sensor de nivel para el nivel alto y un panel de control para el operador. Aquí START PB para habilitar el motor para que podamos alimentar el agua en el tanque, para detener el motor usamos STOP PB. Sensor de nivel para detección de nivel alto, de modo que cuando el tanque se llena, el sensor de nivel alto se activará y detendrá la bomba de agua. Para esta secuencia, utilizaremos las instrucciones SET y RESET para bloquear y desbloquear la bomba de agua. Podemos hacer este circuito con relés. En la aplicación, solo hay una válvula de descarga manual para descargar el tanque manualmente. No consideraremos la lógica interna. Lista de entradas del PLC PB DE INICIO: I0.0 PB DE DETENCIÓN: I0.1 SENSOR DE NIVEL ALTO: I0.2 SENSOR DE NIVEL BAJO: I0.3 Lista de salidas del PLC BOMBA DE AGUA: I0.0 Diagrama de escalera del PLC para circuito bloqueado y desbloqueado Descripción del programa Para esta aplicación, utilizamos el software de portal TIA y PLC S7-1200 para la programación. También podemos hacer este circuito o lógica con relé. Este circuito o lógica se conoce como circuito o lógica de bloqueo y desbloqueo. Escribiremos la lógica para la bomba de agua en la Red 1. Aquí, utilizamos el contacto NO del PB de INICIO (I0.0) para habilitar la bomba de agua (Q0.0). Al utilizar la instrucción SET, la bobina de salida de la bomba de agua (Q0.0) se bloqueará. Agregue el contacto NO del SENSOR DE NIVEL BAJO (I0.3) en serie con la salida de la bomba de agua (Q0.0). La bomba de agua no debe arrancar si el tanque está lleno. Por lo tanto, por motivos de seguridad, utilice un contacto NO del SENSOR DE NIVEL BAJO (I0.3) en serie después del PB de INICIO (I0.0) en la Red 1. Ahora, el SENSOR DE NIVEL ALTO (I0.2) se detectará después de un tiempo de funcionamiento de la bomba y, en este caso, la bomba de agua (Q0.0) se debe detener automáticamente. Para ello, necesitamos desbloquear el circuito. Escribiremos la lógica para desbloquear el circuito en la Red 2. En este caso, tomamos el contacto NO del SENSOR DE NIVEL ALTO (I0.3) para desbloquear el circuito mediante la instrucción RESET. Agregue un contacto NO de STOP PB (I0.1) en conexión paralela, de modo que el operador pueda desbloquear el circuito presionando STOP PB (I0.1). Aquí bloqueamos el circuito mediante la instrucción SET y lo desbloqueamos con la instrucción RESET. Casos de prueba en tiempo de ejecución Nota: La lógica de PLC anterior brinda una idea básica sobre la aplicación del programa de PLC para bloquear y desbloquear el circuito. La lógica es limitada y no es una aplicación completa.
  2. Siempre me sorprende cómo un sistema de automatización como un PLC o un DCS escala un sensor; o incluso a veces pienso en técnicas de escalado de transmisores de campo simples para convertir cualquier tipo de salida de sensor en 4-20 mA estándar. Por ejemplo, considere un transmisor de temperatura y todos sabemos que, utilizando una fórmula simple, podemos calcular la temperatura equivalente a partir de la resistencia de salida del sensor RTD. Y en el caso de un termopar, se requiere un algoritmo complejo para convertir su salida de milivoltios en temperatura equivalente. Entonces, ahora la pregunta es ¿cómo escala un PLC, un DCS o un transmisor? Analicemos en detalle el escalado. ¿Cómo escala un PLC para un sensor? El escalado es el proceso de tomar una señal, como una variable de proceso, voltaje o salida de corriente de un sensor, y aplicar cálculos para presentar esta señal en una forma más utilizable en términos de unidades de ingeniería, como PSI, °F o %RH para el operador en la sala de control. Hay tres técnicas comunes que se utilizan en el mundo de la adquisición de datos, que incluyen el escalado lineal, el escalado mapeado y el escalado de fórmula. Los tres métodos tienen su lugar y momento de uso y se describirán en este artículo. Técnicas de escalado Hay tres técnicas de escalado que vamos a cubrir aquí en este artículo: lineal, mapeado y fórmula. Estas tres técnicas se superponen un poco como explicaremos, pero son los métodos principales que se utilizan en el mundo de la adquisición de datos. Solo para dar una descripción general rápida de estos tres métodos y para qué se utilizan mejor, hemos elaborado una tabla a continuación. En ciertos casos en los que no está disponible el escalado basado en fórmulas, a veces se puede utilizar el mapeo para predefinir una tabla en función de la fórmula necesaria y viceversa. También vale la pena señalar que cuando se trabaja con un sensor que tiene una salida analógica, las unidades especificadas para ese sensor no están escritas en piedra. Por ejemplo, si su sensor tiene una salida de 4 a 20 mA para un rango de -40 a 100 °C, sería igual de fácil escalar la salida a Fahrenheit diciendo que la unidad tiene un rango de -40 a 212 °F. Hablaremos más sobre esto en la siguiente sección. Escalado lineal La técnica del escalado lineal debería recordarle algunos días atrás en álgebra básica. Utiliza la antigua forma pendiente-intersección ‘y = mx + b’ donde y es su salida (también conocida como valor de unidades de ingeniería), x es su entrada (ya sean voltajes, miliamperios, etc.), m es su pendiente (también conocida como factor de escala) y b es su intersección con y (también conocida como desplazamiento). Como se dijo anteriormente, el escalamiento lineal funciona mejor con salidas de voltaje o corriente lineales en las que las salidas mínima y máxima representan valores específicos junto con el rango de los sensores. Si está un poco oxidado, no tema, le daremos un par de ejemplos para refrescar las cosas. Ejemplo 1 Consideremos el transmisor de nivel con un rango de 0 a 100 pies de columna de agua y una salida de 0 a 10 V CC. Estas especificaciones nos dicen dos cosas: Una salida de 0 V representa una medición de 0 pies de columna de agua y Una salida de 10 V representa una medición de 100 pies de columna de agua. Lo mejor es empezar con el factor de escala, o m en la ecuación. El factor m se puede resolver utilizando la fórmula de la pendiente m = (y2-y1) / (x2-x1)’ y eligiendo dos puntos a lo largo de la escala lineal. Una vez que se ha determinado el factor de escala, simplemente introducimos el valor m en la fórmula de pendiente-intersección y utilizamos uno de nuestros puntos para calcular el desplazamiento. 1. Usaremos los dos puntos (0, 0) y (10, 100) para calcular el factor de escala o m. m = (y2-y1) / (x2-x1) = (100 – 0) / (10 – 0) = 100 / 10 Por lo tanto, m = 10 2. Ahora utilizaremos la fórmula de pendiente-intersección y el punto (0, 0) para calcular el desplazamiento o b. y = mx + b, donde y = 0, x = 0, m = 10 y b es desconocido. 0 = 10(0) + b = 0 + b Por lo tanto, b = 0 3. Siempre es una buena idea verificar que el factor de escala y el desplazamiento sean correctos al introducir nuestro segundo punto en nuestra ecuación completa, que en este caso es (10, 100). y = mx + b, donde y = 100, x = 10, m = 10 y b = 0. 100 = 10(10) + 0 = 100 Dado que esta operación aritmética es válida, hemos verificado que nuestro factor de escala y desplazamiento son correctos. Ejemplo 2 Teniendo en cuenta que el ejemplo de 0 a 10 V es bastante simple, pasemos a algo más desafiante como una salida de 4 a 20 mA. Seguiremos utilizando el transmisor de nivel con un rango de 0 a 100 pies de columna de agua, pero esta vez utilizaremos una salida de 4 a 20 mA. Estas especificaciones nos indican dos cosas nuevamente: Una salida de 4 mA representa una medición de 0 pies de columna de agua y Una salida de 20 mA representa una medición de 100 pies de columna de agua. Haremos este ejemplo de la misma manera que hicimos el último, encontrando primero el factor de escala y luego introduciendo algunos números para calcular la compensación. 1. Usaremos los dos puntos (4, 0) y (20, 100) para calcular el factor de escala o m. m = (y2-y1) / (x2-x1) = (100 – 0) / (20 – 4) = 100 / 16 Por lo tanto, m = 6,25 2. Ahora usaremos la fórmula de pendiente-intersección y el punto (4, 0) para calcular el desplazamiento o b. y = mx + b, donde y = 0, x = 4, m = 6,25 y b es desconocido. 0 = 6,25(4) + b = 25 + b Por lo tanto, b = -25 3. Siempre es una buena idea verificar que el factor de escala y el desplazamiento sean correctos al introducir nuestro segundo punto en nuestra ecuación completa, que en este caso es (20, 100). y = mx + b, donde y = 100, x = 20, m = 6,25 y b = -25. 100 = 6,25(20) + (-25) = 100 Dado que esta operación aritmética es válida, hemos verificado que nuestro factor de escala y desplazamiento son correctos. Escala mapeada La técnica de escala mapeada a menudo está incorporada y preprogramada para entradas como termopares, Pt100/1000 y otros sensores de temperatura resistivos. Por ejemplo, cuando configura su sistema de adquisición de datos para medir un termopar tipo K, el sistema ya sabe qué salida de milivoltios del termopar corresponde a qué temperatura. Este ejemplo no se aplica solo a los termopares tipo K, sino a cualquier tipo de sensor de temperatura resistivo de uso común u otros sensores relacionados. Sin embargo, hay algunos casos en los que necesitaríamos crear nuestra propia tabla de mapeo. Uno de estos casos sería cuando trabajamos con un sistema de adquisición de datos que no está preconfigurado para su uso con sensores de temperatura resistivos. Esta no es una situación muy común con la que nos encontramos, pero vale la pena mencionarla. El otro caso sería cuando tenemos una función no lineal y el escalado basado en fórmulas no está disponible o es una función por partes. Un buen ejemplo de esto sería cuando usamos un sensor de nivel para calcular el volumen de un tanque no lineal. Normalmente, cuando queremos saber cuál es el volumen de un fluido en un tanque, medimos la profundidad o el nivel del tanque. Al saber esto, podemos calcular el volumen del fluido. Si el tanque tuviera un fondo plano y el mismo diámetro y altura, este cálculo sería simple y podríamos usar una escala lineal como la anterior. Sin embargo, normalmente estos tanques son redondeados y el nivel del fluido no se correlaciona directamente con el volumen del fluido. En esta situación, debemos usar una escala mapeada y un poco de matemáticas para obtener el resultado deseado. Para nuestro ejemplo, usaremos un tanque cilíndrico horizontal con un diámetro de 5 pies y una longitud de 10 pies. Existe una serie de fórmulas trigonométricas complicadas que se usan para determinar el volumen lleno de un tanque como este, que vamos a omitir porque son demasiado complejas para el alcance de este artículo. En su lugar, haremos los cálculos y le mostraremos la tabla de mapeo de valores. Además, para este ejemplo, utilizaremos nuevamente el transmisor de nivel, pero esta vez con una salida de CC de 0 a 10 V y un rango de columna de agua de 0 a 5 pies. Si esta es la tabla de mapeo programada en su sistema de adquisición de datos, se calculará el volumen en lugar de simplemente medir la profundidad. Por lo general, cuantos más puntos tenga su tabla, más precisos serán los cálculos. Para demostrar este concepto, usemos una señal de salida de 1 V como ejemplo. Una salida de 1 V nos indicaría que hay una profundidad de 0,5 pies en el tanque. Esto se calcula en aproximadamente 76 galones. 1 V se encuentra entre 0 V y 2 V en nuestra tabla, por lo que el sistema de adquisición de datos establecerá una escala lineal entre esos dos puntos y dirá que una salida de 1 V es de 104,5 galones, ¡lo que representa una diferencia de casi 30 galones! Escala de fórmulas Esta técnica tiene el potencial de ser uno de los métodos de escalado más potentes, sin embargo, a menudo consume muchos recursos y la mayoría de los sistemas de adquisición de datos que almacenan datos a altas velocidades no pueden seguir el ritmo de este proceso. Para los sistemas de adquisición de datos que no pueden realizar el escalado de fórmulas, existen dos alternativas: Almacenar valores sin procesar y aplicar las fórmulas requeridas a los datos después de que se hayan guardado desde el sistema de adquisición de datos. Esto normalmente se puede hacer en un software como Microsoft Excel. Usar una calculadora de señales programable. Este tipo de dispositivo se puede configurar para procesar múltiples entradas a través de una fórmula definida por el usuario y proporcionar una salida lineal. Existen numerosos usos potenciales para el escalado de fórmulas. Cubriremos dos posibles escenarios para esta técnica: volumen del tanque cilíndrico vertical y presión diferencial. Ejemplo 1 Para un tanque cilíndrico vertical, el volumen de llenado se puede calcular con la fórmula ‘V = π r2 f ‘ donde V es el volumen lleno, r es el radio del tanque y f es la altura de llenado. Digamos que nuestro tanque tiene un diámetro de 5 pies y una altura de 10 pies. Nuevamente, usemos el transmisor de nivel para nuestro ejemplo con un rango de WC de 0 a 10 pies y una salida de CC de 0 a 5 V. El transmisor de nivel nos proporciona nuestra altura de llenado o f. A partir de esta altura de llenado, podemos calcular directamente el volumen de llenado o V. Usaremos algunos de los mismos métodos de escala lineal para obtener nuestra f y aplicaremos los cálculos sobre eso. 1. Primero calcularemos la escala lineal para la altura de llenado o f. Voy a omitir algunos pasos porque ya lo cubrimos en la primera sección. y = f = 2x, donde x es la salida de voltaje del sensor. 2. Ahora podemos reemplazar la f en la fórmula del tanque cilíndrico vertical con 2x. V = π r2 f = π (2.5)2 (2x) = π 12.5x Ejemplo 2 El segundo escenario que vamos a utilizar para explicar la técnica de escala de fórmula es la presión diferencial. Obviamente, hay una cantidad de sensores de presión diferencial que brindan una salida lineal, pero por experiencia, puedo decirles que hay muchos usos para este método de cálculo de presión diferencial. En este ejemplo, utilizaremos dos de los transmisores con un rango de 0 a 100 PSI y una salida de 0 a 10 V CC. Uno se colocará dentro de un recipiente presurizado sumergido bajo el agua y el otro se colocará fuera de este recipiente. La presión diferencial determinará la cantidad de fuerza que se ejerce sobre las paredes del recipiente. Los cálculos aquí son muy simples. Simplemente reste uno del otro. Pdifferential = Pexternal – Pinternal Conclusión Las tres técnicas más utilizadas para escalar las salidas de los sensores son: Escalado lineal, Escalado mapeado y escalado de fórmula. Registro de desplazamiento de PLC Como puede ver, hay muchos casos en los que más de una de estas técnicas puede funcionar y la mejor opción generalmente depende del hardware/software con el que esté trabajando. El escalado lineal es el más fácil de usar, sin embargo, los sensores con salidas lineales tienden a ser más costosos ya que se requiere hardware adicional para linealizar la salida bruta del transductor. El escalado mapeado se utiliza con más frecuencia de lo que solemos notar. Cada vez que un sensor de temperatura resistivo le proporciona una lectura de temperatura, la escala asignada está funcionando en algún punto del proceso. La escala de fórmula es muy poderosa, pero requiere configuraciones de hardware y software.
  3. Ahora estamos hablando de cómo se controla un motor mediante PLC. Antes de continuar con el artículo, supongamos algunas condiciones. Un PLC debe poner en marcha un motor cuando se presiona el botón de inicio. Tiene tres enclavamientos que son vibración alta del motor, sobrecarga y temperatura alta del motor. Si se activa alguno de los enclavamientos, el PLC debe detener el motor inmediatamente. El PLC debe detener el motor si se presiona el botón de parada. La lógica de disparo o enclavamiento del PLC debe habilitarse solo cuando el motor está en modo remoto. Control de motores mediante PLC En la figura anterior: las luces indicadoras LED rojas en las tarjetas de entrada y salida del PLC indican si esos canales de E/S respectivos están energizados. Nota: En la figura anterior, no se muestran las señales del panel de control local. El panel de control local está conectado directamente al alimentador del motor. Alimentación de 24 V CC conectada directamente (en general, se utilizarán fusibles o barreras, la alimentación se distribuirá a través de la barra colectora) Entradas de PLC Botón pulsador de arranque Botón pulsador de parada Vibración alta Temperatura alta Disparo por sobrecarga Retroalimentación de funcionamiento Estado local/remoto Salidas de PLC Comando de arranque (arranque remoto) Comando de parada (parada remota) Permiso de arranque (opcional) El motor es un dispositivo trifásico alimentado a 415 V CA. Por lo tanto, de forma predeterminada, el equipo de alto voltaje se alimentará desde subestaciones o centros de control de motores (MCC) que se mantienen mediante electricidad. Por lo tanto, consideramos que este motor está conectado a un alimentador de motor simple en la subestación. En general, el alimentador de motor tiene entradas de campo (panel de control local) y también de PLC. Que se muestran en la siguiente figura. Nota: el alimentador de motor puede tener indicaciones de arranque, parada y otras de disparos como sobrecarga, etc. en el panel del alimentador de motor que no se muestran en la figura. Estos se montan en el panel del alimentador del motor (además del LCP). Si el alimentador del motor recibe entradas de comandos de arranque y parada del PLC, las llamamos señales de arranque remoto y parada remota. De manera similar, si el alimentador del motor recibe entradas de comandos de arranque y parada del panel de control local (LCP) que está instalado en el campo (cerca del motor), las llamamos señales de arranque local y parada local. En la práctica común, este LCP también tiene un interruptor de selección local/remoto y de parada de emergencia. El alimentador del motor también envía un estado local/remoto al PLC. Si el interruptor de selección local/remoto está en modo local, el alimentador del motor solo considerará las señales del LCP e ignorará los comandos del PLC. De manera similar, si el interruptor de selección local/remoto está en modo remoto, el alimentador del motor considerará las señales del control remoto, es decir, el PLC, e ignorará las señales del LCP. Por ejemplo: si el interruptor de selección local/remoto está en modo remoto, si el operador de campo presionó el botón de arranque desde el LCP de campo, el motor no se pondrá en marcha ya que la selección está en modo remoto. Dependiendo del estado del interruptor de selección local/remoto, el alimentador del motor decidirá qué señales se deben considerar, es decir, señales PLC o LCP. Nota: La selección local/remota no se aplicará para los comandos de parada de emergencia o de parada, ya sea del PLC o del LCP. Sea cual sea el modo, el alimentador del motor aceptará los comandos de parada y detendrá el motor inmediatamente. Esto es un problema de seguridad. Veamos cómo un PLC controla un motor. Ahora el interruptor de selección local/remoto está en modo remoto. Aquí estamos enviando una señal permisiva (permiso de arranque) al alimentador del motor. Para arrancar el motor, el permiso debe estar en buen estado; de lo contrario, el alimentador del motor se desenergizará o no arrancará el motor. En el PLC, el permiso de arranque se utilizará como una medida de seguridad adicional y para verificar el estado de los interbloqueos. Si todos los interbloqueos están en buen estado, solo se enviará la señal permisiva al alimentador del motor. Generalmente, lo llamamos "Permiso de arranque", ya que el nombre lo indica, solo se requiere para arrancar el motor. Una vez que el motor arranca, el alimentador del motor no considerará el estado de esta señal permisiva (solo se requiere para arrancar el motor). Esta es una señal opcional. Para motores de alta capacidad, se utilizarán señales permisivas de arranque. Para motores de capacidad normal o baja, se utilizan muy raramente; nuevamente, depende de nuestras aplicaciones, industria, requisitos, etc. Digamos que todos los enclavamientos están en buen estado, por lo que el PLC envía la señal permisiva al alimentador del motor. Ahora se presiona el botón de arranque. Primero, el PLC verifica el estado local/remoto; si está en remoto, continúa. Nuevamente, verifica si hay disparos/enclavamientos activos. Si no hay enclavamiento o todo funciona normalmente, entonces el PLC envía un comando de arranque a la subestación donde está instalado el alimentador del motor. En este ejemplo, tenemos tres enclavamientos: vibración alta del motor, temperatura alta del motor y disparo por sobrecarga. En general, los motores de alta capacidad están equipados con sensores de vibración y sensores de temperatura. En nuestro ejemplo, consideramos que las señales de vibración son a prueba de fallas, por lo que el estado predeterminado es normalmente cerrado. Si aparece una vibración alta, el contacto se vuelve normalmente abierto y el PLC activa o detiene el motor. Tenemos otro enclavamiento que es el disparo por sobrecarga, esta entrada se toma del alimentador del motor. La señal de los sensores de temperatura normalmente está abierta y cuando la temperatura es alta, se cierra normalmente y el PLC dispara/detiene el motor. Nota: El estado de contacto a prueba de fallas o predeterminado, ya sea NC o NO, depende de nuestra aplicación o de los requisitos lógicos. Aquí solo estamos discutiendo un ejemplo para comprender el concepto. Después de recibir el comando de inicio del PLC, el alimentador del motor se energizará y encenderá el motor. Una vez que el motor se haya puesto en marcha, el alimentador del motor enviará la retroalimentación de funcionamiento al PLC. La retroalimentación de funcionamiento se mostrará en los gráficos. En algunos PLC o en los PLC de seguridad, si la retroalimentación de funcionamiento no se recibe en el período de tiempo especificado (por ejemplo, dentro de los 5 segundos), el PLC envía automáticamente una señal de parada al alimentador del motor. Esta es una característica opcional en las aplicaciones de PLC normales (imprescindible en los PLC de seguridad). Digamos que ahora se produce una vibración alta, entonces el PLC envía un comando de parada al alimentador del motor y detiene inmediatamente el motor. El estado de retroalimentación de funcionamiento también se actualiza en consecuencia. El motor arrancará cuando el transmisor de nivel esté en nivel alto y se detendrá nuevamente cuando el transmisor de nivel esté en nivel bajo. Abreviaturas: MCC: Centro de control de motores o subestación donde se alimentará el motor. PLC/DCS: Sistema de control, donde el motor se puede controlar según la lógica (automático) o según la acción del operador (manual). LCP: Panel de control local que se instala en el campo, cerca del motor, en el que se encuentran disponibles los botones de arranque y parada
  4. Objetivo: comprender el concepto básico de la lógica de escalera de control de válvulas PLC. Usuarios objetivo: estudiantes, técnicos, principiantes, ingenieros en formación. Nota: la barrera o el relé no se muestran en la figura anterior. Enumeremos las entradas digitales y las señales de salida digitales del PLC requeridas: Entradas digitales del PLC: Retroalimentación de apertura de válvula Retroalimentación de cierre de válvula Salida digital del PLC: Comando de activación de válvula Programación de lógica de escalera de control de válvulas PLC Cualquier válvula neumática requiere suministro de aire de instrumentación para su funcionamiento. Se utiliza un regulador de filtro de aire para eliminar cualquier líquido o material particulado presente en el suministro de aire de instrumentación y para establecer el suministro de aire requerido para la válvula. La salida del regulador de filtro de aire está conectada al actuador de la válvula a través de una válvula solenoide. Esta válvula solenoide se utiliza para controlar, es decir, ENCENDIDO/APAGADO del suministro de aire de instrumentación al actuador de la válvula. Considere que la válvula solenoide (SOV) es del tipo Normalmente cerrada (NC). En la posición normal, la SOV está en posición apagada o estado desenergizado, por lo que el suministro de aire del instrumento se bloqueará ya que la SOV está normalmente cerrada. Si la SOV está energizada, es decir, el PLC envía la señal, entonces la SOV se energiza y se vuelve normalmente abierta (NO), por lo que permite el suministro de aire del instrumento a través de ella. Algunas personas a menudo confunden la válvula solenoide y el actuador de la válvula. Ambos son diferentes, la SOV controla (ENCENDIDO/APAGADO) el suministro de aire del instrumento y el actuador de la válvula controla la posición de la válvula, ya sea completamente abierta o completamente cerrada. La válvula ON/OFF está equipada con interruptores de proximidad o interruptores de límite para detectar la posición de la válvula, ya sea completamente abierta o completamente cerrada. Por lo tanto, estos están conectados a las entradas digitales del PLC. Por lo tanto, el PLC puede saber el estado de la válvula en el campo, ya sea completamente abierta o completamente cerrada, y se lo muestra al operador a través de gráficos. Considere que nuestra válvula ON/OFF es del tipo Normalmente abierta, es decir, la válvula está en posición Abierta. Por lo tanto, de manera predeterminada, se enviará una retroalimentación de apertura al PLC o podemos decir que el interruptor de límite de retroalimentación de apertura o el interruptor de proximidad se activarán y el interruptor de retroalimentación de cierre estará en estado desenergizado. Digamos que el PLC envía un comando de salida digital a la válvula ON/OFF (a través de una barrera o un relé). Digamos que tenemos una válvula solenoide alimentada por 24 V CC montada en la válvula ON/OFF. En general, se coloca una barrera o un relé después del módulo de salida digital del PLC. Supongamos que tenemos una barrera, primero la barrera recibe el comando del módulo de salida digital del PLC (el comando del PLC es la entrada de la barrera), luego la barrera activa su salida (salida de la barrera) y la barrera envía la energía de 24 V CC a la válvula ON/OFF respectiva. El propósito de la barrera o relé se utiliza para aislar las señales del PLC y del campo o por motivos de seguridad o para amplificar las señales de energía/voltaje. Ahora la válvula ON/OFF recibe el comando del PLC, es decir, recibió la energía de 24 V CC a la válvula solenoide desde la barrera. Ahora la válvula solenoide se activará y cambiará al estado normalmente abierto (NC). Ahora la válvula solenoide pasa el suministro de aire del instrumento al actuador de la válvula cuando se vuelve normalmente abierta. El actuador de la válvula recibe el suministro de aire del instrumento y mueve el vástago de la válvula en consecuencia y la posición de la válvula cambiará del estado completamente abierto al estado completamente cerrado. Cuando la válvula ON/OFF comienza el movimiento del vástago, inmediatamente desaparece la retroalimentación de apertura (el interruptor de proximidad no detecta ningún objeto montado en el vástago). Después de que comienza el movimiento del vástago de la válvula y antes de llegar a la posición de cierre, las retroalimentaciones de apertura y cierre no estarán disponibles para el PLC y lo llamamos estado de transición. Después de que la válvula ON/OFF esté completamente cerrada, el interruptor de retroalimentación de cierre (proximidad o límite) se activará y la señal de retroalimentación de cierre se enviará al PLC y se mostrará al operador. Nota: A veces, la válvula ON/OFF puede quedar atascada en el medio, por lo que el operador no recibirá ninguna retroalimentación en los gráficos, ya que los interruptores de retroalimentación de apertura y cierre solo detectarán los estados completamente abierto o completamente cerrado de la válvula. No es posible detectar ningún estado intermedio de la válvula. Digamos ahora que el PLC retira el comando de salida a la válvula ON/OFF, es decir, la entrada de la barrera se apagará, por lo que la barrera se desenergizará o la salida de la barrera se apagará, se desconectará/quitará la alimentación de 24 V CC a la válvula solenoide. A medida que se quita la alimentación de la válvula solenoide, la válvula solenoide cambia su estado de NO a NC. La válvula solenoide se vuelve normalmente cerrada, es decir, se detendrá o desconectará el suministro de aire del instrumento al actuador de la válvula. Por lo tanto, la válvula ON/OFF también vuelve a su estado original, es decir, estado abierto. El PLC puede enviar una señal de comando de salida en función de algunas señales de entrada lógicas o en tiempo real. Por ejemplo: si el nivel de un bidón alcanza una alarma alta, entonces la válvula ON/OFF de alimentación del bidón debe cerrarse. Detalles de la válvula ON/OFF: En nuestro ejemplo, consideramos una válvula ON/OFF neumática. Primero, vemos la lista de componentes de la válvula y su propósito. a. Regulador del filtro de aire: Los filtros de aire se utilizan para eliminar agua líquida y partículas de las fuentes de aire comprimido. Son "filtros mecánicos" y no eliminan vapores de aceite ni contaminantes químicos en forma de vapor. Haga clic aquí para ver el principio y la animación. b. Válvula solenoide: Una válvula solenoide es una válvula controlada electromecánicamente. La válvula cuenta con un solenoide, que es una bobina eléctrica con un núcleo ferromagnético móvil en su centro. Este núcleo se llama émbolo. En posición de reposo, el émbolo cierra un pequeño orificio. Una corriente eléctrica a través de la bobina crea un campo magnético. El campo magnético ejerce una fuerza sobre el émbolo. Como resultado, el émbolo es atraído hacia el centro de la bobina para que el orificio se abra. Este es el principio básico que se utiliza para abrir y cerrar las válvulas solenoides. Animación de válvula solenoide Tipos y principios de válvulas solenoides c. Retroalimentación de apertura y retroalimentación de cierre: Un interruptor de proximidad es uno que detecta la proximidad (cercanía) de algún objeto. Por definición, estos interruptores son sensores sin contacto que utilizan medios capacitivos, inductivos, magnéticos, eléctricos u ópticos para detectar la proximidad de la posición de la válvula, ya sea abierta o cerrada. d. Actuador de válvula: Un actuador de válvula es un dispositivo que produce fuerza para abrir o cerrar la válvula utilizando una fuente de energía. Esta fuente de energía puede ser manual (mano, engranaje, rueda de cadena, palanca, etc.) o puede ser eléctrica, hidráulica o neumática. e. Suministro de aire para instrumentos: Suministro de aire comprimido y seco para la válvula.
  5. Explicación del programa PLC para un sistema de monitoreo del nivel de agua de un estanque artificial con el concepto de lógica de escalera para principiantes. Sistema de monitoreo del nivel de agua Descripción del problema Implemente un programa PLC para un sistema de monitoreo del nivel de agua de un estanque artificial. Alimente o vacíe el agua del estanque artificial cuando el nivel de agua esté por debajo del nivel normal y active la alarma cuando el nivel de agua esté por encima o por debajo del nivel. Diagrama del problema Solución del problema Este problema se puede resolver mediante una automatización simple. Aquí consideramos un estanque artificial, cuatro sensores de nivel y tres bombas para el monitoreo y control del sistema. Aquí escribiremos un programa que controlará todo el sistema. El sistema mantendrá el nivel normal y no permitirá que el nivel del agua suba o baje para mantener el nivel normal. Si el nivel del agua desciende del nivel normal, el sistema suministrará agua al estanque de peces y si el nivel del agua aumenta del nivel normal, el sistema drenará el agua del estanque de peces. Lista de entradas/salidas Lista de entradas Sensor de nivel, L0: I0.0 (L0=1 cuando el nivel del agua está por encima del nivel de alarma). Sensor de nivel, L1: I0.1 (L1=1 cuando el nivel del agua está por encima del nivel normal) Sensor de nivel, L2: I0.2 (L2=1 cuando el agua está por encima del nivel normal) Sensor de nivel, L3: I0.3 (L3=1 cuando el agua está por encima del nivel de alarma) Lista de salidas Bomba de alimentación: Q0.0 Bomba de drenaje 1: Q0.1 Bomba de drenaje 2: Q0.2 Lámpara de alarma: Q0.3 Lógica de escalera de PLC para monitoreo del nivel de agua de estanques artificiales Lógica explicada En este problema consideraremos Software de programación de PLC S7-300 y portal TIA. Red 1: En esta red, hemos escrito la lógica para la bomba de drenaje 1 (Q0.1). Cuando el nivel de agua está por encima del nivel más alto del nivel de alarma (L3 = I0.3), en ese momento la bomba de drenaje 1 (Q0.1) estará encendida. Red 2: Si el nivel de agua está por debajo del nivel de alarma, entonces la bomba de alimentación (Q0.0) debe ponerse en marcha. Por lo tanto, aquí hemos tomado el contacto NC de L1 (I0.1), cuando el nivel está por debajo del nivel normal, entonces la bomba de alimentación (Q0.0) se encenderá y llenará el estanque de peces con agua. Red 3: Si el nivel de agua está por encima del nivel normal, entonces la bomba de drenaje 2 (Q0.2) estará encendida. Aquí el nivel de agua está por encima del nivel normal, no del nivel de alarma, por lo que solo funcionará la bomba de drenaje 2 (Q0.1). Red 4: Aquí hemos utilizado dos condiciones en la compuerta OR, de modo que si el nivel está por debajo del nivel normal (L1 = I0.1) o por encima del nivel normal (L1 = I0.1), entonces se activará el circuito intermitente y la lámpara de alarma (Q0.3) se encenderá. Red 5: Temporizador 2 para el circuito intermitente. Red 6: Aquí hemos utilizado dos condiciones en la compuerta OR, de modo que si el nivel está por debajo del nivel normal (L1=01) o por encima del nivel normal, entonces la lámpara de alarma (Q0.3) parpadeará automáticamente en intervalos de 5 segundos. El nivel está por encima del nivel de alarma (L0=1, L1=1, L2=1, L3=1) o por debajo del nivel de alarma (L0=0, L1=0, L2=0, L3=0). ENTONCES la lámpara de alarma parpadeará automáticamente en intervalos de 5 segundos. El nivel está por encima del nivel de alarma (L0=0, L1=0, L2=0, L3=0), entonces las bombas de drenaje 1 y 2 se pondrán en marcha y si el nivel de agua está por encima de lo normal, entonces solo se pondrá en marcha la bomba de drenaje 2. Nota: el ejemplo anterior es solo para fines explicativos, no se consideran todos los parámetros o interbloqueos. No es necesario utilizar el PLC S7-300 para esta lógica simple, hemos utilizado este PLC para nuestro propósito de discusión. Resultado
  6. Comunicación Modbus del PLC Delta (DVP 14SS2) con el VFD Delta (serie VFD-L). El motor se debe poner en funcionamiento directamente desde la HMI (DOP-107CV) mediante comunicación Modbus. Comunicación Modbus entre el PLC Delta y el VFD El motor de inducción se debe poner en funcionamiento directamente desde la HMI junto con su control de velocidad. El control de velocidad es tal que debe haber dos botones en la HMI que aumenten y disminuyan la velocidad del motor en pasos de un hercio (supuesto). Hay un variador de CA delta de la serie VFD-L que hará funcionar el motor según los comandos recibidos del PLC. En primer lugar, se deben configurar la comunicación y otros parámetros en el variador para que coincidan todas sus configuraciones con el PLC, como la velocidad en baudios, la paridad, el modo de comunicación, etc.; excepto el ID del esclavo (dirección de la estación) que debe ser diferente de la dirección de la estación del PLC. De forma predeterminada, la dirección de la estación del PLC es igual a uno (1). Esto significa que la dirección de la estación del variador debe ser cualquier valor dentro de su rango definido excepto uno (1). Los parámetros detallados que se deben configurar para el modo de comunicación son los siguientes: 2-00 = 4 2-01 = 4 Parámetros de comunicación Debemos configurar los parámetros de comunicación según la tabla anterior (tomada del manual). 9-00 = 2 (se puede configurar en cualquier valor excepto 1) 9-01 = 1 9-04 = 7 (modo RTU, bits de parada iguales a 1 y paridad par) El DVP 14SS2 tiene dos puertos de comunicación, a saber, RS232 y RS485 por separado. Ahora, la configuración del puerto de comunicación 2 debe realizarse de acuerdo con los parámetros configurados del VFD, que son los siguientes. Abra el software WPL (Software Delta PLC). Haga clic en el ícono del Programa de comunicación en la página de programación. Seleccione COM2 y presione siguiente. Establezca los parámetros de acuerdo con los parámetros de comunicación del variador VFD y haga clic en Siguiente. Aquí, se ingresan de acuerdo con los parámetros establecidos en la interfaz VFD-L. La dirección de la estación del PLC es 1 (ver la esquina inferior izquierda) Marque lo resaltado y presione siguiente. Se pueden marcar las casillas a continuación y escribir las condiciones. Aquí, omitimos esta ventana y, en su lugar, escribiremos la lógica directamente en el modo de diagrama de escalera. Haga clic en Finalizar. Ahora, la siguiente lógica de escalera se genera como resultado de las condiciones establecidas anteriormente. La escalera en el escalón 2 se ejecuta cada vez que se recibe una solicitud enviada. La escalera en el peldaño 3 se ejecuta cada vez que se leen o escriben datos al variador. Ahora, antes de seguir adelante, se escribe la lógica para iniciar y detener el motor y su control de velocidad; necesitamos encontrar las direcciones Modbus del variador a través de las cuales se ejecutará lo mencionado. Para la serie VFD-L, 2000H es la dirección Modbus para iniciar y detener el variador y 2001H es para el cambio de frecuencia. Aquí, H denota hexadecimal. En este tema, estamos aquí para usar el formato decimal para la dirección en particular. Por lo tanto, el formato hexadecimal debe cambiarse a decimal. A través del código 8421, convertiríamos de la siguiente manera: 2000 (Hex) = 8192 (Dec) 2001(Hex) = 8193 (Dec) Entonces, en lugar de 200H y 2001H, se usarán 8192K y 8193K. Asegúrese de que 8192 y 8193 sean solo direcciones Modbus. Si 8192K tiene un valor igual a 10, el motor arrancará. Si 8192K tiene un valor igual a 1, el motor se detendrá. Si 8193K tiene un valor igual a 5000, el motor funcionará a 50 Hz, lo que significa que si la velocidad del motor necesita aumentarse en 1 Hz, se deben agregar 100 al valor existente y viceversa. Explicación del programa PLC Ahora, pasemos a los detalles del programa PLC. El bit de solicitud de envío M1122 se establece cada vez que se da un comando al VFD en el renglón 5. MODRW K2 K6 K8192 D70 K1 MODRW representa lectura/escritura de Mod K2 representa la dirección de la estación del VFD. K6/K3 representa el código de función, ya sea para escribir o leer. Aquí k6 representa escritura. K8192 representa la dirección Modbus en la que se escriben los datos Los datos en D70 se escriben en k8192 K1 es la longitud de los datos 10 (dec) y 1 (dec) se mueven a D70 cuando se dan los comandos de inicio y detención en los peldaños 6 y 7. Al mismo tiempo, se lleva a cabo la transmisión de datos, es decir, los datos en D70 se escriben en la dirección 8192k del VFD en el peldaño 8 para iniciar y detener el motor. 100 (dec) se suma al valor de D100 en el peldaño 10 para aumentar la velocidad en 1 Hz cuando se recibe el pulso de aumento de velocidad (M4). 100 (dec) se resta del valor de D100 en el peldaño 9 para disminuir la velocidad en 1 Hz cuando se recibe el pulso de disminución de velocidad (M5). Al mismo tiempo, se lleva a cabo la transmisión de datos, es decir, los datos en D100 se escriben en la dirección 8193k del VFD en el renglón 11 para iniciar y detener el motor. HMI Ahora, pasando a la configuración de HMI. Después de seleccionar el modelo de HMI, configure la siguiente configuración como aquí, la configuración de PLC a HMI es en RS232. (Debe configurarlo según el modelo de HMI) Tome cuatro botones momentáneos, asigne las direcciones y diseñe la pantalla de HMI de la siguiente manera: Inicio = M0 Detención = M1 Aumento de la velocidad = M4 Disminución de la velocidad = M5 Prueba del proceso El diseño de la HMI no se trata en este artículo.
  7. xiangjinjiao

    System- und Ortszeit in SPS

    In früheren Artikeln haben wir über Timer in SPS, verschiedene Typen und ihre Verwendung gesprochen. Timer benötigen nicht unbedingt Echtzeit, um zu funktionieren, da sie je nach Ihren Einstellungen nur Sekunden oder Millisekunden zählen. Für einige Anwendungen müssen Sie jedoch das tatsächliche Datum und die tatsächliche Uhrzeit des SPS-Programms kennen, beispielsweise zu Diagnosezwecken. In diesem Artikel sprechen wir über die System- und Ortszeit einer SPS. Inhalt: Warum brauche ich Echtzeit in der SPS? Beispielprogramm und Simulation Was ist Systemzeit? Was ist Ortszeit? Schlussfolgerungen. Warum brauche ich Echtzeit in der SPS? In vielen Anwendungen von SPS müssen Sie aus vielen verschiedenen Gründen die Echtzeit kennen, während der Prozess ausgeführt wird. Im Folgenden sind einige dieser Gründe aufgeführt: Sicherung der SPS auf dem Hauptserver. Für die Diagnose der SPS benötigen Sie eine Zeitaufzeichnung, um zu wissen, zu welcher Zeit ein bestimmtes Ereignis aufgetreten ist. Andernfalls wären die Diagnoseinformationen nicht sehr nützlich. Für Anwendungen, bei denen Sie mit den Tageszeitinterrupts OB10 arbeiten müssen, müssen Sie die tatsächliche Uhrzeit kennen. Möglicherweise müssen Sie in Teilen Ihrer Logik, in denen Sie Echtzeitanwendungen verarbeiten müssen, die Ortszeit oder die Systemzeit verwenden. Für die Datenprotokollierung: Wenn Sie wichtige Daten speichern müssen und den Zeitstempel für jede Datenaufzeichnung benötigen, müssen Sie die richtige Zeiteinstellung für Ihre SPS haben, damit die gespeicherten Daten sinnvoll sind. Beispielprogramm und Simulation einer SPS Um besser zu verstehen, was Systemzeit und Ortszeit in einer SPS sind, erstellen wir zunächst ein sehr einfaches Programm und erklären damit das Konzept der Echtzeit in SPSen. Überprüfen Sie den folgenden Schritt: In diesem Artikel erstellen wir keine SPS-Logik, sondern zeigen einige Konfigurationen, die sich auf die System- und Ortszeit in der SPS beziehen, wie diese eingestellt werden und was die Unterschiede sind. Öffnen Sie das Siemens Tia Portal, fügen Sie ein neues Gerät hinzu und dieses Mal verwenden wir die CPU 1512C-1 PN. Siehe Bild 1. Bild 1 – Neue SPS hinzufügen Kompilieren und starten Sie eine neue SPS-Simulation. Öffnen Sie die Online- und Diagnoseseite und überprüfen Sie die eingestellte Zeit der SPS. Siehe Bild 2. Bild 2 – Onlinezeit der SPS Aus dem vorherigen Bild können Sie erkennen, dass es zwei verschiedene Zeiten gibt: Die PG/PC-Zeit – dies ist die lokale Zeit Ihres PCs selbst. Die Modulzeit – dies ist die tatsächliche Zeit innerhalb der SPS selbst. Beide Zeiten können auf denselben Wert eingestellt werden oder sie können unterschiedlich sein. Am besten ist es, sie gleich zu machen, es ist besser, die Modulzeit ähnlich Ihrer lokalen Zeit zu machen, oder genauer gesagt ähnlich der lokalen Zeit des Gebiets, in dem die SPS verwendet wird. Siehe Bild 3. Bild 3 – Zeit der SPS einstellen Wenn Sie möchten, dass die Modulzeit mit der Ortszeit übereinstimmt, wählen Sie „Von PG/PC übernehmen“ und drücken Sie „Anwenden“. Ziehen Sie in Ihrem Haupt-OB1 die Anweisungen RD_SYS_T und RD_LOC_T per Drag & Drop. Dies sind die Anweisungen zum Lesen der Systemzeit und zum Lesen der Ortszeit. Diese Anweisungen sind integrierte Funktions-FCs in der SPS und werden verwendet, um die Ortszeit und die Systemzeit der SPS an das von Ihnen im Ausgang OUT der Anweisung gewählte Ziel zu schreiben. Siehe Bild 4. Bild 4 – Anweisungen zum Lesen der System- und Ortszeit hinzufügen Fügen Sie einen neuen globalen Datenblock hinzu und definieren Sie einige Tags, mit denen gearbeitet werden soll. Siehe Bild 5. Bild 5 – Einen neuen globalen Datenblock erstellen Führen Sie Ihre Simulation erneut aus und überprüfen Sie beide Male. Siehe Bild 6 Bild 6 – Online-Lokalzeit und Systemzeit der SPS Sie sehen im vorherigen Bild, dass die Lokalzeit und die Systemzeit der SPS gleich sind, sich aber von der tatsächlichen Lokalzeit Ihres PCs unterscheiden. Wie Sie sich erinnern, haben wir die Modulzeit der SPS so eingestellt, dass sie der PG/PC-Zeit ähnelt, also Ihrer Lokalzeit. Siehe Bild 7. Bild 7 – Modulzeit und PG/PC-Zeit Wie Sie sehen, wird auf der Seite „Zeit einstellen“ die Modulzeit so gewählt, dass sie der PG/PC-Zeit entspricht. In tatsächlichen Fällen sind sie jedoch unterschiedlich. Warum? Warum sind die Zeiten unterschiedlich? Da die Standardeinstellung der Lokalzeit der SPS UTC+0 oder Zulu-Zeit ist, wenn Sie mit diesem Begriff vertraut sind, ändern Sie sie nicht auf der Online- und Diagnoseseite, sondern in den Eigenschaften der SPS selbst. Siehe Bild 8. Bild 8 – Tageszeitkonfiguration in einer SPS Wie Sie sehen, ist die Standardeinstellung der SPS-Tageszeit auf UTC+0 eingestellt, und deshalb unterschied sich die Zeit des SPS-Moduls von Ihrer tatsächlichen Ortszeit. Außer wenn Sie tatsächlich in London wären, hätten Sie dieses Problem nicht. Um die lokale SPS-Zeit zu korrigieren, müssen wir das in der Konfiguration ändern, wir müssen die Zeitzone auf die Zeitzone ändern, die wir haben, was in meinem Fall UTC+02:00 ist. Siehe Bild 9. Bild 9 – Anpassen der lokalen SPS-Zeit an Ihre Zeitzone Sie können auch sehen, dass die Sommerzeitoption deaktiviert wurde, da sie in meinem Land nicht verwendet wird. Sie müssen sie aktivieren, wenn sie in Ihrer Region verwendet wird. Nachdem nun alle Konfigurationen richtig eingestellt sind, gehen Sie zurück und sehen Sie sich die lokale Zeit und die Systemzeit erneut in der Simulation an. Siehe Abbildung 10. Abbildung 10 – Die lokale Zeit der SPS ist jetzt dieselbe wie die des PCs Sie sehen nun, dass nach dem Anpassen der SPS-Zeitzone die lokale Zeit der SPS und die tatsächliche lokale Zeit Ihrer Region identisch sind. Wie wir bereits gesagt haben, ist es aus den vielen oben genannten Gründen sehr wichtig, die richtige lokale Zeit der SPS einzustellen. Können Sie nun definieren, was die Systemzeit und die lokale Zeit der SPS ist? Systemzeit in der SPS Ist die Modulzeit der CPU-Uhr. Die CPU-Uhr interpretiert die Modulzeit als koordinierte Weltzeit (UTC). Dementsprechend wird die Modulzeit immer ohne die Faktoren „lokale Zeitzone“ oder „Sommerzeit“ in der CPU-Uhr gespeichert. Die CPU-Uhr berechnet dann aus der Modulzeit die lokale Zeit der CPU-Uhr. Die Modulzeit der CPU-Uhr dient als Vorlage für alle Zeitprozesse, die von der CPU ausgehen. Anwendungsbeispiele: Berechnung der lokalen Zeit der CPU-Uhr aus der Modulzeit Darstellung der Modulzeit in lokaler Zeit unter „Online & Diagnose“ Einträge im Diagnosepuffer der CPU Lokale Zeit in der SPS Informationen über die Zeitzone und den Beginn von Sommer- und Winterzeit, die Sie in der Konfiguration der CPU-Uhr eingestellt haben, werden zur Ausgabe der lokalen Zeit verwendet. Die lokale Zeit ist die Zeit, die Sie auf Ihrem PC oder in Ihrem Land haben und die von Region zu Region unterschiedlich sein kann. Fazit Viele Anwendungen erfordern, dass die SPS die Echtzeit oder lokale Zeit des Prozesses kennt, damit sie bestimmte Aufgaben ausführen kann, z. B. Datenprotokollierung und Diagnoseaufgaben. In einem zukünftigen Artikel zeigen wir einige Anwendungen, bei denen Echtzeit für Ihre Logik erforderlich ist. Die lokale Zeit der SPS sollte manuell konfiguriert werden, damit sie mit dem Bereich übereinstimmt, in dem die SPS verwendet wird.
  8. In früheren Artikeln haben wir verschiedene Arten von Bausteinen im SIEMENS TIA-Portal besprochen, wir haben über Funktionsbausteine FBs, Funktionen FCs und Datenbausteine DBs gesprochen. In diesem Artikel werden wir uns mit einem anderen Bausteintyp in SIEMENS-SPS befassen, nämlich den Organisationsbausteinen, und in diesem Artikel werden wir den wichtigsten Organisationsbaustein von allen besprechen, nämlich den Hauptorganisationsbaustein oder OB1. Inhalt: Was sind Organisationsbausteine? Verschiedene Arten von OBs. Was ist OB1? Zykluszeitüberwachung. Ein einfaches Programmbeispiel. Fazit. Was ist ein Organisationsbaustein (OB)? Organisationsbausteine können Sie sich als Funktionen FCs oder Funktionsbausteine FBs vorstellen. Der Unterschied besteht jedoch darin, dass Sie sie nicht aufrufen, sondern das Betriebssystem der SPS diese Organisationsbausteine aufruft. Ob das Betriebssystem den OB zyklisch als OB1 aufruft oder ob er aufgerufen wird, wenn ein bestimmtes Ereignis eintritt, in jedem Fall kümmert sich das Betriebssystem darum. Sie müssen nur den Block erstellen und die gewünschte Logik in den Block einfügen. Manchmal müssen Sie nicht einmal Code in den OB einfügen. Allein das Erstellen des OB selbst kann viele Vorteile bieten, die wir bei der Erörterung einiger dieser OBs sehen werden. Organisationsblöcke sind die Schnittstelle zwischen dem SPS-Betriebssystem und dem Benutzerprogramm. Jede SPS hat zwei verschiedene Programme, das Laufzeitprogramm, das das Betriebssystem der SPS ist, und das Benutzerprogramm, das die Logik oder den Code darstellt, den der SPS-Programmierer zur Steuerung eines bestimmten Prozesses schreibt. Diese beiden verschiedenen Softwareprogramme müssen miteinander kommunizieren, und dies geschieht über die Organisationsblöcke (OBs). Organisationsblöcke (OBs) werden zum Ausführen vieler Aufgaben verwendet, von denen einige unten aufgeführt sind: Starteigenschaften des Automatisierungssystems Zyklische Programmverarbeitung Interruptgesteuerte Programmausführung Fehlerbehandlung. Verschiedene Arten von Organisationsblöcken Organisationsblöcke sind im Grunde die Werkzeuge des Betriebssystems zum Ausführen vieler Aufgaben. Verschiedene Aufgaben erfordern unterschiedliche OBs, und deshalb gibt es in einer SPS viele verschiedene OBs. Wie viele verschiedene OBs es sind, hängt vom Typ der von Ihnen verwendeten SPS ab. Hier sind jedoch einige der häufigsten OBs, die Sie in fast allen SIEMENS-SPS finden können: Zyklischer Haupt-OB1. Zeitalarm-OBs. Tageszeit-OBs. Softwarefehler-OBs. Hardwarefehler-OBs Viele weitere Organisationsblöcke stehen zur Verwendung mit Ihrer Logik zur Verfügung. Siehe Abbildung 1. Abbildung 1 – Verschiedene Organisationsblöcke, die im TIA-Portal verfügbar sind In diesem Artikel besprechen wir den wichtigsten Organisationsblock von allen, nämlich den zyklischen Haupt-Interrupt-OB1. Zyklischer Haupt-Interrupt-OB1 Der zyklische Haupt-OB1 ist der Organisationsblock, der für die zyklische Ausführung Ihrer Logik durch die SPS verantwortlich ist. Immer wenn Sie ein neues Projekt erstellen und eine SPS hinzufügen, wird der Haupt-OB1 automatisch von der Software erstellt. Dies sind die mindestens erforderlichen Blöcke für einen SPS-Code. Siehe Abbildung 2. Abbildung 2 – Haupt-OB1 wird automatisch erstellt In diesem Haupt-OB1 können Sie entweder Ihr gesamtes SPS-Programm schreiben, wenn es sich um ein kleines Projekt handelt. Wenn Ihr Projekt ziemlich groß ist, haben Sie wahrscheinlich einige Funktionen FCs oder Funktionsblöcke FBs, die Sie ausführen müssen. In diesem Fall verwenden Sie den Haupt-OB1, um sie aufzurufen. Natürlich müssen Sie nicht jeden FC oder FB über den OB1 aufrufen, aber wenn Ihr OB1 nicht der erste Block Ihrer Verschachtelungsaufrufe ist, wird er nicht ausgeführt. Siehe Abbildung 3. Abbildung 3 – Aufrufen Ihrer Blöcke über OB1 Die wesentliche Grundlage Ihres SPS-Codes ist das zyklische Verhalten, d. h. Ihr Code muss kontinuierlich ausgeführt werden. Wenn die Verarbeitung Ihrer Logik abgeschlossen ist, beginnt das Betriebssystem erneut mit der Verarbeitung. Dies geschieht durch die Verwendung des Haupt-OB1. Sie platzieren und rufen Ihre gesamte Logik und Ihren Code in diesem OB1 auf und das Betriebssystem sorgt dafür, dass er kontinuierlich ausgeführt wird. Sie sollten wissen, dass Sie, auch wenn Sie keinen OB1-Block erstellen können, da dieser automatisch beim Hinzufügen einer neuen SPS erstellt wird, mehr als einen zyklischen Interruptblock erstellen können. OB1 ist ein zyklischer Interrupt, den das Betriebssystem automatisch und kontinuierlich aufruft und die darin enthaltene Logik ausführt. Bei großen SPS-Projekten, bei denen Ihre SPS-Logik viele Funktionen und Funktionsblöcke enthält, können Sie jedoch mehr als einen zyklischen Interrupt-OB verwenden, um Ihren Code besser zu strukturieren und ihn leichter lesbar und nachvollziehbar zu machen. In diesem Fall würden Sie einen weiteren zyklischen Interrupt erstellen, siehe Abbildung 4. Abbildung 4 – Erstellen von mehr als einem zyklischen OB Wenn Sie mehrere Programmzyklus-OBs erstellt haben, werden diese nacheinander in der Reihenfolge ihrer OB-Nummern aufgerufen. Der Programmzyklus-OB mit der niedrigsten OB-Nummer wird zuerst aufgerufen. Siehe Abbildung 5. Abbildung 5 – Programmzyklus mit mehr als einem zyklischen OB Nach Abschluss des zyklischen Programms aktualisiert das Betriebssystem die Prozessabbilder wie folgt: Es schreibt die Werte vom Prozessabbild der Ausgänge in die Ausgangsmodule. Es liest die Eingänge an den Eingangsmodulen und überträgt diese in das Prozessabbild der Eingänge. Die beiden vorherigen Schritte sowie die Ausführung des SPS-Programms werden als Scan-Zyklus bezeichnet. Siehe Abbildung 6. Abbildung 6 – Scan-Zyklus einer Siemens-SPS Zykluszeitüberwachung Die Zykluszeit bezieht sich auf die Laufzeit des zyklischen Programms, einschließlich der Laufzeit aller verschachtelten Programmteile wie FCs, FBs und höherpriorer OBs. Wenn Sie mehrere Programmzyklus-OBs erstellt haben, trägt jeder Programmzyklus-OB zur Zykluszeit bei. Das Betriebssystem überwacht, ob die Zykluszeit kleiner als die konfigurierte maximale Zykluszeit bleibt. Wenn die maximale Zykluszeit überschritten wird, wechselt die SPS je nach Programmierung entweder in den STOP-Modus oder ruft OB80 auf. Neben der Überwachung der maximalen Zykluszeit ist es auch möglich, eine minimale Zykluszeit zu garantieren. Dazu verzögert das Betriebssystem den Start eines neuen Zyklus, bis die Mindestzykluszeit erreicht ist. Sie können die Mindest- und Höchstzykluszeit in den Konfigurationseigenschaften Ihrer SPS konfigurieren. Siehe Abbildung 7. Abbildung 7 – Konfigurieren der Mindest- und Höchstzykluszeit Einfaches Programmbeispiel in der SPS Abbildung 8 – SPS-Programmbeispiel Um den SPS-Programmzyklus und die OB1-Ausführung besser zu verstehen, erstellen wir ein einfaches Programm. Dieses Programm verwendet eine Additionsanweisung, die in jedem Scanzyklus einen Wert von 1 in einem Speicherbereich akkumuliert. Siehe die folgende Simulation. Wie Sie in der Animation sehen, wird die Additionsanweisung sehr schnell ausgeführt; so schnell ist der Scanzyklus. Dies hängt davon ab, wie leistungsstark Ihre SPS ist. Aber hauptsächlich liegt der Scanzyklus im Bereich von Millisekunden. Fazit Organisationsblöcke sind die Schnittstelle zwischen dem SPS-Betriebssystem und Ihrem Steuerungsprogramm. Der Haupt-Zyklische-OB1 wird zyklisch vom Betriebssystem ausgeführt. Sie führen Ihre Logik aus, indem Sie sie in einen oder mehrere Zyklische-OBs einbinden. Die Scan-Zykluszeit ist die Zeit, die zum Ausführen Ihrer Logik 1 Mal benötigt wird.
  9. In diesem Artikel sprechen wir über ein großes Problem, das häufig auftritt, wenn Sie mit der Programmierung Ihrer SPS beginnen: die häufigsten Fehler der Firmware-Version und wie Sie diese beheben können. Inhalt: Was ist die Firmware-Version einer SPS? Warum kann die Firmware-Version Probleme verursachen? Wie kann man die Firmware-Version einer Hardware-SPS herausfinden? Wie geht man mit Firmware-Versionsfehlern um? Schlussfolgerungen. Was ist die Firmware-Version einer SPS? Die Firmware einer SPS oder eines SPS-Moduls (IOs, Kommunikationsmodule usw.) ist einfach die interne Software, die in der SPS installiert ist und dafür verantwortlich ist, was die Hardware tatsächlich tun kann. Eine Firmware-Version bestimmt, welche internen Funktionen Ihre SPS hat, wie Sicherheitsprotokolle, interne Optimierungsfunktionen, bessere Zeitverwaltung und andere verschiedene Funktionen und Fähigkeiten. Eine SPS mit einer älteren Firmware-Version hat weniger Funktionen und interne Fähigkeiten als eine SPS mit einer neueren Firmware-Version. Bilder 1 und 2 zeigen Ihnen, wie dieselbe Hardware-SPS mit unterschiedlichen installierten Firmware-Versionen unterschiedliche Funktionen und Leistungsfähigkeit hat. Bild 1 – Firmware-Version V4.0 Bild 2 – Firmware-Version V4.4 Ist Ihnen aufgefallen, dass dieselbe CPU jetzt durch ein Update auf eine höhere Firmware-Version mehr Funktionen erhält? Mit der höheren Firmware V4.4 verfügt die CPU jetzt neben anderen Funktionen über OPC UA, die ihre Leistungsfähigkeit verbessern. Warum kann die Firmware-Version Probleme verursachen? Normalerweise beginnen Sie Ihr SPS-Projekt, indem Sie die SPS auswählen und dann mit der Programmierung beginnen. Sie wählen Ihre SPS im TIA Portal nach einem von zwei Punkten aus: Sie haben die Hardware-SPS bereits gekauft, also wählen Sie dieselbe SPS aus, die Sie tatsächlich im TIA Portal-Projekt haben. Sie haben noch keine SPS gekauft, also wählen Sie im TIA Portal eine SPS aus, die Ihren Anforderungen entspricht, und kaufen sie dann später. In beiden Fällen tritt ein Problem auf, wenn die im TIA Portal-Projekt ausgewählte Firmware-Version der SPS von der Firmware-Version der tatsächlichen Hardware abweicht. Und Ihr Programm wird nicht einmal auf die Hardware-SPS heruntergeladen. Sie sollten also immer sicherstellen, dass die Firmware-Version der tatsächlichen SPS mit der im TIA Portal ausgewählten SPS übereinstimmt. Es ist erwähnenswert, dass Sie keine Probleme mit Ihrem Programm haben, wenn die im TIA Portal ausgewählte Firmware-Version älter ist als die der tatsächlichen SPS. Sie verlieren zwar einige der SPS-Funktionen und -Fähigkeiten, aber Ihr Programm funktioniert einwandfrei. Im Gegenteil treten Probleme auf, wenn die im TIA Portal ausgewählte Firmware-Version neuer ist als die der tatsächlichen SPS. Dann haben Sie ein Problem. Wenn Sie die Firmware-Version Ihrer Hardware nicht kennen, sollten Sie daher im TIA Portal-Projekt die ältere Version auswählen. Wie kann ich die Firmware-Version der Hardware-SPS herausfinden? Wir können die Firmware-Version der Hardware-SPS, die wir haben, auf zwei Arten herausfinden: Von der SPS selbst Die Firmware-Version eines SPS-Moduls ist immer irgendwo auf dem Hardwaregerät vermerkt. Siehe die nächsten Bilder. Bild 3 – Firmware-Version FS:04 Bild 4 – Firmware-Version ist V7.0.5 Von der TIA Portal-Software Mit der TIA Portal-Software können Sie Ihre SPS mit Ihrem TIA Portal verbinden und nach dem Gerät suchen. Anschließend können Sie die Firmware-Version des Hardwaregeräts finden, siehe die folgenden Schritte. Sie müssen nicht einmal ein neues Projekt erstellen; die Projektansicht des TIA Portals reicht aus, siehe Bild 5. Bild 5 – Projektansicht des TIA Portals ohne Erstellung eines Projekts. Suchen Sie über den Online-Zugriff nach Ihrer SPS. Da die Verbindung zwischen TIA Portal und der SPS über ein Ethernet-Kabel erfolgt, verwenden wir die Ethernet-Verbindungsoption. Doppelklicken Sie auf „Erreichbare Geräte aktualisieren“, um mit der Suche nach Ihrer SPS zu beginnen. Siehe Abbildung 6. Abbildung 6 – Aktualisieren Sie erreichbare Geräte, um nach Ihrer SPS zu suchen. Wenn eine Verbindung zwischen der SPS und dem TIA Portal besteht, sollte die Software Ihre SPS finden. Siehe Abbildung 7. Abbildung 7 – Ihre SPS wurde von der Software gefunden. Doppelklicken Sie nun auf „Online & Diagnose“, um die Informationen Ihrer SPS anzuzeigen. Siehe Abbildung 8. Abbildung 8 – Online-Informationen der SPS. Im Attribut „Allgemein“ finden Sie die Firmware-Version Ihrer SPS, wie im vorherigen Bild gezeigt. Sie können die Firmware-Version auch im Attribut „Funktionen“ finden. Siehe Bild 9. Bild 9 – Firmware-Version aus dem Funktionsattribut. Wie gehe ich mit Firmware-Versionsfehlern um? Erstellen wir zunächst ein Firmware-Versionsfehlerszenario und sehen uns dann an, wie dieser Fehler behandelt und behoben wird. Wir beginnen damit, einfach ein neues Projekt zu erstellen und dann ein neues Gerät hinzuzufügen. In diesem SPS-Beispiel wählen wir absichtlich eine neuere Firmware-Version als die tatsächliche Hardware-SPS. Wir wissen, dass unsere SPS-Firmware V4.0 ist, aber im TIA Portal wählen wir die Firmware-Version V4.4. Siehe Bild 10. Bild 10 – Fügen Sie eine neue SPS mit einer höheren Firmware-Version hinzu. Drücken Sie OK, um Ihr Gerät hinzuzufügen, und das war’s. Sie haben eine Situation geschaffen, die einen Firmware-Fehler verursacht. Um das zu sehen, versuchen wir, das Projekt auf unsere SPS herunterzuladen. Beachten Sie, dass wir noch nicht einmal Code geschrieben haben. Laden Sie ihn einfach auf die SPS herunter. Siehe Bild 11. Bild 11 – Download auf die SPS fehlgeschlagen, inkompatible Firmware. Wie Sie im vorherigen Bild sehen, wird beim Versuch, das Projekt auf die SPS herunterzuladen, ein Fehler angezeigt, der besagt, dass die Firmware-Versionen der SPS und des TIA Portals nicht übereinstimmen. Sie können es sogar sehen, wenn Sie versuchen, online zu gehen. Siehe Bild 12. Bild 12 – Die SPS befindet sich in einem Fehlerzustand. Um diesen Fehler zu beheben, müssen wir einfach die Firmware-Version der im TIA Portal-Projekt ausgewählten SPS auf eine ältere oder dieselbe Firmware wie die tatsächliche Hardware-SPS ändern. Dazu gehen wir auf die Eigenschaftenseite der SPS und wählen im Attribut „Allgemein“ die Option „Firmware-Version ändern“. Siehe Bild 13. Bild 13 – Option „Firmware-Version ändern“. Sobald Sie die Schaltfläche „Firmware-Version ändern“ drücken, wird ein Fenster zum Ändern des Geräts angezeigt. In diesem Fenster können Sie die Firmware-Version ändern. Siehe Bild 14. Bild 14 – Fenster „Gerät ändern“. Im Fenster „Gerät ändern“ sehen Sie das aktuelle Gerät, das Sie zuvor ausgewählt haben, und das neue Gerät, dessen Firmware Sie an Ihre aktuelle Version anpassen müssen. Beachten Sie, dass bei Auswahl einer niedrigeren Firmware, z. B. V4.3, die Informationen am unteren Rand des Fensters Ihnen zeigen, welche Funktionen Sie beim Wechsel zu einer niedrigeren Firmware verloren haben, wie Sie im vorherigen Bild sehen. Ändern Sie nun die Firmware des neuen Geräts auf die Version V4.0 der Hardware-SPS. Und beachten Sie, wie viele Funktionen und Fähigkeiten die SPS allein durch die Auswahl einer niedrigeren Firmware verloren hat. Siehe Bild 15. Bild 15 – Anpassen der Firmware zwischen Hardware-SPS und Software. Drücken Sie OK, um die Änderungen zu bestätigen, und versuchen Sie nun, Ihr Projekt erneut auf die SPS herunterzuladen. Sie werden feststellen, dass das Projekt jetzt ohne Fehler auf die SPS geladen wird. Siehe Bild 16. Bild 16 – Das Projekt wird in die SPS geladen. Ein erfolgreiches Laden des Projekts auf die SPS zeigt an, dass der Firmware-Versionsfehler nun behoben ist. Sie können auch online gehen und dies in der Online-Ansicht des SPS-Projekts überprüfen. Siehe Abbildung 17. Abbildung 17 – Online-Ansicht des Projekts. Die grünen Häkchen und Kreise, die Sie im vorherigen Bild sehen, zeigen an, dass alle Konfigurationen der Software und der Hardware übereinstimmen und miteinander kompatibel sind. Fazit Firmware-Versionsfehler sind ein sehr häufiges Problem beim Erstellen eines neuen Projekts im TIA Portal. Eine bewährte Vorgehensweise besteht darin, die Firmware-Version des Hardwaregeräts zu kennen und die Firmware davon mit dem ausgewählten Gerät im TIA Portal abzugleichen. Wenn Sie die Firmware des Hardwaregeräts nicht kennen, sollten Sie die älteste Version des ausgewählten Moduls im TIA Portal auswählen. So vermeiden Sie Firmware-Probleme mit Ihrem Projekt.
  10. SPS-Programmierung zur Steuerung der Förderbandrichtung: Ermöglichung der Vorwärts- oder Rückwärtsbewegung basierend auf der erkannten Teilegröße. Identifizieren Sie die Größe jedes Teils und stellen Sie seine Verteilung an den vorgesehenen Ort sicher. Erweiterte SPS-Förderbandsteuerung Der Trichter liefert Objekte unterschiedlicher Größe, wenn der Bediener den Druckknopf drückt. Anschließend werden die Förderbänder und Sensoren verwendet, um die Objekte basierend auf ihrer Größe zu trennen. Ein Schieber wird verwendet, um zwei verschiedene Objektgrößen zu trennen. Das Förderband kann sich vorwärts und rückwärts bewegen, um die Objekte gemäß ihren dafür vorgesehenen Lagerfächern zu platzieren. Ein Roboter wird verwendet, um die Objekte aufzunehmen und in mittelgroße Kartons zu legen. Die folgende Simulation zeigt die SPS-Förderbandsimulation mit unterschiedlichen Kartongrößen. SPS-Ein- und Ausgänge Die folgende Tabelle listet die Ein- und Ausgänge dieses SPS-Projekts auf. Typ Gerätenr. Gerätename Betrieb Eingang X0 Oberer, höher EIN, wenn das Teil erkannt wird. Eingang X1 Mitte EIN, wenn das Teil erkannt wird. Eingang X2 Senken EIN, wenn sich der Roboter am Startpunkt befindet. Eingang X3 Teil erkennen EIN, wenn das Teil vor dem Schieber erkannt wird. Eingang X4 Startpunkt Das Förderband bewegt sich vorwärts, wenn Y1 EIN ist. Eingang X5 Teil auf Tisch EIN, wenn das Teil auf dem Tisch ist. Eingang X6 Roboterbetrieb beendet EIN, wenn das Teil auf der Schräge erkannt wird. Eingang X7 Sensor EIN, wenn das Teil am rechten Ende erkannt wird. Eingang X10 Sensor EIN, wenn das Teil am linken Ende erkannt wird. Eingang X11 Sensor EIN, wenn das Teil am rechten Ende erkannt wird. Eingang X12 Sensor EIN, wenn der Roboterbetrieb beendet ist. Ausgang Y0 Versorgungskommando Ein Teil wird geliefert, wenn Y0 eingeschaltet ist: Holzteil wiederholt sich in der Reihenfolge L, M, S, M, S, L. Ausgang Y1 Förderband vorwärts Das Förderband bewegt sich vorwärts, wenn Y2 EIN ist. Ausgang Y2 Förderband vorwärts Fährt aus, wenn Y3 EIN ist, und ein, wenn Y3 AUS ist. Der Schieber kann nicht mitten im Hub angehalten werden. Ausgang Y3 Schieber Der Roboter bewegt das Teil zum Behälter, wenn Y4 eingeschaltet ist. Ein Prozesszyklus beginnt. Ausgang Y4 Entladebefehl Das Förderband bewegt sich vorwärts, wenn Y5 eingeschaltet ist. Ausgang Y5 Förderband vorwärts Das Förderband bewegt sich rückwärts, wenn Y6 eingeschaltet ist. Ausgang Y6 Förderband rückwärts Das Förderband bewegt sich rückwärts, wenn Y6 eingeschaltet ist. Programmbeschreibung Wenn der Druckknopf PB1 (X20) auf dem Bedienfeld gedrückt wird, aktiviert er den Zufuhrbefehl (Y0) für den Trichter. Sobald Sie den Druckknopf PB1 loslassen, wird der Zufuhrbefehl deaktiviert. Immer wenn der Zufuhrbefehl aktiviert ist, gibt der Roboter ein Teil aus. Wenn der Schalter SW1 (X24) auf dem Bedienfeld aktiviert wird, beginnen die Förderbänder, sich vorwärts zu bewegen. Sobald Sie SW1 deaktivieren, halten die Förderbänder an. Die Förderbänder transportieren große, mittlere und kleine Teile, die jeweils von den oberen (X0), mittleren (X1) und unteren (X2) Sensoren sortiert werden, zu bestimmten Behältern. Großes Teil: Wird zum unteren Förderband geleitet und in das Tablett rechts geliefert. Mittleres Teil: Wird vom Roboter in das Tablett gelegt. Kleines Teil: Wird zum unteren Förderband geleitet und in das Tablett links geliefert. Wenn der Sensor „Teil erkennen“ (X3) aktiviert wird, stoppt das Förderband und ein großes oder kleines Teil wird zum unteren Förderband geleitet. Hinweis: Wenn der Betätigungsbefehl für den Schieber eingeschaltet ist, fährt dieser vollständig aus. Wenn der Betätigungsbefehl ausgeschaltet ist, fährt der Schieber vollständig ein. Wenn der Sensor „Teil auf dem Tisch“ (X5) im Roboter aktiviert ist, wird der Befehl „Entladen“ (Y4) aktiviert. Wenn der Roboterbetrieb beendet ist, wird der Sensor (X6) aktiviert (er wird aktiviert, wenn ein Teil auf das Tablett gelegt wird) und der Befehl „Entladen“ (Y4) wird deaktiviert. Solange der Schalter SW2 (X25) auf dem Bedienfeld eingeschaltet ist, wird in den folgenden Szenarien automatisch ein neues Teil zugeführt: Wenn der Roboter beginnt, ein mittleres Teil zu handhaben Wenn ein kleines oder großes Teil in ein Tablett abgelegt wird SPS-Programmierung – Steuerung der Vorwärts- und Rückwärtsdrehung des Förderbands
  11. Die Drehzahlregelung des Induktionsmotors ist nur mit Frequenzumrichtern möglich. Grundsätzlich gibt es drei verschiedene Modi, mit denen wir die Drehzahl eines Induktionsmotors regeln können. Mithilfe eines digitalen Signals Mithilfe eines analogen Signals von 0 bis 10 V / 0 bis 5 V / 4 bis 20 mA / 0 bis 20 mA usw. Mithilfe der Modbus-Kommunikation, egal ob im RTU-Modus oder im TCP/IP-Modus Drehzahl des Induktionsmotors In diesem Beitrag verwenden wir ein analoges Eingangssignal mit einem Bereich von 0 bis 20 mA, um die Drehzahl des Motors zu regeln. Dieser Artikel zeigt, wie die Drehzahl des Motors mithilfe des analogen Ausgangs der SPS geregelt wird. Sehen Sie sich das folgende Schema an, um einen Überblick zu erhalten. Um die Drehzahl des Motors zu ändern, wird ein analoges Ausgangssignal von 0 bis 20 mA von der SPS an den analogen Eingangsanschluss des VFD gesendet. Die Geschwindigkeit variiert von 0 bis 50 Hz, während die Milliampere von 0 auf 20 steigen. In diesem Thema verwenden wir sechs einzigartige analoge Ausgangspunkte der intelligenten SPS S7 200, um die Geschwindigkeit von sechs Motoren zu steuern. (Jeder Motor hat einen individuellen VFD entsprechend der Motorleistung). Die hier verwendete SPS ist die Siemens CPU ST60 der S7 200 Smart-Serie mit zwei damit gekoppelten analogen Ausgangsmodulen EM AQ04, während das VFD-Modell die ATV310-Serie von Schneider Electric ist. Die Siemens-HMI kommuniziert mit der CPU ST60, um die Geschwindigkeit der Motoren über ihren Bildschirm zu variieren. Vor der SPS-Logik sehen Sie sich die Hardwarekonfiguration und die Verbindungsdetails unten an: Die oben genannten analogen Ausgangsmodule werden der CPU ST60 hinzugefügt. Jeder analoge Eingangspunkt der VFDs empfängt ein 0- bis 20-mA-Signal von verschiedenen analogen SPS-Ausgangspunkten. Sehen Sie sich nun die Parameterdetails des ATV310-VFD-Antriebs an. 401: 01 (Referenzkanal 1) 204.0: 0A (AI1-Typ) 204.1: 4 mA (AI1-Stromskalierungsparameter von 0 %) 204.2: 20 mA (AI1-Stromskalierungsparameter von 100 %) Außerdem müssen die Motorparameter in Gruppe Nr. „300“ entsprechend der Motorleistung eingestellt werden. Das analoge Ausgangsmodul wird auch DA-Modul oder Digital-Analog-Modul genannt. Gemäß dieser Anweisung wird ein digitaler Wert gemäß der Konfigurationseinstellung in Milliampere oder Spannung umgewandelt. Verschiedene SPS haben verschiedene digitale Werte, die in ein analoges Spannungs- oder Milliamperesignal umgewandelt werden können. Die Siemens S7 200-Serie verwendet 0 für 0 Milliampere und 27648 für 20 Milliampere. Gemäß Parameternummer „204.1“ müssen wir den digitalen Wert bestimmen, bei dem der Ausgangspunkt etwa 4 mA ausgibt. Mithilfe der Hit-and-Miss-Methode haben wir den Wert als „5559“ ermittelt, bei dem wir ungefähr 4 Milliampere erhalten haben. Gemäß der obigen Diskussion würde die Frequenz irgendwo zwischen 0 und 50 Hz liegen, und die Milliampere in der SPS werden als digitale Werte dargestellt. Wenn eine bestimmte Frequenz von der HMI eingespeist wird, ist eine gewisse Skalierung erforderlich, um die tatsächliche Frequenz zu erhalten. Daher können wir diese digitalen Werte als „unskalierte“ Werte bezeichnen. Um diese unskalierten Werte nun in skalierte umzuwandeln, gibt es unten eine Formel: OSH = 27648,0 (Unskalierter digitaler Wert zur Ausgabe eines 20 mA Analogsignals) OSL = 5559,0 (Unskalierter digitaler Wert zur Ausgabe eines 4 mA Analogsignals) ISL = 0 (Untergrenze der Frequenzausgabe in Hz) ISH = 50 (Obergrenze der Frequenzausgabe in Hz) „Input“ ist die Variable zur Einstellung der Motordrehzahl über die HMI. „Ausgabe“ ist der skalierte digitale Wert Setzen Sie diese Werte nun in die Formel ein und werten Sie sie weiter aus: Ausgabe = [(27648,0 – 5559,0) *(Eingabe – 0)/ (50 – 0)] + 5559,0 Ausgabe = [22089,0*Eingabe /50] + 5559,0 Ausgabe = [441,78*Eingabe] + 5559,0 Bevor Sie die Gleichung in der Leiterlogik auswerten, gehen Sie die Konfigurationseinstellungen für die analoge Ausgabe in der SPS-Software unten durch: Klicken Sie in Schritt 7 der MicroWin Smart-Software auf die hervorgehobene Option „Systemblockeinstellungen“, die in der Leiste „Projektbaum“ verfügbar ist. Konfigurieren Sie in den Systemblockeinstellungen alle Kanäle der ersten AQ04-Karte und den 3. und 4. Kanal der zweiten AQ04-Karte mit dem aktuellen Typ, wie hervorgehoben. SPS-Programmierung zur Drehzahlregelung von Induktionsmotoren mit analogem Ausgang Netzwerk 1: VD200 speichert den Eingangswert oder den Variablenwert, der von der HMI in Form von Frequenz oder Hz eingestellt wird. Er wird dann mit 441,78 multipliziert und in VD204 gespeichert. Der Wert in VD204 wird dann mit 5559 addiert und in VD208 gespeichert. Der Wert in VD208 ist ein ausgewerteter skalierter Ausgangswert im Realformat. Der Bruchteil des Wertes in VD208 wird verworfen und der ganzzahlige Teil wird mit der Anweisung „TRUNC“ im Double-Integer-Format in VD276 gespeichert. Danach speichert MW4 diesen Double-Integer-Wert im Integer-Format. Dieser Wert wird nun an die Adresse des ersten Kanals des AQ04-Moduls, AQW16, übertragen. Beispiel: Wenn VD200 = 41,5 Hz von HMI eingespeist wird, dann ist VD208 = [441,78*41,5] + 5559,0 = 23892,87. Um 41,5 Hz zu erreichen, müssen also 23892 in Form einer Ganzzahl in MW4 gespeichert werden. Gemäß dem Netzwerkkommentar wird der erste Kanal verwendet, um die Geschwindigkeit des Motors (Loader) in einer der Anwendungen zu variieren. In ähnlicher Weise werden die Netzwerke 2 bis 6 aufgebaut, um die Geschwindigkeit anderer Motoren und Lüfter von ihren jeweiligen Kanälen der EQ04-Module aus zu variieren, wobei VD212, VD224, VD236, VD248 und VD260 als Sollwerte für die variable Geschwindigkeit verwendet werden. Gemäß den Verdrahtungsverbindungen verwendet das zweite EQ04-Modul den dritten und vierten Kanal; daher lauten die verwendeten Adressen AQW36 und AQW38. Weitere Informationen finden Sie unter Systemblockkonfiguration.
  12. In einem früheren Artikel haben wir über den PUT-Befehl gesprochen und wie wir ihn verwenden, um zwischen zwei SPSen zu kommunizieren, egal ob sie sich im selben Projekt oder in zwei verschiedenen Projekten befinden. In diesem Artikel sprechen wir über den GET-Befehl, der für das Siemens-SPS-zu-SPS-Kommunikationsprojekt zum Datenaustausch verwendet wird. Was ist der GET-Befehl? Genau wie der Put-Befehl ist ein GET-Befehl ein in TIA Portal integrierter Funktionsblock FB, der ausschließlich für CPUs der S7-Familie verwendet wird, um Daten von einer Remote-Partner-SPS zu einer lokalen SPS zu übertragen. Im Gegensatz zum PUT-Befehl überträgt der GET-Befehl Daten von der SPS_2 in die SPS_1, anstatt sie von der SPS_1 in die SPS_2 zu übertragen. Wenn ich den GET-Befehl verwende, hätte ich zwei SPSen, wobei ich Daten von einer SPS namens Partner zu einer anderen SPS namens Lokal übertragen muss. Die lokale SPS ist der Ort, an dem der GET-Befehl programmiert wird. Zusätzlich zu einer Profinet-Verbindung zwischen den beiden SPSen. An der Partner-SPS müssen einige Konfigurationen vorgenommen werden, damit die andere SPS darauf zugreifen kann. Wir erstellen ein Beispielprojekt, um zu zeigen, wie der GET-Befehl verwendet wird. Siemens-SPS-zu-SPS-Kommunikationsprojekt Wir gehen von einem Beispielprojekt aus, in dem wir zwei SPS im selben Projekt haben, SPS_1, die als lokale SPS fungiert, und SPS_2, die die Partner-SPS ist. Um eine Situation zu schaffen, in der wir den GET-Befehl verwenden müssen, gehen wir davon aus, dass wir eine Ganzzahl von der Partner-SPS_2 zur lokalen SPS_1 lesen/abrufen möchten. Erstellen wir zunächst ein neues Projekt und fügen die beiden SPS hinzu. Siehe Bild 1. Bild 1. Erstellen Sie ein neues Projekt und fügen Sie zwei SPS hinzu. Jetzt müssen wir die Partner-SPS_2 konfigurieren, um den GET-Zugriff von SPS_1 zu ermöglichen. Wir müssen auch die Daten vorbereiten, die von SPS_2 in SPS_1 verschoben werden. Zuerst müssen wir den Zugriff des GET-Befehls auf PLC_2 zulassen, der die Daten bereitstellen wird. Siehe Abbildung 2. Abbildung 2. Zugriff des GET-Befehls zulassen. Wie Sie auf der Abbildung sehen, erlauben wir dem GET-Befehl den Zugriff auf PLC_2 über die Eigenschaften von PLC_2. Klicken Sie in der Option „Schutz und Sicherheit“ auf „Zugriff mit PUT/GET-Kommunikation vom Remote-Partner zulassen“. Jetzt darf ich mit dem GET-Befehl Daten vom Partner PLC_2 lesen/abrufen. ALS NÄCHSTES möchten wir die Daten erstellen, die auf PLC_1 verschoben werden. Wir gehen davon aus, dass PLC_1 eine Ganzzahl von PLC_2 abrufen möchte. Wir definieren ein Ganzzahl-Tag mit dem Namen „SendDataToPLC_1“. Dieses Ganzzahl-Tag wird von PLC_2 in PLC_1 gelesen. Siehe Abbildung 3. Abbildung 3. Zu PLC_1 zu verschiebende Daten definieren Und das ist es; Dies ist die gesamte Konfiguration, die Sie von der PLC_2-Seite aus vorbereiten müssen, um Daten über den GET-Befehl empfangen zu können. JETZT gehen wir zu PLC_1. In PLC_1 möchten wir eine Logik erstellen, in der wir den GET-Befehl verwenden, um Daten von PLC_2 zu lesen. Wie im letzten Artikel ziehen wir den GET-Befehl einfach per Drag & Drop in unseren Main OB1. Siehe Bild 4. Bild 4. Ziehen und Ablegen des GET-Befehls Beachten Sie, dass sich der GET-Befehl im S7-Kommunikationsordner befindet, da er eine exklusive Funktion für SPS der S7-Familie ist, da er Sicherheitsprobleme beinhaltet. Denken Sie daran, dass sich in Bild 2, als wir die Verwendung des GET-Befehls erlaubten, dieser im Attribut „Sicherheit und Schutz“ der SPS-Eigenschaften befand, da er mit der Sicherheit und dem Schutz der SPS zusammenhängt. Wenn Sie den GET-Befehl per Drag & Drop in Ihren Ordner ziehen, werden Sie aufgefordert, eine Datenblockinstanz zu erstellen, da der GET-Befehl im Wesentlichen ein Funktionsblock-FB ist. Siehe Bild 5. Bild 5. Erstellen Sie eine Dateninstanz für den GET-Befehl. Nachdem wir nun den GET-Befehl zu unserer Logik hinzugefügt haben, müssen wir mit der Konfiguration des GET-Blocks beginnen, wie wir es zuvor mit dem Put-Befehl getan haben. Um die Konfigurationsansichten des GET-Befehls zu öffnen, drücken Sie auf das kleine blaue Symbol oben auf dem Block. Siehe Bild 6. Bild 6. Konfigurationsansicht öffnen. Wir müssen zwei Hauptparameter konfigurieren, den Verbindungsparameter und den Blockparameter. Siehe Bild 7. Bild 7. GET-Blockkonfiguration. Wie Sie auf dem Bild sehen können, ist die lokale SPS die SPS, von der der GET-Befehl aufgerufen wird. Während die Partner-SPS diejenige ist, die die Daten liefert, ist es auch dieselbe, für die wir den GET-Zugriff zugelassen haben. In unserem Projekt ist die Partner-SPS PLC_2. Sie können auch auf dem Bild sehen, dass das Partnerfeld leer ist und wir die SPS auswählen müssen. Siehe Bild 8. Bild 8. Unterschiedliche Option in der Partnerliste Wie Sie sehen, haben wir zwei verschiedene Optionen zur Auswahl für die Partner-SPS. Nicht angegeben ist, wenn die SPSen aus unterschiedlichen TIA Portal-Projekten stammen und wenn die SPSen aus demselben TIA Portal-Projekt stammen, dann finden Sie die andere SPS in der Liste. Wenn Sie die Option PLC_2 wählen, da sich unsere SPSen im selben Projekt befinden, wird die Verbindungskonfiguration automatisch ausgefüllt. Siehe Bild 9. Bild 9. PLC_2 als Partner Da sich beide SPS im selben Projekt befinden, werden alle Verbindungsparameter automatisch ausgefüllt, wenn ich die Option SPS_2 wähle. Wenn die Partner-SPS hingegen aus einem anderen Projekt stammt, wähle ich die Option „Nicht angegeben“ und muss in diesem Fall einige Daten wie die IP-Adresse der Partner-SPS eingeben. Siehe Abbildung 10. Abbildung 10. Partner-SPS als nicht angegeben. Wie Sie sehen, müssen Sie, wenn der Partner nicht angegeben ist, einige Informationen wie die IP-Adresse der Partner-SPS manuell hinzufügen. Sie können auch sehen, dass wir der lokalen SPS_1 ein Subnetz hinzufügen müssen. Gehen Sie dazu einfach zu den Profinet-Eigenschaften der SPS_1 und wählen Sie „Neues Subnetz hinzufügen“. Siehe Abbildung 11. Abbildung 11. Subnetz für SPS_1 hinzufügen Nachdem Sie der SPS_1 ein neues Subnetz hinzugefügt haben, ist die Konfiguration der Verbindungsparameter abgeschlossen. Siehe Bild 12. Bild 12. Verbindungsparameter sind abgeschlossen. Die nächste Konfiguration, um die wir uns kümmern müssen, ist der Blockparameter. Im Blockparameter definieren wir die Daten, die zwischen den beiden SPSen verschoben werden, und auch das Triggersignal, das den Start der Ausführung des GET-Blocks ermöglicht. Siehe Bild 13. Bild 13. Blockparameter. Wie Sie sehen, müssen wir das Triggersignal für den GET-Block definieren und wir müssen auch definieren, welche Daten von PLC_2 verschoben werden (Lesebereich ADDR_1) und wohin diese Daten gehen (Speicherbereich RD_1). Wir haben ADDR_1 bereits zuvor definiert, das ist das SendDataToPLC_1-Integer-Tag, das wir in PLC_2 definiert haben. JETZT definieren wir den Speicherbereich für dieses Integer-Tag und das Triggersignal. Siehe Bild 14. Bild 14. Triggersignal und Speicherbereich definieren Nachdem wir das Triggersignal, ADDR_1 und RD_1 definiert haben, werden wir diese Parameter in die Blockkonfiguration eintragen. Siehe Bild 15. Bild 15. Blockparameter eintragen Jetzt ist die Konfiguration des GET-Blocks abgeschlossen und Sie können sehen, dass der Block nun zum Herunterladen und Ausführen bereit ist. Siehe Bild 16. Bild 16. GET-Block Der GET-Block ist jetzt konfiguriert und sobald das Triggersignal aktiv ist, wird der Block ADDR_1 von PLC_2 lesen und in RD_1 in PLC_1 schreiben.
  13. Im vorherigen Artikel haben wir darüber gesprochen, wie man mithilfe von Open User Communication eine Verbindung zwischen zwei SPS herstellt, und wir haben das TCP-Protokoll verwendet, um eine Verbindung zwischen zwei SPS herzustellen. Wir haben im Artikel gezeigt, wie man Anweisungen wie TCON und TDISCON verwendet, um diese Verbindung herzustellen. Daten zwischen SPS verschieben In diesem Artikel zeigen wir, wie wir mit dem Verschieben von DATEN zwischen den SPS beginnen können, die wir im letzten Artikel verbunden haben. Wir werden zu diesem Zweck die Blöcke TSEND und TRCV verwenden. Daten an SPS_2 senden Wir werden auf dem Projekt aufbauen, das wir im letzten Artikel erstellt haben, was bedeutet, dass die Blöcke TCON und TDISCON bereits in unserem Projekt installiert sind. Und wir werden unser Projekt fortsetzen, indem wir die Blöcke TSEND und TRCV hinzufügen, um mit dem Verschieben von Daten zwischen den beiden SPS zu beginnen. Um Daten von SPS_1 an SPS_2 zu senden, beginnen wir mit der Erstellung eines Datenblocks, der alle Informationen enthält, die wir an SPS_2 senden müssen. Siehe Bild 1. Bild 1. Erstellen Sie einen neuen Datenblock. Wie wir bereits besprochen haben, ist es besser, Ihren Blöcken einen geeigneten Namen zu geben, damit Sie leicht und intuitiv herausfinden können, wofür die einzelnen Blöcke gedacht sind. Zweitens fügen wir dem Datenblock einige Daten hinzu, die wir an PLC_2 senden möchten. Wir sind davon ausgegangen, dass wir drei verschiedene Daten-Tags senden müssen. Siehe Bild 2. Bild 2. Definieren Sie einige Daten, die an PLC_2 gesendet werden sollen. Um den gerade erstellten Datenblock an PLC_2 senden zu können, müssen wir noch etwas tun: Wir müssen sicherstellen, dass der optimierte Blockzugriff des Datenblocks nicht ausgewählt ist. Dazu müssen wir zu den Eigenschaften des Datenblocks gehen und diese Option deaktivieren. Siehe Bilder 3 und 4. Bild 3. Gehen Sie zu den Eigenschaften des Datenblocks. Bild 4. Deaktivieren Sie die Option „Optimierter Blockzugriff“. Achten Sie darauf, diese Option zu deaktivieren, bevor Sie den TSEND-Block verwenden, da sie sonst nicht funktioniert. Nachdem wir nun die Daten vorbereitet haben, die wir an PLC_2 senden möchten, versuchen wir, sie tatsächlich zu senden. Wir werden das mithilfe des TSEND-Blocks tun. Ziehen Sie die Anweisung einfach per Drag & Drop in Ihren Haupt-OB1, um sie Ihrer Logik hinzuzufügen. Siehe Bild 5. Bild 5. TSEND-Block hinzufügen. Wenn Sie den TSEND-Block hinzufügen, werden Sie aufgefordert, einen Instanzdatenblock zu erstellen, da es sich im Wesentlichen um einen Funktionsblock handelt. Geben Sie ihm erneut einen richtigen Namen. Siehe Bild 6. Bild 6. Dateninstanz für TSEND erstellen. Wenn der TSEND-Block Ihrer Logik hinzugefügt wird, werden Sie feststellen, dass wir einige wichtige Konfigurationen vornehmen müssen. Siehe Bild 7. Bild 7. Der TSEND-Block. Wie Sie sehen, müssen wir einige Konfigurationen vornehmen: Das REQ-Signal, um das Senden der Daten zu ermöglichen. Für das REQ-Signal definieren wir ein Tag SendData, das zum Aktivieren des Sendens der Daten verwendet wird. ID der Verbindung, die ich zum Senden der Daten verwenden werde, da ich mehr als eine Verbindung haben kann, muss ich also zuweisen, welche Verbindung verwendet wird. Im letzten Artikel haben wir die ID 1 für die Verbindung zwischen PLC_1 und PLC_2 definiert, also setzen wir die ID auf 1. DATA, die ich senden muss. Wir haben bereits einen Datenblock mit allen Informationen erstellt, die ich senden muss, wir können den Datenblock einfach per Drag & Drop in den TSEND-Block ziehen. Siehe Bild 8. Bild 8. Konfigurieren Sie den TSEND-Block. Daten von PLC_1 empfangen Nachdem wir TSEND zum Senden der Daten an PLC_2 eingerichtet haben, müssen wir diese Daten innerhalb von PLC_2 empfangen. Dazu verwenden wir den TRCV-Block. Siehe Bild 9. Bild 9. TRCV-Block hinzufügen. Wie Sie sehen, fügen Sie den TRCV-Block einfach per Drag & Drop in Ihre Logik ein. Und Sie wissen, dass wir als Nächstes eine Dateninstanz für diesen Block erstellen müssen. Siehe Bild 10. Bild 10. Dateninstanz zum TRCV-Block hinzufügen. Nachdem der TRCV-Block in Ihre Logik aufgerufen wurde, müssen wir einige Parameter konfigurieren, wie wir es mit TSEND getan haben. Siehe Bild 11. Bild 11. Der TRCV-Block. Wie Sie sehen, ist EN-R ein Aktivierungssignal, das erfüllt sein muss, damit der TRCV-Block mit dem Empfangen der Daten beginnen kann. Die ID ist die Verbindung, die verwendet wird, und DATA ist der Ort, an dem die empfangenen Daten gespeichert werden. Wir müssen also einen Datenblock erstellen, um die darin enthaltenen Daten zu empfangen. Denken Sie daran, ihm einen richtigen Namen zu geben. Siehe Abbildung 12. Abbildung 12. Erstellen Sie einen Datenblock zum Empfangen von Daten. Definieren Sie als Nächstes die Informationstags, die von PLC_1 empfangen werden. Es empfiehlt sich, sicherzustellen, dass der Datenblock dieselbe Datenstruktur aufweist wie die Daten, die empfangen werden. Siehe Abbildung 13. Abbildung 13. Definieren Sie Datentags. Für EN-R definieren wir ein RecieveData-Tag, um den Datenempfang zu aktivieren. Und für die Verbindungs-ID ist es 1, wie wir es zuvor eingerichtet haben. Siehe Bild 14. Bild 14. EN-R-Signal. Als Nächstes ziehen Sie den von uns erstellten Datenblock per Drag & Drop in unseren TRCV-Block, um alle Konfigurationen abzuschließen. Siehe Bild 15. Bild 15. Fügen Sie Ihren Datenblock in den TRCV-Block ein. Wenn Sie den von uns erstellten DB per Drag & Drop verschieben, werden Sie feststellen, dass TIA Portal eine Warnung ausgibt und den gerade hinzugefügten Datenblock nicht akzeptiert. Und das liegt daran, dass wir „Optimierter Blockzugriff“ des Datenblocks nicht deaktiviert haben, wie wir es bei TSEND getan haben. Siehe Abbildung 16. Abbildung 16. Optimierter Blockzugriff. Wie bereits erwähnt, müssen wir diese Option deaktivieren, da TSEND und TRCV sonst nicht funktionieren. Siehe Abbildung 17. Abbildung 17. Deaktivieren Sie die Option „Optimierter Blockzugriff“. Sie können sehen, dass der Datenblock jetzt mit der TRCV-Anweisung akzeptiert wird, nachdem wir „Optimierter Blockzugriff“ deaktiviert haben. Nachdem nun der Aufruf und die Konfiguration der TSEND- und TRCV-Blöcke abgeschlossen sind, simulieren wir unser Projekt und sehen, wie die Daten gesendet und empfangen werden. Zuerst erstellen wir eine einfache Logik, die sicherstellt, dass Datenwerte für unsere definierten Tags vorhanden sind. Einfache Logik zum automatischen Erstellen von Datenwerten Wir erstellen eine einfache Logik zum automatischen Erstellen und Aktualisieren der Datenwerte, damit der Datentransfer zwischen den beiden SPSen leichter zu erkennen ist. Siehe Abbildung 18. Abbildung 18. Einfache Logik. Diese einfache Logik verwendet das Taktbit %M50.5, um die Werte der im Datenblock SendToPLC_2 gespeicherten Daten automatisch zu ändern. Simulation des SPS-Projekts Kompilieren wir unser Projekt und starten eine Simulation. Als Erstes müssen wir die Verbindung zwischen den beiden SPSen mithilfe des TCON-Blocks herstellen, den wir im letzten Artikel konfiguriert haben. Denken Sie daran, dass wir die Verbindungsfunktion von SPS_2 aktivieren und die Verbindung mit SPS_1 herstellen müssen. Siehe Bilder 19, 20 und 21. Bild 19. Keine Verbindung zwischen den SPSen Bild 20. Verbindung aktivieren. Bild 21. Verbindung herstellen. Nachdem wir nun die Verbindung zwischen den beiden SPSen hergestellt haben, verschieben wir die Daten von SPS_1 nach SPS_2, wie wir sie eingerichtet haben. Setzen Sie zuerst das Tag SendData auf TRUE. Siehe Bild 22. Bild 22. Das Signal REQ ist wahr. Sie können sehen, dass, obwohl SendData TRUE ist, keine Daten von SPS_1 an SPS_2 gesendet wurden. Und das liegt daran, dass der TRCV-Block noch nicht aktiviert ist, um Daten zu empfangen. Siehe Bild 23. Bild 23. EN-R-Signal ist falsch. Wie Sie sehen, ist der TRCV-Block nicht aktiviert, um Daten zu empfangen, da RecieveData noch nicht TRUE ist. Sobald EN-R wahr ist, werden die Daten vom Datenblock in PLC_1 in den Datenblock von PLC_2 gesendet. Siehe Bild 24. Bild 24. EN-R-Signal ist wahr. Sobald EN-R wahr ist, können Sie sehen, dass die Daten von PLC_1 in PLC_2 verschoben werden. Wenn Sie das Projekt öffnen und es selbst simulieren, werden Sie feststellen, dass die Daten in PLC_1 kontinuierlich aktualisiert und in PLC_2 übertragen werden. Und so können wir eine Kommunikation zwischen zwei PLCs herstellen und TSEND- und TRCV-Blöcke verwenden.
  14. Lernen Sie das Beispiel für SPS-Logik mit mehreren Schaltern und Motoren mit dem Kontaktplan kennen. Dieses Beispiel für SPS-Logik wurde für Ingenieurstudenten erstellt, um die Kontaktplanlogik zu lernen und zu üben. Das Design desselben SPS-Programms für den industriellen Einsatz wird anders sein. Beispiel für SPS-Logik Problemstellung: Entwerfen Sie eine SPS-Kontaktplanlogik für die folgende Anwendung. Es werden vier Kippschalter verwendet, um vier Motoren zu steuern. Wenn Schalter 1 eingeschaltet ist, ist Motor I eingeschaltet. Wenn Schalter 2 eingeschaltet ist, sind Motor I und Motor II eingeschaltet. Wenn Schalter 3 eingeschaltet ist, sind Motor I, Motor II und Motor III eingeschaltet. Wenn Schalter 4 eingeschaltet ist, sind Motor I, Motor II, Motor III und Motor IV eingeschaltet. Eingänge der SPS Die Liste der digitalen Eingänge für diese SPS-Logik ist unten aufgeführt. Schalter 1: I0.0 Schalter 2: I0.1 Schalter 3: I0.2 Schalter 4: I0.3 Ausgänge der SPS Die erforderlichen digitalen Ausgänge sind unten aufgeführt. Motor 1: Q0.0 Motor 2: Q0.1 Motor 3: Q0.2 Motor 4: Q0.3 Kontaktplanlogik für mehrere Schalter und Motoren Hier ist die SPS-Logik für die gegebene Problemstellung. Programm erklärt Für dieses Beispiel haben wir Schneider PLC-Software zur Programmierung verwendet. Im obigen SPS-Programm haben wir einen normal offenen Kontakt für Schalter 1 (I0.0), Schalter 2 (I0.1), Schalter 3 (I0.2) und Schalter 4 (I0.3) verwendet. Schalter 1, Schalter 2, Schalter 3 und Schalter 4 sind für Motor 1 parallel geschaltet, wodurch ein ODER-Logikgatter implementiert wird. Für Motor 2 sind die Eingänge Schalter 2, Schalter 3 und Schalter 4 parallel geschaltet, wodurch ein ODER-Logikgatter implementiert wird. Schalter 3 und Schalter 4 implementieren ein ODER-Logikgatter, d. h., sie sind für Motor 3 parallel geschaltet. Nur Schalter 4 ist mit Motor 4 verbunden. Damit Motor 1 eingeschaltet ist, muss entweder Schalter 1 oder Schalter 2 oder Schalter 3 oder Schalter 4 eingeschaltet sein. Um Motor 2 einzuschalten, muss entweder Schalter 2 oder Schalter 3 oder Schalter 4 eingeschaltet sein. Wenn Schalter 3 oder Schalter 4 eingeschaltet ist, wird Motor 3 eingeschaltet. Motor 4 wird eingeschaltet, wenn Schalter 4 eingeschaltet ist. Ergebnisse der SPS-Simulation Als Nächstes sehen wir uns die Ergebnisse der SPS-Simulation mit verschiedenen Kombinationen von Eingangsschaltern EIN und AUS an. Wenn Schalter 1 eingeschaltet ist Wenn der Kippschalter 1 eingeschaltet ist, fließt Strom durch ihn (hier verwenden wir den Begriff „Strom“ im Fall eines Stromkreises, Sie können ihn also als „Strom“ annehmen oder ihn einfach als „Signal“ bezeichnen). Infolgedessen wird Motor 1 eingeschaltet. Andere Motoren bleiben AUS, da Schalter 1 nicht mit ihnen verbunden ist. Wenn Schalter 2 eingeschaltet ist Der Strom fließt durch Schalter 2, wenn er eingeschaltet ist, wodurch Motor 1 und Motor 2 eingeschaltet werden. Dies ist so, weil Schalter 2 nur mit Motor 1 und Motor 2 verbunden ist. Wenn Schalter 3 eingeschaltet ist Wenn Schalter 3 eingeschaltet ist, fließt Strom durch ihn, wodurch drei Motoren eingeschaltet werden, d. h. Motor 1, Motor 2 und Motor 3. Der Eingangsschalter 3 ist nur mit diesen Ausgängen verbunden. Motor 4 bleibt AUS, da Schalter 3 nicht mit ihm verbunden ist. Wenn Schalter 4 EIN ist Schalter 4 schaltet alle Motoren EIN, wenn er eingeschaltet wird. Schalter 4 ist mit allen Motoren verbunden, wenn er eingeschaltet wird, schalten sich Motor 2, Motor 2, Motor 3 und Motor 4 EIN.
  15. Dies ist ein SPS-Programm zum Ablassen derselben Produkte aus zwei Tanks. Lernen Sie die SPS-Programmierung anhand dieses einfachen Beispiels. Ablassen derselben Produkte aus zwei Tanks Problembeschreibung Zwei Tanks sind mit denselben Produkten gefüllt. Das Ablassen von Materialien aus diesen beiden Tanks hängt von den Anforderungen des Lagertanks ab. Implementieren Sie die Logik für dieses System in der SPS mithilfe eines Kontaktplans. Problemdiagramm Beispiellösung für SPS Hier werden zwei Tanks für das System verwendet. Zur Füllstandsmessung werden zwei Sensoren verwendet (Füllstandssensoren). Wie in der Abbildung gezeigt, verwenden wir hier zwei Pumpen zum Umfüllen der Materialien aus den Tanks (Tank 1 und Tank 2) in die Lagertanks. Hier verwenden wir einen Füllstandstransmitter zur Füllstandsmessung des Lagertanks. PUMPE 1 und PUMPE 2 werden durch die Rückmeldung des Füllstandstransmitters gesteuert. Hier haben wir zwei Pumpen für einen reibungslosen Betrieb verwendet. Beide Pumpen werden betrieben, wenn der Füllstand der Lagertanks unter seinem Grenzwert liegt. Hinweis: Hier betrachten wir eine einfache Automatisierung für dieses System. In diesem System wird ein Füllstandstransmitter verwendet, der den Füllstand des Speichers misst. Der Einfachheit halber wird ein 500 cm hoher Lagertank verwendet, und die Rückmeldung des Füllstandstransmitters beträgt 4 bis 20 mA. Für diese Anwendung verwenden wir die SPS S7-300. Für Programmierzwecke verwenden wir die Skalierung. Liste der E/As Liste der Eingänge Zyklus START:- I0.0 Zyklus STOP:- I0.1 Niedriger Füllstand von Tank 1:- I0.2 Füllstand von Tank 2:- I0.3 Liste der Ausgänge Pumpe 1:- Q0.0 Pumpe 2:- Q0.1 M-Speicher Zyklus EIN-Bit:- M0.0 Analogwert vom Sender:- MW10 (INT) Analogwert vom Sender:- MD100 (DINT) Multiplikationswert:- MD104 Tatsächlicher Wasserstand (cm):- MD108 SPS-Kontaktplandiagramm zum Ablassen derselben Produkte aus zwei Tanks Programmerklärung Für diese Anwendung haben wir S7-300 PLC und TIA-Portalsoftware zur Programmierung verwendet. Netzwerk 1: Wir haben eine Verriegelungsschaltung für die Ausgabe von Zyklus EIN (M0.0) verwendet. Sie kann durch Drücken von START PB (I0.0) gestartet und durch Drücken von STOP PB (I0.1) gestoppt werden. Netzwerk 2: Hier ist die tatsächliche Zählung oder der Wert, der vom Sender kommt, aktuell (4 bis 20 mA), sodass wir ihn mithilfe des analogen Eingangskanals in der SPS in eine digitale Zählung umwandeln können. Diese Ziffer ist im INT-Format (MW10), sodass wir sie zur Berechnung oder Multiplikation in DINT (MD100) umwandeln müssen. Netzwerk 3: Der DINT-Wert (MD100) wird zu Berechnungszwecken mit der maximalen Höhe (500 cm) des Tanks multipliziert. Netzwerk 4: Der multiplizierte Wert (MD104) wird durch die maximale Anzahl des Analogmoduls (27648) geteilt. Die endgültige tatsächliche Höhe wird in MD108 gespeichert. Netzwerk 5: Hier haben wir einen Komparator für PUMPE 1 (Q0.0) verwendet. Bei Materialbedarf wird PUMPE 3 vom Bediener bedient, der Wasserstand sinkt. Gemäß unserer Automatisierung oder unserem System müssen wir also den Lagertank füllen. Pumpe 1 wird gestartet, wenn der Wasserstand unter seinem Grenzwert liegt (hier haben wir 480 cm genommen). Hinweis: PUMPE 1 sollte gestoppt werden, wenn ein niedriger Pegel (I0.2) von Tank 1 erkannt wird. Netzwerk 6: Hier haben wir einen Komparator für PUMPE 2 (Q0.1) verwendet. Bei Materialbedarf wird PUMPE 3 vom Bediener bedient, der Wasserstand sinkt. Gemäß unserer Automatisierung oder unserem System müssen wir also den Vorratstank füllen. Pumpe 2 wird gestartet, wenn der Wasserstand unter seinem Grenzwert liegt (hier haben wir 480 cm genommen). Hinweis: PUMPE 2 sollte gestoppt werden, wenn ein niedriger Pegel (I0.3) des Tanks 2 erkannt wird. Während des gesamten Funktionszyklus sollte sie eingeschaltet sein. Hinweis: Die obige Anwendung kann von der tatsächlichen Anwendung abweichen. Dieses Beispiel dient nur zu Erklärungszwecken. Wir können diese Logik auch in anderen SPS implementieren. Dies ist das einfache Konzept eines Entwässerungssystems. Wir können dieses Konzept auch in anderen Beispielen verwenden. Alle im Beispiel berücksichtigten Parameter dienen nur zu Erklärungszwecken. Die Parameter können in tatsächlichen Anwendungen unterschiedlich sein. Auch alle Verriegelungen werden in der Anwendung nicht berücksichtigt. Ergebnis
  16. Erstellen Sie ein SPS-Programm zur Alarmanzeige in der Prozesssteuerungsbranche. Lernen Sie die SPS-Programmierung anhand dieses Industriebeispiels. Alarmanzeige in der Prozesssteuerung In vielen Branchen gibt es viele Maschinen, die viele Aufgaben automatisch ausführen. In Systemen oder Prozessen werden viele Sensoren und Komponenten verwendet. Manchmal kann der Bediener die Probleme von Maschinen oder Systemen nicht durch visuelle Beobachtungen erkennen. Und manchmal besteht auch die Möglichkeit, dass die Maschine aufgrund eines Problems nicht mehr funktioniert. Problemdiagramm SPS-Lösung Wir können dieses Problem lösen, indem wir Alarme in Systeme oder Prozesse einfügen. Alarme werden hinzugefügt, um den Bediener zu warnen, diese Maschinen/Prozesse zu überwachen, die kurz davor sind, ihre Grenzwerte zu überschreiten oder die Grenzwerte bereits überschritten haben. Alarme werden dem Bediener durch Melder oder Hupen und Lichter in verschiedenen Farben auf dem Bedienfeld angezeigt. (Zum Beispiel bedeuteten grüne Lichter OK, Gelb bedeutete nicht OK und Rot bedeutete SCHLECHT.) Der Zweck von Alarmen besteht darin, Automatisierung zu nutzen, um menschliche Bediener bei der Überwachung und Steuerung von Prozessen zu unterstützen und sie auf abnormale Situationen in der Anlage aufmerksam zu machen. Eingehende/Eingangsprozesssignale werden kontinuierlich überwacht, und wenn der Wert eines bestimmten Signals in einen abnormalen Zustand gerät, informiert ein visueller und/oder akustischer Alarm den Bediener über die Situation. Wir können Alarme für das System auf verschiedene Weise konfigurieren, z. B. über MIMIC, Anzeigelampen auf der Schalttafel, SCADA, HMI usw. Für unsere Problemdiskussionen haben wir ein einfaches System betrachtet und Alarme für das System konfiguriert. Betrachten wir beispielsweise einen Füll- und Entladeprozess und in diesem System möchten wir einige Alarme berücksichtigen. Wir werden den Alarm mithilfe von Lampen auf der Schalttafel anzeigen. Betrachten wir beispielsweise die folgenden Alarme für unser System: Not-Aus gedrückt Fehler Zufuhrventil offen Fehler Zufuhrventil geschlossen Fehler Auslassventil offen Fehler Auslassventil geschlossen Hierbei handelt es sich alles um Fehler, daher verwenden wir alle roten Farbanzeigen wie in der obigen Abbildung gezeigt. Liste der Ein- und Ausgänge in der SPS Eingabeliste Zyklusstart: I0.0 Zyklusstopp: I0.1 Niedriger Füllstandschalter, LL: I0.2 Hocher Füllstandschalter, LH: I0.3 Zufuhr-VLV offen LS: I0.4 Zufuhr-VLV geschlossen LS: I0.5 Disc.-VLV offen LS: I0.6 Disc. VLV schließen LS: I0.7 Not-Aus: I1.0 RESET: I1.1 Ausgabeliste Zyklus EIN: Q0.0 Zufuhrventil: Q0.1 Scheibenventil: Q0.2 SUMMER: Q0.3 Not-Aus gedrückt: Q0.4 (Anzeigelampe) Zufuhr-VLV offen Fehler: Q0.5 (Anzeigelampe) Zufuhr-VLV geschlossen Fehler: Q0.6 (Anzeigelampe) Scheiben-VLV offen Fehler: Q0.7 (Anzeigelampe) Scheiben-VLV geschlossen Fehler: Q1.0 (Anzeigelampe) SPS-Programm zur Alarmanzeige im Prozess Steuerung Logik erklärt In dieser Anwendung haben wir Siemens S7-300 PLC und TIA Portal Software zur Programmierung verwendet. Netzwerk 1: In Netzwerk 1 haben wir einen Verriegelungskreis für den Zyklus-EIN-Ausgang (Q0.0) verwendet. Er kann durch Drücken von Zyklus START PB (I0.0) gestartet und durch Drücken von STOP PB (I0.1) gestoppt werden. Wenn der Zyklus gestartet wird, prüft das System den Füllstand des Tanks. Wenn der Tankfüllstand niedrig ist, wird der Zuführprozess gestartet, und wenn der Tankfüllstand hoch ist, wird der Entladezyklus gestartet. Netzwerk 2: Wenn der Tank einen niedrigen Pegel erreicht, wird LL (I0.2) aktiviert und der Zuführzyklus wird eingeschaltet. Hier haben wir den Öffnerkontakt von LH (I0.3) verwendet, sodass der Zuführzyklus gestoppt wird, wenn die SPS einen hohen Pegel erkennt. Netzwerk 3: Wenn der Tank einen hohen Pegel erreicht, wird LH (I0.3) aktiviert und der Entladezyklus wird eingeschaltet. Hier haben wir den Öffnerkontakt von LL (I0.2) verwendet, sodass der Zuführzyklus gestoppt wird, wenn die SPS einen niedrigen Pegel erkennt. Netzwerk 4: Wenn das System einen Not-Aus-Eingang (I1.0) empfängt, aktiviert es den Ausgang „Not-Aus gedrückt“ (Q0.4) und der Bediener erhält eine Alarmmeldung. Netzwerk 5: In diesem Netzwerk haben wir einen Alarm für einen offenen Zuführ-VLV-Fehler (Q0.5) konfiguriert. Wenn das Zuführventil eingeschaltet ist und kein offenes Zuführ-VLV (I0.4) erkannt wird, wird der Timer gestartet und nach 5 s wird der Alarm für einen offenen Zuführ-VLV-Fehler (Q0.5) eingeschaltet. Netzwerk 6: In diesem Netzwerk haben wir einen Fehleralarm für das Zufuhrventil „VLV schließen“ (Q0.6) konfiguriert. Wenn das Zufuhrventil geschlossen ist und kein Zufuhrventil „VLV schließen LS“ (I0.5) erkannt wird, startet der Timer und nach 5 s ist der Fehleralarm für das Zufuhrventil „VLV schließen“ eingeschaltet (Q0.6). Netzwerk 7: In diesem Netzwerk haben wir einen Fehleralarm für das Scheibenventil „VLV öffnen“ (Q0.7) konfiguriert. Wenn das Scheibenventil geschlossen ist und kein Scheibenventil „VLV öffnen LS“ (I0.6) erkannt wird, startet der Timer und nach 5 s ist der Fehleralarm für das Scheibenventil „VLV öffnen“ eingeschaltet (Q0.7). Netzwerk 8: In diesem Netzwerk haben wir einen Fehleralarm für das Scheibenventil „VLV schließen“ (Q1.0) konfiguriert. Wenn das Scheibenventil geschlossen ist und kein Scheibenventil „VLV schließen LS“ (I0.7) erkannt wird, startet der Timer und nach 5 s ist der Fehleralarm für das Scheibenventil „VLV schließen“ eingeschaltet (Q1.0). Netzwerk 9: In diesem Netzwerk haben wir für alle Alarme einen SUMMER konfiguriert. Wenn ein Alarm erkannt wird, wird der SUMMER (Q0.3) aktiviert und kann durch Drücken von RESET (I1.1) ZURÜCKGESETZT werden. Netzwerk 10: Der Bediener kann den SUMMER durch Drücken von RESET (I1.0) zurücksetzen. Testfälle Hinweis: Die obige SPS-Logik liefert eine grundlegende Vorstellung von der Anwendung der SPS bei der Alarmanzeige eines Prozesses. Die Logik ist begrenzt und stellt keine vollständige Anwendung dar.
  17. Entwerfen Sie ein effizientes SPS-Kontaktplanlogikprogramm, das den Analogeingang (I:1.0) mit einer Rate von 2 Hz abtastet und den Durchschnittswert alle zwei Sekunden an den Analogausgang O:1.0 ausgibt. SPS-Analogeingangsabtast-Kontaktplanlogik
  18. Nehmen wir an, dass es sechzehn Stationen entlang eines Förderbandsystems gibt. Die Stationen sind von 0 bis 15 nummeriert, wobei Station Null die erste ist (d. h. der Punkt, an dem die Teile das Förderband betreten). Die Teile müssen mit einer Geschwindigkeit von einer Station alle vier Sekunden das Förderband entlangbewegen. Ein Teil kann sich zu jedem Zeitpunkt an einer bestimmten Station befinden oder auch nicht. Ein Eingangssensor I:0.0/0 wird verwendet, um ein Teil zu erkennen, das das Förderband betritt. An Station 5 werden die Teile auf Defekte geprüft und ein Eingangssensor I:0.0/1 wird aktiviert, wenn das Teil defekt ist. An Station 10 müssen alle defekten Teile vom Förderband entfernt werden, indem der Ausgang O:0.0/0 aktiviert wird. Schreiben Sie für diesen Prozess ein effizientes Kontaktplanlogikprogramm. SPS-Förderband-Kontaktplanlogikprogramm
  19. xiangjinjiao

    SPS-Programm für Motorstarter

    SPS-Tutorial, das Schritt für Schritt das Programmieren einer SPS für einen Motorstarter erklärt. Es gibt viele Arten von Motorstartern, der Umfang dieses SPS-Tutorials beschränkt sich jedoch auf einfache Motorstarter. Es sollte die folgenden Bestimmungen enthalten. Druckknopf zum Starten des Motors: Der Motor sollte sich auch dann weiter drehen, wenn der Druckknopf losgelassen wird. Stopp-Druckknopf zum Anhalten des Motors nach dem Start. Überstromschutz: Bei Überlastung sollte der Motor automatisch durch das Signal von den Schützen des Überlastrelais anhalten. Endschalter: Er sollte das Starten des Motors verhindern und kann auch den laufenden Motor stoppen. Der Motorstarter sollte auch über eine Anzeige (Leuchte) verfügen, die den EIN- oder AUS-Status des Motors anzeigt. Elektrisches Motorschema: Die obige Abbildung zeigt den physischen Aufbau des Motorstarters, dieser würde jedoch in diesem SPS-Tutorial mithilfe der Kontaktplanlogik entworfen. Die obige Abbildung zeigt keinen Endschalter, da dieser von einer externen Verriegelung wie z. B. einem Niveauschalter, einem Durchflussschalter, einem Druckschalter usw. abhängig ist … je nach Anwendung. Wenn keine Verriegelung erforderlich ist, entfernen Sie einfach das Symbol aus dem Diagramm und verbinden Sie es mit einem einfachen Kabel. Leiterdiagramm für Motorstarter: Die folgende Abbildung zeigt das Leiterdiagramm für den Motorstarter. Starttaste I1: Es wird ein normalerweise offener Kontakt (Schließerkontakt) verwendet, da der Motor nur starten soll, wenn die Taste gedrückt wird. Stopptaste I2: Es wird ein normalerweise geschlossener Kontakt (Öffnerkontakt) verwendet, da die Taste normalerweise geschlossen oder hoch sein soll, damit der Motor weiterläuft. Er sollte sich öffnen, wenn die Taste gedrückt wird. Er ist das Gegenteil der Starttaste. Überlastrelais I3: Unter normalen Bedingungen sollte dieses Relais die Drehung des Motors zulassen, daher wird ein normalerweise geschlossener Kontakt dafür ausgewählt. Im Falle einer Überlastung stoppt es den Motor, indem es seinen Kontakt öffnet. Endschalter I4: Der Motor sollte sich nur drehen, wenn der Endschalter geschlossen ist, daher wird ein normalerweise offener Kontakt verwendet. Ausgang Q1, Q2, Q3: Relaisspule Q1, Q2 und Q3 repräsentieren jeweils Motorausgang, Motoranzeige EIN und Anzeige AUS. Die EIN-Anzeige erhält Eingabe von einem normalerweise offenen Eingang, der von Ausgang Q1 abhängt. Die AUS-Anzeige wird von einem normalerweise geschlossenen Eingang gespeist, der von Ausgang Q2 abhängt. Eingang Q1 (für kontinuierliche Drehung): Da es erforderlich ist, dass der Motor kontinuierlich läuft, sobald der Druckknopf gedrückt wird, auch wenn der Druckknopf losgelassen wird. Um dies zu erreichen, wird ein Eingang Q1 (normalerweise offen) verwendet und parallel zu I1 angeschlossen. Dieser Eingang hängt von Ausgang Q1 ab. Wenn Ausgang hoch ist, ist auch Eingang Q1 hoch. Da Eingang Q1 einen parallelen Pfad mit I1 bereitstellt, läuft der Motor, wenn einer von ihnen hoch ist (sofern auch andere Bedingungen erfüllt sind). Startknopf (normalerweise offen), Stoppknopf (normalerweise geschlossen), Überlastrelais (normalerweise geschlossen) und Endschalter (normalerweise offen) sind in Reihe geschaltet. Der Motor läuft also, wenn der Startknopf gedrückt ist, der Stoppknopf nicht gedrückt ist, das Überlastrelais nicht aktiviert ist und der Endschalter geschlossen ist. Hinweis: Dieser Beitrag dient nur zu Bildungs- oder Referenzzwecken. Für einen Stromkreis mit Spannung sind einige Ergänzungen zum obigen Schaltkreis erforderlich, z. B. sicherheitsrelevante, je nach Anwendung einige Verriegelungen usw.
  20. Hier emulieren wir genau denselben Hochdruckalarmkreis mit einer Allen-Bradley MicroLogix 1000-SPS anstelle einer Relaisspule: Beispiel für SPS-Logik Kontaktplanlogikprogramm Nehmen wir an, dass ein Flüssigkeitsdruck von 36 PSI auf den Druckschalter ausgeübt wird. Dies ist weniger als die Auslöseeinstellung des Schalters von 50 PSI, wodurch der Schalter in seinem „normalen“ (geschlossenen) Zustand verbleibt. Dadurch wird Strom an Eingang I:0/2 der SPS gesendet. Der mit I:0/2 gekennzeichnete Kontakt im Kontaktplanlogikprogramm der SPS fungiert wie ein Relaiskontakt, der von einer Spule angetrieben wird, die durch Eingangsklemme I:0/2 mit Strom versorgt wird. Somit versorgt der geschlossene Druckschalterkontakt Eingangsklemme I:0/2 mit Strom, was wiederum das normalerweise offene Kontaktsymbol I:0/2 im Kontaktplanlogikprogramm „schließt“. Dieser „virtuelle“ Kontakt sendet virtuellen Strom an eine virtuelle Spule mit der Bezeichnung B3:0/0, die nichts weiter als ein einzelnes Datenbit im Mikroprozessorspeicher der SPS ist. Das „Aktivieren“ dieser virtuellen Spule hat zur Folge, dass jeder im Programm gezeichnete Kontakt mit derselben Bezeichnung „betätigt“ wird. Das bedeutet, dass der normalerweise geschlossene Kontakt B3:0/0 jetzt „betätigt“ und somit im offenen Zustand ist und keinen virtuellen Strom an die Ausgangsspule O:0/1 sendet. Wenn die virtuelle Spule O:0/1 „stromlos“ ist, ist der reale Ausgang O:0/1 auf der SPS elektrisch geöffnet und die Alarmlampe ist stromlos (aus). Wenn wir annehmen, dass ein Flüssigkeitsdruck von 61 PSI auf den Druckschalter ausgeübt wird, wird der normalerweise geschlossene Druckschalterkontakt in den offenen Zustand betätigt (gezwungen). Dies hat zur Folge, dass der SPS-Eingang I:0/2 stromlos gemacht wird, wodurch der normalerweise offene virtuelle Kontakt im SPS-Programm mit derselben Bezeichnung „geöffnet“ wird. Dieser „offene“ virtuelle Kontakt unterbricht die virtuelle Stromversorgung der virtuellen Spule B3:0/0, wodurch der normalerweise geschlossene virtuelle Kontakt B3:0/0 „geschlossen“ wird und virtuelle Stromversorgung an die virtuelle Spule O:0/1 gesendet wird. Wenn diese virtuelle Ausgangsspule „stromführend“ wird, wird der reale Ausgangskanal der SPS aktiviert und sendet echte Stromversorgung an die Alarmleuchte, um diese einzuschalten und einen Hochdruckalarmzustand anzuzeigen. Wir können dieses SPS-Programm noch weiter vereinfachen, indem wir das virtuelle Steuerrelais B3:0/0 eliminieren und einfach Eingang I:0/2 Ausgang O:0/1 durch einen „normalerweise geschlossenen“ virtuellen Kontakt aktivieren lassen: Die Wirkung ist dieselbe: Der SPS-Ausgang O:0/1 wird aktiviert, wenn Eingang I:0/2 entregt wird (wenn der Druckschalter durch einen hohen Druck geöffnet wird), und schaltet die Alarmlampe bei einem hohen Druckzustand ein. Bei einem niedrigen Druckzustand zwingt der aktivierte Eingang I:0/2 den virtuellen, normalerweise geschlossenen Kontakt I:0/2 zum Öffnen, wodurch der Ausgang O:0/1 der SPS entregt und die Alarmlampe ausgeschaltet wird. Speicherprogrammierbare Steuerungen haben nicht nur die Verdrahtung industrieller Logiksteuerungen erheblich vereinfacht, indem sie eine Vielzahl elektromechanischer Relais durch einen Mikroprozessor ersetzt haben, sondern sie haben auch erweiterte Funktionen wie Zähler, Zeitgeber, Sequenzer, mathematische Funktionen, Kommunikation und natürlich die Möglichkeit hinzugefügt, die Steuerlogik einfach durch Programmierung zu ändern, anstatt Relais neu zu verdrahten. Das Schöne an der Kontaktplanprogrammierung ist, dass sie das Verständnis des Technikers für traditionelle Relaissteuerkreise in eine virtuelle Form überträgt, in der Kontakte und Spulen interagieren, um praktische Steuerfunktionen auszuführen. Ein Schlüsselkonzept, das es zu beherrschen gilt, ist jedoch die Verknüpfung realer Bedingungen mit dem Schalterstatus basierend auf der „normalen“ Darstellung dieser Schalterkontakte, unabhängig davon, ob die Schalter real (Relais) oder virtuell (SPS) sind. Sobald dieses wichtige Konzept beherrscht wird, werden sowohl fest verdrahtete Relaissteuerkreise als auch SPS-Programme verständlich. Ohne Beherrschung dieses wichtigen Konzepts können weder Relaissteuerkreise noch SPS-Programme verstanden werden.
  21. Wenn Sie eine PLC-Logik entwerfen, müssen Sie auf die Namen achten, die Sie den Tags geben. Sie sollten für jeden Programmierer leicht verständlich und interpretierbar sein. Sie sollten weder zu lang noch zu kurz sein. Die Benennungskonvention ist wichtig, da falsches Tagging Programmierern bei der Fehlerbehebung Probleme bereiten kann. Außerdem wird durch die Vergabe langer Namen der Speicher der PLC belegt. Daher muss jeder Programmierer vor dem Schreiben eines PLC-Programms die richtigen Benennungskonventionen befolgen. In diesem Beitrag werden wir uns mit dem Konzept der Benennungskonventionen für PLC-Tags befassen. Benennungskonventionen für PLC-Tags Lassen Sie uns zunächst verstehen, welche große Rolle die Benennungskonvention für Tags bei der PLC-Programmierung spielt. Sie haben einen Motor mit seinem Laufbefehl und seiner Laufrückmeldung als PLC-IOs. Der Motor befindet sich im Gebläseraum und wird als Luftkompressor verwendet. Der Motor-Tag-Name im P&ID ist M-101. Für einen PLC-Programmierer ist es nun wichtig, einen Tag-Standort zu identifizieren. Es gibt also zwei Arten von Denkweisen, die normalerweise einen SPS-Programmierer definieren. Der erste versucht, so viele Informationen wie möglich in einem Tag-Namen zu geben; er kann also den Motorlaufbefehl als M101_Compressor_Run_Command bezeichnen. Der zweite versucht, den Namen als Q_M101_Comp zu vergeben. Die zweite Denkweise sieht sehr klar aus, da er kurze Namen vergibt und die Länge so gering wie möglich hält. Aus diesem Grund ist die Benennung eines SPS-Tags wichtig, da es den Programmierer davon entlastet, solche langen Tags in Situationen zu lesen, in denen eine dringende Fehlerbehebung erforderlich ist. (Es ist zu beachten, dass bei der Benennung von SPS-Tags außer dem Unterstrich (_) keine Sonderzeichen zulässig sind.) Ein SPS-Tag-Name sollte Informationen enthalten, die dem Programmierer helfen können, seine Bedeutung zu verstehen. Dies impliziert im Allgemeinen die folgenden Informationen: Datentyp (z. B. Boolesch, Ganzzahl), Datenfluss (z. B. Eingabe, Ausgabe), Bereich (z. B. lokal, global), Instrumenten- oder Gerätetyp (z. B. Motor, Ventil, Sensor), Prozessparameter (z. B. Druck, Durchfluss, Temperatur) und Standort des Geräts. Tag-Namensstile Es gibt verschiedene Stile gemäß IEC-Standards, die für eine korrekte Benennung befolgt werden müssen. Sehen wir uns einige der am häufigsten verwendeten an: Camel-Stil, Pascal-Stil, Snake-Stil, Präfix mit Datentyp-Stil Camel-Stil In diesem Stil gibt es keinen Unterstrich dazwischen. Dem gesamten Wort wird ein vollständiger Name gegeben, aber jedes Wort darin beginnt mit einem Großbuchstaben. Nehmen Sie beispielsweise das oben besprochene Beispiel. M101_Compressor_Run_Command wird als m101CompressorRunCommand geschrieben. Sie können jedes Wort an einem Großbuchstaben erkennen. Der erste Buchstabe ist ein obligatorischer Kleinbuchstabe. Dieser Stil sieht gut aus, wenn das Wort klein ist. Er verhindert die Verwendung von Unterstrichen und verringert den Speicherverbrauch. Pascal-Stil Er ähnelt dem Camel-Stil; der einzige Unterschied besteht darin, dass der erste Buchstabe ein obligatorischer Großbuchstabe ist. Unser Tag wird beispielsweise als M101CompressorRunCommand geschrieben. Snake-Stil Das Beispiel, das wir zuvor besprochen haben, ist der Snake-Stil. Hier wird jedes Wort durch einen Unterstrich getrennt. Präfix mit Datentyp-Stil Hier wird dem Tag der Datentyp des Tag-Namens vorangestellt. In unserem Fall war der Tag-Typ Boolean. Gemäß IEC-Standards wird einem Boolean-Tag normalerweise das Präfix „x“ zugewiesen. Unser Stil wird also als xM101CompressorRunCommand geschrieben. Dies hilft dem Programmierer zu erkennen, welcher Datentyp für diesen bestimmten Tag verwendet wird. Tipps zur Tag-Benennung bei der SPS-Programmierung Die erste und wichtigste Regel ist, dass die Länge eines Tags kurz sein sollte, aber nicht so kurz, dass niemand es verstehen kann. Wie besprochen, sollte die Länge geeignete Informationen in angemessener Länge enthalten. Lange Namen sollten strikt vermieden werden. Befolgen Sie die allgemeinen Tag-Benennungsstile, die besprochen wurden. Diese entsprechen den IEC-Standards und lassen die Logik ordentlich und sauber aussehen. Um Fehler bei der Tag-Erstellung zu reduzieren, verwenden Sie Excel-Dateien. Excel reduziert den Arbeitsaufwand enorm, da Duplizierung und Kopieren sehr einfach werden. In Excel-Dateien treten kaum Fehler auf. Es ist nicht immer notwendig, einen vollständigen Namen für ein Wort zu verwenden. Beispielsweise kann das Ventil als vlv und die Temperatur als temp geschrieben werden. Vermeiden Sie es, das Tag vollständig in Großbuchstaben zu schreiben. Das sieht umständlich und unleserlich aus.
  22. Ein kluger SPS-Programmierer hat mir einmal gesagt, dass das Erste, was jeder angehende Programmierer über die SPS, die er programmieren möchte, lernen sollte, ist, wie der digitale Speicher dieser SPS organisiert ist. Dies ist ein weiser Ratschlag für jeden Programmierer, insbesondere bei Systemen mit begrenztem Speicher und/oder bei denen E/A eine feste Verbindung zu bestimmten Speicherstellen des Systems haben. Nahezu jedes mikroprozessorbasierte Steuerungssystem wird mit einer veröffentlichten Speicherzuordnung geliefert, die die Organisation seines begrenzten Speichers zeigt: wie viel ist für bestimmte Funktionen verfügbar, welche Adressen sind mit welchen E/A-Punkten verknüpft, wie unterschiedliche Speicherstellen vom Programmierer referenziert werden sollen. Diskrete Eingangs- und Ausgangskanäle einer SPS entsprechen einzelnen Bits im Speicherarray der SPS. Ebenso entsprechen analoge Eingangs- und Ausgangskanäle einer SPS Mehrbitwörtern (zusammenhängenden Bitblöcken) im Speicher der SPS. Die Verbindung zwischen E/A-Punkten und Speicherorten ist bei den verschiedenen SPS-Herstellern oder sogar bei den verschiedenen SPS-Modellen desselben Herstellers keineswegs standardisiert. Dies erschwert das Verfassen eines allgemeinen Tutorials zur SPS-Adressierung, und daher ist mein ultimativer Rat, die technischen Referenzen für das SPS-System zu konsultieren, das Sie programmieren möchten. Die am häufigsten verwendete SPS-Marke ist Allen-Bradley (Rockwell), die zufällig eine einzigartige Form der E/A-Adressierung verwendet (Anmerkung 1), die Studenten oft verwirrend finden. Aus diesen beiden Gründen (Beliebtheit und Verwirrung) werde ich mich im Großteil dieses Abschnitts auf die Adressierungskonventionen von Allen-Bradley konzentrieren. Anmerkung 1: Die modernsten SPS von Allen-Bradley haben die E/A-Adressierung mit festem Standort fast vollständig abgeschafft und sich stattdessen für eine E/A-Adressierung auf Basis von Tag-Namen entschieden. Es gibt jedoch noch genügend ältere SPS-Systeme von Allen-Bradley in der Industrie, um eine Behandlung dieser Adressierungskonventionen zu rechtfertigen. SPS-Speicherplan Die folgende Tabelle zeigt einen Teil des Speicherplans für eine Allen-Bradley SLC 500 SPS Speicherplan, auch Datentabelle genannt. Dieser Plan zeigt die Adressierung von Speicherbereichen, die für vom Benutzer eingegebene Programme reserviert sind. Innerhalb des SLC 500-Prozessors gibt es noch andere Speicherbereiche, auf die der Techniker, der SPS-Programme schreibt, jedoch keinen Zugriff hat. Beachten Sie, dass Allen-Bradley das Wort „Datei“ anders verwendet als die PC-Sprache. Im SLC 500-Controller ist eine „Datei“ ein Block Direktzugriffsspeicher, der zum Speichern eines bestimmten Datentyps verwendet wird. Im Gegensatz dazu ist eine „Datei“ in einem PC eine zusammenhängende Sammlung von Datenbits mit gemeinsamer Bedeutung (z. B. eine Textverarbeitungsdatei oder eine Tabellenkalkulationsdatei), die normalerweise auf der Festplatte des Computers gespeichert sind. In jeder der „Dateien“ der Allen-Bradley-SPS befinden sich mehrere „Elemente“, wobei jedes Element aus einer Reihe von Bits (8, 16, 24 oder 32) besteht, die Daten darstellen. Elemente werden durch eine Nummer nach dem Doppelpunkt nach der Dateibezeichnung adressiert, und einzelne Bits innerhalb jedes Elements werden durch eine Nummer nach einem Schrägstrich adressiert. Beispielsweise würde das erste Bit (Bit 0) des zweiten Elements in Datei 3 (Binär) als B3:2/0 adressiert. In Allen-Bradley-SPS wie den Modellen SLC 500 und PLC-5 sind die Dateien 0, 1 und 2 ausschließlich für diskrete Ausgänge, diskrete Eingänge bzw. Statusbits reserviert. Daher sind die Buchstabenbezeichnungen O, I und S (Dateitypen) redundant zu den Zahlen 0, 1 und 2 (Dateinummern). Andere Dateitypen wie B (binär), T (Timer), C (Zähler) und andere haben ihre eigenen Standarddateinummern (3, 4 bzw. 5), können aber auch in einigen der benutzerdefinierten Dateinummern (10 und höher) verwendet werden. Beispielsweise ist Datei 7 in einem Allen-Bradley-Controller für Daten des Typs „Integer“ (N) reserviert, aber Integer-Daten können nach Ermessen des Benutzers auch in jeder Datei mit der Nummer 10 oder höher gespeichert werden. Daher erscheinen Dateinummern und Dateitypbuchstaben für andere Datentypen als Ausgabe (O), Eingabe (I) und Status (S) immer zusammen. Sie würden beispielsweise ein ganzzahliges Wort nicht als N:30 (ganzzahliges Wort 30 im Speicher der SPS) adressiert sehen, sondern als N7:30 (ganzzahliges Wort 30 in Datei 7 des Speichers der SPS), um es von anderen ganzzahligen Wörtern 30 zu unterscheiden, die in anderen Dateien des Speichers der SPS vorhanden sein können. Diese dateibasierte Adressierungsnotation bedarf einer weiteren Erklärung. Wenn eine Adresse in einem SPS-Programm erscheint, werden Sonderzeichen verwendet, um verschiedene Felder voneinander zu trennen (oder „abzugrenzen“). Das allgemeine Schema für Allen-Bradley SLC 500-SPS wird hier gezeigt: Nicht alle Dateitypen müssen einzelne Wörter und Bits unterscheiden. Ganzzahlige Dateien (N) bestehen beispielsweise aus einem 16-Bit-Wort für jedes Element. Beispielsweise wäre N7:5 das 16-Bit-Integer-Wort Nummer fünf, das in Datei sieben gespeichert ist. Ein diskreter Eingabedateityp (I) muss jedoch als einzelne Bits angesprochen werden, da sich jeder einzelne E/A-Punkt auf ein einzelnes Bit bezieht. Somit wäre I:3/7 das Bit Nummer sieben, das sich im Eingabeelement drei befindet. Das Schrägstrichsymbol ist erforderlich, wenn diskrete E/A-Bits angesprochen werden, da wir uns nicht auf alle sechzehn Bits in einem Wort beziehen möchten, wenn wir nur einen einzigen Eingangs- oder Ausgangspunkt auf der SPS meinen. Im Gegensatz dazu sind Ganzzahlen Sammlungen von jeweils 16 Bits in der Speicherzuordnung des SLC 500 und werden daher normalerweise als ganze Wörter und nicht Bit für Bit angesprochen. Bestimmte Dateitypen wie Timer sind komplexer. Jedes Timer-„Element“ besteht aus zwei verschiedenen 16-Bit-Wörtern (eines für den kumulierten Wert des Timers, das andere für den Zielwert des Timers) sowie aus mindestens drei Bits, die den Status des Timers angeben (ein „Aktiviert“-Bit, ein „Timing“-Bit und ein „Fertig“-Bit). Daher müssen wir sowohl das Dezimalkomma als auch den Schrägstrich als Trennzeichen verwenden, wenn wir uns auf Daten innerhalb eines Timers beziehen. Angenommen, wir haben in unserem SPS-Programm einen Timer mit der Adresse T4:2 deklariert, was Timer Nummer zwei in Timerdatei vier wäre. Wenn wir den aktuellen Wert dieses Timers adressieren möchten, würden wir dies als T4:2.ACC tun (das „Akkumulator“-Wort von Timer Nummer zwei in Datei vier). Das „Done“-Bit desselben Timers würde als T4:2/DN adressiert (das „Done“-Bit von Timer Nummer zwei in Datei vier) Ein Kennzeichen des Adressierungsschemas des SLC 500, das vielen älteren SPS-Systemen gemeinsam ist, ist, dass die Adressbezeichnungen für Eingangs- und Ausgangsbits explizit auf die physischen Standorte der E/A-Kanäle verweisen. Wenn beispielsweise eine 8-Kanal-Diskreteingangskarte in Steckplatz 4 einer Allen Bradley SLC 500 SPS eingesteckt wäre und Sie das zweite Bit (Bit 1 aus einem Bereich von 0 bis 7) angeben möchten, würden Sie es mit der folgenden Bezeichnung ansprechen: I:4/1. Um das siebte Bit (Bitnummer 6) auf einer in Steckplatz 3 eingesteckten Diskretausgangskarte anzusprechen, wäre die Bezeichnung O:3/6 erforderlich. In beiden Fällen sagt Ihnen die numerische Struktur dieser Bezeichnung genau, wo das reale Eingangssignal mit der SPS verbunden ist. Beispiel für SPS-Speicherzuordnung Um die Beziehung zwischen physischen E/A und Bits im Speicher der SPS zu veranschaulichen, betrachten Sie dieses Beispiel einer Allen-Bradley SLC 500 SPS, bei der einer ihrer diskreten Eingangskanäle aktiviert ist (der Schalter wird als „Start“-Schalter für einen Elektromotor verwendet): Wenn eine Eingangs- oder Ausgangskarte mehr als 16 Bits besitzt – wie im Fall der 32-Bit-diskreten Ausgangskarte, die in Steckplatz 3 des Beispiel-SLC 500-Racks gezeigt ist –, unterteilt das Adressierungsschema jedes Element weiter in Wörter und Bits (jedes „Wort“ ist 16 Bits lang). Somit wäre die Adresse für Bit Nummer 27 eines in Steckplatz 3 eingesteckten 32-Bit-Eingabemoduls I:3.1/11 (da Bit 27 Bit 11 von Wort 1 entspricht – Wort 0 adressiert die Bits 0 bis 15 und Wort 1 adressiert die Bits 16 bis 31): Eine Nahaufnahme einer 32-Bit-DC-Eingabekarte für ein Allen-Bradley SLC 500 PLC-System zeigt diese Mehrwortadressierung: Die ersten sechzehn Eingabepunkte auf dieser Karte (die linke LED-Gruppe mit den Nummern 0 bis 15) werden von I:X.0/0 bis I:X.0/15 adressiert, wobei „X“ sich auf die Steckplatznummer bezieht, in die die Karte eingesteckt ist. Die nächsten sechzehn Eingangspunkte (die rechte LED-Gruppe mit den Nummern 16 bis 31) werden mit I:X.1/0 bis I:X.1/15 adressiert. Ältere SPS-Systeme verweisen normalerweise auf jeden der E/A-Kanäle mit Bezeichnungen wie „I:1/3“ (oder Ähnlichem), die den tatsächlichen Standort des Eingangskanalanschlusses auf der SPS-Einheit angeben. Der Programmierstandard IEC 61131-3 bezeichnet diese kanalbasierte Adressierung von E/A-Datenpunkten als direkte Adressierung. Ein Synonym für direkte Adressierung ist absolute Adressierung. Die direkte Adressierung von E/A-Bits über ihre Karten-, Steckplatz- und/oder Anschlussbezeichnungen mag einfach und elegant erscheinen, wird jedoch bei großen SPS-Systemen und komplexen Programmen sehr umständlich. Jedes Mal, wenn ein Techniker oder Programmierer das Programm betrachtet, muss er jede dieser E/A-Beschriftungen in ein reales Gerät „übersetzen“ (z. B. „Eingang I:1/3 ist eigentlich der Start-Druckknopf für den Mischmotor des mittleren Tanks“), um die Funktion dieses Bits zu verstehen. Ein späterer Versuch, die Übersichtlichkeit der SPS-Programmierung zu verbessern, war das Konzept, Variablen im Speicher einer SPS mit beliebigen Namen statt mit festen Codes zu adressieren. Der Programmierstandard IEC 61131-3 bezeichnet dies als symbolische Adressierung im Gegensatz zur „direkten“ (kanalbasierten) Adressierung, wodurch Programmierer E/A-Kanäle beliebig auf eine Weise benennen können, die für das gesamte System sinnvoll ist. Um unser einfaches Beispiel des Motor-„Start“-Schalters zu verwenden: Der Programmierer kann nun den Eingang I:1/3 (ein Beispiel für eine direkte Adresse) innerhalb des Programms als „Motorstartschalter“ (ein Beispiel für eine symbolische Adresse) bezeichnen, wodurch die Lesbarkeit des SPS-Programms erheblich verbessert wird. Bei den ersten Implementierungen dieses Konzepts wurden direkte Adressen für E/A-Datenpunkte beibehalten, wobei symbolische Namen als Ergänzung zu den absoluten Adressen erschienen. Der moderne Trend bei der SPS-Adressierung besteht darin, die Verwendung direkter Adressen wie I:1/3 vollständig zu vermeiden, sodass sie nirgendwo im Programmiercode erscheinen. Die Allen-Bradley „Logix“-Reihe speicherprogrammierbarer Steuerungen ist zum Zeitpunkt des Schreibens dieses Artikels das prominenteste Beispiel für diese neue Konvention. Jedem E/A-Punkt, unabhängig von Typ oder physischem Standort, wird ein Tag-Name zugewiesen, der in der realen Welt sinnvoll ist, und diese Tag-Namen (oder Symbole, wie sie alternativ genannt werden) werden durch eine Datenbankdatei auf absolute E/A-Kanalstandorte referenziert. Eine wichtige Anforderung an Tag-Namen ist, dass sie keine Leerzeichen zwischen Wörtern enthalten (z. B. sollte ein Tag-Name anstelle von „Motorstartschalter“ Bindestriche oder Unterstriche als Abstandszeichen verwenden: „Motorstartschalter“), da Leerzeichen in Computerprogrammiersprachen im Allgemeinen als Trennzeichen (Trennzeichen zwischen verschiedenen Variablen) angesehen werden. Nachdem ich Allen-Bradleys Adressierungsnotation für SPS des Modells SLC 500 eingeführt habe, werde ich sie nun zugunsten der modernen Konvention der symbolischen Adressierung in den restlichen Artikeln aufgeben, um zu vermeiden, dass die Programmierbeispiele marken- oder modellspezifisch werden. Jeder Datenpunkt in meinen SPS-Programmen trägt seinen eigenen Tag-Namen und nicht eine direkte (kanalbasierte) Adressbezeichnung.
  23. Studieren Sie das SPS-Programmierbeispiel zur LED-Steuerung mithilfe des Kontaktplandiagramms und lernen Sie die Programmbeschreibung. Dieses SPS-Beispiel ist für Maschinenbaustudenten gedacht, die daran interessiert sind, SPS-Übungen zu lernen und zu üben. Die Echtzeit-Industrie-SPS-Programme werden mit mehr Sicherheitsfunktionen ausgestattet. SPS-Programmierung LED-Steuerung Entwerfen Sie eine SPS-Kontaktplanlogik für die folgende Anwendung. Wir verwenden drei Kippschalter zur Steuerung von drei LEDs. Wenn Kippschalter 1 und Kippschalter 2 eingeschaltet sind, sind LED 1 und LED 2 eingeschaltet. Wenn Kippschalter 2 und Kippschalter 3 eingeschaltet sind, ist LED 2 ausgeschaltet und LED 3 eingeschaltet. Digitale Eingänge Die erforderlichen Eingänge sind unten aufgeführt. Kippschalter 1: I0.0 Kippschalter 2: I0.1 Kippschalter 2: I0.1 Hier nennen wir diese Kippschalter in unseren nächsten Diskussionen einfach „Schalter“, aber denken Sie daran, dass es sich um Kippschalter handelt. Digitale Eingänge Die erforderlichen Ausgänge sind unten aufgeführt. LED 1: Q0.0 LED 2: Q0.1 LED 3: Q0.2 Kontaktplan für LED-Steuerung SPS-Programmbeschreibung Für diese Anwendung haben wir die Software EcoStruxure Machine Expert Basic v1.2 zur Programmierung verwendet. Im obigen Programm haben wir normalerweise offene Kontakte für Schalter 1 (I0.0), Schalter 2 (I0.1) und Schalter 3 (I0.2) verwendet. Wir haben auch normalerweise geschlossene Kontakte für Schalter 3 (I0.2) verwendet. Schalter 1 und Schalter 2, die in Sprosse 0 vorhanden sind, sind für LED 1 und LED 2 in Reihe geschaltet, wodurch ein UND-Logikgatter implementiert wird. Mit Schalter 1 und Schalter 2 ist Schalter 3 als normalerweise geschlossener Kontakt mit LED 3 verbunden. Für LED 3 sind Schalter 2 und Schalter 3 in Sprosse 1 in Reihe geschaltet, wodurch das UND-Logikgatter implementiert wird. Damit LED 1 EIN ist, müssen Schalter 1 und Schalter 2 EIN sein. Wenn Schalter 1 und Schalter 2 eingeschaltet sind und Schalter 3 AUS ist, dann ist LED 2 EIN. Wenn Schalter 2 und Schalter 3 EIN sind, ist LED 3 EIN. Wenn Schalter 3 EIN geschaltet wird, wird LED 2 AUS geschaltet. Wenn Schalter 1 und Schalter 2 EIN sind In Sprosse 0 wird das Signal durch Schalter 1 und Schalter 2 geleitet, wenn es EIN geschaltet wird. Als Ergebnis werden LED 1 und LED 3 EIN geschaltet. Schalter 3 wird als normalerweise geschlossener Kontakt für Schalter 3 verwendet. Wenn er sich im falschen Zustand befindet, lässt er das Signal LED 2 einschalten. Wenn Schalter 2 und Schalter 3 eingeschaltet sind Das Signal durch Schalter 2 und Schalter 3 in Sprosse 1 schaltet LED 3 ein. In Sprosse 0 wird Schalter 3 als normalerweise geschlossener Kontakt verwendet. Wenn er sich im wahren Zustand befindet, lässt er kein Signal durch. Infolgedessen wird LED 2 ausgeschaltet. Schalter 3 ist mit LED 1 verbunden und bleibt daher eingeschaltet.
  24. SPS-Temperaturregelung: In einem Behälter befinden sich drei Heizgeräte, die zur Regelung der Temperatur des Behälters verwendet werden. Programmierung der SPS-Temperaturregelung Wir verwenden drei Thermostate, um die Temperatur an jedem Heizgerät zu messen. Außerdem gibt es ein weiteres Thermostat zur Sicherheitsabschaltung im Falle einer Fehlfunktion oder eines Notfalls oder um Übertemperaturen zu vermeiden. Alle diese Heizgeräte haben unterschiedliche Sollwerte oder unterschiedliche Temperaturbereiche, in denen die Heizgeräte entsprechend eingeschaltet werden können (die folgende Tabelle zeigt die Temperaturbereiche). Ein Temperaturregelungssystem besteht aus vier Thermostaten. Das System betreibt drei Heizeinheiten. Die Thermostate (TS1/TS2/TS3/TS4) sind auf 55 °C, 60 °C, 65 °C und 70 °C eingestellt. Unter 55 °C müssen drei Heizgeräte (H1, H2, H3) eingeschaltet sein. Zwischen 55 °C und 60 °C müssen zwei Heizgeräte (H2, H3) eingeschaltet sein. Zwischen 60 °C und 65 °C muss ein Heizgerät (H3) eingeschaltet sein. Über 70 °C müssen alle Heizgeräte ausgeschaltet sein. Es gibt eine Sicherheitsabschaltung (Relais CR1), falls ein Heizgerät versehentlich in Betrieb ist. Ein Hauptschalter schaltet das System ein und aus. SPS-Lösung Es gibt vier Thermostate. Nehmen wir an, sie sind im NC-Zustand, wenn der Sollwert nicht erreicht wird. Es soll ein Steuerrelais (CR1) als Sicherheitsabschaltung dienen. Hauptschalter: Der Startschalter ist NO und der Stoppschalter NC Typ. Die folgende Tabelle zeigt die Temperaturbereiche, in denen der Status der Thermostate (TS1, TS2, TS3, TS4) je nach Temperaturwert angezeigt wird. Auch der Status der Heizungen (H1, H2, H3), in dem diese Heizungen je nach Temperaturwert EIN oder AUS sind. SPS-Leiterlogik Leiterlogikbetrieb Erste Sprosse: Es gibt eine START-Taste (Standard-Schließerkontakt) und eine STOP-Taste (Standard-Öffnerkontakt). Ein Relais CR1 wird verwendet, um die Heizungen je nach Thermostatstatus zu steuern. Ein Thermostat TS4 ist zwischen STOP und Relais angeschlossen. Wenn TS4 aktiviert ist (d. h. der TS4-Kontakt wechselt von Öffner zu Schließer), sind alle Heizungen AUS. Ein Schließerkontakt des Relais CR1 wird über die START-Taste verwendet, um den START-Befehl zu verriegeln oder zu halten. Zweite Stufe: Ein Schließerkontakt des Relais CR1 wird verwendet, um die Heizungen (H1, H2, H3) mit dem Status der Thermostate (TS1, TS2, TS3) zu steuern. Nach dem Erteilen des START-Befehls wird dieser Schließerkontakt zu einem Öffnerkontakt. Wenn die Temperatur unter 55 °C liegt, sind TS1, TS2 und TS3 im geschlossenen Zustand, sodass alle Heizungen eingeschaltet sind. Wenn die Temperatur zwischen 55 und 60 °C liegt, ist TS1 geöffnet, sodass Heizung H1 ausgeschaltet ist. Wenn die Temperatur zwischen 60 und 65 °C liegt, ist TS2 ebenfalls geöffnet, sodass Heizung H2 ausgeschaltet ist. Wenn die Temperatur zwischen 65 und 70 °C liegt, ist TS3 ebenfalls geöffnet, sodass Heizung H3 ausgeschaltet ist. Es gibt eine Sicherheitsabschaltung, die verwendet wird, um Fehlfunktionen der Thermostate oder Übertemperaturen zu vermeiden. Wenn die Temperatur über 70 °C steigt, aktiviert TS4 das Relais und schaltet es ab. Dadurch werden alle Heizgeräte ausgeschaltet. Hinweis: Hier sind die Heizgeräte H1, H2 und H3 entweder Relais oder Schütze, die wir mit Strom versorgen. Ein Schließerkontakt dieser Relais ist also mit den elektrischen Heizgeräte-Zuleitungskreisen (MCC) verbunden. Diese elektrischen Zuleitungskreise werden gemäß dieser Signale gesteuert und dementsprechend werden die Heizgeräte entweder EIN oder AUS geschaltet.
  25. SPS-Programm für ein Überwachungssystem für den Wasserstand eines künstlichen Fischteichs, erklärt mit dem Konzept der Kontaktplanlogik für Anfänger. Wasserstandsüberwachungssystem Problembeschreibung Implementieren Sie ein SPS-Programm für ein Überwachungssystem für den Wasserstand eines künstlichen Fischteichs. Führen Sie das Wasser des künstlichen Fischteichs zu oder lassen Sie es ab, wenn der Wasserstand unter dem normalen Niveau liegt, und aktivieren Sie den Alarm, wenn der Wasserstand über oder unter dem Niveau liegt. Problemdiagramm Problemlösung Dieses Problem kann durch einfache Automatisierung gelöst werden. Hier haben wir einen künstlichen Fischteich, vier Niveausensoren und drei Pumpen zur Systemüberwachung und -steuerung betrachtet. Hier werden wir ein Programm schreiben, das das gesamte System steuert. Das System hält den normalen Pegel aufrecht und lässt nicht zu, dass der Wasserstand steigt oder fällt, um den normalen Pegel aufrechtzuerhalten. Wenn der Wasserstand vom normalen Niveau abfällt, führt das System Wasser in den Fischteich zu, und wenn der Wasserstand vom normalen Niveau ansteigt, lässt das System Wasser aus dem Fischteich ab. Liste der Ein-/Ausgänge Liste der Eingänge Füllstandssensor, L0: I0.0 (L0=1, wenn der Wasserstand über dem Alarmniveau liegt). Füllstandssensor, L1: I0.1 (L1=1, wenn der Wasserstand über dem Normalniveau liegt) Füllstandssensor, L2: I0.2 (L2=1, wenn der Wasserstand über dem Normalniveau liegt) Füllstandssensor, L3: I0.3 (L3=1, wenn der Wasserstand über dem Alarmniveau liegt) Ausgabeliste Zuführpumpe: Q0.0 Entwässerungspumpe 1: Q0.1 Entwässerungspumpe 2: Q0.2 Alarmlampe: Q0.3 SPS-Kontaktplanlogik zur Überwachung des Wasserstands eines künstlichen Fischteichs Logik erklärt In diesem Problem betrachten wir die S7-300-SPS und TIA-Portalsoftware zur Programmierung. Netzwerk 1: In diesem Netzwerk haben wir die Logik für die Entwässerungspumpe 1 (Q0.1) geschrieben. Wenn der Wasserstand über dem höchsten Alarmniveau (L3 = I0.3) liegt, wird die Entwässerungspumpe 1 (Q0.1) eingeschaltet. Netzwerk 2: Wenn der Wasserstand unter dem Alarmniveau liegt, sollte die Zuführpumpe (Q0.0) gestartet werden. Hier haben wir also den NC-Kontakt von L1 (I0.1) genommen. Wenn der Pegel unter dem Normalniveau liegt, wird die Zuführpumpe (Q0.0) eingeschaltet und füllt das Wasser in den Fischteich. Netzwerk 3: Wenn der Wasserstand über dem Normalniveau liegt, wird die Entwässerungspumpe 2 (Q0.2) eingeschaltet. Hier liegt der Wasserstand über dem Normalniveau, nicht über dem Alarmniveau, daher wird nur die Entwässerungspumpe 2 (Q0.1) funktionieren. Netzwerk 4: Hier haben wir zwei Bedingungen im ODER-Gatter verwendet, sodass entweder der Pegel unter dem Normalpegel (L1 = I0.1) oder über dem Normalpegel (L1 = I0.1) liegt, dann wird der Blinkkreis aktiviert und die Alarmlampe (Q0.3) leuchtet. Netzwerk 5: Timer 2 für Blinkkreis. Netzwerk 6: Hier haben wir zwei Bedingungen im ODER-Gatter verwendet, sodass entweder der Pegel unter dem Normalpegel (L1=01) oder über dem Normalpegel liegt, dann blinkt die Alarmlampe (Q0.3) automatisch im 5-Sekunden-Intervall. Der Pegel liegt über dem Alarmpegel (L0=1, L1=1, L2=1, L3=1) oder unter dem Alarmpegel (L0=0, L1=0, L2=0, L3=0), DANN blinkt die Alarmlampe automatisch im 5-Sekunden-Intervall. Der Pegel liegt über dem Alarmpegel (L0=0, L1=0, L2=0, L3=0), dann starten die Entwässerungspumpen 1 und 2 und wenn der Wasserpegel über dem Normalwert liegt, dann startet nur die Entwässerungspumpe 2. Hinweis: Das obige Beispiel dient nur zur Erklärung, nicht alle Parameter oder Sperren werden berücksichtigt. Für diese einfache Logik ist es nicht notwendig, eine S7-300-SPS zu verwenden, wir haben diese SPS für unsere Diskussionszwecke verwendet. Ergebnis
Apply for friendship links:WhatsApp or E-mail: admin@plchmis.com
×
×
  • Create New...