-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
EMC_MDIhistory does not respect the requirement of the NIST standard #2956
Comments
Are you filing this issue simply because the behavior is not as described in the NIST document or does this create other issues? |
Yes
I can't build a machine that meets the standards. It is not standard software bug. |
So do you see this as a GUI issue or an issue with the underlying code base? I came across another violation of the NIST standard recently regarding G52/G92 deactivation on M2/M30: Personally I find it rather unfortunate that a standard configuration of LinuxCNC does not follow the standard NIST behavior. |
Can you explain me what is "underlying code base"?
Some people wants stacking MDI stacking some people like me wants the same behavior like NIST. |
What I meat is, should the individual GUIs be responsible whether stacking is allowed or not or should the python interface do it? |
The LCNC integrator should be responsible for stacking MDI commands or not stacking. A person who makes a machine. Small printer with small stepper motor - it doesnt matter. The LCNC integrator can be person who use only HAL language. |
Personally I prefer the current behavior to multi-line entry. It suite me to have the machine drilling the first hole / making the first pass while I am typing in the next hole position or endpoint. Are you sure that you are interpreting the nature of the document correctly? All that I can find is a NIST report from 2000 describing their implementation of an RS274 interpreter. I don't think that it is necessarily clear that this has the status of a NIST standard. If you are looking for an official, issued standard then maybe you need to choose one of the following: "The first standardized version of G-code used in the United States, RS-274, was published in 1963 by the Electronic Industries Alliance (EIA; then known as Electronic Industries Association).[4] In 1974, EIA approved RS-274-C, which merged RS-273 (variable block for positioning and straight cut) and RS-274-B (variable block for contouring and contouring/positioning). A final revision of RS-274 was approved in 1979, as RS-274-D.[5][6] In other countries, the standard ISO 6983 (finalized in 1982) is often used, but many European countries use other standards.[7] For example, DIN 66025 is used in Germany, and PN-73M-55256 and PN-93/M-55251 were formerly used in Poland." But I doubt that any of the major G-code dialects conforms to any of these standards, but will rather be a superset of them. LinuxCNC has moved on a lot from the 2000 report. For example the 2000 report does not include G76 lathe threading. Personally I see LinuxCNC as the inheritor of the NIST "standard" and just as they were making it up as they went along, so are we. We are still closer to that 2000 report version than most of the commercial G-code variants. |
I'm not an expert on NIST standards. That's why I prefer configurability. On the other hand, I'm not the only one who prefers to ban the MDI queue. |
Branche 2.9 RIP instalation
Tested in Gmoccapy (This issue may also affect other GUIs.)
Here is citation from NIST:
Source
HAL component EMC_MDIhistory allow 'stacking' of MDI commands. So normal behavior in MDI mode is NOT to stop after each line of input anyway.
The second problem is that some standards require MDI commands to be executed only with a physical button.
EMC_MDIhistory can execute commands 3 ways:
I propose a solution:
The LinuxuCNC integrator will produce a physical button.
The signal from the physical button and the HAL pin halui.program.is-idle will be connected to the HAL component and2. This will ensure that the physical button is ignored during MDI command execution.
This disable MUST be configurable.
In Gmoccapy it might look like this:
The text was updated successfully, but these errors were encountered: