Разработка интерпретаторов
  • Разработка интерпретаторов
v3.0.3
Search Results for

    Show / Hide Table of Contents

    Проверка и подтверждение результата

    Помощь ИИ меняет то, как получается черновик. Она не меняет того, как принимается интерпретатор. Успешная сборка и моделирование без ошибок доказывают, что программы сработали, — и не более того.

    Указывайте, до какого предела дошла проверка

    Пользуйтесь одним из четырёх состояний и сохраняйте подтверждение для него. Смысл в том, чтобы незавершённая проверка была видна, а не чтобы всё называлось «готово».

    Состояние Что означает
    Не проверено Есть план, изменения или сборка, но УП через интерпретатор не прогонялись
    Технически проверено Интерпретатор загрузился, программы прошли, журнал и смоделированные команды сохранены, но не сравнивались и не разбирались
    Проверено на эталонных программах Все программы прогнаны до и после изменения, каждое отличие объяснено, предупреждения журнала прочитаны, проверены все версии продукта, для которых предназначен интерпретатор
    Принято для станка Вы или заказчик подтвердили моделирование для конкретного станка

    Последнее состояние присваивает только человек. Никогда не описывайте результат как готовый на основании кода завершения или правдоподобной траектории.

    Прогон программ

    Перед любым прогоном включите журнал, как описано в расширенной настройке: без него сравнивать предупреждения не с чем.

    Одну программу можно проверить вручную: операция на основе текста УП, выбранный интерпретатор, расчёт, затем моделирование и журнал. Прогонять так весь набор после каждого изменения долго. Ассистент может сделать небольшую программу прогона, которая без ваших щелчков открывает проект, моделирует каждую УП с интерпретатором и сохраняет смоделированные команды и журнал этого прогона. Строить её можно только на открытом программном интерфейсе CAM системы для внешних приложений — CAMIPC: он описан в документации по CAM API, а библиотека для подключения к CAM системе входит в её установку. Если в документации нет нужного шага (например, как загрузить текст УП в операцию или выбрать её интерпретатор), а также в NC Тюнере, у которого такого описанного интерфейса нет, прогон ручной: вы рассчитываете операции, а ассистент готовит перечень программ и действий, затем собирает и сравнивает результаты. Программу прогона держите в репозитории интерпретатора и никогда не передавайте заказчику.

    Прежде чем доверять программе прогона, проверьте её на заведомой ошибке: дайте ей УП с ошибкой и с неизвестным словом и убедитесь, что она насчитала обе. Счётчик, который читает не то поле журнала, показывает «0 ошибок» на чём угодно.

    Программы прогоняйте по одной: прогоны в одном процессе CAM системы пишут в один файл журнала, а параллельно запущенные процессы могут вообще не запустить ядро.

    Сравнение

    1. Сравните сводки всех программ до и после. Изменившееся число предупреждений или команд в программе, которой изменение не касалось, объясняйте первым.
    2. Для каждой изменившейся программы начинайте с первого отличия и проследите его до кадра и слова, которое его дало. Непреднамеренное отличие важнее преднамеренного.
    3. Читайте сами предупреждения, а не только их число: каждое называет слово, ось или цикл.
    4. Граничные случаи, которых нет в программах, проверьте короткой программой: слово во всех написаниях из перечня, на границах, пропущенное, повторённое. Собирайте её из заголовка настоящей программы той же операции и заменяйте только проверяемые кадры — без заголовка программа может не дать ни одного движения.

    Отличие, вызванное самой проверкой, а не интерпретатором — другая система координат тестовой операции, другой станок в проекте, — не результат: назовите его и исключите.

    Проверка через постпроцессор

    Если есть постпроцессор заказчика и проект CAM системы, замкните круг: сформируйте УП из операций проекта, прогоните их через интерпретатор и сравните моделирование с траекторией самой операции. Расхождение может оказаться ошибкой постпроцессора. Интерпретатор моделирует то, что сделала бы стойка с программой, а не то, что задумывала операция: о такой ошибке сообщите автору постпроцессора, а не прячьте её в интерпретаторе.

    Проверка на безопасность

    Перед передачей просмотрите каждое изменение на случаи, когда моделирование выглядит безопаснее станка: пропущенный отвод, угаданная начальная точка, цикл, который не моделируется, но оставляет операцию с виду законченной. Каждый такой случай проверьте короткой программой. После каждого круга правок по замечаниям снова прогоните весь набор программ.

    Подготовка к передаче

    Заказчик получает папку на каждую версию продукта: файл *.snci, библиотеку интерпретатора и InterpreterSettings.ini, а файл *.deps.json — только если без него интерпретатор не загружается (это проверяется на неизменённой установке). Ассистент копирует нужные файлы по именам, а не архивирует папку сборки целиком: в ней лежат отладочные файлы и служебные файлы пакета SDK. К ним — README на языке заказчика: что поддерживается, ограничения, настройки, какая папка для какой версии продукта, нужна ли продукту лицензионная опция для загрузки собственного интерпретатора и какие упрощения сделаны намеренно, чтобы их не приняли за ошибки.

    Перед отправкой проверьте:

    • в файлах нет следов вашего компьютера: имён пользователей, домашних папок, внутренних серверов. Библиотеку для передачи собирают без отладочной информации или с заменой путей: обычная сборка записывает в неё путь к файлу *.pdb на вашем компьютере;
    • в файлах нет имён, которые не относятся к этому заказчику: имён других заказчиков, вашего компьютера и его пользователей, внутренних серверов и источников пакетов — ни в именах файлов, путях, настройках, конфигурациях запуска, ссылках на пакеты SDK, ни в README. Искать нужно по содержимому каждого файла, в кодировках UTF-8 и UTF-16, а не только по именам; то же — для всего, что отправляется вместе с пакетом;
    • проект, если заказчик просит исходники, собирается из чистой копии с выпущенным пакетом SDK;
    • интерпретатор работает на неизменённой установке продукта.

    Собирайте пакет из зафиксированных в истории исходников и записывайте, что, когда и кому отправлено.

    Чего ассистент делать не должен

    Он не должен присваивать результату состояние «Принято для станка», менять эталонные программы, станок или проект, чтобы сравнение сошлось, утверждать проверку версии продукта, которую не запускал, и отправлять пакет без вашего разрешения.

    In this article