Presentación de una particular solución de software para administrar y controlar un módulo GSM operado por comandos AT de manera no bloqueante, cumpliendo las restricciones que imponen estos dispositivos, encapsulando su comportamiento y restringiendo el acceso concurrente al mismo, evitando el uso de complejos mecanismo de exclusión mutua y los extensos bloqueos de la CPU ante la espera de respuestas. A su vez, se presentará un simple y autónomo algoritmo para identificar eficientemente las respuestas del módulo GSM, logrando así una solución robusta, eficiente, flexible, fácil de mantener, probar y extender, respetando lo que se conoce como los principios del código limpio. La solución propuesta se basa en la aplicación del paradigma de la programación reactiva o dirigida por eventos mediante máquinas de estados Statecharts.
El documento trata sobre el tema 1 de los sistemas operativos II. Se describe el núcleo del sistema operativo, incluyendo sus requisitos hardware como mecanismos de interrupción, protección de memoria e instrucciones reservadas. También se explican los conceptos de núcleos monolíticos y micronúcleos, así como la arquitectura de estos últimos. Finalmente, se introducen los conceptos básicos de procesos, incluyendo su representación y estados.
El documento describe los conceptos fundamentales de los procesos, incluyendo su estructura, estados, transiciones entre estados, y mecanismos de sincronización como semáforos y monitores. Los procesos son programas en ejecución que pasan por varios estados como nuevo, listo, en ejecución, bloqueado y terminado. Los semáforos y monitores son herramientas que permiten la comunicación y sincronización entre procesos al acceder recursos compartidos.
El documento describe diferentes técnicas de sincronización y administración de memoria en sistemas operativos, incluyendo semáforos, paginación, segmentación, y compactación. Explica cómo los semáforos permiten la exclusión mutua y coordinación de procesos, y cómo la paginación y segmentación simulan memoria virtual mediante la asignación dinámica de la memoria física.
Este documento presenta el proyecto final de grado de Pablo Zincarini para la empresa Federada Salud. El proyecto consistió en el diseño e implementación de un sistema AVL utilizando dispositivos Virloc 10 de la empresa Virtec para dar seguimiento en tiempo real a la flota vehicular de Federada Salud. El sistema desarrollado, llamado GeoManager, usó diversas tecnologías como Java, GeneXus, PostgreSQL y más. El proyecto logró su objetivo pero también enfrentó riesgos y desafíos imprevistos durante su desarrollo.
Este documento discute la sincronización de procesos, incluyendo el problema de la sección crítica, hardware y semáforos de sincronización, problemas clásicos como productor-consumidor, lectores-escritores y filósofos comensales, monitores y sincronización en Java.
El documento describe los problemas de sincronización que surgen cuando procesos comparten recursos críticos. Explica que los procesos no pueden ejecutar sus secciones críticas al mismo tiempo y que cualquier solución debe cumplir con exclusión mutua, progreso y espera limitada. Además, presenta soluciones como semáforos, monitores y transacciones atómicas para abordar problemas como la sección crítica, lectores-escritores y la cena de los filósofos.
Controladores Lógicos Programables: Estructura interna de un PLC y ejemplos d...SANTIAGO PABLO ALBERTO
Este documento describe la evolución de los sistemas de control desde los relevadores electromecánicos hasta los PLC. Explica que los relevadores permitieron el desarrollo de la automatización dedicada, mientras que los PLC permiten la automatización flexible al almacenar el programa lógico en memoria. También define los componentes clave de un sistema PLC como la unidad central de proceso, módulos de entrada/salida, dispositivo de programación, y describe algunas funciones lógicas básicas como AND, OR e inversor
1) El documento presenta un tutorial para el software WindLDR que se utiliza para programar controladores lógicos programables (PLC) de la marca IDEC. 2) Explica los diferentes elementos de un sistema PLC e introduce conceptos básicos como el ciclo de escaneo, las instrucciones de entrada y salida, y las convenciones de NO y NC. 3) El tutorial contiene 14 capítulos que cubren una amplia gama de temas sobre programación básica y avanzada de PLC, incluidos temporizadores, contadores, instrucciones aritméticas
El documento trata sobre el tema 1 de los sistemas operativos II. Se describe el núcleo del sistema operativo, incluyendo sus requisitos hardware como mecanismos de interrupción, protección de memoria e instrucciones reservadas. También se explican los conceptos de núcleos monolíticos y micronúcleos, así como la arquitectura de estos últimos. Finalmente, se introducen los conceptos básicos de procesos, incluyendo su representación y estados.
El documento describe los conceptos fundamentales de los procesos, incluyendo su estructura, estados, transiciones entre estados, y mecanismos de sincronización como semáforos y monitores. Los procesos son programas en ejecución que pasan por varios estados como nuevo, listo, en ejecución, bloqueado y terminado. Los semáforos y monitores son herramientas que permiten la comunicación y sincronización entre procesos al acceder recursos compartidos.
El documento describe diferentes técnicas de sincronización y administración de memoria en sistemas operativos, incluyendo semáforos, paginación, segmentación, y compactación. Explica cómo los semáforos permiten la exclusión mutua y coordinación de procesos, y cómo la paginación y segmentación simulan memoria virtual mediante la asignación dinámica de la memoria física.
Este documento presenta el proyecto final de grado de Pablo Zincarini para la empresa Federada Salud. El proyecto consistió en el diseño e implementación de un sistema AVL utilizando dispositivos Virloc 10 de la empresa Virtec para dar seguimiento en tiempo real a la flota vehicular de Federada Salud. El sistema desarrollado, llamado GeoManager, usó diversas tecnologías como Java, GeneXus, PostgreSQL y más. El proyecto logró su objetivo pero también enfrentó riesgos y desafíos imprevistos durante su desarrollo.
Este documento discute la sincronización de procesos, incluyendo el problema de la sección crítica, hardware y semáforos de sincronización, problemas clásicos como productor-consumidor, lectores-escritores y filósofos comensales, monitores y sincronización en Java.
El documento describe los problemas de sincronización que surgen cuando procesos comparten recursos críticos. Explica que los procesos no pueden ejecutar sus secciones críticas al mismo tiempo y que cualquier solución debe cumplir con exclusión mutua, progreso y espera limitada. Además, presenta soluciones como semáforos, monitores y transacciones atómicas para abordar problemas como la sección crítica, lectores-escritores y la cena de los filósofos.
Controladores Lógicos Programables: Estructura interna de un PLC y ejemplos d...SANTIAGO PABLO ALBERTO
Este documento describe la evolución de los sistemas de control desde los relevadores electromecánicos hasta los PLC. Explica que los relevadores permitieron el desarrollo de la automatización dedicada, mientras que los PLC permiten la automatización flexible al almacenar el programa lógico en memoria. También define los componentes clave de un sistema PLC como la unidad central de proceso, módulos de entrada/salida, dispositivo de programación, y describe algunas funciones lógicas básicas como AND, OR e inversor
1) El documento presenta un tutorial para el software WindLDR que se utiliza para programar controladores lógicos programables (PLC) de la marca IDEC. 2) Explica los diferentes elementos de un sistema PLC e introduce conceptos básicos como el ciclo de escaneo, las instrucciones de entrada y salida, y las convenciones de NO y NC. 3) El tutorial contiene 14 capítulos que cubren una amplia gama de temas sobre programación básica y avanzada de PLC, incluidos temporizadores, contadores, instrucciones aritméticas
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, EXAMEN A RESUELTA 2do PARCIAL (2019 1er T...Victor Asanza
Este documento contiene 11 problemas relacionados con sistemas digitales en tiempo real y diseño de sistemas embebidos. Los problemas cubren temas como los requisitos de un sistema operativo en tiempo real, ventajas y desventajas de FreeRTOS, diagramas de tiempo de ejecución de tareas, protocolos de comunicación como I2C y SPI, y diseño de hardware para módulos de control de servo y sistemas de procesamiento multiprocesador.
Este documento describe los sistemas operativos de tiempo real. Explica que estos sistemas deben cumplir con ciertos requisitos de tiempo y ser predecibles. También describe algunas de sus características clave como el uso eficiente de la memoria, el manejo de interrupciones, y la comunicación determinista entre tareas mediante semáforos o mensajes.
Este documento describe los sistemas operativos de tiempo real. Explica que estos sistemas deben cumplir con ciertos requisitos de tiempo y ser predecibles. También describe algunas de sus características clave como el uso eficiente de la memoria, el manejo de interrupciones, y la comunicación determinista entre tareas mediante semáforos o mensajes.
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, EXAMEN B RESUELTA 2do PARCIAL (2019 1er T...Victor Asanza
✅ Problema #1: (10%)
¿Completar la siguiente tabla relacionada a las ventajas vs desventajas de un FreeRTOS?
✅ Problema #2: (10%)
Completar la siguiente tabla comparativa entre los protocolos de comunicación SPI vs I2C:
✅ Problema #3: (5%)
¿Cuál de las siguientes afirmaciones no es correcta, al momento de decidir usar Real Time Operating System (RTOS)?
✅ Problema #4: (5%)
¿Cuáles de las siguientes afirmaciones son los requisitos para un Real Time Operating System (RTOS)?
✅ Problema #5: (5%)
Colocar los nombres correctos a la siguiente gráfica referente a la ejecución de una tarea de tiempo real, utilizar las siguientes opciones:
✅ Problema #6: (5%)
En los siguientes diagramas de bloques funcionales, se muestra la escritura y lectura de datos usando el protocolo de comunicación I2C (Inter-Integrated Circuit). Colocar los nombres que describen cada bloque:
✅ Problema #7: (5%)
El Kernel del RTOS facilita a los distintos programas acceso seguro al hardware, realizar el diagrama de tiempo de los estados de las tareas donde se indique claramente con líneas y texto cuando se realiza cada actividad:
✅ Problema #8: (5%)
La siguiente gráfica corresponde al diagrama de tiempo al transmitir un dato usando el protocolo de comunicación RS-232, agregar los textos en las cajas de comentarios:
✅ Problema #9: (20%)
Realizar el diagrama de circuito de hardware de un módulo de servocontrol, que cumpla con las siguientes especificaciones:
✅ Problema #10: (20%)
Dado la siguiente implementación de un sistema de procesador de cuatro núcleos en el SOPC Builder, realizar el diseño del sistema de procesador de cuatro núcleos:
✅ Problema #11: (10%)
De acuerdo con el siguiente código de un contador con su respectivo banco de prueba, dibuje el diagrama de tiempo con los respectivos valores de señales desde su inicio hasta su fin:
Este documento presenta la asignatura Microprocesadores y Microcontroladores de la Licenciatura en Ingeniería en Mecatrónica de la Universidad Mundo Maya. El curso analiza la arquitectura, funcionamiento y aplicaciones de los microprocesadores y microcontroladores, así como su programación y simulación. Los estudiantes aprenderán a identificar las diferencias entre los microprocesadores y microcontroladores, reconocer la organización de la memoria y programarlos usando lenguajes como CCS C. El curso incluye prácticas de electrónica, sim
Este documento presenta la asignatura Microprocesadores y Microcontroladores de la Licenciatura en Ingeniería en Mecatrónica de la Universidad Mundo Maya. El curso analiza la arquitectura, funcionamiento y aplicaciones de los microprocesadores y microcontroladores, así como su programación y simulación. Los estudiantes aprenderán a identificar las diferencias entre los microprocesadores y microcontroladores, reconocer la organización de la memoria y programarlos usando lenguajes como CCS C Compiler. El curso incluye prácticas de electrónica,
Este documento describe una práctica sobre la intercomunicación con sockets en Java. El objetivo es medir el tiempo de llamadas a un servidor local, UDP y TCP tanto en el mismo nodo como en nodos distintos. Se debe implementar un cliente simple que realice llamadas al servidor y medir los tiempos, usando tres tipos de servidores. Se proporciona el código de un servidor de ejemplo para UDP y TCP.
1. Existen tres tipos de configuraciones de PLC: compacto, modular y compacto-modular.
2. Los sistemas de control y supervisión pueden ser centralizados, descentralizados o distribuidos.
3. En un sistema centralizado, todo se controla desde un solo PLC centralizado. En uno descentralizado, las señales de entrada y salida se conectan cerca del proceso. En uno distribuido, varios PLC coordinan el control.
Este documento describe tres tipos de configuraciones de PLC: compacto, modular y compacto-modular. Explica que los PLC compactos integran todas las partes en una sola unidad, mientras que los PLC modulares dividen sus partes en módulos que pueden configurarse según sea necesario. Los PLC compacto-modulares combinan características de ambos tipos. También describe cómo programar una función de temporizador en un PLC y proporciona un ejemplo.
El documento describe la evolución de los controladores lógicos programables (PLC) desde su creación en la década de 1960 hasta la actualidad. Los PLC reemplazaron los sistemas de control cableados basados en relés debido a su programabilidad y flexibilidad. Actualmente, los PLC se utilizan ampliamente en la industria para controlar procesos de automatización complejos.
Este documento presenta una introducción a los controladores lógicos programables (PLC). Explica brevemente la historia de los PLC desde su creación en la década de 1960 hasta las innovaciones de las décadas posteriores. También describe la estructura general de un PLC, incluyendo sus componentes principales como la unidad central de procesamiento, la memoria, los módulos de entrada/salida y el suministro de energía. Finalmente, destaca algunas ventajas clave de los PLC como su flexibilidad, facilidad de programación y capacidad
El documento describe el protocolo de llamada a procedimiento remoto (RPC), el cual permite a un programa ejecutar código en otra máquina de forma remota sin preocuparse por las comunicaciones. RPC funciona a través de stubs y skeletons que encapsulan las comunicaciones entre el cliente y servidor, permitiendo al programador tratar las llamadas como si fueran locales. RPC se usa comúnmente para comunicación entre procesos en redes de computadoras.
Este documento describe la estructura y funcionamiento básico de un controlador lógico programable (PLC). Explica que un PLC es un dispositivo electrónico con memoria programable que permite implementar funciones lógicas, secuenciales y temporizadas para controlar máquinas y procesos industriales. Además, detalla los componentes clave de un PLC, como el procesador, las interfaces de entrada y salida, y la memoria donde se almacena el programa desarrollado por el usuario.
Este documento describe la estructura y funcionamiento básicos de un controlador lógico programable (PLC). Explica que un PLC es un dispositivo electrónico digital con memoria programable que permite implementar funciones lógicas, secuenciales y temporizadas para controlar máquinas y procesos industriales. Además, detalla los componentes clave de un PLC, como el procesador, las interfaces de entrada y salida, y la memoria, y brinda una breve reseña histórica sobre el origen y evolución de esta tecnología
Este documento describe la estructura y funcionamiento básicos de un controlador lógico programable (PLC). Explica que un PLC es un dispositivo electrónico con memoria programable que permite implementar funciones lógicas, secuenciales y temporizadas para controlar máquinas y procesos industriales. Además, detalla los componentes clave de un PLC, como el procesador, las interfaces de entrada y salida, y la memoria, y brinda una breve reseña histórica sobre el origen y evolución de esta tecnología.
Este documento describe la implementación de una Unidad de Control e Interfaz (UCI) para sistemas de adquisición y procesamiento de datos distribuidos. La UCI controla el sistema de forma autónoma mediante secuencias de comandos programadas, liberando al computador anfitrión de las tareas de control. La UCI ejecuta comandos de lectura, escritura y funciones propias para controlar parámetros, activar procesos y recibir resultados con tiempos de respuesta predecibles e independientes de la ubicación de los recursos. El documento
Este documento describe el funcionamiento de las llamadas a procedimientos remotos (RPC). Explica que RPC permite que un procedimiento se ejecute en una máquina remota de forma transparente para el programador. Describe los roles del cliente y servidor, el empaquetado y desempaquetado de parámetros, y cómo se manejan los errores para que RPC funcione de forma fiable.
Este documento presenta un curso sobre controladores lógicos programables (PLC). Explica que los PLC son dispositivos electrónicos con memoria programable que permiten implementar funciones lógicas, secuenciales y de tiempo para controlar máquinas y procesos industriales. Describe algunas aplicaciones comunes de los PLC y sus ventajas sobre los sistemas de control cableados, como requerir menos tiempo y espacio de instalación, permitir modificaciones sin cambiar el cableado y aumentar la fiabilidad. El curso cubrirá conceptos básicos
Este documento presenta un trabajo de investigación sobre los controladores lógicos programables (PLC). Explica qué es un PLC, la historia de su creación, sus ventajas y desventajas, campos de aplicación, estructura y futuro. Concluye que a pesar de que los PLC facilitaron los procesos industriales, nuevos controladores como los PAC podrían reemplazarlos en el futuro.
Los Controladores Lógicos Programables (PLC) son dispositivos electrónicos utilizados para automatizar procesos industriales mediante la programación y control de procesos secuenciales en tiempo real. Un PLC recibe señales digitales y analógicas, procesa información según un programa lógico almacenado y aplica estrategias de control para generar órdenes de salida.
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, EXAMEN A RESUELTA 2do PARCIAL (2019 1er T...Victor Asanza
Este documento contiene 11 problemas relacionados con sistemas digitales en tiempo real y diseño de sistemas embebidos. Los problemas cubren temas como los requisitos de un sistema operativo en tiempo real, ventajas y desventajas de FreeRTOS, diagramas de tiempo de ejecución de tareas, protocolos de comunicación como I2C y SPI, y diseño de hardware para módulos de control de servo y sistemas de procesamiento multiprocesador.
Este documento describe los sistemas operativos de tiempo real. Explica que estos sistemas deben cumplir con ciertos requisitos de tiempo y ser predecibles. También describe algunas de sus características clave como el uso eficiente de la memoria, el manejo de interrupciones, y la comunicación determinista entre tareas mediante semáforos o mensajes.
Este documento describe los sistemas operativos de tiempo real. Explica que estos sistemas deben cumplir con ciertos requisitos de tiempo y ser predecibles. También describe algunas de sus características clave como el uso eficiente de la memoria, el manejo de interrupciones, y la comunicación determinista entre tareas mediante semáforos o mensajes.
⭐⭐⭐⭐⭐ DISEÑO DE SISTEMAS DIGITALES, EXAMEN B RESUELTA 2do PARCIAL (2019 1er T...Victor Asanza
✅ Problema #1: (10%)
¿Completar la siguiente tabla relacionada a las ventajas vs desventajas de un FreeRTOS?
✅ Problema #2: (10%)
Completar la siguiente tabla comparativa entre los protocolos de comunicación SPI vs I2C:
✅ Problema #3: (5%)
¿Cuál de las siguientes afirmaciones no es correcta, al momento de decidir usar Real Time Operating System (RTOS)?
✅ Problema #4: (5%)
¿Cuáles de las siguientes afirmaciones son los requisitos para un Real Time Operating System (RTOS)?
✅ Problema #5: (5%)
Colocar los nombres correctos a la siguiente gráfica referente a la ejecución de una tarea de tiempo real, utilizar las siguientes opciones:
✅ Problema #6: (5%)
En los siguientes diagramas de bloques funcionales, se muestra la escritura y lectura de datos usando el protocolo de comunicación I2C (Inter-Integrated Circuit). Colocar los nombres que describen cada bloque:
✅ Problema #7: (5%)
El Kernel del RTOS facilita a los distintos programas acceso seguro al hardware, realizar el diagrama de tiempo de los estados de las tareas donde se indique claramente con líneas y texto cuando se realiza cada actividad:
✅ Problema #8: (5%)
La siguiente gráfica corresponde al diagrama de tiempo al transmitir un dato usando el protocolo de comunicación RS-232, agregar los textos en las cajas de comentarios:
✅ Problema #9: (20%)
Realizar el diagrama de circuito de hardware de un módulo de servocontrol, que cumpla con las siguientes especificaciones:
✅ Problema #10: (20%)
Dado la siguiente implementación de un sistema de procesador de cuatro núcleos en el SOPC Builder, realizar el diseño del sistema de procesador de cuatro núcleos:
✅ Problema #11: (10%)
De acuerdo con el siguiente código de un contador con su respectivo banco de prueba, dibuje el diagrama de tiempo con los respectivos valores de señales desde su inicio hasta su fin:
Este documento presenta la asignatura Microprocesadores y Microcontroladores de la Licenciatura en Ingeniería en Mecatrónica de la Universidad Mundo Maya. El curso analiza la arquitectura, funcionamiento y aplicaciones de los microprocesadores y microcontroladores, así como su programación y simulación. Los estudiantes aprenderán a identificar las diferencias entre los microprocesadores y microcontroladores, reconocer la organización de la memoria y programarlos usando lenguajes como CCS C. El curso incluye prácticas de electrónica, sim
Este documento presenta la asignatura Microprocesadores y Microcontroladores de la Licenciatura en Ingeniería en Mecatrónica de la Universidad Mundo Maya. El curso analiza la arquitectura, funcionamiento y aplicaciones de los microprocesadores y microcontroladores, así como su programación y simulación. Los estudiantes aprenderán a identificar las diferencias entre los microprocesadores y microcontroladores, reconocer la organización de la memoria y programarlos usando lenguajes como CCS C Compiler. El curso incluye prácticas de electrónica,
Este documento describe una práctica sobre la intercomunicación con sockets en Java. El objetivo es medir el tiempo de llamadas a un servidor local, UDP y TCP tanto en el mismo nodo como en nodos distintos. Se debe implementar un cliente simple que realice llamadas al servidor y medir los tiempos, usando tres tipos de servidores. Se proporciona el código de un servidor de ejemplo para UDP y TCP.
1. Existen tres tipos de configuraciones de PLC: compacto, modular y compacto-modular.
2. Los sistemas de control y supervisión pueden ser centralizados, descentralizados o distribuidos.
3. En un sistema centralizado, todo se controla desde un solo PLC centralizado. En uno descentralizado, las señales de entrada y salida se conectan cerca del proceso. En uno distribuido, varios PLC coordinan el control.
Este documento describe tres tipos de configuraciones de PLC: compacto, modular y compacto-modular. Explica que los PLC compactos integran todas las partes en una sola unidad, mientras que los PLC modulares dividen sus partes en módulos que pueden configurarse según sea necesario. Los PLC compacto-modulares combinan características de ambos tipos. También describe cómo programar una función de temporizador en un PLC y proporciona un ejemplo.
El documento describe la evolución de los controladores lógicos programables (PLC) desde su creación en la década de 1960 hasta la actualidad. Los PLC reemplazaron los sistemas de control cableados basados en relés debido a su programabilidad y flexibilidad. Actualmente, los PLC se utilizan ampliamente en la industria para controlar procesos de automatización complejos.
Este documento presenta una introducción a los controladores lógicos programables (PLC). Explica brevemente la historia de los PLC desde su creación en la década de 1960 hasta las innovaciones de las décadas posteriores. También describe la estructura general de un PLC, incluyendo sus componentes principales como la unidad central de procesamiento, la memoria, los módulos de entrada/salida y el suministro de energía. Finalmente, destaca algunas ventajas clave de los PLC como su flexibilidad, facilidad de programación y capacidad
El documento describe el protocolo de llamada a procedimiento remoto (RPC), el cual permite a un programa ejecutar código en otra máquina de forma remota sin preocuparse por las comunicaciones. RPC funciona a través de stubs y skeletons que encapsulan las comunicaciones entre el cliente y servidor, permitiendo al programador tratar las llamadas como si fueran locales. RPC se usa comúnmente para comunicación entre procesos en redes de computadoras.
Este documento describe la estructura y funcionamiento básico de un controlador lógico programable (PLC). Explica que un PLC es un dispositivo electrónico con memoria programable que permite implementar funciones lógicas, secuenciales y temporizadas para controlar máquinas y procesos industriales. Además, detalla los componentes clave de un PLC, como el procesador, las interfaces de entrada y salida, y la memoria donde se almacena el programa desarrollado por el usuario.
Este documento describe la estructura y funcionamiento básicos de un controlador lógico programable (PLC). Explica que un PLC es un dispositivo electrónico digital con memoria programable que permite implementar funciones lógicas, secuenciales y temporizadas para controlar máquinas y procesos industriales. Además, detalla los componentes clave de un PLC, como el procesador, las interfaces de entrada y salida, y la memoria, y brinda una breve reseña histórica sobre el origen y evolución de esta tecnología
Este documento describe la estructura y funcionamiento básicos de un controlador lógico programable (PLC). Explica que un PLC es un dispositivo electrónico con memoria programable que permite implementar funciones lógicas, secuenciales y temporizadas para controlar máquinas y procesos industriales. Además, detalla los componentes clave de un PLC, como el procesador, las interfaces de entrada y salida, y la memoria, y brinda una breve reseña histórica sobre el origen y evolución de esta tecnología.
Este documento describe la implementación de una Unidad de Control e Interfaz (UCI) para sistemas de adquisición y procesamiento de datos distribuidos. La UCI controla el sistema de forma autónoma mediante secuencias de comandos programadas, liberando al computador anfitrión de las tareas de control. La UCI ejecuta comandos de lectura, escritura y funciones propias para controlar parámetros, activar procesos y recibir resultados con tiempos de respuesta predecibles e independientes de la ubicación de los recursos. El documento
Este documento describe el funcionamiento de las llamadas a procedimientos remotos (RPC). Explica que RPC permite que un procedimiento se ejecute en una máquina remota de forma transparente para el programador. Describe los roles del cliente y servidor, el empaquetado y desempaquetado de parámetros, y cómo se manejan los errores para que RPC funcione de forma fiable.
Este documento presenta un curso sobre controladores lógicos programables (PLC). Explica que los PLC son dispositivos electrónicos con memoria programable que permiten implementar funciones lógicas, secuenciales y de tiempo para controlar máquinas y procesos industriales. Describe algunas aplicaciones comunes de los PLC y sus ventajas sobre los sistemas de control cableados, como requerir menos tiempo y espacio de instalación, permitir modificaciones sin cambiar el cableado y aumentar la fiabilidad. El curso cubrirá conceptos básicos
Este documento presenta un trabajo de investigación sobre los controladores lógicos programables (PLC). Explica qué es un PLC, la historia de su creación, sus ventajas y desventajas, campos de aplicación, estructura y futuro. Concluye que a pesar de que los PLC facilitaron los procesos industriales, nuevos controladores como los PAC podrían reemplazarlos en el futuro.
Los Controladores Lógicos Programables (PLC) son dispositivos electrónicos utilizados para automatizar procesos industriales mediante la programación y control de procesos secuenciales en tiempo real. Un PLC recibe señales digitales y analógicas, procesa información según un programa lógico almacenado y aplica estrategias de control para generar órdenes de salida.
Similar a Manejo Flexible Robusto y Eficiente de Módulos GSM (20)
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...micarnavaltupatrimon
Mi Carnaval es la plataforma que permite conectar al usuario con la cultura y la emoción del Carnaval de Blancos y Negros en la ciudad de Pasto, esta plataforma brinda una amplia oferta de productos, servicios, tiquetería e información relevante para generarle valor al usuario, además, la plataforma realiza un levantamiento de datos de los espectadores que se registran, capturando su actividad e información relevante para generar la analítica demográfica del evento en tiempo real, con estos datos se generan modelos predictivos, que permiten una mejor preparación y organización del evento, de esta manera ayudando a reducir la congestión, las largas filas y, así como a identificar áreas de alto riesgo de delincuencia y otros problemas de seguridad.
Buscador de Eventos y Fiestas en España - Buscafiestaholabuscafiesta
Buscafiesta.es es el buscador líder en España para fiestas y eventos, diseñado para satisfacer las necesidades tanto de organizadores como de asistentes. Este innovador software ofrece una plataforma integral que permite a los organizadores de eventos añadir, gestionar y promocionar sus actividades de manera totalmente autónoma, facilitando la visibilidad y escalabilidad de sus eventos.
Buscafiesta.es no solo conecta a los organizadores con su público objetivo, sino que también ofrece herramientas de marketing y análisis que ayudan a maximizar el impacto de cada evento. Ya sea para una fiesta local, un concierto multitudinario o un evento corporativo, Buscafiesta.es es la solución definitiva para hacer de cada evento un éxito rotundo.
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...micarnavaltupatrimon
Mi Carnaval es la plataforma que permite conectar al usuario con la cultura y la emoción del Carnaval de Blancos y Negros en la ciudad de Pasto, esta plataforma brinda una amplia oferta de productos, servicios, tiquetería e información relevante para generarle valor al usuario, además, la plataforma realiza un levantamiento de datos de los espectadores que se registran, capturando su actividad e información relevante para generar la analítica demográfica del evento en tiempo real, con estos datos se generan modelos predictivos, que permiten una mejor preparación y organización del evento, de esta manera ayudando a reducir la congestión, las largas filas y, así como a identificar áreas de alto riesgo de delincuencia y otros problemas de seguridad.
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Manejo Flexible Robusto y Eficiente de Módulos GSM
1. Manejo flexible, robusto y
eficiente de módulos GSM
Ing. Leandro Francucci (francuccilea@gmail.com)
Vortex
10 de agosto de 2016
1
2. Objetivo
La aplicación de la solución propuesta tiene por objetivos:
Simplificar, optimizar y flexibilizar una aplicación de
embedded software que utiliza un módulo GSM, por medio de las
máquinas de estados y la programación reactiva, como así también
del uso de los principios del diseño ágil.
Comprender las bases de la programación dirigida por
eventos como alternativa a la programación tradicional.
2
3. Agenda
Introducción a la problemática y manejo tradicional de módulos
GSM en embedded systems
Descripción de la solución propuesta
Aplicación del paradigma de la programación reactiva para el
envío de comandos y recepción de respuestas
Identificación de respuestas solicitadas y no solicitadas en
diversos contextos
Definición de respuestas como patrones
Mecanismo de recepción
Búsqueda de patrones
Ejemplo
Funcionamiento y detalles de la implementación
3
5. Comandos AT
Modelo cliente servidor
Generalmente, un módulo GSM se administra por medio de
comandos AT, lo cual implica enviar un comando y esperar la
recepción de una respuesta. Modelo cliente-servidor.
Servidor: módulo GSM. Recibe y procesa las solicitudes (comandos
AT) una por vez, enviando una respuesta en consecuencia.
Cliente: envía la solicitud y espera una respuesta como resultado.
De forma tal que, una próxima solicitud deberá esperar la respuesta del
comando previo
La recepción de la respuesta implica que el módulo está listo para recibir
nuevos comandos
5
6. URC
Por lo general, el módulo notifica asincrónicamente la ocurrencia
de ciertos eventos, sin necesidad de comandos previos
Estas notificaciones por lo general se denominan URC (Unsolicited
Result Code)
Los URC rompen el modelo cliente-servidor
Lo expuesto se aplica a cualquier tipo de módulo que utiliza
comandos AT, ya sea GSM, GPS, dial-up, etc.
6
7. Solución tradicional
Envío y recepción sincrónica
7
client serialInvolved task:
(1) Send command
(2) Wait response
(3) Parseresponse
(4) Return response
Durante el envío
del comando y la
espera de la
respuesta client
permanece
bloqueado.
¿Qué
consecuencias
tiene este
modelo?.
¿Qué ocurre si durante la espera de
respuesta recibimos un URC?.
¿Qué ocurre si el módulo no responde?.
8. Solución tradicional
Envío y recepción sincrónica temporizada
8
client serial
getStringTimed(response, 1000)
Evitamos bloqueos
inesperados e
indefinidos.
9. Solución tradicional
Recepción asincrónica
9
+CSQ: <rssi>,<ber>rnOKrn
client serial delay module
La intención del retardo es asegurar que el módulo procesó y respondió al
comando previo, es el tiempo inter-comando.
Mediante algún mecanismo, serial notifica a client.
La recepción y procesamiento de la respuesta se efectúa en un contexto
de ejecución independiente.
10. Solución tradicional
Respuesta ignorada
10
client serial delay module
rnrnOKrn
Aún con el tiempo
inter-comando,
gran parte de las
respuestas a
comandos se
ignoran.
¿Qué ocurre si la
respuesta
condiciona la
ejecución
posterior?.
¿Qué ocurre si
recibimos un URC?
Este retardo debe asegurar la
respuesta de todos los comandos
utilizados por el sistema.
11. Solución tradicional
Falta de sincronismo – Ruptura del modelo
11
clientBclientA serial
putString( AT+CREG=1rn )
De no asegurar el
procesamiento de un
comando, mediante la
recepción de su
respuesta, en un sistema
concurrente dos o más
tareas pueden enviar
comandos solapados.
Algunos módulos tratan
esta situación como
errónea.
12. Solución tradicional
Sincronismo en bare-metal
12
clientBclientA serial delay
delay(500)
En un sistema
cooperativo no
apropiativo,
utilizando la
ejecución
sincrónica, las tareas
envían sus
comandos de
manera secuencial,
sin solaparse.
¿Qué impacto tiene
este modelo en el
sistema?
13. Solución tradicional
Sincronismo con OS/RTOS
13
clientBclientA serial delay
delay(500)
En un sistema
apropiativo, con
máxima utilización de
CPU, aún utilizando la
ejecución sincrónica, el
envío de comandos
entre tareas puede
solaparse.
14. Observaciones generales
Apropiación prolongada de la CPU.
Probables bloqueos indefinidos. Poca robustez.
No se respeta el modelo cliente servidor, falta de sincronismo.
Prolongados retardos.
Análisis de respuesta por método de fuerza bruta.
Diseño rígido y viscoso, respecto a cambios en el módulo.
14
16. Las premisas
El software de una aplicación que administra y controla un módulo
externo manejado por comandos AT, debería ser tal que:
Envíe comandos AT, y en función de estos espere un conjunto de
respuestas posibles.
Notifique la recepción de respuestas no solicitadas.
Durante la espera de respuesta no se apropie de la CPU.
Notifique si no recibe respuesta alguna ante un comando enviado.
Secuencie el envío de comandos, al ritmo que imponga el módulo en
cuestión.
Incorpore las temporizaciones requeridas por el módulo relacionadas
con los comandos.
16
17. Estructura17
Client evOpen()
evClose()
evComand(cmd, aoDest, waitResponseTime, interCmdTime,
data, nData)
evURC()
ModuleManager
StringParser
Aquellas tareas que requieran enviar comandos y recibir sus
respuestas, como así también URC, son clientes de la entidad
ModuleManager, la cual cumple las premisas propuestas.
La ejecución de ModuleManager es independiente a la de sus
clientes.
Por otro lado, la recepción y procesamiento de las respuestas y
URC se realiza en un contexto de ejecución independiente al de
ModuleManager y sus clientes.
En lenguaje UML, estas entidades se denominan objetos activos.
19. Observaciones
No existe conexión lógica entre el dispositivo y los clientes que requieren enviar
comandos, recibir respuestas o URC. El vínculo entre estos es ModuleManager. Esto
permite encapsular el comportamiento del módulo, y restringir así el acceso
concurrente al mismo.
Cuando un cliente requiere enviar un comando al módulo, lo hace enviando el
evento apropiado a ModuleManager.
El comando representado por la cadena de caracteres lo envía exclusivamente
ModuleManager al módulo.
El ModuleManager posee una cola de comandos, la cual permite recibir nuevos
comandos aún cuando el módulo externo se encuentre en procesamiento.
Evitando bloquear la ejecución de aquellos clientes que esperan respuestas y
garantizando el acceso concurrente al dispositivo. Hasta aquí, la solución se basa
en el patrón de diseño objeto activo[1].
Cada comando que reside en la cola del ModuleManager posee un cliente
asociado.
StringParser envía a ModuleManager una notificación indicando la recepción
de la respuesta. El contexto de ejecución de StringParser puede ser tarea o
ISR.
La notificación de la respuesta se redirige al cliente correspondiente.
Los URC se envían a los clientes que los requieran.
19
25. Diseño flexible
Lo más probable es que por algún motivo (disponibilidad, costo, características,
obsolescencia, etc) el módulo deba cambiarse.
Entonces necesitamos abstraernos por software de las particularidades de estos.
Dependiendo de las necesidades de la solución, estos pueden seleccionarse en
momento de compilación, linkeo o en ejecución.
25
Client evOpen()
evClose()
evComand(cmd, aoDest, waitResponseTime, interCmdTime,
data, nData)
evURC()
registerURCReceiver()
unregisterURCReceiver()
ModuleManager
formatSetCOLP()
formatHangup()
<<abstract>>
ModuleCmd
formatHangup()
Sim900
formatHangup()
Sim5216
StringParser
¿Qué ocurre si diferentes clientes receptores requieren los URC, y
estos se definen durante la ejecución?
27. Patrones
De acuerdo con la norma ITU-T V.250 - Serial asynchronous automatic
dialling and control, el DCE (en este caso módulo GSM) puede emitir
respuestas del tipo código de resultado.
Este se compone de tres partes: <encabezado><resultado><epílogo>
Generalmente, el encabezado y epílogo suelen ser: “rn”.
Hay tres tipos de códigos de resultado
Final: indica la culminación de una acción y que está disponible para recibir
un nuevo comando. Ej: “OK”, “ERROR”.
Intermedio: informa el progreso de una acción. Ej: “CONNECT”.
No solicitado: indica que se produjo un evento no asociado directamente
con un comando. Ej: “RING”.
Las respuestas pueden contener información. Ej:
“rnOKrnrn<value>rn”
Llamamos a las respuestas patrones
27
28. Mecanismo de recepción
El software que busca e identifica patrones podría:
Ejecutarse en contexto de interrupción, específicamente en ISR de
recepción, la búsqueda se realizar “on-line”.
Almacenar en ISR los caracteres recibidos, para luego realizar la
búsqueda fuera de interrupción.
Ser una combinación de las anteriores, en la cual la ISR identifica
cadenas válidas y notifica al algoritmo que comience la búsqueda
sobre esta última.
Otras.
Estas soluciones requieren conocer, antes de comenzar la
búsqueda, el conjunto de cadenas a esperar de acuerdo al
comando enviado y los URC disponibles.
28
29. Búsqueda de patrones
Se pretende diseñar un mecanismo tal que cumpla con las siguientes
premisas:
La búsqueda se realiza “on-line”
Conoce las respuestas esperadas, de acuerdo al comando
enviado
Identifica los URC
Las búsquedas se realizan sobre cadenas codificadas en ASCII
Permite buscar cadenas con formato y argumentos (patrones)
Los patrones se especifican en tiempo de compilación
Su entrada debe ser intuitiva, visualmente clara y flexible
Deben minimizar su uso de RAM
No requieren pre-procesamiento
Posee un simple mecanismo de notificación al encontrar un patrón
29
30. Árbol
Un gran desafío es lograr una búsqueda
“on-line” eficiente, evitando el método
tradicional de la fuerza bruta.
El principio del método se basa en la
estructura de datos del tipo árbol, la cual
permite arreglar los patrones en un
diagrama como el de la figura.
Por definición: un árbol es una estructura
de datos que imita la forma de un árbol
(un conjunto de nodos conectados). Un
nodo puede contener 0 o más nodos
hijos. Sólo puede haber un único nodo sin
padres, el raíz. El nodo sin hijos se
denomina hoja. El resto son ramas. Ej de
(1) a (2): “ringrn”
30
31. Algoritmo de búsqueda
Consiste en:
Mientras el caracter recibido pertenezca a los esperado por el nodo actual, la
búsqueda continúa, caso contrario vuelve al root,
la búsqueda termina con éxito, si se encuentra el nodo hoja, aquellos coloreados
en negro, en cuyo caso vuelve al root,
la búsqueda se realiza en cada caracter recibido, lo que implica unas pocas
comparaciones de caracteres para determinar el próximo nodo. Esto demuestra
la eficiencia del método,
el funcionamiento se resume al de un autómata finito, en donde el alfabeto de
entrada se forma por los caracteres enviados por el módulo, los estados por los
nodos y las transiciones por el enlace entre estos,
cuando la búsqueda se realiza con éxito, el mecanismo notifica que ha sido
recibido el patrón en cuestión, el cual se forma desde el nodo root al nodo hoja.
Por otro lado, para que el algoritmo identifique el comando enviado y con esto
los patrones a esperar, el método requiere habilitar el eco de comandos. Aunque
no es estrictamente necesario.
31
32. Nodo transparente
En un nodo transparente, si el caracter recibido no coincide con
los esperados no transita al nodo root como lo hace el resto, por
el contrario, permanece en este hasta que arribe el caracter
esperado. Ej: ver (5).
Son básicamente "comodines", los cuales se utilizan para la
búsqueda de patrones con datos variables.
32
33. Simplificando el árbol
La representación de patrones
puede simplificarse respecto de la
figura anterior, agrupando los
nodos que se encuentren desde
uno que tenga más de un hijo
hasta un nodo hoja,
descendiendo en la jerarquía.
La representación es más clara y
sencilla.
33
34. Funcionamiento
Ahora el algoritmo transita a un
nuevo nodo (manteniendo la
búsqueda) si el caracter
ingresado es el último caracter de
la cadena esperada.
Si el caracter ingresado no
coincide con el esperado, la
búsqueda falla y termina
volviendo a root.
34
41. Referencias
[1] L. Francucci, “Administración de módulos GSM en sistemas reactivos”,
Embedded Exploited, http://embedded-
exploited.blogspot.com.ar/2012/12/administracion-de-modulos-gsm-en.html
[2] L. Francucci, “Identificación de respuestas a comandos AT en ISR. Intérprete
de comandos”, Embedded Exploited, http://embedded-
exploited.blogspot.com.ar/2012/12/identificacion-de-respuestas-
comandos.html
[3] D. Harel, "Statecharts: A Visual Formalism for Complex Systems", Sci. Comput.
Programming 8 (1987), pp. 231–274.
[4] RKH, “RKH Sourceforge download site,”, http://sourceforge.net/projects/rkh-
reactivesys/ , August 7, 2010.
[5] Object Management Group, “Unified Modeling Language: Superstructure
version 2.1.1,” formal/2007-02-05, Febrary 2007.
[6] B. P. Douglass, “Design Patterns for Embedded Systems in C,”, Elseiver,
October 7, 2010
[7] M. Samek, “Practical UML Statecharts in C/C++, Second Edition: Event-Driven
Programming for Embedded Systems,” Elsevier, October 1, 2008.
[8] Kernighan & Ritchie, "C Programming Language (2nd Edition)", April 1, 1988.
41