Posted 28 Apr 2018 (edited) 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. What is the best way to list hundreds of alarms in a single tag? 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 28 Apr 2018 by nbourg8 Share this post Link to post Share on other sites
Posted 29 Apr 2018 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
Posted 29 Apr 2018 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
Posted 29 Apr 2018 (edited) 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? Edited 29 Apr 2018 by nbourg8 Share this post Link to post Share on other sites
Posted 29 Apr 2018 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
Posted 1 May 2018 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. Share this post Link to post Share on other sites
Posted 3 May 2018 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