KalleOlsen
Member
I don't use PG2000 much, but I think you can switch between how you want to show the line numbers. You have probably selected bytes, and therefore you get double values of your line numbers. So 1E x 2 = 3C, that means it is the AN = TAKT -line that makes the ADF. The =TAKT is a formal operand, and it has an argument you cannot see inside the FB139, but have to look in the calling block to find.
Here I have done a cross reference of the FB139, and it is called twice in PB3. You see that I 31.0 is passed to the TAKT-input in the first call and I 31.1 in the second call. Only the first call was tried executed and then the cpu stopped.
There is possibly something wrong with your input card contenting the IB31. Put big effort in checking out the connections, specially the 24V supply.
It looks to me as PB3 is the first block called from OB1 that reads an input. That means that no other inputs are read before this ADF happened and you cannot say if it is only this card, or there is something wrong with more or all cards.
Again the power supply is my main suspect.
What you could do is to write a code in top of the OB1 like this:
Find a spare flagbyte, MBx ( or FYx, dependant of language?)
L KB1
T FYx
A I x.0 this is the first input of the first DI card
L KB2
T FYx
A I y.0 this is the first input of your next DI card
L KB3
T FYx
A Q z.0 this is the first output of the first DQ card
= Q z.0
... and so on. I hope you can see the pattern.
When the CPU stops, you can read the first card that failed in MBx (FYx?).
After that, change the order of the lines, and see if it is the same card that is failing next time.
Good luck!
Kalle
Here I have done a cross reference of the FB139, and it is called twice in PB3. You see that I 31.0 is passed to the TAKT-input in the first call and I 31.1 in the second call. Only the first call was tried executed and then the cpu stopped.
There is possibly something wrong with your input card contenting the IB31. Put big effort in checking out the connections, specially the 24V supply.
It looks to me as PB3 is the first block called from OB1 that reads an input. That means that no other inputs are read before this ADF happened and you cannot say if it is only this card, or there is something wrong with more or all cards.
Again the power supply is my main suspect.
What you could do is to write a code in top of the OB1 like this:
Find a spare flagbyte, MBx ( or FYx, dependant of language?)
L KB1
T FYx
A I x.0 this is the first input of the first DI card
L KB2
T FYx
A I y.0 this is the first input of your next DI card
L KB3
T FYx
A Q z.0 this is the first output of the first DQ card
= Q z.0
... and so on. I hope you can see the pattern.
When the CPU stops, you can read the first card that failed in MBx (FYx?).
After that, change the order of the lines, and see if it is the same card that is failing next time.
Good luck!
Kalle