Advanced Search

Search Results (Searched for: )

  • Todd Zuercher
  • Todd Zuercher's Avatar
Today 18:03
Replied by Todd Zuercher on topic Reading and writing to Parameter Variables?

Reading and writing to Parameter Variables?

Category: GladeVCP

I'm a little disappointed that there is no way to read/monitor them directly, but I was coming to that conclusion. Now to figure out the best work aroud. I'll probably end up trying to do what you suggest. Thanks for your help.
  • Aciera
  • Aciera's Avatar
Today 14:14 - Today 17:14
Replied by Aciera on topic Reading and writing to Parameter Variables?

Reading and writing to Parameter Variables?

Category: GladeVCP

This example code will read parameters 5200..5299 and write the values to a file 'log.txt', in a next step you would read the file and extract the values to initialize the spin boxes:

import linuxcnc

c = linuxcnc.command()
c.mode(linuxcnc.MODE_MDI)
c.wait_complete()
# write parameter values to log.txt
# file will be in the same dir as the ini
c.mdi('(LOGOPEN,log.txt)')
c.wait_complete()
for p in range(5200,5300):
    cmd = f"(LOG,{p},#{p})"
    c.mdi(cmd)
c.mdi('(LOGCLOSE)')
  • fer662
  • fer662
Today 13:43 - Today 14:37

Setting up the Stepperonline A6 battery encoder cable

Category: EtherCAT

I don't think any of that is necessary (mapping homing pins to the regular inputs). I'm like 95% there now getting cia402 homing working with the absolute mode disabled. I'm able to home all axis x and y (z spins around looking for the z pulse and doesn't find it), but sometimes a joint will throw an amplifier fault JUST after completing homing (I can see the logging from cia402_homecomp indicating that the process had finished for that axis). I'm not sure why this is and it seems to be random...It'd be nice to figure it out but I guess that all i need is for homing to succeed once and then switch to absolute encoder mode? I'm still not sure how the combined Y+Y2 is supposed to work without homing... Like suppose you move one of the motors when the machine is off, will linuxCNC or something try to correct this deviation when the machine is turned on? If anyone knows what is the aim regarding this topic, please let me know. Below are my steps to getting to this stage:

- This repo is the best one I found for both homecomp implementation and linuxCNC config for these servos github.com/nickstewartroc/linuxcnc-a6-servo , and it is a fork from the one mentioned by @andrax (though the files he posted are not from there or are modified at least). Only one thing from there didn't work for me which is the binding of the di pins to see their state, they didn't reflect the way they are setup there. This is how each servo looks and what worked for seeing the home switches change state ( see;). Also, I initially had issues halcompiling this homecomp with the additional includes, it was giving me an error on some types, make sure the cloned linuxCNC repo is on the same tag as your installation and not on main.

<slave idx="3" type="generic" vid="0x00400000" pid="0x00000715" configPdos="true">
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="300000"/>
<watchdog divider="2498" intervals="1000" />
<sdoConfig idx="2004" subIdx="0a"><sdoDataRaw data="01 00"/></sdoConfig>
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="control-word" halType="u32" />
<pdoEntry idx="6060" subIdx="00" bitLen="8" halPin="control-mode" halType="s32" />
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32" />
<pdoEntry idx="60FF" subIdx="00" bitLen="32" halPin="target-velocity" halType="s32"/>
<pdoEntry idx="607C" subIdx="00" bitLen="32" halPin="home-offset" halType="s32"/>
<pdoEntry idx="6098" subIdx="00" bitLen="8" halPin="homing-method" halType="s32" />
<pdoEntry idx="6099" subIdx="01" bitLen="32" halPin="homing-high-velocity" halType="u32"/>
<pdoEntry idx="6099" subIdx="02" bitLen="32" halPin="homing-low-velocity" halType="u32"/>
<pdoEntry idx="609A" subIdx="00" bitLen="32" halPin="homing-acceleration" halType="u32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1A00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="status-word" halType="u32" />
<pdoEntry idx="6061" subIdx="00" bitLen="8" halPin="mode-display" halType="s32" />
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="actual-position" halType="s32" />
<pdoEntry idx="606C" subIdx="00" bitLen="32" halPin="actual-velocity" halType="s32"/>
<pdoEntry idx="6077" subIdx="00" bitLen="16" halPin="actual-torque" halType="s32"/>
<pdoEntry idx="60FD" subIdx="00" bitLen="32" halPin="digital-inputs" halType="u32"/>
<pdoEntry idx="2040" subIdx="05" bitLen="16" halType="complex">
<complexEntry bitLen="1" halPin="di-1" halType="bit"/>
<complexEntry bitLen="1" halPin="di-2" halType="bit"/>
<complexEntry bitLen="1" halPin="di-3" halType="bit"/>
<complexEntry bitLen="1" halPin="di-4" halType="bit"/>
<complexEntry bitLen="1" halPin="di-5" halType="bit"/>
<complexEntry bitLen="11"/>
</pdoEntry>
</pdo>
</syncManager>
</slave>

