Existe-t-il des solutions réalistes / utiles pour le contrôle de code source pour les programmes de logique à relais


17

Le contrôle de version pour les programmes à logique à relais (LL) pour les automates programmables (API) semble être pratiquement inexistant. C'est peut-être parce que LL est un langage visuel et a tendance à être stocké dans des fichiers binaires, ou peut-être parce que le contrôle du code source n'a pas "pris" dans les cercles d'ingénierie du contrôle des processus - ou peut-être que mon Google-Fu est faible ce soir.

Connaissez-vous des solutions réalistes et utiles pour le contrôle de version de tels systèmes?

Définitions:

  • réaliste = les modifications apportées aux programmes sont suivies par l'utilisateur et sujettes à réversion et fusion
  • utile = le système s'intègre aux concepteurs visuels de LL, n'est pas limité à LL d'un seul fabricant d'automates et ne coûte pas une somme d'argent ridicule?

Remarque: J'ai entendu parler de personnes utilisant SVN ou Mercurial et al pour suivre les fichiers binaires, mais je ne pense pas que les capacités de diff / fusion afficheraient des différences lisibles.

ADDENDA:

Au début, nous n'avions qu'à prendre en charge les automates Allen-Bradley. Maintenant, nous avons également des automates Siemens et MicroLogix. Toujours à la recherche d'une solution viable ...



Bonjour @Stevenalowe, y a-t-il eu des développements à ce sujet?
Montag451

@EnmosProje: pas que je sache, désolé!
Steven A. Lowe

Réponses:


13

Malheureusement, la réponse dépendra du fournisseur de PLC que vous utilisez. La plupart d'entre eux stockent leur code dans des formats de fichiers propriétaires, ce qui rend difficile l'utilisation du contrôle de source régulier.

Rockwell propose FactoryTalk AssetCenter si vous utilisez Allen-Bradley. Je ne l'ai pas évalué, mais c'est probablement cher. Il fait cependant plus que le contrôle des sources.

J'ai utilisé le contrôle de source régulier (Mercurial) avec les fichiers PLC Beckhoff TwinCAT. Cela semble fonctionner, mais je n'ai jamais eu à fusionner avec qui que ce soit. Leur nouvelle version de TwinCAT (3) qui sortira plus tard cette année est censée être basée sur Visual Studio 2010, et je suppose que les offres prêtes à l'emploi seront bien meilleures pour l'intégration du contrôle de version. Doigts croisés.

Commencer l'édition

