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.

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...

Similar Messages

  • Can I generate a DSC alarm based on the difference of two signals?

    In the Tag Configuration Editor of the DSC module, you can set lower and upper limits on any signal (tag). This works well if the signal is expected to always be within a certain range. However, if the signal is expected to vary according to a predefined pattern, how can I detect when it passes out of the expected pattern? - In my case the problem is made easier since I have two signals I can monitor: a setpoint and an actual. Therefore I can calculate the difference between setpoint and actual and set an alarm if the difference exceeds some maximum value. However, the DSC tag configuration editor does not allow these kind of "derived channels".
    One possible solution is to run LabVIEW code to mon
    itor these signals in real time, continually calculate the difference and generate an error if the difference exceeds the limit I have set. The problem is there does not seem to be a way to programmatically generate a DSC alarm.
    Another possible solution, but requiring more work, is to create my own VI-based server to monitor the derived channels. Then there would be two servers running - logos to acquire the FieldPoint data- and my VI based server to calculate the derived channels in real time. My question is: Is there an easier way to do this?

    Hi Chris,
    Go with your first proposed solution -- and write the result to a Discrete Memory tag. And set this tag to alarm on High. This will now act as your alarm tag.
    Hope this helps.
    Regards,
    Khalid

  • DSC: Alarm time delays

    Hello,
    How can I make the DSC alarm tolerate transient spikes? e.g. trigger an alarm event if the temperature has exceeded the HI level for over 5 seconds, but ignore it if the HI level was only exceeded for 1 second.
    Thanks!

    Hi JKSH,
    Please take a look at the Help File for the Alarming Page of the shared variables, under alarms, the Deadband/Time option seems  to be the one you are looking for:
    Deadband/Time—Sets the Deadband or Time of the alarm.
    Deadband (%)—Sets the alarm deadband as a percentage of the full scale range. The Share Variable Engine (SVE) does not clear an active alarm until the percentage difference between the new value and the previous value equals or exceeds the deadband. If you set the Deadband/Time too high, the SVE might not clear the alarm.
    Time (ms)—Sets the amount of time, in milliseconds, in which the shared variable value must change at least the value of Change to go into an alarm state.
    steve.bm
    AE | NI

  • DSC Alarm Setup - what went wrong?

    I have a DSC application reading +- 1100 NI OPC tags into SVE from four different PLC's.  While I do engineering I move the application between two PC's depending on which one is avalable at the time to do engineering.   The Citadel database has the same name and location on the PC harddrives, etc.  On the first setup iteration all the analog and binary alarms was operational.  Somewhere along the line I lost the alarming operation in that none is presented to Alarm and Event display on the front panel or in the DB.  Apart form the basic setup, is there any suggestion to maybe reset values, recreate DB (hopefully not), etc?
    Regards,
    Pierre    

    Do none of the variables trigger alarms anymore? Does this occur on both PCs? I assume you have checked that the variable value is in the alarm's range? What happens when you create a new variable for your OPC tag and enabe alarming? What version of LabVIEW DSC are you using?
    Thanks,
    Anna K.
    National Instruments

  • DSC Alarms: how to get the current alarm levels / setpoints

    I have a VI that can get the alarm levels for shared variables as they are set in the project library.
    But I have programmatically changed the values for the alarm levels, so the Distributed System Manager shows different levels as compared to what my VI displays.  I want the updated or current alarm levels - the ones that are retrieved by Read Alarms (called setpoints).
    I could use Read Alarms, but that only shows the shared variables that are in alarm.  I want all the shared variables in a process that is currently deployed.
    Any suggestions?
    BTW, is Distributed System Manager the same tool as Shared Variable Monitor?  I can't find the Shared Variable Monitor on my system.
    G

    Hi Gretchen,
    To answer your second question first, Shared Variable Monitor was the old name for what became Distributed System Manager. There was also some added functionality beyond just shared variables with DSM, so the name got changed. 
    As for suggestions regarding your application, I could use a little bit of clarification. I understand you're programmatically changing the alarm values and you want to display the values of your shared variables and their respective alarm states, correct? Also, when you're running your VI DSM does not update with the new alarm values (what happens when you hit the refresh button?). 
    I found a couple examples that may be useful moving forward Example 1, Example 2. These cover using shared variables and DSC's alarming features.
    Tim W.
    Applications Engineering
    National Instruments
    http://www.ni.com/support 

  • Dsc, alarm query time out

    Hello,
    I'm using LabVIEW 2009 SP1 with DSC-Module. Today I had trouble using the "Alarm&Event Qurey.vi" to read data from the citadel database. The Query worked well for days and delivered the data quickly. Well today it didn't, instead it delivered a time out and it didn't help to set the time out value parameter to higher values (normally I use the default value, 30s). It did not help to restart my application, nor LabVIEW, nor Windows (XP, by the way). It simply stopped working.
    Then I tried my luck using the MAX and its Historical Data Viewer to retrieve the logged alarms and, unexpected, this worked! And after that, like there was magic in the air, the "Alarm&Event Query.vi" worked also again!
    So, this doesn't feel very reliable. I do not interact with the citadel database using other ways than the Query vi and the Library-/SharedVariable-Settings (writing to the data base is managed by the shared variable engine).
    Did someone experience the same problem and can I prevent this behavior somehow?
    Thanks in advance,
    Thomas

    Hello Thomas,
    Unfortunately it seems that this behavior is not reproducible.
    Has the error occurred again since your last post?
    I checked our internal database and I was not able to find any hints, that this is a common issue.
    Could you please post the important section of your code, if the error appears again?
    So we can dive a little bit more into detail.
    Regards
    Ulrich
    AE NI-CER  

  • DSC 8 custom timestamp

    Is there a way to write a custom timestamp to a published shared variable in DSC 8.0, as we could in older DSC versions with VI-based servers?

    At least for the time being you cannot create shared variables with custom timestamps but...
    In DSC 8.0 the ability was added to log to the Citadel database directly, bypassing the engine.  Once you get the information from the acquiring computer you could publish the data to a non-logging shared variable so it would be available to others on the network and write the data directly into the database (which allows you to supply the timestamp.)
    Obviously this is more cumbersome than just supplying a custom timestamp to the variable but it will allow you to log with the resolution you require until custom timestamps are available with the shared variable.
    Regards,
    Robert

  • DSC alarms are blinking when they shouldn't

    I have a bunch of shared variables on my front panel.  Some of them have alarming enabled, with the option to blink when alarming.  I programmatically disable all alarms at startup of the VI, but some of them blink when there is a value of zero for the variable.  Anything above zero causes the blinking to stop.  It even does it for a variable that I disabled the alarming for, using the shared variable properties.  I can use the "Read Alarms" vi, and there is nothing being reported.

    Hi Brian,
    Couple of questions - what version of LV and DSC are you using? How are you having your shared variables set up to blink? It sounds like there is some other factor than the alarm that is triggering the blinking since Read Alarms doesn't have anything AND you have alarming turned off and they are still blinking. I would suggest either 1) deleting and re-adding your variables in case something became corrupt or there is some other underlying alarm that is causing the blinking or 2) get rid of the blinking feature, ensure the variables work correctly, and then add it back one at a time to check to see where the problem is. You could also post your code for myself or others to take a look at and possibly find the problem. Thanks!
    Stephanie

  • Data Logging and Supervisory Control (DSC) Alarm Acknowledge / General Alarm Questions

    Hi All -
    I would like to know if anyone can help me with DSC and alarms.  I have several shared variables that I have setup with alarms and logging with DSC.  I can view them with the Shared Variable Manager, the value, status, alarm state, etc.  So, I want to be able to view this info on my Front Panel and acknowledge alarms there - - Is that possible?  I put "alarm and event display.vi" on my front panel and it shows when a variable goes to alarm state, but I don't see how to acknowledge the alarm once it enters the alarm state.
    Other question, once a variable is in an alarm state, obviously it stays there until it is no longer in alarm, but if you acknowledge it - - what happens? does it stay 'red' color and remain in the alarm list - and what about logging, does the log indicate when the alarm was acknowledged any by whom?
    So that is my next question, how do I setup and force a user to 'log-on' to be able to acknowledge alarms?
    If anyone could point me at a document / tutorial / example I would really appreciate it!
    Thanks!
    Get Mystified

    Mystic wrote:
    Hi All -
    I would like to know if anyone can help me with DSC and alarms.  I have several shared variables that I have setup with alarms and logging with DSC.  I can view them with the Shared Variable Manager, the value, status, alarm state, etc.  So, I want to be able to view this info on my Front Panel and acknowledge alarms there - - Is that possible?  I put "alarm and event display.vi" on my front panel and it shows when a variable goes to alarm state, but I don't see how to acknowledge the alarm once it enters the alarm state.
    Other question, once a variable is in an alarm state, obviously it stays there until it is no longer in alarm, but if you acknowledge it - - what happens? does it stay 'red' color and remain in the alarm list - and what about logging, does the log indicate when the alarm was acknowledged any by whom?
    So that is my next question, how do I setup and force a user to 'log-on' to be able to acknowledge alarms?
    If anyone could point me at a document / tutorial / example I would really appreciate it!
    Thanks!
    Get Mystified
    When your VI is running, you can right-click on the alarm & event display control and it will give you the option of acknowledging the alarm.  Another option would be to use the Acknowledge Alarm.vi and create your own interface.
    Once the alarm is acknowledged, the alarm color will change to magenta and the acknowledgement information will be displayed.
    The acknowledgement information - user, time, comment - will be logged if logging alarms is enabled.
    Regards,
    Robert

  • Dsc Alarming properties AckType

    Hi, I'm using dsc 2010 and trying to set Acktype for alarming to user instead of auto. But then the alarm never goes out of alarming once it is set. Had a look around and found that user ack should have the value of 1 (Auto 0, and never 2). When I look in distributed system manager I see that the value of AckType is 2. So is there an error in the DSC properties settings that sets user ack to 2 instead of 1?

    go here: http://zone.ni.com/devzone/cda/tut/p/id/5715 and here
    http://digital.ni.com/public.nsf/websearch/04D9A85B6967EE87862571140065EEC6?OpenDocument

  • Get a Boolean When a DSC Alarm Goes Off

    Hello LabVIEWers!
    I've got probably 30 shared variables that I'm monitoring and logging using the DSC module.  I'm starting to use the alarms functionality and what I'd like to be able to do is run some code that sends my team a text / email when an alarm goes off. 
    It seems to me the easiest way to do this would be to somehow monitor the alarms and produce a T/F value that I can use to run a case structure.  For whatever reason I'm not seeing how to do this easily.  Is there a VI I'm missing?  I just want to be able to produce a True value when the variable is in alaram and a False value when it's not.
    Thanks for the help!
    -Mike

    Hi Mike,
    I've attached a few articles that you might find useful. They include descriptions and instructions.
    Configuring Alarms for Shared Variables (DSC Module):
    http://zone.ni.com/reference/en-XX/help/371618F-01/lvdscconcepts/set_alarms_for_sv/
    Configuring Alarms for Boolean Shared Variables (DSC Module):
    http://zone.ni.com/reference/en-XX/help/371618F-01/lvdschelp/config_blalm_in_db/
    I also ran across this Discussion Forum that you might help you out once you've established your alarm configuration.
    Send Email and Text when an Alarm goes off - LabVIEW DSC
    http://forums.ni.com/t5/LabVIEW/Send-Email-and-Text-when-an-Alarm-goes-off-LabVIEW-DSC/m-p/1568580?r...
    Hope this helps!
    Jordan

  • IPhone Alarms API

    Dear Apple or Anyone
    Do you know if Apple is going to offer a API that will allow Alarms to be running in the background. I need a Medicine Alarm tool that will alert me when I am in any app or screen on my iPhone. I need a tool that will keep a alarm running until I stop the alarm. I had a similar tool for my treo and need an alternative.
    Thanks
    Ken

    This is a user to user forum, so you will not get an official Apple response here.
    I'm not sure about the alarm running until you turn it off, but I think my alarm goes off whether I am in an app or another screen or a phone call.
    Unless Apple announces, there is no way to know what they will or will not do in the future.
    You can leave feedback for Apple at:
    http://www.apple.com/feedback/iphone.html

  • DSC alarm set and cleared without operator ack - the variable should be not alarmed and not acked

    We are deeply involved in porting our application from 7.1.1 to 8.6.1 under Windows XP.
    Our application  heavily depends on DSC and moving from 7.1.1 to 8.6.1 is actually much more than a simple porting....
    here is our last problem:
    it seems that there is no discrimination between 'active' alarms and 'acknowledged' alarms on a shared Variable  in case the 'ack Type' is set to 'USER'.
    Here is what happens:
    1) a Boolean shared variable is defined to be alarmed when 'high' (TRUE) and its ack type is set to 'USER' (the operator at our application must ack alarms).
    2) the Boolean var is set to TRUE -> it is declared alarmed (OK)  and not ack'ed (OK)
    3) the operator ack the variable -> it is declared alarmed (OK)  and ack'ed (OK)
    4) the Boolean var is set to FALSE -> it is declared not alarmed (OK)  and ack'ed (OK)
    5) the Boolean var is set to TRUE -> it is declared alarmed (OK)  and not ack'ed (OK)
    6) the Boolean var is set to FALSE -> it is declared alarmed (NOT OK!!!)  and not ack'ed (OK)
    7) the operator ack the variable -> it is declared not alarmed (OK)  and ack'ed (OK)
    This last case is the wrong situation: an alarm has been set and cleared without operator ack the variable should be not  alarmed  and not acked 
    Actually the variable returns OK only when ack'ed.
    see the attached project in which a small vi and a small shared variable lvlib allows to repeat the above steps.
    Note:
    A) same situation applies to 'double' shared variable
    B) under DSC version 7.1.1 everithing was OK 
    can anyone Help?
    Thank You Guglielmo Rozera
    Attachments:
    AlmAckTest.zip ‏18 KB

    Thank for your replay!
    I have tried to undeploy and deploy the library with ack type set to 'User' by default, and then run the vi but the behavior is always the same.
    The modification you suggest does not set 'User' ack type because data socket needs '2'  as 'User ' setting while property node needs '1' or (better) its own enumerated type.
    Anyway I've corrected the vi according to your suggestion and tried again but nothing changed...
    Here I attach the project modified with property node and an indicator to show what is the actual ack type
    I hope in your further investigations!
    Thank You
    Guglielmo 
    Attachments:
    AlmAckTest_2.zip ‏20 KB

  • LV2010 DSC alarm troubles

    I recently upgraded from LV2009/DSC2009 to LV2010/DSC2010. My development system code works fine in LV and also built into an exe. But on the "users" station my .exe doesn't work any more. Everything seems fine except for alarms. They are constantly in alarm. All 90 of them. They are boolean values that I have converted from INT values from the PLC. The outputs from the PLC via RSLinx OPC server are all 0's and appear OK. What is really strange (and probably significant) is that the value from "DSC_Read Alarms.vi" is 64. When it was working it was a value of 1 when in alarm and 0 when not in alarm.
    PaulG.
    "I enjoy talking to you. Your mind appeals to me. It resembles my own mind except that you happen to be insane." -- George Orwell

    Another one of those "LabVIEW can fix itself if you give it enough time" issues. I was playing around with the DSM 2009 and 2010 and RsLinx Classic on the target machine and it started working. I really didn't "do" anything except look at tag values from the PLC. Strange. Disturbing.
    PaulG.
    "I enjoy talking to you. Your mind appeals to me. It resembles my own mind except that you happen to be insane." -- George Orwell

  • Dsc alarm control bug?

    Hi all,
    The alarm list control retains the process watch list when a VI is copied between computers. This will make the VI both load and execute very slowly when a program starts, presumably as it will try to connect or located the processes on the other computer. It seems also not possible to set the process watch list to be listening on 'localhost' processes. Clearing the processes and then closing the VI does not work properly either, as the processes from the other computer will be back in the configuration after labview is restarted.
    However I found a way to clear the process list. 
    1. Clear the process list.
    2. Set the alarm control list in 'design mode' and then back again.
    3. Save the vi.
    It is quite bothersome if there are several instances of the alarm control? Is there a better way to deal with this?
    Am I maybe missing something obvious?
    /Roger Isaksson
    Solved!
    Go to Solution.

    The alarm control will store the process list when the control is modified and saved. It is therefore important to shut down the calling vi cleanly and calling clean up procedures before anything is saved.
    This is a workaround and a proper fix is in the works I presume?
    /Roger
    Attachments:
    UnSubscribe All Local Processes.vi ‏18 KB

Maybe you are looking for