⚛️
TIA PORTAL
  • Presentación
  • TIA PORTAL
    • 10 PASOS PARA COMUNICAR UN PLC CON ÉXITO.
      • AJUSTAR PG/PC
      • QUÉ TARJETA DE RED SELECCIONAR PARA COMUNICAR CON TIA PORTAL.
      • DIRECCIÓN IP DEL ORDENADOR PARA LA CONEXIÓN CON EL PLC.
      • CONFIGURACIÓN DEL SERVIDOR DNS EN WINDOWS PARA ESTABLECER LA COMUNICACIÓN CON EL PLC.
      • CONFIGURACIÓN EN TIA PORTAL PARA LA CONEXIÓN CON EL PLC AL PC POR ETHERNET.
      • CÓMO SELECCIONAR LA INTERFAZ PG/PC EN TIA PORTAL COMUNICACIÓN PLC.
      • SELECCIONAR LA TARJETA DE RED EN TIA PORTAL COMUNICACIÓN PLC.
      • INICIAR LA BÚSQUEDA DE LOS DISPOSITIVOS ACCESIBLES EN LA RED PROFINET.
      • ASIGNAR DIRECCIÓN IP VIRTUAL A NUESTRO ORDENADOR PARA COMUNICAR CON PLC DESDE TIA PORTAL.
    • Tabla de Observación y Forzado.
    • Restablecimiento a valores de fábrica.
    • Escalar una entrada/salida analógica.
    • Programación.
      • Programación en AWL
        • Asignación
        • Función AND (Y)
        • Función OR (O)
        • Función XOR (O exclusiva)
        • Expresiones entre paréntesis
        • Y antes de O
        • Operaciones de flancos
        • Set y Reset
        • Negar, activar, desactivar y salvar el RLO
        • Acumuladores
        • Operación de carga
        • Operación de transferencia
        • Direccionamiento
      • Programación en SCL
        • Comentarios
        • Declaraciones
          • String
          • Array
          • STRUCT
          • Flags
            • Flag OK
        • Tipos de datos
        • Operadores
        • Declaraciones de control
          • IF
          • CASE
          • FOR
          • WHILE
          • REPEAT
          • CONTINUE
          • EXIT
          • GOTO
          • RETURN
        • Contadores
      • ACTIVAR ENO AUTOMÁTICAMENTE EN UN FC EN SCL TIA PORTAL
    • Datos técnicos.
      • Instrucciones.
        • Temporizadores
          • TP: Impulso
          • Temporizador TON
          • Temporizador TOF
          • Temporizador TONR
        • Contadores
          • Contador CTU
          • Contador CTD
          • Contador CTUD
        • PUT - GET
        • SEND - RECIEVE
      • Bloques de organización (OBs)
        • OB1 - Main
        • OB100 – OB de Arranque
        • OB40 - Alarma de Proceso
        • OB121 - Error de Programación
        • OB30 - Alarma Cíclica
        • OB86 - Fallo de Rack
        • OB82 - Alarma de Diagnóstico
        • OB80 Error de Tiempo
      • Array
        • Array Multidimensional
        • Array Dinámico
        • Recorrer un Array
      • Bloques
        • Bloques de Datos (DB)
        • Bloque FC (Función)
        • Bloque FB (Función)
      • Contadores rápidos.
        • Instrucción CTRL_HSC_EXT
      • Tipos de datos
        • Tipos de datos de fecha y hora
    • Variadores.
      • Variador V20
        • Puesta en marcha rápida a través del menú de parámetros
        • Restabler a fábrica.
        • Configuración de macros de conexión
          • Macros de conexión
        • Configuración de Macro de aplicación.
          • Macros de aplicación.
        • Códigos de fallo y alarma.
        • Parametros
          • Parámetros comunes
          • Parámetros del motor.
        • Comunicación Modbus V20
      • Variador G120
        • Configuración manual o externa
          • Restablecer parámetros
        • Configuración en TIA Portal
        • Tipos de parámetros.
        • Restablecimiento a valores de fábrica.
        • Parametrizar el variador con el asistente de puesta en marcha.
        • Puesta en marcha básica desde IOP
        • Sistemas predeterminados de las interfaces (macros)
          • Macros
        • Accionar el motor en marcha a impulsos (función JOG)
        • Parametros
          • Parámetros gestión variador
          • Parámetros configuración motor
          • Parámetros gestión de entradas analógicas
          • Parámetros gestión de salidas analógicas
          • Parámetros configuración velocidades de consigna del motor
          • Parámetros gestión tiempo de aceleración y deceleración motor
          • Parámetros configuración PRODIdrive PZD
        • Parámetros JOG motor
        • Telegramas de comunicación
        • Bloque SINA_SPEED
        • Bloque SINA_PARA
        • Bloque SINA_POS
        • Page 2
    • Encoder.
      • Incremental
    • Servo.
      • Control PTO
        • Función de referenciado
      • Bloques de Función
    • Alarmas.
      • Alarmas horarias.
      • Alarmas de proceso.
    • Trabajo con fechas y horas.
    • Ajustar hora del PLC
    • IOT MQTT
      • Librería nueva
    • Biblioteca de gestión de control de datos.
      • Operaciones de Bit
        • * Bit Count
        • Bit Reset
        • Bit Set
        • Bit Set To
        • Bit test
        • Bit Toggle
        • * Pulso Relay
      • Tiempo y fecha
        • AstroClock
        • Get Calendar Day
        • Get Calendar Week ISO
        • Is German Holiday
        • * Timer Switch
      • Operaciones con contadores
        • CountFalInDWord
        • CountRisInDWord
      • Operaciones de comparación de flancos
        • CompareLReal
        • * CompareLReal By Precision
      • Operaciones matemáticas
        • Calc Distance 2D
        • Calc Distance 3D
        • Get Factorial
        • * Is Value In Limits
        • * Is Value In Range
        • * Is Value In Tolerance
        • Random DInt
        • Random Real
        • Random UDInt
        • Random Range DInt
        • Random Range Real
        • Random Range IDInt
        • Search Min Max
        • Store Min Max
      • Tratamiento de datos
        • * FIFO
        • LIFO
      • Operaciones de conversión
        • DTL to String
        • Int To String
        • String To Int
        • String To Taddr
        • Taddr To String
        • Tring To Time
        • Time To String
      • Generador de señales
        • *Frecuency
        • Impulse
      • Operaciones tecnológicas
        • *Limitar cambios de variaciones ( Avanzado)
        • Limitar cambios de variaciones
      • Operaciones de medición
        • *Media de un array
      • Legacy
        • *LGF Función Incremeno Sierra
    • Añadir ET200-SP a PLC.
      • PLC con ET200SP y esclavo IO.
      • 2 PLC con ET200SP compartida.
    • OPC
      • EJEMPLO  DE  CONEXIÓN 1
      • CONEXIÓN  EXCEL  DDE  CLIENT
    • HMI
      • CAMBIAR COLOR OBJETO TIA PORTAL AL ACTIVAR VARIABLE EN HMI
      • AGREGAR PANTALLA HMI
      • VISOR PDF TIA PORTAL HMI
      • IMÁGENES DESLIZANTES
      • CAMPO ENTRADA SALIDA TIA PORTAL EN HMI CONFIGURACIÓN Y USO
      • CONFIGURAR BARRA DE NIVEL
      • PLANTILLA TIA PORTAL HMI
      • SALVAPANTALLAS EN HMI
      • CREAR SCRIPT EN HMI
        • QUÉ ES UN SCRIPT
        • PARÁMETROS EN UN SCRIPT DEFINIDO COMO FUNCTION O SUB
        • Script - Mostrar usuario Logeado
        • Script - Log Out
      • BACKUP PROGRAMA HMI TIA PORTAL PARA GUARDAR EN TARJETA SD
      • NO FUNCIONA SIMULADOR TIA PORTAL PARA LA HMI
      • Administración Usuarios
        • Asignar permisos a objetos de la pantalla.
        • Script - Mostrar usuario Logeado
        • Script - Log Out
    • Cómo configurar el Webserver de un S7-1200
      • Cómo crear páginas de usuario para un S7-1200: conocimientos previos
      • Cómo crear páginas de usuario para un S7-1200: Configurando el entorno
      • Ejemplo de páginas de usuario para S7-1200
    • RFID
    • Comandos
    • Pasarela IOT 2000
      • Ejemplo de conexión
      • Acceso remoto Conexión SSH
        • Cambiar contraseña
      • Configuraciones básicas.
    • Plc Seguridad
      • Requisitos previos para trabajar con el PLC
      • ¿Qué es Profisafe?
      • Niveles seguridad
      • Selección PLC
      • Crear nuevo bloque de seguridad.
      • Main OB
      • Funciones de Seguridad.
        • ESTOP
        • TWO HAND monitoring with enable
        • MUT_P (Parallel muting)
          • Funcionamiento, explicación gráfica.
          • Blanking
        • EV1oo2DI
        • FDBACK
        • SFDOOR
        • ACK_GL
      • Ejemplos de conexión
        • Conexión ET200SP
        • Conexión Seta de seguridad.
          • Búsqueda de elemento e introducción en el proyecto.
          • Error al cargar la red.
          • Programa prueba.
  • STEP 7
    • Creación de proyecto
      • ASIGNAR UN PLC.
      • CONFIGURAR EL HARDWARE
    • Comunicación MPI
    • Instrucciones.
      • X_PUT
      • X_GET
      • SEND-RECIEVE
    • Observado/Forzado de variables.
    • Activación de marcas de ciclo.
