UIMessageBox - DO setzen während eine Taste gedrückt

  • Morgen,


    ich habe eine Sache und noch keine Lösung


    Ich möchte mit einer Taste einen DO zur SPS nur solange auf 1 haben, wie man die Taste betätigt (Grund ist, eine Achse am Greifer über die SPS zu verfahren)

    Geht das damit?


    So ist es jetzt:

    answer:=UIMessageBox(

    \Header:="gripper funktions axis movement"

    \MsgArray:=Greiferf_AX

    \BtnArray:=buttons_Greifer_AX

    \Icon:=iconInfo);

    IF answer=1 THEN

    ! axis back

    WaitUntil DriveEnable=1;


    set do_axis_minus;

    ! WaitUntil answer=0;


    GOTO Greifer_AX;


    ELSEIF answer=2 THEN

    ! axis before


    WaitUntil DriveEnable=1;


    set do_axix_plus;


    GOTO Greifer_AX;





    , setzt aber nur die Ausgänge.



    Danke

  • Morgen,

    das geht mit der UIMessageBox so leider nicht.


    Du könntest es evtl. so lösen:

    1. Gib deiner UIMessageBox den switch "\UIActiveSignal" und weise einen simulierten Ausgang zu. Dann weißt du wenn die MsgBox aktiv ist.

    2. Weise 2 Funktionstasten einen Simulierten Ausgang zu.

    3. Cross Connection mit AND Verknüpfung der beiden simulierten Ausgänge auf z.B. do_axis_minus.


    Ist, denke ich, mit entsprechender Beschreibung in der MsgBox für jeden Benutzer verständlich.

    Code
    1. CONST string my_message{3}:= ["Achse mit Funktionstasten bewegen","Taste 1: X+", "Taste 2: X-"];
    2. CONST string my_buttons{2}:=["OK","Skip"];
    3. answer:= UIMessageBox (
    4. \Header:="UIMessageBox Header"
    5. \MsgArray:=my_message
    6. \BtnArray:=my_buttons
    7. \Icon:=iconInfo);
    8. \UIActiveSignal:=doSimMoveAxis


    Gruß Z

  • AD