plc4x-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christofer Dutz <>
Subject Re: [DISCUSS] The State and Future of PLC4X
Date Thu, 18 Apr 2019 09:30:15 GMT
Hi all,

and regarding the fieldbus protocols: 
- We purchased the full spec of the Profinet protocol and will register a profinet-id in the
next few weeks. Implementing this would only be limited by the time we have and the willingness
to do so ;-)
- EtherCat is where our Raw Sockets would have to come in (With Profinet I'm not 100% sure).
As the EtherCat communication doesn't run on UDP or TCP, but on Ethernet frames directly.
Currently the RawSocket Netty support would need quite a bit of love ... I implemented it
as a prototype and it seems to be working, however it is not fully integrated into Netty yet.


Am 18.04.19, 10:30 schrieb "Julian Feinauer" <>:

    Hi all,
    Fedlbus is a good Keyword.
    Yesterday I met with Ralf Koelle and Rolf Wutzke from scitis / sotec and they were quite
interested in these two.
    @Ralf, @Rolf: I took the freedom to take you in CC. Do you already have a working stack
for these protocols?
    Am 18.04.19, 10:14 schrieb "Bjoern Hoeper" <>:
        Hi erveryone,
        I agree with Markus because OPC UA is somewhat universal. If we want something open
source there is a stack which is quite evolved already:
it is maintained by a bunch of institutes (one of them is the Process Control Institute in
Aachen). So we should at least think about an adapter to OPC UA. The thing we would need to
prove is that we can really get faster than the vendor OPC UA server.
        Another thing that I think is promising and needed is adaptation to field bus systems
like Profinet and EtherCAT because they provide good performance and a quite general applicability.
And are at least not vendor specific.
        Best Regards
        -----Ursprüngliche Nachricht-----
        Von: Markus Sommer <> 
        Gesendet: Donnerstag, 18. April 2019 09:06
        Betreff: AW: [DISCUSS] The State and Future of PLC4X
        Hi all,
        I was at the Hannovermesse and the industry clearly relies on OPC UA. If PLC4x could
realize a very fast OPC UA, this would be a massive advantage over other manufacturers.
        Best regards
        Freundliche Grüße
        Markus Sommer
        isb innovative software businesses GmbH
        Otto-Lilienthal-Strasse 2
        D - 88046 Friedrichshafen
        Tel.:    +49 (0) 7541 3834-14
        Mob:  +49 (0) 171 537 8437
        Fax:     +49 (0) 7541 3834-20
        Geschäftsführer: Markus Sommer, Thomas Zeler
        Sitz: Friedrichshafen
        Registergericht: Amtsgericht Ulm HRB-Nr. 631624 Important Note: This e-mail and any
attachments are confidential, may contain trade secrets and may well also be legally privileged
or otherwise protected from disclosure. If you have received it in error, you are on notice
of its status. 
        Please notify us immediately by reply e-mail and then delete his e-mail and any attachment
from your system. If you are not the intended recipient please understand that you must not
copy this e-mail or any attachments or disclose the contents to any other person. Thank you.
        -----Ursprüngliche Nachricht-----
        Von: Julian Feinauer <>
        Gesendet: Mittwoch, 17. April 2019 09:07
        Betreff: [DISCUSS] The State and Future of PLC4X
        Hi all,
        as we had a lot of non-technical discussions and topics the last time (the coming
of age of a software project, I guess) it’s time for us to go back to the real fun part
and do technical shit.
        I had a lot of discussions (on list and off list) with several people like Chris,
Matthias, Björn, Tim and others and wanted to share my thoughts on the future of PLC4X as
I see it (from a solely technical perspective).
        Currently, I see several “fronts” or centers of activity (or where I think we
should spend it).
          *   Language adoption – We should define and deliver APIs and bindings for other
languages to bring what we currently have to other people and other communities. The activities
we have there are currently (from my head): Markus and C++, Björn who wanted to investigate
C# and the “Interop Server” which I played around a bit (in fact, Matthias made a python
binding yesterday…)
          *   Driver Generation – This is a well-known Topic which is currently driven by
Chris. This is a large topic, which includes
             *   Model Generation (currently dfdl and state-xml)
             *   Templates for many languages (will partially derive from above)
             *   A build process, to wire both together
             *   Some kind of Test Suite to check the correct generation of drivers
             *   Automated Documentation / Spec Generation (!!
          *   Ecosystem / Tools – We have a set of tools that are based on PLC4X and which
enable to do things which where unthinkable before. Some are
             *   Scraper – A tool to scrape massive amounts of data from multiple PLCs based
on a yml configuration, this is mostly driven by Tim
             *   OPC UA Server – Yet to come. Maps OPC UA requests to PLC4X requests which
then go native to the PLCs. Matthias started some work on this, Tim looked over it and I think
Chris plans on implementing something here also
             *   We had multiple discussions about tools that “guess” something about
locations of variables or their types. Chris brought that up yesterday and plans to do something
there, Matthias and I discussed this several times and we plan to also do something with one
or two students there
          *   New programming models – As plc4x is open, it allows us to implement new programming
models on top of it. The best example I can give is OPM, the JPA equivalent of PLC4X. The
idea is to work with POJOs and annotations and EntityManagers (as Beans) and have a “type
safe” and Business-esque way to communicate with PLCs.
        Here I see a lot of potential and possible next steps could be (discussed by Matthias
and me)
             *   “Richer” Typesystem (not just primitives and Arrays as currently) which
covers complex objects
             *   Mapping of complex objects from POJOs to PLC segments (Like structs in S7
or ADS)
             *   Auto-generation of annotated POJOs from PLC programs (much like JPA or the
C# ORM does that based on an existing database). This could be a “killer-feature” as it
would really allow type-safe end to end communication with the plc with zero plc specific
        Other Topics in this area that can be named are
             *   A connection pool to share / reuse connections for efficiency (which was
implemented by Sebastian and is absolutely crucial for us!)
             *   A central monitoring component (similar to how a Webserver monitors each
side access and the results and latencies and so..), I am currently working on this and hope
to provide a PR soon
        Of course, all of this is solely based on my personal opinion or things that came
out in discussions with other involved people.
        For me, this structure makes sense and perhaps it helps us to “broaden” our scope
a bit from the initial focus (drivers, drivers, drivers) to the new picture which evolved
over the last to years.
        Of course, feel free to agree, disagree or participate with other opinions.
        PS.: I could offer to bring this in a more “presentable” form and prepare a short
“overview” talk about this for the next meetup, if interesting

View raw message