G-code - 6. 기타 명령

목록

Other commands

기타 명령

G: List all G-codes

G: 모든 G 코드 나열

Support FiveD Teacup Sprinter Marlin Repetier Smoothie RepRapFirmware Machinekit MakerBot grbl Redeem ??? ??? ??? ??? ??? ??? No ??? ??? ??? Yes

Example: G

예: G

This lists all implemeted G-codes in the firmware with description and sends it back to the host. (Note: this has been implemented in Redeem, and so is only a proposition)

이는 설명과 함께 펌웨어에 구현된 모든 G 코드를 나열하고 이를 호스트로 다시 보냅니다. (참고: 이는 Redeem에서 구현되었으므로 단지 제안일 뿐입니다)

M: List all M-codes

M: 모든 M 코드 나열

Support FiveD Teacup Sprinter Marlin Repetier Smoothie RepRapFirmware Machinekit MakerBot grbl Redeem ??? ??? ??? ??? ??? ??? No ??? ??? ??? Yes

Example: M

예: M

This lists all implemeted M-codes in the firmware with description (Note: this has been implemented in Redeem, and so is only a proposition) and sends it back to the host.

이는 설명과 함께 펌웨어에 구현된 모든 M 코드를 나열하고 (참고: 이는 Redeem에서 구현되었으므로 단지 제안일 뿐입니다) 호스트로 다시 보냅니다.

T: Select Tool

T: 선택 도구

Support FiveD Teacup Sprinter Marlin Repetier Smoothie RepRapFirmware Machinekit MakerBot grbl Redeem Yes Yes No Yes Yes Yes Yes ??? ??? ??? Yes

Parameters

매개변수

This command can be used without any additional parameters.

이 명령은 추가 매개변수 없이 사용할 수 있습니다.

Tool number

도구 번호

Example

T1

T1

Select tool (or in older implementations extruder) number 1 to build with.

빌드할 도구 (또는 이전 구현에서는 압출기) 번호 1을 선택합니다).

The sequence followed is:

이어지는 순서는 다음과 같습니다:

1. Set the current tool to its standby temperatures specified by G10 (see above), 2. Set the new tool to its operating temperatures specified by G10 and wait for all temperatures to stabilise, 3. Apply any X, Y, Z offset for the new tool specified by G10, 4. Use the new tool.

1. 현재 도구를 G10 (위 참조)에 지정된 대기 온도로 설정합니다. 2. 새 도구를 G10에 지정된 작동 온도로 설정하고 모든 온도가 안정화될 때까지 기다립니다. 3. G10에 의해 지정된 새 도구에 대해 X, Y, Z 오프셋을 적용하고, 새로운 도구를 사용하세요.

That is to say it leaves all tools in their standby state.

즉, 모든 도구를 대기 상태로 둡니다.

You can, of course, use the G10 command beforehand to set that standby temperature to anything you like.

물론 사전에 G10 명령을 사용하여 대기 온도를 원하는 대로 설정할 수 있습니다.

Note that you may wish to move to a parking position before executing a T command in order to allow the new extruder to reach temperature while not in contact with the print.

새 압출기가 인쇄물과 접촉하지 않는 동안 온도에 도달할 수 있도록 T 명령을 실행하기 전에 파킹 위치로 이동하는 것이 좋습니다.

It is acceptable for the firmware to apply a small offset [by convention (-1mm x tool-number) in Y] to the current position when the above sequence is entered to allow temperature changes to take effect just away from the parking position.

온도 변화가 주차 위치에서 바로 적용되도록 하기 위해 위의 순서가 입력될 때 펌웨어가 현재 위치에 작은 오프셋 [관례에 따라 (-1mm x 도구 번호)]을 적용하는 것이 허용됩니다.

Any such offset must, of course, be undone when the procedure finishes.

물론 이러한 오프셋은 절차가 끝나면 실행 취소되어야 합니다.

If the Z value changes in the offsets and the tool moves up, then the Z move is made before the X and Y moves.

오프셋에서 Z 값이 변경되고 도구가 위로 이동하면 X 및 Y가 이동하기 전에 Z 이동이 수행됩니다.

If Z moves down, X and Y are done first.

Z가 아래로 이동하면 X와 Y가 먼저 수행됩니다.

Some implementations (e.g. RepRapFirmware) allow you to specify tool-change G Code macros.

일부 구현 (예: RepRapFirmware)을 사용하면 도구 변경 G 코드 매크로를 지정할 수 있습니다.

There are normally three specified (any of which can contain no commands if desired) that execute in this order:

일반적으로 다음 순서로 실행되는 세 가지가 지정되어 있습니다 (원하는 경우 명령을 포함할 수 없음).

