12/13/2009 11:49 AM | |
Joined: 10/7/2005 Last visit: 9/26/2024 Posts: 3023 Rating: (1054)
|
Hello Pioneer to start with, a DB is DB and you can access an IDB outside of the FB to which it belongs. Having said that, I would avoid doing so if I can and the reasonsare: 1.) You "messup" your Cross reference. Reason being is that any access to the IDB from within the FB happens (ideally) symbolically. Since the DB is the memory of the FB and meant to be only accessed from within it, the X-Ref (or Go To Location) will NOT display these accesses. If you now however access IDB values outside of the FB, they will be shownin the X-Ref. This can then easily lead to confusion,forexample: FB1 uses DB1 as the IDB and has STAT variable in address DB1.DBW10. This STAT is used for counting purposes inside FB1 and addressed symbolically. You now do a read access to DB1.DBW10 from lets say FC7 to compare its value with another one. A year later someone neeeds to troubleshoot the logic inside FC7, wonders where the value in DB1.DBW10comes from, does a GO TO Location on it and starst to swear becausethe only access seems to be in FC7.... 2.)An IDB "belongs" to an FB and is "automaticallly" createdfor you by the compiler. This also means that people usually don't think twice when theyhave to add variables to the FB (be it IN's, OUT's, IN_OUT's or STAT's) since recreating the IDB is a simple affair. If you however access IDB values outside of the FB, you now added some extra "fun" (and swearing) in finding them and changing their addresses Bottom line: You can do it but be aware of the above mentioned pitfalls. I hope this helps |
Cheers |
|
12/13/2009 10:52 PM | |
Joined: 10/7/2005 Last visit: 9/26/2024 Posts: 3023 Rating: (1054)
|
Hello again Pioneer same answer as before: A DB is DB and you can access (Read and/or Write) an IDB outside of the FB to which it belongs. |
Cheers |
|
This contribution was helpful to1 thankful Users |
Follow us on