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?
fuente
Respuestas:
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).
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.
fuente
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.
fuente
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.
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.
fuente
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 .
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.
fuente
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.
fuente