RobotStudio event

MT_WaitMsgDI not creating UIMessageBox while RW Tending Window opened [RWMT]

Oliver_L
Oliver_L
edited June 2020 in RAPID Programming
Hey there.

We are using RobotWare Machine Tending (6.10.2003.02) and its procedure MT_WaitMsgDI e.g. for waiting on a PLC-enable signal. If this signal is not in expected state, MT_WaitMsgDI creates an UIMessageBox with the texts, buttons or icons specified in its given msgdata. This works well while RW Tending Window is not opened on FlexPendant (physically or virtual one, see pic. 1). 
Problem now:
If RW Tending Window is opened on FlexPendant (which is required), MT_WaitMsgDI fails to create the UIMessageBox if the button is btnNone (no Button). Instead, there is only a small ribbon in the top of the window which shows the specified text on specified background color (see pic. 2).
If RW Tending Window is opened and button is unequal btnNone (btnOk in my example), UIMessageBox is created (see pic. 3)

Is this wanted behaviour? Can i change it to always create the UIMessageBox?

We need to get events via RobAPI if there is an MT_WaitMsgDI active (respectively an UIMessageBox), to show specified text on a remote PC. But if no UIMessageBox is created, there no event is triggered.

Or is there an alternate way to trigger the wanted events?

Greetings from Germany,
Oliver

pic. 1


pic. 2


pic. 3

Answers

  • Micky
    Micky ✭✭✭
    edited June 2020
    Hello,
    It is intended that the dialog box only appears if the GUI is not open or no inputs are required (btnNone)

    For the transmission of the message information to the PLC a signal interface is provided, which can be parameterized via the process configuration (API Commands).
    Furthermore, the event EE_MSG_WRITTEN can be used, which calls a routine that takes the current message data. This information can then be transferred to the PLC using socket messaging, for example.

    CONST eventdata ev1:=[EE_MSG_WRITTEN,"printMsg",0];
    <div>PROC printmsg(msgdata msg)<br></div><div>&nbsp; &nbsp; tpwrite msg.Header;</div><div>ENDPROC</div>