Dirk, One thing I noticed in your code is some external references using :CMPD:BLK.PARAM. I remember that making evaluations like that interrupt the sequence processing, almost the same as a WAIT .01. Every time this happens the sequence has to pause a cycle to wait for the response to its request. If you have several of them then there are several de facto WAIT STATEMENTS that have to be processed. By connecting those values to RI000? Or BI000? And then referencing them in the code you can avoid this delay. Cheers, Tom Vandewater Control Conversions, Inc. Sent from my Verizon Wireless BlackBerry -----Original Message----- From: dirk.pauwels@xxxxxxxxxx Date: Mon, 1 Mar 2010 12:12:37 To: <foxboro@xxxxxxxxxxxxx> Subject: [foxboro] IND question Hi list, If I want to speed up a sequence processing time what are the consequences if I tamper with PERIOD/BPCSTM? I have problems with repeat until statements containing several if endif's. They're too slow..... If one of the conditions to end the repeat (especially stop and hold_sw in the example) becomes true it takes some time before the repeat stmt ends. It seems the repeat statement has to go through it's code before it checks the repeat conditions included in the until line. How do I speed up this process and what are the disadvantages? For now I included the "stop" and "hold_sw" conditions in the if endif's in the repeat statement (at mutiple instances) to detect it faster. It works more or less, but this also makes the statement longer. There has to be a more orthodox way to do this.... I also have a similar problem with WAIT UNTIL statements, even if the conditions are true, the WAIT UNTIL takes a couple of sec's to process. If there are a lot of them the sequence is very slow going through it's code. I would expect the wait until to pass very quickly if the condition is true. Ie: you'll notice I included the stop and hold_sw multiple times, to obtain a faster response. REPEAT pumped := beginweight_kettle - :'weight'.PNT;RO0002 := pumped; pumprate := ABS(:WEIGHT:K'kettle'PUMP_AIN.PNT);RO0012 := pumprate; IF ::TIMER7.POS_V1 THEN II0008 := 1; GOTO finished; ENDIF; IF hold_sw THEN GOTO hold; ENDIF; IF stop THEN II0008 := 2; GOTO finished; ENDIF; IF :'pressP3'.HAI THEN II0008 := 3; GOTO hold; ENDIF; IF :'level'.BAD THEN II0008 := 4; GOTO finished; ENDIF; IF hold_sw THEN GOTO hold; ENDIF; IF :'level'.HAI THEN II0008 := 15; GOTO finished; ENDIF; IF stop THEN II0008 := 2; GOTO finished; ENDIF; IF :'filterPT'.HAI THEN II0008 := 16; GOTO hold; ENDIF; IF :'temp' > hitemp THEN II0008 := 5; GOTO hold; ENDIF; IF hold_sw THEN GOTO hold; ENDIF; IF ... ENDIF; IF stop THEN II0008 := 2; GOTO finished; ENDIF; IF ... ENDIF; IF hold_sw THEN GOTO hold; ENDIF; IF ... ENDIF; IF hold_sw THEN GOTO hold; ENDIF; IF stop THEN II0008 := 2; GOTO finished; ENDIF; ... UNTIL ((:'weight'.PNT) < (endweight_kettle + stopweight)) OR stop OR hold_sw; IF hold_sw THEN GOTO hold; ELSE GOTO finished; ENDIF; Thanx Ps: my appologies if I do not answer to some of the list's mails, I do not seem to receive every posting to the list for some odd reason..... Dirk _______________________________________________________________________ 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 _______________________________________________________________________ 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