LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

DSC alarm API Timestamp

Hi,

We are currently building an application for electrical systems using cRIO and DSC HMI features. Our intention is to generate alarm condition in cRIO and display the alarms on HMI-PC using the DSC alarm API. We are looking for a very precise timing on alarms down to less than 10 milliseconds. Our current setup is configured as follows:

  • cRIO has a Boolean shared variable to trigger an alarm condition via calculations in cRIO.
  • HMI PC also has a Boolean shared variable aliased (PSP-URL) with the cRIO variable. We do this in order to enable Alarms on the PC  variable and use the alarming API functionality.

From our understanding, DSC alarms API display PC-system timestamp whenever an alarm condition is triggered from cRIO. Apparently, the shared variable engine (SVE) on cRIO communicates to the SVE in the PC and passes information about alarm condition and timestamp. However the SVE in the PC only passes on information about alarm trigger to the DSC alarm API; it doesn’t take the timestamp and generates it using system (i.e. HMI PC) time.

 We were wondering if we could get the cRIO timestamp on the DSC alarms list "set time"? This is the best desirable situation. 

Do we have to write the cRIO timestamp to the citadel database becasue DSC alarms API just reads alarms from citadel? Once alarms are acknowledge, it wrties back the information to the database. So, there is something editing the database which is not transparent.

Any feedback on this to enlighten our understanding will be greatly appreciated.

0 Kudos
Message 1 of 2
(2,294 Views)

Hi, 

 

If I'm not mistaken that you want the timestamp data from the cRIO to be transfered to the PC, there is a setting at the cRIO shared variable (you'll need to set it at the Project Explorer where you create the time stamp) which you can have the shared variable to give out time stamp: http://zone.ni.com/reference/en-XX/help/371361H-01/lvconcepts/sv_using_nodes/

 

Alternatively, you could set the shared variable to transfer data of cluster data type which consists of timestamp and the datatype that represents your alarm trigger information: http://digital.ni.com/public.nsf/allkb/DDEB4D9BC34705C086257242000FF7DB

 

If you are using RT programming, you can place a timestamp related functions like Elapsed Time Express VI or Get time in seconds (which you need to convert using )  and bundle it with the alarm information using Bundle.vi or Bundle by Name.vi and write to the shared variable 

 

Or you could give a screenshot of the program an explain using the screenshot on what you are planning to do. 

 

 

As for your alarm acknowledgement thing, if your PC is connected with your cRIO always, you can just create some sort of hand shaking tools and use one or two shared variables specially for acknowledgement purpose. Something like a 2 way handshaking operations in a TCP/IP protocol. 

 

Hope that helps

 

Warmest regards,

Lennard.C

Learning new things everyday...
0 Kudos
Message 2 of 2
(2,274 Views)