Взаимодействие с ЛИР919Д

Модератор: Денис Кашин

Ответить
nea
Сообщения: 4
Зарегистрирован: 14 май 2020, 18:42

Взаимодействие с ЛИР919Д

Сообщение nea »

Добрый день. Требуется консультация по ЛИР919Д. Устройства в наличии нет, а софт надо разрабатывать сейчас, поэтому вопросы в теории. Планируется следующее подключение модуля: СУ (microPC: FreeDOS + assembler (поэтому Ваша библиотека не подходит, всё надо писать самим, среда разработки ПО/ ОС обсуждению не подлежит)) -> RS485 (modbus rtu) -> ЛИР919Д -> SSI -> абсолютный датчик. ЛИР планируется использовать для ввода в СУ текущего положения механизма, т.е. как преобразователь интерфейсов SSI/RS.
1. Правильно ли я понимаю, при первом включении питания обмен с ЛИР919Д посредством программы Demo гарантирован только ч/з USB; RS485 м.б. выключен и в этом случае связаться с устройством не удастся?
Считаем, что мы выполнили следующее. Подключили ЛИР к компьютеру ч/з USB/достучались до ЛИР посредством Demo/ включили (если выключены) и настроили модули RS485 и датчика/ сохранили настройки в ПЗУ ЛИР/выключили питание ЛИР/отключили USB и подключили ЛИР штатно по RS485 к СУ.
2. Вопрос – после вЫключения питания ЛИР его модули RS и датчика остаются включенными, при повторных включениях питания СУ может запрашивать данные от датчика (понимаем, что в контроллере программно uart сконфигурирован, функции организации обмена разработаны/отлажены)? Или каждый раз требуется отправлять в ЛИР ULP-функции для включения модулей, тогда как организовать связь по RS485 до включения этого модуля? Без железа пока не понятно …
3. Вопрос по настройке представления данных датчика в СУ. Из скриншотов экранов программы Demo (см. файл описания программы настройки) сложилось впечатление, что в ней для абсолютного датчика нельзя задать коэффициенты А/В пересчёта кода в единицы перемещения, вычислять надо в СУ. Смещение нуля по текущим показаниям датчика, я полагаю, записывается в ЛИР по кнопке «>0<» на вкладке модуля датчика…? В файле описания ULP-протокола для модуля датчика указаны расширенные функции 0х18/19 для задания смещения нуля. Для коэффициентов А/В функций не указано. Как на самом деле обстоят дела?
4. Пока планирую взаимодействие с ЛИР организовать таким образом. Настроить ЛИР как slave и читать ч/з регистры ввода modbus данные датчика. Или для взаимодействия с ЛИР лучше использовать UPL-функции? При разных способах обмена принципиальная разница в организации обмена с датчиком на стороне ЛИР есть?
5. При использовании варианта с регистрами modbus (перечень смотрю в файле РЭ на ЛИР919) возникли следующие вопросы. Сколько на одно положение датчика надо отправить запросов в ЛИР (1 или 2) и какие конкретно регистры считать, чтобы получить в СУ текущую координату? Сложилось мнение, что это д.б. регистры ввода 0х10…0х14, т.е. при таком запросе ЛИР, получив обращение к 0х10, отправит запрос в датчик, значение в датчике защёлкнется и считается в ЛИР, ЛИР запишет данные в 0х11…0х14 и передаст в ответе в СУ. Регистры 0х17…0х1В позволяют повторно считать это же защёлкнутое значение. Если не так, ошиблась с номерами и назначением регистров, поправьте, пожалуйста. Как при этом должен читаться регистр статуса - в одном запросе с регистрами данных датчика или в отдельном, а в следующем запросе - 4 регистра данных (по аналогии с использованием UPL-функций – делать 2 обращения к ЛИР – обновить показания датчика (0х14) и считать показания (0х15))?
Спасибо.
Денис Кашин
СКБИС
СКБИС
Сообщения: 460
Зарегистрирован: 13 фев 2008, 14:38
Контактная информация:

Re: Взаимодействие с ЛИР919Д

