UniteLabs
Tecan FluentControl

Sending XML Commands

Using the execution channel to send XML commands to FluentControl at runtime.

Once a method is running and the XML channel is open, the FluentControl connector acts as an XML message bus. Each call to execute_command() sends one command string and awaits acknowledgement from FluentControl before returning — commands are processed sequentially.

Prerequisites

  • A running method with the XML channel open (see Connect & Run a Method)
  • Knowledge of the carrier names and site numbers in your FluentControl worktable definition

Checking the Active Channel

During development, use get_channel() to confirm the XML channel is open before sending commands.

channel = await service.execution_channel_controller.get_channel()
print(f"XML channel active on: {channel}")

Sending a Command

Pass any XML command string to execute_command(). The call blocks until FluentControl acknowledges the command.

await service.execution_channel_controller.execute_command(command=xml_command_string)

The ScriptGroup Envelope

Every command sent to FluentControl must be wrapped in a ScriptGroup XML envelope:

<ScriptGroup>
  <Objects>
    <!-- your command XML goes here -->
  </Objects>
  <Name></Name>
  <IsBreakpoint>False</IsBreakpoint>
  <IsDisabledForExecution>False</IsDisabledForExecution>
  <LineNumber>0</LineNumber>
</ScriptGroup>

The inner command XML uses Tecan's scripting namespace (Tecan.Core.Scripting.*). Build helper functions to assemble and wrap commands for the types used in your workflow.

Tecan terminology: FluentControl calls the physical surface of the instrument the worktable — this is the same concept as the deck in Hamilton and Agilent instruments. Carrier names and site numbers referenced in XML commands must match the worktable configuration defined in your FluentControl installation.

Discovering XML Command Structures

FluentControl stores methods as XML internally. To find the correct XML structure for any command type — including operator prompts, labware registration, and pipetting (LiHa) commands — open the FluentControl script editor, add the desired step visually, then inspect or export the resulting .fcs method file. The XML can be read directly from there and adapted for use in execute_command().