I've noticed that my ClearSCADA (80.6914) don't write to archive value with bad qulity for modbus points when connection to modbus server is lost.
Here I shut down modbus server and point has quality "Last Known Value".
And here it started again.
But in Historic List there are only Good values.
It's a problem. I need to see bad quality values in archive when connection was lost.
As a solution I can make for every modbus point a couple Internal point and a logic that will copy values with quality. This Logic will link quality in internal Point to Modbus Scaner Status. But maybe there is more easy way?
Also I've found interesting option in Advanced Modbus - Direct Outstation - Log Historic Value On Communication Failure. It sounds as that I need. I just can't make this advanced thing work.
Solved! Go to Solution.
The general principles of Remote SCADA (unwritten!) are that historic data should only be logged if it came from the device (and the quality reflects what the device's opinion of the signal was - e.g. if it was from a connected instrument and the instrument failed).
However, the Advanced drivers support adding single historic values when devices fail. I do recommend you use Advanced drivers when available for the protocol you want for all sorts of reasons.
Oh, then I just need some help with Advanced.
I have a simple modbus slave simulator that runs on my local computer just for test.
With simple modbus driver i see it without any troubles. So I need to connect to it with advanced. As help says it means link Dircet Channel - Direct Outstation Set - Direct Outstation - Point.
1. My Direct Channel settings
2. My Direct Outstation Set settings
3. My Generic Direct Outstation settings
Direct and PSTN - all checkboxes are off.
4. And finally Generic Analog Input Point
So that I have now.
I just can't understand what's wrong. For example here is config for Simple Modbus that works (when InService is on).
2. Analog Point
Your original issue, your historic list doesn't show any values recorded during the outage, so you will never see the "Last Known Value". The trend only updates connecting the last value, before the outage and the first value after the outage due to a setting. In the trend, you can change the point's "Trace Style" to Line, or Step Last. Step last will show the same flat line trace that you were seeing during the outage.
Unrelated. It is possible to pass the quality of a Modbus point to an internal point by connecting ModbusPointName.CurrentQuality to InternalPointName.PresetQuality via some logic. I do this regularly when I need to total together several flow rates or volumes but need to maintain the ability of the internal point to show the quality of the Modbus points to indicate when an outstation is out of communications where my Internal Total is displayed.
That all looks correct.
I even tried it on mine with a Modbus simulator.
You could try 127.0.0.1 instead of localhost
Make sure the Simple Modbus scanner is not in service at the same time. Maybe your simulator only supports one connection.
You can enable Comms Logging on the Channel and see if there is anything in the log to give you an answer to what the problem is.
Your Modbus simulator may also have logging. Mine does and I could see connection requests but then it closed the port. On the Channel, I forgot to set Modbus to TCP, it was still on RTU.
Of course I switched off InService for Simple Modbus Scanner when tried Advanced. Modbus slave don't even see it's requests int it's log. I just don't understand why this thing doesn't work.
I keep in mind this model with AP (.CurrentQuality) -> IP (.PresetQuality) and it's the only way I see as solution. But my DB will double in size and there are more redundant work to do .
The channel is out of service in "am.sde", unlike the screenshot above.
Once I put the channel into service this configuration works for me.
Given that the channel state is showing "Disconnected" it looks like the Advanced Modbus driver isn't actually running. You can check if the driver is running from the "General \ Modules" page of the Server Status tool on the main server, as well as starting and stopping the driver.
Thanks Andrew - you beat me to it!
Note that the analogue point had a Retrieval Interval of 'Continuous' so the driver will be kept busy polling - choose a suitable interval to match what you need.
You also do not have a Scan Group (Confidence Interval), which may be as required. This interval 'guarantees' update of value/time/quality at this interval. Be very careful to set this at the slowest rate needed, as on larger systems you can impair performance.
Yap, I switched InService On/Off in advanced and simple, so it could happens in the export I gave.
But I have found. It's just....License....
As I understand, I need SCADAPackModbus License, that I don't have.
Configuration above will work with appropriate license very well.
Thank you very much for help guys. I'm really appreciate it.
If you're only using generic Modbus then you can just uninstall the unlicensed SCADAPack Modbus extension driver rather than obtaining a licence for it.
I can confirm from my own system that even using Advanced Modbus, Generic Analog point with Scan Group (Confidence Interval) turned on, that no values are recorded in the Historic List while the Outstation is out of comms.
Here is that I saw when cut off Modbus Slave and after enabled it.
Ih HL there are my national chracters but we see that one bad value is colored by violet.
In Generic Direct Outstation enabled Log Historic Value on Communication Failure.