K-WANG

+086-15305925923
Service expert in industrial control field!
NameDescriptionContent
Adequate Inventory, Timely Service
pursuit of excellence 
Ship control system
Equipment control system
Power monitoring system
Current position:
新闻动态
newS
   
Brand

Tektronix AFG1022 Function Generator

From: | Author:Wang | Time :2025-11-21 | 532 visit: | 🔊 Click to read aloud ❚❚ ▶ | Share:



Tektronix AFG1022 Function Generator

Basic Information

Tektronix has released an official programming guide for the AFG1022 dual channel function generator, with the core goal of guiding users to achieve instrument automation control through SCPI (Standard Commands for Programmable Instruments), suitable for engineers who need to integrate AFG1022 into testing systems such as production line testing and laboratory automation.

Product core parameters: 2 independent channels, with a maximum bandwidth of 120MHz per channel, supporting 11 waveforms including sine wave, square wave, pulse wave, etc;

Supporting interfaces: GPIB (compliant with IEEE 488.2 standard), USB-TMC (USB 2.0 High Speed, compatible with USBTMC protocol);

Software compatibility: Supports mainstream VISA libraries such as TekVISA and NI-VISA, and can be called through programming languages such as Python, C #, LabVIEW, etc;

Document structure: Organized according to the sequence of "Command Fundamentals ->Function Control ->Interface Configuration ->Error Handling ->Appendix", containing a large number of command examples and code snippets.


SCPI Command Fundamentals (Programming Control Premiere)

1. Command structure and syntax rules

The SCPI command of AFG1022 adopts a hierarchical structure, separated by colons (:) to facilitate functional classification and memory. The core rules are as follows:

Example of Specific Explanation of Rule Categories

Hierarchical structure root command (e.g. SOURce)+sub command (e.g. FREQuency), channels can be omitted (default channel 1) Control channel 1 frequency: SOURce: FREQ 1000 (or SOURce: FREQ 1000); Control channel 2: SOURce2: FREQ 2000

Case sensitivity commands are not case sensitive, and parameter enumeration (such as ON/OFF) is also not sensitive: SOURce: WAVEform SIN is equivalent to: source: Waveform sin

The space rule allows for the addition of spaces between commands and parameters, as well as between parameters, without affecting parsing. SOURce: FREQ 1000 is equivalent to SOURce: FREQ 1000

The abbreviation rule command can use the first 3 characters for abbreviation (some commands support longer abbreviations): SOURce can be abbreviated as: SOU,: FREQuency can be abbreviated as: FRE

2. Command types and data formats

Command type:

Set command: used to configure instrument parameters, in the format of "command+parameter", with no return value;

Example: SOURce: VOLTage: AMPity 5 (set channel 1 amplitude to 5Vpp).

Query command: used to read the current parameters of the instrument, in the format of "command+question mark (?)", and return the corresponding value;

Example: SOURce: VOLTage: AMPlity? (Query the current amplitude of channel 1 and return "5.000000e+00").

Data format:

Example of Data Type Format Requirements

Numerical type supports integer (1000), decimal (1.234), Scientific notation (1e6) frequency setting: SOURCE: FREQ 1.234e6 (1.234MHz)

