# sample file pulls all load commands into a single file # when emc2 starts it loads iocontrol # this file enables encoder velocity timestamping # it will only work on PPMC encoder boards with # rev 4 or later firmware. In addition to the timestamp # feature, rev 4 and above boards also have the ability to # select the encoder digital filter frequeincy. Append # enc_clock="n" to the loadrt hal_ppmc line. N can be # 1, 2, 5 or 10 for 1, 2 5 or 10 MHz frequency. Any other # value will default to the standard 1 MHz. # it is best to use the lowest rate that allows your encoders # to be read, as this gives the greatest suppression of # electrical noise on the encoder inputs. # kinematics loadrt [KINS]KINEMATICS #motion controller, get name and thread periods from ini file loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS # next load the PID module, for four PID loops loadrt pid num_chan=4 # install Universal PWM Controller driver #if the PPMC is not connected to the standard parallel port at 0x378 # add port_addr="0x1234" to the following command line # timestamp="0x00" turns on timestamp encoder velocity estimation on the # first encoder board of the PPMC system. # on LinuxCNC versions 2.7.9 and above, a parameter allows you to change the # way the EPP port is controlled. For PCIe cards using the NetMos 990x # chips, append epp_dir=1 to the end of the following line loadrt hal_ppmc timestamp="0x00" # make some signals for the scope for tuning. loadrt ddt count=4 loadrt estop_latch count=1 loadrt and2 count=1 # set up the realtime thread # read inputs first addf ppmc.0.read servo-thread # then run the motion controller addf motion-command-handler servo-thread addf and2.0 servo-thread addf estop-latch.0 servo-thread addf motion-controller servo-thread # then the PID loops addf pid.0.do-pid-calcs servo-thread addf pid.1.do-pid-calcs servo-thread addf pid.2.do-pid-calcs servo-thread addf pid.3.do-pid-calcs servo-thread # write outputs last addf ppmc.0.write servo-thread