John Miller
Member
So here I am trying to commission my first Siemens Step 7 project. I foolishly decide that things would be "nicer" (easy for the plant to follow and maintain) if I separated out the heating and cooling stages for this piece of equipment.
When adding the call to the heating stage into the old routine, now the parent routine, ooops, I notice that I forgot to delete an output parameter when I changed it to an IN_OUT parameter. Make the change in the child routine. Of course, it affects the instance DB that is used to call the child from the parent. I don't think there is any way from within the LAD/FDB/STL to tell it to recompile the instance DB. (I complained about this in a recent thread, but then I had to walk away in the middle of the conversation.)
I only had two LAD windows open, so it seemed as good a time as any to do the pain-in-the-neck "Close all windows and Check Block Consistency." I Cut the offending FB subroutine call and closed the parent. I don't recall if it was when I closed the parent or later when I compiled the parent (after compiling the referenced children), but S7 complained that an interface is out of date and that no symbolic information is available.
Opening the parent, all my STAT declarations have vanished completely: not even a bunch of variables named STATnnn. The parameters and TEMP variables seem to be there, but S7 does not recognize any of the type information: that a variable/parameter is a Boolean or a UDT. I think retyping the type field worked for a UDT, but it didn't seem to work for a DWord.
Which brings me to my question. Because I am getting old and senile (and have been disorganized all my life), I didn't remember all the changes made since the last backup. It seemed the best way to fix it was to copy the variable declarations from the backup and then do global "replaces" to change the STATnnn and TEMPnnn to the right names. I was a bit worried because I do not know of a way to save intermediate work, and sure enough, part way through the process, the editor crashes. How did that Kraft cheese commercial go? "We'll start again, sir."
Am I blind? Illiterate? Or is there some clever trick I haven't discovered yet?
Related to this, does S7 Pro 5.4 SP3 have any improvements over SP2 for handling propagation of definition changes? I downloaded SP3 before I left but didn't want to risk breaking anything by installing it.
When adding the call to the heating stage into the old routine, now the parent routine, ooops, I notice that I forgot to delete an output parameter when I changed it to an IN_OUT parameter. Make the change in the child routine. Of course, it affects the instance DB that is used to call the child from the parent. I don't think there is any way from within the LAD/FDB/STL to tell it to recompile the instance DB. (I complained about this in a recent thread, but then I had to walk away in the middle of the conversation.)
I only had two LAD windows open, so it seemed as good a time as any to do the pain-in-the-neck "Close all windows and Check Block Consistency." I Cut the offending FB subroutine call and closed the parent. I don't recall if it was when I closed the parent or later when I compiled the parent (after compiling the referenced children), but S7 complained that an interface is out of date and that no symbolic information is available.
Opening the parent, all my STAT declarations have vanished completely: not even a bunch of variables named STATnnn. The parameters and TEMP variables seem to be there, but S7 does not recognize any of the type information: that a variable/parameter is a Boolean or a UDT. I think retyping the type field worked for a UDT, but it didn't seem to work for a DWord.
Which brings me to my question. Because I am getting old and senile (and have been disorganized all my life), I didn't remember all the changes made since the last backup. It seemed the best way to fix it was to copy the variable declarations from the backup and then do global "replaces" to change the STATnnn and TEMPnnn to the right names. I was a bit worried because I do not know of a way to save intermediate work, and sure enough, part way through the process, the editor crashes. How did that Kraft cheese commercial go? "We'll start again, sir."
Am I blind? Illiterate? Or is there some clever trick I haven't discovered yet?
Related to this, does S7 Pro 5.4 SP3 have any improvements over SP2 for handling propagation of definition changes? I downloaded SP3 before I left but didn't want to risk breaking anything by installing it.