Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PLC Version Control

Tags:

I need to come up with a CM process for PLC code.

Currently, the system is developed using RSLogix 5000. The build product is a monolithic file that can be loaded onto a PLC for execution and edited directly in the development environment. With multiple developers, this has become a problem. They're stepping on each others changes.

As an analogy, it's as if, when doing Java development, the only wway to edit and save the source would be to load up a *.jar file into your IDE, make the change, and then save it back to the jar file. This is less than ideal.

How can I coordinate changes between multiple developers working with PLC's?

like image 494
Dave Avatar asked Nov 18 '10 15:11

Dave


People also ask

What is PLC version?

A programmable logic controller (PLC) or programmable controller is an industrial computer that has been ruggedized and adapted for the control of manufacturing processes, such as assembly lines, machines, robotic devices, or any activity that requires high reliability, ease of programming, and process fault diagnosis.

What is the purpose of version control?

Version control, also known as source control, is the practice of tracking and managing changes to software code. Version control systems are software tools that help software teams manage changes to source code over time.

How do I find my PLC version?

You will find it direct on the HMI screen somewhere in the upper left corner. You will find this information in the switch cabinet direct at the main PLC rack. In some switch cabinets there is label with machine number and PLC version.


2 Answers

I use Unity Pro, so this may not apply for other brands.

Unity can export an "archive" file which is XML which describes the PLC program and IO setup in its entirety. After commissioning changes, I create an export and check it in to my local Git repo. This gets me an annotated history of changes, but no visual comparison. I can always use UnityDiff for comparison.

Check out http://www.mdtsoft.com/ also

like image 140
v0n_hydro Avatar answered Nov 02 '22 23:11

v0n_hydro


You need specialized versioning system for PLCs like VersionDog.

From the manufacturer:

"Special support with Smart Compares for 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 and more. Also robot programs from ABB and Kuka and office related data formats like Microsoft Word, Microsoft Excel and Adobe PDF are perfectly supported by versiondog.

Update: Here is a screenshot showing ladder version compare. I guess that's what most PLC folks are interested in. We also use it to schedule e-mail report if PLC offline and online application versions are a match, as an alarm that something has been changed in PLC but not put into version control server.

like image 40
avra Avatar answered Nov 03 '22 01:11

avra