Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # core HAL config file for simulation
- # first load all the RT modules that will be needed
- # kinematics
- loadrt trivkins
- # motion controller, get name and thread periods from ini file
- loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
- # load 6 differentiators (for velocity and accel signals
- loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv
- # load additional blocks
- loadrt hypot names=vel_xy,vel_xyz
- # add motion controller functions to servo thread
- addf motion-command-handler servo-thread
- addf motion-controller servo-thread
- # link the differentiator functions into the code
- addf ddt_x servo-thread
- addf ddt_xv servo-thread
- addf ddt_y servo-thread
- addf ddt_yv servo-thread
- addf ddt_z servo-thread
- addf ddt_zv servo-thread
- addf vel_xy servo-thread
- addf vel_xyz servo-thread
- # create HAL signals for position commands from motion module
- # loop position commands back to motion module feedback
- net Xpos axis.0.motor-pos-cmd => axis.0.motor-pos-fb ddt_x.in
- net Ypos axis.1.motor-pos-cmd => axis.1.motor-pos-fb ddt_y.in
- net Zpos axis.2.motor-pos-cmd => axis.2.motor-pos-fb ddt_z.in
- # send the position commands thru differentiators to
- # generate velocity and accel signals
- net Xvel ddt_x.out => ddt_xv.in vel_xy.in0
- net Xacc <= ddt_xv.out
- net Yvel ddt_y.out => ddt_yv.in vel_xy.in1
- net Yacc <= ddt_yv.out
- net Zvel ddt_z.out => ddt_zv.in vel_xyz.in0
- net Zacc <= ddt_zv.out
- # Cartesian 2- and 3-axis velocities
- net XYvel vel_xy.out => vel_xyz.in1
- net XYZvel <= vel_xyz.out
- # estop loopback
- net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
- # create signals for tool loading loopback
- net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
- net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement