Are you looking for a collaborative solution for a team of engineers working on a single project? I recently set up 2 large SEL RTACs 3555 for our group to create logics. How can a team of engineers effectively collaborate on a project? We currently take turns working on the PLC, using the project description page as a release note, and exporting the project for the next developer. In this day and age, why isn't there a comprehensive software version control solution for PLCs like the ones utilized by professional software engineers?
In 2024, why hasn't a comprehensive software version control solution for PLCs been developed yet to meet the standards of professional software engineers? Every prosperous business owner began their journey by asking questions like this one.
While some leading companies have adopted multi-engineer strategies, SEL has not followed suit. During my recent years in the industry, I focused on executing several Siemens PCS7 projects. With Siemens, any engineer with a licensed laptop has access to the project on the central server. The only drawback is that work must come to a halt when a download is required.
Steve Bailey pointed out that every thriving business owner began their journey by asking a similar question. There are various solutions available in the market, including options from the PLC brand and others that cater to multiple brands. While I may not have direct experience with the particular model you mentioned, it's worth noting that Siemens offers a solution called Simatic AX. This innovative tool allows you to program your PLC using VS Code, offering all the functionalities you would expect from a powerful code editor (such as scripting, compiler access, and version control).
In 2024, it is surprising that a comprehensive software version control system for PLCs, similar to what real software engineers use, is not available. Real software engineers typically work with flat ASCII text files, allowing for easy merging of changes without conflicts. However, with PLC software, which often involves monolithic binary files, making individual changes can affect the entire file, making version control more challenging. Existing solutions for specific PLC brands like Siemens may require the source code to be in a flat ASCII format before being converted to a binary file for the PLC. While some systems, like Allen-Bradley Logix's .L5X format, may be XML-like and potentially compatible with version control systems, there are still complexities to consider. Overall, the lack of a universally applicable version control solution for PLCs remains a challenge in the industry.
I agree with drbitboy's points. Is it possible for PLC ladder logic to be displayed as text on the screen instead of pictures? Absolutely. SCL is already in text format, making it an easy transition. Could the hardware/IO settings be stored in a yaml file rather than a binary blob? Certainly. The same applies to HMI screens and configurations. Will future tools consider these needs? Most likely, and hopefully. However, the tools we currently use were developed over a decade ago, if not longer. While some may have complained at the time, few customers expressed significant concern.
You make a very valid point, and it's indeed frustrating that the PLC domain tends not to have the same comprehensive version control solutions as seen in other software engineering disciplines. A practical but somewhat makeshift solution could be to use Git (or similar) to track changes in exported code files. It's not as smooth as it could be, but it might bridge the gap to some extent until a more dedicated solution comes about. Also, many PLC IDEs have started implementing integrated code management features, getting us a step closer to resolving this issue, but there's definitely still room for improvement.
I agree that the present process can feel a bit antiquated, especially in a world where software development collaboration tools are rife. It sounds like your team might greatly benefit from integrating a version control software like Git, which is a contemporary and highly efficient tool recognized by software developers. While it may not be directly designed for PLCs, its flexibility could be a boon. Also, utilizing a platform like GitHub or Bitbucket for collaborative work could bring more transparency to the project updates. Each engineer can work on their respective branches and subsequently merge them, thereby maintaining a clear history of changes made throughout the project. This could also promote a cooperative environment, minimizing the overwriting concerns. Although there's an initial learning curve, the long-term efficiency gain could make it a worthwhile investment.
I completely understand your concerns. Our team used to face the same issue until we started integrating Git with the PLC's software. Git is an open source version control system that software engineers have been using for years. It doesn't directly interface with PLC's, but it does an excellent job of managing the code files. We download the project, do our work, upload it back and then Git helps us merge the changes. It's a bit of a workaround, but it helps maintain a version control for PLC's until a more specialized tool enters the market. You can also add documentation of changes in the Git commit messages which provides an easy-to-follow trail for all team members. This method really improves the collaborative effort.
I totally agree with your sentiments. It's indeed quite perplexing that PLC programming hasn't fully adopted certain beneficial version control practices that are commonplace in the software development industry. While systems like Git have become industry standards for code version control, PLC development appears to lag behind. There are, however, a few tools like MDT, AUVESY, and AssetCentre that strive to provide version control in industrial automation, though they may have their own limitations. Still, it seems that a combination of stringent industry regulations, the diverse range of PLC brands and models, and the typically challenging factory settings may have hindered the development of a universal solution. Perhaps more open dialogue like this could nudge manufacturers towards creating more universally compatible and user-friendly solutions.
It sounds like you have a solid process in place, but I totally agree that the lack of robust version control for PLCs is a bit frustrating! One approach that might help is to implement regular code reviews among the engineers to ensure everyone is on the same page and to catch any potential issues early. Using a shared repository, even just for documentation and logs, can also streamline the handovers. As for a dedicated version control system, I think the challenge lies in the unique requirements of PLC programming, but it’d be great to see more emphasis on this in the future to bridge that gap between traditional software and industrial applications.
It's great to hear about your efforts in setting up SEL RTACs for collaborative work! It does seem surprising that there isn't a more robust version control system tailored specifically for PLCs, especially given how integral they are to modern engineering projects. One approach that could enhance collaboration is to standardize your code formatting and documentation practices, which can help team members better understand each other’s work. Implementing a system like Git, while not traditionally used for PLCs, could be adapted for your project with proper procedures in place, allowing for branching and merging of logic changes. Also, exploring tools like CodeSys or even cloud-based solutions could provide a more streamlined version control experience—might be worth researching those!
✅ Work Order Management
✅ Asset Tracking
✅ Preventive Maintenance
✅ Inspection Report
We have received your information. We will share Schedule Demo details on your Mail Id.
Answer: 1. How can a team of engineers effectively collaborate on a PLC project? - Answer: One effective way is to establish a system where team members take turns working on the PLC, use the project description page as a release note, and export the project for the next developer.
Answer: - Answer: PLC programming has traditionally been more hardware-focused and may not have integrated software solutions like those used by professional software engineers. However, there are emerging solutions and practices that can help improve collaboration and version control for PLC projects.
Join hundreds of satisfied customers who have transformed their maintenance processes.
Sign up today and start optimizing your workflow.