Oscilloscope Remote control TEK emulation mode
July 27, 2021
Overview
This application note describes the features and usage of the Tektronix compatibility mode for remote control of the SIGLENT SDS5000X and SDS6000A oscilloscope series. In many cases, a SIGLENT SDS5000X/6000A scope can replace a similar Tektronix product without many changes to the existing code. Furthermore, it describes in detail the limitations of the individual emulations and the remaining differences between the emulated and the original commands.
Instrument Compatibility
An emulated instrument having fewer features than, or the same features as the SDS5000X/6000A can be replaced without special care.
However, replacing an emulated instrument having more features than the SDS5000X/6000A or features that differ from those of the SDS5000X/6000A requires additional care.
The user must:
- Ensure that the SDS5000X/SDS6000A complies with the functional requirements of the test
- Verify the application code does not use features in the emulated instrument which are not available with the SIGLENT SDS5000X/SDS6000A.
Currently supported Remote Emulation for the SDS5000X/SDS6000A | |
Manufacturer | Instrument |
Tektronix | 3 Series MDO Oscilloscopes |
MDO3000 series | |
MDO4000 series |
Command Compatibility
Most of the remote emulations in the SDS5000X/SDS6000A implement the basic commands of the original instrument. Due to functional differences in hardware and software, in certain remote emulations, the SDS5000X/SDS6000A can only be compatible with some parts.
The command table below shows the compatibility information for a command and the difference between Siglent and Tektronix:
NOTE: Parameters in red are not supported:
Command Compatibility | ||
Command Group | Command | Compatibility Description |
Acquisition | ACQuire:MODe | {SAMple|PEAKdetect|HIRes|AVErage|ENVelope} |
ACQuire:STATE | Parameter support:{RUN|STOP} | |
ACQuire:STOPAfter | Compatible | |
Horizontal | HORizontal:RECOrdlength | Value in [,250e3] will set to 250e3
Value in [250e3,1.25e6] will set to 1.25e6 Value in [1.25e6,12.5e6] will set to 12.5e6 |
HORizontal:SCAle | Timebase value is in 1-2-5 steps, not like Tektronix instruments from 400 ps to 1000 s | |
HORizontal:DELay:MODe | Compatible | |
HORizontal:DELay:TIMe | The display value of UI is the opposite of the set value, which actually takes effect | |
HORizontal:POSition | Compatible. This setting can be viewed under the menu: Utility>Reference Pos | |
Vertical | SELect:CH<x> | Compatible |
CH<x>:POSition | Compatible | |
CH<x>:SCAle | Compatible | |
CH<x>:OFFset | Compatible | |
CH<x>:PRObe:GAIN | Compatible | |
CH<x>:BANdwidth | Parameter supported:{FULl|TWENTY}
Not supported:{<NR3>} |
|
CH<x>:COUPling | Parameter support:{AC|DC}
Not supporedt:{DCREJect} |
|
CH<x>:INVert | Compatible | |
CH<x>:TERmination | Parameter supported :{FIFty|MEG}
Not supported: {<NR3>} |
|
CH<x>:LABel | All label characters are automatically capitalized | |
Trigger | TRIGger:A:TYPe | Parameter supported:
{EDGe|LOGIc|PULSe|BUS|VIDeo} |
TRIGger:A:MODe | Compatible | |
TRIGger:A:LEVel | Compatible | |
TRIGger:A:EDGE:SOUrce | Parameters in red are not supported: {CH1|CH2|CH3|CH4|D0|D1|D2|D3|D4|D5|D6|D7|D8|D9|D10|D11|D12|D13|D14|D15|LINE|AUX|RF} | |
TRIGger:A:EDGE:COUPling | Parameter supported:
{AC|DC|HFRej|LFRej|NOISErej}. Noise Reject is a single setting item in SDS5000X. When setting the coupling to NOISErej, it will set to DC and turn on the noise reject. When set to others, it will turn off the noise reject. |
|
TRIGger:A:EDGE:SLOpe | Compatible | |
Cursor | CURSor:FUNCTION | {SCREEN|WAVEform|OFF} |
CURSor:SOUrce | Parameters in red are not supported:
{CH1|CH2|CH3|CH4|REF1|REF2|REF3|REF4|MATH|BUS1|BUS2|BUS3|BUS4|D0|D1|D2|D3|D4|D5|D6|D7|D8|D9|D10|D11|D12|D13|D14|D15|AUTO} |
|
CURSor:VBArs:POSITION<x> | Compatible | |
CURSor:VBArs:HPOS<x>? | Compatible | |
Measurement | MEASUrement:IMMed:SOUrce<x> | Parameters in red are not supported:
{CH1|CH2|CH3|CH4|MATH|D0|D1|D2|D3|D4|D5|D6|D7|D8|D9|D10|D11|D12|D13|D14|D15|HIStogram|RF_AMPlitude|RF_FREQuency|RF_PHASe} |
MEASUrement:IMMed:TYPe | Parameters in red are not supported:
{AMPlitude|AREa|BURst|CARea|CMEan|CRMs|DELay|FALL|FREQuency|HIGH|HITS|LOW|MAXimum|MEAN|MEDian|MINImum|NDUty|NEDGECount|NOVershoot| NPULSECount|NWIdth|PEAKHits|PEDGECount|PDUty|PERIod|PHAse|PK2Pk|POVershoot|PPULSECount|PWIdth|RISe|RMS|SIGMA1|SIGMA2|SIGMA3|STDdev|TOVershoot|WAVEFORMS} When the type is set to DELay, it divides into the following 8 types according to the edges and direction: FRFR, FRFF, FFFR, FFFF, FRLR, FRLF, FFLR, FFLF |
|
MEASUrement:IMMed:VALue | Compatible | |
MEASUrement:IMMed:UNIts | Compatible | |
MEASUrement:IMMed:DELay:DIRection | Compatible.
It divides into the following 8 types according to the edges and direction: FRFR, FRFF, FFFR, FFFF, FRLR, FRLF, FFLR, FFLF |
|
MEASUrement:IMMed:DELay:EDGE<x> | Compatible.
It divides into the following 8 types according to the edges and direction: FRFR, FRFF, FFFR, FFFF, FRLR, FRLF, FFLR, FFLF |
|
MEASUrement:MEAS<x>:SOUrce<x> | Compatible | |
MEASUrement:MEAS<x>:TYPe | Parameters in red are not supported:
{AMPlitude|AREa|BURst|CARea|CMEan|CRMs|DELay|FALL|FREQuency|HIGH|HITS|LOW|MAXimum|MEAN|MEDian|MINImum|NDUty|NEDGECount| NOVershoot|NPULSECount|NWIdth|PEAKHits|PEDGECount|PDUty|PERIod|PHAse|PK2Pk|POVershoot|PPULSECount|PWIdth|RISe|RMS|SIGMA1|SIGMA2| SIGMA3|STDdev|TOVershoot|WAVEFORMS} When the type is set to DELay, it divides into the following 8 types according to the edges and direction: FRFR, FRFF, FFFR, FFFF, FRLR, FRLF, FFLR, FFLF |
|
MEASUrement:MEAS<x>:STATE | Compatible | |
MEASUrement:MEAS<x>:Value? | Compatible | |
MEASUrement:MEAS<x>:MEAN? | Compatible.
Valid only when statistics are turned on. Turn on the statistics by using the Siglent command or customize the default settings |
|
MEASUrement:MEAS<x>:DELay:DIRection | Compatible.
It divides into the following 8 types according to the edges and direction: FRFR, FRFF, FFFR, FFFF, FRLR, FRLF, FFLR, FFLF |
|
MEASUrement:MEAS<x>:DELay:EDGE<x> | Compatible.
It divides into the following 8 types according to the edges and direction: FRFR, FRFF, FFFR, FFFF, FRLR, FRLF, FFLR, FFLF |
|
Miscellaneous | AUTOSet | Compatible |
*RST | Compatible.
Siglent’s preset is quite different from Tektronix’s. If need, please customize the preset and save it by the steps: Save>To Default Key>Current>Save. |
|
System | LANGuage | Parameter in red is not supported:
{ENGLish|FRENch|GERMan|ITALian|SPANish|PORTUguese|JAPAnese|SIMPlifiedchinese|TRADitionalchinese|KOREan} |
TIME | Compatible | |
DATE | Compatible | |
LOCK | Compatible | |
UNLock | Compatible | |
FPANEL:PRESS | Parameter supported:
{ Runstop|SINGleseq} |
Activating Remote Emulation
In order to use a specific remote emulation, it must first be activated by the user. Activation is done either
- Manually using the SDS5000X/SDS6000A front panel
- Remotely using SCPI commands
Manual Operation
Follow the steps below:
Utility>Tek Mode, and set the mode to ON
Remote Operation
Send the following command to turn on Tek Compatibility mode:
:SYSTem:REMote:STYLe TEKtronix
Send the command back to Siglent mode:
:SYSTem:REMote:STYLe SIGLent
Example
The following program code realizes the following functions: Setting channel, triggering, and measure delay between waveforms.
Environment: Windows 7 32-bit, Python v3.6.5, pyvisa-1.9
Python Code:
import visa def main(): _rm = visa.ResourceManager()</p> sds = _rm.open_resource("TCPIP0::10.12.255.21::inst0::INSTR")</p> #Set channel parameters sds.write("SELect:CH1 ON") sds.write("SELect:CH2 ON") sds.write("CH1:SCAle 1") sds.write("CH2:SCAle 1") sds.write("CH1:POSition 0") sds.write("CH2:POSition 0") #Set the timebase sds.write("HORizontal:SCAle 2e-6") #Trigger the signal stably sds.write("TRIGger:A:TYPe EDGE") sds.write("TRIGger:A:EDGE:SOUrce CH1") sds.write("TRIGger:A:EDGE:COUPling DC") sds.write("TRIGger:A:LEVel 0") #Measure the delay between C1 and C2 sds.write("MEASUrement:MEAS3:STATE ON") sds.write("MEASUrement:MEAS3:SOUrce1 CH1") sds.write("MEASUrement:MEAS3:SOUrce2 CH2") sds.write("MEASUrement:MEAS3:TYPe DELay") sds.write("MEASUrement:MEAS3:DELay:DIRection FORWards") sds.write("MEASUrement:MEAS3:DELay:EDGE1 RISing") sds.write("MEASUrement:MEAS3:DELay:EDGE2 RISing") sds.query("MEASUrement:MEAS3:VALue?") if __name__ == "__main__": main()