Какова "Подробная классификация форматов" стандарта ISO 6983 (спецификация G-кода)

Для разработки системы ЧПУ я читаю "ISO 6983-1:2009".

В нем есть несколько ссылок на то, что они называют "Подробной классификацией форматов", которую я изо всех сил пытаюсь понять:

Классификация данных в блоке должна использоваться для указания деталей программирования для конфигурации системы и машины. Это называется подробной классификацией форматов и описано в Приложении C.

...

Нулевое упущение должно быть указано в подробной классификации форматов (см. Приложение С).

...

Количество цифр должно быть указано в соответствии с подробной классификацией форматов ( см. Приложение С).

...

Похоже, что эта "Подробная классификация форматов" является своего рода определением машины, на которой будет выполняться программа. Но в данном случае я не понимаю, почему это является частью программы, а не какими-то значениями системы управления.

Мой вопрос: что именно представляет собой эта "Подробная классификация форматов"?

  • Является ли это частью программы?
  • Какова его цель?

, 👍7

Обсуждение

Подробная информация содержится в каждой последовательности строк, например N01-это номер команды строки, затем N02-это другая последовательность строк, затем N03; пользователь или интерфаза для создания своего собственного кода определяет, являются ли команды номера строки по одному или 10 на 10, чтобы вставить вручную внутри других команд строки, таких как параметры S, функции M03 и M04, чтобы включить или отключить другой механизм, который генератор G-кода не может сделать. Это командные строки от N01 до N9999999. Когда ИСО вызывается, он стандартизирует способ документирования какой-либо процедуры или инструкции; таким образом, каждый, кто знает код, может легко его прочитать., @Fernando Baltazar

@FernandoBaltazar Пожалуйста, воздержитесь от ответа через комментарии. Сделайте это полным ответом., @Trish

@Trish: Его комментарий IMO не отвечает на вопрос, вот почему это комментарий, а не ответ. Или я неправильно это понимаю?, @Adrian Maire

это больше, чем просто комментарий, это попытка ответа., @Trish

@Trish Это подсказка, чтобы прочитать подробную классификацию ISO-6983, а не попытка ответить на полный вопрос. Чаевые обычно дают направление, в котором люди хотят идти. Но если люди, которые спрашивают, не имеют понятия о стандартах ISO и программировании, по крайней мере, Gcode, они не поймут намека; вероятно, они прокомментируют, что ответ не имеет их ответа, и я мог бы получить голос вниз. Также мой комментарий предполагает, что это часть программы и цель в соответствии с его вопросами., @Fernando Baltazar

Для уточнения: вопрос конкретно касается приложения С: "Подробная классификация форматов". Другими словами, я могу читать/писать g-код и иметь приличные знания о стандартах, таких как ISO. Комментарий @FernandoBaltazar, как мне кажется, касается общей темы G-кода и ISO, а не "Приложения C". Например, обычно G02 предназначен для кругового движения, но в этом случае x+053 указывает не относительное/абсолютное положение, а количество цифр слева/справа от десятичного знака?, @Adrian Maire

@AdrianMaire :D предыдущая линия должна иметь положение новой дыры, если указано, то позиция абсолютная, если нет, то позиция относительная; движения +053 относительно позиции. Слава Богу, вы можете читать и писать gcode., @Fernando Baltazar

@FernandoBaltazar Не бойся голосов. У вас есть выбор удалить любой ответ, который наберет слишком много отрицательных голосов или окажется неправильным. Ответы в комментариях, которые превращаются в обсуждения, плохи, не могут быть отредактированы (и я думаю, что в данном случае они на самом деле неверны)., @Sean Houlihane


1 ответ


Лучший ответ:

4

Это просто формализованное определение синтаксиса, так что синтаксический анализатор может быть написан для интерпретации любого юридического G-кода. Без этого возникает двусмысленность - не в общей операции, а в границах того, что является "законным" и что следует отвергнуть.

Если взять пример X+053, то это не позиция из 53 единиц, это:

  • Адрес X
  • Требуется знак (в этой реализации)
  • Начальные нули могут быть опущены
  • До 5 порядков величины до десятичной
  • Точность до 3 знаков после запятой

Это означает, что X может варьироваться от +99999,999 до -99999,999 - интерпретация, соответствующая словосочетанию внизу страницы.

Как указано в тексте, можно использовать различные системы счисления с фиксированной точностью (например, использовать целочисленные миллиметры, а не десятичные метры), а также привязывать к наиболее значимому биту, чтобы 001 мог представлять 00100.000. Возможно, будет полезно вспомнить, что эти спецификации были разработаны во времена специализированного оборудования, а не компьютеров общего назначения, когда стандартный портативный носитель данных занимал ~600 Кб, и относятся к реальным машинам, которые были разработаны задолго до этого.


,

`Вторая цифра указывает на количество десятичных десятилетий перед десятичным знаком " Это не кажется обычным значением адреса: например, X+053 обычно указывает позицию/приращение к X53, а не на то, что перед десятичным знаком есть 5 цифр. Неужели я понимаю это совершенно неправильно?, @Adrian Maire

Кроме того, этот формат уже формализован в главе 5., @Adrian Maire

Обновил свой ответ, чтобы объяснить, что теперь я понимаю, что происходит..., @Sean Houlihane

Спасибо за ваш ответ. Но зачем нужен этот синтаксис, зачем изобретать X+053, когда он может сказать: "Система должна указать/документировать, если начальные нули могут быть опущены"., @Adrian Maire

Он не указывает _if_ ведущие нули могут быть опущены, он указывает международную нотацию для захвата используемой системы счисления - написанную примерно через 50 лет после того, как эти коды начали развиваться. Представьте, что вы хотите, чтобы современная машина потребляла старый G-код, вам нужен четкий способ определить, как его анализировать., @Sean Houlihane

Извините, что немного не тороплюсь с этим. Где бы вы написали это"%: /DS N03 G02 X+053..? В вашей программе g-code? Является ли это настройкой в пользовательском интерфейсе машины? Может быть, " #define в реализации парсера?, @Adrian Maire

Я не уверен, что этот код когда-либо предназначался для использования _directly_ в машиночитаемой форме. Самым близким (я думаю) был бы #define для парсера. Думайте об этом как о чем-то похожем на настройки ЛОКАЛИ., @Sean Houlihane

Давайте [продолжим эту дискуссию в chat](https://chat.stackexchange.com/rooms/81644/discussion-between-adrian-maire-and-sean-houlihane)., @Adrian Maire