Is there a Julia version of python-opcua or something equivalent?
Not that I know of. About four years ago I had Julia program that called a Python opc package through PyCall as a proof-of-concept that we never pursued further (I can’t remember which Python package it was). Back then I wasn’t surprised that Python had the package and Julia didn’t.
Fast-forward to today, I’m actually surprised I can’t find a Julia package for this; I’d half expect to find one that was further along than Python. MATLAB has had opc-ua for ages, and over the past four years, Julia’s package ecosystem has become generally better at covering MATLAB functionality than Python, especially in anything related to the process control space. All these packages are excellent and very useful for industrial data science and (advanced) process control:
- GitHub - JuliaControl/ControlSystems.jl: A Control Systems Toolbox for Julia
- GitHub - JuliaControl/RobustAndOptimalControl.jl: Robust and optimal design and analysis of linear control systems
- GitHub - baggepinnen/ControlSystemIdentification.jl: System Identification toolbox for LTI systems, compatible with ControlSystems.jl
- Optim.jl
- GitHub - SciML/DifferentialEquations.jl: Multi-language suite for high-performance solvers of differential equations and scientific machine learning (SciML) components. Ordinary differential equations (ODEs), stochastic differential equations (SDEs), delay differential equations (DDEs), differential-algebraic equations (DAEs), and more in Julia.
- GitHub - SciML/ModelingToolkit.jl: An acausal modeling framework for automatically parallelized scientific machine learning (SciML) in Julia. A computer algebra system for integrated symbolics for physics-informed machine learning and automated transformations of differential equations
They even have a lot of this wrapped up in their JuliaSimControl product. All this and yet no straightforward way to provide an opc-ua connection to make all these amazing tools to seamlessly talk to the outside world. It’s really quite a shame to have all this great stuff metaphorically locked away in a box with no easy opc-ua protocols (although it’s kind of a weak box, you can always call another language to implement the opc-ua communication). It just seems like it would be a natural fit to the Julia ecosystem though.
I think this is a general problem. Julia is mostly academic and you can’t write a paper about an OPC-UA package or an interface for a DB.