Simple IO wiring not working (I know I am doing something wrong)

More
03 Aug 2020 20:12 #177076 by jhandel
Howdy,
I am trying to get basic IO working as I dip my toes into getting this 7i76e wired up..

I am attempting to follow the wiring diagrams here :
forum.linuxcnc.org/media/kunena/attachme...hluss_2017-01-02.pdf

I figured starting with a simple digital input would be best given I have a proprietary BOB in the mix and its signals use to be read as digital by the ADTech Controller I am replacing.

Anyways, I used page 6, and Page 5, and messed with W1... I can't seem to get anything to "read" by linuxcnc..

I have attached images of the two attempts at wiring and what the 7i76 does..

I don't think this is HAL related.. I did go through PNCConfig and pick a few things but really its all just "trash" settings so that the HAL knows where my board is (10.10.10.10) and then I am looking at the HalMeter to try to find a reading anywhere (I expected it at 4 but I honestly tried every single io port on the HalMeter and non of them flipped from FALSE to TRUE while I was tapping on the sensor causing it to bounce.

I know for a fact that when closed (sensor see something there is 12v between TB1:2 and TB6:5 regardless of the wiring, and when the sensor sees nothing, there is 0 volts between those two pins regardless of wiring.

Any help would be great.. Unfortunately I am retrofitting so I have this BoB in the way, but from everything I have seen its converting everything to just a high/low vs the power supply.
Attachments:

Please Log in or Create an account to join the conversation.

More
03 Aug 2020 20:19 - 03 Aug 2020 20:20 #177077 by tommylight
From what i can gather, you would need a pull up resistor between the +12V and the input. A 4.7 to 10K one will do just fine.
Also notice that physical input number one ( the lowest on the Mesa board ) is input 00 in hal.
Last edit: 03 Aug 2020 20:20 by tommylight. Reason: More info

Please Log in or Create an account to join the conversation.

More
03 Aug 2020 20:21 #177078 by jhandel
Because it is regularlly asked for...

mesaflash details
Configuration Name: HOSTMOT2

General configuration information:

  BoardName : MESA7I76
  FPGA Size: 16 KGates
  FPGA Pins: 256
  Number of IO Ports: 3
  Width of one I/O port: 17
  Clock Low frequency: 100.0000 MHz
  Clock High frequency: 200.0000 MHz
  IDROM Type: 3
  Instance Stride 0: 4
  Instance Stride 1: 64
  Register Stride 0: 256
  Register Stride 1: 256

Modules in configuration:

  Module: DPLL
  There are 1 of DPLL in configuration
  Version: 0
  Registers: 7
  BaseAddress: 7000
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: WatchDog
  There are 1 of WatchDog in configuration
  Version: 0
  Registers: 3
  BaseAddress: 0C00
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: IOPort
  There are 3 of IOPort in configuration
  Version: 0
  Registers: 5
  BaseAddress: 1000
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: StepGen
  There are 5 of StepGen in configuration
  Version: 2
  Registers: 10
  BaseAddress: 2000
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: QCount
  There are 1 of QCount in configuration
  Version: 2
  Registers: 5
  BaseAddress: 3000
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: SSerial
  There are 1 of SSerial in configuration
  Version: 0
  Registers: 6
  BaseAddress: 5B00
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 64 bytes

  Module: LED
  There are 1 of LED in configuration
  Version: 0
  Registers: 1
  BaseAddress: 0200
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

Configuration pin-out:

IO Connections for on-card
Pin#  I/O   Pri. func    Sec. func       Chan      Pin func        Pin Dir

 1      0   IOPort       StepGen          0        Dir/Table2      (Out)
14      1   IOPort       StepGen          0        Step/Table1     (Out)
 2      2   IOPort       StepGen          1        Dir/Table2      (Out)
15      3   IOPort       StepGen          1        Step/Table1     (Out)
 3      4   IOPort       StepGen          2        Dir/Table2      (Out)
16      5   IOPort       StepGen          2        Step/Table1     (Out)
 4      6   IOPort       StepGen          3        Dir/Table2      (Out)
17      7   IOPort       StepGen          3        Step/Table1     (Out)
 5      8   IOPort       StepGen          4        Dir/Table2      (Out)
 6      9   IOPort       StepGen          4        Step/Table1     (Out)
 7     10   IOPort       SSerial          0        TXData1         (Out)
 8     11   IOPort       SSerial          0        RXData1         (In)
 9     12   IOPort       SSerial          0        TXData2         (Out)
10     13   IOPort       SSerial          0        RXData2         (In)
11     14   IOPort       QCount           0        Quad-IDX        (In)
12     15   IOPort       QCount           0        Quad-B          (In)
13     16   IOPort       QCount           0        Quad-A          (In)

IO Connections for P1
Pin#  I/O   Pri. func    Sec. func       Chan      Pin func        Pin Dir

 1     17   IOPort       None           
14     18   IOPort       None           
 2     19   IOPort       None           
15     20   IOPort       None           
 3     21   IOPort       None           
16     22   IOPort       None           
 4     23   IOPort       None           
17     24   IOPort       None           
 5     25   IOPort       None           
 6     26   IOPort       None           
 7     27   IOPort       None           
 8     28   IOPort       None           
 9     29   IOPort       None           
10     30   IOPort       None           
11     31   IOPort       None           
12     32   IOPort       None           
13     33   IOPort       None           

IO Connections for P2
Pin#  I/O   Pri. func    Sec. func       Chan      Pin func        Pin Dir

 1     34   IOPort       None           
14     35   IOPort       None           
 2     36   IOPort       None           
15     37   IOPort       None           
 3     38   IOPort       None           
16     39   IOPort       None           
 4     40   IOPort       None           
17     41   IOPort       None           
 5     42   IOPort       None           
 6     43   IOPort       None           
 7     44   IOPort       None           
 8     45   IOPort       None           
 9     46   IOPort       None           
10     47   IOPort       None           
11     48   IOPort       None           
12     49   IOPort       None           
13     50   IOPort       None

Hal
# Generated by PNCconf at Mon Aug  3 13:26:56 2020
# Using LinuxCNC version:  UNAVAILABLE
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt hostmot2
loadrt hm2_eth board_ip="10.10.10.10" config=" num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=00xxxx" 
setp    hm2_7i76e.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s

addf hm2_7i76e.0.read          servo-thread
addf motion-command-handler   servo-thread
addf motion-controller        servo-thread
addf pid.x.do-pid-calcs       servo-thread
addf pid.y.do-pid-calcs       servo-thread
addf pid.z.do-pid-calcs       servo-thread
addf pid.s.do-pid-calcs       servo-thread
addf hm2_7i76e.0.write         servo-thread
setp hm2_7i76e.0.dpll.01.timer-us -50
setp hm2_7i76e.0.stepgen.timer-number 1

# external output signals


# external input signals

# --- MIN-X ---
net min-x     <=  hm2_7i76e.0.gpio.021.in

# --- HOME-X ---
net home-x     <=  hm2_7i76e.0.gpio.038.in


#*******************
#  AXIS X JOINT 0
#*******************

setp   pid.x.Pgain     [JOINT_0]P
setp   pid.x.Igain     [JOINT_0]I
setp   pid.x.Dgain     [JOINT_0]D
setp   pid.x.bias      [JOINT_0]BIAS
setp   pid.x.FF0       [JOINT_0]FF0
setp   pid.x.FF1       [JOINT_0]FF1
setp   pid.x.FF2       [JOINT_0]FF2
setp   pid.x.deadband  [JOINT_0]DEADBAND
setp   pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp   pid.x.error-previous-target true
setp   pid.x.maxerror .0005

net x-index-enable  <=> pid.x.index-enable
net x-enable        =>  pid.x.enable
net x-pos-cmd       =>  pid.x.command
net x-pos-fb        =>  pid.x.feedback
net x-output        <=  pid.x.output

# Step Gen signals/setup

setp   hm2_7i76e.0.stepgen.00.dirsetup        [JOINT_0]DIRSETUP
setp   hm2_7i76e.0.stepgen.00.dirhold         [JOINT_0]DIRHOLD
setp   hm2_7i76e.0.stepgen.00.steplen         [JOINT_0]STEPLEN
setp   hm2_7i76e.0.stepgen.00.stepspace       [JOINT_0]STEPSPACE
setp   hm2_7i76e.0.stepgen.00.position-scale  [JOINT_0]STEP_SCALE
setp   hm2_7i76e.0.stepgen.00.step_type        0
setp   hm2_7i76e.0.stepgen.00.control-type     1
setp   hm2_7i76e.0.stepgen.00.maxaccel         [JOINT_0]STEPGEN_MAXACCEL
setp   hm2_7i76e.0.stepgen.00.maxvel           [JOINT_0]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net x-pos-cmd    <= joint.0.motor-pos-cmd
net x-vel-cmd    <= joint.0.vel-cmd
net x-output     <= hm2_7i76e.0.stepgen.00.velocity-cmd
net x-pos-fb     <= hm2_7i76e.0.stepgen.00.position-fb
net x-pos-fb     => joint.0.motor-pos-fb
net x-enable     <= joint.0.amp-enable-out
net x-enable     => hm2_7i76e.0.stepgen.00.enable

# ---setup home / limit switch signals---

net home-x     =>  joint.0.home-sw-in
net min-x     =>  joint.0.neg-lim-sw-in
net x-pos-limit     =>  joint.0.pos-lim-sw-in

#*******************
#  AXIS Y JOINT 1
#*******************

setp   pid.y.Pgain     [JOINT_1]P
setp   pid.y.Igain     [JOINT_1]I
setp   pid.y.Dgain     [JOINT_1]D
setp   pid.y.bias      [JOINT_1]BIAS
setp   pid.y.FF0       [JOINT_1]FF0
setp   pid.y.FF1       [JOINT_1]FF1
setp   pid.y.FF2       [JOINT_1]FF2
setp   pid.y.deadband  [JOINT_1]DEADBAND
setp   pid.y.maxoutput [JOINT_1]MAX_OUTPUT
setp   pid.y.error-previous-target true
setp   pid.y.maxerror .0005

net y-index-enable  <=> pid.y.index-enable
net y-enable        =>  pid.y.enable
net y-pos-cmd       =>  pid.y.command
net y-pos-fb        =>  pid.y.feedback
net y-output        <=  pid.y.output

# Step Gen signals/setup

setp   hm2_7i76e.0.stepgen.01.dirsetup        [JOINT_1]DIRSETUP
setp   hm2_7i76e.0.stepgen.01.dirhold         [JOINT_1]DIRHOLD
setp   hm2_7i76e.0.stepgen.01.steplen         [JOINT_1]STEPLEN
setp   hm2_7i76e.0.stepgen.01.stepspace       [JOINT_1]STEPSPACE
setp   hm2_7i76e.0.stepgen.01.position-scale  [JOINT_1]STEP_SCALE
setp   hm2_7i76e.0.stepgen.01.step_type        0
setp   hm2_7i76e.0.stepgen.01.control-type     1
setp   hm2_7i76e.0.stepgen.01.maxaccel         [JOINT_1]STEPGEN_MAXACCEL
setp   hm2_7i76e.0.stepgen.01.maxvel           [JOINT_1]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net y-pos-cmd    <= joint.1.motor-pos-cmd
net y-vel-cmd    <= joint.1.vel-cmd
net y-output     <= hm2_7i76e.0.stepgen.01.velocity-cmd
net y-pos-fb     <= hm2_7i76e.0.stepgen.01.position-fb
net y-pos-fb     => joint.1.motor-pos-fb
net y-enable     <= joint.1.amp-enable-out
net y-enable     => hm2_7i76e.0.stepgen.01.enable

# ---setup home / limit switch signals---

net y-home-sw     =>  joint.1.home-sw-in
net y-neg-limit     =>  joint.1.neg-lim-sw-in
net y-pos-limit     =>  joint.1.pos-lim-sw-in

#*******************
#  AXIS Z JOINT 2
#*******************

setp   pid.z.Pgain     [JOINT_2]P
setp   pid.z.Igain     [JOINT_2]I
setp   pid.z.Dgain     [JOINT_2]D
setp   pid.z.bias      [JOINT_2]BIAS
setp   pid.z.FF0       [JOINT_2]FF0
setp   pid.z.FF1       [JOINT_2]FF1
setp   pid.z.FF2       [JOINT_2]FF2
setp   pid.z.deadband  [JOINT_2]DEADBAND
setp   pid.z.maxoutput [JOINT_2]MAX_OUTPUT
setp   pid.z.error-previous-target true
setp   pid.z.maxerror .0005

net z-index-enable  <=> pid.z.index-enable
net z-enable        =>  pid.z.enable
net z-pos-cmd       =>  pid.z.command
net z-pos-fb        =>  pid.z.feedback
net z-output        <=  pid.z.output

# Step Gen signals/setup

setp   hm2_7i76e.0.stepgen.02.dirsetup        [JOINT_2]DIRSETUP
setp   hm2_7i76e.0.stepgen.02.dirhold         [JOINT_2]DIRHOLD
setp   hm2_7i76e.0.stepgen.02.steplen         [JOINT_2]STEPLEN
setp   hm2_7i76e.0.stepgen.02.stepspace       [JOINT_2]STEPSPACE
setp   hm2_7i76e.0.stepgen.02.position-scale  [JOINT_2]STEP_SCALE
setp   hm2_7i76e.0.stepgen.02.step_type        0
setp   hm2_7i76e.0.stepgen.02.control-type     1
setp   hm2_7i76e.0.stepgen.02.maxaccel         [JOINT_2]STEPGEN_MAXACCEL
setp   hm2_7i76e.0.stepgen.02.maxvel           [JOINT_2]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net z-pos-cmd    <= joint.2.motor-pos-cmd
net z-vel-cmd    <= joint.2.vel-cmd
net z-output     <= hm2_7i76e.0.stepgen.02.velocity-cmd
net z-pos-fb     <= hm2_7i76e.0.stepgen.02.position-fb
net z-pos-fb     => joint.2.motor-pos-fb
net z-enable     <= joint.2.amp-enable-out
net z-enable     => hm2_7i76e.0.stepgen.02.enable

# ---setup home / limit switch signals---

net z-home-sw     =>  joint.2.home-sw-in
net z-neg-limit     =>  joint.2.neg-lim-sw-in
net z-pos-limit     =>  joint.2.pos-lim-sw-in

#*******************
#  SPINDLE
#*******************

setp   pid.s.Pgain     [SPINDLE_0]P
setp   pid.s.Igain     [SPINDLE_0]I
setp   pid.s.Dgain     [SPINDLE_0]D
setp   pid.s.bias      [SPINDLE_0]BIAS
setp   pid.s.FF0       [SPINDLE_0]FF0
setp   pid.s.FF1       [SPINDLE_0]FF1
setp   pid.s.FF2       [SPINDLE_0]FF2
setp   pid.s.deadband  [SPINDLE_0]DEADBAND
setp   pid.s.maxoutput [SPINDLE_0]MAX_OUTPUT
setp   pid.s.error-previous-target true

net spindle-index-enable  <=> pid.s.index-enable
net spindle-enable        =>  pid.s.enable
net spindle-vel-cmd-rpm     => pid.s.command
net spindle-vel-fb-rpm      => pid.s.feedback
net spindle-output        <=  pid.s.output

# ---setup spindle control signals---

net spindle-vel-cmd-rps        <=  spindle.0.speed-out-rps
net spindle-vel-cmd-rps-abs    <=  spindle.0.speed-out-rps-abs
net spindle-vel-cmd-rpm        <=  spindle.0.speed-out
net spindle-vel-cmd-rpm-abs    <=  spindle.0.speed-out-abs
net spindle-enable             <=  spindle.0.on
net spindle-cw                 <=  spindle.0.forward
net spindle-ccw                <=  spindle.0.reverse
net spindle-brake              <=  spindle.0.brake
net spindle-revs               =>  spindle.0.revs
net spindle-at-speed           =>  spindle.0.at-speed
net spindle-vel-fb-rps         =>  spindle.0.speed-in
net spindle-index-enable      <=>  spindle.0.index-enable

# ---Setup spindle at speed signals---

sets spindle-at-speed true


#******************************
# connect miscellaneous signals
#******************************

#  ---HALUI signals---

net axis-select-x  halui.axis.x.select
net jog-x-pos      halui.axis.x.plus
net jog-x-neg      halui.axis.x.minus
net jog-x-analog   halui.axis.x.analog
net x-is-homed     halui.joint.0.is-homed
net axis-select-y  halui.axis.y.select
net jog-y-pos      halui.axis.y.plus
net jog-y-neg      halui.axis.y.minus
net jog-y-analog   halui.axis.y.analog
net y-is-homed     halui.joint.1.is-homed
net axis-select-z  halui.axis.z.select
net jog-z-pos      halui.axis.z.plus
net jog-z-neg      halui.axis.z.minus
net jog-z-analog   halui.axis.z.analog
net z-is-homed     halui.joint.2.is-homed
net jog-selected-pos      halui.axis.selected.plus
net jog-selected-neg      halui.axis.selected.minus
net spindle-manual-cw     halui.spindle.0.forward
net spindle-manual-ccw    halui.spindle.0.reverse
net spindle-manual-stop   halui.spindle.0.stop
net machine-is-on         halui.machine.is-on
net jog-speed             halui.axis.jog-speed
net MDI-mode              halui.mode.is-mdi

#  ---coolant signals---

net coolant-mist      <=  iocontrol.0.coolant-mist
net coolant-flood     <=  iocontrol.0.coolant-flood

#  ---probe signal---

net probe-in     =>  motion.probe-input

#  ---motion control signals---

net in-position               <=  motion.in-position
net machine-is-enabled        <=  motion.motion-enabled

#  ---digital in / out signals---

#  ---estop signals---

net estop-out     <=  iocontrol.0.user-enable-out
net estop-out     =>  iocontrol.0.emc-enable-in

#  ---manual tool change signals---

loadusr -W hal_manualtoolchange
net tool-change-request     iocontrol.0.tool-change       =>  hal_manualtoolchange.change
net tool-change-confirmed   iocontrol.0.tool-changed      <=  hal_manualtoolchange.changed
net tool-number             iocontrol.0.tool-prep-number  =>  hal_manualtoolchange.number
net tool-prepare-loopback   iocontrol.0.tool-prepare      =>  iocontrol.0.tool-prepared

Halcmd show all
Loaded HAL Components:
ID      Type  Name                                            PID   State
    50  User  halcmd2898                                       2898 ready
    46  User  axisui                                           2888 ready
    44  User  inihal                                           2884 ready
    33  User  hal_manualtoolchange                             2875 ready
    29  RT    pid                                                   ready
    26  RT    hm2_eth                                               ready
    23  RT    hostmot2                                              ready
    20  RT    __servo-thread                                        ready
    19  RT    motmod                                                ready
    16  RT    trivkins                                              ready
    10  User  halui                                            2846 ready
     4  User  iocontrol                                        2844 ready

Component Pins:
Owner   Type  Dir         Value  Name
    19  float OUT             0  axis.a.eoffset
    19  bit   IN          FALSE  axis.a.eoffset-clear
    19  s32   IN              0  axis.a.eoffset-counts
    19  bit   IN          FALSE  axis.a.eoffset-enable
    19  float OUT             0  axis.a.eoffset-request
    19  float IN              0  axis.a.eoffset-scale
    19  float IN              1  axis.a.jog-accel-fraction
    19  s32   IN              0  axis.a.jog-counts
    19  bit   IN          FALSE  axis.a.jog-enable
    19  float IN              0  axis.a.jog-scale
    19  bit   IN          FALSE  axis.a.jog-vel-mode
    19  bit   OUT         FALSE  axis.a.kb-jog-active
    19  float OUT             0  axis.a.pos-cmd
    19  float OUT             0  axis.a.teleop-pos-cmd
    19  bit   OUT         FALSE  axis.a.teleop-tp-enable
    19  float OUT             0  axis.a.teleop-vel-cmd
    19  float OUT             0  axis.a.teleop-vel-lim
    19  bit   OUT         FALSE  axis.a.wheel-jog-active
    19  float OUT             0  axis.b.eoffset
    19  bit   IN          FALSE  axis.b.eoffset-clear
    19  s32   IN              0  axis.b.eoffset-counts
    19  bit   IN          FALSE  axis.b.eoffset-enable
    19  float OUT             0  axis.b.eoffset-request
    19  float IN              0  axis.b.eoffset-scale
    19  float IN              1  axis.b.jog-accel-fraction
    19  s32   IN              0  axis.b.jog-counts
    19  bit   IN          FALSE  axis.b.jog-enable
    19  float IN              0  axis.b.jog-scale
    19  bit   IN          FALSE  axis.b.jog-vel-mode
    19  bit   OUT         FALSE  axis.b.kb-jog-active
    19  float OUT             0  axis.b.pos-cmd
    19  float OUT             0  axis.b.teleop-pos-cmd
    19  bit   OUT         FALSE  axis.b.teleop-tp-enable
    19  float OUT             0  axis.b.teleop-vel-cmd
    19  float OUT             0  axis.b.teleop-vel-lim
    19  bit   OUT         FALSE  axis.b.wheel-jog-active
    19  float OUT             0  axis.c.eoffset
    19  bit   IN          FALSE  axis.c.eoffset-clear
    19  s32   IN              0  axis.c.eoffset-counts
    19  bit   IN          FALSE  axis.c.eoffset-enable
    19  float OUT             0  axis.c.eoffset-request
    19  float IN              0  axis.c.eoffset-scale
    19  float IN              1  axis.c.jog-accel-fraction
    19  s32   IN              0  axis.c.jog-counts
    19  bit   IN          FALSE  axis.c.jog-enable
    19  float IN              0  axis.c.jog-scale
    19  bit   IN          FALSE  axis.c.jog-vel-mode
    19  bit   OUT         FALSE  axis.c.kb-jog-active
    19  float OUT             0  axis.c.pos-cmd
    19  float OUT             0  axis.c.teleop-pos-cmd
    19  bit   OUT         FALSE  axis.c.teleop-tp-enable
    19  float OUT             0  axis.c.teleop-vel-cmd
    19  float OUT             0  axis.c.teleop-vel-lim
    19  bit   OUT         FALSE  axis.c.wheel-jog-active
    19  float OUT             0  axis.u.eoffset
    19  bit   IN          FALSE  axis.u.eoffset-clear
    19  s32   IN              0  axis.u.eoffset-counts
    19  bit   IN          FALSE  axis.u.eoffset-enable
    19  float OUT             0  axis.u.eoffset-request
    19  float IN              0  axis.u.eoffset-scale
    19  float IN              1  axis.u.jog-accel-fraction
    19  s32   IN              0  axis.u.jog-counts
    19  bit   IN          FALSE  axis.u.jog-enable
    19  float IN              0  axis.u.jog-scale
    19  bit   IN          FALSE  axis.u.jog-vel-mode
    19  bit   OUT         FALSE  axis.u.kb-jog-active
    19  float OUT             0  axis.u.pos-cmd
    19  float OUT             0  axis.u.teleop-pos-cmd
    19  bit   OUT         FALSE  axis.u.teleop-tp-enable
    19  float OUT             0  axis.u.teleop-vel-cmd
    19  float OUT             0  axis.u.teleop-vel-lim
    19  bit   OUT         FALSE  axis.u.wheel-jog-active
    19  float OUT             0  axis.v.eoffset
    19  bit   IN          FALSE  axis.v.eoffset-clear
    19  s32   IN              0  axis.v.eoffset-counts
    19  bit   IN          FALSE  axis.v.eoffset-enable
    19  float OUT             0  axis.v.eoffset-request
    19  float IN              0  axis.v.eoffset-scale
    19  float IN              1  axis.v.jog-accel-fraction
    19  s32   IN              0  axis.v.jog-counts
    19  bit   IN          FALSE  axis.v.jog-enable
    19  float IN              0  axis.v.jog-scale
    19  bit   IN          FALSE  axis.v.jog-vel-mode
    19  bit   OUT         FALSE  axis.v.kb-jog-active
    19  float OUT             0  axis.v.pos-cmd
    19  float OUT             0  axis.v.teleop-pos-cmd
    19  bit   OUT         FALSE  axis.v.teleop-tp-enable
    19  float OUT             0  axis.v.teleop-vel-cmd
    19  float OUT             0  axis.v.teleop-vel-lim
    19  bit   OUT         FALSE  axis.v.wheel-jog-active
    19  float OUT             0  axis.w.eoffset
    19  bit   IN          FALSE  axis.w.eoffset-clear
    19  s32   IN              0  axis.w.eoffset-counts
    19  bit   IN          FALSE  axis.w.eoffset-enable
    19  float OUT             0  axis.w.eoffset-request
    19  float IN              0  axis.w.eoffset-scale
    19  float IN              1  axis.w.jog-accel-fraction
    19  s32   IN              0  axis.w.jog-counts
    19  bit   IN          FALSE  axis.w.jog-enable
    19  float IN              0  axis.w.jog-scale
    19  bit   IN          FALSE  axis.w.jog-vel-mode
    19  bit   OUT         FALSE  axis.w.kb-jog-active
    19  float OUT             0  axis.w.pos-cmd
    19  float OUT             0  axis.w.teleop-pos-cmd
    19  bit   OUT         FALSE  axis.w.teleop-tp-enable
    19  float OUT             0  axis.w.teleop-vel-cmd
    19  float OUT             0  axis.w.teleop-vel-lim
    19  bit   OUT         FALSE  axis.w.wheel-jog-active
    19  float OUT             0  axis.x.eoffset
    19  bit   IN          FALSE  axis.x.eoffset-clear
    19  s32   IN              0  axis.x.eoffset-counts
    19  bit   IN          FALSE  axis.x.eoffset-enable
    19  float OUT             0  axis.x.eoffset-request
    19  float IN              0  axis.x.eoffset-scale
    19  float IN              1  axis.x.jog-accel-fraction
    19  s32   IN              0  axis.x.jog-counts
    19  bit   IN          FALSE  axis.x.jog-enable
    19  float IN              0  axis.x.jog-scale
    19  bit   IN          FALSE  axis.x.jog-vel-mode
    19  bit   OUT         FALSE  axis.x.kb-jog-active
    19  float OUT             0  axis.x.pos-cmd
    19  float OUT             0  axis.x.teleop-pos-cmd
    19  bit   OUT         FALSE  axis.x.teleop-tp-enable
    19  float OUT             0  axis.x.teleop-vel-cmd
    19  float OUT             0  axis.x.teleop-vel-lim
    19  bit   OUT         FALSE  axis.x.wheel-jog-active
    19  float OUT             0  axis.y.eoffset
    19  bit   IN          FALSE  axis.y.eoffset-clear
    19  s32   IN              0  axis.y.eoffset-counts
    19  bit   IN          FALSE  axis.y.eoffset-enable
    19  float OUT             0  axis.y.eoffset-request
    19  float IN              0  axis.y.eoffset-scale
    19  float IN              1  axis.y.jog-accel-fraction
    19  s32   IN              0  axis.y.jog-counts
    19  bit   IN          FALSE  axis.y.jog-enable
    19  float IN              0  axis.y.jog-scale
    19  bit   IN          FALSE  axis.y.jog-vel-mode
    19  bit   OUT         FALSE  axis.y.kb-jog-active
    19  float OUT             0  axis.y.pos-cmd
    19  float OUT             0  axis.y.teleop-pos-cmd
    19  bit   OUT         FALSE  axis.y.teleop-tp-enable
    19  float OUT             0  axis.y.teleop-vel-cmd
    19  float OUT             0  axis.y.teleop-vel-lim
    19  bit   OUT         FALSE  axis.y.wheel-jog-active
    19  float OUT             0  axis.z.eoffset
    19  bit   IN          FALSE  axis.z.eoffset-clear
    19  s32   IN              0  axis.z.eoffset-counts
    19  bit   IN          FALSE  axis.z.eoffset-enable
    19  float OUT             0  axis.z.eoffset-request
    19  float IN              0  axis.z.eoffset-scale
    19  float IN              1  axis.z.jog-accel-fraction
    19  s32   IN              0  axis.z.jog-counts
    19  bit   IN          FALSE  axis.z.jog-enable
    19  float IN              0  axis.z.jog-scale
    19  bit   IN          FALSE  axis.z.jog-vel-mode
    19  bit   OUT         FALSE  axis.z.kb-jog-active
    19  float OUT             0  axis.z.pos-cmd
    19  float OUT             0  axis.z.teleop-pos-cmd
    19  bit   OUT         FALSE  axis.z.teleop-tp-enable
    19  float OUT             0  axis.z.teleop-vel-cmd
    19  float OUT             0  axis.z.teleop-vel-lim
    19  bit   OUT         FALSE  axis.z.wheel-jog-active
    46  bit   OUT         FALSE  axisui.jog.a
    46  bit   OUT         FALSE  axisui.jog.b
    46  bit   OUT         FALSE  axisui.jog.c
    46  float OUT             0  axisui.jog.increment
    46  bit   OUT         FALSE  axisui.jog.u
    46  bit   OUT         FALSE  axisui.jog.v
    46  bit   OUT         FALSE  axisui.jog.w
    46  bit   OUT          TRUE  axisui.jog.x
    46  bit   OUT         FALSE  axisui.jog.y
    46  bit   OUT         FALSE  axisui.jog.z
    46  bit   IN          FALSE  axisui.notifications-clear
    46  bit   IN          FALSE  axisui.notifications-clear-error
    46  bit   IN          FALSE  axisui.notifications-clear-info
    46  bit   IN          FALSE  axisui.resume-inhibit
    33  bit   IN          FALSE  hal_manualtoolchange.change <== tool-change-request
    33  bit   IN          FALSE  hal_manualtoolchange.change_button
    33  bit   OUT         FALSE  hal_manualtoolchange.changed ==> tool-change-confirmed
    33  s32   IN              0  hal_manualtoolchange.number <== tool-number
    10  bit   IN          FALSE  halui.abort
    10  float IN              0  halui.axis.a.analog
    10  float IN              0  halui.axis.a.increment
    10  bit   IN          FALSE  halui.axis.a.increment-minus
    10  bit   IN          FALSE  halui.axis.a.increment-plus
    10  bit   IN          FALSE  halui.axis.a.minus
    10  bit   IN          FALSE  halui.axis.a.plus
    10  bit   IN          FALSE  halui.axis.a.select
    10  float IN              0  halui.axis.b.analog
    10  float IN              0  halui.axis.b.increment
    10  bit   IN          FALSE  halui.axis.b.increment-minus
    10  bit   IN          FALSE  halui.axis.b.increment-plus
    10  bit   IN          FALSE  halui.axis.b.minus
    10  bit   IN          FALSE  halui.axis.b.plus
    10  bit   IN          FALSE  halui.axis.b.select
    10  float IN              0  halui.axis.c.analog
    10  float IN              0  halui.axis.c.increment
    10  bit   IN          FALSE  halui.axis.c.increment-minus
    10  bit   IN          FALSE  halui.axis.c.increment-plus
    10  bit   IN          FALSE  halui.axis.c.minus
    10  bit   IN          FALSE  halui.axis.c.plus
    10  bit   IN          FALSE  halui.axis.c.select
    10  float IN            0.2  halui.axis.jog-deadband
    10  float IN              0  halui.axis.jog-speed <== jog-speed
    10  u32   OUT    0x00000000  halui.axis.selected
    10  float IN              0  halui.axis.selected.increment
    10  bit   IN          FALSE  halui.axis.selected.increment-minus
    10  bit   IN          FALSE  halui.axis.selected.increment-plus
    10  bit   IN          FALSE  halui.axis.selected.minus <== jog-selected-neg
    10  bit   IN          FALSE  halui.axis.selected.plus <== jog-selected-pos
    10  float IN              0  halui.axis.u.analog
    10  float IN              0  halui.axis.u.increment
    10  bit   IN          FALSE  halui.axis.u.increment-minus
    10  bit   IN          FALSE  halui.axis.u.increment-plus
    10  bit   IN          FALSE  halui.axis.u.minus
    10  bit   IN          FALSE  halui.axis.u.plus
    10  bit   IN          FALSE  halui.axis.u.select
    10  float IN              0  halui.axis.v.analog
    10  float IN              0  halui.axis.v.increment
    10  bit   IN          FALSE  halui.axis.v.increment-minus
    10  bit   IN          FALSE  halui.axis.v.increment-plus
    10  bit   IN          FALSE  halui.axis.v.minus
    10  bit   IN          FALSE  halui.axis.v.plus
    10  bit   IN          FALSE  halui.axis.v.select
    10  float IN              0  halui.axis.w.analog
    10  float IN              0  halui.axis.w.increment
    10  bit   IN          FALSE  halui.axis.w.increment-minus
    10  bit   IN          FALSE  halui.axis.w.increment-plus
    10  bit   IN          FALSE  halui.axis.w.minus
    10  bit   IN          FALSE  halui.axis.w.plus
    10  bit   IN          FALSE  halui.axis.w.select
    10  float IN              0  halui.axis.x.analog <== jog-x-analog
    10  float IN              0  halui.axis.x.increment
    10  bit   IN          FALSE  halui.axis.x.increment-minus
    10  bit   IN          FALSE  halui.axis.x.increment-plus
    10  bit   OUT          TRUE  halui.axis.x.is-selected
    10  bit   IN          FALSE  halui.axis.x.minus <== jog-x-neg
    10  bit   IN          FALSE  halui.axis.x.plus <== jog-x-pos
    10  float OUT             0  halui.axis.x.pos-commanded
    10  float OUT             0  halui.axis.x.pos-feedback
    10  float OUT             0  halui.axis.x.pos-relative
    10  bit   IN          FALSE  halui.axis.x.select <== axis-select-x
    10  float IN              0  halui.axis.y.analog <== jog-y-analog
    10  float IN              0  halui.axis.y.increment
    10  bit   IN          FALSE  halui.axis.y.increment-minus
    10  bit   IN          FALSE  halui.axis.y.increment-plus
    10  bit   OUT         FALSE  halui.axis.y.is-selected
    10  bit   IN          FALSE  halui.axis.y.minus <== jog-y-neg
    10  bit   IN          FALSE  halui.axis.y.plus <== jog-y-pos
    10  float OUT             0  halui.axis.y.pos-commanded
    10  float OUT             0  halui.axis.y.pos-feedback
    10  float OUT             0  halui.axis.y.pos-relative
    10  bit   IN          FALSE  halui.axis.y.select <== axis-select-y
    10  float IN              0  halui.axis.z.analog <== jog-z-analog
    10  float IN              0  halui.axis.z.increment
    10  bit   IN          FALSE  halui.axis.z.increment-minus
    10  bit   IN          FALSE  halui.axis.z.increment-plus
    10  bit   OUT         FALSE  halui.axis.z.is-selected
    10  bit   IN          FALSE  halui.axis.z.minus <== jog-z-neg
    10  bit   IN          FALSE  halui.axis.z.plus <== jog-z-pos
    10  float OUT             0  halui.axis.z.pos-commanded
    10  float OUT             0  halui.axis.z.pos-feedback
    10  float OUT             0  halui.axis.z.pos-relative
    10  bit   IN          FALSE  halui.axis.z.select <== axis-select-z
    10  bit   IN          FALSE  halui.estop.activate
    10  bit   OUT          TRUE  halui.estop.is-activated
    10  bit   IN          FALSE  halui.estop.reset
    10  bit   IN           TRUE  halui.feed-override.count-enable
    10  s32   IN              0  halui.feed-override.counts
    10  bit   IN          FALSE  halui.feed-override.decrease
    10  bit   IN          FALSE  halui.feed-override.direct-value
    10  bit   IN          FALSE  halui.feed-override.increase
    10  float IN            0.1  halui.feed-override.scale
    10  float OUT             1  halui.feed-override.value
    10  bit   OUT         FALSE  halui.flood.is-on
    10  bit   IN          FALSE  halui.flood.off
    10  bit   IN          FALSE  halui.flood.on
    10  float IN              0  halui.joint.0.analog
    10  bit   OUT         FALSE  halui.joint.0.has-fault
    10  bit   IN          FALSE  halui.joint.0.home
    10  float IN              0  halui.joint.0.increment
    10  bit   IN          FALSE  halui.joint.0.increment-minus
    10  bit   IN          FALSE  halui.joint.0.increment-plus
    10  bit   OUT         FALSE  halui.joint.0.is-homed ==> x-is-homed
    10  bit   OUT          TRUE  halui.joint.0.is-selected
    10  bit   IN          FALSE  halui.joint.0.minus
    10  bit   OUT         FALSE  halui.joint.0.on-hard-max-limit
    10  bit   OUT         FALSE  halui.joint.0.on-hard-min-limit
    10  bit   OUT         FALSE  halui.joint.0.on-soft-max-limit
    10  bit   OUT         FALSE  halui.joint.0.on-soft-min-limit
    10  bit   OUT         FALSE  halui.joint.0.override-limits
    10  bit   IN          FALSE  halui.joint.0.plus
    10  bit   IN          FALSE  halui.joint.0.select
    10  bit   IN          FALSE  halui.joint.0.unhome
    10  float IN              0  halui.joint.1.analog
    10  bit   OUT         FALSE  halui.joint.1.has-fault
    10  bit   IN          FALSE  halui.joint.1.home
    10  float IN              0  halui.joint.1.increment
    10  bit   IN          FALSE  halui.joint.1.increment-minus
    10  bit   IN          FALSE  halui.joint.1.increment-plus
    10  bit   OUT         FALSE  halui.joint.1.is-homed ==> y-is-homed
    10  bit   OUT         FALSE  halui.joint.1.is-selected
    10  bit   IN          FALSE  halui.joint.1.minus
    10  bit   OUT         FALSE  halui.joint.1.on-hard-max-limit
    10  bit   OUT         FALSE  halui.joint.1.on-hard-min-limit
    10  bit   OUT         FALSE  halui.joint.1.on-soft-max-limit
    10  bit   OUT         FALSE  halui.joint.1.on-soft-min-limit
    10  bit   OUT         FALSE  halui.joint.1.override-limits
    10  bit   IN          FALSE  halui.joint.1.plus
    10  bit   IN          FALSE  halui.joint.1.select
    10  bit   IN          FALSE  halui.joint.1.unhome
    10  float IN              0  halui.joint.2.analog
    10  bit   OUT         FALSE  halui.joint.2.has-fault
    10  bit   IN          FALSE  halui.joint.2.home
    10  float IN              0  halui.joint.2.increment
    10  bit   IN          FALSE  halui.joint.2.increment-minus
    10  bit   IN          FALSE  halui.joint.2.increment-plus
    10  bit   OUT         FALSE  halui.joint.2.is-homed ==> z-is-homed
    10  bit   OUT         FALSE  halui.joint.2.is-selected
    10  bit   IN          FALSE  halui.joint.2.minus
    10  bit   OUT         FALSE  halui.joint.2.on-hard-max-limit
    10  bit   OUT         FALSE  halui.joint.2.on-hard-min-limit
    10  bit   OUT         FALSE  halui.joint.2.on-soft-max-limit
    10  bit   OUT         FALSE  halui.joint.2.on-soft-min-limit
    10  bit   OUT         FALSE  halui.joint.2.override-limits
    10  bit   IN          FALSE  halui.joint.2.plus
    10  bit   IN          FALSE  halui.joint.2.select
    10  bit   IN          FALSE  halui.joint.2.unhome
    10  float IN            0.2  halui.joint.jog-deadband
    10  float IN              0  halui.joint.jog-speed
    10  u32   OUT    0x00000000  halui.joint.selected
    10  bit   OUT         FALSE  halui.joint.selected.has-fault
    10  bit   IN          FALSE  halui.joint.selected.home
    10  float IN              0  halui.joint.selected.increment
    10  bit   IN          FALSE  halui.joint.selected.increment-minus
    10  bit   IN          FALSE  halui.joint.selected.increment-plus
    10  bit   OUT         FALSE  halui.joint.selected.is-homed
    10  bit   IN          FALSE  halui.joint.selected.minus
    10  bit   OUT         FALSE  halui.joint.selected.on-hard-max-limit
    10  bit   OUT         FALSE  halui.joint.selected.on-hard-min-limit
    10  bit   OUT         FALSE  halui.joint.selected.on-soft-max-limit
    10  bit   OUT         FALSE  halui.joint.selected.on-soft-min-limit
    10  bit   OUT         FALSE  halui.joint.selected.override-limits
    10  bit   IN          FALSE  halui.joint.selected.plus
    10  bit   IN          FALSE  halui.joint.selected.unhome
    10  bit   OUT         FALSE  halui.lube.is-on
    10  bit   IN          FALSE  halui.lube.off
    10  bit   IN          FALSE  halui.lube.on
    10  bit   OUT         FALSE  halui.machine.is-on ==> machine-is-on
    10  bit   IN          FALSE  halui.machine.off
    10  bit   IN          FALSE  halui.machine.on
    10  float OUT    0.03937008  halui.machine.units-per-mm
    10  bit   IN           TRUE  halui.max-velocity.count-enable
    10  s32   IN              0  halui.max-velocity.counts
    10  bit   IN          FALSE  halui.max-velocity.decrease
    10  bit   IN          FALSE  halui.max-velocity.direct-value
    10  bit   IN          FALSE  halui.max-velocity.increase
    10  float IN              0  halui.max-velocity.scale
    10  float OUT             1  halui.max-velocity.value
    10  bit   OUT         FALSE  halui.mist.is-on
    10  bit   IN          FALSE  halui.mist.off
    10  bit   IN          FALSE  halui.mist.on
    10  bit   IN          FALSE  halui.mode.auto
    10  bit   OUT         FALSE  halui.mode.is-auto
    10  bit   OUT          TRUE  halui.mode.is-joint
    10  bit   OUT          TRUE  halui.mode.is-manual
    10  bit   OUT         FALSE  halui.mode.is-mdi ==> MDI-mode
    10  bit   OUT         FALSE  halui.mode.is-teleop
    10  bit   IN          FALSE  halui.mode.joint
    10  bit   IN          FALSE  halui.mode.manual
    10  bit   IN          FALSE  halui.mode.mdi
    10  bit   IN          FALSE  halui.mode.teleop
    10  bit   OUT          TRUE  halui.program.block-delete.is-on
    10  bit   IN          FALSE  halui.program.block-delete.off
    10  bit   IN          FALSE  halui.program.block-delete.on
    10  bit   OUT          TRUE  halui.program.is-idle
    10  bit   OUT         FALSE  halui.program.is-paused
    10  bit   OUT         FALSE  halui.program.is-running
    10  bit   OUT          TRUE  halui.program.optional-stop.is-on
    10  bit   IN          FALSE  halui.program.optional-stop.off
    10  bit   IN          FALSE  halui.program.optional-stop.on
    10  bit   IN          FALSE  halui.program.pause
    10  bit   IN          FALSE  halui.program.resume
    10  bit   IN          FALSE  halui.program.run
    10  bit   IN          FALSE  halui.program.step
    10  bit   IN          FALSE  halui.program.stop
    10  bit   IN           TRUE  halui.rapid-override.count-enable
    10  s32   IN              0  halui.rapid-override.counts
    10  bit   IN          FALSE  halui.rapid-override.decrease
    10  bit   IN          FALSE  halui.rapid-override.direct-value
    10  bit   IN          FALSE  halui.rapid-override.increase
    10  float IN            0.1  halui.rapid-override.scale
    10  float OUT             1  halui.rapid-override.value
    10  bit   OUT          TRUE  halui.spindle.0.brake-is-on
    10  bit   IN          FALSE  halui.spindle.0.brake-off
    10  bit   IN          FALSE  halui.spindle.0.brake-on
    10  bit   IN          FALSE  halui.spindle.0.decrease
    10  bit   IN          FALSE  halui.spindle.0.forward <== spindle-manual-cw
    10  bit   IN          FALSE  halui.spindle.0.increase
    10  bit   OUT         FALSE  halui.spindle.0.is-on
    10  bit   IN           TRUE  halui.spindle.0.override.count-enable
    10  s32   IN              0  halui.spindle.0.override.counts
    10  bit   IN          FALSE  halui.spindle.0.override.decrease
    10  bit   IN          FALSE  halui.spindle.0.override.direct-value
    10  bit   IN          FALSE  halui.spindle.0.override.increase
    10  float IN            0.1  halui.spindle.0.override.scale
    10  float OUT             1  halui.spindle.0.override.value
    10  bit   IN          FALSE  halui.spindle.0.reverse <== spindle-manual-ccw
    10  bit   OUT         FALSE  halui.spindle.0.runs-backward
    10  bit   OUT         FALSE  halui.spindle.0.runs-forward
    10  bit   IN          FALSE  halui.spindle.0.start
    10  bit   IN          FALSE  halui.spindle.0.stop <== spindle-manual-stop
    10  float OUT             0  halui.tool.diameter
    10  float OUT             0  halui.tool.length_offset.a
    10  float OUT             0  halui.tool.length_offset.b
    10  float OUT             0  halui.tool.length_offset.c
    10  float OUT             0  halui.tool.length_offset.u
    10  float OUT             0  halui.tool.length_offset.v
    10  float OUT             0  halui.tool.length_offset.w
    10  float OUT             0  halui.tool.length_offset.x
    10  float OUT             0  halui.tool.length_offset.y
    10  float OUT             0  halui.tool.length_offset.z
    10  u32   OUT    0x00000000  halui.tool.number
    26  s32   OUT    2098000000  hm2_7i76e.0.0.debug
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-00
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-00-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-01
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-01-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-02
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-02-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-03
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-03-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-04
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-04-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-05
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-05-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-06
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-06-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-07
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-07-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-08
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-08-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-09
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-09-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-10
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-10-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-11
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-11-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-12
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-12-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-13
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-13-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-14
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-14-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-15
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-15-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-16
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-16-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-17
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-17-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-18
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-18-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-19
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-19-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-20
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-20-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-21
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-21-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-22
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-22-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-23
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-23-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-24
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-24-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-25
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-25-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-26
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-26-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-27
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-27-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-28
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-28-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-29
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-29-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-30
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-30-not
    26  bit   OUT         FALSE  hm2_7i76e.0.7i76.0.0.input-31
    26  bit   OUT          TRUE  hm2_7i76e.0.7i76.0.0.input-31-not
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.output-00
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.output-01
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.output-02
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.output-03
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.output-04
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.output-05
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.output-06
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.output-07
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.output-08
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.output-09
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.output-10
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.output-11
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.output-12
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.output-13
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.output-14
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.output-15
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.spindir
    26  bit   IN          FALSE  hm2_7i76e.0.7i76.0.0.spinena
    26  float IN              0  hm2_7i76e.0.7i76.0.0.spinout
    26  float IN            -50  hm2_7i76e.0.dpll.01.timer-us
    26  float IN            100  hm2_7i76e.0.dpll.02.timer-us
    26  float IN            100  hm2_7i76e.0.dpll.03.timer-us
    26  float IN            100  hm2_7i76e.0.dpll.04.timer-us
    26  float IN              1  hm2_7i76e.0.dpll.base-freq-khz
    26  u32   OUT    0x0000002A  hm2_7i76e.0.dpll.ddsize
    26  float OUT     -2.851113  hm2_7i76e.0.dpll.phase-error-us
    26  u32   IN     0x00400000  hm2_7i76e.0.dpll.plimit
    26  u32   OUT    0x00000018  hm2_7i76e.0.dpll.prescale
    26  u32   IN     0x000007D0  hm2_7i76e.0.dpll.time-const
    26  s32   OUT             0  hm2_7i76e.0.encoder.00.count
    26  s32   OUT             0  hm2_7i76e.0.encoder.00.count-latched
    26  bit   I/O         FALSE  hm2_7i76e.0.encoder.00.index-enable
    26  bit   OUT         FALSE  hm2_7i76e.0.encoder.00.input-a
    26  bit   OUT         FALSE  hm2_7i76e.0.encoder.00.input-b
    26  bit   OUT          TRUE  hm2_7i76e.0.encoder.00.input-index
    26  bit   IN          FALSE  hm2_7i76e.0.encoder.00.latch-enable
    26  bit   IN          FALSE  hm2_7i76e.0.encoder.00.latch-polarity
    26  float OUT             0  hm2_7i76e.0.encoder.00.position
    26  float OUT             0  hm2_7i76e.0.encoder.00.position-latched
    26  bit   OUT         FALSE  hm2_7i76e.0.encoder.00.quad-error
    26  bit   IN          FALSE  hm2_7i76e.0.encoder.00.quad-error-enable
    26  s32   OUT             0  hm2_7i76e.0.encoder.00.rawcounts
    26  s32   OUT             0  hm2_7i76e.0.encoder.00.rawlatch
    26  bit   IN          FALSE  hm2_7i76e.0.encoder.00.reset
    26  float OUT             0  hm2_7i76e.0.encoder.00.velocity
    26  float OUT             0  hm2_7i76e.0.encoder.00.velocity-rpm
    26  u32   IN     0x017D7840  hm2_7i76e.0.encoder.sample-frequency
    26  s32   IN             -1  hm2_7i76e.0.encoder.timer-number
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.000.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.000.in_not
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.001.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.001.in_not
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.002.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.002.in_not
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.003.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.003.in_not
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.004.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.004.in_not
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.005.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.005.in_not
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.006.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.006.in_not
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.007.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.007.in_not
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.008.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.008.in_not
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.009.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.009.in_not
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.010.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.010.in_not
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.011.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.011.in_not
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.012.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.012.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.012.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.013.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.013.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.013.out
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.014.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.014.in_not
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.015.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.015.in_not
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.016.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.016.in_not
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.017.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.017.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.017.out
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.018.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.018.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.018.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.019.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.019.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.019.out
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.020.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.020.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.020.out
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.021.in ==> min-x
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.021.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.021.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.022.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.022.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.022.out
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.023.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.023.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.023.out
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.024.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.024.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.024.out
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.025.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.025.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.025.out
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.026.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.026.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.026.out
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.027.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.027.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.027.out
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.028.in
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.028.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.028.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.029.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.029.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.029.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.030.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.030.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.030.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.031.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.031.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.031.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.032.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.032.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.032.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.033.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.033.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.033.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.034.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.034.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.034.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.035.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.035.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.035.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.036.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.036.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.036.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.037.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.037.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.037.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.038.in ==> home-x
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.038.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.038.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.039.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.039.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.039.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.040.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.040.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.040.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.041.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.041.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.041.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.042.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.042.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.042.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.043.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.043.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.043.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.044.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.044.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.044.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.045.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.045.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.045.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.046.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.046.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.046.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.047.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.047.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.047.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.048.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.048.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.048.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.049.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.049.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.049.out
    26  bit   OUT          TRUE  hm2_7i76e.0.gpio.050.in
    26  bit   OUT         FALSE  hm2_7i76e.0.gpio.050.in_not
    26  bit   IN          FALSE  hm2_7i76e.0.gpio.050.out
    26  bit   IN          FALSE  hm2_7i76e.0.led.CR01
    26  bit   IN          FALSE  hm2_7i76e.0.led.CR02
    26  bit   IN          FALSE  hm2_7i76e.0.led.CR03
    26  bit   IN          FALSE  hm2_7i76e.0.led.CR04
    26  bit   OUT         FALSE  hm2_7i76e.0.packet-error
    26  bit   OUT         FALSE  hm2_7i76e.0.packet-error-exceeded
    26  s32   OUT             0  hm2_7i76e.0.packet-error-level
    26  s32   OUT             0  hm2_7i76e.0.read-request.time
    26  s32   OUT        178916  hm2_7i76e.0.read.time
    26  u32   OUT    0x00000000  hm2_7i76e.0.sserial.port-0.fault-count
    26  u32   OUT    0x00000003  hm2_7i76e.0.sserial.port-0.port_state
    26  u32   OUT    0x00000000  hm2_7i76e.0.sserial.port-0.port_state2
    26  u32   OUT    0x00000000  hm2_7i76e.0.sserial.port-0.port_state3
    26  bit   IN           TRUE  hm2_7i76e.0.sserial.port-0.run
    26  bit   IN           TRUE  hm2_7i76e.0.stepgen.00.control-type
    26  s32   OUT             0  hm2_7i76e.0.stepgen.00.counts
    26  float OUT             0  hm2_7i76e.0.stepgen.00.dbg_err_at_match
    26  float OUT             0  hm2_7i76e.0.stepgen.00.dbg_ff_vel
    26  float OUT             0  hm2_7i76e.0.stepgen.00.dbg_pos_minus_prev_cmd
    26  float OUT             0  hm2_7i76e.0.stepgen.00.dbg_s_to_match
    26  s32   OUT             0  hm2_7i76e.0.stepgen.00.dbg_step_rate
    26  float OUT             0  hm2_7i76e.0.stepgen.00.dbg_vel_error
    26  bit   IN          FALSE  hm2_7i76e.0.stepgen.00.enable <== x-enable
    26  float IN              0  hm2_7i76e.0.stepgen.00.position-cmd
    26  float OUT             0  hm2_7i76e.0.stepgen.00.position-fb ==> x-pos-fb
    26  float IN              0  hm2_7i76e.0.stepgen.00.velocity-cmd <== x-output
    26  float OUT             0  hm2_7i76e.0.stepgen.00.velocity-fb
    26  bit   IN           TRUE  hm2_7i76e.0.stepgen.01.control-type
    26  s32   OUT             0  hm2_7i76e.0.stepgen.01.counts
    26  float OUT             0  hm2_7i76e.0.stepgen.01.dbg_err_at_match
    26  float OUT             0  hm2_7i76e.0.stepgen.01.dbg_ff_vel
    26  float OUT             0  hm2_7i76e.0.stepgen.01.dbg_pos_minus_prev_cmd
    26  float OUT             0  hm2_7i76e.0.stepgen.01.dbg_s_to_match
    26  s32   OUT             0  hm2_7i76e.0.stepgen.01.dbg_step_rate
    26  float OUT             0  hm2_7i76e.0.stepgen.01.dbg_vel_error
    26  bit   IN          FALSE  hm2_7i76e.0.stepgen.01.enable <== y-enable
    26  float IN              0  hm2_7i76e.0.stepgen.01.position-cmd
    26  float OUT             0  hm2_7i76e.0.stepgen.01.position-fb ==> y-pos-fb
    26  float IN              0  hm2_7i76e.0.stepgen.01.velocity-cmd <== y-output
    26  float OUT             0  hm2_7i76e.0.stepgen.01.velocity-fb
    26  bit   IN           TRUE  hm2_7i76e.0.stepgen.02.control-type
    26  s32   OUT             0  hm2_7i76e.0.stepgen.02.counts
    26  float OUT             0  hm2_7i76e.0.stepgen.02.dbg_err_at_match
    26  float OUT             0  hm2_7i76e.0.stepgen.02.dbg_ff_vel
    26  float OUT             0  hm2_7i76e.0.stepgen.02.dbg_pos_minus_prev_cmd
    26  float OUT             0  hm2_7i76e.0.stepgen.02.dbg_s_to_match
    26  s32   OUT             0  hm2_7i76e.0.stepgen.02.dbg_step_rate
    26  float OUT             0  hm2_7i76e.0.stepgen.02.dbg_vel_error
    26  bit   IN          FALSE  hm2_7i76e.0.stepgen.02.enable <== z-enable
    26  float IN              0  hm2_7i76e.0.stepgen.02.position-cmd
    26  float OUT             0  hm2_7i76e.0.stepgen.02.position-fb ==> z-pos-fb
    26  float IN              0  hm2_7i76e.0.stepgen.02.velocity-cmd <== z-output
    26  float OUT             0  hm2_7i76e.0.stepgen.02.velocity-fb
    26  bit   IN          FALSE  hm2_7i76e.0.stepgen.03.control-type
    26  s32   OUT             0  hm2_7i76e.0.stepgen.03.counts
    26  float OUT             0  hm2_7i76e.0.stepgen.03.dbg_err_at_match
    26  float OUT             0  hm2_7i76e.0.stepgen.03.dbg_ff_vel
    26  float OUT             0  hm2_7i76e.0.stepgen.03.dbg_pos_minus_prev_cmd
    26  float OUT             0  hm2_7i76e.0.stepgen.03.dbg_s_to_match
    26  s32   OUT             0  hm2_7i76e.0.stepgen.03.dbg_step_rate
    26  float OUT             0  hm2_7i76e.0.stepgen.03.dbg_vel_error
    26  bit   IN          FALSE  hm2_7i76e.0.stepgen.03.enable
    26  float IN              0  hm2_7i76e.0.stepgen.03.position-cmd
    26  float OUT             0  hm2_7i76e.0.stepgen.03.position-fb
    26  float IN              0  hm2_7i76e.0.stepgen.03.velocity-cmd
    26  float OUT             0  hm2_7i76e.0.stepgen.03.velocity-fb
    26  bit   IN          FALSE  hm2_7i76e.0.stepgen.04.control-type
    26  s32   OUT             0  hm2_7i76e.0.stepgen.04.counts
    26  float OUT             0  hm2_7i76e.0.stepgen.04.dbg_err_at_match
    26  float OUT             0  hm2_7i76e.0.stepgen.04.dbg_ff_vel
    26  float OUT             0  hm2_7i76e.0.stepgen.04.dbg_pos_minus_prev_cmd
    26  float OUT             0  hm2_7i76e.0.stepgen.04.dbg_s_to_match
    26  s32   OUT             0  hm2_7i76e.0.stepgen.04.dbg_step_rate
    26  float OUT             0  hm2_7i76e.0.stepgen.04.dbg_vel_error
    26  bit   IN          FALSE  hm2_7i76e.0.stepgen.04.enable
    26  float IN              0  hm2_7i76e.0.stepgen.04.position-cmd
    26  float OUT             0  hm2_7i76e.0.stepgen.04.position-fb
    26  float IN              0  hm2_7i76e.0.stepgen.04.velocity-cmd
    26  float OUT             0  hm2_7i76e.0.stepgen.04.velocity-fb
    26  s32   IN              1  hm2_7i76e.0.stepgen.timer-number
    26  bit   I/O         FALSE  hm2_7i76e.0.watchdog.has_bit
    26  s32   OUT         16754  hm2_7i76e.0.write.time
    44  float IN              0  ini.0.backlash
    44  float IN            0.5  ini.0.ferror
    44  float IN              0  ini.0.home
    44  float IN              0  ini.0.home_offset
    44  s32   IN            999  ini.0.home_sequence
    44  float IN             30  ini.0.max_acceleration
    44  float IN              8  ini.0.max_limit
    44  float IN              1  ini.0.max_velocity
    44  float IN           0.05  ini.0.min_ferror
    44  float IN         -0.001  ini.0.min_limit
    44  float IN              0  ini.1.backlash
    44  float IN            0.5  ini.1.ferror
    44  float IN              0  ini.1.home
    44  float IN              0  ini.1.home_offset
    44  s32   IN            999  ini.1.home_sequence
    44  float IN             30  ini.1.max_acceleration
    44  float IN              8  ini.1.max_limit
    44  float IN              1  ini.1.max_velocity
    44  float IN           0.05  ini.1.min_ferror
    44  float IN         -0.001  ini.1.min_limit
    44  float IN              0  ini.2.backlash
    44  float IN            0.5  ini.2.ferror
    44  float IN              0  ini.2.home
    44  float IN              0  ini.2.home_offset
    44  s32   IN            999  ini.2.home_sequence
    44  float IN             30  ini.2.max_acceleration
    44  float IN          0.001  ini.2.max_limit
    44  float IN              1  ini.2.max_velocity
    44  float IN           0.05  ini.2.min_ferror
    44  float IN             -4  ini.2.min_limit
    44  float IN              0  ini.a.max_acceleration
    44  float IN              0  ini.a.max_limit
    44  float IN              0  ini.a.max_velocity
    44  float IN              0  ini.a.min_limit
    44  float IN              0  ini.b.max_acceleration
    44  float IN              0  ini.b.max_limit
    44  float IN              0  ini.b.max_velocity
    44  float IN              0  ini.b.min_limit
    44  float IN              0  ini.c.max_acceleration
    44  float IN              0  ini.c.max_limit
    44  float IN              0  ini.c.max_velocity
    44  float IN              0  ini.c.min_limit
    44  bit   IN           TRUE  ini.traj_arc_blend_enable
    44  bit   IN          FALSE  ini.traj_arc_blend_fallback_enable
    44  float IN              4  ini.traj_arc_blend_gap_cycles
    44  s32   IN             50  ini.traj_arc_blend_optimization_depth
    44  float IN            100  ini.traj_arc_blend_ramp_freq
    44  float IN            0.1  ini.traj_arc_blend_tangent_kink_ratio
    44  float IN          1e+99  ini.traj_default_acceleration
    44  float IN            0.1  ini.traj_default_velocity
    44  float IN          1e+99  ini.traj_max_acceleration
    44  float IN              1  ini.traj_max_velocity
    44  float IN              0  ini.u.max_acceleration
    44  float IN              0  ini.u.max_limit
    44  float IN              0  ini.u.max_velocity
    44  float IN              0  ini.u.min_limit
    44  float IN              0  ini.v.max_acceleration
    44  float IN              0  ini.v.max_limit
    44  float IN              0  ini.v.max_velocity
    44  float IN              0  ini.v.min_limit
    44  float IN              0  ini.w.max_acceleration
    44  float IN              0  ini.w.max_limit
    44  float IN              0  ini.w.max_velocity
    44  float IN              0  ini.w.min_limit
    44  float IN             30  ini.x.max_acceleration
    44  float IN              8  ini.x.max_limit
    44  float IN              1  ini.x.max_velocity
    44  float IN         -0.001  ini.x.min_limit
    44  float IN             30  ini.y.max_acceleration
    44  float IN              8  ini.y.max_limit
    44  float IN              1  ini.y.max_velocity
    44  float IN         -0.001  ini.y.min_limit
    44  float IN             30  ini.z.max_acceleration
    44  float IN          0.001  ini.z.max_limit
    44  float IN              1  ini.z.max_velocity
    44  float IN             -4  ini.z.min_limit
     4  bit   OUT         FALSE  iocontrol.0.coolant-flood ==> coolant-flood
     4  bit   OUT         FALSE  iocontrol.0.coolant-mist ==> coolant-mist
     4  bit   IN          FALSE  iocontrol.0.emc-enable-in <== estop-out
     4  bit   OUT         FALSE  iocontrol.0.lube
     4  bit   IN          FALSE  iocontrol.0.lube_level
     4  bit   OUT         FALSE  iocontrol.0.tool-change ==> tool-change-request
     4  bit   IN          FALSE  iocontrol.0.tool-changed <== tool-change-confirmed
     4  s32   OUT             0  iocontrol.0.tool-number
     4  s32   OUT             0  iocontrol.0.tool-prep-number ==> tool-number
     4  s32   OUT             0  iocontrol.0.tool-prep-pocket
     4  bit   OUT         FALSE  iocontrol.0.tool-prepare ==> tool-prepare-loopback
     4  bit   IN          FALSE  iocontrol.0.tool-prepared <== tool-prepare-loopback
     4  bit   OUT         FALSE  iocontrol.0.user-enable-out ==> estop-out
     4  bit   OUT         FALSE  iocontrol.0.user-request-enable
    19  float OUT             0  joint.0.acc-cmd
    19  bit   OUT          TRUE  joint.0.active
    19  bit   OUT         FALSE  joint.0.amp-enable-out ==> x-enable
    19  bit   IN          FALSE  joint.0.amp-fault-in
    19  float OUT             0  joint.0.backlash-corr
    19  float OUT             0  joint.0.backlash-filt
    19  float OUT             0  joint.0.backlash-vel
    19  float OUT             0  joint.0.coarse-pos-cmd
    19  bit   OUT         FALSE  joint.0.error
    19  float OUT             0  joint.0.f-error
    19  float OUT          0.05  joint.0.f-error-lim
    19  bit   OUT         FALSE  joint.0.f-errored
    19  bit   OUT         FALSE  joint.0.faulted
    19  float OUT             0  joint.0.free-pos-cmd
    19  bit   OUT         FALSE  joint.0.free-tp-enable
    19  float OUT             0  joint.0.free-vel-lim
    19  s32   OUT             0  joint.0.home-state
    19  bit   IN           TRUE  joint.0.home-sw-in <== home-x
    19  bit   OUT         FALSE  joint.0.homed
    19  bit   OUT         FALSE  joint.0.homing
    19  bit   OUT          TRUE  joint.0.in-position
    19  bit   I/O         FALSE  joint.0.index-enable
    19  float IN              1  joint.0.jog-accel-fraction
    19  s32   IN              0  joint.0.jog-counts
    19  bit   IN          FALSE  joint.0.jog-enable
    19  float IN              0  joint.0.jog-scale
    19  bit   IN          FALSE  joint.0.jog-vel-mode
    19  bit   OUT         FALSE  joint.0.kb-jog-active
    19  float OUT             0  joint.0.motor-offset
    19  float OUT             0  joint.0.motor-pos-cmd ==> x-pos-cmd
    19  float IN              0  joint.0.motor-pos-fb <== x-pos-fb
    19  bit   OUT         FALSE  joint.0.neg-hard-limit
    19  bit   IN          FALSE  joint.0.neg-lim-sw-in <== min-x
    19  float OUT             0  joint.0.pos-cmd
    19  float OUT             0  joint.0.pos-fb
    19  bit   OUT         FALSE  joint.0.pos-hard-limit
    19  bit   IN          FALSE  joint.0.pos-lim-sw-in <== x-pos-limit
    19  float OUT             0  joint.0.vel-cmd ==> x-vel-cmd
    19  bit   OUT         FALSE  joint.0.wheel-jog-active
    19  float OUT             0  joint.1.acc-cmd
    19  bit   OUT          TRUE  joint.1.active
    19  bit   OUT         FALSE  joint.1.amp-enable-out ==> y-enable
    19  bit   IN          FALSE  joint.1.amp-fault-in
    19  float OUT             0  joint.1.backlash-corr
    19  float OUT             0  joint.1.backlash-filt
    19  float OUT             0  joint.1.backlash-vel
    19  float OUT             0  joint.1.coarse-pos-cmd
    19  bit   OUT         FALSE  joint.1.error
    19  float OUT             0  joint.1.f-error
    19  float OUT          0.05  joint.1.f-error-lim
    19  bit   OUT         FALSE  joint.1.f-errored
    19  bit   OUT         FALSE  joint.1.faulted
    19  float OUT             0  joint.1.free-pos-cmd
    19  bit   OUT         FALSE  joint.1.free-tp-enable
    19  float OUT             0  joint.1.free-vel-lim
    19  s32   OUT             0  joint.1.home-state
    19  bit   IN          FALSE  joint.1.home-sw-in <== y-home-sw
    19  bit   OUT         FALSE  joint.1.homed
    19  bit   OUT         FALSE  joint.1.homing
    19  bit   OUT          TRUE  joint.1.in-position
    19  bit   I/O         FALSE  joint.1.index-enable
    19  float IN              1  joint.1.jog-accel-fraction
    19  s32   IN              0  joint.1.jog-counts
    19  bit   IN          FALSE  joint.1.jog-enable
    19  float IN              0  joint.1.jog-scale
    19  bit   IN          FALSE  joint.1.jog-vel-mode
    19  bit   OUT         FALSE  joint.1.kb-jog-active
    19  float OUT             0  joint.1.motor-offset
    19  float OUT             0  joint.1.motor-pos-cmd ==> y-pos-cmd
    19  float IN              0  joint.1.motor-pos-fb <== y-pos-fb
    19  bit   OUT         FALSE  joint.1.neg-hard-limit
    19  bit   IN          FALSE  joint.1.neg-lim-sw-in <== y-neg-limit
    19  float OUT             0  joint.1.pos-cmd
    19  float OUT             0  joint.1.pos-fb
    19  bit   OUT         FALSE  joint.1.pos-hard-limit
    19  bit   IN          FALSE  joint.1.pos-lim-sw-in <== y-pos-limit
    19  float OUT             0  joint.1.vel-cmd ==> y-vel-cmd
    19  bit   OUT         FALSE  joint.1.wheel-jog-active
    19  float OUT             0  joint.2.acc-cmd
    19  bit   OUT          TRUE  joint.2.active
    19  bit   OUT         FALSE  joint.2.amp-enable-out ==> z-enable
    19  bit   IN          FALSE  joint.2.amp-fault-in
    19  float OUT             0  joint.2.backlash-corr
    19  float OUT             0  joint.2.backlash-filt
    19  float OUT             0  joint.2.backlash-vel
    19  float OUT             0  joint.2.coarse-pos-cmd
    19  bit   OUT         FALSE  joint.2.error
    19  float OUT             0  joint.2.f-error
    19  float OUT          0.05  joint.2.f-error-lim
    19  bit   OUT         FALSE  joint.2.f-errored
    19  bit   OUT         FALSE  joint.2.faulted
    19  float OUT             0  joint.2.free-pos-cmd
    19  bit   OUT         FALSE  joint.2.free-tp-enable
    19  float OUT             0  joint.2.free-vel-lim
    19  s32   OUT             0  joint.2.home-state
    19  bit   IN          FALSE  joint.2.home-sw-in <== z-home-sw
    19  bit   OUT         FALSE  joint.2.homed
    19  bit   OUT         FALSE  joint.2.homing
    19  bit   OUT          TRUE  joint.2.in-position
    19  bit   I/O         FALSE  joint.2.index-enable
    19  float IN              1  joint.2.jog-accel-fraction
    19  s32   IN              0  joint.2.jog-counts
    19  bit   IN          FALSE  joint.2.jog-enable
    19  float IN              0  joint.2.jog-scale
    19  bit   IN          FALSE  joint.2.jog-vel-mode
    19  bit   OUT         FALSE  joint.2.kb-jog-active
    19  float OUT             0  joint.2.motor-offset
    19  float OUT             0  joint.2.motor-pos-cmd ==> z-pos-cmd
    19  float IN              0  joint.2.motor-pos-fb <== z-pos-fb
    19  bit   OUT         FALSE  joint.2.neg-hard-limit
    19  bit   IN          FALSE  joint.2.neg-lim-sw-in <== z-neg-limit
    19  float OUT             0  joint.2.pos-cmd
    19  float OUT             0  joint.2.pos-fb
    19  bit   OUT         FALSE  joint.2.pos-hard-limit
    19  bit   IN          FALSE  joint.2.pos-lim-sw-in <== z-pos-limit
    19  float OUT             0  joint.2.vel-cmd ==> z-vel-cmd
    19  bit   OUT         FALSE  joint.2.wheel-jog-active
    19  s32   OUT           240  motion-command-handler.time
    19  s32   OUT          4314  motion-controller.time
    19  float IN              1  motion.adaptive-feed
    19  float IN              0  motion.analog-in-00
    19  float IN              0  motion.analog-in-01
    19  float IN              0  motion.analog-in-02
    19  float IN              0  motion.analog-in-03
    19  float OUT             0  motion.analog-out-00
    19  float OUT             0  motion.analog-out-01
    19  float OUT             0  motion.analog-out-02
    19  float OUT             0  motion.analog-out-03
    19  bit   OUT         FALSE  motion.coord-error
    19  bit   OUT         FALSE  motion.coord-mode
    19  float OUT             0  motion.current-vel
    19  bit   IN          FALSE  motion.digital-in-00
    19  bit   IN          FALSE  motion.digital-in-01
    19  bit   IN          FALSE  motion.digital-in-02
    19  bit   IN          FALSE  motion.digital-in-03
    19  bit   OUT         FALSE  motion.digital-out-00
    19  bit   OUT         FALSE  motion.digital-out-01
    19  bit   OUT         FALSE  motion.digital-out-02
    19  bit   OUT         FALSE  motion.digital-out-03
    19  float OUT             0  motion.distance-to-go
    19  bit   IN           TRUE  motion.enable
    19  bit   OUT         FALSE  motion.eoffset-active
    19  bit   OUT         FALSE  motion.eoffset-limited
    19  bit   IN          FALSE  motion.feed-hold
    19  bit   IN          FALSE  motion.feed-inhibit
    19  bit   IN          FALSE  motion.homing-inhibit
    19  bit   OUT          TRUE  motion.in-position ==> in-position
    19  bit   OUT         FALSE  motion.motion-enabled ==> machine-is-enabled
    19  s32   OUT             0  motion.motion-type
    19  bit   OUT         FALSE  motion.on-soft-limit
    19  bit   IN          FALSE  motion.probe-input <== probe-in
    19  s32   OUT             0  motion.program-line
    19  float OUT             0  motion.requested-vel
    19  u32   OUT    0x0016D8E4  motion.servo.last-period
    19  bit   OUT         FALSE  motion.teleop-mode
    19  float OUT             0  motion.tooloffset.a
    19  float OUT             0  motion.tooloffset.b
    19  float OUT             0  motion.tooloffset.c
    19  float OUT             0  motion.tooloffset.u
    19  float OUT             0  motion.tooloffset.v
    19  float OUT             0  motion.tooloffset.w
    19  float OUT             0  motion.tooloffset.x
    19  float OUT             0  motion.tooloffset.y
    19  float OUT             0  motion.tooloffset.z
    19  bit   OUT         FALSE  motion.tp-reverse
    29  float IN              0  pid.s.Dgain
    29  float IN              1  pid.s.FF0
    29  float IN              0  pid.s.FF1
    29  float IN              0  pid.s.FF2
    29  float IN              0  pid.s.FF3
    29  float IN              0  pid.s.Igain
    29  float IN              0  pid.s.Pgain
    29  float IN              0  pid.s.bias
    29  float IN              0  pid.s.command <== spindle-vel-cmd-rpm
    29  float IN              0  pid.s.command-deriv
    29  float IN              0  pid.s.deadband
    29  s32   OUT           134  pid.s.do-pid-calcs.time
    29  bit   IN          FALSE  pid.s.enable <== spindle-enable
    29  float OUT             0  pid.s.error
    29  bit   IN           TRUE  pid.s.error-previous-target
    29  float IN              0  pid.s.feedback <== spindle-vel-fb-rpm
    29  float IN              0  pid.s.feedback-deriv
    29  bit   IN          FALSE  pid.s.index-enable <== spindle-index-enable
    29  float IN              0  pid.s.maxcmdD
    29  float IN              0  pid.s.maxcmdDD
    29  float IN              0  pid.s.maxcmdDDD
    29  float IN              0  pid.s.maxerror
    29  float IN              0  pid.s.maxerrorD
    29  float IN              0  pid.s.maxerrorI
    29  float IN           2000  pid.s.maxoutput
    29  float OUT             0  pid.s.output ==> spindle-output
    29  bit   OUT         FALSE  pid.s.saturated
    29  s32   OUT             0  pid.s.saturated-count
    29  float OUT             0  pid.s.saturated-s
    29  float IN              0  pid.x.Dgain
    29  float IN              0  pid.x.FF0
    29  float IN              1  pid.x.FF1
    29  float IN              0  pid.x.FF2
    29  float IN              0  pid.x.FF3
    29  float IN              0  pid.x.Igain
    29  float IN           1000  pid.x.Pgain
    29  float IN              0  pid.x.bias
    29  float IN              0  pid.x.command <== x-pos-cmd
    29  float IN              0  pid.x.command-deriv
    29  float IN              0  pid.x.deadband
    29  s32   OUT           414  pid.x.do-pid-calcs.time
    29  bit   IN          FALSE  pid.x.enable <== x-enable
    29  float OUT             0  pid.x.error
    29  bit   IN           TRUE  pid.x.error-previous-target
    29  float IN              0  pid.x.feedback <== x-pos-fb
    29  float IN              0  pid.x.feedback-deriv
    29  bit   IN          FALSE  pid.x.index-enable <== x-index-enable
    29  float IN              0  pid.x.maxcmdD
    29  float IN              0  pid.x.maxcmdDD
    29  float IN              0  pid.x.maxcmdDDD
    29  float IN         0.0005  pid.x.maxerror
    29  float IN              0  pid.x.maxerrorD
    29  float IN              0  pid.x.maxerrorI
    29  float IN              0  pid.x.maxoutput
    29  float OUT             0  pid.x.output ==> x-output
    29  bit   OUT         FALSE  pid.x.saturated
    29  s32   OUT             0  pid.x.saturated-count
    29  float OUT             0  pid.x.saturated-s
    29  float IN              0  pid.y.Dgain
    29  float IN              0  pid.y.FF0
    29  float IN              1  pid.y.FF1
    29  float IN              0  pid.y.FF2
    29  float IN              0  pid.y.FF3
    29  float IN              0  pid.y.Igain
    29  float IN           1000  pid.y.Pgain
    29  float IN              0  pid.y.bias
    29  float IN              0  pid.y.command <== y-pos-cmd
    29  float IN              0  pid.y.command-deriv
    29  float IN              0  pid.y.deadband
    29  s32   OUT           168  pid.y.do-pid-calcs.time
    29  bit   IN          FALSE  pid.y.enable <== y-enable
    29  float OUT             0  pid.y.error
    29  bit   IN           TRUE  pid.y.error-previous-target
    29  float IN              0  pid.y.feedback <== y-pos-fb
    29  float IN              0  pid.y.feedback-deriv
    29  bit   IN          FALSE  pid.y.index-enable <== y-index-enable
    29  float IN              0  pid.y.maxcmdD
    29  float IN              0  pid.y.maxcmdDD
    29  float IN              0  pid.y.maxcmdDDD
    29  float IN         0.0005  pid.y.maxerror
    29  float IN              0  pid.y.maxerrorD
    29  float IN              0  pid.y.maxerrorI
    29  float IN              0  pid.y.maxoutput
    29  float OUT             0  pid.y.output ==> y-output
    29  bit   OUT         FALSE  pid.y.saturated
    29  s32   OUT             0  pid.y.saturated-count
    29  float OUT             0  pid.y.saturated-s
    29  float IN              0  pid.z.Dgain
    29  float IN              0  pid.z.FF0
    29  float IN              1  pid.z.FF1
    29  float IN              0  pid.z.FF2
    29  float IN              0  pid.z.FF3
    29  float IN              0  pid.z.Igain
    29  float IN           1000  pid.z.Pgain
    29  float IN              0  pid.z.bias
    29  float IN              0  pid.z.command <== z-pos-cmd
    29  float IN              0  pid.z.command-deriv
    29  float IN              0  pid.z.deadband
    29  s32   OUT           156  pid.z.do-pid-calcs.time
    29  bit   IN          FALSE  pid.z.enable <== z-enable
    29  float OUT             0  pid.z.error
    29  bit   IN           TRUE  pid.z.error-previous-target
    29  float IN              0  pid.z.feedback <== z-pos-fb
    29  float IN              0  pid.z.feedback-deriv
    29  bit   IN          FALSE  pid.z.index-enable <== z-index-enable
    29  float IN              0  pid.z.maxcmdD
    29  float IN              0  pid.z.maxcmdDD
    29  float IN              0  pid.z.maxcmdDDD
    29  float IN         0.0005  pid.z.maxerror
    29  float IN              0  pid.z.maxerrorD
    29  float IN              0  pid.z.maxerrorI
    29  float IN              0  pid.z.maxoutput
    29  float OUT             0  pid.z.output ==> z-output
    29  bit   OUT         FALSE  pid.z.saturated
    29  s32   OUT             0  pid.z.saturated-count
    29  float OUT             0  pid.z.saturated-s
    20  s32   OUT        203466  servo-thread.time
    19  bit   IN          FALSE  spindle.0.amp-fault-in
    19  bit   IN           TRUE  spindle.0.at-speed <== spindle-at-speed
    19  bit   OUT          TRUE  spindle.0.brake ==> spindle-brake
    19  bit   OUT         FALSE  spindle.0.forward ==> spindle-cw
    19  bit   I/O         FALSE  spindle.0.index-enable <=> spindle-index-enable
    19  bit   IN          FALSE  spindle.0.inhibit
    19  bit   IN          FALSE  spindle.0.is-oriented
    19  bit   OUT         FALSE  spindle.0.locked
    19  bit   OUT         FALSE  spindle.0.on ==> spindle-enable
    19  bit   OUT         FALSE  spindle.0.orient
    19  float OUT             0  spindle.0.orient-angle
    19  s32   IN              0  spindle.0.orient-fault
    19  s32   OUT             0  spindle.0.orient-mode
    19  bit   OUT         FALSE  spindle.0.reverse ==> spindle-ccw
    19  float IN              0  spindle.0.revs <== spindle-revs
    19  float OUT             0  spindle.0.speed-cmd-rps
    19  float IN              0  spindle.0.speed-in <== spindle-vel-fb-rps
    19  float OUT             0  spindle.0.speed-out ==> spindle-vel-cmd-rpm
    19  float OUT             0  spindle.0.speed-out-abs ==> spindle-vel-cmd-rpm-abs
    19  float OUT             0  spindle.0.speed-out-rps ==> spindle-vel-cmd-rps
    19  float OUT             0  spindle.0.speed-out-rps-abs ==> spindle-vel-cmd-rps-abs

Pin Aliases:
 Alias                                            Original Name

Signals:
Type          Value  Name     (linked to)
bit           FALSE  MDI-mode
                         <== halui.mode.is-mdi
bit           FALSE  axis-select-x
                         ==> halui.axis.x.select
bit           FALSE  axis-select-y
                         ==> halui.axis.y.select
bit           FALSE  axis-select-z
                         ==> halui.axis.z.select
bit           FALSE  coolant-flood
                         <== iocontrol.0.coolant-flood
bit           FALSE  coolant-mist
                         <== iocontrol.0.coolant-mist
bit           FALSE  estop-out
                         ==> iocontrol.0.emc-enable-in
                         <== iocontrol.0.user-enable-out
bit            TRUE  home-x
                         <== hm2_7i76e.0.gpio.038.in
                         ==> joint.0.home-sw-in
bit            TRUE  in-position
                         <== motion.in-position
bit           FALSE  jog-selected-neg
                         ==> halui.axis.selected.minus
bit           FALSE  jog-selected-pos
                         ==> halui.axis.selected.plus
float             0  jog-speed
                         ==> halui.axis.jog-speed
float             0  jog-x-analog
                         ==> halui.axis.x.analog
bit           FALSE  jog-x-neg
                         ==> halui.axis.x.minus
bit           FALSE  jog-x-pos
                         ==> halui.axis.x.plus
float             0  jog-y-analog
                         ==> halui.axis.y.analog
bit           FALSE  jog-y-neg
                         ==> halui.axis.y.minus
bit           FALSE  jog-y-pos
                         ==> halui.axis.y.plus
float             0  jog-z-analog
                         ==> halui.axis.z.analog
bit           FALSE  jog-z-neg
                         ==> halui.axis.z.minus
bit           FALSE  jog-z-pos
                         ==> halui.axis.z.plus
bit           FALSE  machine-is-enabled
                         <== motion.motion-enabled
bit           FALSE  machine-is-on
                         <== halui.machine.is-on
bit           FALSE  min-x
                         <== hm2_7i76e.0.gpio.021.in
                         ==> joint.0.neg-lim-sw-in
bit           FALSE  probe-in
                         ==> motion.probe-input
bit            TRUE  spindle-at-speed
                         ==> spindle.0.at-speed
bit            TRUE  spindle-brake
                         <== spindle.0.brake
bit           FALSE  spindle-ccw
                         <== spindle.0.reverse
bit           FALSE  spindle-cw
                         <== spindle.0.forward
bit           FALSE  spindle-enable
                         ==> pid.s.enable
                         <== spindle.0.on
bit           FALSE  spindle-index-enable
                         ==> pid.s.index-enable
                         <=> spindle.0.index-enable
bit           FALSE  spindle-manual-ccw
                         ==> halui.spindle.0.reverse
bit           FALSE  spindle-manual-cw
                         ==> halui.spindle.0.forward
bit           FALSE  spindle-manual-stop
                         ==> halui.spindle.0.stop
float             0  spindle-output
                         <== pid.s.output
float             0  spindle-revs
                         ==> spindle.0.revs
float             0  spindle-vel-cmd-rpm
                         ==> pid.s.command
                         <== spindle.0.speed-out
float             0  spindle-vel-cmd-rpm-abs
                         <== spindle.0.speed-out-abs
float             0  spindle-vel-cmd-rps
                         <== spindle.0.speed-out-rps
float             0  spindle-vel-cmd-rps-abs
                         <== spindle.0.speed-out-rps-abs
float             0  spindle-vel-fb-rpm
                         ==> pid.s.feedback
float             0  spindle-vel-fb-rps
                         ==> spindle.0.speed-in
bit           FALSE  tool-change-confirmed
                         <== hal_manualtoolchange.changed
                         ==> iocontrol.0.tool-changed
bit           FALSE  tool-change-request
                         ==> hal_manualtoolchange.change
                         <== iocontrol.0.tool-change
s32               0  tool-number
                         ==> hal_manualtoolchange.number
                         <== iocontrol.0.tool-prep-number
bit           FALSE  tool-prepare-loopback
                         <== iocontrol.0.tool-prepare
                         ==> iocontrol.0.tool-prepared
bit           FALSE  x-enable
                         ==> hm2_7i76e.0.stepgen.00.enable
                         <== joint.0.amp-enable-out
                         ==> pid.x.enable
bit           FALSE  x-index-enable
                         ==> pid.x.index-enable
bit           FALSE  x-is-homed
                         <== halui.joint.0.is-homed
float             0  x-output
                         ==> hm2_7i76e.0.stepgen.00.velocity-cmd
                         <== pid.x.output
float             0  x-pos-cmd
                         <== joint.0.motor-pos-cmd
                         ==> pid.x.command
float             0  x-pos-fb
                         <== hm2_7i76e.0.stepgen.00.position-fb
                         ==> joint.0.motor-pos-fb
                         ==> pid.x.feedback
bit           FALSE  x-pos-limit
                         ==> joint.0.pos-lim-sw-in
float             0  x-vel-cmd
                         <== joint.0.vel-cmd
bit           FALSE  y-enable
                         ==> hm2_7i76e.0.stepgen.01.enable
                         <== joint.1.amp-enable-out
                         ==> pid.y.enable
bit           FALSE  y-home-sw
                         ==> joint.1.home-sw-in
bit           FALSE  y-index-enable
                         ==> pid.y.index-enable
bit           FALSE  y-is-homed
                         <== halui.joint.1.is-homed
bit           FALSE  y-neg-limit
                         ==> joint.1.neg-lim-sw-in
float             0  y-output
                         ==> hm2_7i76e.0.stepgen.01.velocity-cmd
                         <== pid.y.output
float             0  y-pos-cmd
                         <== joint.1.motor-pos-cmd
                         ==> pid.y.command
float             0  y-pos-fb
                         <== hm2_7i76e.0.stepgen.01.position-fb
                         ==> joint.1.motor-pos-fb
                         ==> pid.y.feedback
bit           FALSE  y-pos-limit
                         ==> joint.1.pos-lim-sw-in
float             0  y-vel-cmd
                         <== joint.1.vel-cmd
bit           FALSE  z-enable
                         ==> hm2_7i76e.0.stepgen.02.enable
                         <== joint.2.amp-enable-out
                         ==> pid.z.enable
bit           FALSE  z-home-sw
                         ==> joint.2.home-sw-in
bit           FALSE  z-index-enable
                         ==> pid.z.index-enable
bit           FALSE  z-is-homed
                         <== halui.joint.2.is-homed
bit           FALSE  z-neg-limit
                         ==> joint.2.neg-lim-sw-in
float             0  z-output
                         ==> hm2_7i76e.0.stepgen.02.velocity-cmd
                         <== pid.z.output
float             0  z-pos-cmd
                         <== joint.2.motor-pos-cmd
                         ==> pid.z.command
float             0  z-pos-fb
                         <== hm2_7i76e.0.stepgen.02.position-fb
                         ==> joint.2.motor-pos-fb
                         ==> pid.z.feedback
bit           FALSE  z-pos-limit
                         ==> joint.2.pos-lim-sw-in
float             0  z-vel-cmd
                         <== joint.2.vel-cmd

Parameters:
Owner   Type  Dir         Value  Name
    26  u32   RO     0x00000000  hm2_7i76e.0.7i76.0.0.analogin0
    26  u32   RO     0x00000000  hm2_7i76e.0.7i76.0.0.analogin1
    26  u32   RO     0x00000000  hm2_7i76e.0.7i76.0.0.analogin2
    26  u32   RO     0x00000000  hm2_7i76e.0.7i76.0.0.analogin3
    26  u32   RO     0x00000000  hm2_7i76e.0.7i76.0.0.encmode0
    26  u32   RO     0x00000000  hm2_7i76e.0.7i76.0.0.encmode1
    26  u32   RO     0x00005500  hm2_7i76e.0.7i76.0.0.fieldvoltage
    26  u32   RW     0x00000001  hm2_7i76e.0.7i76.0.0.hwrevision
    26  u32   RW     0x00000009  hm2_7i76e.0.7i76.0.0.nvbaudrate
    26  u32   RO     0x00000000  hm2_7i76e.0.7i76.0.0.nvencmode0
    26  u32   RO     0x00000000  hm2_7i76e.0.7i76.0.0.nvencmode1
    26  u32   RO     0x1A000094  hm2_7i76e.0.7i76.0.0.nvunitnumber
    26  u32   RO     0x00000032  hm2_7i76e.0.7i76.0.0.nvwatchdogtimeout
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.output-00-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.output-01-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.output-02-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.output-03-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.output-04-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.output-05-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.output-06-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.output-07-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.output-08-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.output-09-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.output-10-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.output-11-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.output-12-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.output-13-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.output-14-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.output-15-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.spindir-invert
    26  bit   RW          FALSE  hm2_7i76e.0.7i76.0.0.spinena-invert
    26  float RW            100  hm2_7i76e.0.7i76.0.0.spinout-maxlim
    26  float RW              0  hm2_7i76e.0.7i76.0.0.spinout-minlim
    26  float RW            100  hm2_7i76e.0.7i76.0.0.spinout-scalemax
    26  u32   RW     0x0000000E  hm2_7i76e.0.7i76.0.0.swrevision
    26  bit   RW          FALSE  hm2_7i76e.0.encoder.00.counter-mode
    26  bit   RW           TRUE  hm2_7i76e.0.encoder.00.filter
    26  bit   RW          FALSE  hm2_7i76e.0.encoder.00.index-invert
    26  bit   RW          FALSE  hm2_7i76e.0.encoder.00.index-mask
    26  bit   RW          FALSE  hm2_7i76e.0.encoder.00.index-mask-invert
    26  float RW              1  hm2_7i76e.0.encoder.00.scale
    26  float RW            0.5  hm2_7i76e.0.encoder.00.vel-timeout
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.012.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.012.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.012.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.013.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.013.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.013.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.017.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.017.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.017.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.018.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.018.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.018.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.019.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.019.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.019.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.020.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.020.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.020.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.021.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.021.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.021.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.022.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.022.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.022.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.023.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.023.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.023.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.024.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.024.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.024.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.025.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.025.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.025.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.026.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.026.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.026.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.027.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.027.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.027.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.028.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.028.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.028.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.029.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.029.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.029.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.030.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.030.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.030.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.031.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.031.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.031.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.032.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.032.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.032.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.033.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.033.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.033.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.034.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.034.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.034.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.035.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.035.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.035.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.036.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.036.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.036.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.037.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.037.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.037.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.038.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.038.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.038.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.039.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.039.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.039.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.040.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.040.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.040.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.041.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.041.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.041.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.042.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.042.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.042.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.043.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.043.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.043.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.044.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.044.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.044.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.045.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.045.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.045.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.046.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.046.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.046.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.047.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.047.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.047.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.048.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.048.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.048.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.049.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.049.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.049.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.050.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.050.is_opendrain
    26  bit   RW          FALSE  hm2_7i76e.0.gpio.050.is_output
    26  bit   RW          FALSE  hm2_7i76e.0.io_error
    26  s32   RO              1  hm2_7i76e.0.packet-error-decrement
    26  s32   RW              2  hm2_7i76e.0.packet-error-increment
    26  s32   RW             10  hm2_7i76e.0.packet-error-limit
    26  s32   RW             80  hm2_7i76e.0.packet-read-timeout
    26  s32   RW              0  hm2_7i76e.0.read-request.tmax
    26  bit   RO          FALSE  hm2_7i76e.0.read-request.tmax-increased
    26  s32   RW         321612  hm2_7i76e.0.read.tmax
    26  bit   RO          FALSE  hm2_7i76e.0.read.tmax-increased
    26  bit   RW          FALSE  hm2_7i76e.0.sserial.00.tx0.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.sserial.00.tx0.is_opendrain
    26  u32   RW     0x00000001  hm2_7i76e.0.sserial.port-0.fault-dec
    26  u32   RW     0x0000000A  hm2_7i76e.0.sserial.port-0.fault-inc
    26  u32   RW     0x000000C8  hm2_7i76e.0.sserial.port-0.fault-lim
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.00.direction.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.00.direction.is_opendrain
    26  u32   RW     0x00002710  hm2_7i76e.0.stepgen.00.dirhold
    26  u32   RW     0x00002710  hm2_7i76e.0.stepgen.00.dirsetup
    26  float RW           37.5  hm2_7i76e.0.stepgen.00.maxaccel
    26  float RW           1.25  hm2_7i76e.0.stepgen.00.maxvel
    26  float RW            200  hm2_7i76e.0.stepgen.00.position-scale
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.00.step.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.00.step.is_opendrain
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.00.step_type
    26  u32   RW     0x00001388  hm2_7i76e.0.stepgen.00.steplen
    26  u32   RW     0x00001388  hm2_7i76e.0.stepgen.00.stepspace
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.00.table-data-0
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.00.table-data-1
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.00.table-data-2
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.00.table-data-3
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.01.direction.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.01.direction.is_opendrain
    26  u32   RW     0x00002710  hm2_7i76e.0.stepgen.01.dirhold
    26  u32   RW     0x00002710  hm2_7i76e.0.stepgen.01.dirsetup
    26  float RW           37.5  hm2_7i76e.0.stepgen.01.maxaccel
    26  float RW           1.25  hm2_7i76e.0.stepgen.01.maxvel
    26  float RW            200  hm2_7i76e.0.stepgen.01.position-scale
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.01.step.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.01.step.is_opendrain
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.01.step_type
    26  u32   RW     0x00001388  hm2_7i76e.0.stepgen.01.steplen
    26  u32   RW     0x00001388  hm2_7i76e.0.stepgen.01.stepspace
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.01.table-data-0
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.01.table-data-1
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.01.table-data-2
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.01.table-data-3
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.02.direction.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.02.direction.is_opendrain
    26  u32   RW     0x00002710  hm2_7i76e.0.stepgen.02.dirhold
    26  u32   RW     0x00002710  hm2_7i76e.0.stepgen.02.dirsetup
    26  float RW           37.5  hm2_7i76e.0.stepgen.02.maxaccel
    26  float RW           1.25  hm2_7i76e.0.stepgen.02.maxvel
    26  float RW            200  hm2_7i76e.0.stepgen.02.position-scale
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.02.step.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.02.step.is_opendrain
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.02.step_type
    26  u32   RW     0x00001388  hm2_7i76e.0.stepgen.02.steplen
    26  u32   RW     0x00001388  hm2_7i76e.0.stepgen.02.stepspace
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.02.table-data-0
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.02.table-data-1
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.02.table-data-2
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.02.table-data-3
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.03.direction.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.03.direction.is_opendrain
    26  u32   RW     0x00027FF6  hm2_7i76e.0.stepgen.03.dirhold
    26  u32   RW     0x00027FF6  hm2_7i76e.0.stepgen.03.dirsetup
    26  float RW              1  hm2_7i76e.0.stepgen.03.maxaccel
    26  float RW              0  hm2_7i76e.0.stepgen.03.maxvel
    26  float RW              1  hm2_7i76e.0.stepgen.03.position-scale
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.03.step.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.03.step.is_opendrain
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.03.step_type
    26  u32   RW     0x00027FF6  hm2_7i76e.0.stepgen.03.steplen
    26  u32   RW     0x00027FF6  hm2_7i76e.0.stepgen.03.stepspace
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.03.table-data-0
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.03.table-data-1
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.03.table-data-2
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.03.table-data-3
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.04.direction.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.04.direction.is_opendrain
    26  u32   RW     0x00027FF6  hm2_7i76e.0.stepgen.04.dirhold
    26  u32   RW     0x00027FF6  hm2_7i76e.0.stepgen.04.dirsetup
    26  float RW              1  hm2_7i76e.0.stepgen.04.maxaccel
    26  float RW              0  hm2_7i76e.0.stepgen.04.maxvel
    26  float RW              1  hm2_7i76e.0.stepgen.04.position-scale
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.04.step.invert_output
    26  bit   RW          FALSE  hm2_7i76e.0.stepgen.04.step.is_opendrain
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.04.step_type
    26  u32   RW     0x00027FF6  hm2_7i76e.0.stepgen.04.steplen
    26  u32   RW     0x00027FF6  hm2_7i76e.0.stepgen.04.stepspace
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.04.table-data-0
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.04.table-data-1
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.04.table-data-2
    26  u32   RW     0x00000000  hm2_7i76e.0.stepgen.04.table-data-3
    26  u32   RW     0x004C4B40  hm2_7i76e.0.watchdog.timeout_ns
    26  s32   RW          89542  hm2_7i76e.0.write.tmax
    26  bit   RO          FALSE  hm2_7i76e.0.write.tmax-increased
     4  s32   RO              0  iocontrol.0.tool-prep-index
    19  s32   RW           5840  motion-command-handler.tmax
    19  bit   RO          FALSE  motion-command-handler.tmax-increased
    19  s32   RW          35502  motion-controller.tmax
    19  bit   RO          FALSE  motion-controller.tmax-increased
    19  bit   RO          FALSE  motion.debug-bit-0
    19  bit   RO          FALSE  motion.debug-bit-1
    19  float RO              0  motion.debug-float-0
    19  float RO              0  motion.debug-float-1
    19  float RO              0  motion.debug-float-2
    19  float RO              1  motion.debug-float-3
    19  s32   RO              0  motion.debug-s32-0
    19  s32   RO              0  motion.debug-s32-1
    29  s32   RW           1506  pid.s.do-pid-calcs.tmax
    29  bit   RO          FALSE  pid.s.do-pid-calcs.tmax-increased
    29  s32   RW           3640  pid.x.do-pid-calcs.tmax
    29  bit   RO          FALSE  pid.x.do-pid-calcs.tmax-increased
    29  s32   RW           1524  pid.y.do-pid-calcs.tmax
    29  bit   RO          FALSE  pid.y.do-pid-calcs.tmax-increased
    29  s32   RW           1922  pid.z.do-pid-calcs.tmax
    29  bit   RO          FALSE  pid.z.do-pid-calcs.tmax-increased
    20  s32   RW         432552  servo-thread.tmax
    19  float RO              0  tc.0.acc
    19  float RO              0  tc.0.pos
    19  float RO              0  tc.0.vel
    19  float RO              0  tc.1.acc
    19  float RO              0  tc.1.pos
    19  float RO              0  tc.1.vel
    19  float RO              0  tc.2.acc
    19  float RO              0  tc.2.pos
    19  float RO              0  tc.2.vel
    19  float RO              0  tc.3.acc
    19  float RO              0  tc.3.pos
    19  float RO              0  tc.3.vel
    19  u32   RO     0x00000000  traj.active_tc
    19  float RO              0  traj.pos_out
    19  float RO              0  traj.vel_out

Parameter Aliases:
 Alias                                            Original Name
 hm2_7i76e.0.sserial.00.tx0.invert_output         hm2_7i76e.0.gpio.010.invert_output
 hm2_7i76e.0.sserial.00.tx0.is_opendrain          hm2_7i76e.0.gpio.010.is_opendrain
 hm2_7i76e.0.stepgen.00.direction.invert_output   hm2_7i76e.0.gpio.000.invert_output
 hm2_7i76e.0.stepgen.00.direction.is_opendrain    hm2_7i76e.0.gpio.000.is_opendrain
 hm2_7i76e.0.stepgen.00.step.invert_output        hm2_7i76e.0.gpio.001.invert_output
 hm2_7i76e.0.stepgen.00.step.is_opendrain         hm2_7i76e.0.gpio.001.is_opendrain
 hm2_7i76e.0.stepgen.01.direction.invert_output   hm2_7i76e.0.gpio.002.invert_output
 hm2_7i76e.0.stepgen.01.direction.is_opendrain    hm2_7i76e.0.gpio.002.is_opendrain
 hm2_7i76e.0.stepgen.01.step.invert_output        hm2_7i76e.0.gpio.003.invert_output
 hm2_7i76e.0.stepgen.01.step.is_opendrain         hm2_7i76e.0.gpio.003.is_opendrain
 hm2_7i76e.0.stepgen.02.direction.invert_output   hm2_7i76e.0.gpio.004.invert_output
 hm2_7i76e.0.stepgen.02.direction.is_opendrain    hm2_7i76e.0.gpio.004.is_opendrain
 hm2_7i76e.0.stepgen.02.step.invert_output        hm2_7i76e.0.gpio.005.invert_output
 hm2_7i76e.0.stepgen.02.step.is_opendrain         hm2_7i76e.0.gpio.005.is_opendrain
 hm2_7i76e.0.stepgen.03.direction.invert_output   hm2_7i76e.0.gpio.006.invert_output
 hm2_7i76e.0.stepgen.03.direction.is_opendrain    hm2_7i76e.0.gpio.006.is_opendrain
 hm2_7i76e.0.stepgen.03.step.invert_output        hm2_7i76e.0.gpio.007.invert_output
 hm2_7i76e.0.stepgen.03.step.is_opendrain         hm2_7i76e.0.gpio.007.is_opendrain
 hm2_7i76e.0.stepgen.04.direction.invert_output   hm2_7i76e.0.gpio.008.invert_output
 hm2_7i76e.0.stepgen.04.direction.is_opendrain    hm2_7i76e.0.gpio.008.is_opendrain
 hm2_7i76e.0.stepgen.04.step.invert_output        hm2_7i76e.0.gpio.009.invert_output
 hm2_7i76e.0.stepgen.04.step.is_opendrain         hm2_7i76e.0.gpio.009.is_opendrain

Exported Functions:
Owner   CodeAddr  Arg       FP   Users  Name
 00026  7f572926f75d  5613e29ebb20  YES      1   hm2_7i76e.0.read
 00026  7f572926f6e9  5613e29ebb20  YES      0   hm2_7i76e.0.read-request
 00026  7f572926f606  5613e29ebb20  YES      1   hm2_7i76e.0.write
 00019  7f57297058d6  00000000  YES      1   motion-command-handler
 00019  7f57297091a3  00000000  YES      1   motion-controller
 00029  7f5728e5fd6a  7f572bc54da0  YES      1   pid.s.do-pid-calcs
 00029  7f5728e5fd6a  7f572bc549e0  YES      1   pid.x.do-pid-calcs
 00029  7f5728e5fd6a  7f572bc54b20  YES      1   pid.y.do-pid-calcs
 00029  7f5728e5fd6a  7f572bc54c60  YES      1   pid.z.do-pid-calcs

Realtime Threads:
     Period  FP     Name               (     Time, Max-Time )
    1000000  YES          servo-thread (   225578,   432552 )
                  1 hm2_7i76e.0.read
                  2 motion-command-handler
                  3 motion-controller
                  4 pid.x.do-pid-calcs
                  5 pid.y.do-pid-calcs
                  6 pid.z.do-pid-calcs
                  7 pid.s.do-pid-calcs
                  8 hm2_7i76e.0.write

Please Log in or Create an account to join the conversation.

More
03 Aug 2020 20:23 #177081 by jhandel
I am specifically using ping 5 because that is the start of the digital IO pins, and this isn't "analog" from what I gather.. But I can try to add a resistor.. going to make wiring "fun" if I need to add another BOB to convert 20+ signals over with a pull up resistor.

currently the wiring is
Sensor -> Propritary Bob-> one to one DB25 to pins Bob-> 7i86e

If what you are suggesting is true I have to create another "space" to add 20+ resistors to all of those inputs?

Please Log in or Create an account to join the conversation.

More
03 Aug 2020 20:30 #177083 by tommylight
hm2_7i76e.0.gpio.021.in
That is a pin on one of the two 26 pin headers on the 7i76E, so if they are not connected to a BOB and you have the sensor wired to that BOB, nothing will happen.
This is the pin in hal you should be using if the sensor is wired to the first input on 7i76E
hm2_7i76e.0.7i76.0.0.input-00

Please Log in or Create an account to join the conversation.

More
03 Aug 2020 20:36 - 03 Aug 2020 20:37 #177086 by jhandel
Wiring is to TB6:5 which is the first digital IO pin on the last set of plugs (right most edge of the diagram) according to forum.linuxcnc.org/media/kunena/attachme...hluss_2017-01-02.pdf page 6 (forum.linuxcnc.org/media/kunena/attachme...hluss_2017-01-02.pdf) according to that doc pin5 on TB6 is hm2_7i76e.0.7i76.0.0.input-20

Ignore the limit and home I picked in the Hal, that was just to get through PNCConfig so I could get to the HalMeter and HalScope.. I have tested every single of the IO pins in HalMeter (hm2_7i76e.0.7i76.0.0.input-00 through hm2_7i76e.0.7i76.0.0.input-30) and none of them are flipping as I tap a screw driver against the sensor.
Last edit: 03 Aug 2020 20:37 by jhandel.

Please Log in or Create an account to join the conversation.

More
03 Aug 2020 21:19 #177098 by tommylight
Pin 5 on TB6 is input 04, not 20.
Input 20 is on pin 5 TB5.
And again, you might need a pull up resistor as described above.

Please Log in or Create an account to join the conversation.

More
03 Aug 2020 21:22 #177102 by jhandel
having tried all of the pins, its in-material if it is 5 or 20.

would I need a pull-up resistor if this was a physical switch between the pin and common (0v)? because functionally that is what this is.. If the answer is yes "even with a physical switch between 0v and field (12v) you would need a pull up resistor then I guess, I do (100% suck for anyone using physical switches)..

I say that because that is how this digital switch from the BoB is behaving.. it is a connection to 0v when flipped.

Please Log in or Create an account to join the conversation.

More
03 Aug 2020 22:05 #177113 by tommylight
No need for a resistor if using a switch.
There are several types of sensor outputs, NPN, PNP, and push-pull. The latter works with any type of inputs, while the former ones are for use with sinking or sourcing inputs, respectively.
So if the sensor in your case is of NPN type, you do need a resistor for 7i76E inputs but not for the 7i76ED.
In the attached diagram the sensor goes through something, so without knowing what that does, it is hard to know what exactly to do.
You can always test the inputs by wiring 12V to one of the inputs and monitoring them with halshow.

Please Log in or Create an account to join the conversation.

More
03 Aug 2020 22:13 #177114 by jhandel
The propritary Bob converts all the sensors (and other IO) into digital signals connected to common (0v).. So when the sensor is on, the BoB makes a connection to common on that pin vs. the field 12v..

(Retro fit of something designed to interface with a Controller that worked with simple switches)

Effectively it is the same as this attached image.

I am going to grab a physical switch and test that field to common can be just a switch...

I did try a resistor.. when I did that the input would flip state once, and then get stuck, and wouldn't flip back..

Will post back when I try a physical switch between common & field.
Attachments:

Please Log in or Create an account to join the conversation.

Moderators: PCWjmelson
Time to create page: 0.091 seconds
Powered by Kunena Forum