× Forum Header

Forward Step / Backward Step - Vexta Question

More
31 Mar 2018 03:26 - 31 Mar 2018 03:28 #108161 by BrendaEM
Thank you again @andypugh.

The documentation lacks situational awareness. It's detailed yet myopic. We get a close look at certain sections, but we, or at least, I don't get a good basic sense of the LinuxCNCs architecture works.

[Perhaps pretend that I am just a newbie who didn't contribute anything this project, so I don't know much about it : )
Or perhaps, imagine that we read about Sherlock, Watson, a butler, and a heavy candlestick, but from reading the documentation, it's hard to understand: what happened, and where, and when.
Or, what problem was StepConf Wizard created to solve?]

Yet it seems like I should use StepConf to create a basic yet HAL setup, and then edit it from there.

@tommylight, thank you.

I am sorry, I am just getting back to this thread. I wasn't feeling too good for a few days, and today I needed to solder a few wires on my machine to feel I am making progress.
Last edit: 31 Mar 2018 03:28 by BrendaEM.

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

More
31 Mar 2018 10:56 #108172 by andypugh

The documentation lacks situational awareness. It's detailed yet myopic. We get a close look at certain sections, but we, or at least, I don't get a good basic sense of the LinuxCNCs architecture works.


I think that you are probably correct there, but it is a hard puzzle to solve as different users will want different things from the docs, and every time someone writes a section to explain something from a different viewpoint we end up with even more documentation, and potentially more confusion.

As an example, there is an architecture overview here:
linuxcnc.org/docs/2.7/html/code/code-notes.html
But it might well not be the overview that you want. It is also somewhat out of date, as it was written when the HAL was a relatively new idea, and hadn't developed into the vital part of LinuxCNC that it has become since.

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

More
31 Mar 2018 23:03 #108192 by tommylight


@tommylight, thank you.

I am sorry, I am just getting back to this thread. I wasn't feeling too good for a few days, and today I needed to solder a few wires on my machine to feel I am making progress.


NP B, hope you feel better.
As for the documentation, it takes a bit of sifting through but it is there and usually quite good.
As a friendly advice, have a read through a hal file and a ini file that you created with stepconfing wizard, things become clear on inner workings of Linuxcnc and how they interact, and soon enough you get the revelation that Linuxcnc can do way more than just controlling a machine.
Then again i never used an arduino.....i bet if i have a look at it it will look messed up for a moment or two.
Regards,
Tom
P.S.
When searching for something on this forum, use google and type:

whatever you are looking for site:linuxcnc.org

adding that site thing will bring back results only from the linuxcnc domain, but it finds everything, even stuff buried deep in the wiki pages.

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

More
31 Mar 2018 23:11 #108194 by andypugh
Just a caveat on the Wiki pages, they can be and were written by anyone and everyone, and many of them are either out of date or were actually always just wrong.

There is lots of good info there, but also some less good.
The following user(s) said Thank You: tommylight

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

More
08 May 2018 06:31 - 08 May 2018 06:34 #110369 by BrendaEM
Hi.

Firstly, thank you all : )

I got another computer going, and finally got a chance to experiment with a setup.

What I needed to know as a user is that I would be editing the user.hal where user is the name of the user, editing using a text editor.
It appears that only step.conf would overwriting these crashing the edits, but otherwise should be okay.

I created a dummy .hal using stepconf, and edited it from there.
I combined all the suggestions in this thread and one other, creating the attached .hal, which so, far does not error.
I still need to test it, but it's getting late, and I have to help my friend with his computers tomorrow.
Attachments:
Last edit: 08 May 2018 06:34 by BrendaEM.

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

More
08 May 2018 08:12 - 08 May 2018 08:14 #110370 by andypugh
It might not error, but neither will it work.
But it isn't far off. You need to make your signal names consistent.
The "signal" is the first item after the "net" command, and those can be called anything you want. If the signal does not exist then it is created. This last point is what makes your file syntactically valid but non-functional.
...
loadrt stepgen step_type=1,1,1
...
This is correct.

...
net xup             => parport.0.pin-01-out
net ydown           => parport.0.pin-02-out
net yup             => parport.0.pin-03-out
net zdown           => parport.0.pin-04-out
net zup             => parport.0.pin-05-out
net zdown           => parport.0.pin-06-out
net spindle-on      => parport.0.pin-07-out
net spindle-pwm     => parport.0.pin-08-out
...
This links the parallel port pins to newly-created signals called xup, xdown etc

