COMMAND REFERENCE - B&K 2831E and B&K DAQ3120 ONLY Extract of the project's command_register.md, sections 0-3. The oscilloscope and power-supply sections are DELIBERATELY EXCLUDED: those instruments are out of scope for the discovery tool and must never be commanded by it. Every command here is TRANSCRIBED from the manufacturer manual, not APPROVED. For the discovery tool, only the allowlists in 01_DISCOVERY_TOOL_SPEC.txt may be sent.
Project: Vehicle Harness Functional Tester
Document status: Draft — NOT reviewed, NOT approved for hardware execution
Created by: P0 documentation extraction from manufacturer manuals held in this repository
Governing rule: m365_copilot_agent_setup_for_harness_tester (1).md §3 — "Never invent, autocomplete, infer, or translate an SCPI, VISA, serial, socket, relay-switching, or power-output command. Accept a hardware command only when the user provides an exact excerpt from the programming manual for the exact model/firmware and the reviewed command register identifies the document, revision, page/section, syntax, response, units, prerequisites, and reviewer."
Every row carries a Review status. Only APPROVED entries may ever be transmitted to real hardware, and only after Real mode is enabled by the responsible engineer.
| Status | Meaning |
|---|---|
TRANSCRIBED |
Syntax copied verbatim from a manufacturer manual in this repo for the exact model, with page citation. Not yet reviewed. Not yet bench-verified. Simulation use only. |
TRANSCRIBED-PROVISIONAL |
Syntax from a manufacturer manual for a related but different series. Usable to design and unit-test a simulated driver only. Never in Real mode. Every entry must be re-verified against the correct-model manual, and no constant from it may be hard-coded. |
BLOCKED |
No manufacturer programming manual is available for this instrument. No command may be written, guessed, or adapted from a sibling model. |
APPROVED |
Reviewed by a named engineer against the manual for the exact model and firmware, and bench-verified. Currently: none. |
Firmware caveat. Every TRANSCRIBED entry below is transcribed from a manual whose own example *IDN? response is 2831E Multimeter,Ver1.0.09.12.03. If the installed unit reports a different firmware version, every entry reverts to unverified until re-checked against the matching manual revision.
Current count: 0 APPROVED. 1 of 4 instruments fully BLOCKED (ITECH). 1 provisional (Tektronix).
| Instrument | Manual in repo? | Transport | Register status |
|---|---|---|---|
| B&K 2831E DMM ×2 | Yes — bk_precision_2831e_manual.pdf |
USB Virtual COM (serial, CP210x), 8N1, 9600 default, <LF> or <CR> |
TRANSCRIBED |
| B&K DAQ3120 | Yes — manuals/DAQ3120_programming_manual.pdf |
LAN / USBTMC / USBVCP / micro-GPIB | TRANSCRIBED |
| Tektronix TBS2104B | Wrong series — manuals/TBS2000-Programmer-077114902.pdf is TBS2000, not TBS2000B |
LAN / USBTMC | TRANSCRIBED-PROVISIONAL |
| ITECH IT-M3906B-32-240 | No programming guide. User manual present (manuals/IT-M3900B-User-Manual.pdf) — hardware interfaces only |
LAN / USB / CAN / P-IO | BLOCKED |
Source document: bk_precision_2831e_manual.pdf (SRC-02), Chapters 5–6.
Model scope: 2831E. The same manual also documents model 5491B — 5491B ranges and accuracies differ and must not be used for the 2831E.
Reviewer: (none — unreviewed)
Bench verification: (none)
| Setting | Value | Manual page |
|---|---|---|
| Interface | USB Virtual COM (behaves as RS-232 serial port) | p.40 §5.2.1; p.71 |
| Data bits / stop bits / parity | 8 / 1 / none | p.40 §5.2.2 |
| Baud rate | 600 / 1200 / 2400 / 4800 / 9600 / 19200 / 38400 | p.40 §5.2.3 |
| Baud default | 9600 | p.41 |
| Termination character | <LF> (ASCII 10) or <CR>, selectable on the instrument |
p.40 §5.2.2; p.38–39 §4.5.3 |
| Reading data format | SD.DDDDDDESDDD<NL> |
p.41 §5.3 |
| Echo handshake | Every transmitted character is echoed; wait for it before sending the next | p.41 §5.2.4 item 3 |
| Queries per line | One query per command line recommended; two queries require two reads | p.41 §5.2.4 item 5 |
| USB bridge chip | Silicon Labs CP210x USB-to-UART Bridge | B&K Bench_Multimeter_USB_Drivers.zip → slabvcp.inf (SRC-09) |
| USB VID / PID | 0x10C4 / 0xEA60 (dual-port variants use 0xEA70 + Mi_00/Mi_01) |
SRC-09 slabvcp.inf |
| Bundled driver version | 6.6.0.0, dated 2012-10-05 — predates Windows 10/11; obtain a current CP210x VCP driver | SRC-09 ReleaseNotes.txt |
Port mapping (closes the OBS-007 action). Enumerate by
VID_10C4+PID_EA60+ serial number, never by COM-port order —pyserial'scomports()exposesvid,pidandserial_number. Caveat R-DMM-02: CP210x devices are often shipped with identical factory serial strings. Test with both meters connected before relying on serial-based identification; if the serials collide, fall back to a documented physical-port binding and make it a commissioning checklist item.
FUNC:VOLT:DC = func:volt:dc.:immediate → :imm); keep it if a consonant (:format → :form); exception :TCouple → :tc.[ ] mark optional keywords — do not transmit the brackets.< > mark parameter types — do not transmit the brackets.; separates commands at the same level; ;: restarts from the root.<b> boolean (0/OFF/1/ON), <n> numeric or DEFault/MINimum/MAXimum, <NRf> number, <name> enumerated.| ID | Command | Type | Response | Description | Page |
|---|---|---|---|---|---|
CR-2831E-001 |
*IDN? |
Query | <product>,<version><LF^END> e.g. 2831E Multimeter,Ver1.0.09.12.03 |
Identify instrument | p.63 |
CR-2831E-002 |
*RST |
Command | none | Reset instrument. Takes a long time — controller must wait, do not pipeline (p.41 §5.2.4 item 7) | p.62–63 |
CR-2831E-003 |
*TRG |
Command | none | Trigger a measurement. Prerequisite: TRIGger:SOURce BUS |
p.63 |
The 2831E supports only these three common commands (p.45 §6.3).
*OPC?,*CLS,*ESR?,*STB?,*WAIare not documented — treat as NOT IMPLEMENTED.
| ID | Command | Response | Description |
|---|---|---|---|
CR-2831E-010 |
:FUNCtion <name> |
none | Select measurement function |
CR-2831E-011 |
:FUNCtion? |
<name> |
Query current function |
<name> ∈ VOLTage:AC, VOLTage:DC, CURRent:AC, CURRent:DC, RESistance, FREQuency, PERiod, DIODe, CONTinuity.
Each function retains its own range / speed / filter / rel setup (p.47). Do not assume a range set under one function applies after switching.
| ID | Command | Parameter | Default | Description | Page |
|---|---|---|---|---|---|
CR-2831E-020 |
:RESistance:NPLCycles <n> |
0.5–2; DEFault=1, MINimum=0.1, MAXimum=10 |
1 | Integration period in power line cycles | p.56 |
CR-2831E-021 |
:RESistance:NPLCycles? |
— | — | Query NPLC | p.56 |
CR-2831E-022 |
:RESistance:RANGe[:UPPer] <n> |
0 to 20e6 (expected reading, ohms) | 20e6 | Manual range select; sending a valid value disables autorange | p.57 |
CR-2831E-023 |
:RESistance:RANGe[:UPPer]? |
— | — | Query range | p.57 |
CR-2831E-024 |
:RESistance:RANGe:AUTO <b> |
ON/1/OFF/0 |
ON | Autorange | p.57 |
CR-2831E-025 |
:RESistance:RANGe:AUTO? |
— | — | Query autorange | p.57 |
CR-2831E-026 |
:RESistance:REFerence <n> |
0 to 20e6 | 0 | Set REL reference. Reading = input − reference | p.58 |
CR-2831E-027 |
:RESistance:REFerence? |
— | — | Query reference. Errors if no reference was ever set | p.58 |
CR-2831E-028 |
:RESistance:REFerence:STATe <b> |
ON/OFF |
OFF | Enable/disable REL | p.58 |
CR-2831E-029 |
:RESistance:REFerence:STATe? |
— | — | Query REL state | p.58 |
CR-2831E-030 |
:RESistance:REFerence:ACQuire |
— | — | Acquire present input as reference (lead-resistance null) | p.58–59 |
:ACQuire prerequisites and error conditions (p.59) — enforce all three in the driver:
1. The instrument must already be on the resistance function; sending it in another function causes an error.
2. The last reading must not have been an overflow.
3. A reading must have been triggered; if none has, an error occurs.
Accuracy prerequisite: the 200 Ω, 2 kΩ and 20 kΩ range accuracies are specified only under REL (p.67 footnote 2). A continuity/resistance recipe that skips the null is out of specification.
| ID | Command | Parameter | Default |
|---|---|---|---|
CR-2831E-040 |
:VOLTage:DC:NPLCycles <n> / ? |
0.5–2; DEF=1, MIN=0.5, MAX=2 |
1 |
CR-2831E-041 |
:VOLTage:DC:RANGe[:UPPer] <n> / ? |
0 to 1010 | 1000 |
CR-2831E-042 |
:VOLTage:DC:RANGe:AUTO <b> / ? |
ON/OFF |
ON |
CR-2831E-043 |
:VOLTage:DC:REFerence <n> / ? |
−1010 to 1010 | 0 |
CR-2831E-044 |
:VOLTage:DC:REFerence:STATe <b> / ? |
ON/OFF |
OFF |
CR-2831E-045 |
:VOLTage:DC:REFerence:ACQuire |
— | — |
CR-2831E-046 |
:VOLTage:AC:NPLCycles <n> / ? |
0.5–2 | 1 |
CR-2831E-047 |
:VOLTage:AC:RANGe[:UPPer] <n> / ? |
0 to 757.5 | 757.5 |
CR-2831E-048 |
:VOLTage:AC:RANGe:AUTO <b> / ? |
ON/OFF |
ON |
CR-2831E-049 |
:VOLTage:AC:REFerence <n> / ? |
−757.5 to 757.5 | 0 |
CR-2831E-050 |
:VOLTage:AC:REFerence:STATe <b> / ? |
ON/OFF |
OFF |
CR-2831E-051 |
:VOLTage:AC:REFerence:ACQuire |
— | — |
Range is specified as the expected reading, not the range name: to select the 200 mV range, send 0.02 (p.49).
| ID | Command | Parameter | Default |
|---|---|---|---|
CR-2831E-060 |
:CURRent:DC:NPLCycles <n> / ? |
0.1–10; DEF=1, MIN=0.5, MAX=2 (as printed p.53) |
1 |
CR-2831E-061 |
:CURRent:DC:RANGe[:UPPer] <n> / ? |
−20 to 20 | 20 |
CR-2831E-062 |
:CURRent:DC:RANGe:AUTO <b> / ? |
ON/OFF |
ON |
CR-2831E-063 |
:CURRent:DC:REFerence <n> / ? |
0 to 20 (as printed) | 0 |
CR-2831E-064 |
:CURRent:DC:REFerence:STATe <b> / ? |
ON/OFF |
OFF |
CR-2831E-065 |
:CURRent:DC:REFerence:ACQuire |
— | — |
CR-2831E-066 |
:CURRent:AC:NPLCycles <n> / ? |
0.1–10 | 1 |
CR-2831E-067 |
:CURRent:AC:RANGe[:UPPer] <n> / ? |
0 to 20 | 20 |
CR-2831E-068 |
:CURRent:AC:RANGe:AUTO <b> / ? |
ON/OFF |
ON |
CR-2831E-069 |
:CURRent:AC:REFerence <n> / ? |
−20 to 20 (as printed) | 0 |
CR-2831E-070 |
:CURRent:AC:REFerence:STATe <b> / ? |
ON/OFF |
OFF |
CR-2831E-071 |
:CURRent:AC:REFerence:ACQuire |
— | — |
Manual inconsistencies to raise with the reviewer, not to silently "fix": (a) p.53 gives the NPLC parameter range as
0.1 to 10butMINimum= 0.5 andMAXimum= 2, which contradicts it. (b) p.52 table gives DC reference as −20 to 20 and AC as 0 to 20; p.54 body text gives AC as −20 to 20 and DC as 0 to 20 — the two are swapped. Encode the narrower of the two readings and flag both to the reviewer.
| ID | Command | Parameter | Default |
|---|---|---|---|
CR-2831E-080 |
:FREQuency:THReshold:VOLTage:RANGe <n> / ? |
0 to 1010 (p.60) / 0 to 750 (p.59 table) | 20 |
CR-2831E-081 |
:FREQuency:REFerence <n> / ? |
0 to 1.0e6 | 0 |
CR-2831E-082 |
:FREQuency:REFerence:STATe <b> / ? |
ON/OFF |
OFF |
CR-2831E-083 |
:FREQuency:REFerence:ACQuire |
— | — |
CR-2831E-084 |
:PERiod:THReshold:VOLTage:RANGe <n> / ? |
0 to 1010 / 0 to 750 | 20 |
CR-2831E-085 |
:PERiod:REFerence <n> / ? |
0 to 1 | 0 |
CR-2831E-086 |
:PERiod:REFerence:STATe <b> / ? |
ON/OFF |
OFF |
CR-2831E-087 |
:PERiod:REFerence:ACQuire |
— | — |
(Threshold range printed inconsistently between p.59 and p.60 — flag to reviewer.)
| ID | Command | Parameter | Default |
|---|---|---|---|
CR-2831E-090 |
TRIGger:SOURce <name> |
IMMediate | BUS | MANual (a.k.a. EXTernal) |
IMMediate |
CR-2831E-091 |
TRIGger:SOURce? |
— | — |
IMMediate = internal/continuous. BUS = triggered via USB/RS-232 by *TRG. MANual = front-panel Trig key.
| ID | Command | Response | Description |
|---|---|---|---|
CR-2831E-100 |
:FETCh? |
Reading in SD.DDDDDDESDDD<NL> format |
Returns the last available reading. Does NOT trigger a measurement and does NOT change configuration. Returns the same value repeatedly until a new reading occurs. |
Staleness hazard — must be handled in the driver. Because
:FETCh?returns the same value until a new reading exists, a poll loop can silently return a stale reading and the test would pass on old data. The driver must use the documented deterministic sequence (§2.12) and must never treat a repeated identical value as a fresh measurement.
| ID | Command | Parameter | Description |
|---|---|---|---|
CR-2831E-110 |
:DISPlay:ENABle <b> |
ON/OFF |
Disable the front-panel display to run faster. While disabled the display is frozen and all front-panel controls except LOCAL are disabled |
CR-2831E-111 |
:DISPlay:ENABle? |
— | Query display state |
Do not use
:DISPlay:ENABle OFFin production recipes. Freezing the display and locking the front panel removes the operator's ability to see what the instrument is doing during an energized test. The speed gain is not worth it. If it is ever used, the application must guarantee re-enable on every exit path including exception, abort and timeout.
TRIGger:SOURce BUS # CR-2831E-090
:FUNCtion RESistance # CR-2831E-010
:RESistance:RANGe:AUTO ON # or an explicit range, CR-2831E-024 / -022
*TRG # CR-2831E-003 — trigger one measurement
:FETCh? # CR-2831E-100 — read it back
Each line is transmitted with the configured terminator, respecting the per-character echo handshake and one-query-per-line rule of §2.1.
| ID | Item | Why blocked |
|---|---|---|
CR-2831E-BLOCKED-01 |
:READ? and :MEASure? |
Referenced once on p.62 as commands that auto-assert :FETCh?, but defined nowhere in the manual — no syntax, no subsystem entry, no response format. Do not guess. Use §2.12 instead. |
CR-2831E-BLOCKED-02 |
HOLD subsystem |
Listed as an available subsystem on p.45 and referenced syntactically on p.42–43 (:HOLD:STATe <b>), but has no §6.3 reference section in this manual revision. Parameters, defaults and behaviour undocumented. |
CR-2831E-BLOCKED-03 |
Limit / compare (HI-IN-LO) remote control | Limit mode is a headline datasheet feature (SRC-01 p.2) and is settable from the front panel (MATH MEU → HI LIMIT / LO LIMIT), but no SCPI subsystem for it appears in Chapter 6. Pass/fail limits must be evaluated in the application, from raw readings — not delegated to the meter. |
CR-2831E-BLOCKED-04 |
Error / status queue readout | No *ESR?, *STB?, SYSTem:ERRor? documented. The ERR front-panel annunciator (p.~17) is not machine-readable. The driver cannot query instrument error state; it must rely on response parsing and timeouts. |
CR-2831E-BLOCKED-05 |
Chapter 8 programming examples | Referenced on p.41 ("Please refer to Chapter 8 for serial interface programming examples") but the manual ends at Chapter 7 / p.71. No examples exist in this document. |
Source document: manuals/DAQ3120_programming_manual.pdf (SRC-07), DAQ3120 Series Programming Manual, version stamp January 7, 2026, 139 pp. SHA-256 (first 16) 563c57bf11cae55a. Retrieved from B&K Precision's media bucket — see P0-DOC-03_internet_research_findings.md §2.
Model scope: DAQ3120 Series.
Reviewer: (none — unreviewed)
Bench verification: (none)
Firmware caveat: unverified against the installed unit. *IDN? returns the firmware version — record it and re-check this register against the matching manual revision.
Switching commands are the highest-risk commands in this project. A wrong route can connect a resistance measurement path to an energized circuit, or short two harness pins together. Nothing in §3.6 may be emitted until the fixture schematic, the channel map and the forbidden-combination table exist and have been reviewed (
P0-DOC-01OBS-009, T-04).
<NRf> accepts <NR1> integer, <NR2> decimal, <NR3> exponent.<Boolean>: ON/1, OFF/0.<String>: double-quoted; the quotes are part of the syntax.MIN, MAX, DEF, AUTO.Channel list (@<ch_list>) — SRC-07 §3.3, p.18:
| Form | Example |
|---|---|
| Single | (@101) |
| Multiple | (@101,102,105) |
| Range | (@101:105) |
| Combined | (@101:105,201) |
Channel numbers are <slot><channel>: slot 1 → 1xx, slot 2 → 2xx, slot 3 → 3xx. Computed "Computer Channels" are 401–420 (DAQ3120 user manual §5.6.1).
| ID | Command | Response | Notes |
|---|---|---|---|
CR-DAQ-001 |
*IDN? |
B&K Precision, DAQ3120, <Serial Number>, <Firmware Version> |
Serial and firmware are machine-readable — automate the identity check |
CR-DAQ-002 |
*RST |
— | Factory default. Aborts any scan and clears the scan list |
CR-DAQ-003 |
*CLS |
— | Clear status |
CR-DAQ-004 |
*ESE / *ESR? |
— / <NR1> |
Standard event status enable / read |
CR-DAQ-005 |
*OPC / *OPC? |
— / <NR1> |
Operation complete |
CR-DAQ-006 |
*SRE / *STB? |
— / <NR1> |
Service request enable / status byte |
CR-DAQ-007 |
*TRG |
— | Software trigger. Prerequisite: TRIGger:SOURce BUS |
CR-DAQ-008 |
*TST? |
0 = pass, non-zero = fail |
Complete self-test |
CR-DAQ-009 |
*WAI |
— | Wait for pending operations |
CR-DAQ-010 |
*SAV / *RCL |
— | Save / recall instrument state |
CR-DAQ-011 |
*PSC |
— | Power-on status clear |
| ID | Command | Description |
|---|---|---|
CR-DAQ-020 |
ABORt |
Aborts a scan in progress, returns to trigger idle. Starting a new scan after an abort clears reading memory |
CR-DAQ-021 |
INITiate[:IMMediate] |
Idle → wait-for-trigger. Clears the previous set of measurements from reading memory |
CR-DAQ-022 |
FETCh? |
Waits for completion, copies all available measurements to the output buffer. Does not erase readings — the same data can be retrieved repeatedly |
CR-DAQ-023 |
READ? |
Starts a new scan and waits for completion. Equivalent to ABORt + INITiate + FETCh? |
CR-DAQ-024 |
R? <NR1> |
Reads and erases up to <NR1> (1–100000) oldest readings. Returns block data (e.g. #279…). Does not wait for completion |
CR-DAQ-025 |
INSTrument:DMM <Boolean> / ? |
Enable/disable the internal DMM |
CR-DAQ-026 |
TIME:SYNC:SERVer "<url>" / ? |
NTP server |
CR-DAQ-027 |
UNIT:TEMPerature C\|F\|K [,(@<ch_list>)] / ? |
Temperature units |
CR-DAQ-025is architecturally important and has a trap. Manual, §6.4: "When disabled, the instrument acts as a switch, allowing external instruments to measure signals routed through the multiplexer modules." — this is how the DAQ routes harness pins to the two external 2831E DMMs. But: "Changing the state of the internal DMM triggers a Factory Reset (*RST)." So it is a connect-time decision only. Never toggle it mid-sequence: it silently discards the scan list and all channel configuration.Reading memory is 100,000 readings and wraps — "If memory overflows, the oldest readings are overwritten." For long scans use
R?to drain periodically, and never assumeFETCh?returned everything.
| ID | Command | Parameters |
|---|---|---|
CR-DAQ-030 |
CONFigure? [(@<ch_list>)] |
Returns e.g. "VOLT +1.000000E+01,+3.000000E-06" |
CR-DAQ-031 |
CONFigure:RESistance\|FRESistance [<range>[,<resolution>]][,(@<ch_list>)] |
<range>: value | AUTO | MIN | MAX | DEF (100 Ω to 100 MΩ). FRESistance = 4-wire |
CR-DAQ-032 |
CONFigure[:VOLTage]:AC\|DC [<range>[,<resolution>]][,(@<ch_list>)] |
|
CR-DAQ-033 |
CONFigure:CURRent:AC\|DC [<range>[,<resolution>]][,(@<ch_list>)] |
DM301 channels 21/22 and DM309 current channels only |
CR-DAQ-034 |
CONFigure:FREQuency\|PERiod [<range>[,<resolution>]][,(@<ch_list>)] |
Auto range only; value ignored |
CR-DAQ-035 |
CONFigure:DIODe [(@<ch_list>)] |
|
CR-DAQ-036 |
CONFigure:CAPacitance [<range>[,<resolution>]][,(@<ch_list>)] |
1 nF to 100 µF |
CR-DAQ-037 |
CONFigure:TEMPerature … |
Thermocouple / RTD / thermistor |
CR-DAQ-038 |
CONFigure:STRain:… |
Direct / quarter / half / full bridge |
CR-DAQ-039 |
CONFigure:TOTalize |
DM307 |
CR-DAQ-040 |
CONFigure:DIGital[:BYTE], CONFigure:DAC:OUTPut, CONFigure:DAC:SENSe |
DM307 |
Example, verbatim from the manual: CONF:RES 10k,(@101)
MEASure:…? configures and immediately returns a value. Same parameter shapes as CONFigure.
| ID | Query |
|---|---|
CR-DAQ-050 |
MEASure:RESistance\|FRESistance? [<range>[,<resolution>]][,(@<ch_list>)] — e.g. MEAS:RES? 10k,(@101) |
CR-DAQ-051 |
MEASure[:VOLTage]:AC\|DC? … |
CR-DAQ-052 |
MEASure:CURRent:AC\|DC? … |
CR-DAQ-053 |
MEASure:FREQuency\|PERiod? … |
CR-DAQ-054 |
MEASure:DIODe? [(@<ch_list>)] |
CR-DAQ-055 |
MEASure:CAPacitance? … |
CR-DAQ-056 |
MEASure:TEMPerature? … |
CR-DAQ-057 |
MEASure:TOTalize?, MEASure:DIGital[:BYTE]?, MEASure:DAC:OUTPut?, MEASure:DAC:SENSe? |
CR-DAQ-058 |
MEASure:STRain:…? |
| ID | Command | Description |
|---|---|---|
CR-DAQ-060 |
ROUTe:CLOSe (@<ch_list>) / ROUTe:CLOSe? (@<ch_list>) |
Closes the specified channels. Allows multiple channels closed simultaneously. Does not open anything else |
CR-DAQ-061 |
ROUTe:CLOSe:EXCLusive (@<ch_list>) |
Closes the channel and opens all other channels on the same bank (break-before-make) |
CR-DAQ-062 |
ROUTe:OPEN (@<ch_list>) / ? |
Opens the specified channels |
CR-DAQ-063 |
ROUTe:DONE? |
Returns 1 when all relay operations are finished |
CR-DAQ-064 |
ROUTe:SCAN (@<ch_list>) / ? |
Defines the scan list. ROUTe:SCAN (@) clears it |
CR-DAQ-065 |
ROUTe:SCAN:SIZE? |
Number of channels in the scan list |
CR-DAQ-066 |
ROUTe:MONitor (@<ch_list>) / ? |
Channel to monitor continuously. Only one at a time |
CR-DAQ-067 |
ROUTe:MONitor:STATe <Boolean> / ? |
Enable monitor mode |
Mandatory design rules for the route layer:
CR-DAQ-061 (ROUTe:CLOSe:EXCLusive). Plain ROUTe:CLOSe leaves previously closed channels closed, which on a harness fixture means unintended pin-to-pin connections. Emitting ROUTe:CLOSe must require an explicit, reviewed multi-point intent that has been checked against the forbidden-combination table.ROUTe:DONE?, never on a fixed sleep.| ID | Command | Parameters |
|---|---|---|
CR-DAQ-070 |
[SENSe:]RESistance\|FRESistance:NPLCycles <PLCs> [,(@<ch_list>)] / ? |
0.02 to 200 |
CR-DAQ-071 |
[SENSe:]RESistance\|FRESistance:APERture <seconds> / ? |
Integration time in seconds |
CR-DAQ-072 |
[SENSe:]RESistance\|FRESistance:APERture:ENABle <state> / ? |
Use aperture instead of NPLC |
CR-DAQ-073 |
[SENSe:]RESistance\|FRESistance:OCOMpensated <state> / ? |
Offset compensation — cancels thermal EMF. e.g. RES:OCOM ON,(@101) |
CR-DAQ-074 |
[SENSe:]RESistance\|FRESistance:POWer:LIMit[:STATe] <state> / ? |
Low-power mode — prevents self-heating |
CR-DAQ-075 |
[SENSe:]RESistance\|FRESistance:RANGe <range> / ? |
100 Ω to 100 MΩ |
CR-DAQ-076 |
[SENSe:]RESistance\|FRESistance:RANGe:AUTO <state> / ? |
OFF | ON | ONCE |
CR-DAQ-077 |
[SENSe:]RESistance\|FRESistance:ZERO:AUTO <state> / ? |
OFF | ON | ONCE |
For milliohm-level harness continuity, prefer
FRESistance(4-wire) withOCOMpensated ON. The datasheet warns that 2-wire without a math null adds 2 Ω of error, and module thermal offset is <1–4 µV, which at 1 mA test current is ~1–4 mΩ. Both settings belong in the reviewed recipe, not in driver defaults.
Other SENSe branches follow the same shape: [SENSe:]FUNCtion[:ON], AVERage:*, VOLTage:* (incl. [SENSe:]VOLTage[:DC]:IMPedance:AUTO), CURRent:*, FREQuency|PERiod:*, TEMPerature:*, STRain:*, TOTalize:*, CAPacitance:*, DIODe:ZERO:AUTO, DIGital:DATA…?.
| ID | Command | Parameters |
|---|---|---|
CR-DAQ-080 |
TRIGger:SOURce IMMediate\|TIMer\|EXTernal\|BUS\|ALARm1..4 / ? |
IMM scans immediately after INITiate; TIM uses TRIGger:TIMer; EXT waits for a TTL pulse on the rear-panel Ext Trig input; BUS waits for *TRG |
CR-DAQ-081 |
TRIGger:COUNt <count>\|MIN\|MAX\|DEF\|INFinity / ? |
1 to 1,000,000, or INFinity (scans until ABORt) |
CR-DAQ-082 |
TRIGger:TIMer <seconds>\|MIN\|MAX\|DEF / ? |
0 to 360000 s, 1 ms resolution |
CR-DAQ-083 |
TRIGger:SLOPe POSitive\|NEGative / ? |
External trigger edge. Only relevant with TRIGger:SOURce EXTernal |
| ID | Command | Parameters |
|---|---|---|
CR-DAQ-090 |
CALCulate:LIMit:LOWer <value> [,(@<ch_list>)] / ? |
−1.0E+9 to 1.0E+9 |
CR-DAQ-091 |
CALCulate:LIMit:UPPer <value> [,(@<ch_list>)] / ? |
−1.0E+9 to 1.0E+9 |
CR-DAQ-092 |
CALCulate:LIMit:STATe <Boolean> [,(@<ch_list>)] / ? |
Per-channel limit testing |
CR-DAQ-093 |
CALCulate:SCALe:GAIN / :OFFSet / :STATe |
Mx+B scaling |
CR-DAQ-094 |
CALCulate:AVERage:ALL? / :AVERage? / :MINimum? / :MAXimum? / :COUNt? / :CLEar |
Statistics |
CR-DAQ-095 |
CALCulate:SMOothing:RESPonse / :STATe |
CALCulate:LIMitdoes not replace application-side pass/fail. Unlike the 2831E, the DAQ can evaluate limits — but the run record must still store the raw reading and the application must still compute the verdict. Instrument limit state may be used for alarm outputs and early abort, never as the sole recorded verdict.
| ID | Command | Description |
|---|---|---|
CR-DAQ-100 |
SYSTem:CTYPe? <slot> |
Queries the module installed in slot 1–3. e.g. SYST:CTYP? 1 |
CR-DAQ-101 |
SYSTem:ERRor? |
Queries and clears the next error — code and message string |
CR-DAQ-102 |
SYSTem:SERial? |
Instrument serial number |
CR-DAQ-103 |
SYSTem:VERSion? |
SCPI version |
CR-DAQ-104 |
SYSTem:LFRequency? |
Detected power line frequency (50 or 60 Hz) |
CR-DAQ-105 |
SYSTem:CPON |
Card power on — reinitializes the plug-in modules |
CR-DAQ-106 |
SYSTem:LOCal / SYSTem:REMote |
Front panel unlock / lock |
CR-DAQ-107 |
SYSTem:PRESet |
|
CR-DAQ-108 |
SYSTem:RELay:CYCLes? / :CLEar / :FACTory? |
Relay cycle counters — preventive-maintenance data |
CR-DAQ-109 |
SYSTem:TEMPerature?, SYSTem:UPTime?, SYSTem:DATE, SYSTem:TIME, SYSTem:TIME:SCAN? |
|
CR-DAQ-110 |
SYSTem:SLOT:LABel, SYSTem:WMESsage, SYSTem:ALARm?, SYSTem:BEEPer…, SYSTem:CLICk:STATe |
|
CR-DAQ-111 |
SYSTem:SCPi:MODE, SYSTem:SCPi:AUTO:SAVE, SYSTem:PERSona… |
Emulation/identity spoofing — do not change |
CR-DAQ-112 |
SYSTem:COMMunicate:LAN:DHCP\|IPADdress\|SMASk\|GATeway\|DNS\|HOSTname\|MAC?\|DOMain?\|WINS\|UPDate\|TIMeout |
LAN configuration |
CR-DAQ-113 |
SYSTem:COMMunicate:LAN:TCP:ENABle / :TCP:PORT |
Raw socket. Manual example port 5025 |
CR-DAQ-114 |
SYSTem:COMMunicate:LAN:TELNet:ENABle\|PORT\|ECHO\|TIMeout\|PROMpt\|WMESsage |
Telnet. Default port 5024 |
CR-DAQ-115 |
SYSTem:COMMunicate:LAN:WEB:ENABle |
Web interface on/off |
CR-DAQ-116 |
SYSTem:COMMunicate:GPIB:ADDRess |
0–30, default 15 |
CR-DAQ-100andCR-DAQ-101change what the application can guarantee.SYSTem:CTYPe?lets the app verify the installed module in each slot at connect time and refuse to run if the configuration does not match the reviewed channel map.SYSTem:ERRor?gives real error reporting — drain the queue after every command batch. Neither has an equivalent on the 2831E.
CR-DAQ-111SYSTem:PERSonachanges the identity string the instrument reports. It must never be used: it would defeat the identity check the project depends on.Security: Telnet (
CR-DAQ-114) and the web interface (CR-DAQ-115) should be disabled on a production station unless IT approves otherwise, and the decision recorded (P0-DOC-01OBS-006).
DATA:LAST?, DATA:POINts?, DATA:POINts:EVENt:THReshold, DATA:REMove? (ch. 9) · DIGital:INTerface:MODE\|DATA:OUTPut\|DATA:SETup (ch. 10) · DISPlay, DISPlay:TEXT, DISPlay:TEXT:CLEar (ch. 11) · FORMat:READing:ALARm\|CHANnel\|DATE\|TIME\|TIME:TYPE\|UNIT (ch. 12) · HCOPy:SDUMp:DATA?\|FORMat screen dump (ch. 13) · MMEMory:FORMat:READing:*, MMEMory:LOG[:ENABle] (ch. 15) · OUTPut:ALARm:CLEar\|MODE\|SLOPe (ch. 16) · SOURce:CURRent\|VOLTage\|MODE\|MODE:LOCK\|DIGital:DATA[:BYTE]\|:WORD (ch. 19, DM307) · STATus:ALARm\|OPERation\|QUEStionable :CONDition?\|:ENABle\|[:EVENt]?, STATus:PRESet (ch. 20).
FORMat:READing:CHANnel ONis strongly recommended. It prefixes each value with its channel number, so a returned block cannot be silently mis-associated with the wrong harness pin. LikewiseFORMat:READing:DATE/TIMEfor traceable run records.
*RST # CR-DAQ-002 clears scan list and config
SYST:ERR? # CR-DAQ-101 drain the error queue
*IDN? # CR-DAQ-001 record serial + firmware
SYST:CTYP? 1 # CR-DAQ-100 verify module in each slot
SYST:LFR? # CR-DAQ-104 read line frequency, do not assume
FORM:READ:CHAN ON # CR-DAQ-... channel number with every reading
CONF:FRES 100,(@101:110) # CR-DAQ-031 4-wire, reviewed range
FRES:OCOM ON,(@101:110) # CR-DAQ-073 cancel thermal EMF
FRES:NPLC 10,(@101:110) # CR-DAQ-070 reviewed integration time
ROUT:SCAN (@101:110) # CR-DAQ-064 reviewed scan list
TRIG:SOUR BUS # CR-DAQ-080
TRIG:COUN 1 # CR-DAQ-081
INIT # CR-DAQ-021
*TRG # CR-DAQ-007
FETC? # CR-DAQ-022
SYST:ERR? # CR-DAQ-101 confirm no error was raised
This sequence is TRANSCRIBED, not APPROVED. The channel list is illustrative — real channels require the fixture map (T-04) and the module list (T-08).
| ID | Item | Status |
|---|---|---|
CR-DAQ-OPEN-01 |
SYSTem:CTYPe? response string format |
Not shown in the programming manual — capture it on the bench |
CR-DAQ-OPEN-02 |
SYSTem:ERRor? error-code table |
Not in the programming manual |
CR-DAQ-OPEN-03 |
Exact per-module channel numbering (which channel numbers are the DM301 current channels; the manual body says current is on channels 21 and 22 of DM301, i.e. (@121)/(@122) in slot 1 — confirm on the bench before use) |
Partly documented, needs confirmation |
CR-DAQ-OPEN-04 |
Default raw-socket port on the installed unit (manual example uses 5025) | Confirm by query |
CR-DAQ-OPEN-05 |
R? block-data format (#279…) parsing rules |
Confirm on the bench |