7i96 and PlasmaC Permission Denied

More
21 Aug 2019 00:48 #142665 by MakingStuff

What is changed with PlasmaC?

OS?
LinuxCNC version?
LinuxCNC install method? (rip or normal)
Just hal file?


Nothing has changed on my machine. I have two icons on the desktop. One for the base machine config I created and one for PlasmaC config. If I click on the base machine icon, everything works. If I click on the PlasmaC icon I get the network unreachable error.

I'm using Debian 9 Stretch, 2.9 Master, Mesa 7i96.

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

More
21 Aug 2019 00:55 #142666 by rodw
You still have not told us the IP address you are using for your Mesa card or attached your Hal and ini files. Please tell me the IP

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

More
21 Aug 2019 00:55 #142668 by MakingStuff

Can you tell us the IP address of your mesa card?

From the error, its defaulting to
192.168.1.121

Its more likely that you need it to be 10.10.10.10

I did mention to check the data that is being used from your ini file to populate the hostmot2 command. Most likely, you just need a simple edit to your config (ini or hal file) to point to the correct IP address.


Yes the Mesa card is at 192.168.1.121. I don't know how to get the ip address to change on my machine. I tried the Network Connections GUI but had no luck. I don't think changing to 10.10.10.10 will solve the problem because it works with the base config at 192.168.1.121.

The [HOSTMOT2] section for both the Base and PlasmaC are identical and look like this:
DRIVER = hm2_eth
IPADDRESS = "192.168.1.121"
BOARD = 7i96
STEPGENS = 4
ENCODERS = 1
SSERIAL_PORT = 1

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

More
21 Aug 2019 01:01 #142669 by MakingStuff

I don't know what is happening here, PlasmaC 'should' have nothing to do with networking.

Can you post the HAL and INI file from the PlasmaC config directory.


Here is the ini file.


# this section only reqired if using the sim testing panel
# [APPLICATIONS]
# DELAY = 3
# APP = ./test/plasmac_test.py

# required
[PLASMAC]

# sets the operating mode, if not specified the default is 0
# 0 = use arc-voltage-in for arcOK and THC (no need to connect arc-ok-in, move-up-in and move-down-in)
# 1 = use arc-ok-in for arcOK and arc-voltage-in for THC (no need to connect move-up-in and move-down-in)
# 2 = use arc-ok-in for arcOK and move-down-in + move-up-in for THC (no need to connect arc-voltage-in)
MODE = 1

# enable(0) or disable(1) the plasmac config page, if not specified the default is enabled
CONFIG_DISABLE = 0

# the font for the Axis GUI, if not specified 'sans 10' will be used
# valid font sizes are from 10 to 15
FONT = sans 11

# the window size for the Axis GUI, 0 = minimum size to suit font, 1 = maximized
MAXIMISED = 0

# the theme for the Axis GUI tabs, if not specified the system theme will be used
THEME = Clearlooks

# percentage of cut-feed-rate used for paused motion speed
PAUSED-MOTION-SPEED = 50

# torch on time when manual pulse requested
TORCH-PULSE-TIME = 1.0

# for the five user buttons
# the text that appears on the button
# for multiple lines, split the lines with a \
# e.g. BUTTON_1_NAME = Clear \ Coordinates or
#BUTTON_n_NAME
BUTTON_1_NAME = Ohmic\Test
BUTTON_2_NAME = Probe\Test
BUTTON_3_NAME = Z\To Top
BUTTON_4_NAME = Load\Sheet
BUTTON_5_NAME = HAL\Show

# the command that the button sends
# for multiple lines, split the lines with a \
# e.g. BUTTON_1_NAME = Clear \ Coordinates or
# e.g. BUTTON_1_CODE = g0 x0 \ g1x10f100 \ g0x0
# ini file settings can be used, must be within {} and with a space between
# e.g. G0 X{JOINT_0 HOME}
# e.g. G0 X{JOINT_0 HOME} Y1
# e.g. G53 G0 Z[{AXIS_Z MAX_LIMIT} - 1.001]
# for an external command, precede the command with %
# e.g. %halshow
# external commands and gcode may be on the same code line
# e.g %halshow \ g0x.5y.5 \ %halmeter
# there are three special commands:
# probe-test, ohmic-test and cut-type
# using these will set/reset the corresponding hal pin in the component
# adding a number after probe-test will hold the pin for that number of seconds
# e.g. probe-test 15 will hold the halpin on for 15 seconds
# cut-type switches between pierce & cut and pierce only and will reload the current program
#BUTTON_n_CODE
BUTTON_1_CODE = ohmic-test
BUTTON_2_CODE = probe-test 3
BUTTON_3_CODE = G53 G0 Z[{AXIS_Z MAX_LIMIT} - 0.0401]
BUTTON_4_CODE = G53 G0 X{JOINT_0 HOME} Y1
BUTTON_5_CODE = %halshow

