stevelawson
Member
- Join Date
- Feb 2004
- Posts
- 115
I am having problems understanding a program i am trying to troubleshoot.
The reason why i am having difficulty is because its written in function blocks and i have little understanding of their structure and symbols.
I managed to work out that the machine had stopped because flag F154.2 was constantly set, thus preventing the program from running through its cycle. All the relevant input conditions seemed to be in order but the program wasn't going any further.
This machine has stopped in this position before, indeed more than once. However, on other occasions i have forced FY55 on from KH08 to KH09 using control variable and the machine starts. But on this occasion the machine starts up but only does one cycle and stops in exactly the same place.
To overcome this situation i forced a reset of F 154.2 using the control variable option and the machine started to run. the problem hasn't yet returned but i'm sure it will.
I don't think the action i took was the correct one but it got me out of a situation. You know what production is like
So, can anybody explain how this type of program structure works. I have worked with jump instructions in Organisation Blocks but am not familiar with the =M00X instructions used in the function blocks. My best guess is that its just the title of a sub-routine.
Another thing, why is the RLO only showing the condition of the first 4 statements?
Here are the relevant segments of the function block
FB55 SEG9 RLO
:L KF +20 1
:L FY 59 1
:>< F 1
:JC =MOO1 1
:S F 154.1
:S F 154.6
:R F 154.2
:AN I 48.2
:JC =M002
:JU =M001
M002:
:L KF +21
:T FY 59
M001:
:***
FB55 SEG11 RLO
:L KF +22 1
:L FY 59 1
:>< F 1
:JC =M001 1
:S F 154.2
:S F 154.6
:R F 154.1
:A I 48.2
:JC =M002
:JU =M001
M002:
:L KF +23
:T FY 59
M001:
:***
FB55 SEG16 RLO
:L KF +9 1
:L FY 55 1
:>< F 1
:JC =M001 1
:S F 154.1
:S F 154.6
:R F 154.2
:AN I 48.2
:JC =M002
:JU =M001
M002:
:L KF +10
:T FY 55
M001:
:***
FB55 SEG17 RLO
:L KF +10 1
:L FY 55 1
:>< F 1
:JC =M001 1
:S F 154.1
:S F 154.6
:R F 154.2
:A I 48.2
:A I 48.4
:A F 160.2
:A F 150.4
:JC =M002
:AN I 48.4
:O T 60
:JC =M003
:JU =M001
M002:
:L KF +13
:T FY 55
:JU =M001
M003:
:L KF +12
:T FY55
M001:
:***
The RLO results should be shown further over to the right but for some reason when posting the data moves right next to the statement list. So the 1 that you see under RLO is the result of the logic operation. Hope thats clear and hope someone can help.
Many thanks Steve.
The reason why i am having difficulty is because its written in function blocks and i have little understanding of their structure and symbols.
I managed to work out that the machine had stopped because flag F154.2 was constantly set, thus preventing the program from running through its cycle. All the relevant input conditions seemed to be in order but the program wasn't going any further.
This machine has stopped in this position before, indeed more than once. However, on other occasions i have forced FY55 on from KH08 to KH09 using control variable and the machine starts. But on this occasion the machine starts up but only does one cycle and stops in exactly the same place.
To overcome this situation i forced a reset of F 154.2 using the control variable option and the machine started to run. the problem hasn't yet returned but i'm sure it will.
I don't think the action i took was the correct one but it got me out of a situation. You know what production is like
So, can anybody explain how this type of program structure works. I have worked with jump instructions in Organisation Blocks but am not familiar with the =M00X instructions used in the function blocks. My best guess is that its just the title of a sub-routine.
Another thing, why is the RLO only showing the condition of the first 4 statements?
Here are the relevant segments of the function block
FB55 SEG9 RLO
:L KF +20 1
:L FY 59 1
:>< F 1
:JC =MOO1 1
:S F 154.1
:S F 154.6
:R F 154.2
:AN I 48.2
:JC =M002
:JU =M001
M002:
:L KF +21
:T FY 59
M001:
:***
FB55 SEG11 RLO
:L KF +22 1
:L FY 59 1
:>< F 1
:JC =M001 1
:S F 154.2
:S F 154.6
:R F 154.1
:A I 48.2
:JC =M002
:JU =M001
M002:
:L KF +23
:T FY 59
M001:
:***
FB55 SEG16 RLO
:L KF +9 1
:L FY 55 1
:>< F 1
:JC =M001 1
:S F 154.1
:S F 154.6
:R F 154.2
:AN I 48.2
:JC =M002
:JU =M001
M002:
:L KF +10
:T FY 55
M001:
:***
FB55 SEG17 RLO
:L KF +10 1
:L FY 55 1
:>< F 1
:JC =M001 1
:S F 154.1
:S F 154.6
:R F 154.2
:A I 48.2
:A I 48.4
:A F 160.2
:A F 150.4
:JC =M002
:AN I 48.4
:O T 60
:JC =M003
:JU =M001
M002:
:L KF +13
:T FY 55
:JU =M001
M003:
:L KF +12
:T FY55
M001:
:***
The RLO results should be shown further over to the right but for some reason when posting the data moves right next to the statement list. So the 1 that you see under RLO is the result of the logic operation. Hope thats clear and hope someone can help.
Many thanks Steve.
Last edited: