Contrôle de la Version PLC
je dois trouver un processus CM pour le code PLC.
actuellement, le système est développé en utilisant RSLogix 5000. Le produit de construction est un fichier monolithique qui peut être chargé sur un PLC pour exécution et édité directement dans l'environnement de développement. Avec plusieurs développeurs, cela est devenu un problème. Ils marcher sur les modifications.
par analogie, c'est comme si, en faisant du développement Java, la seule façon d'éditer et de sauvegarder la source serait de charger une *.fichier jar dans votre IDE, faire le changement, et l'enregistrer dans le fichier jar. C'est pas l'idéal.
Comment puis-je coordonner les changements entre plusieurs développeurs travaillant avec des automates?
8 réponses
si nous parlons d'un gros fichier binaire, alors un VCS (centralisé ou décentralisé) n'est pas le meilleur outil pour le travail.
Un referencial externe (un disque partagé par exemple) où un lot copiera et étiquettera L'état PCL actuel est meilleur.
Voir "Logiciel De Suivi De L'Histoire"
Pour éviter les discontinuités dans l'historique des révisions, les anciennes versions de programmes doivent être stockées.
"Nous prenons un plus loin, cependant. À l'aide de notre MDT AutoSave, nous allons en fait interroger l'équipement. Du jour au lendemain ou à n'importe quelle fréquence spécifiée, le logiciel lit les programmes dans le PLCs et compare ensuite cette information au dernier programme connu. Le logiciel de contrôle de version copiera le nouveau programme et le stockera et [puis] le comparera au dernier.le contrôle de la version de lancement est assez simple. Nécessaire est l'installation du logiciel et puis configuration matérielle. "Vous auriez besoin d'un serveur et de quelques semaines d'ingénierie et vous êtes prêt à y aller", dit Perysyn. Toutefois, son entreprise utilise une "approche de rétrécissement" qui consiste à installer le logiciel et à le personnaliser par les utilisateurs qui remplissent les blancs.
cela étant dit, lorsque vous avez plusieurs modifications de plusieurs développeurs, vous avez besoin d'un environnement d'intégration où une première livraison peut être faite et validée, avant de la pousser pour le serveur réel.
Voir aussi ce post.
j'utilise Unity Pro, de sorte que cela peut ne pas s'appliquer pour d'autres marques.
Unity peut exporter un fichier" archive " qui est XML qui décrit le programme PLC et la configuration IO dans son intégralité. Après les changements de mise en service, je crée une exportation et la vérifie dans mon compte Git local. Cela me donne un historique annoté des changements, mais aucune comparaison visuelle. Je peux toujours utiliser UnityDiff pour comparer.
découvrez http://www.mdtsoft.com/
à propos de RSLogix5000 spécifiquement, j'ai vu des développeurs utiliser un PLC émulé et faire leurs modifications en ligne. Le produit final une fois mis au point est ensuite assemblé avec tous les commentaires (car ils ne figurent pas dans le PLC) et ensuite mis en service. Il y a des problèmes avec les changements qui ne peuvent pas être faits en ligne, comme les IEA. Il y a des outils en place pour empêcher deux personnes d'éditer la même logique en ligne à la fois et pour s'approprier les sections. Les sauvegardes peuvent être faites sous forme de téléchargement, mais là ce n'est pas un moyen de suivre les changements.
c'est un problème bordélique, messier toujours pour quand vous maintenez un système comme vous le voulez .ACD que vous pouvez utiliser en ligne, car à moins que vous ne fassiez quelque chose de différent avec L'outil RSLogix comparer vous venez de voir le code machine illisible comme" + / Éû3ÙÆW×晵'>Ù,"
le contrôle de révision le plus courant que j'ai vu (malheureusement) est simplement d'enregistrer le dernier fichier, puis de prendre une copie et d'ajouter la date actuelle au nom du fichier, comme le recommandé control.com poste décrit.
vous avez besoin d'un système de versioning spécialisé pour les PLC comme VersionDog.
dans le constructeur:
" support spécial avec Smart Compare pour SIMATIC S5, SIMATIC S7, SIMATIC PCS 7, WinCC, WinCC flexible, InTouch, CoDeSys, TwinCAT, Phoenix PC WORX, RSLogix, Schneider Modsoft, Schneider Concept, Schneider Unity, SINUMERIK 840D, Bosch IndraWorks et plus. Aussi robot programmes de ABB et Kuka et données de bureau connexes formats Microsoft Word, Microsoft Excel et Adobe PDF sont parfaitement pris en charge par versiondog.
mise à Jour: Voici une capture d'écran montrant échelle de la version de comparer. C'est ce qui intéresse la plupart des PLC. Nous l'utilisons également pour programmer le rapport d'e-mail si PLC offline et les versions d'application en ligne sont une correspondance, comme une alarme que quelque chose a été changé dans PLC mais pas mis dans le serveur de contrôle de version.
C'est une très bonne question, et cela dépend vraiment de ce que vous voulez qu'il fasse. Si vous utilisez seulement L'équipement de Rockwell, il pourrait être utile de regarder leur solution, je pense que cela s'appelle FactoryTalk AssetCentre. Actuellement, je cherche à utiliser Bazaar de Canonical. Une chose que VonC a fait remarquer, c'est qu'un logiciel qui peut interférer avec le PLC est un deffinate plus, pas un must à mon avis, mais c'est sûr que ça aide.
est-ce que je lis correctement votre question et vous avez plusieurs développeurs travaillant sur le même code PLC en même temps? C'est une pensée effrayante, mais je sais que cela doit parfois se produire, les automates Siemens sont un peu plus faciles à programmer avec plusieurs développeurs, mais je voudrais assigner une personne pour consolider et tester tous les changements avant de s'engager dans le PLC. N'importe quel système CVS vous permettra de créer des branches pour chaque développeur mais comment vous les obtiendriez pour consolider leurs changements est la question du million de dolar.
Bart.
RSLogix5000 a toujours interdit à plusieurs utilisateurs d'ouvrir et de modifier sur le même .ACD simultanément. Cependant, si plusieurs utilisateurs ont identique .Les fichiers ACD, ouvrez-les, et tous font des connexions au même contrôleur cible, ils peuvent éditer sur le contrôleur simultanément, mais seulement s'ils travaillent sur des routines différentes. Les modifications des autres apparaissent automatiquement, s'ils devaient regarder la routine d'un autre programmeur.
notez que travailler en ligne comme cela est habituellement fait avec le PLC en marche, même parfois avec le système cible (une sorte de machine) en marche. Ce type d'arrangement dans le but d'achever le travail plus rapidement, ou dans certains cas parce que le système est énorme. Personne ne se développe comme ça, car c'est vraiment un outil de débogage et impraticable pour des changements significatifs.
si un programmeur termine, et un autre n'est pas fait, le travail inachevé de l'autre sera sauvé au premier programmeur .ACD quand ils sauvent. Celui qui sauve la dernière volonté tout le monde du travail.
comme d'autres l'ont mentionné dans ce thread, l'utilisation de la date du fichier est assez raisonnable. Certaines entreprises utilisent une variable de contrôle de version qui est habituellement affichée sur un HMI connecté. D'autres entreprises utilisent un document séparé qui documente qui et quels changements. Parfois, les notes de version sont placées dans un long commentaire dans la routine principale.
mon entreprise utilise un journal de modifications distinct, et des copies d'archives datées sont conservées. Plusieurs programmeurs sont utilisé uniquement dans les cas les plus extrêmes. Une personne est toujours désignée pour maintenir l'intégrité du fichier hors ligne, habituellement la personne qui travaillera le plus longtemps, ou le gestionnaire de projet.
il est important de noter que les commentaires d'exécution ne sont pas transportés d'un utilisateur à l'autre avant RSLogix5000 v21 car les versions précédentes ne stockaient pas les commentaires sur le contrôleur.
tout cela dit, vous pourriez essayer de gérer le développement hors ligne. Je n'ai pas vu de méthodes sophistiquées pour cela. Habituellement, les programmeurs écrivent les routines nécessaires séparément, et un chef de projet les assemblera en un seul projet. L'approche la plus propre que j'ai vu est où un chef de projet créera une architecture avec une fonctionnalité globale, et assignera le travail de routine à d'autres, en leur donnant une copie de la .ACD pour travailler avec. Ils reviennent les .ACD avec des changements, et le gestionnaire de projet des copies et colle à leurs habitudes dans le "maître" du projet.
j'ai vu cette question seulement maintenant, à partir d'un lien sur la cheminée de change: Existe-t-il des Solutions réalistes/utiles pour le contrôle à la Source des programmes de logique D'échelle. Plutôt que d'avoir une réponse de lien seulement, je duperai ma réponse ici:
il y a en fait une solution en conserve - de GE-IP de tous les endroits. Découvrez Proficy Change Management. Ce produit fait le contrôle de version du point de vue des systèmes de contrôle PLC, plutôt qu'un contrôle de version pure du point de vue des fichiers - il fonctionne comme une couche assise sur le dessus d'un VCS (la partie effrayante est qu'à l'origine ce VCS était Visual SourceSafe) et gère la gestion des droits, le rapport et la caisse/checkin.
tandis que le produit est de GE-IP, il est conçu pour soutenir une variété de systèmes PLC et HMI hors de la boîte.
divulgation complète, j'ai travaillé pour une entreprise vendant et installant PCM (mais c'était il y a 7 ans). Si tu me demandes comment c'était, je te dirai où tout est allé. faux!