reliable exchange of data in the industrial automation space and in other industries [1] • Platform independency ensures the seamless flow of information among devices from multiple vendors [1] [1] https://opcfoundation.org
written in javascript with Node.js • Node.js is a platform built on Chrome's JavaScript runtime for building fast and scalable network applications ◦ Uses an event-driven, non-blocking I/O model NodeOPCUA http://node-opcua.github.io/
Create a wide variety of industrial HMI, SCADA, and MES applications • Modular architecture: OPC UA module provide server and client functionality • Commercial software Ignition SCADA inductiveautomation.com
runs on the Raspberry Pi • The server expose some RPi operating parameters as variables ◦ CPU temperature ◦ Core voltage ◦ Memory usage • As as if they were process variables of a physical process that needs to be monitored
allow to control the LED board, to change light color and intensity • One variable for each primary color ◦ Red, Green, Blue • Pi-blaster[1] is used to generate the corresponding PWM signal on the RPi GPIO ports PWM [1] https://github.com/sarfata/pi-blaster
= new opcua.OPCUAServer({ // the port of the listening socket of the server port: 4334, // path will be added to the endpoint resource name resourcePath: "UA/NodeServer", buildInfo : { productName: "RaspberryPiServer", buildNumber: "1234", buildDate: new Date(2015, 5, 19) } });
add red color value variable to the folder server.redValueVar = server.engine.addVariableInFolder ("RaspberryPiServer", { browseName: "RedValue", dataType: "Double", value: { /* Next slide! */ } });
on board! ◦ Relies on NTP servers to get the current date • If not connect to the Internet the user must set the current date and time with the date command • OPC UA uses timestamps ◦ The date on the Raspberry must be in synch with the date on the Ignition gateway PC