s7_400_h_en_en_us
TRANSCRIPT
EXT.-BATT5...15 V DC
X1MPI/DP
IF1
IF2
SV
PS
3176
96
X 23 4
EXT.-BATT5...15 V DC
X1MPI/DP
IF1
IF2
X2DP
SV
PS
3176
96
X 23 4
STL Description
NOP 0;
SET;
R ATTEMPT2; //Initialization
A MODA; //Read module A first?
JCN CMOB; //If not, continue with module B
CMOA: SET;
R IOAE_BIT; //Delete IOAE bit
L PID 8; //Read from CPU 0
A IOAE_BIT; //Was IOAE detected in OB 122?
JCN IOOK; //If not, process access OK
A ATTEMPT2; //Was this access the second attempt?
JC CMO0; //If yes, use substitute value
SET;
R MODA; //Do not read module A first any more //in future
S ATTEMPT2;
CMOB: SET;
R IOAE_BIT; //Delete IOAE bit
L PID 12; //Read from CPU 1
A IOAE_BIT; //Was IOAE detected in OB 122?
JCN IOOK; //If not, process access OK
A ATTEMPT2; //Was this access the second attempt?
JC CMO0; //If yes, use substitute value
SET;
S MODA; //Read module A first again in future
S ATTEMPT2;
JU CMOA;
CMO0: L SUBS; //Substitute value
IOOK: //The value to be used is in ACCU1
STL Description
// Does module A cause IOAE?
L OB122_MEM_ADDR; //Relevant logical base address
L W#16#8;
== I; //Module A?
JCN M01; //If not, continue with M01
//IOAE during access to module A
SET;
= IOAE_BIT; //Set IOAE bit
JU CONT;
// Does module B cause an IOAE?
M01: NOP 0;
L OB122_MEM_ADDR; //Relevant logical start address
L W#16#C;
== I; //Module B?
JCN CONT; //If not, continue with CONT
//IOAE during access to module B
SET;
= IOAE_BIT; //Set IOAE bit
CONT: NOP 0;