9/13/2020 3:11 PM | |
Posts: 110 Rating: (0) |
Hi, I need to invert some of the bits in a data block, as there are 4 similar data blocks to be inverted ladder programming for inverting is not a good idea.Is there any way to directly invert the bits in a DB? Regards Sandy ------------------------------------------------------------------------------------------ |
Last edited by: The Helping Hand at: 09/14/2020 16:32:46New subject after splitting |
|
9/14/2020 10:56 PM | |
Joined: 9/27/2006 Last visit: 9/22/2024 Posts: 12282 Rating: (2685)
|
Hello Sandy; Look at the screenshot below, showing Invert instruction that exist both in LAD and in STL.for the S7-300, in Step 7 v5.x. For the moment, examine the examples on a single Int value (16 bits). Is this the result you want to obtain in your datablock registers? By the way, the same type of instruction is also available for Dints, see the manuals: SIMATIC Ladder Logic (LAD) for S7-300 and S7-400 Programming https://support.industry.siemens.com/cs/ww/en/view/109751823 SIMATIC Statement List (STL) for S7-300 and S7-400 Programming https://support.industry.siemens.com/cs/ww/en/view/109751814 If you know the specific address of the datablock addresses you can use LAD or STL to invert the values directly, by direct addressing. If you want to loop through the complete datablocks, address by address, and do the inversion when you reach certain points in the loop, you can only do this through STL, with indirect addressing and pointers. You can study this sample program for loops in a DB, it should give you a good start: Sample program: Programming a Loop with Indirect Addressing https://support.industry.siemens.com/cs/ww/en/view/19345564 Hope this helps, Daniel Chartier |
9/16/2020 11:36 AM | |
Posts: 110 Rating: (0) |
Hi, yes I am planning to use some memory bits and avoid duplicate coils.. Regards Sandy |
Follow us on