A "INeedFixing"
= "INeedFixing"
JU Past
Thanks, Simon. That's exactly how I decided to implement it - just finished going through and marking all the places where there is still work to do.
Ken,
a) STEP7 usually only updates the data for the screen once per cycle at the end of OB1. It is quite possible that if a bit is written to more than once in the program you can have ambiguous information. You may be observing a network where all the logic conditions are satisfied and the output is 'true' but not showing as such. This is because later in the cycle the same bit is set 'false' therefore the status at the end of OB1 is 'false' and that is what STEP7 displays.
It's a while since I had this problem and since I was a lot less experienced at that time, this may well have been the source of the problem.
b) Complex networks do take time to update in STEP7. ... You can adjust the amount of time permitted for comms. I can't remember the STEP7 menu (I'm not at a PC with STEP7 at present) but it's something to do with switching between 'Process' operation and 'Test' operation. 'Test' allows you to set a higher comms time per cycle.
In my more complex networks the View display usually stops updating after 10% - 20% of the network. I'd never really thought about why, just accepted it as a fact of life. I know about the "Test" Menu, so I'll have a look at increasing the permitted comms time when I'm back on site next week.
c) I don't know where your code resides, but if it's in a re-used FB how do you know which instance is being used to update the data? You need to specify the full monitoring path to include the data from the correct Instance Data Block, otherwise the display can not be trusted. I know from experience!
Having been bitten by this one a few times, I'm now careful. Because of the layout of my system with its 21 functionally identical modules I have quite a few cases where I have an FB/FC pair - a calling FB (usually) where the called FB/FC is called for each module and the called FB/FC with the actual program. During testing I've only ever had one module available up to now so in the calling FBs I jump over all the other non-existant module calls. This allows me to examine the called FB/FC in peace, knowing that it is actually only being called one time.
Actually in most cases I don't even need to modify the calling FB, because the called FB/FC is only executed if the Module is selected. Since I've got an interlock which prevents modules which are not physically present from being selected in the first place, up to now there has been no problem. I'll have to be a bit more careful from now on though!
Thanks for the input guys.
Cheers
Roy