Hello everyone. I'm starting a new thread on the recommendation of RheinhardtP.
This is a lengthy post, so bear with me.
It's about disruption, automation communities, ecosystems and how we program our PLC's/PAC's/DCS.
With at the end a practical proposal for change and a request for involvement.
I believe a big change is about to happen to our industry. And with our industry I mean the automation industry: the automation of machines, factories and other assets.
We have for a long time been at the forefront of innovation and practical applications of new technologies. We had 'Big Data', Analytics, Networks, … way before most consumer applications.
But today this is no longer the case. We still program our controllers like we did 20 years ago, the automation vendors still have fairly closed ecosystems and while the community is often ready to help each other out, there is not yet an environment where there is a wide sharing of coding examples, libraries, tools, scripts, …, at least not at a level that is relevant to what is happening in the tech world.
Also the controllers we use are not keeping up with the exponential curves in the tech/enterprise/consumer markets. There are even cases of the hardware being downtuned deliberately…
Other practices in our field are also long overdue, like putting the entire plant network behind a firewall and then claiming that we’ve secured the system.
On the other side of the wall of our industry is a world that is buzzing with innovation. Everything is on an exponential curve, using open technologies, open API’s, open software. Companies who hold on to the status quo for too long are waking up to new players disrupting entire industries and business models. We all know the examples of companies like Blackberry and Blockbuster.
And every new engineering batch that gradutates in our field enters with a bigger tech gap from the world they know than the year before.
You probably get the point until here. Probably you’ll have at least one place where you think “But our industry is different because of X” And you most likely have a good argument there. But it will still not stop from companies coming in and do it in a better way and by that changing our market.
Now many experienced people in our industry already see what’s coming. Not so many are very vocal about it, for different reasons. But some are, and some are even taking considerable actions.
The first example is ExxonMobil where Don Bartusiak and his team have engaged Lockheed Martin to open our the hardware ecosystem in a similar way like Lockheed did in the Aviation industry. Even if they would not succeed at this time, they have put bright spotlights on the problems and lack of innovation.
The second example is Jeff Immelt at GE. Just this month he said “the Industrial Internet will be far greater in size and impact than the Consumer Internet”. GE is building a big platform with the goal to get all industrial assets connected, and their competitors are struggling to get their own solutions online. (There are doubts if it’s a good idea of putting everything in the clould, but that’s another story, and they already have the answer with Edge and Fog computing)
At BP Ahmed Hashmi is pointing out that sofware development is way to slow, and that we have to move to automated development.
And with the visions of Immelt and Hashmi we can see there’s one missing piece of the puzzle that GE is not solving with their analytics platform: the way that we design and program our controllers.
Let’s take one of the most critical examples in our field: the automation of a Pharmaceutical Processes. Let me tell you how that works in case you didn’t have the experience: one or more persons design the analysis (URS => FDS => SDS). Then depending on the size of the project you might have a team of 10-20 persons locked up in a room coding all the controller logic with zero room for innovation or creativity. Everything that is in the documents needs to be in the program and nothing is allowed in the program that’s not in the documents.
Now why do we need a room of programmers for a job that’s so dull and repetitive. Haven’t we all become automation engineers in order to remove all those dull and repetitive jobs?
Also tell me why the pharma industry is still taking the risk of manually coding their production lines for such a critical consumer group, and then even doing most tests by hand, while in the IT world everything goes throug automated module and integration tests.
As both Jim McHugh (NVIDIA) and Marc Cuban recently said: “Software will write Software”.
So there it is: the Holy Grail, the quest for automating our controller code generation. Many have tried, many have failed. And a well-known secret is that quite some have succeeded, at least partially.
There are a couple of reasons why code generation has not yet taken over the workflow for most of us:
- The companies who have developed a working solution often keep it very secret, and often in the hands of only a couple of key people
- Some solutions just move the effort elsewhere often to another engineering environment that requires the same or even more work to define models at a higher level.
- Some solutions only work for one or two brands
- Some solutions are killed because they are a threat to the existing business
- Some solutions only solve parts of the problem, often generating only the basic structure and linking the IO
Now let's turn this around and list the requirements of what is needed to make it work:
- System-independent => template based
- Language-independent (IEC 61131-3 and all its interpretations)
- Works directly from design documents, in any possible format no matter if it’s Word, Excel, Access, … => open import scripts needed
- Open-source the import-scripts
- Open-source the templates and examples, including complex ones
- Documented and open API
- Fast!
- Version control
- Built around a community and open ecosystem
- Open for integration with other pieces of the puzzle (asset management, digital twin, analytics, …)
I’m a bit impatient so here is already an example of a possible API:
https://factory-x.io/v2/api/
And a working example on Github, including import from Word and Excel, and example templates for Siemens S7 and CoDeSys Structured Text. Also including a full S88 structure with phases, EM and CMs.
https://github.com/factory-x/fx-example
One team is already using this on a Chemical Blending project of about 3000 IO. It can scale to both bigger and smaller projects.
I am looking for a couple of persons/teams who also want to start using this, and give the necessary feedback so we can take away any technical or usability concerns.
Back to where I started:
- The tech community has totally adopted open source. This tool allows you to also start adopting open source in our Industrial Automation world
- Our automation community is very scattered in smaller communities like plctalk.net and other forums. Let’s keep those communities and knit them together by blending in with github, stackoverflow, quora, …
- Let’s step up our game in the way we program PLCs/PACs and DCS systems.
- Don’t wait for the big automation vendors to come up with the next innovation. Look at what is missing, what can be improved, and build it!
This is a lengthy post, so bear with me.
It's about disruption, automation communities, ecosystems and how we program our PLC's/PAC's/DCS.
With at the end a practical proposal for change and a request for involvement.
I believe a big change is about to happen to our industry. And with our industry I mean the automation industry: the automation of machines, factories and other assets.
We have for a long time been at the forefront of innovation and practical applications of new technologies. We had 'Big Data', Analytics, Networks, … way before most consumer applications.
But today this is no longer the case. We still program our controllers like we did 20 years ago, the automation vendors still have fairly closed ecosystems and while the community is often ready to help each other out, there is not yet an environment where there is a wide sharing of coding examples, libraries, tools, scripts, …, at least not at a level that is relevant to what is happening in the tech world.
Also the controllers we use are not keeping up with the exponential curves in the tech/enterprise/consumer markets. There are even cases of the hardware being downtuned deliberately…
Other practices in our field are also long overdue, like putting the entire plant network behind a firewall and then claiming that we’ve secured the system.
On the other side of the wall of our industry is a world that is buzzing with innovation. Everything is on an exponential curve, using open technologies, open API’s, open software. Companies who hold on to the status quo for too long are waking up to new players disrupting entire industries and business models. We all know the examples of companies like Blackberry and Blockbuster.
And every new engineering batch that gradutates in our field enters with a bigger tech gap from the world they know than the year before.
You probably get the point until here. Probably you’ll have at least one place where you think “But our industry is different because of X” And you most likely have a good argument there. But it will still not stop from companies coming in and do it in a better way and by that changing our market.
Now many experienced people in our industry already see what’s coming. Not so many are very vocal about it, for different reasons. But some are, and some are even taking considerable actions.
The first example is ExxonMobil where Don Bartusiak and his team have engaged Lockheed Martin to open our the hardware ecosystem in a similar way like Lockheed did in the Aviation industry. Even if they would not succeed at this time, they have put bright spotlights on the problems and lack of innovation.
The second example is Jeff Immelt at GE. Just this month he said “the Industrial Internet will be far greater in size and impact than the Consumer Internet”. GE is building a big platform with the goal to get all industrial assets connected, and their competitors are struggling to get their own solutions online. (There are doubts if it’s a good idea of putting everything in the clould, but that’s another story, and they already have the answer with Edge and Fog computing)
At BP Ahmed Hashmi is pointing out that sofware development is way to slow, and that we have to move to automated development.
And with the visions of Immelt and Hashmi we can see there’s one missing piece of the puzzle that GE is not solving with their analytics platform: the way that we design and program our controllers.
Let’s take one of the most critical examples in our field: the automation of a Pharmaceutical Processes. Let me tell you how that works in case you didn’t have the experience: one or more persons design the analysis (URS => FDS => SDS). Then depending on the size of the project you might have a team of 10-20 persons locked up in a room coding all the controller logic with zero room for innovation or creativity. Everything that is in the documents needs to be in the program and nothing is allowed in the program that’s not in the documents.
Now why do we need a room of programmers for a job that’s so dull and repetitive. Haven’t we all become automation engineers in order to remove all those dull and repetitive jobs?
Also tell me why the pharma industry is still taking the risk of manually coding their production lines for such a critical consumer group, and then even doing most tests by hand, while in the IT world everything goes throug automated module and integration tests.
As both Jim McHugh (NVIDIA) and Marc Cuban recently said: “Software will write Software”.
So there it is: the Holy Grail, the quest for automating our controller code generation. Many have tried, many have failed. And a well-known secret is that quite some have succeeded, at least partially.
There are a couple of reasons why code generation has not yet taken over the workflow for most of us:
- The companies who have developed a working solution often keep it very secret, and often in the hands of only a couple of key people
- Some solutions just move the effort elsewhere often to another engineering environment that requires the same or even more work to define models at a higher level.
- Some solutions only work for one or two brands
- Some solutions are killed because they are a threat to the existing business
- Some solutions only solve parts of the problem, often generating only the basic structure and linking the IO
Now let's turn this around and list the requirements of what is needed to make it work:
- System-independent => template based
- Language-independent (IEC 61131-3 and all its interpretations)
- Works directly from design documents, in any possible format no matter if it’s Word, Excel, Access, … => open import scripts needed
- Open-source the import-scripts
- Open-source the templates and examples, including complex ones
- Documented and open API
- Fast!
- Version control
- Built around a community and open ecosystem
- Open for integration with other pieces of the puzzle (asset management, digital twin, analytics, …)
I’m a bit impatient so here is already an example of a possible API:
https://factory-x.io/v2/api/
And a working example on Github, including import from Word and Excel, and example templates for Siemens S7 and CoDeSys Structured Text. Also including a full S88 structure with phases, EM and CMs.
https://github.com/factory-x/fx-example
One team is already using this on a Chemical Blending project of about 3000 IO. It can scale to both bigger and smaller projects.
I am looking for a couple of persons/teams who also want to start using this, and give the necessary feedback so we can take away any technical or usability concerns.
Back to where I started:
- The tech community has totally adopted open source. This tool allows you to also start adopting open source in our Industrial Automation world
- Our automation community is very scattered in smaller communities like plctalk.net and other forums. Let’s keep those communities and knit them together by blending in with github, stackoverflow, quora, …
- Let’s step up our game in the way we program PLCs/PACs and DCS systems.
- Don’t wait for the big automation vendors to come up with the next innovation. Look at what is missing, what can be improved, and build it!