Anuncio TOP B1 Mensaje

Colapsar

Anuncio TOP B4 Mensaje (Mobile)

Colapsar

Anuncio

Colapsar
No hay anuncio todavía.

STEP7 : (no TIA PORTAL) s7-300 : Cómo registrar datos reales.

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • STEP7 : (no TIA PORTAL) s7-300 : Cómo registrar datos reales.

    STEP7 : (no TIA PORTAL) s7-300

    Me gustaría ir cargando de forma sucesiva números reales en un DB (REGISTRO) de las mediciones que realiza una máquina.
    Cada flanco de una marca (M0.0) cargaría el MD100 en las posiciones sucesivas del REGISTRO dada por un índice MD[50]
    He declarado un array DATOS[0-500] de números reales en mi DB.

    DB0 (REGISTRO) - ARRAY DATOS
    MD100 (Valor a registrar en posiciones sucesivas)
    MD50 (Índice)

    No consigo dar con la sintaxis adecuada en KOP/LAD para cargar el MD100 en las posiciones que va dando el índice :

    MD100 ----- MOVE -------> #DB0.REGISTRO[M50] no lo admite el STEP7
    MD100 ----- MOVE -------> P#DB0.REGISTRO[MD50] tampoco

    Esto es posible hacerlo en KOP/LAD ? (Lo prefiero a STL o SCL)
    Cuál sería la sintaxis ?

    Si es imposible en LD/KOP cómo se haría en otros lenguajes?

    Gracias!

  • #2
    DB1.REGISTRO[MD50] := MD100

    En Kop en Tía portal si permite usar indices, en Step7 ni idea, hace siglos que no lo uso.

    Comentario


    • #3
      Así es.

      En TIA portal funciona así. pero en Step7 no lo parece. No sé como hacerlo o que error cometo al escribirlo.

      Es más, en Step7 creo que hay un FC o FB que se llama ATT que te crea una tabla que funciona con índices creo. pero solo admite números enteros. Al menos que yo sepa.

      Comentario


      • #4
        Buenas Harlock,
        Te adjunto un bloc de notas con el código funcionando en SCL.
        En KOP o LAD no sabría decirte si se puede. No lo he probado.
        Te adjunto un pantallazo de como te queda al insertar el codigo en el OB1 por ejemplo.
        Con respecto al FC ATT, como dices solo admite números enteros.
        Un saludo
        Archivos Adjuntos
        Editado por última vez por sevekeno; https://www.infoplc.net/foro/member/20384-sevekeno en 24/11/19, 12:29:15.

        Comentario


        • #5
          En Step 7 no es posible usar los índices en ladder.
          Con AWL está tirado:

          Lo que meterías en el bloque sería algo así:

          L #indice // Cargas el índice (de 1 a 50)
          L 1 // cargas 1
          -I // Restas ya que la dirección del indice 1 empieza en el DBX0.0
          ITD //Pasas de entero a doble
          L p#4.0 // Cargas el puntero 4.0 ya que son reales
          *D //Multiplicas el indice -1 por 4.0
          LAR1 //lo cargas en el ar1

          AUF DB100 //Abres el DB 100 (o el que sea)
          L #Valor //cargas el valor a guardar
          T DBD[AR1,P#0.0] // lo guardas en la posición de memoria correspondiente.

          Espero que ayude.

          Saludos
          Formación online en entorno Siemens
          Aprovecha el mini curso gratuito de iniciación en Step 7.
          https://programacionsiemens.com/mini-curso-step-7/

          Comentario


          • #6
            Originalmente publicado por igutiez Ver Mensaje
            En Step 7 no es posible usar los índices en ladder.
            Con AWL está tirado:

            Lo que meterías en el bloque sería algo así:

            L #indice // Cargas el índice (de 1 a 50)
            L 1 // cargas 1
            -I // Restas ya que la dirección del indice 1 empieza en el DBX0.0
            ITD //Pasas de entero a doble
            L p#4.0 // Cargas el puntero 4.0 ya que son reales
            *D //Multiplicas el indice -1 por 4.0
            LAR1 //lo cargas en el ar1

            AUF DB100 //Abres el DB 100 (o el que sea)
            L #Valor //cargas el valor a guardar
            T DBD[AR1,P#0.0] // lo guardas en la posición de memoria correspondiente.

            Espero que ayude.

            Saludos
            Tirado dice...
            10 líneas para conseguir lo que en SCL cuesta 1.
            Yo, recomiento a todo aquel que comienze con la programación de autómatas, que cuando llegue al tema del AWL (si es que lo nombran) lea por encima en que consistía dicho lenguaje y después se encargue de aprender un lenguaje en condiciones.

            Por cierto, Siemens dejará de darle soporte (y de integrarlo en los controladores 1500) allá por el 2023 o TIAv18 lo que antes venga.

            Comentario

            Anuncio Footer B3 Mensaje

            Colapsar

            Anuncio Footer B5 Mensaje (Mobile) 300x600

            Colapsar
            Trabajando...
            X