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:

Lab::Moose::Instrument::Common

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.