Great discussion.
I'm still young in automation and can only add from my limited experience - 4 years in one process industry, state-machine code, Siemens hardware/software.
And I was going from other side of the process that Ed described - from plant maintenance needs.
So most of the ladder code are already there, we are still doing on-site modifications in ladder and HMI.
Being familiar with open-source programming toolchains the things most negatively affected me were the lack of collaboration support in used software, absense of changes tracking system, absense of code testing tools, manually written specs that unpossible to keep in sync with the code.
What we did were:
- extract all ladder code blocks out of Step7 project and put them under version control- done and good by itself
- write some docgen tool to build specs from saved ladder code - partially done and promising
And already at this early stage the next question come - we need some more strict rules to how specs have to be written.
Ideally one tool or format that is used at first stages of defining specs before coding and at the last one when rebuilding documentation from running code.
In that case we can clearly compare the both.
It's not an IDE, but rather an API.
It is both open and customizable.
...
It's not really code, it's rather a convention of how to describe actions, transitions, ... . The people using it are actually happy of having a convention because often they have no manual about how something like this should be written.
Exactly
Are you inferring that the development environment you are proposing could be used as an active troubleshooting tool; that is, the plc state would be displayed in an active copy of whatever you use to define the process? That would be pretty useful from a troubleshooting standpoint, I would think. Especially if there was an active link to drive the actual lower-level programming environment to the program section of interest.
Keith
It is not a question addressed to me but something like this was in my vision about the application I've started to implement now.
Thanks again Ed for bringing this discussion and sharing the project.
Dmitry