Vereist gcode een reactiecode van de tolk?

Ik maak een kleine machine die g-code interpreteert en sommige steppers op de juiste manier beweegt. Ik gebruik een arduino als het brein aan de kant van de machine en stuur er commando's naar toe vanuit sommige software die ik ook aan het bouwen ben.

Als het een commando ontvangt om de steppers te verplaatsen, laten we zeggen, duizend stappen, weet de computer dan wanneer het klaar is en klaar om een ​​ander commando te ontvangen?

Zodra de arduino een commando ontvangt, bijvoorbeeld "L101G01X9Y10", zou het moeten antwoorden met een willekeurige code om te zeggen "Oké, ik heb het, geef me nog een opdracht"?

NOTITIE: Ik ben in dit geval niet op zoek naar een oplossing op maat. Ik probeer vast te stellen wat het standaardprotocol is

2

2 antwoord

Zie: http://en.wikipedia.org/wiki/G-code G-code is een eenrichtingsprotocol; Ik denk dat echoën van geïnterpreteerde commando's heel gewoon is. Anders zou de DNC-terminal leeg zijn.

Traditioneel stopt de doelmachine en wordt er een alarm weergegeven aan de operator (een persoon) als er een fout optreedt.

Het maakt niet uit of de tolk het commando heeft verwerkt. Wat wel van belang is, is of de communicatiebuffer ruimte biedt voor meer gegevens.

Het apparaat gebruikt hardware- of softwarematige stroombesturing van de communicatieverbinding om te voorkomen dat de verzendende computer de buffer overstroomt. De specifieke implementatie houdt verband met wat voor soort link u gebruikt.

See: http://en.wikipedia.org/wiki/Flow_control

Als u van plan bent om iets mooiers dan een terminalprogramma te gebruiken, kunt u wat u maar wilt terugsturen. Ik weet niet of er normen zijn. Verwar het niet met systemen die de interpolatie op de pc uitvoeren, zoals Mach 3 (http://www.machsupport.com/).

3
toegevoegd

Na elke regel Gcode die door de host naar de controller is verzonden, alle RepRap G-code-tolken (meestal) reageren met een regel die begint met "ok" en eindigt met een nieuwe regel. Meestal zijn het slechts die 3 bytes - "ok \ n" - maar af en toe is er wat foutopsporingsinformatie aan het einde van de regel.

Heb je er al aan gedacht om te beginnen met een van de RepRap Gcode-tolken die op een Arduino worden uitgevoerd, en deze aan te passen om aan je behoeften te voldoen, in plaats van helemaal opnieuw te beginnen?

De meeste van die RepRap-tolken werken precies zoals Michael Pruitt aangaf - ze hebben een interne buffer die meerdere regels Gcode kan bevatten. De interpreter blijft wachten op het verzenden van het "ok" -antwoord tot er zit voldoende ruimte in die buffer voor de volgende regel Gcode. Als er voldoende ruimte in de buffer is, de interpreter kan onmiddellijk "ok" sturen als antwoord op verschillende G1-codes, ze allemaal bufferen, het verzenden van die OK's long voordat het daadwerkelijk een van die commando's uitvoert.

Ik hoor dat er een aantal andere methoden zijn om aan de drip-feeder-software aan het eind van de host dat het apparaat klaar is voor de volgende regel Gcode: dnc4U vermeldt "XON/XOFF, RTS/CTS Haas Xmodem en Heidenhain Blockwise protocollen voor handshaking".

Ik zou willen dat er één standaardprotocol was, of een manier om automatisch te detecteren welk standaardprotocol de huidige computer gebruikt.

0
toegevoegd