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 | 505 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).


  • Honeywell Enraf 2558990-2 ARM 1 Backplane MSC Card for MSC-800 Motion Control Systems
  • Schneider BMEH586040 Modicon M580 Redundant Processor Module PLC Controller for Industrial Automation Systems
  • OMRON CQM1-TC101 Temperature Control Module PLC Unit for CQM1 Series Industrial Automation Systems
  • Allen Bradley 1771-AF Fiber Optic Converter Module 96657704 PLC Communication Interface for Industrial Automation Systems
  • Novellus IPEC SpeedFam 2805-11407 PLC Rack Assembly with Corcom 20VK1 Filter for Semiconductor CMP Equipment Control System
  • MITSUBISHI GT2512-STBA GT2512-STBD GOT2000 HMI Touch Screen Panel Display Human Machine Interface for Industrial Automation
  • OMRON E5AC-CX4A5M-014 Digital Temperature Controller Process Controller with RS-485 Communication for Industrial Automation Systems
  • SIGMATEK CCP612-K Processor Module PLC Controller Unit for C-DIAS Industrial Automation Control System
  • OMRON CJ1M-CPU13-ETN V4.0 PLC CPU Unit with Built-in Ethernet Function for SYSMAC CJ Series Industrial Automation Control System
  • EOCR-PMZ Digital Motor Protection Relay Electronic Over Current Relay for Three Phase Motor Control Systems
  • SIEMENS 6SY7000-0AC80 IGBT Transistor Module FZ1000R12KF5 Power Module for SIMOVERT MASTERDRIVES Industrial Drive System
  • OMRON C200HW-MC402-E Motion Control Unit 4 Axis PLC Module for C200H Series Position Speed and Torque Control System
  • Mitsubishi Electric 15050-PR02B PLC Circuit Board Module Industrial Automation Control Board for PLC System
  • TEXA INDUSTRIE EGO16GT1B Wall Frame Air Conditioner Industrial Cabinet Cooling Unit for PLC Control Panel Systems
  • OMRON CS1W-AD081-V1 Analog Input Unit 8 Channel PLC Special I/O Module for SYSMAC CS Series Industrial Automation Control
  • B&R X20CP0411 Compact CPU Module X20 Compact-S PLC Controller Unit with ARM Cortex-A9 Processor Industrial Automation System
  • OMRON CJ1W-NC413 V2.3 Position Control Unit 4 Axis Pulse Output NC Unit for CJ Series PLC Motion Control System
  • Toshiba H2218592 PLC Control Circuit Board Module Industrial Automation Controller Circuit Board
  • PRO-FACE GP577R-TC11 Programmable Operator Interface 10.4 Inch Touch Screen HMI Panel Industrial Automation Control Terminal
  • OMRON CS1D-DPL01 Duplex Unit for CS1D Series PLC Dual CPU Redundancy Control System Industrial Automation Module
  • OMRON V680-CA5D02-V2 RFID ID Controller Programmable Controller Interface Module Industrial Automation Identification System
  • Siemens 7ED6234-4EE12-9AC9 N1A R1A Static Three Phase Counter Protection Device Industrial Automation Measurement Module
  • Siemens 3VT8563-2AA03-2KA2 3VT Molded Case Circuit Breaker Three Pole Low Voltage Protection Device Industrial Power Distribution Guide
  • Siemens 7MH4900-3AA01 SIWAREX FTC Weighing Module for SIMATIC S7-300 ET 200M Industrial Weighing Automation System
  • OMRON K3HB-HTA-DRT1 Temperature Panel Meter DeviceNet Digital Indicator Industrial Temperature Measurement Controller Guide
  • Schneider Electric HMIST6500 Harmony ST6 10 inch Touch Panel Screen HMI Operator Interface Terminal Industrial Automation Control Display
  • OMRON C500-AD006 3G2A5-AD006 Analog Input Unit PLC Module Industrial Automation Data Acquisition System Guide
  • OMRON R88S-H306G Servo Motor AC Servo System Component Industrial Motion Control Application Guide
  • Schmersal MV10H 330-11Y-M20-1348 Belt Alignment Switch Position Monitoring Device Industrial Safety Switch Technical Guide
  • BECKHOFF CX2100-0904 Power Supply Module with Integrated UPS for CX20xx Embedded PC Industrial Automation System Guide
  • OMRON FQM1-MMA22 Flexible Motion Controller Analog I/O PLC Module Industrial Automation Control Unit Technical Guide
  • INOVANCE H3U-3624MT Programmable Logic Controller PLC CPU Module Industrial Automation Control System Guide
  • SIEMENS 6SE7036-1EE85-1HA0 Rectifier Board Drive Module Power Electronics Component Technical Guide
  • OMRON NA5-9W001B-V1 Sysmac HMI Programmable Terminal 9 Inch Touch Screen Industrial Operator Interface Technical Guide
  • ABB ACS355-01U-02A4-2 Variable Frequency Drive 230V 0.5HP 2.4A Machinery Drive Module Technical Guide
  • OMRON SYSMAC C200HS-CPU01-E Programmable Controller CPU Unit Industrial Automation Control Module Technical Guide
  • SCHNEIDER ELECTRIC XBTGT2110 Magelis GT 3.8 Inch Touchscreen HMI Terminal Operator Interface Technical Guide
  • THERMA WAVE 18-011040 Controller Assembly PLC Terminal Block Industrial Control Module Technical Guide
  • MITSUBISHI AA104VJ05 10.4 Inch LCD Control Panel Display Module for CNC Machine Tool and Industrial Controller Applications
  • CHEROKEE ACX643 REV-B Power Supply Unit 100-240VAC Industrial Power Supply Module Technical Guide
  • Allen Bradley 440F-C4000P MatGuard Control Unit Pressure Sensitive Safety Mat Controller Technical Guide
  • GENERAL ELECTRIC MMII-PD-1-2-120 Motor Manager II Intelligent Motor Protection and Control Relay Technical Guide
  • BRISTOL CONTROL 396879-01-2 ControlWave Micro CPU Module with Ethernet Communication Industrial RTU Controller Technical Guide
  • SCHNEIDER ELECTRIC HMIST6500 Harmony ST6 10 Inch Touch Panel Screen HMI Operator Terminal Technical Guide
  • SIEMENS SIMODRIVE 6SN1145-1AA01-0AA1 Infeed Module 10-25 kW 400-480 V Drive System Power Supply Unit Technical Guide
  • OMRON F150-C15E-3 Vision Mate Controller Machine Vision Sensor Processing Unit Technical Specifications and Industrial Inspection Application Guide
  • OMRON NSH5-AL001 NSH5 Series Hand-held Programmable Terminal Removable Box Interface Module Technical Guide
  • SCHNEIDER ELECTRIC TM2ALM3LT Analog Input Output Module Modicon M238 PLC Expansion Unit Technical Specifications and Application Guide
  • YAMATAKE MAH20-PC2100 Processor Module Industrial Controller CPU Unit Technical Specifications and Automation System Application Guide
  • OMRON CQM1-AD042 Analog Input Unit PLC Technical Specifications and CQM1 Series Industrial Automation Application Guide
  • KRONES BWU1703 0900853537 ASi-3 PROFIBUS Gateway Dual ASi Master Communication Module Technical Guide
  • SIEMENS 6SN1145-1BA01-0BA1 SIMODRIVE 611 Infeed Regenerative Feedback Module 16/21 kW Technical Specifications and CNC Drive Application Guide
  • OMRON CS1W-DA041 Analog Output Unit PLC Technical Specifications and SYSMAC CS Series Automation Application Guide
  • FANUC A16B-1211-0301/04A Control Board I/O PCB Technical Specifications and CNC System Application Guide
  • OMRON FND-X06H Position Driver PLC Technical Specifications and OMNUC Servo Control System Application Guide
  • Beckhoff CX1020-0111 - servo driver
  • Beckhoff CX2020-0125 - Controller Unit
  • Beckhoff EK1818 - EtherCAT Coupler 8DI 4DO 24VDC
  • Beckhoff CX2500-0030 - System Module
  • Beckhoff AM3121-0200-0001 - servo motor
  • Beckhoff C5102 - IP-4GVI63 REV:1.0 IPC
  • B&R X67AT1322 - PLC module
  • Beckhoff BK7000 - EtherCAT bus coupler
  • Beckhoff CX1100-0930 - Module
  • Beckhoff CX2500-0060 - Relay Power Capacitor Module
  • Beckhoff CX5130-0175 - Controller Module
  • Beckhoff CP6801-1006-0010 - CONTROL PANEL (US)
  • Beckhoff CX5020-0112 - Programmable Controller Module
  • Beckhoff EPP6228-0022 - EtherCAT P-Box 8 Channel Communication Interface
  • Beckhoff CX5130-0125-1001/000119452 - Controller Module
  • B&R X20AT6402 - Temperature Input Module
  • Beckhoff C6920-1025-0020 - PC
  • Beckhoff CX1000-0011 - PLC Module
  • Beckhoff KL3011 - PLC Module
  • Beckhoff BK7300 - Programmable Logic Controller Module
  • Beckhoff KL3001 - PLC module
  • Beckhoff CX1100-0910 - Power Supply Module
  • Unknown JM-204-480-OEM-S1 - Servo Drive
  • Beckhoff C6015-0010 - Quad Core Controller
  • Beckhoff CX1001-0121 - Embedded PC And CPU Basic Module Controller
  • Beckhoff CP3912-0000 - B&F Control Panel
  • Beckhoff FC3102-0000 - PROFIBUS communication module
  • Beckhoff CX5120-0120 - PLC module HTP0
  • Schneider 140CPU65260 - PLC CPU Module
  • Beckhoff CP6932-0001-0000 - Control Panel
  • Beckhoff AX5112-0000-0200 - Servo Drive
  • Beckhoff CX2020-0112 - Controller module
  • Beckhoff AM237M-0020 - Motor Drive
  • Beckhoff EK9300 - bus module
  • AB 20F11NC3P5JA0NNNNN - AC Drive
  • Beckhoff CU2016 - Ethernet switch
  • Beckhoff CX1100-0004 - Power Supply Module
  • Beckhoff CP3916-0000 - touch screen
  • Beckhoff CX5020-0111 - Controller module
  • Beckhoff AM3032-0C30-0000 - Servo Motor HTP0
  • Beckhoff CX5140-0175 - Embedded PC
  • Beckhoff AM8121-1F20-1001 - Servo Motor
  • Beckhoff CU2508-0000 - 8-Port-Port-Multiplier
  • B&R X67BC8331 - Industrial Automation X67 SYSTEM
  • Beckhoff EK1100 - EL2202 EL1904 EL1809 EL9189 EL9188 EL2809 EL3122 EL3102 EL4102 PLC Modules
  • Beckhoff CP6812-0000-0010 - LQ150X1LW71N Control Panel
  • Beckhoff AX5112-0000-0200 - Servo Driver
  • Beckhoff EL3051 - module
  • Beckhoff CX5020-0112 - CPU Base Unit Module
  • KUKA 00-216-801 - KRC4 KCP4 Teach Pendant Smartpad Control Panel
  • Unknown 8253.84.2117 - 0-400bar Switch
  • Beckhoff IE2302 - PLC Module
  • BECKHOFF EL6751-0000 - PLC Module
  • B&R 3NC154.60-2 - PLC
  • BECKHOFF EL4002 - Module
  • Beckhoff EPP6228-0022 - IO-Link Module
  • BECKHOFF EK1914 - module
  • Allen-Bradley 25B-E019N104 - Frequency changer
  • Beckhoff CB3055-0004 - Industrial motherboard
  • BECKHOFF FC5201-0000 - Card
  • BECKHOFF C6015-0010 - controller
  • BECKHOFF BK4020 - Modules
  • Beckhoff CP2916-0000 with C6920-0040 - Control Panel with PC
  • BECKHOFF CX5140-0111/000001884 - module
  • Beckhoff CU8810-0000 - Module
  • Beckhoff EL3068 - PLC Moudule
  • BECKHOFF AX5103-0000-0200 - Servo driver
  • Beckhoff EL1862-0010 - Module
  • Beckhoff CX5140-0135 - Controller Module
  • BECKHOFF AX5106-0000-0202 - Servo Drive
  • Beckhoff CX1020-0112 - CPU controller
  • Siemens 6ES7134-0HF01-0XB0 - Electronic module
  • Beckhoff EP9128-0021 - module