04-25-2011 01:37 PM
I am using LV2010SP1 with the DSC module and EPICS Server/Client. I have used EPICS in DSC before, but only for passing values. Now I am interested in alarms and alarm status and I am getting strange results. I have attached a zip file with a project that illustrates the problem. The server publishes a single integer, and in DSC I enabled alarms with the default thresholds: below 10 is LOLO, 10-25 is LOW, 25-75 is NO_ALARM, 75-90 is HIGH and above 90 is HIHI. When I run the server and look at the values of the shared variable and the EPICS Server variable using Distributed Server Manager then everything looks good. On the client side, though, the alarm status readings are messed up. The status changes at the correct levels, but the status reads wrong. LOLO shows up as STATE, LOW shows up as COS, HIGH shows up as LOW and HIHI shows up as LOLO! STATE and COS are not even legitimate options for status. Here is a screen shot of the Distributed System Manager display. Has anyone else encountered this problem? I have tried Int16 and Int32 with the same results. I will try DBL next, but eventually I need this to work for integers.
Rich
04-27-2011 12:23 PM
Rich:
That is indeed strange. I ran everything on my machine and got the same result. It looks like it has something to do with the EPICS I/O Server backend; the STAT variable on the server returns correctly, it's just the client one that isn't returning the correct data.
I'll follow this up with one of our engineers and let you know what I find.
05-04-2011 11:10 AM
Rich:
So, it turns out that COS and STATE are valid values for the STAT field in EPICS, but they definitely don't make sense for the alarm states of the bound shared variables.
(Brief mention of some of the STAT field values can be found on aps.anl.gov here)
I've filed this under Corrective Action Request (CAR) #297362 with R&D. In the meantime, is it possible to use the server's STAT value (instead of the client's) as a workaround?