Advanced Search

Search Results (Searched for: estop_latch)

08 Jun 2023 08:01

Disable cycle start / run button until conditions are met?

Category: Gmoccapy

Hey guys, thanks for the advice.

I'm pushing a deadline so I had to go for a sub-optimal solution: estop if a program is started when sensors aren't in the ideal state. I did it in classicladder, which is handy and super awkward to use at the same time, still have no idea how to change the name of one of the sections nor how to name the variables.

The logic is basically:
If sensors != true && halui.program.is-running==true: estop latch input.

To make it slightly more user friendly I'll put a little glade panel of the sensor statuses down the side of the screen so they can check before hitting start, it's just a prototype so I'll work on hacking gmooccapy/make a custom UI at some point.

Thanks again.
 
06 Jun 2023 09:32

Disable cycle start / run button until conditions are met?

Category: Gmoccapy

You can either physically add your sensors to your estop chain or you can build your estop chain in software with the estop-latch component. 

There is an example in the forum here under hal examples of using estop-latch but it only uses 1 estop but chaining them together is the way to solve this. 
31 May 2023 03:36 - 31 May 2023 03:53
Replied by genoccaj on topic Plasmac Setup Help

Plasmac Setup Help

Category: Plasmac

plasmac_connections.hal

# Keep your plasmac i/o connections here to prevent them from
# being overwritten by updates or pncconf/stepconf changes

# Other customisations may be placed here as well
# This file is built by the configurator in your configuration directory

#***** DEBOUNCE FOR THE INPUTS *****
loadrt dbounce names=db_breakaway,db_float,db_ohmic,db_arc-ok
addf db_float     servo-thread
addf db_ohmic     servo-thread
addf db_breakaway servo-thread
addf db_arc-ok    servo-thread
# for the float and ohmic inputs
# each increment in delay is a 0.001mm (0.00004") increase in any probed height result
setp db_float.delay     5
setp db_ohmic.delay     5
setp db_breakaway.delay 5
setp db_arc-ok.delay    5

#***** ARC VOLTAGE LOWPASS FILTER *****
# set the cutoff frequency if required
setp plasmac.lowpass-frequency 0

#***** THE JOINT ASSOCIATED WITH THE Z AXIS *****
net plasmac:axis-position joint.2.pos-fb => plasmac.axis-z-position

#***** PLASMA CONNECTIONS *****
#net plasmac:arc-voltage-in motion.digital-in-00 => plasmac.arc-voltage-in
net plasmac:float-switch parport.0.pin-12-in-not => db_float.in
# net plasmac:breakaway {YOUR BREAKAWAY PIN} => db_breakaway.in
# net plasmac:ohmic-probe {YOUR OHMIC PROBE PIN} => db_ohmic.in
# net plasmac:ohmic-enable plasmac.ohmic-enable  => {YOUR OHMIC ENABLE PIN}
net plasmac:torch-on => parport.0.pin-17-out

#***** MULTIPLE TOOL ENABLE *****
# set to 1 to enable a scribe or spotting
setp plasmac.multi-tool 0

#***** SCRIBE CONNECTIONS *****
# net plasmac:scribe-arm plasmac.scribe-arm => ***YOUR_SCRIBE_ARMING_OUTPUT***
# net plasmac:scribe-on  plasmac.scribe-on  => ***YOUR_SCRIBE_ON_OUTPUT***
net plasmac:arc-ok-in parport.0.pin-11-in-not => plasmac.arc-ok-in
net plasmac:move-up parport.0.pin-13-in-not => plasmac.move-up
net plasmac:move-down parport.0.pin-15-in-not => plasmac.move-down

plasmac.hal

# Generated by stepconf 1.1 at Wed Apr 26 14:38:14 2023
# If you make changes to this file, they will be
# overwritten when you run stepconf again
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS num_spindles=[TRAJ]SPINDLES
loadrt hal_parport cfg="0 out"
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0
loadrt pwmgen output_type=1
##########
loadrt thcud
loadrt estop_latch
##########


addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf pwmgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread

addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf pwmgen.update servo-thread

######
addf thcud servo-thread
addf estop-latch.0 servo-thread
#####


setp pwmgen.0.pwm-freq 100.0
setp pwmgen.0.scale 1166.66666667
setp pwmgen.0.offset 0.114285714286
setp pwmgen.0.dither-pwm true