Con tecnología de GitBook
En esta página

¿Te fue útil?

  1. TIA PORTAL
  2. Datos técnicos.
  3. Array

Array Dinámico

AnteriorArray MultidimensionalSiguienteRecorrer un Array

Última actualización hace 2 años

¿Te fue útil?

Crear un array cuya longitud sea variable, es decir, que no sea fija, dado que no se cuantos datos voy a necesitar y no quiero malgastar memoria.

Te explico.

Un bloque de datos, por definición, es un bloque que almacena datos, por tanto, es imposible que almacene una cantidad de datos sin conocer de antemano la longitud de los mismos, ya que el DB debe conocer previamente la cantidad de memoria que va a necesitar para esos datos. Por eso mismo, no es posible crear un array dinámico (sin especificar su tamaño) dentro de un bloque de datos.

Peeeeeeero puedes utilizar un array dinámico dentro de una Función (FC) para poder utilizar cualquier tamaño de array fuera de la misma…

Imagina que tienes 4 arrays de tipo Int, donde cada uno tiene una longitud diferente, y que tu quieres crear una función que consulte periódicamente los datos de todos esos arrays.

Imagina que tienes estos 4 arrays en tu bloque de datos:

Aquí muchas personas harían lo siguiente que vas a ver en la siguiente imagen (y no solamente personas que están aprendiendo, no, gente que lleva años trabajando como programador de PLC, también lo hace, que lo he visto con mis propios ojos y da auténtica vergüenza ajena):

Muchos programadores harían esto, crear los 4 arrays exactamente iguales a los que tienen en el DB como entradas de la FC, algo típico de gente que no sabe utilizar TIA Portal ni de las herramientas que tiene a su alcance. Probablemente si tu no estuvieras leyendo esto, harías lo mismo, pero sería completamente normal, estás empezando y estás aprendiendo, pero esto lo hace gente que lleva tranquilamente 5 años o más programando PLC, y, que quieres que te diga, da vergüenza absoluta.

Si tu quieres que una FC lea los valores de diferentes arrays tipo Int, debes crearte un array en la FC tal que así:

Con la sintaxis Array[*] of Int, tienes el array variable o dinámico, y te vale como entrada a la FC cualquier array int, sin importar su tamaño.

Por cierto, debo advertirte que, según siemens, esto se puede hacer tanto con los S7-1200 y S7-1500 a partir del firmware 4.2, pero te diré que con los S7-1200 a mi no me funciona, al menos en simulación. A la hora de leer los datos del array me da error de software, sin embargo el mismo programa con un S7-1500, si me funciona, así que al dato con eso, que no quiero que pierdas tiempo.

4 arrays of int en fc tia portal
arrays of int tia portal
array [*] tia portal