+086-15305925923

K-WANG

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 | 328 visit: | 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).


  • ABB 216AB61 Industrial Control Module for Automation Systems
  • ABB 5SHX1060H0003 High Power Thyristor Module for Industrial Power Control
  • ABB 07KT97H3 PLC Central Processing Unit for Industrial Automation
  • ABB 3BHB005171R0101 Power Semiconductor Module for Industrial Power Systems
  • KEBA E-SP-CCEC/A/22 - Keyboard Panel
  • KEBA ERHL33 - Module
  • KEBA K-FTC-AN/B - Control Panel Board
  • KEBA DO321 1914D-0 - Digital Output Module
  • KEBA T70Q - Teach Pendant
  • KEBA BL272/A / BL272/B - Bus Coupling Module
  • KEBA T70R - Teach Pendant
  • KEBA PRONET-E-20A-K - Servo Drive
  • KEBA T55-RA0-AU0-LK - Mobile HMI KeTop
  • KEBA DO-272/A - Digital Output Module
  • KEBA PS240/A - Power Supply Module
  • KEBA 2134-00393 - Module Code
  • KEBA E-10-ANALOG-SU - Analog Card
  • KEBA 1904D-0 / D1458E - E-10 Analog Card
  • KEBA FM265A - Function Module
  • KEBA CR17910086 - Controller Board
  • KEBA C5G-TP5WC2 - Robot Teach Pendant
  • KEBA PD242A - Power Supply Module
  • KEBA DI-325 - Digital Input Card
  • KEBA C2-TM-240/A - Digital Input Module
  • KEBA D1547C - I/O Bus Coupling Board
  • KEBA CR-092 - Interface Module
  • KEBA 3HAC023195-003 - IRC5 Teach Pendant Cable
  • KEBA KETOP-T150-MA0 - Mobile HMI
  • KEBA KC-P30-EC24011 - Control Module
  • KEBA 1770B-1 - E-8-THERMO Card
  • KEBA T20T-T00-AR0-CE6 - KeTop Terminal
  • KEBA D1633C-1 - CPU Card
  • KEBA HT401-232-8/0 - Teach Pendant
  • KEBA AO-570 - Analog Output Module
  • KEBA T10-mAb-DMV - Handheld Terminal
  • KEBA C70-rqa-AK0-Le - KeTop Teach Pendant
  • KEBA 1918F-0 - Digital Output Board
  • KEBA T10-mAa-DMV - Handheld Terminal
  • KEBA HT2-SCHLUSSELS - Key Switch for HT2
  • KEBA T100-003-CES - HMI Terminal
  • KEBA GVME610IO - I/O Module
  • KEBA HT501-231 - Teach Pendant
  • KEBA E-CG-CONTROL - Graphic Control Card
  • KEBA D1420F - F-SIC-1 Circuit Board
  • KEBA E-ANA-SUB2 - Analog Sub-module
  • KEBA HT401-222-4 - Teach Pendant
  • KEBA II030 - Input Module
  • KEBA T155-M10-AN0-W - KeTop Mobile HMI
  • KEBA CP088-B - Processor Module
  • KEBA HT40123280 - Operating Terminal
  • KEBA HT4222 - Handheld Terminal
  • KEBA H24025369 - Replacement Part
  • KEBA H24024891 - Replacement Part
  • KEBA SR161 - Analog Input Card
  • KEBA 1762A - E-CRT/EL Circuit Board
  • KEBA T50-011-CES-CE5 - Operator Terminal
  • KEBA E-CON-ELD/B/15 - Control Panel
  • KEBA E-8-THERMO - Thermocouple Card
  • KEBA 330/A-1211-20 - Axis Module
  • KEBA T55-maw-AU0-CE6 - Mobile HMI
  • KEBA C150-110-AK0-N - KeTop HMI
  • KEBA HT4-20656 / HT4-221 - Handheld Terminal
  • KEBA 18658-1 - Analog Board
  • KEBA LM64P89 - LCD Display Screen
  • KEBA E-CPU-88-A - CPU Board
  • KEBA D-CE/59718/15 - Control Board
  • KEBA KC-P30-ES2400E2-E00 - Control Module
  • KEBA 3HAC12929-1 - Teach Pendant SX TPU
  • KEBA E-CON-CC100/A - Control Panel Engel
  • KEBA T200-M01-P20-WES7 - Panel PC Windows Embedded
  • KEBA KC-P30-ES2400B2-M0R - KeControl C3 Module
  • KEBA E8ANALOGC - Analog Card
  • KEBA E-CPU-88-B - CPU Board
  • KEBA T55-raw-AU0-CE6 - Mobile HMI
  • KEBA D1633C - CPU Board
  • KEBA T55-MAW-Au0-CE6 - Mobile HMI
  • KEBA 3HAC11266-4 - Teach Pendant Cable
  • KEBA T20e-m00-Br0-C - Handheld Terminal
  • KEBA E-3-ACU-INC - Controller Board
  • KEBA E-PS-24V - Power Supply Module 24V
  • KEBA C55-2aw-1U0-R - Control Unit
  • KEBA T70-qqu-Aa0-LK - KeTop Teach Pendant
  • KEBA PS244 - Power Supply Module
  • KEBA ECPU186B - CPU Circuit Board
  • KEBA E-8-ANALOG/C - Analog Input Card Engel
  • KEBA AT-4041 - KeControl C3 Controller
  • KEBA T50-ADP - Adapter Module
  • KEBA CP088/D - Control Processor Module
  • KEBA CU312 - Central Unit Module
  • KEBA K2-400 SC440/A - Communication Module
  • KEBA CU212 - Power Supply Module
  • KEBA T20T-T00-AR0-C - KeTop Handheld Terminal
  • KEBA HT4014X20B21572 - Teach Pendant
  • KEBA HT4010V4X201K4 - Operating Terminal
  • KEBA HT401/NC-4X20/20844 - Handheld Terminal
  • KEBA RS-091 / RS091A - Remote Station Module
  • KEBA E8THERMOA - Thermocouple Input Card
  • KEBA TI-570 - Temperature Input Module
  • KEBA C35E 10m/79421/02 - KeTop Teach Pendant
  • KEBA T40-001/58599/06 - Teach Pendant
  • KEBA CR17910087 C5G-GTP5 - Controller Board
  • KEBA T20E-R00-AR0-C - Handheld Terminal
  • KEBA 3HAC023195-001 /02 - Teach Pendant Unit
  • KEBA AR281 - Analog Input Module Engel
  • KEBA D3-DA330/A-0611-20 - D3 Axis Module
  • KEBA CU313 / C-SICU313KEB - Control Unit
  • KEBA k2-700 - Kemro Control System
  • KEBA CU211 - Central Unit Power Supply Module
  • KEBA C5G-TP5WC - Robot Teach Pendant
  • KEBA C100D-CE - Control Panel
  • KEBA D3-DR361/D-6341-30 - D3 Drive Module
  • KEBA D3-DP/A-1000-0 - D3 Supply Module
  • KEBA SXTPU-21664 - Teach Pendant Unit
  • KEBA T70-rqa-AK0-LK - KeTop Touch Screen Glass Panel
  • KEBA C10-1aa-abb - Control Terminal
  • KEBA T50-T41-CPU - CPU Module
  • KEBA 3HAC023195-001 - IRC5 Sx TPU 2 Teach Pendant Controller
  • KEBA D3-DA 330/A-1211-00 - D3 Axis Module
  • KEBA K2-200 250/X (71580) - Processor Module
  • KEBA O70-bra-A0a-F - Operator Panel
  • Creative Duster Vinyl Brush - Record Stylus Cleaner Brush
  • KEBA 3HAC12929-1/04 - Touch Panel Touchscreen Glass Replacement
  • KEBA OP350/Y-1016 - Keyboard Membrane Protective Film K2-200
  • KEBA DO 321/B - Digital Output Card
  • KEBA DI 325/B - Digital Input Module
  • KEBA E-16-DIGOUT-PLUS (D1456E-2) - Digital Output Board
  • KEBA AI 240/A (068370) - Kemro K2-200 Analog Input Module
  • KEBA TM 220/A (066676) - Kemro K2-200 Module