In the following piece of code motor objects are created
(Motor->locate()
)
and references to these objects are stored
in the symbols $m11 and $m12.
These symbols allow us to address the motor parameters
using the methods get()
and set()
.
#!/usr/bin/perl # # stepping motor example, OO style # $m11 = Motor->locate( name => "mot11"); $m12 = Motor->locate( name => "mot12"); # # fetch motor parameters # print "\n"; print " name " . $m12->get( "name") . "\n"; print " Position " . $m12->get( "position") . "\n"; print " Accel " . $m12->get( "acceleration") . "\n"; print " Base " . $m12->get( "base") . "\n"; print " Slew " . $m12->get( "slew") . "\n"; print " Settle time " . $m12->get( "settle_time") . "\n"; print " Unit_backlash " . $m12->get( "unit_backlash") . "\n"; print " Unit_limit_min " . $m12->get( "unit_limit_min") . "\n"; print " Unit_limit_max " . $m12->get( "unit_limit_max") . "\n"; print " Step_limit_min " . $m12->get( "step_limit_min") . "\n"; print " Step_limit_max " . $m12->get( "step_limit_max") . "\n"; print " Step_register_controller " . $m12->get( "step_register_controller") . "\n"; print " Step_register_internal " . $m12->get( "step_register_internal") . "\n"; print " Ramp_units " . $m12->get( "ramp_units") . "\n"; print " Ramp_steps " . $m12->get( "ramp_steps") . "\n"; print " Moving " . $m12->get( "moving") . "\n"; print " Move time " . $m12->get( " move_time => "$units") . "\n"; # # fetch the current positions of mot11 and mot12 # $pos11 = $m11->get( "position"); $pos12 = $m12->get( "position"); # $new_pos11 = $pos11 + 1; $new_pos12 = $pos12 + 1; # $m11->set(position => $new_pos1); $m12->set(position => $new_pos2); # # and move them back, one after the other # $m11->set(position => $pos11); $m12->set(position => $pos12); # # or simultaneously # $ret = move( "mot11" => $new_pos11, "mot12" => $new_pos12); # # single step moves, 'right' is equivalent to 'down' # $m12->set( step_down => 'yes'); $m12->set( step_left => 'yes'); $m12->set( step_right => 'yes'); $m12->set( step_up => 'yes'); # # setting motor parameters # $m12->set( acceleration => 200000); $m12->set( base => 20); $m12->set( slew => 20000); $m12->set( settle_time => 0.2); $m12->set( unit_backlash => 0.5); $m12->set( unit_limit_min => "..."); $m12->set( unit_limit_max => "..."); $m12->set( step_limit_min => "..."); $m12->set( step_limit_max => "..."); $m12->set( step_register => "..."); # # calibration # $m12->set( position_calibrate => "..."); $m12->set( position_calibrate => "...", noconfirm => "yes");