net xstep           => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
setp parport.0.pin-03-out-invert 1
net xdir            => parport.0.pin-03-out
net ystep           => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
net ydir            => parport.0.pin-05-out
net xstep           => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
net xdir            => parport.0.pin-07-out
net zstep           => parport.0.pin-08-out
setp parport.0.pin-08-out-reset 1
net zdir            => parport.0.pin-09-out

setp thcud.correction-vel 0.0001
setp thcud.velocity-tol 10
setp thcud.enable true
setp thcud.torch-on true

#net zpos-cmd thcud.z-pos-in <= axis.2.motor-pos-cmd
#net thc-pos-cmd thcud.z-pos-out => stepgen.2.position-cmd
#net zpos-fb axis.2.motor-pos-fb <= thcud.z-fb-out




setp stepgen.0.position-scale [JOINT_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 40000
setp stepgen.0.dirsetup 40000
setp stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
net xpos-cmd joint.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => joint.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable joint.0.amp-enable-out => stepgen.0.enable

setp stepgen.1.position-scale [JOINT_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 40000
setp stepgen.1.dirsetup 40000
setp stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
net ypos-cmd joint.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => joint.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable joint.1.amp-enable-out => stepgen.1.enable

setp stepgen.2.position-scale [JOINT_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 40000
setp stepgen.2.dirsetup 40000
setp stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
net zpos-cmd joint.2.motor-pos-cmd => stepgen.2.position-cmd
net zpos-fb stepgen.2.position-fb => joint.2.motor-pos-fb
net zstep <= stepgen.2.step
net zdir <= stepgen.2.dir
net zenable joint.2.amp-enable-out => stepgen.2.enable


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

net estop-loopout iocontrol.0.emc-enable-in <= estop-latch.0.ok-out
net estop-loopin iocontrol.0.user-enable-out => estop-latch.0.ok-in
net estop-reset iocontrol.0.user-request-enable => estop-latch.0.reset
net remote-estop estop-latch.0.fault-in <=  parport.0.pin-10-in
######################


# loadusr -W hal_manualtoolchange
# net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
# net tool-changed 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

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

plasmac.ini

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

# required
[PLASMAC]

# required for upgrades (DO NOT CHANGE)
LAST_MAJOR_UPGRADE      = 0.144
DBOUNCE                 = 1

# 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 = 2

# 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 9 to 15
FONT                    = sans 10

# the window size for the Axis GUI
# 0 = minimum size to suit font
# 1 = maximized
# width x height = custom size
WINDOW_SIZE             = 0

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

# select portrait mode, if not specified the default is landscape
#AXIS_ORIENT            = portrait

# 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 Powermax communications
#PM_PORT                 = /dev/ttyUSB0

# for the five user buttons in the main window
BUTTON_1_NAME           = Ohmic\Test
BUTTON_1_CODE           = ohmic-test
BUTTON_2_NAME           = Probe\Test
BUTTON_2_CODE           = probe-test 30
BUTTON_3_NAME           = Change\Consumables
BUTTON_3_CODE           = change-consumables X0 Y0 F4000
BUTTON_4_NAME           = Pierce\& Cut
BUTTON_4_CODE           = cut-type
BUTTON_5_NAME           = Load\Sheet
BUTTON_5_CODE           = G53 G0 X{JOINT_0 HOME} Y1

# for the ten user buttons in the Extras panel
BUTTON_10_NAME           =
BUTTON_10_CODE           =
BUTTON_10_IMAGE          =
BUTTON_11_NAME           =
BUTTON_11_CODE           =
BUTTON_11_IMAGE          =
BUTTON_12_NAME           =
BUTTON_12_CODE           =
BUTTON_12_IMAGE          =
BUTTON_13_NAME           =
BUTTON_13_CODE           =
BUTTON_13_IMAGE          =
BUTTON_14_NAME           = PlasmaC\User Guide
BUTTON_14_CODE           = %xdg-open linuxcnc.org/docs/devel/html/plasma/plasmac-user-guide.html
BUTTON_14_IMAGE          =
BUTTON_15_NAME           =
BUTTON_15_CODE           =
BUTTON_15_IMAGE          =
BUTTON_16_NAME           =
BUTTON_16_CODE           =
BUTTON_16_IMAGE          =
BUTTON_17_NAME           =
BUTTON_17_CODE           =
BUTTON_17_IMAGE          =
BUTTON_18_NAME           =
BUTTON_18_CODE           =
BUTTON_18_IMAGE          =
BUTTON_19_NAME           = LinuxCNC\Docs
BUTTON_19_CODE           = %xdg-open linuxcnc.org/docs/devel/html
BUTTON_19_IMAGE          =

# 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 (filter gcode files)
ngc                     = ./plasmac/plasmac_gcode.py
nc                      = ./plasmac/plasmac_gcode.py
tap                     = ./plasmac/plasmac_gcode.py

[RS274NGC]
RS274NGC_STARTUP_CODE   = o<metric_startup> call
PARAMETER_FILE          = metric_parameters.txt

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

# required for reading ini and hal variables
FEATURES                = 12

# required for our material change
USER_M_PATH             = ./:./plasmac

[HAL]
# required
TWOPASS = ON
# the base machine
HALFILE = apex_plasmac.hal
# the plasmac component connections
HALFILE = ./plasmac/plasmac.tcl
# the plasma machine  and custom connections
HALFILE = apex_plasmac_connections.hal
# use this for customisation after GUI has loaded
POSTGUI_HALFILE = postgui.tcl
# required
HALUI = halui

[DISPLAY]
#DISPLAY = gmoccapy
DISPLAY = axis
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
ARCDIVISION = 64
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
MAX_FEED_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = 0.5
MAX_SPINDLE_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 20.00
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 200.00
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/apexcnc/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
OPEN_FILE = ""
TOOL_EDITOR = tooledit x y
CYCLE_TIME = 0.1

# required
USER_COMMAND_FILE = ./plasmac/plasmac_axis.py

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

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

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

EMBED_TAB_NAME          = Extras
EMBED_TAB_COMMAND       = gladevcp -c plasmac_wizards -x {XID} -u ./plasmac/plasmac_wizards.py ./plasmac/plasmac_wizards.glade

[EMC]
MACHINE = Apex_Plasmac
DEBUG = 0
VERSION = 1.1

[KINS]
JOINTS = 3
KINEMATICS = trivkins coordinates=XYZ

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 35000
SERVO_PERIOD = 1000000

[TRAJ]
SPINDLES = 3
COORDINATES =  X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 20.00
MAX_LINEAR_VELOCITY = 200.00

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

[AXIS_X]
# set to double the value in the corresponding joint
MAX_VELOCITY = 400.0
# set to double the value in the corresponding joint
MAX_ACCELERATION = 400.0
# shares the above two equally between the joint and the offset
OFFSET_AV_RATIO = 0.5
MIN_LIMIT = -0.001
MAX_LIMIT = 2400.0

[JOINT_0]
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = -0.001
MAX_LIMIT = 2400.0
MAX_VELOCITY = 200.0
MAX_ACCELERATION = 200.0
STEPGEN_MAXACCEL = 250.0
SCALE = 15.92
FERROR = 1
MIN_FERROR = .25
HOME_OFFSET = 0.0

[AXIS_Y]
# set to double the value in the corresponding joint
MAX_VELOCITY = 340.0
# set to double the value in the corresponding joint
MAX_ACCELERATION = 600.0
# shares the above two equally between the joint and the offset
OFFSET_AV_RATIO = 0.5
MIN_LIMIT = -0.001
MAX_LIMIT = 1300.0

[JOINT_1]
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = -0.001
MAX_LIMIT = 1300.0
MAX_VELOCITY = 170.0
MAX_ACCELERATION = 300.0
STEPGEN_MAXACCEL = 375.0
SCALE = 12.728
FERROR = 1
MIN_FERROR = .25
HOME_OFFSET = 0.0

[AXIS_Z]
# set to double the value in the corresponding joint
MAX_VELOCITY = 36.094224924
# set to double the value in the corresponding joint
MAX_ACCELERATION = 600.0
# shares the above two equally between the joint and the offset
OFFSET_AV_RATIO = 0.5
MIN_LIMIT = -135.0
MAX_LIMIT = 0.001

[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = -135.0
MAX_LIMIT = 0.001
MAX_VELOCITY = 18.047112462
MAX_ACCELERATION = 300.0
STEPGEN_MAXACCEL = 375.0
SCALE = 1504.0
FERROR = 1
MIN_FERROR = .25
HOME_OFFSET = 0.0
Displaying 31 - 33 out of 33 results.
Time to create page: 3.198 seconds
Powered by Kunena Forum