Subsystem Loop
Este bloque de función repite un flujo de trabajo interno para cada elemento de una lista (u otra colección con tamaño). Úsalo cuando quieras procesar una serie de elementos uno por uno dentro de un subsistema contenido y reunir los resultados como listas.
📥 Entradas
Este bloque de función no tiene puertos de entrada a nivel superior.
Para proporcionar datos al flujo de trabajo repetido, usa bloques internos dentro del subsistema (por ejemplo, Subsystem In).
📤 Salidas
Este bloque de función no expone puertos de salida directos a nivel superior.
Los resultados producidos dentro del flujo de trabajo repetido se devuelven a través de bloques internos (por ejemplo, Subsystem Out) y son recopilados como listas por este bloque.
🕹️ Controles
No hay parámetros visibles en el propio bloque. La interacción y configuración ocurren dentro del espacio de trabajo del subsistema contenido, donde colocas los bloques auxiliares de entrada/salida:
Subsystem In: úsalo dentro del subsistema para recibir el elemento actual (o entradas compartidas) en cada paso del bucle.Subsystem Out: úsalo dentro del subsistema para emitir el resultado por paso que será recogido por el bucle.
🎨 Características
Procesamiento iterativo: ejecuta el flujo de trabajo interno una vez por cada elemento de la primera colección con tamaño que proporciones.
Soporte multi-lista: si se suministran varias colecciones de la misma longitud, se iterarán en paralelo. Usa utilidades de emparejamiento si necesitas emparejamiento explícito.
Agregación: las salidas producidas por el flujo interno se recogen como listas (una lista por salida) y se devuelven al finalizar el bucle.
Parada segura y propagación de estado: errores internos o estados inválidos se propagan para que el escenario principal pueda reaccionar.
⚙️ Mecanismo de ejecución (lenguaje sencillo)
El bloque busca la primera entrada de tipo colección que le proporciones (por ejemplo, una lista de imágenes o números).
Para cada elemento de esa colección abre el espacio de trabajo del subsistema y ejecuta el flujo contenido una vez usando el elemento actual.
Cualquier valor que envíes fuera del subsistema con
Subsystem Outse añade a listas. Después de que termine el bucle, obtendrás una lista recopilada por cada salida.Si necesitas iterar varias listas juntas, asegúrate de que tengan la misma longitud o empáralas antes de alimentarlas al subsistema.
📝 Cómo usar
Coloca el bloque
Subsystem Loopen tu escenario.Haz doble clic (o abre) el espacio de trabajo del subsistema y añade lo siguiente dentro:
bloques
Subsystem Inpara recibir las entradas por paso que quieras procesar.tus bloques de procesamiento (filtros, detectores, cálculos) para operar sobre cada elemento.
bloques
Subsystem Outpara enviar resultados de vuelta al agregador del bucle.
Si quieres iterar varias listas juntas, prepáralas con una utilidad de listas (por ejemplo,
List Operations) antes de alimentarlas al subsistema.Ejecuta el escenario. El bucle ejecutará el flujo interno para cada elemento y devolverá listas agregadas con las salidas.
💡 Consejos y trucos
Para iterar varias listas relacionadas en sincronía, prepáralas con el bloque
List Operations(usa la opción de emparejar si está disponible) antes de alimentarlas al subsistema.Usa
Get Elementdentro del subsistema solo si necesitas acceso indexado directo a listas suministradas como entradas compartidas.Para lotes grandes de imágenes, combina
Batch ProcessingyDebatchpara reducir el uso de memoria y mantener eficiente el procesamiento por paso.Usa
Data Read Local/Data Write Local(o las variantes Global) para compartir datos persistentes entre el escenario principal y el subsistema cuando una conexión simple de entrada/salida no sea conveniente.Si necesitas ejecutar el mismo procesamiento en imágenes individuales y luego visualizar resultados, conecta un bloque
Show Imagedespués de las salidas del bucle para previsualizar las imágenes recolectadas.Al trabajar con listas que pueden contener entradas vacías o faltantes, añade una comprobación
Is Nonedentro del subsistema para evitar errores inesperados.
🛠️ Solución de problemas
No se realizan iteraciones: Verifica que hayas suministrado al menos una entrada de tipo colección dentro del subsistema (vía
Subsystem In).Las salidas regresan envueltas en listas de un solo elemento: Revisa cuántos bloques
Subsystem Outhay y confirma que devuelvan los valores previstos por paso.Longitudes de listas diferentes: Si esperas que múltiples listas se iteren juntas, asegúrate de que tengan la misma longitud o empáralas antes con
List Operations.Alto uso de memoria: Prefiere
Batch ProcessingyDebatcho procesa fragmentos más pequeños dentro del subsistema para reducir el pico de memoria.
Última actualización