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

    Show / Hide Table of Contents

    Файл настроек интерпретатора

    Файл с настройками имеет расширение SNCI (System Numerical Control Interpreter) и формат XML. Описание его элементов приведено ниже. Обязательные к заполнению параметры отмечены признаком в соответствующей колонке.

    Значения собственных параметров интерпретатора хранятся не в файле SNCI, а в отдельном файле *.sncix, который ссылается на интерпретатор; как его создать и где выбрать — в разделе о типах для интерпретатора с собственными параметрами на странице Список используемых типов.

    Описание элементов SNCI файла

    Название элементаФормат поляОписаниеОбязательные
    NCInterpreterТегКорневой элемент*
    CNCSystemСтрокаНазвание стойки/станка
    MachineTypeСтрока

    Тип станка, варианты:

    • Lathe — токарный
    • Mill — фрезерный
    • TurnMill — токарно-фрезерный
    • Robots — робот
    • WireEDM — электроэрозионный
    UseGeomCLDataЛогическое

    Устанавливает признак использования интерфейса построения траектории движения инструмента в геометрических осях.

    True — для формирования траектории движения инструмента из CAM системы в интерпретатор передаётся интерфейс INCT_GeomCLData.

    False — для формирования траектории движения инструмента из CAM системы в интерпретатор передаётся интерфейс INCT_CLData.

    По умолчанию установлено значение False.

    DateДатаДата интерпретатора в формате dd.mm.yyyy
    AuthorsСтрокаРазработчик(-и)
    CompanyСтрокаКомпания
    DescriptionСтрокаОписание
    VersionЧислоВерсия*
    IDGUIDИдентификатор интерпретатора (должен быть уникальным)*
    LibraryIDGUIDИдентификатор программной библиотеки (должен быть уникальным)*
    LibraryFileName_NetСтрокаСсылка на программную библиотеку для платформы .NET**
    NetNamespaceClassСтрокаПространство имён и имя класса, реализующего интерпретатор (если заполнено поле LibraryFileName_Net)***
    LibraryFileName_x64СтрокаСсылка на нативную программную библиотеку версии x64 (используется если не заполнено поле LibraryFileName_Net)**
    LibraryFileName_x32СтрокаСсылка на нативную программную библиотеку версии x32 (нужна только для 32-разрядного продукта старой версии)
    ParentIDGUIDИдентификатор интерпретатора-родителя (поле ID в SNCI-файле родителя)*
    ParentFileNameСтрокаСсылка на файл настроек интерпретатора-родителя (SNCI-файл)*
    FileExtensionСтрокаРасширение файлов с текстом управляющей программы*
    RegistersТегСписок регистров интерпретатора*

    * — обязательное поле;

    ** — должно быть заполнено либо поле LibraryFileName_Net, либо LibraryFileName_x64;

    *** — поле должно быть заполнено, если заполнено поле LibraryFileName_Net.

    Описание каждого элемента из списка регистров (Registers):

    Название элементаФормат поляОписание
    AddressСтрокаАдрес регистра
    NameСтрокаИмя регистра
    IdСтрокаИдентификатор регистра
    CommentСтрокаКомментарий
    AddrOnlyСтрока

    Варианты значений:

    • aoValue — Слово текста УП состоит только из адреса и значения
    • aoAddr — Слово текста УП состоит только из адреса
    • aoBoth — Слово текста УП может состоять либо только из адреса, либо из адреса и значения
    SignЦелое число

    Знак значения:

    • 0 — без знака
    • 1 — только '-'
    • 2 — '+' и '-'
    NumeralsBeforePoint.CountЦелое числоЗнаков до точки
    NumeralsBeforePoint.ZerosЛогическоеНаличие лидирующих нулей
    DecimalPointЦелое число

    Десятичная точка:

    • 0 — без '.'
    • 1 — '.'
    • 2 — всегда '.'
    NumeralsAfterPoint.CountЦелое числоЗнаков после точки
    NumeralsAfterPoint.ZerosЛогическоеНезначащие нули
    ScaleЧислоМасштаб
    ModalЛогическоеПризнак модальности регистра
    ModalGroupListСписок значенийСписок значений, которые может принимать регистр

    Тег Version заполняется, как в примере ниже, но его значение CAM система не использует (зарезервировано для будущего использования).

    Важными элементами файла настроек интерпретатора являются: его собственный идентификатор (ID), идентификатор (LibraryID) и ссылка на файлы программной библиотеки .NET/x64 версии (LibraryFileName_*), идентификатор (ParentID) и ссылка на интерпретатор родителя (ParentFileName). Идентификаторы файла настроек и программной библиотеки должны быть уникальными (см. статью о GUID: Globally Unique Identifier).

    Поле LibraryFileName_* должно указывать на файлы, с программной библиотекой, относительно каталога размещения SNCI-файла. Рекомендуется размещать файл с программной библиотекой в каталоге с SNCI-файлом.

    Существует два варианта подключения программной библиотеки к CAM системе:

    1. Программная библиотека разработана для платформы .NET (например, на C#).
      В этом случае необходимо заполнить поля LibraryFileName_Net и NetNamespaceClass, где:

      • LibraryFileName_Net - ссылка на программную библиотеку.
      • NetNamespaceClass - пространство имён и класс, реализующий интерфейс взаимодействия с интерпретатором. Формат: Namespace.Class, например: Sample.Interpreter.
    2. Программная библиотека является нативной (написана на Delphi, C++ и пр.)

      В этом случае должно быть заполнено поле LibraryFileName_x64 (ссылка на программную библиотеку x64). Версию x64 программной библиотеки обязательно следует называть, используя окончание "64". Например: Sample_x64.dll или Sample_Win64.dll. Где "Sample" — название программной библиотеки.

    Если интерпретатор не является наследником другого интерпретатора, то поля родителя заполняются пустыми значениями:

    <ParentID>{00000000-0000-0000-0000-000000000000}</ParentID>

    <ParentFileName/>

    Тег FileExtension заполняется, как в примере ниже, но его значение CAM система не использует (зарезервировано для будущего использования).

    В поле Registers находится список регистров для автоматического выделения слов из текста управляющей программы. Порядок трансляции кадра управляющей программы описан в следующей статье. В файле настроек интерпретатора допускается не заполнять список регистров, он будет получен от программной библиотеки интерпретатора, тем не менее тег <Registers/> должен присутствовать.

    Использование файла настроек интерпретатора приведено в разделе Процесс интерпретации текста управляющей программы.

    Пример файла настроек интерпретатора для нативной библиотеки (x64):

    <?xml version="1.0" encoding="UTF-8" ?>
    <NCInterpreter>
     <CNCSystem>Sample CNC (mill)</CNCSystem>
     <MachineType>Mill</MachineType>
     <Date>01.01.2019</Date>
     <Authors>Ivan Danko</Authors>
     <Company>SPRUT Technology</Company>
     <Description>Interpreter for Sample CNC</Description>
     <Version>1</Version>
     <ID>{79B1410C-67D5-42B6-867B-A3BF30AB3D8A}</ID>
     <LibraryID>{80F754D9-EE7B-47CF-A802-A9424D9F6749}</LibraryID>
     <LibraryFileName_x64>Sample_x64.dll</LibraryFileName_x64>
     <ParentID>{00000000-0000-0000-0000-000000000000}</ParentID>
     <ParentFileName/>
     <FileExtension>*.cnc</FileExtension>
     <Registers/>
    </NCInterpreter>
    

    Скачать пример Sample.snci.

    Примечание

    Это образец формата файла: библиотеки Sample_x64.dll к нему нет. Поля ID и LibraryID в нём совпадают с файлом sample.snci интерпретатора sample из раздела Примеры интерпретаторов с исходными кодами, а интерпретатор sample_inheritance ищет родителя по имени файла sample.snci и его ID. Не кладите образец туда, где CAM система ищет интерпретаторы, а если делаете из него свой интерпретатор, впишите в ID и LibraryID новые GUID.

    In this article