¿Cómo se usa el lenguaje ensamblador en la ingeniería de control?

El lenguaje ensamblador es muy valioso para el ingeniero de control porque tiene el control completo del código de la máquina:

  • Puede acceder a registros dependientes de la máquina y E / S
  • Puede controlar el comportamiento exacto del código en secciones críticas que de otro modo podrían implicar un punto muerto entre múltiples hilos de software o dispositivos de hardware
  • Puede romper las convenciones de su compilador habitual, lo que podría permitir algunas optimizaciones (como romper temporalmente las reglas sobre asignación de memoria, subprocesos, convenciones de llamadas, etc.)
  • Puede crear interfaces entre fragmentos de código utilizando convenciones incompatibles (por ejemplo, producidas por diferentes compiladores o separadas por una interfaz de bajo nivel)
  • Puede obtener acceso a modos de programación inusuales de su procesador (por ejemplo, modo de 16 bits para interfaz de inicio, firmware o código heredado en PC con Intel)
  • Puede producir código razonablemente rápido para bucles ajustados para hacer frente a un mal compilador no optimizador (¡pero hay compiladores optimizadores gratuitos disponibles!)
  • Puede producir código optimizado a mano perfectamente ajustado para su configuración de hardware particular, aunque no para el de otra persona.
  • Puede escribir algo de código para el compilador de optimización de su nuevo idioma (eso es algo que muy pocos harán e incluso con poca frecuencia)

Hay muchos usos del lenguaje ensamblador en Ingeniería de Control:

  • Escribir controladores de dispositivo para dispositivos nuevos
  • Programación de microcontroladores
  • Escribir partes críticas en sistemas operativos en tiempo real
  • Escribir código de interfaz para sistemas embebidos

Cuando no usa lenguaje ensamblador, en Control Engineering la mayoría de las veces usa lenguaje de programación C o incluso una combinación de ambos lenguajes llamando al código crítico escrito en ensamblado desde C.

Para obtener más información, eche un vistazo a:

http://www.urel.feec.vutbr.cz/~f…

http: //www.covingtoninnovations….

http: //www.plantation-production…

Microcontroladores: hardware y firmware para dispositivos de 8 y 32 bits: Franco Zappa: 9788893850223: Amazon.com: Libros

El lenguaje ensamblador coloca al programador en el “nivel intestinal” del procesador de control. A cambio del lenguaje de programación mucho más complicado, tiene un control íntimo con un mínimo de “gastos generales”. Si habla del control de una línea de ensamblaje industrial, hay muchos lenguajes de programación de orden superior optimizados para la aplicación. Si está programando la computadora de control de vuelo con un circuito de procesamiento de 40 milisegundos para aviones de combate donde el tiempo de los procesos es crítico para el milisegundo y las excepciones deben manejarse sin que la computadora o el A / C se bloqueen, seguramente lo hará. a nivel de montaje.

Hace muchos años, la USN realizó un experimento al escribir software de control de vuelo en un lenguaje de orden superior. Fue más fácil, más rápido y menos costoso. ¡IIRC, el resultado fue un avión roto cuando la computadora de la misión y HOL OFP eructaron al aterrizar y se congelaron! ¡Las cosas pueden haber mejorado desde entonces, pero por mi parte me sentiría mucho más cómodo con las excepciones de manejo del lenguaje ensamblador en lugar de cualquier HOL!

Depende de qué lado de la ingeniería de control se encuentre. Si está desarrollando aplicaciones para una planta, probablemente usará lenguajes de nivel superior, como la lógica de Ladder, generalmente conocida como simplemente Ladder. O tal vez Texto estructurado, también conocido como ST. Ambos son parte de IEC 61131-3, un estándar para aplicaciones de programación para controladores lógicos programables.

Aunque es muy sexy, desde un punto de vista técnico, desafortunadamente el lenguaje ensamblador no es muy productivo y exige desarrolladores altamente capacitados. Ese no es el caso de lenguajes de nivel superior como Ladder o ST.