Hi Dirk, we have a rule of thumb here that says we put in a WAIT statement (WAIT 0.1 for example) after every three reads/writes to a C:B.P, the reason we do this has its origins way back in AP10 time, but we noticed that, sometimes, if we set more than 3 C:B.P's at a time then some of the writes beyond three would be missed. Also, we tend to create labels where possible, i.e. your PRESS_CP4:PT_HOPPER.PNT would be connected to, say, RI0001 of the sequence block and labeled in the code something like: HOPPR1_PRESS : RI0001; {Hopper number 1 pressure}. The reason I say this is because you may, at times, be hitting a situation where your REPEAT is spinning around too fast and missing reads occasionally. We also use the retry facility in our exception handlers with no problems, usually like this: {** SYS ERROR SUBROUTINE **} BLOCK_EXCEPTION TO_SYS_ERROR STATEMENTS IF OP_ERR < 3000 THEN IF RTYCNT <= 2 THEN RTYCNT := RTYCNT + 1; RETRY; ENDIF; ENDIF; SENDMSG ("SYS ERROR = ",OP_ERR," B_STMNO = ",BLOCK_STMNO) TO MSGGR1; ALSTNG := "SYS ERROR"; CALL SHUTDOWN (); CALL ALARM (); CALL HOLD (); ENDEXCEPTION Regards, Gabriel. _______________________________________________________________________ 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