- Wire the home switch per page 26 of the manual. You need to tie either COM- or COM+ to your external PSU's negative output depending on the sensor type (NPN or PNP). I had tied COM- instead of COM+ for PNP and that wasn't working. Make sure DI3 flips when the sensor toggles before proceeding any further.
- Depending on whether your sensor is NC or NO, you need to change your home switch between active low and active high, documentation for this is in page 209. (<sdoConfig idx="2004" subIdx="0a"><sdoDataRaw data="01 00"/></sdoConfig> in my config for NC switch). Also on page 209 is the function selection for DI3. It's set correctly by default, but one of my drives had it wrong and i presume this was the result of debugging changes made via dcConf entries that got removed. Check that all yours drives have it on the correct setting which is 5. You could technically use any of the DI pins that have function selection as the home switch changing stuff around this PDO. By this time the sensor pin should light up in halshow when triggered no matter whether the sensor is NO or NC.
- At this point it should be possible (though i haven't tested, i did have it working with the pins wired to the beckoff inputs though) to configure regular homing using the drive pins as input if you wished to test it out for sanity checking.
- Assuming that works or you skip it, copy the relevant bits of the hal in the referenced repo. I didn't have to change anything there since i dumped my XML (which was already very close but had slightly different property names) so i could just copypaste as it was.
- I used homing mode 4 like @Andrax but that might not be right for you. On Page 74 there's ample documentation for how each home mode works.
- When trying things out you might use low speeds for the 2 speeds involved in homing. Beware homing has a timeout that defaults to 60 seconds on the servo config. Homecomp doesn't catch this timeout and gets stuck forever, leading you to have to close linuxCNC and power cycle the drives (Page 215).
- Presumably once you're happy you'd comment the homing stuff and add HOME_ABSOLUTE_ENCODER to the joints like the initial post suggests.

I hope this helps someone, and please let me know if your know what the amplifier faults i'm getting after homing might be. This is my first time using linuxCNC. My config is attached for whoever finds it useful or can help me with the little bit i think i have left to fix.
  • Aciera
  • Aciera's Avatar
Today 12:41 - Today 13:22
Replied by Aciera on topic Reading and writing to Parameter Variables?

Reading and writing to Parameter Variables?

Category: GladeVCP

1. Are you sure you are actually loading 'variables.py' along with the 'variables.glade' in the ini file entry?

2. This method of reading the initial parameter values is nonsense as there is no access to the parameter values from the status channel:

# Set initial value from LinuxCNC parameters
self.s.poll()
spin.set_value(self.s.settings)

see linuxcnc.org/docs/html/config/python-interface.html for information on the 'settings' attribute.

Some thoughts on this:
a. The parameter range you are trying to read is volatile so they will all be Zero on start up. See linuxcnc.org/docs/stable/html/gcode/over...:overview-parameters
b. The only way to get the current value of any parameter is to read the value through an MDI command and grab the response.
c. Because of (b) there is no way I know of to actually query the state of a parameter while a gcode program is executing. Which implies that you would need to have something like a 'Refresh' button to read the current values of those parameters if they were changed by the execution of a gcode program.
  • rodw
  • rodw's Avatar
Today 10:18

Ethercat installation from repositories - how to step by step

Category: EtherCAT

I will update the first post so wish me luck!

There was some talk of publishing a new 2.9.x version to fix some bugs. If that is the case, I will send in a PR to update the repos in the installer based on the link above.
  • Todd Zuercher
  • Todd Zuercher's Avatar
Today 09:44
Reading and writing to Parameter Variables? was created by Todd Zuercher

Reading and writing to Parameter Variables?

Category: GladeVCP

I would like to set up a GladeVCP tab (in Axis) that displays and can set the values for a range G-code numbered parameter variables, similar to how most industrial control interfaces have.  I tried to use AI to write the handler file, but that is failing for me.  I used Glade to make the tab screen and that looks good and opens in the tab, it just doesn't do anything yet.  When running Linuxcnc from the terminal I'm not seeing any messages that are helping me see what is wrong.  Here are the glade and py files I have so far.

 

File Attachment:

File Name: variables.py
File Size:1 KB

 

File Attachment:

File Name: variables.glade
File Size:32 KB
  • tommylight
  • tommylight's Avatar
Yesterday 01:18

[QtDragon] Auto Tool Measurement approach and UI wishes/issues

Category: Qtvcp

@buzzcut,
Start a new topic with more info about your machine setup.
Do not hijack topics, and no double posting, as you just did.
  • Buzzcut
  • Buzzcut
Yesterday 00:03
Replied by Buzzcut on topic manual tool change with tool length probe

manual tool change with tool length probe

Category: G&M Codes

I would like to implement or some version of you tool change on 2.9.8. Would it be possible to post your python file you mentioned in this post. Any help would be greatly appropriated. Thanks in advance.
  • Buzzcut
  • Buzzcut
Yesterday 23:58

[QtDragon] Auto Tool Measurement approach and UI wishes/issues

Category: Qtvcp

I am trying to implement this on Ver. 2.9.8 and am having no luck. Touch off for Z height works correctly and first tool run is correct. On second tool z height is high above the work piece. Any help would be appropriated.
  • NWE
  • NWE's Avatar
Yesterday 20:08

Introducing halflow, an interactive graphical hal editor

Category: Configuration Tools

Some new features added:
1. Net highliting for easier following of wires that are all part of the same signal: click or hover a wire and all wires on that signal illuminate.
2. Importing/drawing new wires can be configured to A: be colored by signal type, or B: be randomly colored.
3. An auto-placer for optimizing placement of components on the canvas. This feature is currently broken. It runs, but it usually makes a mess.

Current effort is on creating and exporting new configs for actual use in LinuxCNC. This process requires me to better understand the config loading process, so I can cause this to be interactively created by the halflow "New config" wizard. On an impulse, I asked chatgpt to give me a tour of the LinuxCNC config loading process. I found the result quite interesting and am sharing it at [1].

Currently it is possible to import configs NOT created by halflow, but ONLY FOR VIEWING. I am finding this feature quite helpful for visualizing and diagnosing some of my highly customized hand-edited configs.

Installer releases will be provided once I consider the project stable.
As always, the latest source code is available at the link shared in my first post.

[1]  git.disroot.org/nwe/halflow/src/branch/m...ding%20ai%20tour.pdf
  • cob.charles
  • cob.charles
Yesterday 16:53
Replied by cob.charles on topic Configure 7I92 Zhulong card on AliExpress.

Configure 7I92 Zhulong card on AliExpress.

Category: Driver Boards

thanks a lot!!! It solved my problem. Something simple, and it took me days to figure it out.
  • GFC
  • GFC
Yesterday 15:29

Ethercat installation from repositories - how to step by step

Category: EtherCAT

after looking through the logs a bit more, I figured that the solution that rodw recommended to awallin also fixes my errors, thanks anyways
  • feng
  • feng
Yesterday 14:46

Configure 7I92 Zhulong card on AliExpress.

Category: Driver Boards

pncconfOn the second page of PNCconf, check the advanced options box, then select the last item under Board name. Next, click to detect the board and fill in the board module information. PNCconf will read the board’s data, after which you can proceed with the configuration.
  • PCW
  • PCW's Avatar
Yesterday 14:07

7i92 cnc motion controller from aliexpress?

Category: Driver Boards

Already answered in another thread...
Displaying 1 - 15 out of 286657 results.
Time to create page: 2.493 seconds
Powered by Kunena Forum