...
net xstep <= stepgen.0.up
net xdir <= stepgen.0.down
...
And, because xstep and xdir do not yet exist, this creates two more signals and connects them to the step-generator module outputs.
This isn't quite what you want, you need to change these lines to
...
net xup <= stepgen.0.up
net xdown <= stepgen.0.down
...
so that the signal names match at the source and destination.

(And the same for Y and Z)
Last edit: 08 May 2018 08:14 by andypugh.

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

More
08 May 2018 15:01 - 08 May 2018 15:10 #110385 by BrendaEM
Thank you again Andypugh,

I've was up early editing the. hal. I uploaded it, and started commenting it.
When I get things sorted out, I will put it HAL example forum.

I am going to be out today, and I have to get a CMOS battery for the computer, and make a power cable for the parallel isolator card, but then I will be able to test my machine with Linux CNC : )
Attachments:
Last edit: 08 May 2018 15:10 by BrendaEM.

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

More
10 May 2018 02:41 - 10 May 2018 05:23 #110484 by BrendaEM
There was a typo in the above .HAL which I fixed in this upload.

There is likely a problem with the estop in the code, which I am going to ask about in the appropriate forum.
forum.linuxcnc.org/24-hal-components/345...s-power-in-linux-cnc
Attachments:
Last edit: 10 May 2018 05:23 by BrendaEM.

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

More
10 May 2018 09:05 #110499 by andypugh
These signals are set up for an external e-stop switch / loop.
net estop-ext       <= parport.0.pin-13-in
...
net estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in



Many configs without an external e-stop use a short-circuit:
net estop-loop  iocontrol.0.user-enable-out  iocontrol.0.emc-enable-in

linuxcnc.org/docs/2.7/html/man/man1/iocontrol.1.html

There are a few ways to handle this. I think you can choose to connect user-enable-out to a parallel port pin then loop it back through an e-stop to emc-enable-in. But that probably isn't necessary in all situations (and there is also the option of using "real" safety relays when it really matters, or a software equivalent ( linuxcnc.org/docs/2.7/html/man/man9/estop_latch.9.html )

Anyway, as things stand with your HAL you probably need to bring pin 13 high to allow the machine out of e-stop.

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

More
10 May 2018 11:30 - 10 May 2018 12:11 #110503 by BrendaEM
@Andypugh, I feel bad because I am not used to needing help from other people this much. Thank you.
So, letting Stepconf set up the e-stop pin was not going to be enough....

This creates signal called "net estop-ext " which reads hardware parallel port 13, correct?
net estop-ext       <= parport.0.pin-13-in

It does respond if I remove/add the jumper, as read with the Hal Meter, which only pulls it low like all the other inputs. I don't think I can pull any of the inputs high with the board I am using, but once again I can get a TRUE or FALSE state from the Hal Meter, by jumping/removing the wire bridge. Tomorrow, I will wire a normally closed switch in there.

I thought that the Linuxcnc wanted wants a FALSE state to proceed, meaning that a NC Estop switch hadn't been tripped.

Moving onward...

Does this create a signal called "estop-out" which pretty much gets its input from the GUI button in axis? (via LinuxCNC's subsystem)
net estop-out <= iocontrol.0.user-enable-out

If so, then that line not going to help me. I just want my hardware button to toggle the screen button. I want to shut off the estop event so I can enable the screen Power button, so I can turn my machine on.

The next problem I am having is: I don't know if LinuxCNC is going to watch a HAL pin, or if I have figure out how to create an event.

(I would state that this is one of the most complicated things I have ever ran across in computing, and this is coming from someone who set up an OpenFoam case. I also feel I see the power of LinuxCNC and the HAL implementation, and what's doubly frustrating for me is that I want to help by figuring out a way to make it easier, so idiots like me, wouldn't be asking questions like this, and I can't do it yet. Me, feeling better after my release, the reader hopefully forgiving me for it....)

Wouldn't this be enough on it's own? As it's connecting the "estop-ext" signal to Estop watcher.
net estop-ext => iocontrol.0.emc-enable-in

To read the documentaiton also looks like this is involved somehow, but no one has brought it into play.
iocontrol.0.user−request−enable

I don't understand why I would want to create signal loopback with nothing in between to control it, start it, or stop it. This would seem to lock the system into a state, but I how could I chose which?
net estop-loop  iocontrol.0.user-enable-out  iocontrol.0.emc-enable-in

Would this above line (from above) still have some control the state of the loop?
net estop-ext => iocontrol.0.emc-enable-in

Sigh. I am not very confident my machine will be running soon : (
Last edit: 10 May 2018 12:11 by BrendaEM.

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

Time to create page: 0.257 seconds
Powered by Kunena Forum