This is part of 2.2.0-devlatest release: 2.1.0.
🚧 Development version – not released yet! 🚧

MLxLogging

0.4.0
since lib: v2.2.0  

Store MotoLogix command log data.

More information on this in the feature description

Logged data per command

See MLxLogEntry for details on the used variables.
  • MLxAbort

    category: system function

    log itemvalue/description
    commandId1
    timeStamp
  • MLxBvarsGet

    category: variables

    log itemvalue/description
    commandId51
    timeStamp
    bufferEntry
    targetNumbervariable number (0-n)
  • MLxBvarsSet

    category: variables

    log itemvalue/description
    commandId61
    timeStamp
    bufferEntry
    targetNumbervariable number (0-n)
  • MLxDvarsGet

    category: variables

    log itemvalue/description
    commandId52
    timeStamp
    bufferEntry
    targetNumbervariable number (0-n)
  • MLxDvarsSet

    category: variables

    log itemvalue/description
    commandId62
    timeStamp
    bufferEntry
    targetNumbervariable number (0-n)
  • MLxEnable

    category: system function

    log itemvalue/description
    commandId5
    timeStamp
  • MLxGetConfigLog

    category: setup

    log itemvalue/description
    commandId241
    timeStamp
    bufferEntry
    targetNumberconfig log type
  • MLxGetErrorDetail

    category: diagnostic

    This function spans multiple communication sequences – only the initial will be logged.
    log itemvalue/description
    commandId15
    timeStamp
  • MLxGetLimitStatus

    category: setup

    log itemvalue/description
    commandId230
    timeStamp
    bufferEntry
  • MLxGetMessageDetail

    category: diagnostic

    This function is excluded from logging.
  • MLxGetModuleInfo

    category: setup

    This function spans multiple communication sequences – only the initial will be logged.
    log itemvalue/description
    commandId16
    timeStamp
  • MLxGetSafetyCRC

    category: setup

    log itemvalue/description
    commandId240
    timeStamp
    bufferEntry
    targetNumberfile type
  • MLxHold

    category: system function

    log itemvalue/description
    commandId7
    timeStamp
  • MLxIvarsGet

    category: variables

    log itemvalue/description
    commandId53
    timeStamp
    bufferEntry
    targetNumbervariable number (0-n)
  • MLxIvarsSet

    category: variables

    log itemvalue/description
    commandId63
    timeStamp
    bufferEntry
    targetNumbervariable number (0-n)
  • MLxReset

    category: system function

    log itemvalue/description
    commandId2
    timeStamp
  • MLxResetAndHold

    category: system function

    log itemvalue/description
    commandId3
    timeStamp
  • MLxRestart

    category: system function

    log itemvalue/description
    commandId4
    timeStamp
  • MLxRobotCalcToolCalib

    category: tool

    This function spans multiple communication sequences – only the initial will be logged.
    log itemvalue/description
    commandId242
    timeStamp
    robotNumber
    bufferEntry
  • MLxRobotConvSyncStart

    category: conveyor

    log itemvalue/description
    commandId10
    timeStamp
    robotNumber
    bufferEntry
    targetNumberconveyor number (0-3)
    data[0]conveyor offset (.01 mm)
    data[1]start position (.01 mm)
    data[2]teach position (.01 mm)
    data[3]lag offset (.01 mm)
    data[4]number of points to average
  • MLxRobotConvSyncStop

    category: conveyor

    log itemvalue/description
    commandId11
    timeStamp
    robotNumber
    bufferEntry
    targetNumberconveyor number (0-3)
  • MLxRobotConvSyncStopWithAxisMot

    category: conveyor

    log itemvalue/description
    commandId12
    timeStamp
    robotNumber
    bufferEntry
    targetNumbertransform type
    log itemtargetNumber=0targetNumber>0
    data[0]S position (.01 deg)X position (.01 mm)
    data[1]L position (.01 deg)Y position (.01 mm)
    data[2]U position (.01 deg)Z position (.01 mm)
    data[3]R position (.01 deg)Rx position (.01 deg)
    data[4]B position (.01 deg)Ry position (.01 deg)
    data[5]T position (.01 deg)Rz position (.01 deg)
  • MLxRobotConvSyncStopWithLinMot

    category: conveyor

    log itemvalue/description
    commandId13
    timeStamp
    robotNumber
    bufferEntry
    targetNumbertransform type
    log itemtargetNumber=0targetNumber>0
    data[0]S position (.01 deg)X position (.01 mm)
    data[1]L position (.01 deg)Y position (.01 mm)
    data[2]U position (.01 deg)Z position (.01 mm)
    data[3]R position (.01 deg)Rx position (.01 deg)
    data[4]B position (.01 deg)Ry position (.01 deg)
    data[5]T position (.01 deg)Rz position (.01 deg)
  • MLxRobotCoordinateTransform

    category: frame

    log itemvalue/description
    commandId28
    timeStamp
    robotNumber
    bufferEntry
    targetNumbertransform type
    log itemtargetNumber=0targetNumber>0
    data[0]S position (.01 deg)X position (.01 mm)
    data[1]L position (.01 deg)Y position (.01 mm)
    data[2]U position (.01 deg)Z position (.01 mm)
    data[3]R position (.01 deg)Rx position (.01 deg)
    data[4]B position (.01 deg)Ry position (.01 deg)
    data[5]T position (.01 deg)Rz position (.01 deg)
  • MLxRobotGetCollisionDetectionStatus

    category: collision detection

    log itemvalue/description
    commandId226
    timeStamp
    robotNumber
    bufferEntry
  • MLxRobotGetCollisionDetectionTorque

    category: collision detection

    log itemvalue/description
    commandId227
    timeStamp
    robotNumber
    bufferEntry
  • MLxRobotGetHomeOffsets

    category: setup

    log itemvalue/description
    commandId36
    timeStamp
    robotNumber
    bufferEntry
    targetNumberoffset type
  • MLxRobotGetProperties
    This function spans multiple communication sequences – only the initial will be logged.

    category: setup

    log itemvalue/description
    commandId30
    timeStamp
    robotNumber
    bufferEntry
  • MLxRobotGetSearchPosition

    category: search

    log itemvalue/description
    commandId236
    timeStamp
    robotNumber
    bufferEntry
    targetNumbercoord frame (0=world, 2=active user frame)
    data[0]capture number (0-n)
  • MLxRobotGetSearchResult

    category: search

    log itemvalue/description
    commandId235
    timeStamp
    robotNumber
    bufferEntry
  • MLxRobotJogAxes

    category: jog

    Jog motion requires a flow of jog commands – only the initial command will be logged.
    log itemvalue/description
    commandId22
    timeStamp
    robotNumber
    bufferEntry
  • MLxRobotJogAxesToPoint

    category: jog

    Jog motion requires a flow of jog commands – only the initial command will be logged.
    log itemvalue/description
    commandId34
    timeStamp
    robotNumber
    bufferEntry
    data[0]S position (.01 deg)
    data[1]L position (.01 deg)
    data[2]U position (.01 deg)
    data[3]R position (.01 deg)
    data[4]B position (.01 deg)
    data[5]T position (.01 deg)
  • MLxRobotJogTCP

    category: jog

    Jog motion requires a flow of jog commands – only the initial command will be logged.
    log itemvalue/description
    commandId23
    timeStamp
    robotNumber
    bufferEntry
  • MLxRobotJogTCPToPoint

    category: jog

    Jog motion requires a flow of jog commands – only the initial command will be logged.
    log itemvalue/description
    commandId35
    timeStamp
    robotNumber
    bufferEntry
    data[0]X position (.01 mm)
    data[1]Y position (.01 mm)
    data[2]Z position (.01 mm)
    data[3]Rx position (.01 deg)
    data[4]Ry position (.01 deg)
    data[5]Rz position (.01 deg)
  • MLxRobotMoveAxisAbsolute

    category: move ptp

    log itemvalue/description
    commandId19
    timeStamp
    robotNumber
    bufferEntry
    targetNumber0=axis position, 1=TCP position
    log itemtargetNumber=0targetNumber=1
    data[0]S position (.01 deg)X position (.01 mm)
    data[1]L position (.01 deg)Y position (.01 mm)
    data[2]U position (.01 deg)Z position (.01 mm)
    data[3]R position (.01 deg)Rx position (.01 deg)
    data[4]B position (.01 deg)Ry position (.01 deg)
    data[5]T position (.01 deg)Rz position (.01 deg)
  • MLxRobotMoveAxisAbsoWithBase

    category: move ptp (+ base axis)

    log itemvalue/description
    commandId208
    timeStamp
    robotNumber
    bufferEntry
    targetNumber0=axis position, 1=TCP position
    data[6]1st base axis position (.01 mm)
    log itemtargetNumber=0targetNumber=1
    data[0]S position (.01 deg)X position (.01 mm)
    data[1]L position (.01 deg)Y position (.01 mm)
    data[2]U position (.01 deg)Z position (.01 mm)
    data[3]R position (.01 deg)Rx position (.01 deg)
    data[4]B position (.01 deg)Ry position (.01 deg)
    data[5]T position (.01 deg)Rz position (.01 deg)
  • MLxRobotMoveAxisPvarAbsolute

    category: move ptp

    log itemvalue/description
    commandId71
    timeStamp
    robotNumber
    bufferEntry
    targetNumbervariable number (0-n)
  • MLxRobotMoveAxisRelative

    category: move ptp

    log itemvalue/description
    commandId20
    timeStamp
    robotNumber
    bufferEntry
    data[0]S position (.01 deg)
    data[1]L position (.01 deg)
    data[2]U position (.01 deg)
    data[3]R position (.01 deg)
    data[4]B position (.01 deg)
    data[5]T position (.01 deg)
  • MLxRobotMoveAxisRelaWithBase

    category: move ptp (+ base axis)

    log itemvalue/description
    commandId209
    timeStamp
    robotNumber
    bufferEntry
    data[0]S position (.01 deg)
    data[1]L position (.01 deg)
    data[2]U position (.01 deg)
    data[3]R position (.01 deg)
    data[4]B position (.01 deg)
    data[5]T position (.01 deg)
    data[6]1st base axis position (.01 mm)
  • MLxRobotMoveLinAbsoWithBase

    category: move linear (+ base axis)

    log itemvalue/description
    commandId206
    timeStamp
    robotNumber
    bufferEntry
    targetNumber0=axis position, 1=TCP position
    data[6]1st base axis position (.01 mm)
    log itemtargetNumber=0targetNumber=1
    data[0]S position (.01 deg)X position (.01 mm)
    data[1]L position (.01 deg)Y position (.01 mm)
    data[2]U position (.01 deg)Z position (.01 mm)
    data[3]R position (.01 deg)Rx position (.01 deg)
    data[4]B position (.01 deg)Ry position (.01 deg)
    data[5]T position (.01 deg)Rz position (.01 deg)
  • MLxRobotMoveLinearAbsolute

    category: move linear

    log itemvalue/description
    commandId17
    timeStamp
    robotNumber
    bufferEntry
    targetNumber0=axis position, 1=TCP position
    log itemtargetNumber=0targetNumber=1
    data[0]S position (.01 deg)X position (.01 mm)
    data[1]L position (.01 deg)Y position (.01 mm)
    data[2]U position (.01 deg)Z position (.01 mm)
    data[3]R position (.01 deg)Rx position (.01 deg)
    data[4]B position (.01 deg)Ry position (.01 deg)
    data[5]T position (.01 deg)Rz position (.01 deg)
  • MLxRobotMoveLinearPvarAbsolute

    category: move linear

    log itemvalue/description
    commandId72
    timeStamp
    robotNumber
    bufferEntry
    targetNumbervariable number (0-n)
  • MLxRobotMoveLinearRelative

    category: move linear

    log itemvalue/description
    commandId18
    timeStamp
    robotNumber
    bufferEntry
    targetNumbercoord frame (0=world, 1=tool frame, 2=active user frame)
    data[0]X position (.01 mm)
    data[1]Y position (.01 mm)
    data[2]Z position (.01 mm)
    data[3]Rx position (.01 deg)
    data[4]Ry position (.01 deg)
    data[5]Rz position (.01 deg)
  • MLxRobotMoveLinRelaWithBase

    category: move linear (+ base axis)

    log itemvalue/description
    commandId207
    timeStamp
    robotNumber
    bufferEntry
    targetNumbercoord frame robot (0=world, 1=tool frame, 2=active user frame)
    data[0]X position (.01 mm)
    data[1]Y position (.01 mm)
    data[2]Z position (.01 mm)
    data[3]Rx position (.01 deg)
    data[4]Ry position (.01 deg)
    data[5]Rz position (.01 deg)
    data[6]1st base axis position (.01 mm)
  • MLxRobotPositionVariableGet

    category: variables

    log itemvalue/description
    commandId201
    timeStamp
    robotNumber
    bufferEntry
    targetNumbervariable number (0-n)
  • MLxRobotPositionVariableSet

    category: variables

    log itemvalue/description
    commandId200
    timeStamp
    robotNumber
    bufferEntry
    targetNumbervariable number (0-n)
  • MLxRobotResetCollisionDetectionTorque

    category: collision detection

    log itemvalue/description
    commandId228
    timeStamp
    bufferEntry
  • MLxRobotResetSearch

    category: search

    log itemvalue/description
    commandId234
    timeStamp
    robotNumber
    bufferEntry
  • MLxRobotSelectCollisionDetection

    category: collision detection

    log itemvalue/description
    commandId224
    timeStamp
    robotNumber
    bufferEntry
    targetNumberfile number (0-n)
  • MLxRobotSelectTool

    category: tool

    log itemvalue/description
    commandId205
    timeStamp
    robotNumber
    bufferEntry
    targetNumbertool number (0-n)
  • MLxRobotSetBasePose

    category: setup

    log itemvalue/description
    commandId24
    timeStamp
    robotNumber
    bufferEntry
    data[0]robot base offset X (.01 mm)
    data[1]robot base offset Y (.01 mm)
    data[2]robot base offset Z (.01 mm)
    data[3]robot base offset Rx (.01 deg)
    data[4]robot base offset Ry (.01 deg)
    data[5]robot base offset Rz (.01 deg)
  • MLxRobotSetCollisionDetectionProperties

    category: collision detection

    log itemvalue/description
    commandId225
    timeStamp
    robotNumber
    bufferEntry
    targetNumberfile number (0-n)
    data[0]S axis level (%)
    data[1]L axis level (%)
    data[2]U axis level (%)
    data[3]R axis level (%)
    data[4]B axis level (%)
    data[5]T axis level (%)
  • MLxRobotSetCollisionDetectionStatus

    category: collision detection

    log itemvalue/description
    commandId223
    timeStamp
    robotNumber
    bufferEntry
    data[0]collision detection (0=suspend, 1=resume)
  • MLxRobotSetCubicIZByCenterPoint

    category: setup

    log itemvalue/description
    commandId31
    timeStamp
    robotNumber
    bufferEntry
    targetNumberinterference zone number (0-n)
    data[0]zone action (0=status only, 1=stop motion, 2=delete)
  • MLxRobotSetCubicIZByTwoCorners

    category: setup

    log itemvalue/description
    commandId32
    timeStamp
    robotNumber
    bufferEntry
    targetNumberinterference zone number (0-n)
    data[0]zone action (0=status only, 1=stop motion, 2=delete)
  • MLxRobotSetDigitalOutputWithMot

    category: special function

    log itemvalue/description
    commandId8
    timeStampfrom concerned motion command
    robotNumberfrom concerned motion command
    bufferEntryfrom concerned motion command
    targetNumberunits (0=distance, 1=time)
    data[0]distance- or time value (mm or msec)
    data[1]output number (0-n)
    data[2]output value (0=OFF, 1=ON)
    data[3]output pulse (0=infinite, 1-n=duration in msec)
  • MLxRobotSetFrameShift

    category: frame

    log itemvalue/description
    commandId27
    timeStamp
    robotNumber
    bufferEntry
    targetNumbercoord frame (0=world, 2=active user frame)
    data[0]frame shift X (.01 mm)
    data[1]frame shift Y (.01 mm)
    data[2]frame shift Z (.01 mm)
    data[3]frame shift Rx (.01 deg)
    data[4]frame shift Ry (.01 deg)
    data[5]frame shift Rz (.01 deg)
  • MLxRobotSetHomeOffsets

    category: setup

    log itemvalue/description
    commandId33
    timeStamp
    robotNumber
    bufferEntry
    targetNumberoffset type
    data[0]S home offset (pulse)
    data[1]L home offset (pulse)
    data[2]U home offset (pulse)
    data[3]R home offset (pulse)
    data[4]B home offset (pulse)
    data[5]T home offset (pulse)
  • MLxRobotSetProperties
    This function spans multiple communication sequences – only the initial will be logged.

    category: setup

    log itemvalue/description
    commandId29
    timeStamp
    robotNumber
    bufferEntry
  • MLxRobotSetSearch

    category: search

    log itemvalue/description
    commandId233
    timeStamp
    robotNumber
    bufferEntry
    targetNumberinput signal bits (b0-b5=RIN#1-RIN#6)
    data[0]search condition (0=capture at LOW level, 1=capture at HIGH level)
    data[1]search action (0=stop after capture)
  • MLxRobotSetServoFloatOff

    category: servofloat

    log itemvalue/description
    commandId220
    timeStamp
    robotNumber
    bufferEntry
  • MLxRobotSetServoFloatOn

    category: servofloat

    log itemvalue/description
    commandId219
    timeStamp
    robotNumber
    bufferEntry
    targetNumberservofloat file number (0-7=link #1-#8, 10-17=linear #1-#8)
  • MLxRobotSetServoFloatProperties

    category: servofloat

    log itemvalue/description
    commandId221
    timeStamp
    robotNumber
    bufferEntry
    targetNumberservofloat file number (0-7=link #1-#8, 10-17=linear #1-#8)
  • MLxRobotSetToolProperties

    category: tool

    log itemvalue/description
    commandId25
    timeStamp
    robotNumber
    bufferEntry
    targetNumbertool number (0-n)
    data[0]tool offset X (.01 mm)
    data[1]tool offset Y (.01 mm)
    data[2]tool offset Z (.01 mm)
    data[3]tool offset Rx (.01 deg)
    data[4]tool offset Ry (.01 deg)
    data[5]tool offset Rz (.01 deg)
    data[6]tool weight (.01 kg)
  • MLxRobotSetUserFrame

    category: frame

    log itemvalue/description
    commandId26
    timeStamp
    robotNumber
    bufferEntry
    targetNumberuser frame number (0-n)
    data[0]coord frame X (.01 mm)
    data[1]coord frame Y (.01 mm)
    data[2]coord frame Z (.01 mm)
    data[3]coord frame Rx (.01 deg)
    data[4]coord frame Ry (.01 deg)
    data[5]coord frame Rz (.01 deg)
  • MLxRvarsGet

    category: variables

    log itemvalue/description
    commandId54
    timeStamp
    bufferEntry
    targetNumbervariable number (0-n)
  • MLxRvarsSet

    category: variables

    log itemvalue/description
    commandId64
    timeStamp
    bufferEntry
    targetNumbervariable (0-n)
  • MLxSetGlobalParameter

    category: setup

    A speed override by HMI slider potentially creates a flow of set global parameter commands – only the initial command will be logged.
    log itemvalue/description
    commandId37
    timeStamp
    bufferEntry
    targetNumberparameter number (0-n)
    data[0]parameter value [.01 units]
  • MLxSetLimitStatus

    category: setup

    log itemvalue/description
    commandId229
    timeStamp
    bufferEntry
    data[0]0=activate limit monitoring, 1=deactivate limit monitoring
  • MLxStop

    category: system function

    log itemvalue/description
    commandId6
    timeStamp
  • MLxSvarsGet

    category: variables

    log itemvalue/description
    commandId55
    timeStamp
    bufferEntry
    targetNumbervariable number (0-n)
  • MLxSvarsSet

    category: variables

    log itemvalue/description
    commandId65
    timeStamp
    bufferEntry
    targetNumbervariable number (0-n)
  • MLxWriteApplicationDataToYRC

    category: setup

    log itemvalue/description
    commandId204
    timeStamp
    bufferEntry

Version history

0.4.0

  deGroot

Changes

Added:
  • support MLxRobotSetDigitalOutputWithMot command
show full history

0.3.0

  deGroot

Changes

Changed:
  • fix array upper boundary

0.2.0

  deGroot

Changes

Changed:
  • data type for TimeNow changed to DINT

0.1.0

  deGroot

Changes

Added:
  • first release

Overview

kindnametypedefaultcomment
inputEraseBOOLclear all MotoLogix log data
inputTimeNowDINTcurrent time [ms since midnight], used for adding a time stamp to every log entry
inputUserDataARRAY [0..1] OF DINTadditional user data
in_outLogDataMLxLogDatathe log data buffer
in_outMLXMLxDataThe MLxData Controller Scope tag.

Details

Erase

BOOL

Clear all MotoLogix log data.

The log data is lost forever – think twice before using this.

TimeNow

DINT

Current time, used for adding a time stamp to every log entry.

  • Time formatted as the number of milliseconds since midnight (00:00 hours)

UserData

ARRAY [0..1] OF DINT

This allows you to store additional information with every log entry.

Such additional data can be helpful when analyzing log data. Select the user data which fits best for your use case.

Example to convert floating point user data:

// conversion of a REAL using factor 100
// 1234.56789 -> 123457
varDint := REAL_TO_DINT(varReal * 100)

LogData

MLxLogData

The log data buffer.

The MotoLogix variable which acts as the shared memory for a MotoLogix system.

As the PLC runs through its scan cycle each active MotoLogix FB will read from- and write to this MotoLogix variable.

It is also used for processing the data red from- and sent to the robot controller.

There are a few important rules:

  • MLxCommunicationRead must be called at the very beginning of the PLC scan cycle.
  • MLxCommunicationWrite must be called at the very end of the PLC scan cycle.
  • All other MotoLogix FB’s used in your application must be called inbetween.
  • All off this must be handled by the same PLC task, respecting above rules.

Failing to follow above rules can lead to inconsistent data being sent to the robot controller which could result in unexpected motion.

Implementation

Snippet of the function call:
fbLogging : ARRAY[0..0] OF MLxLogging;

// fbLogging[0].Erase := ;
// fbLogging[0].TimeNow := ;
// fbLogging[0].UserData := ;
fbLogging[0]( LogData := dummy,  MLX := dummy );

Pages built with Hugo - 28 Oct 2025 16:37 CET