6/5/2011 2:07 PM | |
Joined: 10/7/2005 Last visit: 9/20/2024 Posts: 3021 Rating: (1054)
|
Dear all it seems there's some confusion going on her so allow me to interruptand lets see if we can clarify a few things: This is normal behaviour by the S7 Editor and there's nothing wrong with this. The 10 Bytes of the ANY pointer will still be populatedwith the correct information. Sorry, but thisadvise is incorrect. This is true for some standard Siemens Blocks (see their online help if it applies or not), but not generally true. The ANY Parameter type can be quite a beast to handle, but - as the name suggests - accepts prettty much "ANY" datatype(e.g. BOOL, BYTE, INT, REAL etc., see Step7'shelp on it for more) and it is up to the programmer to decide which ones he wants toevalute. This would happen if the actual size value (DBW12 in DB8 and/or 9) has a value of 0 which then leadsto plenty of loops (the actual size value is the initial value for the loop counter) and exceeding of the DB range with the indirect access as AR1 is increased by 2 Bytes with every loop. The golden rule when using indirect addressing is: Make sure you have a range check of your index or pointer value in place. Correct, +D MUST be used. Even though variable #sum is ofDWORD type, usage of "+ I" will only give a maximum value of 65353 in it which may not be enough (only Accu1 L is added, see Step7 help for more). Last but not least, DB8 and 9 have the same structure as far as the location of the buffer related values is concerned. My idea of a somewhat simplified and more "robust" version of FC10 is: [code] VAR_INPUT Buffer : BLOCK_DB ; END_VAR VAR_TEMP _Sum : DINT ; _Loop_counter : INT ; END_VAR BEGIN NETWORK TITLE = OPN #Buffer; // Open Buffer DB L #_Sum; ERR: L 0; |
Last edited by: fritz at: 6/5/2011 2:37 PMFixed oopsie in range check logic Last edited by: fritz at: 6/5/2011 2:20 PMTried to fix the layout and usage of </div></div> </div></div> to correct hings, but preview does still look "funny" so I give up. Cheers |
|
This contribution was helpful to3 thankful Users |
Follow us on