El control de versiones para programas de lógica de escalera (LL) para controladores lógicos programables (PLC) parece ser prácticamente inexistente. Puede ser porque LL es un lenguaje visual y tiende a almacenarse en archivos binarios, o puede ser porque el control del código fuente no se ha "entendido" en los círculos de ingeniería de control de procesos, o tal vez mi Google-Fu está débil esta noche.
¿Conoces alguna solución realista y útil para el control de versiones para tales sistemas?
Definiciones:
- realista = los cambios en los programas son rastreados por el usuario y están sujetos a reversión y fusiones
- útil = el sistema se integra con diseñadores visuales de LL, no se limita a LL de un solo fabricante de PLC y no cuesta una cantidad ridícula de dinero?
Nota: He oído hablar de personas que usan SVN o Mercurial et al para rastrear los archivos binarios, pero no creo que las capacidades de diferenciar / fusionar muestren diferencias legibles.
APÉNDICE:
Al principio solo teníamos que soportar los PLC Allen-Bradley. Ahora también tenemos PLC Siemens y MicroLogix. Todavía estoy buscando una solución viable ...
fuente
Respuestas:
Lamentablemente, la respuesta dependerá del proveedor de PLC que esté utilizando. La mayoría de ellos almacenan su código en formatos de archivo patentados, por lo que es difícil usar un control de fuente regular.
Rockwell ofrece FactoryTalk AssetCenter si está utilizando Allen-Bradley. No lo he tasado, pero es probable que sea caro. Sin embargo, hace más que controlar la fuente.
He usado un control de fuente regular (Mercurial) con archivos PLC Beckhoff TwinCAT. Eso parece funcionar bien, pero nunca tuve que fusionarme con nadie. Se supone que su nueva versión de TwinCAT (3) que saldrá a finales de este año se basa en Visual Studio 2010, y supongo que tendrá mejores ofertas listas para usar para la integración del control de versiones. Dedos cruzados.
Comience a editar
Solo quería agregar que ahora he usado el nuevo producto TwinCAT 3, y estoy usando Mercurial (TortoiseHg y el complemento VisualHg para Visual Studio). Funciona bastante bien. En primer lugar, VisualHg lo hace sentir muy integrado en el IDE de Visual Studio 2010 que utiliza TwinCAT 3. Sin embargo, el código fuente de los programas TwinCAT 3 generalmente se almacena en archivos XML. Esta es una gran mejora con respecto a los formatos binarios patentados de otros proveedores que he usado, pero aún no se fusiona bien. Algunos de los archivos no tienen saltos de línea en el XML (he escrito a Beckhoff sobre esto), lo que significa que un sistema de control de fuente línea por línea no hace mucho. Además, dado que es XML, el orden de los nodos en el archivo XML parece cambiar aleatoriamente, incluso cuando no realiza ningún cambio. También, Creo que a veces genera nuevas ID para algunos nodos cuando no es necesario, lo que genera cambios superfluos que Hg detecta. Esto hace que sea imposible hacer cambios a un programa TwinCAT 3 por 2 programadores al mismo tiempo, y luego fusionar los cambios. Es una desafortunada supervisión por parte de los desarrolladores de TwinCAT 3, quienes indudablemente usan el control de fuente regularmente en su propio trabajo, y no vieron la ventaja para nosotros, los programadores de baja automatización, de tener acceso a herramientas igualmente poderosas. :( quienes indudablemente usan el control de fuente regularmente en su propio trabajo, y no vieron la ventaja para nosotros, los programadores de baja automatización, de tener acceso a herramientas igualmente poderosas. :( quienes indudablemente usan el control de fuente regularmente en su propio trabajo, y no vieron la ventaja para nosotros, los programadores de baja automatización, de tener acceso a herramientas igualmente poderosas. :(
Fin de edición
Comience a editar # 2
Me gustaría señalar que TwinCAT 3.1 ahora tiene formatos de archivo que se adaptan mejor al control de fuente, particularmente los archivos de lenguaje de texto estructurado. De hecho, el producto ahora está diseñado para admitir la integración con Team Foundation Server, creo.
Fin Editar # 2
La otra alternativa es que la mayoría de los programas de PLC se pueden exportar a archivos de texto. RSLogix 5000, por ejemplo, exporta sus proyectos a un archivo L5K, que es solo texto. He ejecutado scripts contra esos archivos antes, son bastante fáciles de analizar. Funcionarían bien con el control de fuente. Por supuesto, eso significa exportar todo el tiempo, lo que apesta.
Si va con cualquier control de versión estándar, le recomiendo un VCS distribuido, como Git o Mercurial, porque con los PLC, la mitad del tiempo está en el sitio y no puede conectarse a su servidor doméstico, por lo que la capacidad de realizar compromisos locales Es una verdadera bonificación.
La otra cosa que debe tener en cuenta es que algunos entornos de programación de PLC, como RSLogix, ya incluyen una herramienta diff, por lo que puede ejecutar diffs en dos versiones de sus proyectos. Esto, combinado con guardar un nuevo archivo con la fecha de hoy todos los días, es con lo que la mayoría de las tiendas de automatización parecen pasar.
fuente
Si puede, mire B&R Automation.
Divulgación completa ... Trabajo para un socio de ventas de B&R Automation.
Los proyectos modernos de automatización de B&R funcionan muy bien con el software de versiones. Actualmente uso GIT (que no está integrado), aunque se supone que hay integración con SVN en el software. Toda la fuente HMI se guarda como XML, y todas sus fuentes de lenguaje PLC (incluida la escalera) se guardan en texto en lugar de binario (principalmente XML también). Si tiene que hacer fusiones manuales, entonces tiene que "descifrar" el XML hasta cierto punto, pero no me resultó tan difícil. Y la fusión automática generalmente hace que sea innecesario de todos modos.
fuente
Acabo de ver esta pregunta, y en realidad hay una solución enlatada, desde GE-IP de todos los lugares. Echa un vistazo
Proficy Change Management
. Este producto controla la versión desde el punto de vista de los sistemas de control PLC, en lugar de un control de versión puro del punto de vista de los archivos: funciona como una capa que se encuentra encima de un VCS (la parte aterradora es que originalmente este VCS era Visual SourceSafe) y maneja la gestión de derechos, informes y pago / registro.Si bien el producto es de GE-IP, está diseñado para admitir una variedad de sistemas PLC y HMI listos para usar.
Revelación completa, solía trabajar para una empresa que vendía e instalaba PCM (pero eso fue hace 7 años). Entonces, si me preguntas cómo era en ese entonces, ¡es probable que te diga dónde salió todo mal!
fuente
Por horrible que parezca, en un caso terminé usando la función "Imprimir en PDF" del software de lógica de escalera (en este caso, era el CScape de Horner) y luego un programa de diferenciación de PDF gráfico gratuito (por ejemplo, DiffPDF ) para comparar los cambios porque el código fuente solo estaba disponible en un formato binario patentado.
fuente