
Kiradyne (Customer) asked a question.
Can the CLICK PLUS (running Node-RED) be used as an edge device between a Productivity PLC and a UNS (MQTT broker) using Sparkplug B?
Specifically I'd like to know:
- What communication protocols are supported for sharing data from a Productivity PLC to the CLICK PLUS?
- Can it format that data into proper Sparkplug B payloads (NBIRTH, DBIRTH, NDATA)?
- Can it publish reliably to an MQTT broker?
- Are there any known limitations regarding performance, tag count, memory constraints, or MQTTS (TLS) support?
The intent is to keep deterministic control logic within the Productivity PLC and use the CLICK PLUS strictly as a lightweight MQTT/Sparkplug edge layer to forward data to the cloud for analytics and dashboard applications, while also allowing data from the cloud to be transferred back to the Productivity PLC when required.
That is a solid maybe. It depends what you want to send and how fast. Productivity can talk to CLICK primarily through Modbus. If you add Node-Red, it can send MQTT messages to the C2-NRED module - either through an external broker, or you can install the node-red-contrib-c2nred-mqtt broker on the NRED and send messages directly to the CLICK.
You can also install the node-red-contrib-mqtt-sparkplug-plus node. Then you can take the MQTT sent by the Productivity and let the Sparkplug nodes handle the protobuf encoding to forward your messages using Sparkplug B. I haven't tested the second step, but the libraries install without error, so it looks pretty straightforward.
Hello,
Below is answers the best I can give them without getting to deep into your actual application.
1) CLICK can communicate with the Productivity PLC over EtherNet/IP following the example in CLICK Help Topic CL236.
2) There is a NodeRED package compatible with the C2-NRED module. node-red-contrib-mqtt-sparkplug-plus. Please use the Compatibility Finder to find the correct package version and create the download link. I have verified that it will download to the C2-NRED but have not used it myself. The npmjs.org website (linked on the Compatibility Finder) shows examples on how to format for Sparkplug B.
3) Again I have not tested the node-red-contrib-mqtt-sparkplug-plus package but it shows the ability to use TLS with a MQTT broker.
4) In my testing with MQTT (non Sparkplug B) I have not seen issues with performance on constraints for MQTT. You will have to use a series of data transfers to get the data to the C2-NRED. Prod PLCC --(EtherNet/IP)-->CLICK PLC--(CLICK READ NODE over Backplane)-->Format in SparkplugB-->publish to MQTT. Each use of the CLICK Read Node can only read 32 datapoint of each datatype at a time. (i.e., 32 DS/DD/C/X/Y etc. sequential registers/discretes per read) These can be stacked using one trigger if needed.
Hope this helps