nbourg8

Hundreds of Discrete Alarms - Simplest method?

7 posts in this topic

Good morning all!

I'm just getting into this world of controls and automation and need a way to simplify my life when it comes to discrete alarms. I do not care to separate them by tag so long as I can create a personalized for each bit/alarm triggered.

  1. What is the best way to list hundreds of alarms in a single tag?
  2. Can we make use of a struct data type? If so, what would this look like?

I understand I can use something like a tag of data type word, such as "Faults" MW100 and then reference M101.0, M101.1... M100.0, M100.1 (notice the order), but this only allows me 16 total discretes per tag.  Sometimes I'll have more alarms than 16 and sometimes way less. I'd rather not seperate them in this manner if I can avoid it.

Your assistance is much appreciated!

 

[edit] Siemens TIA and WinCC v15

Edited by nbourg8

Share this post


Link to post
Share on other sites

Add more alarm words

Alarm word 1 - MW100

Alarm word 2 - MW101

Alarm word 3 - MW102

Just add as many you need

Share this post


Link to post
Share on other sites
4 hours ago, Bryll said:

Add more alarm words

Alarm word 1 - MW100

Alarm word 2 - MW101

Alarm word 3 - MW102

Just add as many you need

Over writting of address !!!

I think you mean - 

Alarm Word 1 = MW100

Alarm Word 2 = MW 102

Alarm Word 3 = MW104

Or use a Data Block.

Share this post


Link to post
Share on other sites
5 hours ago, Moggie said:

Or use a Data Block.

Could you explain this a little more.  I understand the importance of data blocks with regards to their involvement in function blocks and holding information, but not sure how I would structure the DB to hold ALL of the alarms? 

In the attached screenshots, I have an old program from a previous job where they used a DB like you are suggesting.  I'd like to replicate it since the WinCC call seems to be farely straight forward too.

How is this done in S7 v15?

S755_PLC_AlarmDB.PNG

S755_WinCC_AlarmDB.PNG

Edited by nbourg8

Share this post


Link to post
Share on other sites
8 hours ago, Moggie said:

Over writting of address !!!

I think you mean - 

Alarm Word 1 = MW100

Alarm Word 2 = MW 102

Alarm Word 3 = MW104

Or use a Data Block.

I stand corrected, sorry  ;)

Sorry, currently working on a Mitsubishi project...

Share this post


Link to post
Share on other sites
On 29/04/2018 at 8:29 PM, Bryll said:

I stand corrected, sorry  ;)

Sorry, currently working on a Mitsubishi project...

I had the same problem recently swapping from Omron to S7 - still fresh in my mind.

:dance:

Share this post


Link to post
Share on other sites

You may consider to use Array in your case.

First, arrange your alarm into few categories. Assume now I have 4 categories and they have different number of alarm,
category 1: 30;
category 2: 45;  
category 3: 50;  
category 4: 25;  

Second, create 4 array of bits based on number of alarm bit in that category:
category 1: ARRAY [0..29] OF BOOL;
category 2: ARRAY [0..44] OF BOOL;  
category 3: ARRAY [0..49] OF BOOL;  
category 4: ARRAY [0..24] OF BOOL;  

Third, you can map the alarm bit into the dedicated alarm bit by using Ladder diagram or structure text or other language. Assume the array is under DB101.
DB101.DBX 0.0 := Emergncy_Stop_Alarm;  (*Structure Text example*)

I'm using DB address (DB101.DBX 0.0) here but if you assign a name in your program, you can use the name to call.

 

Lastly, wish my idea could help you.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now