I have a customer who connect to our OPC server.
Does somebody got a table of the value that PcVue send in its AlarmState.
How can a OPC client ack an alarm?
Basically I thought the AlarmState was the same as the HDS one but it is not the case.
Thanks for your reply.
If I remember the ALERT story, ALERT can be OPC client of PcVue but this way can't acknoledge alarms.
If ALERT is using DDE then it is possible to acknoledge alarm from ALERT.
Don't you think that is because it is not possible to acknoledge PcVue alarms through OPC. PcVue is only OPC DA server, not AE?
Yes for sure you can't ack. through OPC.
That's one of the reason Alert driver is going to Web Services.
For the AlarmState:
OFF = 0
NOACKON = 1
NOACKOFF = 2
ACKON = 3
Thanks for your answers.
I am looking for a exhaustive list (alarm unavailable mask by perator etc..)
The customer seems to think the
NOACKON = 769
ACKON = 1794
Which is not at all the same value as yours Nico?!??
Maybe I'll connect and OPC client and check at least the basic value. as for the acknowledgement I'll keep in mind that the solution is through WebService or Varialbe acces kit actually....
Yes, I think better to try...
Hello,
A old mail sent to me by JS :
Property AlarmState:
This decimal value is defined thanks to hexadecimal masks. The following array describes these masks :
Mask Hexadecimal value Comments
Alarm state label number 0x000000FF Index in the array AlarmStateLabels (See below)
Alarm state enable 0x00000100 Alarm enabled or not (100 : enabled, 0 : disabled)
Alarm state Active 0x00000200 Alarm active or not (200 : on, 0 : off)
Alarm state Acknowledge 0x00000400 Alarm acknowledged or not (400 : Ack, 0 : NoAck)
Alarm state masked 01 0x00010000 Alarm masked by program (level 1)
Alarm state masked 02 0x00020000 Alarm masked by program (level 2)
Alarm state masked 03 0x00040000 Alarm masked by program (level 3)
Alarm state masked 04 0x00080000 Alarm masked by program (level 4)
Alarm state masked 05 0x00100000 Alarm masked by operator
Alarm state masked 06 0x00200000 Alarm masked by variable
Alarm state masked 07 0x00400000 Reserved
Alarm state masked 08 0x00800000 Alarm masked by expression
Alarm state masked 09 0x01000000 Reserved
Alarm state masked 10 0x02000000 Reserved
Alarm state masked 11 0x04000000 Reserved
Alarm state masked 12 0x08000000 Reserved
Alarm state masked 13 0x10000000 Reserved
Alarm state masked 14 0x20000000 Reserved
Alarm state masked 15 0x40000000 Reserved
You have to make an AND-mask to know if the alarm is acknowledged, masked,…
Property AlarmStateLabels:
The value of this property is an array which contains the labels associated to an alarm state.
This is an example of what you can find in this array. The order of labels in this array is not guaranted.
0 Alarm off
1 Alarm on - not ack
2 Alarm on - ack
3 Alarm off - not ack
4 Alarm off - ack
5 Alarm program masked 01
6 Alarm program masked 02
7 Alarm program masked 03
8 Alarm program masked 04
9 Alarm operator masked
10 Alarm variable masked
11 Alarm expression masked
The only way to get the adequate label is:
- First, the alarm has to be enabled (AlarmState AND 0x100 == 0x100)
- Then, mask the AlarmState with 0xFF, the result is the index in this array.
Normally, there was a KB article but I don't find it.
Probably it can help.
See you
Indeed it helps a lot.
I look for a KB article and could not find any.
I think that your mail resume everything I need.
Thanks Brice
Perfect, I will create (or create again) the KB article.
See you guys.