String type needs to be enclosed in double quotation marks ("), supporting letters, numbers, and special characters. Save settings: SYSTem: SETup: SAVE" MY_STUP1“

Enumeration type predefined options that require strict matching (case insensitive) waveform selection: SOURce: WAVEform SQUare, SOURce: WAVEform TRIangle

Core functional programming control (divided by functional modules)

1. Basic waveform generation and parameter control

AFG1022 supports 11 standard waveforms, and can select waveform types and configure core parameters (frequency, amplitude, DC offset, etc.) through SCPI commands. The parameter range and corresponding commands are as follows:

Function module core parameter range control command (channel 1 as an example) query command

11 types of waveform selection, including sine wave (SINusoid), square wave (SQUare), pulse wave (PULSe), etc.: SOURCE: WAVEform SINusoid: SOURCE: WAVEform?

Frequency setting output frequency: 0.1Hz~120MHz (sine wave/square wave); 0.1Hz~10MHz (pulse wave): SOURce: FREQuency 1000 (1kHz): SOURce: FREQuency?

Amplitude setting peak to peak amplitude of 10mVpp~20Vpp (50 Ω load); 20mVpp~40Vpp (high impedance load): SOURce: VOLTage: AMPlity 5 (5Vpp): SOURce: VOLTage: AMPlity?

DC offset DC offset voltage ± 10V (50 Ω load); ± 20V (high impedance load): SOURce: VOLTage: OFFset 2 (+2V): SOURce: VOLTage: OFFset?

Square wave duty cycle, such as wave height to level ratio of 10% to 90% (frequency ≤ 10MHz): SOURce: PULSe: DCYCle 50 (50%): SOURce: PULSe: DCYCle?

2. Advanced Function Control

(1) Modulation function (AM/FM/PM)

Support amplitude modulation (AM), frequency modulation (FM), phase modulation (PM), configurable modulation source (internal/external), modulation depth and other parameters:

Enable modulation: SOURce: MOD: STATe ON;

Select modulation type: SOURce: MOD: TYPE AM (AM modulation);

Configure internal modulation source frequency: SOURce: MOD: INTernal: FREQ 100 (100Hz modulation signal);

Configure AM modulation depth: SOURce: MOD: AM: DEPTh 50 (50% modulation depth).

(2) Trigger and synchronization

Supports internal triggering (continuous output), external triggering (controlled by external signals), and software triggering, suitable for synchronous multi device testing:

Select trigger source: TRIGger: SURce EXTernal (external trigger, trigger signal connected to TRIG IN interface of Rear panel);

Set trigger edge: TRIGger: EDGE RISING (rising edge trigger);

Execute software trigger: TRIGger: IMMediate (immediately trigger output once);

Trigger delay: TRIGger: DELay 0.1 (output delayed by 0.1 seconds after triggering).

(3) Setting up storage and calling

The current instrument configuration (waveform, parameters, modulation, etc.) can be saved to the internal storage area (supporting 10 user settings), and can be directly called later:

Save settings: SYSTem: SETup: SAVE "SET1", 1 (Save current settings as "SET1", Store location 1);

Call settings: SYSTem: SETup: LOAD 1 (setting to call storage location 1);

Delete setting: SYSTem: SETup: DELETE 1 (delete storage location 1 setting).

3. Multi channel control (AFG1022 has 2 channels)

Two channels are independently controllable, and channel 2 can be distinguished by adding 2 in the command. The example is as follows:

Channel 2 waveform selection: SOURce2: WAVEform TRIangle (Channel 2 outputs triangular waves);

Channel 2 frequency setting: SOURce2: FREQ 2000 (channel 2 frequency 2kHz);

Channel synchronization: SOURce: SYNC: STATe ON (synchronizes channel 2 with channel 1 in phase).


Interface configuration and communication implementation

1. Supported communication interfaces

AFG1022 provides two programming interfaces to meet different testing system requirements:

Advantages of Interface Type Standard Protocol Hardware Requirements

GPIB IEEE 488.2 requires GPIB cards (such as NI GPIB-US-HS) with strong anti-interference capabilities, suitable for industrial environments

USB-TMC USB 2.0 High Speed+USBTMC standard USB cable (A-B type) plug and play, no additional hardware required

2. Communication parameter configuration

GPIB interface: default address is 22, baud rate is 115200, data bit is 8, stop bit is 1, checksum is None; The address can be modified by the command: SYSTem: GPIB: DDRess 23 (set to 23).

USB-TMC interface: No manual parameter configuration is required, the system automatically recognizes it as a "USBTMC device" and can be directly connected through the VISA library (the resource name is usually USB0:: 0x0699:: 0x0368: C012345:: 0:: INSTR).

3. Typical Communication Example (Python+pyvisa)

Taking "Generate 1kHz sine wave and query amplitude" as an example, the steps are as follows:

Install dependency library: pip install pyvisa pyvisa py;

Write code:

python

Import pyvisa # Import VISA library

# 1. Initialize Resource Manager

rm = pyvisa.ResourceManager()

# 2. Connect AFG1022 (resource name can be queried through rm.list_desources())

afg = rm.open_resource("USB0::0x0699::0x0368::C012345::0::INSTR")

# 3. Send command: Channel 1 outputs a 1kHz sine wave with an amplitude of 5Vpp

Afg.write ("SOURce: WAVEform SINusoid") # Select sine wave

Afg.write ("SOURce: FREQuency 1000") # Frequency 1kHz

Afg.write ("SOURce: VOLTage: AMPlity 5") # amplitude 5Vpp

Afg. write (": OUTPut: STATe ON") # Enable output

# 4. Query the current amplitude

amplitude = afg.query(":SOURce:VOLTage:AMPlitude?")

Print (f "Current amplitude: {amplitude} Vpp")

# 5. Close connection

afg.close()

rm.close()

Generating


Error handling and debugging

1. Error code query and parsing

When the instrument executes a command error (such as parameter out of range, syntax error), an error code will be recorded, which can be queried and located through the command:

Query error: SYSTem: ERRor? (Return format: -221, "Parameter out of range");

Common error code parsing:

Error code, error description, possible causes, and solutions

-221 Parameter out of range Check if the parameter is within the specified range (e.g. frequency ≤ 120MHz)

-102 Syntax error command syntax error check command spelling (e.g. SOURce: FREQ mistakenly written as SOURce: FRE)

-256 Calibration required: The instrument has not been calibrated and the accuracy of the parameters cannot be guaranteed. Execute the calibration command (SYSTem: CALibrate) or contact after-sales service

0 No error command executed successfully-

2. Status Register and Status Query

By reading the status register, the current working status of the instrument can be obtained (such as whether it is outputting or triggering):

Operation status query: Status: Operation: CONDition? (Return 1 indicates normal operation, 0 indicates standby);

Event status query:: Status: EVENT: CONDition? (Return the event status code, such as 8 indicating trigger completion).

3. Debugging tools

Command echo: When enabled: SYSTem: ECHO ON, the instrument will return the received command for confirmation of whether the command was sent correctly;

Grammar check: Before sending a command, you can check the syntax using the command SYSTem: HECK: CMD (e.g. SYSTem: HECK: CMD ": SOURce: FREQ 1000");

Timeout setting: Set a timeout in the VISA library (recommended ≥ 1000ms) to avoid communication interruption caused by long command execution time (such as afg. timeout=2000).


Appendix Resources

Command index: a complete list of commands classified by "Source", "Trigger", and "System", including parameter descriptions and examples;

Example program: In addition to Python, it also provides control examples for C # and LabVIEW, covering scenarios such as waveform generation, modulation, and triggering;

VISA library compatibility: It explicitly supports TekVISA 4.0+and NI-VISA 5.0+, and it is not recommended to use older versions;

Firmware version description: Command differences between different firmware versions (such as some advanced commands requiring firmware ≥ 1.5.0).


  • Siemens 6SL3244-0SA01-1AA0 - SINAMICS G120 Control Unit
  • DANFOSS 175Z2688 - COATEDE CONTROLUNIT VLT5000
  • SIEMENS 6FM1721-3AA20 - Positioning Module
  • REXORTH VTS0605 PVAR S21 - Drive Module
  • BECKHOFF 2915-0000 - Control Module
  • COOPER EATON CGLine 400 40071347901 - CEAG CG Controller
  • SIEMENS 3UF5031-3AN00-1 - SIMOCODE DP Basic Unit
  • SIGMATEK DNC305 05-011-305 - Drive Controller
  • Multivac MV1 10249768 - Control Module
  • SCHNEIDER ELECTRIC MES114 59646 & 59645 - Circuit Breaker Accessory
  • CAMILLE BAUER CAPAX 44-580-0012 - Transmitter
  • HENGSTLER VT360P LS1/TOK - Encoder
  • BURKERT 8792 - 24V DC IP65 / IP67 Positioner
  • SENSOPART V10-OB-A1-W6 - Vision Sensor
  • ALLEN-BRADLEY 1762-L40BXB SER.C REV.J - MicroLogix 1200 Controller
  • HITACHI CPU22-02HC 33025801-2 - CPU Module
  • HITACHI AGH-0 33034810-2 - Control Board
  • PHILIPS AIH110 VER 1.0 - Control Module
  • BAUMULLER DO8000 - Drive Controller
  • B&R PS477 3PS477.9 Rev.C0 - Power Supply
  • ABB ALFA LAVAL 200-CISB - Communication Interface 2 x SatBus
  • Moeller MI4-570-TA1 - HMI Operator Panel
  • ABB ACH550-01-06A9-4+B055 - Variable Frequency Drive
  • ABB TPU2 3HNE00313-1 REV 12 - Teach Pendant Unit
  • Schneider Electric BRS368H130ABA - Stepper Motor
  • Foxboro FCM100E P0972ZA - I/A Series Communication Module
  • Siemens 6ES7 450-1AP00-0AE0 6ES7450-1AP00-0AE0 - Simatic S7 Version:04 Counter Module
  • Schneider Electric ATV320U07N4W - Altivar Machine Drive
  • Priva TouchPoint Flush V06:02 5060002 - Control Panel
  • Lenze ESMD402L4TXA - 4kW SMD Inverter Drive
  • Lenze ESMD402L4TXA - 4kW SMD Inverter Drive
  • Schneider Electric PM210 PM210MG - Powerlogic Power Meter
  • ASCOM U982-DB/1C U982 - Power Supply / Communication Module
  • DYADIC SYSTEMS SCN5-010-050-S03-NA - Servo Cylinder
  • Reliance Electric GMI-S04 - AC/AC CONVERTER 380/400V 50/60Hz 3.9/5.2A
  • Pro-Face GLC150-BG41-XY32KF-24V 3080060 PFXGLC150BDBP - Touch Screen HMI
  • ROFIN RSL TERMINAL V2 0185.01/03 - TERMINAL
  • HONEYWELL R7241E1077 - Burner Control / Amplifier
  • SEW MM22C-503-00 8241201 - 2.2kW Movimot Drive
  • Brand Digital III 50mL - Burette
  • Danfoss 195N0039 VLT2811PS2B20STR1DBF00A00C0 - 2.4kVA VLT Drive
  • SONY LG10-2 EK1 - Digital Gauge Indicator
  • EMERSON SKD3400750 - 7.5kW AC Drive
  • SIEMENS 6AV6 542-0AG10-0AX0 - MULTIPANEL HMI
  • TELEMECANIQUE ATV21HU55N4 - ALTIVAR21 5.5KW Variable Speed Drive
  • MITSUBISHI A985GOT-TBA-EU - GOT900 Touch Screen HMI
  • SCHNEIDER LXM32AD30N4 - Lexium 32 Servo Drive
  • SICK PSR01-1501 M20Z-02550A122 - Safety Laser Scanner
  • GECMA CHALLENGER 15-2-FMO - LITE TOUCH Monitor
  • Uniop EK02 6ZA982 - HMI Operator Panel
  • TELEMECANIQUE ATV18U54M2 - SQUARE D ALTIVAR 18 3kW Drive
  • Schneider Electric ATV312HU75S6 - 7.5kW Altivar 312 Drive
  • Siemens 6GK7243-5DX30-0XE0 6GK7 243-5DX30-0XE0 - Communications Processor
  • Schneider Electric LV432455 VIGI630 - 3POLE Earth Leakage Module
  • Rexroth PSI 6100.750 L1 R911170694-107 - frequency inverter / inverter
  • SWEDISH MICROWAVE AB Ku-Band BDC 138010-45-D0 - Block Downconverter
  • METTLER TOLEDO IND429 IND429-BB30 - Weighing Terminal
  • Siemens 6SL3210-5HE10-4UF0 - Sinamics V90 Servo Drive
  • B&R X20CP0482 Rev.D0 - X20 CPU Module
  • Mitsubishi FR-E720S-110SC-EC FRE720S110SCEC - 31A~11A Drive With Filter
  • ABB ACH580-01-026A-4 - Variable Frequency Drive
  • Siemens 6SL3210-1KE13-2AP1 - SINAMIC G120CDP 1.1kw Drive
  • Schneider Electric TM250D 4P3D LV431440 - Compact NSX250 Circuit Breaker
  • RELIANCE ELECTRIC GD.722.81.00-A 802288-74C - MAXITRON Servo Control Card
  • Uniop EK02 6ZA982 - HMI Operator Panel
  • Siemens 6SE9113-7JA13 - MICRO MASTER Junior 1.5kW Inverter
  • Mitsubishi FR-E720S-110SC-EC FRE720S110SCEC - 31A~11A Drive with Filter
  • Johnson Controls FEC2621 MS-FEC2621-0 - Field Equipment Controller
  • BENDER IR475LYT-429 - A-ISOMETER Insulation Monitor
  • Berger lahr D550 RS15 22.550-00-30b - Stepper Drive
  • Rexroth PSI 6100.750 L1 R911170694-107 - Frequency Inverter / INVERTER
  • KOYO 205 D2-06B-1 D2-240 H2-ECOM D2-08ND3 F2-08TRS - DIRECT LOGIC PLC WITH MODULE
  • TELEMECANIQUE ATV18U54M2 ATV18U54M - SQUARE D ALTIVAR 18 3kW Drive
  • Lenze 471-E1.D - Board / Controller Speed
  • Mitsubishi FR-A740-00038-EC - Frequency Inverter
  • Johnson Controls IOM3723 MS-IOM3723-0 - Input/Output Module
  • CURTIS 1238-5602 - AC Motor Controller
  • FOXBORO P0912XX REV.A - 220VAC Power Supply
  • Siemens 6SE9113-7JA13 - MICRO MASTER Junior 1.5kW Inverter
  • Mitsubishi FR-A740-00038-EC - Frequency Inverter
  • KOYO 205 D2-06B-1 D2-240 H2-ECOM D2-08ND3 F2-08TRS - DIRECT LOGIC PLC WITH MODULE
  • AUTZ M406D-00101 - Servo Motor
  • Lauer PCS095 PG095.508.BB - Operator Panel
  • ABB SCOP45SB/DX232 - SattCon OP45 SB Operator Panel
  • SEW Eurodrive MCH42A0030-5A3-4-00 MDX60A0030-5A3-4-00 - 4.8kVA Movidrive Inverter
  • BENDER IR475LYT-429 - A-ISOMETER Insulation Monitor
  • Johnson Controls FEC2621 MS-FEC2621-0 - Field Equipment Controller
  • Johnson Controls IOM3723 MS-IOM3723-0 - Input/Output Module
  • Berger lahr D550 RS15 22550-00-30b - Stepper Drive
  • SIEMENS 6FX1120-4BD03 6FX11204BD03 5702049304.00 E-Stand: A - Sinumerik Module
  • Allen-Bradley 1771-NIV B - HIGH RESOLUTION ISOLATED ANALOG SERIES Module
  • HONEYWELL XFC2D06001 - Flow Computer / Controller
  • Contraves Varidyn Compact ADB 380.90M - DC Drive 380v - 400v 90A 50kVA
  • Red Lion Control GEM52000 - Control Module
  • Siemens 6ES5 955-3NC13 - modular power supply TYPE:DIN41752
  • Danfoss ICV50 G20Mn50T / 027H5200 - Valve zaw
  • Eberle PLS508 P-814 / 2X EA-88 / A-812 / MT-81 / S-11 - PLC with Modules
  • Siemens 6ES7 314-6CF01-0AB0 6ES7314-6CF01-0AB0 - SIMATIC CPU314C-2 DP
  • EBERLE EM-525-87 EM52487 - ICE DETECTOR BASE UNIT
  • Telemecanique / Schneider TSXRKZ02 - TSX Micro automation plus 7module
  • B&R 5DLSDL.1001-00 - Display Link Receiver
  • Siemens 6FX1120-4BD03 6FX11204BD03 5702049304.00 E-Stand: A - Sinumerik Module
  • ALLEN-BRADLEY 1771-NIV A - HIGH RESOLUTION ISOLATED ANALOG SERIES Module
  • ALLEN-BRADLEY 1771-NIV B - HIGH RESOLUTION ISOLATED ANALOG SERIES Module
  • Contraves Varidyn Compact ADB 380.90M - DC Drive 380V - 400V 90A 50kVA
  • Contraves Varidyn Compact ADB 380.90M - DC Drive 380V - 400V 90A 50kVA
  • Ropex RES-202 - Resistron Temperature Controller
  • HONEYWELL XFC2D06001 - Flow Computer / Controller
  • Telemechanics ATV452U40 - DIMMER ALTIVAR5 SERIES 452 4kW 5HP Frequency Inverter
  • VEGA VEGAPLUS61 PS61.XXAGPHAMAX - Radar Level Sensor
  • BRANSON ULTRASONIC TRANSDUCER - Ultrasonic Transducer
  • Danfoss ICV50 G20Mn50T / 027H5200 - Valve Valvola Zaw
  • Schneider Electric 2001549/1 GALAXY PW 5102851200 NT07 - panler card
  • REXROTH VT3006-36 A - Proportional Valve Amplifier
  • Allen-Bradley 1746-OBP16 SERIES:C - SLC 500 OUTPUT MODULE
  • SCHNEIDER LXM32MD12N4 - Lexium 32 Servo Drive
  • Schneider Electric ATV630U22N4 - 2.2KW Altivar Process Drive
  • Allen-Bradley 1746-OBP16 SERIES:C - SLC 500 OUTPUT MODULE
  • Vanderlande 0E2550-00002... - Bagtrax Integrated Power Module 400V 32A
  • B&R X20CP0410 Rev.D0 - X20 CPU Module
  • VANDERLANDE 0E2550-00002 02EDD2B0100 - BAGTRAX Integrated Power Module 400V 32A
  • Rexroth R061205010 - Linear Bushing / Bearing
  • INDRAMAT TVM1.2-50-220/300-W0-220/380 - Power Supply Module
  • Vanderlande 0E2550-00002... - Bagtrax Integrated Power Module 400V 32A
  • HOMAG KEB 07F5S1A-YA00 09E5T60-1001 - Combivert Inverter WITH KEYPAID AND FILTER
  • Siemens 3RW3047-1BB14 - Soft Starter
  • Sumitomo AF-500 AF502-A40 - 0.4kW Transistor Inverter
  • Sumitomo AF-500 AF502-A40 - 0.4kW Transistor Inverter