Protocol simulator

SCPI Simulator

Connect your SCPI client to a virtual multimeter. Query voltage, change its value in SPX and verify the next reply.

Start in three steps

Read voltage from a virtual Siglent SDM3055 multimeter and check how your SCPI client handles command replies.

Before you start: Install SPX with ASCII/SCPI support and SPX UI. Have a raw TCP client ready. Download the SDM3055 model.

1. Create a virtual multimeter

Import the YAML in Models → Load model from file. In Instances → New instance, select your registered model and set ascii_port to 5025. Choose Create, then Start instance. Confirm RUNNING. Port 5025 is this exercise’s override; the model default 0 requests an allocated port.

2. Connect and identify the instrument

Open Communication → ascii and connect your client to the reachable SPX host and published TCP port. Send *IDN? followed by LF (\n). Read through the next LF. Expect SIGLENT,SDM3055,SDM3055S0000000,1.01.

3. Read and change a measurement

Send MEAS:VOLT:DC? followed by LF. Success: the default reply represents 1.234 V. In SPX Attributes, set voltage_dc_v to 2.5, query again and verify 2.5 V. Restore 1.234, then choose Stop instance.

Protocol communication

Use these settings and messages with the library’s Siglent SDM3055 multimeter model.

Client / transport
Raw TCP socket → SPX_HOST:5025; Communication → ascii
Framing
ASCII commands; terminate with LF (\n); read replies through LF
Docker
Publish the chosen TCP port; 5025 is this exercise’s override

Replace host placeholders with reachable addresses and use your published ports.

Swipe the table to see requests and replies.

Addresses, requests and expected replies
Address / messageOperation / payloadExpected reply
*IDN?Query identitySIGLENT,SDM3055,SDM3055S0000000,1.01
MEAS:VOLT:DC?Query DC voltage1.234 at model defaults, in V
MEAS:CURR:DC?Query DC current0.123 at model defaults, in A
CONF:CURR:DCSelect current measurementNo reply; follow with READ? after the next simulation update
READ?Query the selected measurement0.123 after selecting current; 1.234 in default voltage mode
SYST:ERR?Query error status0,No error at model defaults

Values describe this model’s nominal setup unless noted. Live measurements change as the simulation runs.

Example request and reply

Send *IDN? followed by LF and verify the identity. Query MEAS:VOLT:DC?, change voltage_dc_v in SPX Attributes, then query again to verify the new value.

Send: *IDN?\n
Recv: SIGLENT,SDM3055,SDM3055S0000000,1.01\n
Send: MEAS:VOLT:DC?\n
Recv: 1.234\n
Send: CONF:CURR:DC\n  (no reply; wait for a simulation update)
Send: READ?\n
Recv: 0.123\n
No reply or an unexpected value?
  • Use raw TCP, not HTTP. Missing LF leaves the command buffered without a reply.
  • Read a reply only for queries. This model’s configuration commands are silent; waiting for a response after CONF:CURR:DC will time out.
  • Use the exact command spellings listed here. This compact model does not implement every instrument command or long-form SCPI alias.

What you can test next

  • Select current mode with CONF:CURR:DC, then query READ? after a simulation update.
  • Query SYST:ERR? and compare the result with the command map.
  • Use the linked model to check which exact command spellings are implemented.

See the SCPI adapter guide for configuration details.