1. Actions to do with the old tool before it is released - macro name: tfreeN.g where N is the tool number;

1. 이전 도구가 출시되기 전에 수행할 작업 - 매크로 이름: tfreeN.g 여기서 N은 도구 번호입니다.

2. (Old tool is released);

2. (기존 도구가 출시되었습니다);

3. Actions to do with the new tool before it is selected - macro name: tpreN.g where N is the tool number;

3. 새 도구를 선택하기 전에 수행할 작업 - 매크로 이름: tpreN.g 여기서 N은 도구 번호입니다.

4. (New tool is selected); and

4. (새 도구가 선택됩니다); 그리고

5. Actions to do with the new tool after it is selected - macro name: tpostN.g where N is the tool number.

5. 새 도구를 선택한 후 수행할 작업 - 매크로 이름: tpostN.g 여기서 N은 도구 번호입니다.

With such implementations there is no wait for temperature stabilisation.

이러한 구현을 사용하면 온도 안정화를 기다릴 필요가 없습니다.

That can be achieved by an M116 in any of the macros, of course.

물론 모든 매크로에서 M116을 사용하여 이를 달성될 수 있습니다.

After a reset tools will not start heating until they are selected.

재설정 후 도구는 선택될 때까지 가열을 시작하지 않습니다.

You can either put them all at their standby temperature by selecting them in turn, or leave them off so they only come on if/when you first use them.

차례로 선택하여 모두 대기 온도로 설정하거나 처음 사용할 때만 켜지도록 꺼둘 수 있습니다.

The M0, M1 and M112 commands turn them all off.

M0, M1 및 M112 명령은 모두 꺼집니다.

You can, of course, turn them all off with the M1 command, then turn some back on again.

물론 M1 명령을 사용하여 모두 끄고 일부를 다시 켤 수도 있습니다.

Don't forget also to turn on the heated bed (if any) if you use that trick.

그 트릭을 사용한다면 온열 베드 (있는 경우)를 켜는 것도 잊지 마세요.

Tool numbering may start at 0 or 1, depending on the implementation.

도구 번호 지정은 구현에 따라 0 또는 1부터 시작할 수 있습니다.

Some implementations (those that use the M563 command to define tools) allow the user to specify tool numbers, so with them you can have tools 17, 99 and 203 if you want.

일부 구현 (M563 명령을 사용하여 도구를 정의하는 구현)에서는 사용자가 도구 번호를 지정할 수 있으므로 원하는 경우 도구 17, 99 및 203을 사용할 수 있습니다.

Negative numbers are not allowed.

음수는 허용되지 않습니다.

Notes

참고

1) For RepRapFirmware, selecting a non-existent tool also removes any X/Y/Z offset applied for the old tool.

1) RepRapFirmware의 경우 존재하지 않는 도구를 선택하면 이전 도구에 적용된 X/Y/Z 오프셋도 제거됩니다.

2) Under special circumstances, the execution of those macro files may not be desired.

2) 특별한 상황에서는 해당 매크로 파일의 실행이 바람직하지 않을 수 있습니다.

RepRapFirmware 109p-ch allows the 'S0' parameter to be passed to prevent the execution of tool change macro files.

RepRapFirmware 109p-ch를 사용하면 'S0' 매개변수를 전달하여 도구 변경 매크로 파일의 실행을 방지할 수 있습니다.

Proposed EEPROM configuration codes

제안된 EEPROM 구성 코드

BRIEFLY: each RepRap has a number of physical parameters that should be persistent,but easily configurable, such as extrusion steps/mm, various max values, etc.

간략하게: 각 RepRap에는 지속되어야 하지만 쉽게 구성할 수 있는 여러 물리적 매개변수 (예: 압출 단계/mm, 다양한 최대 값 등)가 있습니다.

Those parameters are currently hardcoded in the firmware, so that a user has to modify, recompile and re-flash the firmware for any adjustments.

해당 매개변수는 현재 펌웨어에 하드 코딩되어 있으므로 사용자는 조정을 위해 펌웨어를 수정, 재컴파일 및 다시 플래시해야 합니다.

These configs can be stored in MCU's EEPROM and modified via some M-codes.

이러한 구성은 MCU의 EEPROM에 저장되고 일부 M 코드를 통해 수정될 수 있습니다.

Please see the detailed proposal at M-codes for EEPROM config.

EEPROM 구성을 위한 M 코드에서 자세한 제안을 참조하세요.

(This is proposed by --AlexRa on 11-March-2011.

(이는 --AlexRa가 2011년 3월 11일에 제안한 것입니다.)

There is currently no working implementation of the proposed commands).

