Open-Mobile-Robotics / open-process-library

Open Process Library
MIT License
16 stars 2 forks source link

Decide on the master system for the PLC (Difficult because technical limitations and restrictive licensing) #6

Open aott33 opened 1 month ago

aott33 commented 1 month ago

Summary from meeting (Davy's Message):

The biggest issue/headache at this moment is the master system for the PLC. A system like Simatic AX seems to have everything technically needed, but the licensing is very restrictive. Other options:

zantiu commented 1 month ago

Adding a reference to the repo comparing the openness of the different systems:

https://github.com/SASE-Space/ot-openness-comparison

Some of the requirements that should be considered for the selection:

zantiu commented 1 month ago

The idea is that we select one 'Master' PLC system that will be used to develop and test the library. Then use this to ideally automate the generation of the other systems.

One possible technique to realize this could be the use of jinja templates: https://jinja.palletsprojects.com/en/3.1.x/templates/

For the 'Master' system we ideally can build a modern software development pipeline, which means automated builds, testing and maybe deployment to a demo environment. 'Classical' PLC development environments and tooling has originally not been built with this in mind. Although they are meant to automate factories and machines, it is difficult to automate their own workflows.

The table in the post above shows that systems like Codesys, B&R, and Beckhoff are furthest in this. (Maybe also Bosch Rexroth?). A special note for Siemens TIA with Openness, although Openness is a very specialized and scripting-intensive solution.

Two interesting systems are around the corner that are building the IDE's and toolchain from the ground up. First is Simatic AX, based on Visual Studio Code: https://www.siemens.com/global/en/products/automation/industry-software/automation-software/simatic-ax.html Second is Codesys Go: https://www.codesys.com/fileadmin/data/Images/Messen_und_Veranstaltungen/CODESYS-Feature-Briefing-032024/15-CODESYS_Feature-Briefing-032024-CODESYS-go.pdf

Simatic AX is in limited release for around 1000 USD/year/user with a free trial period of 3 months (source: https://www.dex.siemens.com/industrialsoftware/automation-software/simatic-ax?cclcl=en_GB). There is no licensing option that would work for an open source project like this. Even if the core devs would have access to the licenses, it would be a major roadblock for people who would want to join.

Codesys Go is not released yet. There is no offical information about pricing, release date or wether there will be an open license available.

Flowject commented 1 month ago

AX is 1k/y per dev instead of per month, but your point still stands.

Agree with everything above, although I think Siemens AX would be ok if we could get some floating licenses for this. I think at the start it's mostly important to have a dev environment that would enable the core PLC team here to develop and test as efficiently as possible, with the least amount of friction, and I think AX lends itself to that the best. Beckhoff and Codesys probably 2 and 3.

I think the master templates will/should soon move to a higher level language anyway, and then to get adoption we'd have to generate libraries for Siemens TIA (EU) and Rockwell (US) no matter what.

zantiu commented 1 month ago

I think if we can use something like AX or Go then we shouldn't switch the language. Just stick with standard ST. I believe AX is also much closer to the standard than TIA is.

It's worth to reach out to Siemens and ask if it's a possibilty. Who knows they might already be thinking about how to make the licensing more premissive. Would be a pity if we missed it.

zantiu commented 1 month ago

On Codesys: I don't know the system. I just spinned it up and I see the code is not stored in plain files. So the question would be how to sync it with git?

Two possible advantages of Codesys:

zantiu commented 1 month ago

An updated on our latest discussions: we are thinking in the direction of: