¿Hay algún PLC disponible comercialmente que pueda compilar / descargar programas a través de una API?


9

Mi equipo ha decidido utilizar un PLC para controlar un proceso industrial que requiere IO simple en tiempo real para dispositivos externos con un procesamiento mínimo. Sin embargo, esperamos que los resultados exactos necesarios varíen entre las ejecuciones (de hecho, una ejecución determinada rara vez se repetirá), y el operador no tendrá experiencia en programación de PLC / software.

Si bien no puedo revelar el producto real, la mejor analogía sería que estamos diseñando un fabricante de batidos industrial, con PLC que controla con precisión la apertura y cierre de diferentes válvulas en tiempo real. El operador utilizará nuestro software para diseñar una secuencia personalizada de adiciones de diferentes reactivos y el encendido / apagado de maquinaria pesada relevante (por ejemplo, un mezclador industrial).

Aquí está el desafío: nuestro enfoque actual es escribir nuestro propio compilador que traduzca las instrucciones que da el operador (abrir la válvula A durante 10 ms, abrir la válvula B durante 20 ms) en lógica de escalera y código de máquina PLC. Luego descargaríamos directamente nuestro programa autocompilado al PLC a través de serie. Todo esto debería ser automatizado para que el operador solo tenga que hacer clic en un botón después de su secuencia de pasos.

Sin embargo, a pesar de mi investigación, no he encontrado un solo proveedor de PLC que 1) tenga un compilador con API o publique suficiente información sobre su código de máquina de PLC para permitir que uno escriba un compilador, 2) admite la descarga directa de programas al PLC sin el uso del software de programación del proveedor (programador CX, estudio Atmel, etc.).

Me hacen creer que podríamos estar adoptando un enfoque incorrecto, o al menos no saber qué producto buscar. La E / S es lo suficientemente simple como para no justificar la construcción de nuestra propia placa, pero la funcionalidad que estamos buscando, a saber, la interacción del PLC con el software de PC de alto nivel, no parece estar disponible.

Idealmente, nos gustaría descargar todo el programa al PLC de una vez y no enviar instrucciones de una en una. La ejecución de todas las instrucciones en el PLC (o cualquier dispositivo que terminemos usando) debe ser en tiempo real.

¿Hay algún PLC disponible comercialmente que admita la compilación y descarga de código de máquina, de modo que todo el proceso pueda ser automatizado por un programa más grande? ¿Hay alguna otra forma de descargar un programa en tiempo real a un PLC escrito por un software de PC escrito en un lenguaje de alto nivel?


¿Qué pasa con el uso de un sistema operativo y dejar que el usuario edite su código de programa a través de una GUI personalizada y compilarlo, por ejemplo con GCC y luego descargar el programa compilado a su "PLC"?
Eggi

¿Podría sugerir materiales o tutoriales que introduzcan programación y principios RTOS? Estoy más familiarizado con el desarrollo embebido no RT y la lógica de escalera tradicional, así que aunque estoy muy interesado en esta solución, no estoy muy seguro de por dónde empezar con esto.
Dragonsheep

@ ¿Qué es una API? Si es "interfaz de programa de aplicación", ¿cómo se compila / descarga a través de él?
Dmitry Grigoryev

1
@Dragonsheep Es mejor ignorar esta idea. Hay demasiados aspectos que no son prueba de la industria, como dijo Henry Cun. 1º: ¿Cómo se cambia el código antes de compilar? Ponlo en algún lugar en texto claro? 2do: soporte durante décadas con el sistema operativo
Eggi

Respuestas:


11

Definitivamente puede usar un PLC para esto. Excepto que no desea cambiar el código del PLC para cada "receta de batido".
Debe escribir una aplicación de PLC que lea recetas de cualquier fuente, como tarjetas SD, almacenamiento en red, almacenamiento interno o incluso códigos QR, si le apetece.

A menudo, los PLC ya tienen una función para esto , donde una receta es un conjunto de parámetros que puede cargar (y editar con la HMI).

IO en tiempo real a dispositivos externos con un procesamiento mínimo

Independientemente de lo que elija utilizar, no invente su propio PLC . Probablemente no valga la pena el tiempo. Y no piense que el software o el módulo adicional es costoso, no puede escribirlo por ese precio.


