You could use a digital calculation point whose value is based on the quality of the DNP3 analog point, the expression would be something like:
IIF( "<DNPPoint>.CurrentQuality" < 192, 1, 0 )
where <DNP3Point> is the full name of the analog point.
This will set the digital point to state 0 if good quality otherwise state 1, and you can configure state 1 to be alarm.
As Andrew has said... if the quality as reported from the Outstation is bad, then you may need to use another calculation point (or logic to drive an internal point).
If however you're talking about bad quality in the sense of Overrange / Underrange.. then it's off the shelf 🙂
If you configure the AlarmType / AlarmSeverity for the FullScale / ZeroScale, and the input value goes beyond these, then you will get an alarm.
It sounds like the Invalid might do something also... but I've honestly never used this, and I'm not sure what it would do... the help provides this guidance for it:
Invalid—Use to specify whether Geo SCADA Expert generates an alarm or event whenever the point’s value is reported as invalid by the outstation. Use the fields associated with this state to define the properties should the analog to digital conversion process fail in the outstation.
So I would think that you should be able to get the alarming that you want directly from an appropriate configuration of the DNP3 Analog Point Properties (Overrange, Underrange and Invalid).
This likely won't apply for your situation, but might be interesting to know anyway. You can associated a Time Profile against the High High / High / Low / Low Low alarm limits... allowing the trigger points for these alarms to be time dynamic (both for time of day, as well as day of week). I think this is an amazing feature of GeoSCADA, and one that not enough people know about / use...
However... you can't associate such a Time Profile with Overrange / Underrange / Invalid limits.
Thanks to all for the solutions. I have never thought that in Clearscada can't create custom alarms until now, I don't know why is that...
The alarm limits is not something for my case because some of the points from the outstation are from conversation from modbus to DNP3 and when the modbus is off (sometimes happens because of external voltage is off or battery voltage is off) the RTU gets the last value with 'good' quality tag and until the modbus is on, the RTU sends that value together with the timestamp and quality tag 'ComsLost' (or 'ComsFail' or something like that).
As Andrew has said the calculations points are a solution but it will increase the points a lot and the license...
I figured out that there is a point 'Serial Error' in the RTU and if the value is not null there will be the alarm. It will be only 1 point per RTU so this would be the solution for me.
Some thoughts on why can't create custom alarms.. ?
Depending on what RTU you have you can potentially get the DNP3 quality to indicate that it's not good... then the Invalid item on the Analog Point could be configured for the alarm.
Creating 'custom alarms' would make it incredibly confusing. The existing alarms relate directly to the object that they occur on, and hence it's sensible.
The GeoSCADA system really has quite a strong inheritance system. So Alarms are not things that just float around in space, they are associated with a CAlarmObject, and hence configuration for those alarms occurs ON the CAlarmObject instance.
I think in this situation the best would be if in the RTU, when the Modbus communications failed, the point itself was marked as 'Offline'. Then you could alarm on that based on the Invalid AlarmType/AlarmSeverity 🙂
Assuming you could add a point to ClearSCADA/GeoSCADA that shows the status of the communications from the RTU to the device converting Modbus to DNP3.... Would it be possible to use the point and .PresetQuality to change the quality of all of the points also?
@Hardin4019 I'm pretty sure PresetQuality, PresetTimestamp only apply to Internal Points.
I would very much expect that these properties would not apply for DNP3 points.
@BevanWeiss is correct, PresetQuality and PresetTimestamp are properties of internal points. For 'real' points the quality and timestamp are determined by the driver based on the data received from the outstation.
The RTU marks the quality as 'Comm Failure' when the Modbus communications failed. Then the quality is marked as 'Comm Failure' and the status is marked as 'Offline; Comms. Lost' in ClearSCADA historic list of the point. The Invalid Severity is set on Alarm.
And there is the problem, there is no alarm raised and also the point state is not marked as 'Invalid'. When does ClearSCADA mark a DNP3 point state as 'Invalid'?
The invalid state on DNP3 analog points is only used when the outstation sets the REFERENCE_ERR flag on the analog point (see IEEE 1815-2012 Table 11-5 for flag descriptions). The DNP3 object flags are shown in the various status fields in ClearSCADA, including the historic list and view status dialog. These flags are used to calculate the DNP3 point's OPC quality within ClearSCADA.
There is no built in feature to raise an alarm (or change point state) based on any of the other DNP3 object flags.
You can create custom text alarms - ie they aren't associated with an object alarm state. Use the SetInterfaceAlarm method on CRootGroup.
@AndrewScott That does seem like a very specific situation re: the REFERENCE_ERR flag being the only flag considered as 'Invalid' for the alarming. I don't recall that being in the Help... perhaps this does need to be a bit more explicit.
I would have expected (and we know that I generally have Great Expectations) that an Invalid alarm would be raised if there was a ('Invalid') state reported from the DNP3 outstation for that point that wasn't captured elsewhere (e.g. Underrange and Overrange are captured, as is 'Local Overrride'..).
Perhaps we just need more fine grained control over alarms for different DNP3 reported point states.. which does sound a little horrible, since there are already quite a lot of alarm states around the E-series / x70 DNP3 points as is (I've never used any more than the 2 high/low alarm limits... is there anyone that does?)