Сообщение Денис Кашин »

Здравствуйте,

Вот ответ разработчика:
1. Да. Так и есть.

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

3. Коэффициент пересчета, а также, другие настройки оси являются общими для всех типов датчиков. Смещение для всех СО может быть установлено по кнопке >0<. Для абсолютной СО (G53) смещение так же может быть задано через соответствующее поле настроек оси вручную.

Если требуется выполнять пересчет на стороне СУ, то коэффициенты A/B задаются равными 1. Оба коэффициента входят в настройки модуля и задаются с помощью стандартной функции 0х08 "Установить настройки модуля". Структура настроек указана в описании модуля.

4. Разницы в обмене с датчиком в зависимости от выбранного протокола нет. ULP позволяет за один сеанс взаимодействия с устройством выполнить несколько команд. Так же, при поддержке всех возможностей ULP (при начале работы опрос и построение модульной структуры устройства) появляется возможность замены ЛИР-919 на другое устройство СКБ ИС с поддержкой ULP протокола без модернизации написанного ПО.

5. Все верно. Регистры считываются за один запрос 0х10...0х14. Позиция датчика выдается младшими байтами вперед поэтому старшие регистры modbus, содержащие биты позиции, превышающие разрядность датчика, можно не считывать.

ULP-функции 0х14 и 0х15 (как и все остальные) могут быть отправлены в одном ULP-запросе. Соответственно чтение позиции произойдет за один сеанс взаимодействия, также как и в варианте с modbus регистрами.
nea
Сообщения: 4
Зарегистрирован: 14 май 2020, 18:42

Re: Взаимодействие с ЛИР919Д

Сообщение nea »