5

Asumiré que esta es una tarea bastante simple para un plc mínimo, en lugar de algo que usa PLC industriales avanzados

También supondré que esto es industrialmente útil, es decir, que el cliente debe poder cambiar la receta dentro de 10 años. Además, su utilidad debería sobrevivir a la salida del negocio o al cambio a nuevos productos.

Muchos sistemas requerirán una pieza especial de software para descargar y / o compilar, como usted dice. A largo plazo, sus clientes descubrirán que Windows 11,12,13 ya no ejecutará el software. Para evitar esto, desea que el programa sea simple ascii, enviado a través de un puerto serie de algún tipo. Esto ha estado sucediendo durante aproximadamente 50 años y no muestra signos de desaparecer.

Forth puede "compilarse" en el destino, por lo que el cliente solo tiene que enviarle un ASCII desde un terminal. Nunca será obsoleto.

Parte del ethos de Forth es que usted escribe primitivas específicas de dominio ("AddBanana", "Blend", "Pour") que sus clientes tratan como un lenguaje específico para el producto. Si bien Forth es considerado arcano por personas informáticas, es conceptualmente muy fácil de usar para los usuarios finales; este sería un programa válido.

10 grams Thickener 500 grams Banana 15 seconds Hi Blend 50 grams Blueberry 5 seconds slow Blend Pour 5 seconds wait CleanCycle

Como ejemplo, podría usar un pequeño PLC basado en Arduino y cargar FlashForth. Hay muchas otras opciones, por ejemplo, MPEForth y un PLC basado en córtex ARM

Su software ahora es cualquier editor y algún programa para enviar en serie. Hay herramientas estándar para esto, y mucho después de que te hayas ido, el cliente puede hacerlo funcionar desde cero, ya que es muy simple.

Una falla con toda su idea es que el cliente está programando el producto y, por supuesto, puede rellenarlo haciendo lo incorrecto, sea cual sea el enfoque que tome.

Debido a que se trata solo de archivos ASCII, es bastante fácil para usted crear un shell elegante para el cliente, pero el producto aún funcionará sin él.


¡Gracias por la respuesta! ¡Algo como el Controllino que sugirió es exactamente lo que estamos buscando! Un PLC minimalista donde tenemos control directo sobre el software y podemos descargar programas a través de serie. Cuando dice que tenemos "muchas otras opciones", ¿cuáles serían los términos de búsqueda relevantes / qué otros productos sugiere? Mi equipo está más familiarizado con la industria pesada, por lo que se nos acabaron las ideas después de revisar los catálogos habituales de Siemens / Mitsubishi / Omron y no encontrar lo que estábamos buscando.
Dragonsheep

@Dragonsheep: le recomendamos que espere uno o dos días antes de aceptar una respuesta. Esto alienta a otros a escribir y obtendrá más respuestas y diferentes puntos de vista.
Transistor

Si este es un enfoque interesante para usted, y usted es gente que paga dinero por herramientas, experiencia y apoyo, entonces puede hablar con Stephen Pelc en MPEForth. Hace este tipo de cosas comercialmente. Por otro lado, si son personas de software libre, busque módulos basados ​​en arduino o plc's y FlashForth.
Henry Crun

1
También estaría de acuerdo con las respuestas de @Transistor y Jeroen: si lo que necesita es un PLC industrial, entonces son lo que necesita. (y los módulos aleatorios de Arduino plc no son lo suficientemente robustos como para ser controladores de fábrica, más un controlador de caja interna benigna). Tendería a estar en desacuerdo con las soluciones tipo "obtener algo con un sistema operativo y usar GCC", ya que probablemente conduzcan al peor de los mundos posibles.
Henry Crun

De hecho, esta es una aplicación industrial que esperamos vender a un cliente. Esperamos tener la confiabilidad de más de 20 años que los grandes vendedores industriales (Mitsubishi, etc.) han demostrado con sus productos, por lo que existe cierta preocupación por ir a uno de estos nuevos proveedores de hardware de código abierto. Al mismo tiempo, el software inteligente de código abierto parece darnos el control que estamos buscando. Stephen parece ser una buena persona para contactar. Gracias por el liderato.
Dragonsheep

