David, Thanks, I think that clears things up. These IND blocks are not loops. They only run once. They are intended to do an orderly shutdown of key PIDA controllers in a unit if there is a power outage. They are initiated manually from a screen on a WP console. The idea was to build several of these in strategic locations to avoid any peer-to-peer connections (and to initiate shutdowns only in affected units), but there probably are a handful of peer-to-peer connections anyway. Maybe the ones that use the IF THEN ENDIF statements are peer-to-peers. I will double check that. Thanks, Tim -----Original Message----- From: foxboro-bounce@xxxxxxxxxxxxx [mailto:foxboro-bounce@xxxxxxxxxxxxx] On Behalf Of Johnson, David A. Sent: Tuesday, January 19, 2010 3:34 PM To: foxboro@xxxxxxxxxxxxx Subject: Re: [foxboro] HLBL question Tim, Setting .MA false and not using the If Then construct will work. Setting MA false if it is already false is ok. As for OM resources it depends on whether the COMP:BLOCK.MA is in the same CP as the sequence block. When an external read/write is initiated by the code, a check is first made to see if the C:B.P is in the local CP. If it is in the local CP then the call is not broadcast on the nodebus/mesh network and the code processes the request. If the C:B.P is not in the local CP then a broadcast is made on the network and all CPs, gateways, etc will have to search their local block databases to see if they have the requested C:B.P. This is sometimes called a "dumb" call since it does not use the peer-to-peer om list mechanism as with a secured connection between 2 CP parameters, i.e. you type in a connection to an input parameter and the source block is in another CP. So if you do a lot of external reads/writes to other CPs in sequence code you will introduce some additional OM tasks on those CPs. Another thing to note is that the sequence code will suspend one block period for each external read/write command (minimum 1 second) to resolve a call to another CP on the network. So if your sequence block period is 2 seconds and you are using the IF Then with the COMP:BLOCK.MA in another CP it will take 4 seconds to read the COMP:BLOCK.MA twice. If the sequence code does a lot of external reads/writes to other CPs and runs those steps constantly as in a loop that runs continuously you are better off making connections to the sequence block input parameters for reads and using block output parameters and peer-to-peer connections for writes. If you don't have input parameters available on the sequence block you can build a "dummy" block in the same CP as the sequence block to make the peer-to-peer connections then do reads from the sequence code to the dummy block input parameters to prevent the "dumb" calls from reaching the network. Hope this is not too confusing, I was getting a bit confused as I was proof reading this. ________________________________________ From: foxboro-bounce@xxxxxxxxxxxxx [foxboro-bounce@xxxxxxxxxxxxx] On Behalf Of Lowell, Timothy [Timothy.Lowell@xxxxxxxxxxx] Sent: Tuesday, January 19, 2010 6:09 PM To: 'foxboro@xxxxxxxxxxxxx' Subject: [foxboro] HLBL question Oh, HLBL gurus, We have some HLBL code at one of our sites that looks like this: IF :CMP:BLOCK.MA THEN :COMP:BLOCK.MA := FALSE; ENDIF; So, If the .MA parameter is true (block is in AUTO), then set the .MA parameter to false (set block to MANUAL). If the block is already in MANUAL, move on. Is this superior in any way, shape, or form to one simple command: :CMP:BLOCK.MA := FALSE; meaning, go ahead and send the command to set the .MA parameter to false, even if it is already false? We're thinking that in the first case, the IND block has to go and grab the status of the .MA parameter, and then if it is true, change it, but if not, leave it alone. We can't figure out why that would be better than just sending a .MA := FALSE command no matter what. Either way, the IND block is interacting with the Object Manager at least once, and in the first case possibly twice, while in the second case you know that it will only interact with the Object Manager once, even if it doesn't need to. Any thoughts? Does reading from the OM in an IND block take up significantly fewer resources that writing to it? Tim Lowell Tesoro Companies, Inc. 19100 RidgeWood Parkway San Antonio, TX 78259 210-626-4929 (w) 210-253-0225 (c ) timothy.lowell@xxxxxxxxxxx<mailto:timothy.lowell@xxxxxxxxxxx> _______________________________________________________________________ This mailing list is neither sponsored nor endorsed by Invensys Process Systems (formerly The Foxboro Company). Use the info you obtain here at your own risks. Read http://www.thecassandraproject.org/disclaimer.html foxboro mailing list: //www.freelists.org/list/foxboro to subscribe: mailto:foxboro-request@xxxxxxxxxxxxx?subject=join to unsubscribe: mailto:foxboro-request@xxxxxxxxxxxxx?subject=leave