How to make M1** execute Gcode

More
4 years 3 months ago #248699 by my1987toyota
So while I am recovering from my mountain bike accident forum.linuxcnc.org/51-ot-posts/46365-wel...oing-to-leave-a-mark
I decided to work on the pick and place project again . Right now I am trying to figure out how to use M172 with a P number to facilitate
moving the placing head to a specific feeder location instead of manually adding that location in my G-codes.. I am still very lost as far as
bash scripting or programming in general. I have been trying to remedy that but sometimes I think it's hopeless. The code below is what I
have so far and obviously it doesn't work. Any idea's?
Code:
#!/bin/bash P=${1%.*} case $P in         1)          linuxcnc.command()          self.execute(G0 X1.0 Y1.0);;          2)          linuxcnc.command()          self.execute(G0 X2.0 Y2.0);; esac exit 0

Please Log in to join the conversation.

More
4 years 3 months ago #248704 by andypugh
I don't know much bash, but I think that you are mixing bash and Python.

Does it _have_ to be M172? If you could use one of the remappable codes (M200-M999 or an unused one in the < M100) then you can use the canonical motion commands and have the motion added to the queue, so that it is blended etc.
Code:
#! /usr/bin/env python3 import linuxcnc import sys P = int(float(sys.argv[1])) if P < 0:     print("error, a P parameter must be passed")      c = linuxcnc.command() if P == 1:     c.mdi("G0 X10") if P == 2:     c.mdi("G0 X20")

(Works for me) 
 

Please Log in to join the conversation.

More
4 years 3 months ago #248705 by andypugh
But... I tried this inside a programme and it does _not_ work as MDI is not possible in Auto mode.

Back to the drawing board...

Please Log in to join the conversation.

More
4 years 3 months ago #248707 by andypugh
Drop the attached files in the same folder as your config and make them executable (probably necessary, though I am not 100% sure)

Then add the following to the [RS274NGC] section:
Code:
REMAP = M201 python=M172 argspec=P [PYTHON] TOPLEVEL=toplevel.py PATH_PREPEND = ./

(ie, add a [PYTHON] section after the [RS274_NGC] section.)

This will currently give you a new "M201" command that takes a P parameter and moves the axes.

It doesn't seem to be possible to map it to M172, though.

 

Please Log in to join the conversation.

More
4 years 3 months ago #248720 by my1987toyota
Thank you andypugh I will give that a try. The only reason I specified M172 was because that was the M code I was using. I used M1** codes with a
P number for firing the feeder advancers. I don't know enough to determin when a pure bin/bash command should be used or a bin/python instead.

 

Please Log in to join the conversation.

More
4 years 3 months ago #248734 by my1987toyota
Hi andy the code I need to add to the [RS274NGC] section: that's the ini. file [RS274NGC] section: correct? Or is it a file elsewhere in the system?

Please Log in to join the conversation.

