• Skip to primary navigation
  • Skip to main content

Cursos Online para mentes inquietas

  • Cursos
  • Blog
  • Mi cuenta
    • Mi cuenta
    • Foros
    • Curso de AWL
    • Curso HMI con Python y Qt-Designer
    • Curso Express de TIA Portal
    • Curso de iniciación a la Industria 4.0.
    • Curso de comunicaciones IE y Profinet
    • Curso de WinCC Flexible 2008
    • Crear HMI con OPC y VB.NET
    • Crear HMI con Snap7 y VB.NET
    • Curso HMI con ViSnap7
    • Curso TIA Portal CPU 1200
    • Curso de Step 7 V5.x
  • Contacto
  •  

Control de temperatura por escalones en SCL

¡Uppsss! No estás logueado ¿eres usuario registrado?

Si eres usuario de la plataforma, HAZ CLIC AQUI PARA ACCEDER A TU CUENTA
Después, vuelve a acceder a la plataforma de cursos.

Home › Foros › Misceláneo › Control de temperatura por escalones en SCL

  • Este debate tiene 8 respuestas, 2 mensajes y ha sido actualizado por última vez el hace 3 años, 1 mes por Iñigo Gútiez.
Viendo 9 entradas - de la 1 a la 9 (de un total de 9)
  • Autor
    Entradas
  • 15 julio, 2020 a las 16:34 #15199
    David Lobo Herranz
    Participante

    Buenas tardes compañeros.

    Soy nuevo en el foro y no se si en este tema esta bien la duda que voy a plantear.

    Tengo que hacer un control de temperatura por escalones con SCL. Es decir tengo que regular una temperatura con 2 variables, calentar al 100% o al 50% según una serie de criterios.

    Os lo pongo a modo de ejemplo para que se entienda mejor.

    Tengo un temperatura de consiga de 180º con una histeresis de +-10º. Cuando la temperatura supera los 190º activo la salida de calentar a 50% y cuando esta por debajo de 170º activo 100%.

    Esto lo quiero controlar con escalones y hacerlo con SCL.

    Si no me equivoco tengo 3 escalones

    • escalón 1 temperatura menor que 170º
    • escalón 2 temperatura a 180º
    • escalón 3 temperatura mayor que 180º

    Con esto tengo que activar la salida de calentar al 100% y el 50%. cuando estoy en el escalón 1 y 2 tengo que activar la salida de 100% y cuando estoy en el escalón 3 activo la salida de 50%.

    Principalmente la duda que tengo es como hacer los escalones y hacerlo en SCL. Es decir tengo un lectura de la temperatura y con esa lectura  subo un escalón o le bajo.

    Muchas gracias por vuestro tiempo de antemano y un saludo.

     

    15 julio, 2020 a las 18:13 #15200
    Iñigo Gútiez
    Superadministrador

    Hola,
    Haciéndolo en scl sería tan sencillo como un select case.
    En función del valor de la temperatura eliges un caso, por debajo de 170, entre 170 y 180, y por encima de 180.

    16 julio, 2020 a las 13:36 #15201
    David Lobo Herranz
    Participante

    Hola Iñigo.

    He hecho esto no se si así esta bien.

     

    Static                     tipo de datos             Valor
    Estado_Tem                    Int                        0
    Constant
    TEMP_MIN                      Int                      0
    TEMP_OK                         Int                      1
    TEMP_MAX                      Int                     2

    ========================================

    CASE #Estado_Tem OF
    #TEMP_MIN:
    IF #Gas
    AND (#Temp < #Temp_MIn_1
    OR #Maquina_Calentando)
    THEN
    #Estado_Tem := #TEMP_MIN;
    END_IF;

    #TEMP_OK:
    IF #Gas
    AND #Temp > #Temp_MIn_1
    AND #Temp < #»Temp _Max»
    THEN
    #Estado_Tem := #TEMP_OK
    END_IF;

    #TEMP_MAX:
    IF #Gas
    AND #Temp > #»Temp _Max»
    AND NOT #Maquina_Calentando
    THEN
    #Estado_Tem := #TEMP_MAX;
    END_IF;

    ELSE
    ;
    END_CASE;

    #»Salida_50%» := #Estado_Tem =2 ;
    #»Salida_100%» := #Estado_Tem = 1 OR #Estado_Tem = 0;

    ============================================

     

     

    16 julio, 2020 a las 15:08 #15202
    David Lobo Herranz
    Participante

    Ahora he hecho esta versión

    IF #Temp < #Temp_MIn_1
    THEN
    #Estado_Tem := 0;
    END_IF;
    IF #Temp > #Temp_MIn_1
    AND #Temp < #»Temp _Max»
    THEN
    #Estado_Tem := 1;
    END_IF;
    IF #Temp < #»Temp _Max»
    THEN
    #Estado_Tem := 2;
    END_IF;

    CASE #Estado_Tem OF
    0:
    #aux1:=1
    ;
    1:
    #aux2:=1
    ;
    2:
    #aux3:=1
    ;
    ELSE
    ;
    END_CASE;

    #»Salida_100%» := #Gas AND NOT #Alarma AND NOT #Marcha AND (#aux1 OR #aux2 OR #Maquina_Calentando);
    #»Salida_50%» := #Gas AND (#aux3 OR #Alarma OR NOT #Marcha);
    #»Temp _OK»:= #aux2;

    17 julio, 2020 a las 8:48 #15203
    Iñigo Gútiez
    Superadministrador

    Creo que te estás complicando bastante la vida.

    Tendría que ser tan simple como:

    CASE temperatura

    < temperatura minima -> salida_temporal = 100 (o lo que consideres)
    temperatura minima .. Salida_temporal = 50 (o lo que consideres)
    > temperatura maxima -> Salida_temporal = 0 (o lo que consideres)
    Fin case

    Salida = Salida_temporal

    Y ya está

    17 julio, 2020 a las 13:05 #15204
    David Lobo Herranz
    Participante

    Muchas gracias Iñigo.

    Lo del complicarme la vida creo que lo llevo en el ADN…..Y ahora estoy en método 5000 y es un método  largo.

    17 julio, 2020 a las 18:21 #15205
    Iñigo Gútiez
    Superadministrador

    Jeje,
    Por el método 5000 hemos pasado todos..
    Con paciencia.

    31 julio, 2020 a las 13:53 #15216
    David Lobo Herranz
    Participante

    Hola Iñigo.

    He visto que tienes un libro que se llama 7 pasos para programar mas ordenados……Me gustaría hacerme con el, pero no veo como descargarle.

    No se si me lo puedes pasar de alguna manera, por lo que he visto creo que le regalas, si no es así me dices como conseguirle .

    Un saludo.

     

    2 agosto, 2020 a las 14:25 #15217
    Iñigo Gútiez
    Superadministrador
    David Lobo Herranz wrote:

    Hola Iñigo.

    He visto que tienes un libro que se llama 7 pasos para programar mas ordenados……Me gustaría hacerme con el, pero no veo como descargarle.

    No se si me lo puedes pasar de alguna manera, por lo que he visto creo que le regalas, si no es así me dices como conseguirle .

    Un saludo.

    No te llega debido a que ya eres cliente/suscriptor.
    El enlace es este: https://1drv.ms/b/s!Aq_6QgrSLhbti8IAH62rkarNh9Ak1w

  • Autor
    Entradas
Viendo 9 entradas - de la 1 a la 9 (de un total de 9)
  • Debes estar registrado para responder a este debate.
Acceder
  • Aviso Legal y Política de Privacidad
  • Condiciones de Venta
  • Política de cookies

Copyright © 2023 · Programación Siemens · Todos los derechos reservados

· ¿Quién soy? · Misión, Visión y valores

Utilizamos cookies propios y de terceros para mejorar nuestros servicios y tu experiencia de usuario. Si continuas navegando, consideramos que aceptas su uso. Aceptar Más información
Política de Cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR

Insertar/editar un enlace

Introduce la URL de destino

O enlaza a contenido ya existente

    No se ha especificado ningún término de búsqueda. Mostrando los elementos recientes. Busca o utiliza las teclas de flecha arriba y abajo para seleccionar un elemento.