- Posts: 1943
- Thank you received: 0
Remapping: Was: Stand Alone Interpe r ter
Grotius wrote: @Bevins,
I am curious wich command's are ignored and what the bug's in remap are in your vision?
Maybe i can tell you some tip's after your info, maybe not :woohoo:
Oh, it is long and complicated but the short story is, after four or five running of the same file and cutting, the interpreter just stops executing commands. IT just stops, the spindle still running, and no more commands are executed. The queue is empty, there are no errors, just stops.
Its been a long haul;, but, it is a known issue if you dig back into the threads and mailing list. IT is a pure python remap, and I cant get help on it because no one really understands the inner workings I guess I can say, except one person that just doesn't respond to questions. They do say you are on your own when you go this route.
but I would like to play with the stand alone interpreter, and I may get some kind of direction.
This is my config. Sorry, didnt mean to hijack this thread.
Please Log in to join the conversation.
Oh, it is long and complicated but the short story is, after four or five running of the same file and cutting, the interpreter just stops executing commands. IT just stops, the spindle still running, and no more commands are executed. The queue is empty, there are no errors, just stops.
I never had this issue. Linux is stable as hell in my case. Is your machine pc at internet? In worst case you are hacked.
They do say you are on your own when you go this route.
Hmm. Why that? It can be monitored on several way's.
If you need some hijacked contact adresses. Please visit : darknetleaks.ru/archive/leaked/Dumps/FBI.txt
Please Log in to join the conversation.
Grotius wrote: @Bevins,
Oh, it is long and complicated but the short story is, after four or five running of the same file and cutting, the interpreter just stops executing commands. IT just stops, the spindle still running, and no more commands are executed. The queue is empty, there are no errors, just stops.
I never had this issue. Linux is stable as hell in my case. Is your machine pc at internet? In worst case you are hacked.
They do say you are on your own when you go this route.
Hmm. Why that? It can be monitored on several way's.
If you need some hijacked contact adresses. Please visit : darknetleaks.ru/archive/leaked/Dumps/FBI.txt
I am not quite understanding your comments but....
I know Linuxcnc is stable. I have done many machine retrofits and building from scratch.
Pure Python remaps are very tedious and unpredictable. That is coming from the fellow that wrote the remap part of Linuxcnc.
This issue is documented in mailing lists. My machine is not hacked, it cannot be cause it is not connected to the internet.
Please Log in to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
-
- Posts: 4739
- Thank you received: 2
Can you make your remaps work without using python?
Please Log in to join the conversation.
Todd Zuercher wrote: Maybe the problem isn't the interpreter, but the way the python remaps interact with it. (from the sound of it, the developer who created it is suspicious of that.)
Can you make your remaps work without using python?
That's pretty much it. From what I understand the interpreter is not the master of its domain so it needs input from task before it can process commands. Or it's dependent on other processes or a combination , it just cannot execute by itself. Plus there is an issue of python not being able to process a sequence of functions, that's why you cannot use Standard glue with a remap in pure python. You have to put the functions standard glue has in the remap function, which is what I did and it works.
I am pretty sure it would work with oword ngc, but I know nothing about that and I guess it is not documented in one place where I can read and understand. I know of a guy that did the same type of machine with remapping M codes to fire all the relays but he didnt need to move the axis as he had no tool changer just 30 some odd number of gang drills.
I got everything working tool changes drill gangs but after a certain number of times processing the program, it just stops dead in it's tracks.
Please Log in to join the conversation.
bevins wrote: I am pretty sure it would work with oword ngc, but I know nothing about that and I guess it is not documented in one place where I can read and understand. I know of a guy that did the same type of machine with remapping M codes to fire all the relays but he didnt need to move the axis as he had no tool changer just 30 some odd number of gang drills.
I would say that if you need to move axes then it is a much better idea to use an O-word sub than to use pure Python. (I imagine that your Python uses MDI commands to move axes? Though you can do it with canonical movement commands too.)
You don't need M-codes to operate relays, G-code can toggle HAL pins directly, and has built-in codes to wait for HAL pin inputs to change.
Look at this G-code tool change sub, it sets HAL pins using M64 / M65 and uses M66 to wait for inputs confirming that the mechanisms are in position.
github.com/LinuxCNC/linuxcnc/blob/master...hange/toolchange.ngc
Please Log in to join the conversation.
andypugh wrote:
bevins wrote: I am pretty sure it would work with oword ngc, but I know nothing about that and I guess it is not documented in one place where I can read and understand. I know of a guy that did the same type of machine with remapping M codes to fire all the relays but he didnt need to move the axis as he had no tool changer just 30 some odd number of gang drills.
I would say that if you need to move axes then it is a much better idea to use an O-word sub than to use pure Python. (I imagine that your Python uses MDI commands to move axes? Though you can do it with canonical movement commands too.)
You don't need M-codes to operate relays, G-code can toggle HAL pins directly, and has built-in codes to wait for HAL pin inputs to change.
Look at this G-code tool change sub, it sets HAL pins using M64 / M65 and uses M66 to wait for inputs confirming that the mechanisms are in position.
github.com/LinuxCNC/linuxcnc/blob/master...hange/toolchange.ngc
Here is my main remap file. You think ngc oword could do this?
There is alot of code I am not using in there.
Please Log in to join the conversation.
bevins wrote: Here is my main remap file. You think ngc oword could do this?
Well, in theory, yes, as any Turing-complete language can do anything that any other one can do.
I grant it might be difficult.
One thing that I am curious about is whether self.execute("G code here") is the best approach.
(Those bits would probably be _better_ done from a g-code sub).
The Python interface offers the command.mdi() way to run G-code. I wonder if that works better, worse or the same? It would be a simple search-and-replace job to try it.
Another option is the canonical command interface. That does not seem to be particularly well documented, but it is what I used in my G71 Python remaps:
github.com/LinuxCNC/linuxcnc/blob/andypu...python/remap.py#L443
Though I think it only uses emccanon.STRAIGHT_TRAVERSE and STRAIGHT_FEED
The canon commands are defined (and quite well described) in this file:
github.com/LinuxCNC/linuxcnc/blob/master...mc/nml_intf/canon.hh
Please Log in to join the conversation.
andypugh wrote:
bevins wrote: Here is my main remap file. You think ngc oword could do this?
Well, in theory, yes, as any Turing-complete language can do anything that any other one can do.
I grant it might be difficult.
One thing that I am curious about is whether self.execute("G code here") is the best approach.
(Those bits would probably be _better_ done from a g-code sub).
The Python interface offers the command.mdi() way to run G-code. I wonder if that works better, worse or the same? It would be a simple search-and-replace job to try it.
Another option is the canonical command interface. That does not seem to be particularly well documented, but it is what I used in my G71 Python remaps:
github.com/LinuxCNC/linuxcnc/blob/andypu...python/remap.py#L443
Though I think it only uses emccanon.STRAIGHT_TRAVERSE and STRAIGHT_FEED
The canon commands are defined (and quite well described) in this file:
github.com/LinuxCNC/linuxcnc/blob/master...mc/nml_intf/canon.hh
I used those commands because it was the only way I could get it to work in python. The problem was when I got into a few functions deep, I couldn't get it to respond to canon commands.
/EDIT Granted, I may not have done it correctly.... whether that was causing it to ignore commands or not, I am not sure.
Please Log in to join the conversation.
bevins wrote: I used those commands because it was the only way I could get it to work in python. The problem was when I got into a few functions deep, it wouldn't respond to commands.
Did you try the canonical commands?
Please Log in to join the conversation.
