Siemens 1200 + TIA V13 + Comfort Panel

boneless

Lifetime Supporting Member + Moderator
Join Date
Feb 2008
Location
OKC
Posts
1,628
Hi all,

Quick question.

I have an alarm block in my 1200 PLC with multiple alarm inputs declared as bits. Say db500.dbx0.0 to dbx3.7

I have a comfort panel, and can only declare alarm tags as words with a pointer to the correct bit.

I have added an HMI tag with absolute tag to db500.dbw0 and use this as my alarm tag.

I am simulating the PLC and HMI and do not receive any alarms on the screen. Is there anything I am doing wrong?

Thanks!
 
In addition..

When using 300 series PLC, I can use internal absolute addresses in an FB, by using DIX or DIW. Is there any way of doing this with the 1200 series? Other than utilizing the AT declaration...
 
I would add an IO-Field and show the trigger value in a picture, to see if the communication is ok.
With a real S7-1200 it works together with a simulation of a TP1200, using a trigger variable from "optimized" or "not optimized" datablock (V13 SP2 Upd2).
 
Thank you kindly Sir.

I did a boo boo and did not select the appropriate group to be shown in the alarm viewer.

My second question does still apply tho :).

Thanks again!
 
Absolute address via DIX or DIW is not possible.
But if you want to use this to set a bit in the trigger variable, you can use the so called slice operator.
To set bit 0 in a word variable, you can do it with:
wordAlarmTrigger.X0 := true;

bit 1 with
wordAlarmTrigger.X1 := true;

and so on. I haven't missed the absolute address options in the 1200.
 
In addition..

When using 300 series PLC, I can use internal absolute addresses in an FB, by using DIX or DIW. Is there any way of doing this with the 1200 series? Other than utilizing the AT declaration...

I think it is possible, but you have to declare both the FB and the instance DB to be "standard" instead of the default of "optimized". Optimized blocks can only be accessed symbolically, but the access is (as the name implies) faster and more memory efficient. Standard blocks work just like the 300 blocks did.

As Thomas said, if you want to access the individual bits of a word, then you can use what Siemens calls "slice" based addrressing. It lets you break up a bigger memory area into smaller words/bytes/bits, but still stick to symbolic only programming.

The only downside to the slice method is that you can't give specific comments or a name to each bit, to identify which alarm it is. If you want that level of documentation, then you either need a REALLY long comment on the overall alarm word, or you need to use the AT declaration you mentioned.
 
Thank you all so much!

I will check it out when I get the chance.
 

Similar Topics

See the attached pic ("workflow"). I want to create 2 workflows, depending on if the person who's just logged in is an OPERATOR or an ADMIN...
Replies
17
Views
2,472
Good, Code Totalizer: IF ( Hour = 23) and ( Minute = 59) and ( Second = 59) THEN totalizerDay_previous : = totalizerDay; totalizerDay= 0; End_IF...
Replies
8
Views
1,560
I am trying to upgrade an old Siemens S7-1200 PLC that has a program on in written in version 13 of TIA Portal. I am going to write a totally new...
Replies
2
Views
1,697
I need to convert some Siemens PLC logic using Siemens TIA V16 to Modicon M580 logic. Is there a tool out there that will get me started? How...
Replies
3
Views
2,687
I have been using TIA portal 13 for several projects HMI. The HMI is 1200 panel. On the previous project, I could connect to the PLC and use...
Replies
26
Views
18,718
Back
Top Bottom