Je voulais juste ajouter que j'ai maintenant utilisé le nouveau produit TwinCAT 3 et j'utilise Mercurial (TortoiseHg et le complément VisualHg pour Visual Studio). Cela fonctionne plutôt bien. Tout d'abord, VisualHg le fait se sentir très intégré dans l'IDE de Visual Studio 2010 que TwinCAT 3 utilise. Cependant, le code source des programmes TwinCAT 3 est généralement stocké dans des fichiers XML. Il s'agit d'une amélioration considérable par rapport aux formats binaires propriétaires d'autres fournisseurs que j'ai utilisés, mais cela ne fusionne toujours pas bien. Certains fichiers n'ont pas de sauts de ligne dans le XML (j'ai écrit à Beckhoff à ce sujet), ce qui signifie qu'un système de contrôle de source ligne par ligne ne fait pas grand-chose. De plus, comme il s'agit de XML, l'ordre des nœuds dans le fichier XML semble changer de façon aléatoire, même lorsque vous n'apportez aucune modification. Aussi, Je pense que cela génère parfois de nouveaux identifiants pour certains nœuds lorsque cela n'est pas nécessaire, ce qui entraîne des changements superflus sur lesquels Hg prend. Cela rend effectivement impossible d'apporter des modifications à un programme TwinCAT 3 par 2 programmeurs en même temps, puis de fusionner les modifications. C'est une fâcheuse erreur de la part des développeurs de TwinCAT 3, qui utilisent sans aucun doute régulièrement le contrôle des sources dans leur propre travail, et ne voient pas l'avantage pour nous, les programmeurs d'automatisation modestes, d'avoir accès à des outils tout aussi puissants. :( qui, sans aucun doute, utilisent régulièrement le contrôle des sources dans leur propre travail et ne voient pas l'avantage pour nous, les programmeurs d'automatisation modestes, d'avoir accès à des outils tout aussi puissants. :( qui, sans aucun doute, utilisent régulièrement le contrôle des sources dans leur propre travail et ne voient pas l'avantage pour nous, les programmeurs d'automatisation modestes, d'avoir accès à des outils tout aussi puissants. :(

Fin de la modification

Lancer l'édition n ° 2

Je voudrais souligner que TwinCAT 3.1 dispose désormais de formats de fichiers mieux adaptés au contrôle de code source, en particulier les fichiers de texte structuré. En fait, je crois que le produit est maintenant conçu pour prendre en charge l'intégration à Team Foundation Server.

Fin de l'édition n ° 2

L'autre alternative est que la plupart des programmes API peuvent être exportés vers des fichiers texte. RSLogix 5000, par exemple, exporte ses projets dans un fichier L5K, qui est juste du texte. J'ai déjà exécuté des scripts sur ces fichiers - ils sont assez faciles à analyser. Ils fonctionneraient bien avec le contrôle de source. Bien sûr, cela signifie exporter à chaque fois, ce qui est nul.

Si vous optez pour un contrôle de version standard, je suggère fortement un VCS distribué, comme Git ou Mercurial, car avec les automates, la moitié du temps vous êtes sur place et ne pouvez pas vous connecter à votre serveur domestique, donc la possibilité de faire des commits locaux est un vrai bonus.

L'autre chose que vous devez comprendre est que certains environnements de programmation PLC, comme RSLogix, incluent déjà un outil de différenciation, vous pouvez donc exécuter des diffs sur deux versions de vos projets. Ceci, combiné à l'enregistrement quotidien d'un nouveau fichier avec la date d'aujourd'hui, est ce que la plupart des ateliers d'automatisation semblent s'en tirer.



@blueberryfields: oui, j'ai utilisé la fonction d'enregistrement automatique sur la plupart des logiciels qui la prennent en charge, et oui, cela m'a sauvé plusieurs fois. Cependant, son utilisation comme contrôle de version n'est pas une bonne idée. Le contrôle de version doit avoir plus qu'un simple horodatage, il doit avoir l'auteur et une description des modifications. Il devrait également être possible de faire une fusion à 3 voies entre une version parent et deux fourches.
Scott Whitlock

Les projets TwinCAT de Beckhoff peuvent également être exportés et importés vers / depuis des fichiers texte. Voilà comment nous les mettons sous contrôle de version. Fonctionne bien pour les projets écrits en ST. Je n'ai pas essayé avec des langages graphiques comme LL.
stmax

@stmax - Je viens de modifier la réponse pour fournir ma dernière expérience avec. Comme je l'ai dit, cela fonctionne, mais pas aussi bien qu'il le pourrait.
Scott Whitlock

J'ai accepté cela comme «la réponse» car il semble que l'exportation vers des fichiers texte et l'utilisation de SCC est la seule solution viable pour plusieurs fournisseurs d'automates.
Steven A. Lowe

4

Si vous le pouvez, regardez B&R Automation.

Divulgation complète ... Je travaille pour un partenaire commercial de B&R Automation.

Les projets modernes d'automatisation B&R fonctionnent très bien avec les logiciels de version. J'utilise actuellement GIT (qui n'est pas intégré), bien qu'il soit censé y avoir une intégration avec SVN dans le logiciel. Toutes les sources IHM sont enregistrées au format XML, et toutes leurs sources de langage API (y compris le ladder) sont enregistrées sous forme de texte au lieu de binaires (principalement XML également). Si vous devez effectuer des fusions manuelles, vous devez "comprendre" le XML dans une certaine mesure, mais je n'ai pas trouvé cela difficile. Et la fusion automatique rend généralement cela inutile de toute façon.


3

Je viens de voir cette question, et il existe en fait une solution en conserve - de GE-IP de tous les endroits. Découvrez Proficy Change Management. Ce produit fait un contrôle de version du point de vue des systèmes de contrôle PLC, plutôt qu'un contrôle de version pur du point de vue des fichiers - il fonctionne comme une couche assise sur un VCS (la partie effrayante est qu'à l'origine ce VCS était Visual SourceSafe) et gère la gestion des droits, les rapports et le checkout / checkin.

Bien que le produit soit de GE-IP, il est conçu pour prendre en charge une variété de systèmes API et IHM prêts à l'emploi.

Divulgation complète, j'ai utilisé pour travailler pour une entreprise vendant et installant PCM (mais c'était il y a 7 ans). Donc, si vous me demandez à quoi cela ressemblait à l'époque, je vais probablement vous dire où tout s'est mal passé!


1

Aussi horrible que cela puisse paraître, dans un cas, j'ai fini par utiliser la fonction "Imprimer au format PDF" du logiciel de logique à relais (dans ce cas, c'était CScape de Horner), puis un programme de différenciation graphique PDF gratuit (par exemple DiffPDF ) pour comparer les modifications car le code source était uniquement disponible dans un format binaire propriétaire.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.