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

9

Mi equipo ha decidido usar un PLC para controlar un proceso industrial que requiere IO simple y en tiempo real para dispositivos externos con un procesamiento mínimo. Sin embargo, esperamos que los resultados exactos necesarios varíen entre ejecuciones (de hecho, una ejecución dada rara vez se repetirá), y el operador no tendrá ninguna experiencia de 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 licuados industriales, con PLC controlando con precisión la apertura y el 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 traduce las instrucciones que da el operador (abrir la válvula A durante 10 ms, abrir la válvula B durante 20 ms) en la lógica de escalera y el código de la máquina del PLC. Luego, descargamos directamente nuestro programa autocompilado al PLC a través de una serie. Todo esto tendría que ser automatizado para que el operador solo tenga que hacer clic en un botón después de encontrar 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 permitirle escribir un compilador, 2) es compatible con la descarga directa de programas al PLC sin utilizar el software de programación del proveedor (programador CX, estudio Atmel, etc.).

Me llevan a creer que podemos estar tomando el enfoque equivocado, o al menos no sabemos qué producto buscar. La I / O es lo suficientemente simple como para no justificar la creación de nuestra propia placa, pero la funcionalidad que estamos buscando, a saber, la interacción del PLC con software de PC de alto nivel, no parece estar disponible.

Idealmente, nos gustaría descargar todo el programa al PLC a la vez y no enviar instrucciones una por 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 manera de descargar un programa en tiempo real a un PLC escrito por software de PC escrito en un lenguaje de alto nivel?

    
pregunta Dragonsheep

5 respuestas

11

Definitivamente puedes usar un PLC para esto. Excepto, no desea cambiar el código de PLC para cada "receta de licuado".
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 se siente elegante.

A menudo, los PLC ya tienen una característica para respondido por el Jeroen3

5

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

También supondré que esto es útil a nivel industrial, es decir, que el cliente debe poder cambiar la receta dentro de 10 años. Además, su utilidad debería sobrevivir a que usted salga del negocio o se traslade 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 encontrará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 ocurriendo durante aproximadamente 50 años y no muestra signos de desaparecer.

Forth puede ser "compilado" en el objetivo, por lo que el cliente solo tiene que enviarle ascii desde un terminal. Nunca será obsoleto.

Parte del espíritu de Forth, es que escribe primitivas específicas de dominio ("AddBanana", "Blend", "Pour") que sus clientes tratan como un idioma específico para el producto. Si bien la gente de la informática considera a Forth como arcano, conceptualmente es 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, puede usar una pequeña PLC basado en Arduino y carga FlashForth Hay muchas otras opciones, por ejemplo MPEForth y un ARM basado en un córtex PLC

Su software es ahora cualquier editor y algún programa para enviar en serie. Existen herramientas estándar para esto, y mucho después de que se haya ido, el cliente puede hacer que funcione 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, cualquiera que sea el apporach que tome.

Debido a que solo son archivos ASCII, es bastante fácil para usted crear un shell elegante para el cliente, pero el producto seguirá funcionando sin él.

    
respondido por el Henry Crun
2

No te metas con Arduino, etc., para una aplicación industrial. Los PLC están diseñados con confiabilidad, robustez, estándares y soporte a largo plazo en mente. La compañía para la que trabajo está ejecutando al menos un PLC de Texas Instruments desde 1987 y varios más desde principios de los años noventa. Los repuestos todavía 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 completé un trabajo de mezclador en el que queríamos flexibilidad de recetas con pasos manuales y automatizados. La secuencia se controla recorriendo una matriz que se programa a través de la HMI.

  • número de paso. p.ej. '5'.
  • Descripción. p.ej. 'Bandeja de pesaje automática', 'Cerezas de carga manual', 'Raspar hacia abajo'.
  • Velocidad de mezcla (RPM). p.ej. '25'.
  • Tiempo de mezcla (s). p.ej. '120'.
  • ¿Se requiere raspado al final del paso? (S / N) por ej. 'Y'.
  • ¿Calor requerido? (S / N) por ej. 'N'.
  • Temperatura (° C). p.ej. '0'.

Diseñamos el sistema con una serie de veinte pasos que son suficientes para el futuro previsible pero que podrían ampliarse fácilmente, si fuera necesario. Todos los ajustes 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 un HMI familiar y compatible con cualquiera de una gran cantidad de compañías.

    
respondido por el Transistor
1

No ha especificado un presupuesto para hardware y software de desarrollo o para el costo por unidad del hardware implementado, pero si puede permitírselo, sus requisitos podrían cumplirse con National Instruments CompactRIO y hardware LabVIEW Real-Time software.

  

El controlador CompactRIO es un dispositivo robusto, confiable y de alto rendimiento.   Controlador integrado de grado industrial con estándar de la industria   certificaciones.

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 tableros únicos para que los integre. con su hardware Usted escribiría software en LabVIEW Real-Time para ejecutarse en el controlador y llevar a cabo el control del proceso, y esto también podría servir una interfaz de usuario basada en la web para editar los pasos del proceso o podría comunicarse con un programa de interfaz de usuario, escrito en LabVIEW u otro idioma. , ejecutándose en un PC host. Tengo experiencia limitada con 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 Real-Time debería estar bien para sus necesidades.

    
respondido por el nekomatic
0

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

enlace

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. El inconveniente es que no es barato. También es muy diferente de la programación basada en texto. Se requeriría algún entrenamiento.

    
respondido por el user125718

Lea otras preguntas en las etiquetas