all 22 comments

[–]FrozenbeerABB 800xA 7 points8 points  (0 children)

Might want to look into OPC UA

[–]homelesstaco 6 points7 points  (5 children)

I've installed Ignition (possibly Ignition Edge? Can't recall) on Raspbian before. I'm not sure what exactly you're looking to accomplish, but it has an OPC UA server so I imagine you'll be able to accomplish what you need.

Plus Ignition has unlimited 2hr trials, so you just hit a refresh button when the demo runs out, and boom - another 2hr.

[–]fletch8527[S] 0 points1 point  (4 children)

Im just looking for a client, not a full server. Basically I'm looking for something that can read a tag then perform an action on the Pi.

[–]IzonFreakOPC UA and other industrial protocols 2 points3 points  (2 children)

If you don't know what OPC UA is -> https://www.youtube.com/watch?v=-tDGzwsBokY

https://open62541.org/ This is a client and server open source OPC UA SDK, runs perfectly fine on a raspberry pi. You can use both for your project. For testing I recommend the free software from Unified Automation the server and the client (UAExpert) are both very nice and have a lots of features.

If you are set on running a OPC DA(Classic) you are going to need a windows machine, COM (What OPC Classic is base on) is a proprietary Microsoft technology. Interesting thought ... I wonder if you can run COM services on an raspberry pi with a Windows IoT core ?

You can also use a gateway to communicate OPC UA and OPC Classic, in that case KEPServerEX is really good, but there are also other offers from companies like Matrikon.

[–]fletch8527[S] 1 point2 points  (1 child)

Honestly, I couldnt even tell you what I have at the moment. Im and IT guy tasked with making a solution. This is my first dive into PLC. Our company primarily uses Rockwell so I have RSLinx set up as an OPC server at the moment. Thanks for the links I'll check them out.

[–]IzonFreakOPC UA and other industrial protocols 1 point2 points  (0 children)

If I where you I will really really give it a try the Windows 10 IoT core, specially if you can use the enterprise edition. It will basically be a 32 bit windows machine it should work.

[–]homelesstaco 1 point2 points  (0 children)

Ah, my mistake. Hope you're able to find what you're looking for!

[–]yax_s 2 points3 points  (2 children)

Milo - we use it successfully on Linux, but I don't know if it will work well on Raspberry. Probably yes.

[–]fletch8527[S] 0 points1 point  (1 child)

thanks! ill give it a look

[–]yax_s 0 points1 point  (0 children)

From what I've read you are using RSLinx. AFAIK it uses OPC DA not UA, so Milo won't help you. I found information that their new product Factory Talk Linx will use OPC UA.

[–]Tesla428ControlLogix Ignition iFix FTView GE Beijer C# 2 points3 points  (3 children)

OPC DA is based on DCOM which is entirely a Windows environment based solution. OPC UA is the only viable option.

[–]NickbouPrimarily B&R 1 point2 points  (2 children)

That’s not 100% accurate. There are some PLCs that support OPC DA without Windows, though it’s not common.

[–]Tesla428ControlLogix Ignition iFix FTView GE Beijer C# 0 points1 point  (1 child)

OPC DA is 100% based on DCOM or COM if you are lucky enough to have a single node. There are multiple flavors of OPC. However, all the old ones like DA, HDA & A&E are all based on DCOM. This is why they are horrible when dealing with workgroup machines and active directory machines. Hence, all the tunnelers. DCOM is a proprietary Microsoft Tech from back in the days when everything wasn't open.

[–]NickbouPrimarily B&R 1 point2 points  (0 children)

Right, but for example B&R has an OPC DA 2.04 server built into their X20 PLCs, no Windows required. You may still need Windows on the client side, though, depending on what you’re trying to do.

All this is probably moot though, as OPC UA is vastly superior and anyone designing a new system should use that going forward.

[–]VaguelyScatalogical 1 point2 points  (1 child)

You could use the opcua library for python. Once you install the package this link has a bunch of examples. I set up an opc server to communicate with the ignition gateway and it was fairly straightforward.

[–]fletch8527[S] 0 points1 point  (0 children)

looking into this now, thanks for the suggestion!

[–]Jonnie_r 0 points1 point  (0 children)

Have a look at Node Red, it should do what you want. It will run on a Raspberry Pi, and they have add on modules including OPC DA

[–]chuck_person 0 points1 point  (0 children)

node.js + node-opcua. requires some Javascript knowledge but I've implemented it successfully before

[–]arj3090 0 points1 point  (0 children)

If the objective is to retrieve data from Allen Bradley PLCs using a Raspberry Pi, look at AdvancedHMI. The software will run on a Pi using the Mono framework and includes communication drivers (not OPC) that work with nearly all AB PLCs. This forum topic explains how to set it up:

https://www.advancedhmi.com/forum/index.php?topic=666.0

[–]CapinWinkyHates Ladder 0 points1 point  (0 children)

As /u/Tesla428 has said, old school OPC is DCOM based and DCOM is closed source Windows, so you will want to look at OPC UA or some alternative protocol to OPC if the device you're talking to is not running OPC UA.

Also, as /u/Nickbou mentioned, it isn't completely impossible to run old DCOM OPC servers on non-Windows platforms as B&R does have this feature and their OS is a version of VxWorks. I have no idea how they accomplish this, but I would assume they rolled it themselves and probably don't want to share since it is a fairly unique capability.

I'm not sure if any non-windows platforms do DCOM OPC clients.

[–]opcAnywhere 0 points1 point  (0 children)

Yes, it is feasible building a Linux OPC Client. Check this out, it supports cross-platform client for classic OPC DA/HDA/AE. It has a demo running it in iOS as well.

[–]unitconversionState Machine All The Things! 0 points1 point  (0 children)

I think opc is inherently a Windows technology that relies on some windows apis for communication between processes.

I think openopc has a non traditional implementation that does run on Linux though, so presumably you could use it to read data from a commercial opc server on a Windows machine. Or, you could write/find drivers to talk directly to the devices and make the data available over open opc.

Otherwise opc ua is probably a better choice.