NAME
Lab::Moose::Instrument::Rigol_DG5000 - Rigol DG5000 series Function/Arbitrary Waveform Generator
VERSION
version 3.760
SYNOPSIS
use Lab::Moose;
my $rigol = instrument(
type => 'Rigol_DG5000',
connection_type => 'USB' # For NT-VISA use 'VISA::USB'
);
All source_* commands accept a channel argument, which can be 1 (default) or 2:
$rigol->source_function_shape(value => 'SIN'); # Channel 1
$rigol->source_function_shape(value => 'SQU', channel => 2); # Channel 2
METHODS
Used roles:
gen_arb_step
$rigol->gen_arb_step(channel => 1, value => [ 0.2, 0.00002, 0.5, 0.0001, 0.35, 0.0001 ], bdelay => 0, bcycles => 1 );
Generate an arbitrary voltage step function. With value an array referrence is passed to the function, containing data pairs of an amplitude and time value. In the example above repeatedly outputs a constant 200mV for 20µs, 500mV for 100µs and 350mV for 100µs.
WORK IN PROGRESS: With bdelay and bcycles a delay between a specified amount of cycles is enabled using the Rigols burst mode.
If C<bdelay> = 0 the burst mode is disabled.
arb_mode
$rigol->arb_mode(value => 'INTernal');
Allowed values: INT, INTernal, PLAY
phase_align
$rigol->phase_align();
Phase-align the two output channels.
output_toggle
$rigol->source_apply_pulse(channel => 1, state => 'ON');
Turn output channels on or off, allowed values: ON, OFF
source_apply_ramp
$rigol->source_apply_ramp(
freq => ...,
amp => ...,
offset => ....,
phase => ...
);
source_apply_pulse
$rigol->source_apply_pulse(freq => 50000000, amp => 1, offset => 0, delay => 0.000001);
source_apply_sinusoid
$rigol->source_apply_sinusoid(freq => 50000000, amp => 1, offset => 0, phase => 0);
source_apply_square
$rigol->source_apply_square(freq => 50000000, amp => 1, offset => 0, phase => 0);
source_apply_arb
$rigol->source_apply_arb(freq => 50000000, amp => 1, offset => 0, phase => 0);
source_burst_mode/source_burst_mode_query
$rigol->source_burst_mode(value => 'TRIG');
say $rigol->source_burst_mode_query();
Allowed values: TRIG, GAT, INF.
source_burst_ncycles/source_burst_ncycles_query
$rigol->source_burst_ncycles(value => 1);
say $rigol->source_burst_ncycles_query();
source_burst_state/source_burst_state_query
$rigol->source_burst_state(value => 'ON');
say $rigol_source_burst_state_query();
Allowed values: ON, OFF
source_burst_tdelay/source_burst_tdelay_query
$rigol->source_burst_tdelay(value => 1e-3);
say $rigol->source_burst_tdelay_query();
source_burst_trigger
$rigol->source_burst_trigger();
source_burst_trigger_slope/source_burst_trigger_slope_query
$rigol->source_burst_trigger_slope(value => 'POS');
say $rigol->source_burst_trigger_slope_query();
Allowed values: POS, NEG.
source_burst_trigger_trigout/source_burst_trigger_trigout_query
$rigol->source_burst_trigger_trigout(value => 'POS');
$rigol->source_burst_trigger_trigout_query();
Allowed values: POS, NEG, OFF.
source_burst_trigger_source/source_burst_trigger_source_query
$rigol->source_burst_trigger_source(value => 'INT');
$rigol->source_burst_trigger_source_query();
Allowed values: INT, EXT.
source_burst_period
$rigol->source_burst_period(value => 0.00001);
source_function_shape/source_function_shape_query
$rigol->source_function_shape(value => 'SIN');
say $rigol->source_function_shape_query();
Allowed values: SIN, SQU, RAMP, PULSE, NOISE, USER, DC, SINC, EXPR, EXPF, CARD, GAUS, HAV, LOR, ARBPULSE, DUA.
source_function_ramp_symmetry/source_function_ramp_symmetry_query
$rigol->source_function_ramp_symmetry(value => 100);
say $rigol->source_function_ramp_symmetry_query();
source_period_fixed/source_period_fixed_query
$rigol->source_period_fixed(value => 1e-3);
say $rigol->source_period_fixed_query();
trace_data_data
my $values = [-0.6,-0.5,-0.4,-0.3,-0.2,-0.1,0,0.1,0.2,0.3,0.4,0.5,0.6];
$rigol->trace_data_data(data => $values);
trace_data_value, trace_data_value_query
$rigol->trace_data_value(point => 2, data => 8192);
Modify the second point to the decimal number 8192.
$rigol->trace_data_value_query(point => 2);
trace_data_points, trace_data_points_query
$rigol->trace_data_points(value => 3);
say $rigol->trace_data_points_query();
trace_data_points_interpolate, trace_data_points_interpolate_query
$rigol->trace_data_points_interpolate(value => 'LIN');
say $rigol->trace_data_points_interpolate_query();
Allowed values: LIN, SINC, OFF.
trace_data_points_interpolate, trace_data_points_interpolate_query
$rigol->trace_data_dac(value => '16383,8192,0,0,8192,8192,6345,0');
Input a string of comma-seperated integers ranging from 0 to 16383 (14Bit). If there are less than 16384 data points given, the Rigol will automatically interpolate.
COPYRIGHT AND LICENSE
This software is copyright (c) 2021 by the Lab::Measurement team; in detail:
Copyright 2020 Simon Reinhardt
2021 Fabian Weinelt
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.