FactorySQL and OPC server on linux


Sorry if this question isn’t in the good folder.

FactorySQL must be connected to an OPC server. Have you ever experienced any OPC running on linux platform ?

Thanks a lot

BenoÎt Colson

Unfortunately, OPC-DA servers are based on COM, which is a Microsoft Windows technology, so there are not linux versions available.

The forthcoming OPC-UA specification should change this relatively soon however…

Thanks for the interest,

A non preemptive OS must then be used to receive and process data in realtime :open_mouth:
Is that the only solution available at this moment ?

The only other options might be running it in WINE, or ThinApp. I doubt they will work, and if they do, it would be a painstakingly hard task

[quote=“Colson”]A non preemptive OS must then be used to receive and process data in realtime :open_mouth:
Is that the only solution available at this moment ?[/quote]

Yes, modern OSes (Windows and Linux) are not realtime systems, in the strict definition of realtime. Heck, ethernet can’t even provide any realtime guarantees. But of course, our system isn’t trying to be a Soft-PLC - its a SCADA system, realtime data processing isn’t necessary.

I guess it depends on how much you want to keep it in linux and how much work you want to do. There are some decent solutions available to make OPC data available in linux, but you’ll still need some windows machines to do the collecting. I’m specifically thinking of the OPC Data Hub, which has a programmable client api in linux. However, you’re basically programming against a client node of a tunnel, so you still need the server somewhere else. So, unless you were really trying to leverage and tie into some linux app that you already had, you’re not really getting very far.


My experience says keep real-time stuff in hardware (including networks) designed for it.

When you say receive and process data in realtime, I think that a PC has no place in a control loop. A SCADA interface should be no different conceptually from an operator standing in front of a hardwired interface on a panel. As far as initiating control goes, there should be no reliance on the SCADA remaining there after an onscreen button is pressed. When we code an accompanying PLC system, we always make sure the PLC is being triggered by a rising edge on a SCADA input - the PLC doesn’t care what the SCADA does after that.

If there are any controls with safety implications e.g. an emergency stop, these should always be hardwired external to the SCADA.

Al’s post is dead on.

Perhaps you could argue that Linux is more stable than Windows. However, the quality of application you’re running is probably an order of magnitude more significant in terms of platform stability. But if you’re talking about something that needs to run with your process, the next step is doing it in hardware - don’t try to use a PC to do the job of a PLC! Like Al said, wire that E-Stop directly to the PLC on its own circuit!