2

No te metas con Arduino, etc., para una aplicación industrial. Los PLC están diseñados teniendo en cuenta la confiabilidad, robustez, estándares y soporte a largo plazo. La compañía para la que trabajo está ejecutando al menos un PLC de Texas Instruments desde 1987 y varios otros desde principios de la década de 1990. Los repuestos aún están disponibles de fuentes industriales en eBay, etc.

Use un PLC y una HMI industrial con suficiente potencia para hacer lo que necesita. Recientemente he completado un trabajo de mezclador donde queríamos flexibilidad de recetas con pasos automáticos y manuales. La secuencia se controla pasando a través de una matriz que se programa a través de la HMI.

  • Número de paso por ejemplo, '5'.
  • Descripción. p. ej., "Pesar plátano automáticamente", "Cerezas de carga manual", "Raspar"
  • Velocidad de mezcla (RPM). por ejemplo, '25'.
  • Tiempo de mezcla (s). por ejemplo, '120'.
  • ¿Se requiere raspar al final del paso? (S / N), por ejemplo, 'Y'.
  • Calor requerido? (S / N), por ejemplo, 'N'.
  • Temperatura (° C). por ejemplo, '0'.

Diseñamos el sistema con una serie de veinte pasos que es suficiente para el futuro previsible pero que podría expandirse fácilmente, si fuera necesario. Todas las configuraciones tienen valores mínimos y máximos establecidos en la aplicación HMI.

Esto deja el sistema muy flexible y editable. Tenemos un sistema robusto con un PLC y una HMI familiar y compatible con cualquiera de una gran cantidad de empresas.


Gracias por la respuesta. La aplicación particular que tenemos es para la bioquímica automatizada, por lo que con cientos de reactivos y potencialmente cientos de pasos involucrados en el proceso que estamos automatizando, es mi opinión actual que cualquier tipo de programación de dispositivos HMI sería irremediablemente complicado.
Dragonsheep

1

No ha especificado un presupuesto para hardware y software de desarrollo o para el costo por unidad del hardware implementado, pero si puede pagarlo, su requerimiento podría cumplirse con el hardware CompactRIO de National Instruments y el software LabVIEW Real-Time .

El controlador CompactRIO es un controlador integrado resistente, confiable, de alto rendimiento e industrial con certificaciones estándar de la industria.

Hay disponible una gama de módulos de E / S que se conectan al chasis del controlador, o si su diseño es fijo y desea reducir el costo por unidad, los controladores y las E / S están disponibles como tarjetas individuales para que pueda integrarlas con su hardware . Usted escribiría software en LabVIEW Real-Time para ejecutarlo en el controlador y llevar a cabo el control del proceso, y esto también podría servir una interfaz de usuario basada en web para editar los pasos del proceso o comunicarse con un programa de interfaz de usuario, escrito en LabVIEW u otro idioma , ejecutándose en una PC host. Tengo una experiencia limitada con los PLC, pero creo que es justo decir que esta solución sería un orden de magnitud más potente y flexible, aunque probablemente a un costo mayor.

Tenga en cuenta que aunque el controlador cRIO viene con un FPGA integrado, no necesita comprar el módulo LabVIEW FPGA a menos que realmente necesite escribir un código FPGA; Parece que en tiempo real debería estar bien para sus necesidades.


0

Mi sugerencia es echar un vistazo a LabVIEW. Creo que satisfaría las necesidades enumeradas en su publicación. Evita escribir tu compilador. Eso es mucho más trabajo del que necesitas hacer. Son muchos PLC comerciales que se ajustan perfectamente. Creo que NI es uno de los más fáciles para trabajar. En cuanto a la descarga de programas de usuario, debe crear una aplicación para lograrlo.

http://www.ni.com/en-us/shop/labview.html

NI tiene una amplia gama de módulos que incluyen AtoD, salidas digitales, salidas analógicas, interfaz CAN, etc. El software es muy útil para crear interfaces de usuario atractivas. La desventaja es que no es barato. Si también es muy diferente de la programación basada en texto. Se requeriría algo de entrenamiento.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.