Halcyon is a scalable, cross-platform, embeddable, open-source OPC-UA server.
Install JDK8 and make sure it's either a) the default JDK on your path or b) the JDK $JAVA_HOME
points to.
Clone, build, and install mezzanine, the OPC-UA SDK Halcyon is built on.
git clone https://github.com/digitalpetri/mezzanine.git
cd mezzanine
mvn install
This step will only be necessary until mezzanine is being released to Maven Central.
Clone, build, and package halcyon.
git clone https://github.com/digitalpetri/halcyon.git
cd halcyon
mvn package
If packaging halcyon was successful a zip distribution can be found under halcyon-jsw/target
called halcyon-0.1.0-SNAPSHOT.zip
(or whatever the current version actually is...)
Install and configure the halcyon distribution...
mkdir /opt/halcyon
unzip -d /opt/halcyon halcyon-jsw/target/halcyon-0.1.0-SNAPSHOT.zip
cd /opt/halcyon
chmod +x bin/halcyon.sh
At this point you'll probably want to uncomment and modify the wrapper.java.additional.1=-Dhostname=localhost
parameter in config/wrapper.conf
so it points to a resolvable hostname or the IP address.
Start Halcyon
/opt/halcyon/bin/halcyon.sh start
Halcyon doesn't come bundled with any connection types, which admittedly makes for a pretty uninteresting OPC-UA server.
But once you've developed/acquired a new connection type its jar files should be placed in the lib/
folder and its connection instance configuration files placed in the connections/
folder.
If you ask me nicely ([email protected]) I'll send you a Modbus connection binary you can test with.