fischertechnik / plc_training_factory_24v

Training Factory Industry 4.0 (24V)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Compressor of VGR wont start via SCL

SamedAga opened this issue · comments

Hi there,

I am currently trying to understand the SCL Code for the FT plc factory. One thing I want to do, is to move the VGR to a random position (which works fine) and pick up a part (which doesnt seem to work).
The moving part works fine. I'm using the Node RED environment as the backend (move to Position). I've added a new position in HMI VGR - Positions for that.
The next step would be to start the compressor and the vacuum to pick the part. For that I've added some code inside PRG_VGR_Set_Positioning (which is used to move the VGR via Node RED). For some odd reason, the compressor doesn't seem to start. The variable QX_VGR_Compressor_Q7 stays at FALSE the entire time.
However the VGR will pick up a part from the DSI, when I place a part there.
My guess is, that somewhere in the SCL code, QX_VGR_Compressor_Q7 is forced to FALSE, whenever I activate move to Position in the Node RED environment. But I couldn't find where.

Here my code (in PRG_VGR_Set_Positioning ) to test the compressor:

[...]        
        110: // Position vertical Axis + Offset
                ...
                #li_StepCase := 111; // ADDED THIS HERE
            END_IF;
            
// this part should activate the compressor wait 4 seconds and then turn it off.
        111: // activate Compressor
             // start compressor
            "QX_VGR_Compressor_Q7" := TRUE;
            #li_StepCase := 112;
            
        112: // wait sequence
            #lx_Start_TON_Wait := TRUE;
            #lt_TON_Wait := T#4000ms;
            
            IF #lfb_TON_Wait.Q THEN
                #lx_Start_TON_Wait := FALSE;
                #li_StepCase := 113;
            END_IF;
            
        113:
            // turn off the compressor
            "QX_VGR_Compressor_Q7" := FALSE;
            #li_StepCase := 114;
            
        114: // wait sequence
            #lx_Start_TON_Wait := TRUE;
            #lt_TON_Wait := T#3500ms;
            
            IF #lfb_TON_Wait.Q THEN
                #lx_Start_TON_Wait := FALSE;
                #li_StepCase := 120;
            END_IF;
            
        120: // Deciding which doing
        ...
[...]

Thanks,

Samed

Found the problem. In the initialization process of PRG_VGR_Ablauf the Compressor is forced to FALSE leading to explained behavior in previous post. To solve that, either uncomment (not recommended) or create a IF state checking if x_Set_Pos_Activ is TRUE.