How to find the references to a DB?

samadrazm

Member
Join Date
Nov 2011
Location
Here
Posts
31
Hi,

I am using S7 Siemens. If I open a DB, how can I see where each address in the DB has been written to or read from?
What is P#DBxx? What is the P# for?

Thanks,
Sam
 
Last edited:
Can you post a screen shot shot the use of the P#DBxx

P# is used for pointers.

The xref will show all accesses.
 
Simatic Manager > Blocks folder > right click on it > Reference data > Display.
In new window it creates > If pop-up, select which ever and then OK > View > Cross Reference

Now it'll show the reference data with the preselected filter.
View > Filter (or filter button) > Deselect all selections except DB's and in the field right next to it, write the DB number > OK.

Now you'll have the cross reference of where ever that DB is used.

NOTE: Indirect adressing doesn't show up in the Xref.
 
What is the variable type of i_new on the function/function block that is being called? - looks like it is of type string in which case the string address is passed as a pointer. You will have to examine the code in the FC/FB to see what it does with the string address if this is the case.
 
Yes it is string LD[AR2,P#0.0] , using the method Jeebs explained does not show me where it is written to. It shows however where I am reading it. which is the same network I know. So I suppose it is indirect addressing. Is there any way I can find the indirect addresses.

thanks,
Sam
 
Could be written to directly by the CP. Although due to the high adress range I doubt it.
Could be written to by FC 20 (BlockMove). Look for overlapping adressing.
Could be that DB201 is an Instance DB, linked to a FB and this reference is outside the FB.
 
Not sure whether this will be rite ? as I interpret your question you are asking for the destination of DB201.DBX266.0, by the looks of the screen shot you have posted this is going into a FC block... put your mouse over the block and right click, then open the called block... once opened you should see the relevant input... i.e DB201.DBX266.0 or i_New...and depending upon the code the relevant output or destination...

Regards

JV
 
It would be used to via i_New in the block that is being called.

As it is going in as a pointer it would be accessed indirectly.

It could be written to in the block or it could be written to externally, via a HMI for example.

It could also be written to as part of a block transfer, comms from another system perhaps??
 
Yes, You are right, It is a FB and I realised there is a written something as instant DB on top of the FB. I opened the DB separately and I saw all the variables are there.

Thanks for the help.
Sam
 

Similar Topics

Hi All, Wondering if anyone has a source for information about products with problematic production runs from allen bradley/rockwell. Ive seen...
Replies
2
Views
164
Hi , Where i can find Mitsubishi PLC Card end of line & replacement model details. i am looking for Q02CPU replacement model. Please advice. thanks
Replies
2
Views
189
I have tested every screen and no single screen individually has this fault pop up, but when I compile and send to the PanelView it comes up. If I...
Replies
4
Views
206
Hi, One of my customers has an old fabric tensile testing machine. The IC # AD7501KN of its controller has malfunctioned. This IC is related to...
Replies
1
Views
99
Hello everyone, I am a student and would like to take the next step and learn FactoryTalk (Batch preferably) and how to create HMIs etc. Would...
Replies
4
Views
519
Back
Top Bottom