02-28-2011 09:18 AM
I'm looking to use the built in cRIO Fault Engine (part of the scan engine) to log errors that occur on my cRIO systems. Currently I have very little error handling built in and I would like to change that.
I'd like to find how others are implementing this, and what the most effective ways are of displaying information logged in the Fault engine on a computer (without using distributed systems manager).
Thanks
-JimMacD
02-28-2011
01:09 PM
- last edited on
04-16-2024
10:42 AM
by
Content Cleaner
The built-in fault engine is a bit restrictive but quite nice, it has error filtering, priority, and light-weight cross-loop communication built in.
Use the Set Fault VI to fire an error (pass the error information into the VI through the error cluster, don't bother filling in the source field and status fields, as they are ignored). Other than the error code, the only thing you have control over is the major fault control, which indicated whether this fault should be classified as major or minor. Note that the fault control can be overridden for certain errors based upon the fault configuration. Fault Configuration can be done with the fault configuration VIs or through the project, it primarily allows you to set the severity of the built-in scan engine errors, as well as establish occurrence thresholds for them and a few custom error codes.
To parse errors, call the Get Fault List VI. Note that it automatically filters faults and returns the number of times a fault has occured since it was last cleared as well as the timestamp of the first occurrance. In your case, I think the easiest thing to do would be to parse the fault list into a series of Syslog messages to transmit to your host program.
https://www.ni.com/en/support/downloads/tools-network/download.syslog-message-collector.html
That's a basic overview, feel free to ask if you have more detailed questions.
02-28-2011 04:21 PM
I should also mention that my long term plan is to integrate the network of cRIOs into a SCADA system using the DSC module. I'm currently researching how to set this up using a central server/database. One of the key parts of this will be the central server collecting, displaying, and alarming errors from the various cRIOs, and sending out notifications, alarms, etc...
Would the fault engine be a good method of capturing and reporting errors in a SCADA system? (I'm not framiliar with the Syslog protocol, but whatever I end up using, I want it to be simple but configurable).
02-28-2011 04:41 PM
I don't do a whole lot with DSC, but the fault engine does publish the fault list as a network-published IOV, which means you should be able to alias a shared variable on a Windows SCADA machine to it. Not sure how it would work with the logging, etc, but it wouldn't be hard to try out.
Syslog comes more from the server world than from SCADA, but you could probably either find a syslog server that provides a SCADA friendly interface, or write one yourself (it's a very simple protocol).