Siemens Step 7 Classic- Finding addresses in blocks

AutomationTechBrian

Lifetime Supporting Member
Join Date
Jul 2013
Location
St. Cloud, MN
Posts
669
Had to do my first live troubleshooting under pressure today with Siemens Step 7 Classic (v5.6). There was a contactor that wasn't pulling in and I traced it to Q60.5. The LED on the output card remained off, so I pulled out their laptop to look at the blocks. I had found and printed out (PDF) a cross-reference chart a couple weeks ago, but for some reason it stops at the end of the input addresses. And I couldn't remember how it was generated, so I couldn't re-generate the cross-reference to see if I overlooked a setting for output addresses. I looked all over the menu.... couldn't figure it out. I had no obvious way of finding which block contained the output coil bit for Q60.5. We figured out the contactor issue, but I need to be better versed for the next event.

Of course in the AB world, I'd just right-click and "find all", then look for the coil. What am I missing in Step 7? How do I find all of the instances of an output address in the project?
 
Select the address in the editor.
Then hit CTRL-ALT-Q
or rightclick and chose "go to location.."
If the address is not in view, hit any other address and do the same, but then chance the address field in the pop-up that appears.
You will see a list of all accesses to the address. Click on any entry in the list and the editor will jump to that place in the program.
If there is a chance that the address is accessed by overlapping access, then select "display overlapping access". For example for Q60.5, QB60, QW60, QW59, QD60, QD59, QD58 and QD57 all overlap with Q60.5.

edit: For completeness, there is also the possibility that the output is accessed by pointer or by blocks such as DPWR_DAT. In that case doing the CTRL-ALT-Q will not be enough. It is still possible to find but takes more work. Essentially search for pointer code ("P#", "AR1", "AR2") in the blocks that you suspect access the output, or search for BLK_MOV, DPWR_DAT, etc.
 
Last edited:
Also for completeness.

Inputs and outputs can also be addressed with immedeiate Peripherial access. The smallest size is byte.
So Q60.5 can also be accessed by PQB60, PQW60, PQD60 and PQD58.
Unlikely for a digital output, but not impossible.
 
That helps a lot!! Thanks.

I still have a ways to go with Siemens. DB addresses are still a unanswered question in my mind. Do we set up DB when we are communicating with some kind of remote I/O, like messages to a VFD? How would I look for the consuming device?

The example pics show a situation I had today. I got stuck trying to understand where DB140.DBX2.2 was going. I saw the Coil in the NW... found DB140... then what? How do I link that to anything beyond the DB? (see pics)

DB140-DBX2.png DB140.png
 
Re the VFD, most VFDs would communicate with a Profidrive telegram, usually a number of words. There are different telegram sizes depending on what functioanlity is needed. You need to study the documentation for the drive. Usually it is all encapsulated in a FB for the drive.



Select the coil with the address DB140.DBX2.2, then use the CTRL-ALT-Q again.
If you need to see all accesses to DB140, specify only DB140 in the search field without the .DBX2.2 and be sure to activate "display overlapping access".
 
Re the VFD, most VFDs would communicate with a Profidrive telegram, usually a number of words. There are different telegram sizes depending on what functioanlity is needed. You need to study the documentation for the drive. Usually it is all encapsulated in a FB for the drive.

Yes... I just watched a webinar on this and am waiting to do a lab with some demo devices from my Siemens distributor. I just noticed the use of DBs on the existing VFDs in this project and I'm trying to make sense of it all. It'll help that I'll have a guide when doing the lab.
 
DB addresses are still a unanswered question in my mind. Do we set up DB when we are communicating with some kind of remote I/O, like messages to a VFD? How would I look for the consuming device?

The example pics show a situation I had today. I got stuck trying to understand where DB140.DBX2.2 was going. I saw the Coil in the NW... found DB140... then what? How do I link that to anything beyond the DB? (see pics)


As Jesper said, any IO devices (VFDs included) would have I and Q addresses. DBs are the internal memory of the PLC to remember things from scan to scan. In your case, it looks like DB140 holds the commands and state of the turntable.


The program is using the data in DB140 to decide what to do, and then it probably sends commands to the outputs linked to the VFD. Many VFDs these days have Profinet control, where the PLC can send commands to the VFD directly, but some still require to be wired into IO cards for hard wired signals.
 
For completeness sake, if you're trying to find a variable that has been defined as internal to the block (FC or FB), Ctrl+Alt+Q won't work and instead you'll have to do Ctrl+Shift+F and Ctrl+Shift+B to see where that internal variable is used.
 

Similar Topics

I really struggle with STL in Siemens Step 7 Classic. I'll learn chunks, but then I don't use it enough to retain and build on the knowledge. When...
Replies
17
Views
3,207
I've been working for a customer with Siemens Step 7 (classic) PLC automation, using a Siemens Field Service Laptop, and V5.6 of Simatic Manager...
Replies
5
Views
3,007
I'm trying to figure out how to read the actual speed reference value from the move blocks, writing to a DB that is being sent to the VFD. For...
Replies
5
Views
2,630
Hello, I am trying to configure a Siemens OPC server using the following siemens documentation...
Replies
12
Views
8,236
Good Morning, Hoping someone with some Siemens experience can give me a hand with this one. Customer has a S7-200 cpu, which has a 6GK7...
Replies
0
Views
243
Back
Top Bottom