RobotStudio event

EE_CYCLE_START

I would like to set up an EE_CYCLE_START ee_event, with predefined string variable assign with the part data name - example: string name:= Part_1;
And set Production Manager to check this ee_event before every run.
My questions are:
1 - Where and how should I set up my ee_event?
2 - Do I need to set up my Production Manager to look for this ee_event?

Thanks.

Answers

  • Micky
    Micky ✭✭✭
    Hello Eugene,

    you can define the event declarartion and the routine in any module.

    Example;
    VAR ee_event myEventCycleStart:=[EE_CYCLE_START, "MyCycleStart","",1,255];

    PROC MyCycleStart()
    ENDPROC

    The Production Manager scans automatically for all available event declarations.
    So all you have to do is define the event.

    Best regards
    Micky
  • Hi Micky,
    Thanks for your response.
    That's what I'm trying to do with my C# application:
    I 'm scanning the mPartData and printing on the screen all modules assigned inside that mPartData - example:
    This is inside of mPartData:

    TASK PERS partdata pd_Test_01:=["Call_Test_01","Test_01","T_ROB1",1,0,"",""];
    TASK PERS partdata pd_Test_02:=["Call_Test_02","Test_02","T_ROB1",1,0,"",""];
    TASK PERS partdata pd_Test_03:=["Call_Test_03","Test_03","T_ROB1",1,0,"",""];

    On my pc application it showing up like a scroll down menu with the names of the modules:
    Test_01
    Test_02
    Test_03
    And operator making selection and that selection is stored inside the variable - and assigned to the variable inside the mPartData module:
    PERS string moduleName:="";
    Example:
    The user will select Test_01 - it will be:
    PERS string moduleName:="Test_01";
    Now I wont to make an ee_event myEventCycleStart to check that variable - name of the module and start that proc.
    Example:
    It will be 3 procs inside that mPartData:

    PROC Call_Test_01(\switch Dummy)
            LoadModule "mTest_01"\CallRoutine:="user_selection"\AutoSave;
    ENDPROC 

    PROC Call_Test_02(\switch Dummy)
            LoadModule "mTest_02"\CallRoutine:="user_selection"\AutoSave;
    ENDPROC

    PROC Call_Test_03(\switch Dummy)
            LoadModule "mTest_03"\CallRoutine:="user_selection"\AutoSave;
    ENDPROC

    And if inside my variable is stored  name - Test_01 it will start first proc:
    PROC Call_Test_01(\switch Dummy)
            LoadModule "mTest_01"\CallRoutine:="user_selection"\AutoSave;
    ENDPROC.

    I'm not sure if it's possible to do this with ee_event.?
  • Micky
    Micky ✭✭✭
    Hello,

    I think you have to use the solution described in chapter 4.2 of the manual.

    You create a routine which is connected with the event "EE_START".
    In this routine you define an interrupt for your persistent "moduleName"
    Example:
        Connect intno1 with T_ProgSelect;
        IPERS moduleName,intno1;

    You define a trap routine which is
    TRAP T_ProgSelect
        IF moduleName=stEmpty Return;
      !Create and load your partdata

      !activate the next partdata for execution
      PMgrSetNextPart 1, pd_Test_01;
    ENDTRAP

    Each time if your persistent changes, the trap routine is called and you can load the required module and activate the next part.

    /BR
    Micky




  • Thanks Micky.
    You mention manual with chapter 4.2. What kind of manual is that? I checked several different manuals and I did not find that.

  • Hi Micky,
    I got a message - You are not authorized to access this document.
  • Micky,
    In your example:
    Example:
        Connect intno1 with T_ProgSelect;
        IPERS moduleName,intno1;

    You define a trap routine which is 
    TRAP T_ProgSelect
        IF moduleName=stEmpty Return;
      !Create and load your partdata

      !activate the next partdata for execution
      PMgrSetNextPart 1, pd_Test_01;
    ENDTRAP
    What is - intno1  in Connect line?
  • You wrote:
    You create a routine which is connected with the event "EE_START".
    How you connect that routine with EE_START?