Skip to content

Track Out#

Overview#

Track Out records that a Material has completed processing at the Resource. MES applies its normal Track Out preconditions and completes the in-process execution.

See Track Out Material ↗ for the product transaction behavior.

Nodes#

Relative node OPC UA type Direction Purpose
Operation.TrackOut.Material.Name String Machine → MES Exact MES Material name
Operation.TrackOut.MachineOperationRequest Boolean Machine → MES Starts machine-initiated Track Out
Operation.TrackOut.MESOperationPerformed Boolean MES → Machine Indicates that MES performed Track Out and is waiting for machine confirmation
Operation.TrackOut.MachineOperationConfirmed Boolean Machine → MES Machine consumed the result

Communication Flow#

sequenceDiagram
    autonumber
    actor O as Operator
    participant M as Machine / OPC UA Server
    participant I as Connect IoT
    participant E as Critical Manufacturing MES

    alt Machine initiated
        M->>I: Material.Name
        M->>I: MachineOperationRequest = true
        I->>E: Track Out resolved in-process Material
    else Operator initiated
        O->>E: Track Out selected Material in MES UI
    end

    E->>E: Validate and perform Track Out within transaction
    E-->>I: Track Out performed, awaiting machine confirmation
    I->>M: MESOperationPerformed = true

    alt Confirmation before MachineReplyTimeout
        M-->>I: MachineOperationConfirmed = true
        I-->>E: Machine confirmed
        E->>E: Commit Track Out
        I->>M: MESOperationPerformed = false
        M->>I: Machine-owned bits = false
    else MachineReplyTimeout expires
        I-->>E: Machine confirmation timeout
        E->>E: Roll back Track Out
        I->>M: MESOperationPerformed = false
    end

Step-by-Step Process#

Machine-Initiated#

  1. The PLC writes Material.Name.
  2. The PLC sets MachineOperationRequest = true, which raises the machine request through Connect IoT.
  3. Connect IoT requests Track Out in MES and provides the explicit Material name when available.
  4. MES resolves the explicit Material or, when FIFO is enabled, the first eligible in-process Material at the Resource.
  5. MES validates and performs Track Out within the current transaction.
  6. Connect IoT sets MESOperationPerformed = true and waits for MachineOperationConfirmed = true.
  7. When confirmation arrives before MachineReplyTimeout, MES commits Track Out.
  8. Both sides return their control bits to false.
  9. If confirmation does not arrive in time, Track Out fails and the transaction rolls back.

Operator-Initiated#

  1. The operator selects the Material and performs Track Out in the MES UI; MachineOperationRequest is not required.
  2. MES validates and performs Track Out within the current transaction.
  3. Connect IoT sets MESOperationPerformed = true and waits for the machine confirmation.
  4. When confirmation arrives before MachineReplyTimeout, MES commits Track Out.
  5. The result and confirmation bits are reset.
  6. If confirmation does not arrive in time, the operator receives a failure and the transaction rolls back.

Failure Behavior#

  • In MES automation controller type must be IndEqController
  • In MES resource EnableAutomationScenarios must be set to true
  • A Material that is not in process at the Resource is rejected.
  • A failed MES validation or transaction leaves MESOperationPerformed = false.
  • If the machine does not set MachineOperationConfirmed = true before MachineReplyTimeout expires, Track Out is not successful and its transaction rolls back.
  • After a timeout, reconcile the MES Material state, machine state, and handshake values before retrying.

Validation and Assumptions#

  • Explicit and FIFO resolution select only an eligible in-process Material.
  • Operator-initiated Track Out notifies the machine when EnableAutomationScenarios = true.
  • The performed signal is written only after the MES succeeds.
  • Duplicate and missing-acknowledgement recovery do not execute Track Out twice.
  • Resource is set as EnableAutomationScenarios = true
  • MES automation controller type is IndEqController