Добрый день. Спасибо за ответ. Есть ещё вопросы по модулю датчика (SSI).
Исходим из того, задан коэффициент пересчёта в мм (А/В) и смещение нуля.
1. Расширенная команда «Запрос показаний датчика (0х15)» (== регистры modbus) возвращает 2 байта status и 8 байт coord – «координата после коррекции, приведенная к единицам СИ со смещением (знаковая)».
Вопрос 1. Для получения информации о состоянии датчика в status нужно ли при конфигурировании ЛИР в программе DEMO настраивать дополнительно какие-либо модули (функциональных вх/вых , виртуальных вх/вых)? (на данном этапе уже надо понять что именно и как настроить и помимо софта ещё написать РЭ по конфигурированию ЛИР… И всё без оборудования.:( ).
Вопрос 2. В каком виде представлена координата в coord, т.е. как конкретно интерпретировать данные? + В файле описания Demo вижу на вкладке «порт датчика» поле «значение в». Это поле как-то влияет на то, что приходит в coord или задаёт представление координаты в поле отображения в самой DEMO (если оно там есть...)?
Например, мы в одном проекте использовали ПИ, который выполнял пересчёт SSI кода в СИ и результат выдавал в виде последовательности ascii-кодов: знак(+/-) + цифровое значение каждого отдельного разряда целой части + 0х2Е (код десятичной точки) + значения каждого разряда дробной части. А как интерпретировать данные от ЛИР пока не понятно.

2. Задание смещения нуля. Вопросы аналогичны п.1.1…
Вопрос1 . В каком виде приходят данные по функции 0х1А и задаются в 0х19?
Вопрос 2. Какие модули и что именно надо дополнительно настроить для доступа к данным функциям ЛИР?

Спасибо
Денис Кашин
СКБИС
СКБИС
Сообщения: 460
Зарегистрирован: 13 фев 2008, 14:38
Контактная информация:

Re: Взаимодействие с ЛИР919Д

Сообщение Денис Кашин »

Во всех ULP-командах значения передаются в двоичном формате.

1.1. Для работы с датчиком достаточно только включить и сконфигурировать модуль датчика:
- выбрать подмодуль по типу датчика (инкрементный/SSI/BISS-C/BISS-B);
- установить настройки оси:
- для линейных: направление счета, код грея, коэффициент пересчета;
- для угловых: все параметры;

- установить смещение G53 - смещение абсолютной СО для совпадения с нулевым значением установки (подразумевается, что данное смещение устанавливается только при настройке);
- установить параметры датчика;
- если требуется, произвести коррекцию;


Опционально, используя цифровые входы/выходы устройства, можно:
- вывести статус ошибки датчика;
- вывести статус захвата референтной метки;
- ввести сигнал запуска захвата референтной метки;
- ввести сигнал записи позиции во встроенный буфер устройства.


Для реализации данных возможностей необходимо включить и настроить:
- модуль цифровых входов/выходов;
- модуль виртуальных входов/выходов;
- модуль функциональных сигналов.


После настройки устройства необходимо произвести сохранение всех параметров в энергонезависимую память с помощью соответствующей кнопки во вкладке "Системный".


1.2. little endian / int64_t. "Значение в" влияет только на формат отображения в программе ULP_Demo.

Предположим, что у нас линейный датчик:
- с дискретой 0.1 мкм;
- мы хотим видеть позицию с точностью до 4 знака;
- коэффициент пересчета 1 (можно посчитать в AB_calculator);
- текущая позиция 123456789.


В поле coordinate мы получим 123456789. Эту позицию необходимо поделить на 10^4. Результат: 12345.6789



Предположим, что у нас линейный датчик:
- с дискретой 0.2 мкм;
- мы хотим видеть позицию с точностью до 3 знака;
- коэффициент пересчета 1/5 (можно посчитать в AB_calculator);
- текущая позиция 10000.


В поле coordinate мы получим 2000. Эту позицию необходимо поделить на 10^3. Результат: 2.000


Для угловой оси поле coordinate содержит позицию аналогично в градусах и долях градуса. Пересчет в градусы/минуты/секунды осуществляется на принимающей стороне.


2.1. Позиция передается в формате little endian / int64_t. Номер СО в формате uint8_t (G52 - 1; G54 - 3, для других СО эти команды применять не стоит).

Позиция передается с обратным преобразованием: смещение * 10^(число знаков после точки).

2.2. Для доступа к функциям модуля достаточно включить соответствующий модуль (в данном случае модуль датчика). Для выключенного модуля доступны только команды 0х00 - 0х04.
nea
Сообщения: 4
Зарегистрирован: 14 май 2020, 18:42

Re: Взаимодействие с ЛИР919Д

Сообщение nea »

Добрый день.
Пишу руководство по подготовке ЛИР919 к работе, уточните, пожалуйста, несколько моментов.
1. В файле описания программы demo в одной части говорится «во вкладке НАСТРОЙКИ можно задать интервал, с которым будет происходить опрос устройства» (единственное упоминание вкладки). В другой части документа для вкладки СИСТЕМА есть единственный параметр – время цикла управления. В обоих случаях речь идёт об одном и том же параметре или разных?

2. Время цикла управления
Насколько я понимаю, при каждом срабатывании таймера цикла управления системный модуль опрашивает ОПТОМ ВСЕ имеющиеся модули ЛИР.
2.1. В каких единицах времени задаётся время цикла управления во вкладке СИСТЕМА? (мкс/мс/с)?
2.2. Каково рекомендованное производителем значение данного параметра? Какой возможный диапазон значений?
2.3. Как вообще влияет это время на работу модуля (с таймерами понятно, в остальном)?

3. Модуль SSI-датчика (совместно с п.4 ЛИР-ММ158А)
Рассматриваем статус АБСОЛЮТНОГО SSI-датчика в регистре MB RTU 0х10.
b7..b0 – считываются с самого датчика, b8 – устанавливает ЛИР. Правильно понимаю?
3.1. В окне demo для МОДУЛЯ SSI есть параметр КОНТРОЛЬ ФРОНТА СТАТУСА. Поясните, пожалуйста, параметр.
3.2. В файле описания универсального протокола в перечне настроек МОДУЛЯ SSI есть параметр «Проверка индикатора бита ошибки для датчиков СКБИС». Разъясните, пожалуйста, этот параметр. (возможно это тоже, что в предыдущем пп…)
3.3. В описании универсального протокола говориться, что подмодуль производит контроль формата сообщения с датчика:
• проверка уровня “1” между опросами,
• проверка уровня “0” таймаута,
• проверка уровня “0” по первому спаду для датчиков СКБИС со статус битами,
• проверка двойным чтением на достоверность полученной информации.
b8 в 0х10 устанавливается по результату этих проверок? (возможно OR с другими данными?) Пытаюсь понять, достаточно ли анализировать в программе только b8 для принятия решения о недостоверности данных, а остальные – диагностика по необходимости…

4. Датчик ЛИР-ММ158А
4.1. Передаёт ли данный датчик биты статуса? Если да, то сколько? Расшифровка? В документации на датчик информацию не вижу, расценивать как отсутствие бит?
4.2. В настройках модуля SSI-датчика есть параметр "начальный интервал, мкс». В спецификации указано t1>0.45 мкс. Это значение можно принять за рекомендуемое?

Спасибо.
Денис Кашин
СКБИС
СКБИС
Сообщения: 460
Зарегистрирован: 13 фев 2008, 14:38
Контактная информация:

Re: Взаимодействие с ЛИР919Д

Сообщение Денис Кашин »

Здравствуйте,

1. Интервал опроса устройства в новых версиях программы вынесен из вкладок и располагается над ними:
79F5157CD0AD42F39A1332FA2D0767B6.png
79F5157CD0AD42F39A1332FA2D0767B6.png (39.46 КБ) 9652 просмотра
С его помощью задается частота сеансов связи с устройством. Зависит от выбранного типа соединения и скорости соединения.

Параметр “Время цикла управления” является внутренней настройкой интерфейса. Влияет на интервал времени, с которым управляющие модули (позиционер и т.д.) будут производить контроль задания. Для модуля датчика это параметр влияет на время кеширования позиции, то есть внутри системного цикла, при первом запросе позиции происходит опрос датчика. На все следующие запросы до конца текущего системного цикла выдается закешированная позиция. Однако, позиция может быть принудительно обновлена командой (0х14), а так же при чтении соответствующих регистров Modbus.

Если нет запросов позиции, то интерфейс автоматически опрашивает датчик раз в 500 мс для определения состояния подключения и его индикации.


2. Примерно так.
2.1 мс
2.2 Зависит от типа датчика и скорости интерфейса, а так же “загруженности” устройства. В режиме работы как преобразователь интерфейсов и В/В 1 мс является наилучшим выбором. При использовании функций позиционирования (работа не в системе) с инкрементными и абсолютными (частота сигнала CLOCK 1МГц) датчиками 1 мс тоже подходит. В остальных случаях подбирается опытным путем.
2.3 Чем меньше этот параметр, тем отзывчивее устройство на внешние события (не относится к запросам по интерфейсам связи).

3. Да, именно так
3.1 КОНТРОЛЬ ФРОНТА СТАТУСА - для датчиков, имеющих бит Alarm, который после первого (отрицательного) фронта сигнала CLOCK SSI падает в "0", а после положительного фронта устанавливается в "1" (если нет ошибки). Этот перепад контролируется интерфейсом и помогает определить правильность настроек протокола датчика.
см. https://skbis.ru/products_pdf_2014/angle_absolute.pdf стр.9
3.2 Да, это одно и то же, см.3.1
3.3 Вполне достаточно.

4.1 Нет, ММ158 не передаёт биты статуса, только код
4.2 Этот параметр необходим для датчиков, у которых время интерполяции больше периода сигнала CLOCK. Он позволяет задать паузу для сигнала CLOCK после первого фронта для интерполяции датчиком позиции, а затем считать результат на максимально допустимой скорости для устройств/линии.
Для большинства датчиков СКБ ИС, включая ММ158, при опросе на скоростях до 2 МГц установка дополнительной задержки не требуется.
nea
Сообщения: 4
Зарегистрирован: 14 май 2020, 18:42

Re: Взаимодействие с ЛИР919Д

Сообщение nea »

Добрый день.
Спасибо за помощь.
Ответить