Open-source PLC Data Access server

ryangriggs

Lifetime Supporting Member
Join Date
Jun 2016
Location
USA
Posts
193
I was just reading Archie's post about the open source AdvancedHMI system they have developed. This is a great system, but in order to grow in popularity, it needs to be able to talk to a wide array of PLC brands and families.

I think there needs to be a good open source server available to facilitate communication between existing architecture and new open-source HMI software. OPC could be supported, but it would be great to expose the PLC tag data in various other formats too (i.e. JSON, CSV, XML, etc).

As an example, with the advent of Linux it became cheap and easy to spin up your own servers for nearly any purpose. However, this move to open source has not yet overtaken the PLC industry, and every piece of the puzzle carries a large cost and restrictive licensing terms, as did server architecture in the past. An open-source data access server would allow HMI development to take place in a wide range of languages and architectures and would potentially kickstart widespread open-source projects in this industry.

I've tried to find such an open-source server, but with very little success. So, since I'm a programmer, I have been tossing around the idea of building one.

Would anyone like to join me? Initially I would like to support Ethernet/IP so that the AB PLC families are supported, since that's the brand with which I'm most familiar. But if done properly, such a project could support driver plugins for various brands and families.

Any thoughts/suggestions welcome!
 
Last edited:
I'm not a fan of OPC DA because it is Windows-centric, complex, and problematic, but I will be more than willing to offer my expertise in Ethernet/IP, CIP, and the AB PLCs to help get such a project off the ground.
 
@epy: This looks like a really great library. I am perusing it now. Thanks for sharing and thanks for your contributions to libplctag!
 
Last edited:
Thanks Archie. I think "OPC" may have been too specific/platform-dependent. My real goal is a data access server which exposes the data in various formats (i.e. JSON, CSV, XML, TCP sockets, as a database supporting queries, OPC, etc), and possibly which supports historization, logging, back-end databases, etc.

It would be really brilliant to have one open-source server software which could pull together all the tags from multiple PLC families/brands, log the data, expose it in lots of formats for consumption/modification, and support multiple operating systems/platforms.

I edited the original title and post to clarify that it's not specific to OPC.
 
Last edited:
Along with the aforementioned, there have been quite a few open source Ethernet/IP implementations showing up:

https://github.com/dmroeder/pylogix

http://eipnet.codeplex.com/

https://github.com/EPICSTools/etherip

https://github.com/EIPStackGroup/OpENer

https://github.com/scy-phy/scapy-cip-enip

https://github.com/digitalpetri/ethernet-ip

https://github.com/paperwork/pyenip



The OpENer is based on an implementation originally developed by Rockwell. It's probably not geared so much as a client, but more so for creating Ethernet/IP adapters.

EPICSTools is part of a government project.
 
Thanks @Archie. It appears I was searching for the wrong thing: I have been trying to find open source OPC servers, when I should have been looking for open source Ethernet/IP implementations. These may be a great start to implementing a data access server.

I wonder if all these are based on a common library or code example, since the Ethernet/IP specs are paywalled...
 
Last edited:
I wonder if all these are based on a common library or code example, since the Ethernet/IP specs are paywalled...
From what I have seen, they all use their own architecture. The Ethernet/IP (CIP) specifications avoid any suggestion of implementation. I really think a good thing would be to define a software architecture that would be open and freely available. That way all implementations, no matter which language, would have a common software design making it easier to understand any of the implementations.
 
AB's PLC that supports Ethernet IP also support the use of sockets. Same for Siemens S7-1500/300/1200 and I assume a lot of the others vendors in the market if the goal is not be tied with Windows's OPC.
 
@iner - that's cool. Do you know of any reference documentation that provides implementation details?


AB's PLC that supports Ethernet IP also support the use of sockets. Same for Siemens S7-1500/300/1200 and I assume a lot of the others vendors in the market if the goal is not be tied with Windows's OPC.
 
@iner lol you beat me to it. I just found that document and was getting ready to post it.
Looks like this type of communication is only supported on ControlLogix and CompactLogix units. Nothing mentioned about SLC5. Also the ports have to be manually initialized and serviced in the plc program (which isn't a huge deal, just saying).
 
@iner lol you beat me to it. I just found that document and was getting ready to post it.
Looks like this type of communication is only supported on ControlLogix and CompactLogix units. Nothing mentioned about SLC5. Also the ports have to be manually initialized and serviced in the plc program (which isn't a huge deal, just saying).


Yes sorry, I am not very knowledgable in Rockwell, having only programmed one Compactlogix and modified one or two contrologix. I don't know at all the other models.

The thing is that unless you convince the PLC makers to support another standard, you will have to make some set up from the PLC side.
 

Similar Topics

GitHub Link: https://github.com/Automation-Standard/Open-Industry-Project This is a little side project I've been working on that I felt would be...
Replies
14
Views
3,328
Does anyone here have suggestions of open source SCADA software that can be used for Mitsubishi PLC FX3U Series. I want to monitor its data...
Replies
2
Views
2,780
Are there any open source PLC communications protocols that would allow writing to the inputs of an Rx3i PLC? The reason I want this is for...
Replies
15
Views
5,084
Hi all, I'm a Ph.D. student at the University of Alabama in Huntsville, and my research topic is SCADA cyber security. My goal is to find...
Replies
32
Views
18,615
Does anyone here write, modify, or even use open source PLC "drivers" (any software to communicate between PCs and PLCS, ie, APIs, programs, OPC...
Replies
21
Views
15,038
Back
Top Bottom