RMA
Member
Trying to identify the cause of cycle time overruns causing the CPU to go into STOP (see SFC12 Thread here I eventually tracked the problem down to this apparently harmless looking bit of code.
If there has been a fault, it should cause a jump to the appropriate screen according to whether the fault was from a 2.88 MJ or 1.44 MJ module using Job 51. On the occasion when I checked the Stack Local Byte zero had a value of 2, implying (if I'm interpreting things correctly), a fault with a 1.44 MJ module. If everything was working correctly, there should not have been any faults, however, if something somewhere was not working as planned, then there is a good reason why a 1.44 MJ module fault could occur - but that's another question and possibly another Thread.
The question this time is simply, in the case where there is a fault, what in this code could cause the cycle time to hit 2000 ms (normal cycle time without a fault is 4 ms). I can't see anything obvious, which could cause an endless loop, or is there something about Job 51 which I don't know, or don't understand?
PS, don't worry about the BEA at the start, that was just put in to check out whether this code was the source of the problem or not, with the BEA in - no crash. This is also the last Thread in the program, or to be more accurate, the next one just holds a BEA.
If there has been a fault, it should cause a jump to the appropriate screen according to whether the fault was from a 2.88 MJ or 1.44 MJ module using Job 51. On the occasion when I checked the Stack Local Byte zero had a value of 2, implying (if I'm interpreting things correctly), a fault with a 1.44 MJ module. If everything was working correctly, there should not have been any faults, however, if something somewhere was not working as planned, then there is a good reason why a 1.44 MJ module fault could occur - but that's another question and possibly another Thread.
The question this time is simply, in the case where there is a fault, what in this code could cause the cycle time to hit 2000 ms (normal cycle time without a fault is 4 ms). I can't see anything obvious, which could cause an endless loop, or is there something about Job 51 which I don't know, or don't understand?
PS, don't worry about the BEA at the start, that was just put in to check out whether this code was the source of the problem or not, with the BEA in - no crash. This is also the last Thread in the program, or to be more accurate, the next one just holds a BEA.
Last edited: