Yes, Paul (OkiePC) is setting you straight, even though reluctantly, as it's FTView rel<h>ated!
To understand what is happening here, while incorrect for you, but correct for the setup you have configured, we have to look at the "Trigger type" you have currently set, or left at the default.
On the General tab, with the "Trigger type" set to "Value", the Alarm_Bits DINT tag is being accessed at the Word level as a Decimal number.
Let's take your example - say Bit 3 set to "1" (Alarm_bits.3 = 1)
All other bits in the DINT are = 0
This means that the DINT value will be Decimal "8"...
31------------------------------<<<
3210 <<< Bits 0 - 31
0000000000000000000000000000
1000 <<< 32-bit DINT
-------------------------------------
8421 <<< Base-2 Binary Values
You have State 0 - State 31...
State 0 = "No Alarms"
...
State 3 = "Alarm You Want"
...
State 8 = "Alarm You Don't Want"
...
So the "Alarm You Don't Want" is displayed by the Multistate Indicator while the DINT Decimal value is equal to 8.
You would have to move the Alarm State "Alarm You Want" to State 8 for it to display as you intended.
To use your DINT Alarm tag as a Bit Array of Alarm Bit Indicators, instead of an Alarm Value Indicator...
On the General tab for the Multistate Indicator in View Studio, set the "Trigger type" to "LSB" instead of "Value". "LSB" means "Least Significant Bit". This tells the Multistate Object to look at your DINT tag at the Bit level instead of at the Word level. Each Bit Position in the DINT will be directly linked to the 32 States you defined on the General tab and configured on the States tab.
Note: Only one State can be displayed at a time. If using Value trigger then the State that matches the Indicator tag value will be displayed. It can only be one value at a time in the program, so that's OK. But for LSB, you may have several Alarm Bits set to "1" at the same time. They cannot all show their States at once, so the Least Significant Bit in the DINT, that is set to "1", gets priority.
Example:
Alarm_Bits.3 is set "1"; all others = "0"
State 3 is displayed - Bit 3 is the Least Significant Bit = 1
Alarm_Bits.2 is then set "1"; Alarm_Bits.3 is still set "1"; all others = "0"
State 2 is displayed as Bit 2 is now the Least Significant Bit = 1
Alarm_Bits.0 is then set "1"; Alarm_Bits.2 & .3 are still set "1"; all others = "0"
State 0 is displayed as Bit 0 is now the Least Significant Bit = 1
It's important to understand this when designing a Multistate Indicator to display different Alarms. No matter which trigger method you use, you can only display one at a time. You may need to prioritize your Alarming logic so that higher priority Alarms take precedence.
Regards,
George