More
4 years 3 months ago #248737 by my1987toyota
I ran into this problem below is the crash report
Code:
Error report created by /usr/lib/tcltk/linuxcnc/show_errors.tcl: Print file information: RUN_IN_PLACE=no LINUXCNC_DIR= LINUXCNC_BIN_DIR=/usr/bin LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc LINUXCNC_SCRIPT_DIR= LINUXCNC_RTLIB_DIR=/usr/lib/linuxcnc/modules LINUXCNC_CONFIG_DIR= LINUXCNC_LANG_DIR=/usr/lib/tcltk/linuxcnc/msgs INIVAR=inivar HALCMD=halcmd LINUXCNC_EMCSH=/usr/bin/wish8.6 LINUXCNC - 2.8.0 Machine configuration directory is '/home/cnc002/linuxcnc/configs/simple_pnp' Machine configuration file is 'simple_pnp.ini' INIFILE=/home/cnc002/linuxcnc/configs/simple_pnp/simple_pnp.ini VERSION=1.1 PARAMETER_FILE=linuxcnc.var TASK=milltask HALUI=halui DISPLAY=axis COORDINATES=XYZC KINEMATICS=trivkins coordinates=XYZC Starting LinuxCNC... Starting LinuxCNC server program: linuxcncsvr Loading Real Time OS, RTAPI, and HAL_LIB modules Starting LinuxCNC IO program: io Starting HAL User Interface program: halui Found file(REL): ./simple_pnp.hal Found file(REL): ./custom.hal Starting TASK program: milltask Starting DISPLAY program: axis emc/task/emctask.cc 411: interp_error: Parameter file name is missing Parameter file name is missing emc/task/emctaskmain.cc 3087: can't initialize interpreter waiting for s.joints<0>, s.kinematics_type<0> waiting for s.joints<0>, s.kinematics_type<0> waiting for s.joints<0>, s.kinematics_type<0> waiting for s.joints<0>, s.kinematics_type<0> waiting for s.joints<0>, s.kinematics_type<0> waiting for s.joints<0>, s.kinematics_type<0> waiting for s.joints<0>, s.kinematics_type<0> waiting for s.joints<0>, s.kinematics_type<0> waiting for s.joints<0>, s.kinematics_type<0> Shutting down and cleaning up LinuxCNC... Running HAL shutdown script hm2: loading Mesa HostMot2 driver version 0.15 hm2_eth: loading Mesa AnyIO HostMot2 ethernet driver version 0.2 hm2_eth: 10.10.10.10: Hardware address: 00:60:1b:10:4b:df hm2_eth: discovered 7I76E-16 hm2/hm2_7i76e.0: Smart Serial Firmware Version 43 Board hm2_7i76e.0.7i76.0.0 Hardware Mode 0 = standard Board hm2_7i76e.0.7i76.0.0 Software Mode 0 = io_spin Board hm2_7i76e.0.7i76.0.0 Software Mode 1 = io_ana_spin Board hm2_7i76e.0.7i76.0.0 Software Mode 2 = io_enc_ana_spin_fv Board hm2_7i76e.0.7i71.0.1 Hardware Mode 0 = standard Board hm2_7i76e.0.7i71.0.1 Software Mode 0 = output_only Board hm2_7i76e.0.7i71.0.1 Software Mode 1 = output_fieldvoltage hm2/hm2_7i76e.0: 51 I/O Pins used: hm2/hm2_7i76e.0:     IO Pin 000 (P1-01): StepGen #0, pin Direction (Output) hm2/hm2_7i76e.0:     IO Pin 001 (P1-14): StepGen #0, pin Step (Output) hm2/hm2_7i76e.0:     IO Pin 002 (P1-02): StepGen #1, pin Direction (Output) hm2/hm2_7i76e.0:     IO Pin 003 (P1-15): StepGen #1, pin Step (Output) hm2/hm2_7i76e.0:     IO Pin 004 (P1-03): StepGen #2, pin Direction (Output) hm2/hm2_7i76e.0:     IO Pin 005 (P1-16): StepGen #2, pin Step (Output) hm2/hm2_7i76e.0:     IO Pin 006 (P1-04): StepGen #3, pin Direction (Output) hm2/hm2_7i76e.0:     IO Pin 007 (P1-17): StepGen #3, pin Step (Output) hm2/hm2_7i76e.0:     IO Pin 008 (P1-05): StepGen #4, pin Direction (Output) hm2/hm2_7i76e.0:     IO Pin 009 (P1-06): StepGen #4, pin Step (Output) hm2/hm2_7i76e.0:     IO Pin 010 (P1-07): Smart Serial Interface #0, pin TxData0 (Output) hm2/hm2_7i76e.0:     IO Pin 011 (P1-08): Smart Serial Interface #0, pin RxData0 (Input) hm2/hm2_7i76e.0:     IO Pin 012 (P1-09): Smart Serial Interface #0, pin TxData1 (Output) hm2/hm2_7i76e.0:     IO Pin 013 (P1-10): Smart Serial Interface #0, pin RxData1 (Input) hm2/hm2_7i76e.0:     IO Pin 014 (P1-11): Encoder #0, pin Index (Input) hm2/hm2_7i76e.0:     IO Pin 015 (P1-12): Encoder #0, pin B (Input) hm2/hm2_7i76e.0:     IO Pin 016 (P1-13): Encoder #0, pin A (Input) hm2/hm2_7i76e.0:     IO Pin 017 (P2-01): IOPort hm2/hm2_7i76e.0:     IO Pin 018 (P2-14): IOPort hm2/hm2_7i76e.0:     IO Pin 019 (P2-02): IOPort hm2/hm2_7i76e.0:     IO Pin 020 (P2-15): IOPort hm2/hm2_7i76e.0:     IO Pin 021 (P2-03): IOPort hm2/hm2_7i76e.0:     IO Pin 022 (P2-16): IOPort hm2/hm2_7i76e.0:     IO Pin 023 (P2-04): IOPort hm2/hm2_7i76e.0:     IO Pin 024 (P2-17): IOPort hm2/hm2_7i76e.0:     IO Pin 025 (P2-05): IOPort hm2/hm2_7i76e.0:     IO Pin 026 (P2-06): IOPort hm2/hm2_7i76e.0:     IO Pin 027 (P2-07): IOPort hm2/hm2_7i76e.0:     IO Pin 028 (P2-08): IOPort hm2/hm2_7i76e.0:     IO Pin 029 (P2-09): IOPort hm2/hm2_7i76e.0:     IO Pin 030 (P2-10): IOPort hm2/hm2_7i76e.0:     IO Pin 031 (P2-11): IOPort hm2/hm2_7i76e.0:     IO Pin 032 (P2-12): IOPort hm2/hm2_7i76e.0:     IO Pin 033 (P2-13): IOPort hm2/hm2_7i76e.0:     IO Pin 034 (P3-01): IOPort hm2/hm2_7i76e.0:     IO Pin 035 (P3-14): IOPort hm2/hm2_7i76e.0:     IO Pin 036 (P3-02): IOPort hm2/hm2_7i76e.0:     IO Pin 037 (P3-15): IOPort hm2/hm2_7i76e.0:     IO Pin 038 (P3-03): IOPort hm2/hm2_7i76e.0:     IO Pin 039 (P3-16): IOPort hm2/hm2_7i76e.0:     IO Pin 040 (P3-04): IOPort hm2/hm2_7i76e.0:     IO Pin 041 (P3-17): IOPort hm2/hm2_7i76e.0:     IO Pin 042 (P3-05): IOPort hm2/hm2_7i76e.0:     IO Pin 043 (P3-06): IOPort hm2/hm2_7i76e.0:     IO Pin 044 (P3-07): IOPort hm2/hm2_7i76e.0:     IO Pin 045 (P3-08): IOPort hm2/hm2_7i76e.0:     IO Pin 046 (P3-09): IOPort hm2/hm2_7i76e.0:     IO Pin 047 (P3-10): IOPort hm2/hm2_7i76e.0:     IO Pin 048 (P3-11): IOPort hm2/hm2_7i76e.0:     IO Pin 049 (P3-12): IOPort hm2/hm2_7i76e.0:     IO Pin 050 (P3-13): IOPort hm2/hm2_7i76e.0: registered creating ladder-state hm2_eth: HostMot2 ethernet driver unloaded hm2: unloading Removing HAL_LIB, RTAPI, and Real Time OS modules Removing NML shared memory segments Debug file information: Note: Using POSIX realtime initialize: module '/home/cnc002/linuxcnc/configs/simple_pnp/toplevel.py' init failed: Traceback (most recent call last):   File "/home/cnc002/linuxcnc/configs/simple_pnp/toplevel.py", line 1, in <module>     import remap ImportError: No module named remap Interp ctor: cant instantiate Python plugin initialize: module '/home/cnc002/linuxcnc/configs/simple_pnp/toplevel.py' init failed: Traceback (most recent call last):   File "/home/cnc002/linuxcnc/configs/simple_pnp/toplevel.py", line 1, in <module>     import remap ImportError: No module named remap Python plugin configure() failed, status = -11 Python plugin required for python=, but not available: 50:REMAP = M201 python=M172 argspec=p note: MAXV     max: 1.000 units/sec 60.000 units/min note: LJOG     max: 1.000 units/sec 60.000 units/min note: LJOG default: 0.250 units/sec 15.000 units/min note: AJOG     max: 180.000 units/sec 10800.000 units/min note: AJOG default: 12.000 units/sec 720.000 units/min A configuration error is preventing LinuxCNC from starting. More information may be available when running from a terminal. 2649 Stopping realtime threads Unloading hal components Note: Using POSIX realtime ----------------------------------------------------------------------- Info report created by linuxcnc_info: The file:    /tmp/linuxcnc_info.txt can be posted to a forum or a web site like:      http://pastebin.com in order to provide information about the linuxcnc system and configuration.                 Date: Sun Jul 31 11:29:04 EDT 2022             UTC Date: Sun Jul 31 15:29:04 UTC 2022         this program: /usr/bin/linuxcnc_info               uptime: 11:29:04 up 47 min, 1 user, load average: 0.18, 0.25, 0.16      lsb_release -sa: LinuxMint Linux Mint 19.3 Tricia 19.3 tricia       which linuxcnc: /usr/bin/linuxcnc                  pwd: /home/cnc002/linuxcnc/configs/simple_pnp                 USER: cnc002              LOGNAME: cnc002                 HOME: /home/cnc002               EDITOR:               VISUAL:             LANGUAGE: en_US                 TERM: dumb            COLORTERM:              DISPLAY: :0.0              DESKTOP: xfce         display size: 1360x768 pixels (359x203 millimeters)                 PATH: /usr/bin:/home/cnc002/linuxcnc/configs/simple_pnp/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin uname items:          nodename -n: cnc002       kernel-name -s: Linux       kernel-vers -v: #1 SMP PREEMPT RT Mon Sep 14 12:23:06 AEST 2020           machine -m: x86_64         processor -p: x86_64          platform -i: x86_64       oper system -o: GNU/Linux /proc items:              cmdline: efi=runtime BOOT_IMAGE=/boot/vmlinuz-4.19.106-rt46-lcnc root=UUID=d96b1cf0-96f3-43bb-a32d-3fa54eb2b584 ro quiet splash vt.handoff=1           model name: Intel(R) Core(TM) i5-4590T CPU @ 2.00GHz                cores: 4              cpu MHz: 1736.177              parport:               serial: Versions:                  gcc: gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0               python: Python 2.7.17                  git: not_in_PATH           git commit: NA                  tcl: 8.6                   tk: 8.6                glade: not_in_PATH           glade-gtk2: not_in_PATH linuxcnc_var all:      LINUXCNCVERSION: 2.8.0 LINUXCNC_AUX_GLADEVCP: /usr/share/linuxcnc/aux_gladevcp LINUXCNC_AUX_EXAMPLES: /usr/share/linuxcnc/aux_examples             REALTIME: /etc/init.d/realtime                  RTS: uspace           HALLIB_DIR: /usr/share/linuxcnc/hallib dpkg -l '*linuxcnc*': Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name                Version      Architecture Description +++-===================-============-============-===================================================================== un  linuxcnc            <none>       <none>       (no description available) un  linuxcnc-dev        <none>       <none>       (no description available) un  linuxcnc-doc        <none>       <none>       (no description available) ii  linuxcnc-doc-en     1:2.8.0      all          motion controller for CNC machines and robots (English documentation) un  linuxcnc-sim        <none>       <none>       (no description available) un  linuxcnc-sim-dev    <none>       <none>       (no description available) ii  linuxcnc-uspace     1:2.8.0      amd64        motion controller for CNC machines and robots ii  linuxcnc-uspace-dev 1:2.8.0      amd64        PC based motion controller for real-time Linux
 

Attachment not found

Please Log in to join the conversation.

More
4 years 2 months ago #248743 by andypugh

ImportError: No module named remap


Are the two .py files in the same directory as the ini file and executable?

Please Log in to join the conversation.

More
4 years 2 months ago #248748 by my1987toyota
both .py files are in the same directory as the ini. file and I did mark them executable . I may have spotted the problem. the remap file has the name remap_2022_7_30.py .
Should I remove the Date portion from the name?

Please Log in to join the conversation.

More
4 years 2 months ago #248749 by my1987toyota
short answer is yes. I have had that problem before with the MPG .hal file I wrote and posted . for some inexplicable reason the forum will include the date in some file names.

oh and yes it does work Thank you again for the help Andy.
Now I need to expand on that . Looks like I have a ton more reading on how to manipulate and bend python to my will.

Did you ever get a chance to get your PnP fired up and running?

Please Log in to join the conversation.

Time to create page: 0.115 seconds
Powered by Kunena Forum