# this section required as is for removing z axis moves from the loaded gcode file
# this is optional and if used then plasmac_gcode.py needs to be set as executable
[FILTER]
PROGRAM_EXTENSION = .ngc remove z axis stuff
ngc = ./plasmac_gcode.py

[RS274NGC]
RS274NGC_STARTUP_CODE = o<imperial_startup> call
PARAMETER_FILE = imperial_parameters.txt

# required, ./ must be in this path
SUBROUTINE_PATH = ./:../../nc_files/subroutines

# required for reading ini and hal variables
FEATURES = 12

# required for our material change
USER_M_PATH = ./

[HAL]
# required
TWOPASS = ON
# the base machine
HALFILE = newplasma.hal
# the plasmac component connections
HALFILE = plasmac.hal
# the plasmac machine connections
HALFILE = newplasma_connections.hal
# use this for customisation after GUI has loaded
POSTGUI_HALFILE = postgui.hal
# required
HALUI = halui

[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
CYCLE_TIME = 0.1
INTRO_GRAPHIC = emc2.gif
INTRO_TIME = 0
OPEN_FILE = ""

TOOL_EDITOR = tooledit x y

# required
EMBED_TAB_NAME = Statistics
EMBED_TAB_COMMAND = gladevcp -c plasmac_stats -x {XID} -u ./plasmac_stats.py -H ./plasmac_stats.hal plasmac_stats.glade

# use one of the next two
# run panel in tab behind preview
EMBED_TAB_NAME = Plasma Run
EMBED_TAB_COMMAND = gladevcp -c plasmac_run -x {XID} -u ./plasmac_run.py -H plasmac_run.hal plasmac_run_tab.glade
# run panel in panel on right side
#GLADEVCP = -c plasmac_run -u ./plasmac_run.py -H plasmac_run.hal plasmac_run_panel.glade

EMBED_TAB_NAME = Plasma Config
EMBED_TAB_COMMAND = gladevcp -c plasmac_config -x {XID} -u ./plasmac_config.py -H plasmac_config.hal plasmac_config.glade

# required
USER_COMMAND_FILE = plasmac_axis.py

[EMC]
VERSION = 1.1
MACHINE = NewPlasma
DEBUG = 0x00000000

[HOSTMOT2]
DRIVER = hm2_eth
IPADDRESS = "192.168.1.121"
BOARD = 7i96
STEPGENS = 4
ENCODERS = 1
SSERIAL_PORT = 1

[KINS]
KINEMATICS = trivkins coordinates=XYZU
JOINTS = 4

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl

[EMCMOT]
EMCMOT = motmod
SERVO_PERIOD = 1000000

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[TRAJ]
SPINDLES = 2
COORDINATES = XYZU
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
MAX_LINEAR_VELOCITY = 5

[HALUI]

[AXIS_X]
MIN_LIMIT = -.5
MAX_LIMIT = 48
MAX_VELOCITY = 5
MAX_ACCELERATION = 30

[AXIS_Y]
MIN_LIMIT = -.5
MAX_LIMIT = 24
MAX_VELOCITY = 5
MAX_ACCELERATION = 30

[AXIS_Z]
MIN_LIMIT = -4
MAX_LIMIT = 4
# set to double the value in the corresponding joint
MAX_VELOCITY = 2.0
# set to double the value in the corresponding joint
MAX_ACCELERATION = 20.0
# shares the above two equally between the joint and the offset
OFFSET_AV_RATIO = 0.5

[AXIS_U]
MIN_LIMIT = -.5
MAX_LIMIT = 24
MAX_VELOCITY = 5
MAX_ACCELERATION = 30

[JOINT_0]
AXIS = X
MIN_LIMIT = -.5
MAX_LIMIT = 48
MAX_VELOCITY = 5
MAX_ACCELERATION = 30
TYPE = LINEAR
SCALE = 201.9
STEPGEN_MAX_VEL = 6.0
STEPGEN_MAX_ACC = 36.0
FERROR = 0.0002
MIN_FERROR = 0.0001
DIRSETUP = 5000
DIRHOLD = 5000
STEPLEN = 2500
STEPSPACE = 2500
DEADBAND = 0
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0.00013
BIAS = 0
MAX_OUTPUT = 0
MAX_ERROR = 0.0005
HOME_OFFSET = 0
HOME_SEARCH_VEL = -.5
HOME_LATCH_VEL = -.1
HOME_SEQUENCE = 0
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = False

[JOINT_1]
AXIS = Y
MIN_LIMIT = -.5
MAX_LIMIT = 24
MAX_VELOCITY = 5
MAX_ACCELERATION = 30
TYPE = LINEAR
SCALE = 201.9
STEPGEN_MAX_VEL = 6.0
STEPGEN_MAX_ACC = 36.0
FERROR = 0.0002
MIN_FERROR = 0.0001
DIRSETUP = 5000
DIRHOLD = 5000
STEPLEN = 2500
STEPSPACE = 2500
DEADBAND = 0
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0.00013
BIAS = 0
MAX_OUTPUT = 0
MAX_ERROR = 0.0005
HOME_OFFSET = 0
HOME_SEARCH_VEL = -.5
HOME_LATCH_VEL = -.1
HOME_SEQUENCE = 1
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = False

[JOINT_2]
AXIS = Z
MIN_LIMIT = -4
MAX_LIMIT = 4
MAX_VELOCITY = 1
MAX_ACCELERATION = 10
TYPE = LINEAR
SCALE = 4559
STEPGEN_MAX_VEL = 1.2
STEPGEN_MAX_ACC = 12.0
FERROR = 0.0002
MIN_FERROR = 0.0001
DIRSETUP = 5000
DIRHOLD = 5000
STEPLEN = 2500
STEPSPACE = 2500
DEADBAND = 0
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0.00013
BIAS = 0
MAX_OUTPUT = 0
MAX_ERROR = 0.0005
HOME = 0
HOME_SEQUENCE = 2
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = False

[JOINT_3]
AXIS = U
MIN_LIMIT = -.5
MAX_LIMIT = 24
MAX_VELOCITY = 5
MAX_ACCELERATION = 30
TYPE = LINEAR
SCALE = 201.9
STEPGEN_MAX_VEL = 6.0
STEPGEN_MAX_ACC = 36.0
FERROR = 0.0002
MIN_FERROR = 0.0001
DIRSETUP = 5000
DIRHOLD = 5000
STEPLEN = 2500
STEPSPACE = 2500
DEADBAND = 0
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0.00013
BIAS = 0
MAX_OUTPUT = 0
MAX_ERROR = 0.0005
HOME_OFFSET = 0
HOME_SEARCH_VEL = -.5
HOME_LATCH_VEL = -.1
HOME_SEQUENCE = 1
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = False

[SPINDLE]
SPINDLE_TYPE = False
SCALE =
PWM_FREQUENCY = 20000
MAX_RPM =
MIN_RPM =
DEADBAND =
P =
I =
D =
FF0 =
FF1 =
FF2 =
BIAS =
MAX_ERROR =

[INPUTS]
# DO NOT change the input text
INPUT_0 = Home
INPUT_JOINT_0 = 0
INPUT_1 = Home
INPUT_JOINT_1 = 1
INPUT_2 = Home
INPUT_JOINT_2 = 2
INPUT_3 = Home
INPUT_JOINT_3 = 3
INPUT_4 = Select
INPUT_JOINT_4 = False
INPUT_5 = Select
INPUT_JOINT_5 = False
INPUT_6 = Select
INPUT_JOINT_6 = False
INPUT_7 = Select
INPUT_JOINT_7 = False
INPUT_8 = Select
INPUT_JOINT_8 = False
INPUT_9 = Select
INPUT_JOINT_9 = False
INPUT_10 = Select
INPUT_JOINT_10 = False

[OUTPUTS]
# DO NOT change the output text
OUTPUT_0 = Coolant Flood
OUTPUT_1 = Coolant Mist
OUTPUT_2 = Select
OUTPUT_3 = Select
OUTPUT_4 = Select

[OPTIONS]
MANUAL_TOOL_CHANGE = False
HALUI = False
PYVCP = False
GLADEVCP = False
LADDER = False





And here is the hal file:




# This file was created with the 7i96 Wizard on Jul 13 2019 15:27:21
# If you make changes to this file DO NOT run the configuration tool again!
# This file will be replaced with a new file if you do!

# kinematics
loadrt [KINS]KINEMATICS

# motion controller
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS

# standard components
loadrt pid num_chan=4

# hostmot2 driver
loadrt hostmot2

loadrt [HOSTMOT2](DRIVER) board_ip=[HOSTMOT2](IPADDRESS) config="num_encoders=[HOSTMOT2](ENCODERS)num_stepgens=[HOSTMOT2](STEPGENS)"sserial_port_0=[HOSTMOT2](SSERIAL_PORT)
setp hm2_[HOSTMOT2](BOARD).0.watchdog.timeout_ns 25000000

# THREADS
addf hm2_[HOSTMOT2](BOARD).0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
setp hm2_[HOSTMOT2](BOARD).0.dpll.01.timer-us -100
setp hm2_[HOSTMOT2](BOARD).0.stepgen.timer-number 1
addf pid.0.do-pid-calcs servo-thread
addf pid.1.do-pid-calcs servo-thread
addf pid.2.do-pid-calcs servo-thread
addf pid.3.do-pid-calcs servo-thread
addf hm2_[HOSTMOT2](BOARD).0.write servo-thread

# Joint 0
# axis enable chain
newsig emcmot.0.enable bit
sets emcmot.0.enable FALSE
net emcmot.0.enable <= joint.0.amp-enable-out
net emcmot.0.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable pid.0.enable

# position command and feedback
net emcmot.0.pos-cmd joint.0.motor-pos-cmd => pid.0.command
net motor.0.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb joint.0.motor-pos-fb pid.0.feedback
net motor.0.command pid.0.output hm2_[HOSTMOT2](BOARD).0.stepgen.00.velocity-cmd
setp pid.0.error-previous-target true

setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [JOINT_0]DIRSETUP
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [JOINT_0]DIRHOLD
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [JOINT_0]STEPLEN
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [JOINT_0]STEPSPACE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [JOINT_0]SCALE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel [JOINT_0]STEPGEN_MAX_VEL
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAX_ACC
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.control-type 1

setp pid.0.Pgain [JOINT_0]P
setp pid.0.Igain [JOINT_0]I
setp pid.0.Dgain [JOINT_0]D
setp pid.0.bias [JOINT_0]BIAS
setp pid.0.FF0 [JOINT_0]FF0
setp pid.0.FF1 [JOINT_0]FF1
setp pid.0.FF2 [JOINT_0]FF2
setp pid.0.deadband [JOINT_0]DEADBAND
setp pid.0.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.0.maxerror [JOINT_0]MAX_ERROR

# Joint 1
# axis enable chain
newsig emcmot.1.enable bit
sets emcmot.1.enable FALSE
net emcmot.1.enable <= joint.1.amp-enable-out
net emcmot.1.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.01.enable pid.1.enable

# position command and feedback
net emcmot.1.pos-cmd joint.1.motor-pos-cmd => pid.1.command
net motor.1.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-fb joint.1.motor-pos-fb pid.1.feedback
net motor.1.command pid.1.output hm2_[HOSTMOT2](BOARD).0.stepgen.01.velocity-cmd
setp pid.1.error-previous-target true

setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirsetup [JOINT_1]DIRSETUP
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirhold [JOINT_1]DIRHOLD
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.steplen [JOINT_1]STEPLEN
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.stepspace [JOINT_1]STEPSPACE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-scale [JOINT_1]SCALE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxvel [JOINT_1]STEPGEN_MAX_VEL
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAX_ACC
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.step_type 0
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.control-type 1

setp pid.1.Pgain [JOINT_1]P
setp pid.1.Igain [JOINT_1]I
setp pid.1.Dgain [JOINT_1]D
setp pid.1.bias [JOINT_1]BIAS
setp pid.1.FF0 [JOINT_1]FF0
setp pid.1.FF1 [JOINT_1]FF1
setp pid.1.FF2 [JOINT_1]FF2
setp pid.1.deadband [JOINT_1]DEADBAND
setp pid.1.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.1.maxerror [JOINT_1]MAX_ERROR

# Joint 2
# axis enable chain
newsig emcmot.2.enable bit
sets emcmot.2.enable FALSE
net emcmot.2.enable <= joint.2.amp-enable-out
net emcmot.2.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.02.enable pid.2.enable

# position command and feedback
net emcmot.2.pos-cmd joint.2.motor-pos-cmd => pid.2.command
net motor.2.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-fb joint.2.motor-pos-fb pid.2.feedback
net motor.2.command pid.2.output hm2_[HOSTMOT2](BOARD).0.stepgen.02.velocity-cmd
setp pid.2.error-previous-target true

setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirsetup [JOINT_2]DIRSETUP
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirhold [JOINT_2]DIRHOLD
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.steplen [JOINT_2]STEPLEN
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.stepspace [JOINT_2]STEPSPACE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-scale [JOINT_2]SCALE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAX_VEL
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAX_ACC
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.step_type 0
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.control-type 1

setp pid.2.Pgain [JOINT_2]P
setp pid.2.Igain [JOINT_2]I
setp pid.2.Dgain [JOINT_2]D
setp pid.2.bias [JOINT_2]BIAS
setp pid.2.FF0 [JOINT_2]FF0
setp pid.2.FF1 [JOINT_2]FF1
setp pid.2.FF2 [JOINT_2]FF2
setp pid.2.deadband [JOINT_2]DEADBAND
setp pid.2.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.2.maxerror [JOINT_2]MAX_ERROR

# Joint 3
# axis enable chain
newsig emcmot.3.enable bit
sets emcmot.3.enable FALSE
net emcmot.3.enable <= joint.3.amp-enable-out
net emcmot.3.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.03.enable pid.3.enable

# position command and feedback
net emcmot.3.pos-cmd joint.3.motor-pos-cmd => pid.3.command
net motor.3.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.03.position-fb joint.3.motor-pos-fb pid.3.feedback
net motor.3.command pid.3.output hm2_[HOSTMOT2](BOARD).0.stepgen.03.velocity-cmd
setp pid.3.error-previous-target true

setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.dirsetup [JOINT_3]DIRSETUP
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.dirhold [JOINT_3]DIRHOLD
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.steplen [JOINT_3]STEPLEN
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.stepspace [JOINT_3]STEPSPACE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.position-scale [JOINT_3]SCALE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.maxvel [JOINT_3]STEPGEN_MAX_VEL
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.maxaccel [JOINT_3]STEPGEN_MAX_ACC
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.step_type 0
setp hm2_[HOSTMOT2](BOARD).0.stepgen.03.control-type 1

setp pid.3.Pgain [JOINT_3]P
setp pid.3.Igain [JOINT_3]I
setp pid.3.Dgain [JOINT_3]D
setp pid.3.bias [JOINT_3]BIAS
setp pid.3.FF0 [JOINT_3]FF0
setp pid.3.FF1 [JOINT_3]FF1
setp pid.3.FF2 [JOINT_3]FF2
setp pid.3.deadband [JOINT_3]DEADBAND
setp pid.3.maxoutput [JOINT_3]MAX_OUTPUT
setp pid.3.maxerror [JOINT_3]MAX_ERROR

# Spindle
#setp hm2_7i96.0.pwmgen.00.output-type 0
#setp hm2_7i96.0.pwmgen.00.scale [SPINDLE]MAX_RPM
#setp hm2_7i96.0.pwmgen.pwm_frequency [SPINDLE]PWM_FREQUENCY

# Standard I/O Block - EStop, Etc
# create a signal for the estop loopback
net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in

#Toolchange passthrough
net tool:change iocontrol.0.tool-change => iocontrol.0.tool-changed
net tool:prep iocontrol.0.tool-prepare => iocontrol.0.tool-prepared

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

More
21 Aug 2019 01:28 - 21 Aug 2019 01:29 #142670 by phillc54
I do see an issue with the following line although this is a separate issue:

loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS

This loads the motion controller from variables in the ini file and the Configurator expects a "loadrt motmod" so it can specify two spindles. I will fix that.
In the interim, comment it out and try it like this:

loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS num_spindles=[TRAJ]SPINDLES



Is the following line identical to the line in the working base machine?
I am not 100% sure of the " between (STEPGENS) and sserial or whether spaces are required between config items.

loadrt [HOSTMOT2](DRIVER) board_ip=[HOSTMOT2](IPADDRESS) config="num_encoders=[HOSTMOT2](ENCODERS)num_stepgens=[HOSTMOT2](STEPGENS)"sserial_port_0=[HOSTMOT2](SSERIAL_PORT)

If so, comment it out and try it like this:

loadrt hm2_eth board_ip="192.168.1.121" config="num_encoders=1 num_stepgens=4 sserial_port_0=1"

Last edit: 21 Aug 2019 01:29 by phillc54.

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

More
21 Aug 2019 01:52 - 21 Aug 2019 02:04 #142673 by dgarrett
Phil is on the right track.
loadrt [HOSTMOT2](DRIVER) board_ip=[HOSTMOT2](IPADDRESS) config="num_encoders=[HOSTMOT2](ENCODERS)num_stepgens=[HOSTMOT2](STEPGENS)"sserial_port_0=[HOSTMOT2](SSERIAL_PORT)

This line is *non-conforming* to the hostmot2 manpage
but might get handled by halcmd but not parsed
correctly when using twopass.
$ man hostmot2
...
The config string can contain spaces, so it is
usually a good idea to wrap the whole thing in
double-quotes  (the  "  charac‐ ter).

The comma character (,) separates members of the
config array from each other.

For example, if your control computer has one 5i20
and one 5i23 you might load the hm2_pci driver
with a HAL command (in hal‐ cmd) something like
this:

loadrt hm2_pci config="firmware=hm2/5i20/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=3,firmware=hm2/5i23/SVSS8_8.BIT sserial_port_0=0000 num_encoders=4"
...

The manpage is not clear (to me) when spaces
(versus commas) are allowed or required but the
double quotes ("") should probably enclose all.

Example1 for test (space,trailing ") (if using twopass):
loadrt [HOSTMOT2](DRIVER) board_ip=[HOSTMOT2](IPADDRESS) config="num_encoders=[HOSTMOT2](ENCODERS) num_stepgens=[HOSTMOT2](STEPGENS) sserial_port_0=[HOSTMOT2](SSERIAL_PORT)"

Example2 for test (comma,trailing ") (if using twopass):
loadrt [HOSTMOT2](DRIVER) board_ip=[HOSTMOT2](IPADDRESS) config="num_encoders=[HOSTMOT2](ENCODERS) num_stepgens=[HOSTMOT2](STEPGENS),sserial_port_0=[HOSTMOT2](SSERIAL_PORT)"

Note: in the above examples, all text is on one-line
regardless of any linesplits shown in this forum presentation

As mentioned upthread, putting this single loadrt line in a separate halfile
with the #NOTWOPASS magic comment is likely the simplest
method to workaround parsing issues for complex or non-conforming
loadrt lines.
Last edit: 21 Aug 2019 02:04 by dgarrett.
The following user(s) said Thank You: phillc54

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

More
21 Aug 2019 02:29 #142675 by MakingStuff
Ok I am close to getting this to work. I first made this change to the hal file and the Mesa board was recognized on startup. Network error solved!

loadrt hm2_eth board_ip="192.168.1.121" config="num_encoders=1 num_stepgens=4 sserial_port_0=1"


Then I got spindle error. So I made the change in your second recomendation. Which solved the spindle error.

loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS num_spindles=[TRAJ]SPINDLES


Now I'm getting a "Pin '4' does not exist" error in my newplasma_connects.hal. I have tried several different pin numbers and they all give the same error. I feel kinda dumb here but what is the correct naming convention for the pins on the 7i96 input pins?

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

More
21 Aug 2019 02:36 #142676 by phillc54
Have a look here

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

More
21 Aug 2019 03:12 #142677 by MakingStuff

Have a look here


That got it working but now there is a popup that gives a python error when LinuxCNC loads. If I hit the OK button LinuxCNC continues to load, but there seems to be some stuff missing. Nothing is shown below the Axis on the left of the screen. The monitor panel, button panel and control panels also are missing. I do see the Plasma Run Tab and Plasma Config Tab.

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

More
21 Aug 2019 03:22 #142678 by phillc54
What does the popup say?

Can you try to run from a terminal then post all the terminal output form the linuxcnc command to the end.

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

Moderators: snowgoer540
Time to create page: 0.099 seconds
Powered by Kunena Forum