현재 제안된 명령이 제대로 구현되지 않았습니다.)

Marlin uses codes M500-M503 to manipulate EEPROM values.

Marlin은 코드 M500-M503을 사용하여 EEPROM 값을 조작합니다.

Sprinter has implemented the following commands to manipulate EEPROM Commit message.

Sprinter는 EEPROM Commit 메시지를 조작하기 위해 다음 명령을 구현했습니다.

Teacup uses codes M130-M136 to set, read, and save some parameters.

Teacup은 코드 M130-M136을 사용하여 일부 매개변수를 설정하고, 읽고 저장합니다.

Replies from the RepRap machine to the host computer

RepRap 머신에서 호스트 컴퓨터로의 응답

All communication is in printable ASCII characters.

모든 통신은 인쇄 가능한 ASCII 문자로 이루어집니다.

Messages sent back to the host computer are terminated by a newline and look like this:

호스트 컴퓨터로 다시 전송된 메시지는 개행 문자로 종료되며 다음과 같습니다:

xx [line number to resend] [T:93.2 B:22.9] [C: X:9.2 Y:125.4 Z:3.7 E:1902.5] [Some debugging or other information may be here]

xx [다시 보낼 줄 번호] [T:93.2 B:22.9] [C: X:9.2 Y:125.4 Z:3.7 E:1902.5] [일부 디버깅 또는 기타 정보가 여기에 있을 수 있습니다.]

xx can be one of:

xx는 다음 중 하나일 수 있습니다.

ok

ok

rs

rs

!!

!!

ok means that no error has been detected.

ok는 오류가 발견되지 않았음을 의미합니다.

rs means resend, and is followed by the line number to resend.

rs는 재전송을 의미하며 그 뒤에 재전송할 줄 번호가 옵니다.

!! means that a hardware fault has been detected.

!! 하드웨어 결함이 감지되었음을 의미합니다.

The RepRap machine will shut down immediately after it has sent this message.

RepRap 시스템은 이 메시지를 보낸 후 즉시 종료됩니다.

The T: and B: values are the temperature of the currently-selected extruder and the bed respectively, and are only sent in response to M105.

T: 및 B: 값은 각각 현재 선택된 압출기와 베드의 온도이며 M105에 대한 응답으로만 전송됩니다.

If such temperatures don't exist (for example for an extruder that works at room temperature and doesn't have a sensor) then a value below absolute zero (-273oC) is returned.

그러한 온도가 존재하지 않는 경우 (예: 실온에서 작동하고 센서가 없는 압출기의 경우) 절대 영도 (-273oC) 미만의 값이 반환됩니다.

C: means that coordinates follow.

C: 좌표가 따른다는 뜻입니다.

Those are the X: Y: etc values. These are only sent in response to M114 and M117

X: Y: 등의 값입니다. 이는 M114 및 M117에 대한 응답으로만 전송됩니다

The RepRap machine may also send lines that look like this:

RepRap 머신은 다음과 같은 라인을 보낼 수도 있습니다:

// This is some debugging or other information on a line on its own.

// 이것은 그 자체로 한 줄에 있는 일부 디버깅 또는 기타 정보입니다.

It may be sent at any time.

언제든지 발송될 수 있습니다.

Such lines will always be preceded by //.

이러한 줄 앞에는 항상 //가 옵니다.

On the latest version of Pronterface and soon Octoprint a special comment of the form: // action:command is allowed to be sent from the firmware, the command can currently be pause, resume or disconnect which will execute those commands on the host.

최신 버전의 Pronterface 및 곧 Octoprint에 다음 형식의 특별 설명이 추가됩니다. // 작업: 명령은 펌웨어에서 전송될 수 있으며, 명령은 현재 호스트에서 해당 명령을 실행하는 일시 중지, 재개 또는 연결 해제할 수 있습니다.

As this is also a comment other hosts will just ignore these commands.

이것은 또한 주석이므로 다른 호스트는 이러한 명령을 무시합니다.

The most common response is simply: Ok

가장 일반적인 응답은 다음과 같습니다: Ok

When the machine boots up it sends the string

머신이 부팅되면 문자열을 보냅니다

Start once to the host before sending anything else.

다른 것을 보내기 전에 호스트에 한 번 시작하십시오.

This should not be replaced or augmented by version numbers and the like.

이는 버전 번호 등으로 대체되거나 확대되어서는 안됩니다.

M115 (see above) requests those.

M115 (위 참조)가 이를 요청합니다.

