Hey all,
I love the idea of using DNP3 to communicate some data from a RTU to our SCADA software. However, most of our field devices are serial and do not have the DNP3 Protocol. Right now we are polling the RTU from scada via modbus commands on a period. However, if there is an alarm at the site the customer will not know until the next polling cycle.
What I was hoping to do was combine a couple features that are in the RUT956 already with the help of some custom programming.
What I’d like to do is poll an array of operands via modbus RTU or TCP regularly. And be able to store this data somewhere in the Teltonika device. Then on either a time interval or an alarm scenario, send all the data to the scada system via DNP3. Any ideas where to start with this?
You mention that you currently use Modbus to send data to your Scada system. Do you use data to server functionality for this? If so, are you sending this data over HTTP or MQTT?
Is it absolutely necessary for you to use DNP3 in this case? Perhaps Modbus Alarms here would achieve your requirement? With Modbus alarms, you can monitor Modbus register values on the Modbus Server. For example, if the Modbus register value on the Modbus server changes, you can send an SMS or an MQTT message. With some workarounds, it should be possible for Modbus Alarms to trigger data to server to send data to your system as well. You can take a look here as well.
So unfortunately, the way it is working right now, our servers are polling the PLC’s via modbus on an interval. The PLC does not initiate the communications.
I have been toying with the idea of using MQTT as a better solution to what we are currently doing. This would allow the modem to handle the polling of the PLC, and on an alarm condition send data to the MQTT broker to be published to the Scada server. And this is a much better solution, I just have no experience with MQTT yet and needed a solution fast.
DNP3 is still a better protocol though because it monitors the specified address’ and time stamps every single change until either a class 1 event is logged, or it has logged its maximum number of events. Then all the data is sent to the server with time stamps. So there is no missed data at all.
I will take a look at the Modbus Alarms you shared though! Thank you!