Файл настроек интерпретатора
Файл с настройками имеет расширение SNCI (System Numerical Control Interpreter) и формат XML. Описание его элементов приведено ниже. Обязательные к заполнению параметры отмечены признаком в соответствующей колонке.
Значения собственных параметров интерпретатора хранятся не в файле SNCI, а в отдельном файле *.sncix, который ссылается на интерпретатор; как его создать и где выбрать — в разделе о типах для интерпретатора с собственными параметрами на странице Список используемых типов.
Описание элементов SNCI файла
| Название элемента | Формат поля | Описание | Обязательные |
|---|---|---|---|
| NCInterpreter | Тег | Корневой элемент | * |
| CNCSystem | Строка | Название стойки/станка | |
| MachineType | Строка | Тип станка, варианты:
| |
| UseGeomCLData | Логическое | Устанавливает признак использования интерфейса построения траектории движения инструмента в геометрических осях. True — для формирования траектории движения инструмента из CAM системы в интерпретатор передаётся интерфейс INCT_GeomCLData. False — для формирования траектории движения инструмента из CAM системы в интерпретатор передаётся интерфейс INCT_CLData. По умолчанию установлено значение False. | |
| Date | Дата | Дата интерпретатора в формате dd.mm.yyyy | |
| Authors | Строка | Разработчик(-и) | |
| Company | Строка | Компания | |
| Description | Строка | Описание | |
| Version | Число | Версия | * |
| ID | GUID | Идентификатор интерпретатора (должен быть уникальным) | * |
| LibraryID | GUID | Идентификатор программной библиотеки (должен быть уникальным) | * |
| LibraryFileName_Net | Строка | Ссылка на программную библиотеку для платформы .NET | ** |
| NetNamespaceClass | Строка | Пространство имён и имя класса, реализующего интерпретатор (если заполнено поле LibraryFileName_Net) | *** |
| LibraryFileName_x64 | Строка | Ссылка на нативную программную библиотеку версии x64 (используется если не заполнено поле LibraryFileName_Net) | ** |
| LibraryFileName_x32 | Строка | Ссылка на нативную программную библиотеку версии x32 (нужна только для 32-разрядного продукта старой версии) | |
| ParentID | GUID | Идентификатор интерпретатора-родителя (поле ID в SNCI-файле родителя) | * |
| ParentFileName | Строка | Ссылка на файл настроек интерпретатора-родителя (SNCI-файл) | * |
| FileExtension | Строка | Расширение файлов с текстом управляющей программы | * |
| Registers | Тег | Список регистров интерпретатора | * |
* — обязательное поле;
** — должно быть заполнено либо поле LibraryFileName_Net, либо LibraryFileName_x64;
*** — поле должно быть заполнено, если заполнено поле LibraryFileName_Net.
Описание каждого элемента из списка регистров (Registers):
| Название элемента | Формат поля | Описание |
|---|---|---|
| Address | Строка | Адрес регистра |
| Name | Строка | Имя регистра |
| Id | Строка | Идентификатор регистра |
| Comment | Строка | Комментарий |
| AddrOnly | Строка | Варианты значений:
|
| Sign | Целое число | Знак значения:
|
| NumeralsBeforePoint.Count | Целое число | Знаков до точки |
| NumeralsBeforePoint.Zeros | Логическое | Наличие лидирующих нулей |
| DecimalPoint | Целое число | Десятичная точка:
|
| NumeralsAfterPoint.Count | Целое число | Знаков после точки |
| NumeralsAfterPoint.Zeros | Логическое | Незначащие нули |
| Scale | Число | Масштаб |
| Modal | Логическое | Признак модальности регистра |
| ModalGroupList | Список значений | Список значений, которые может принимать регистр |
Тег Version заполняется, как в примере ниже, но его значение CAM система не использует (зарезервировано для будущего использования).
Важными элементами файла настроек интерпретатора являются: его собственный идентификатор (ID), идентификатор (LibraryID) и ссылка на файлы программной библиотеки .NET/x64 версии (LibraryFileName_*), идентификатор (ParentID) и ссылка на интерпретатор родителя (ParentFileName). Идентификаторы файла настроек и программной библиотеки должны быть уникальными (см. статью о GUID: Globally Unique Identifier).
Поле LibraryFileName_* должно указывать на файлы, с программной библиотекой, относительно каталога размещения SNCI-файла. Рекомендуется размещать файл с программной библиотекой в каталоге с SNCI-файлом.
Существует два варианта подключения программной библиотеки к CAM системе:
Программная библиотека разработана для платформы .NET (например, на C#).
В этом случае необходимо заполнить поля LibraryFileName_Net и NetNamespaceClass, где:- LibraryFileName_Net - ссылка на программную библиотеку.
- NetNamespaceClass - пространство имён и класс, реализующий интерфейс взаимодействия с интерпретатором. Формат: Namespace.Class, например: Sample.Interpreter.
Программная библиотека является нативной (написана на 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.