All this means that every line sent by RepRap to the host computer except the start line has a two-character prefix (one of ok, rs, !! or //).

이 모든 것은 시작 라인을 제외하고 RepRap이 호스트 컴퓨터로 보낸 모든 라인에는 두 문자 접두사 (ok, rs, !! 또는 // 중 하나)가 있음을 의미합니다.

The machine should never send a line without such a prefix.

기계는 그러한 접두어가 없는 행을 절대 보내서는 안됩니다.

Exceptions:

예외:

1. Marlin 1.0.0 Gen6 Firmware does not follow the two character rule. 'rs' is actually 'Resend' and '!!' is 'Error'.

1. Marlin 1.0.0 Gen6 펌웨어는 두 문자 규칙을 따르지 않습니다. 'rs'는 실제로 '재전송'이고 '!!'는 '오류'입니다.

Error: Line Number is not current line + 1. Last Line: 7

오류: 줄 번호가 현재 줄 + 1이 아닙니다. 마지막 줄: 7

Example Lines:

예제 라인:

Resend: 8

재전송: 8

Writing to File: print.gco

파일에 쓰기: print.gco

Done saving file.

파일 저장이 완료되었습니다.

File opened:print.gco Size:22992

열린 파일:print.gco 크기:22992

File selected

선택한 파일

When in the code base did this change take place and what other firmwares are affected?

코드 베이스에서 언제 이러한 변경이 이루어졌으며, 영향을 받는 다른 펌웨어는 무엇입니까?

2. The dc42 fork of RepRapFirmware responds to some commands with a reply string in JSON format, terminated by a newline.

2. RepRapFirmware의 dc42 포크는 줄 바꿈으로 끝나는 JSON 형식의 응답 문자열로 일부 명령에 응답합니다.

This allows later firmware revisions to include additional information without confusing clients (e.g. PanelDue) that do not expect it, and to make responses self-describing so that the client will not be confused if responses are delayed or lost.

이를 통해 이후의 펌웨어 개정에는 이를 기대하지 않는 클라이언트 (예: PanelDue)를 혼동하지 않고 추가 정보를 포함할 수 있으며 응답이 지연되거나 손실되는 경우 클라이언트가 혼동하지 않도록 자체 설명 응답을 만들 수 있습니다.

The commands affected are:

영향을 받는 명령은 다음과 같습니다.

M105 S2

M105 S2

M105 S3

M105 S3

M20 S2

M20 S2

M36

M36

M408

M408

Proposal for sending multiple lines of G-code

여러 줄의 G 코드 전송 제안

So far, this is a proposal, open for discussion.

지금까지 이것은 논의의 여지가 있는 제안입니다.

Problem to solve

해결해야 할 문제

When using Marlin firmware or emulating Marlin, each line of G-code sent from the host to the controller is answered with an ok before the next line can be sent without locking communications up.

Marlin 펌웨어를 사용하거나 Marlin을 에뮬레이션 할 때 호스트에서 컨트롤러로 전송된 G 코드의 각 라인은 통신을 잠그지 않고 다음 라인이 전송되기 전에 ok로 응답됩니다.

This slows down communication and limits the number of commands that can be sent per second to the printer controller, as the USB stack on the host and the serial interface driver on the Arduino add their own latencies (up to 10 milliseconds).

이로 인해 통신 속도가 느려지고 호스트의 USB 스택과 Arduino의 직렬 인터페이스 드라이버에 자체 대기 시간 (최대 10밀리초)이 추가되므로 프린터 컨트롤러에 초당 전송할 수 있는 명령 수가 제한됩니다.

This is not a problem for other controller electronics using native USB such as the Duet, because the standard serial-over-USB drivers provide flow control, so the host software can be configured so as not to wait for the ok.

Duet과 같은 기본 USB를 사용하는 다른 컨트롤러 전자 장치에서는 문제가 되지 않습니다. 왜냐하면 표준 USB를 통한 직렬 드라이버가 흐름 제어를 제공하므로 호스트 소프트웨어가 확인을 기다리지 않도록 구성할 수 있기 때문입니다.

For more details on this proposal, some suggested solutions and comments, please see GCODE_buffer_multiline_proposal.

이 제안에 대한 자세한 내용은, 제안된 솔루션 및 의견은 GCODE_buffer_multiline_proposal을 참조하세요.

Alternatives to G-code

G 코드의 대안

Main article: Firmware/Alternative#alternatives to G-code

주요 기사: G 코드에 대한 Firmware/Alternative#alternatives

Several people have suggested using STEP-NC or some other control language; or perhaps designing a completely new control language.

몇몇 사람들은 STEP-NC나 다른 제어 언어 사용을 제안했습니다. 또는 완전히 새로운 제어 언어를 설계할 수도 있습니다.