Автор Тема: plugin к recorder  (Прочитано 10766 раз)

Оффлайн trudonoshin

  • Новичок
  • *
  • Сообщений: 16
Re: plugin к recorder
« Ответ #25 : 17.10.2016, 16:06:38 »
Delphi7
Plugin взят с вашего сайта ( ГлавнаяПродукция и услугиRecorder → Загрузка ПО и документации) Recorder. Примеры плагинов с исходным кодом

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #26 : 17.10.2016, 17:24:52 »
У меня чуть более свежая версия файла

Оффлайн trudonoshin

  • Новичок
  • *
  • Сообщений: 16
Re: plugin к recorder
« Ответ #27 : 18.10.2016, 09:28:39 »
Все заработало, спасибо.

Оффлайн Ярослав2

  • Новичок
  • *
  • Сообщений: 36
Re: plugin к recorder
« Ответ #28 : 23.10.2016, 17:40:06 »
Подскажите как сохранить созданные виртуальные переменные. При перезапуске программы recorder они исчезают.

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #29 : 24.10.2016, 12:26:00 »
ITag::CfgWritable()

Оффлайн Ярослав2

  • Новичок
  • *
  • Сообщений: 36
Re: plugin к recorder
« Ответ #30 : 24.10.2016, 17:09:10 »
Переменная сохранилась, но данные которые поступают из нее (заполнял через плагин расчетные параметры) не поступают в мой плагин хотя отображаются в рекордере. И еще адрес переменной virtual , а для переменных сделанных через расчетный плагин v:VTags, так и должно быть?

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #31 : 24.10.2016, 17:17:30 »
С адресом, скорее всего всё так и должно быть. За него отвечает источник данных, и для аппаратных каналов он уникален, а плагины вольны делать его любым для своих каналов. По умолчанию "virtual".

То, что данные не поступают в ваш плагин.  Так не должно быть.
Как вы их пытаетесь получать?
Как подключаетесь к нужному каналу после загрузки конфигурации?

Оффлайн Ярослав2

  • Новичок
  • *
  • Сообщений: 36
Re: plugin к recorder
« Ответ #32 : 24.10.2016, 18:37:50 »
Использую программу на базе вашего примера test_viw. Остальные каналы показывает нормально по созданному как будто данные просто не поступают.

Оффлайн Ярослав2

  • Новичок
  • *
  • Сообщений: 36
Re: plugin к recorder
« Ответ #33 : 24.10.2016, 18:53:53 »
Подскажите с какой максимальной частотой можно писать из плагина, в виртуальную переменную, что бы пе происходило переполнение приемного буфера?

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #34 : 25.10.2016, 10:23:52 »
Подскажите с какой максимальной частотой можно писать из плагина, в виртуальную переменную, что бы пе происходило переполнение приемного буфера?

Для начал дам некоторые разъяснения о том какие каналы бывают и соответственно методы отправки в них данных.
Каналы (теги) бывают векторными и скалярными (кроме этого входными, выходными, иррегулярными, трубками.. но это пока не важно)
У векторного канала есть заданная частота дискретизации, которую задает источник данных. Так же определяется размер блока данных в отсчетах. В итоге, данные хранятся в циклических буферах разбитых на фиксированного размера блоки. Самый оптимальный способ отправки данных в такой канал метод PushPata(Ex), где на источник данных (разработчика в случае плагина) ложится ответственность за правильны размер блока, тип данных и своевременную их отправку. Второй способ это метод PushValue в данном случае рекордер сам производит буферизацию и преобразование данных, что серьезно увеличивает накладные расходы. Формального ограничения по частоте дискретизации для данных каналов нет. Они ничем не отличаются от аппаратных. До сотен килогерц.

Скалярный канал, это канал который единовременно хранит только одно значение и штамп времени когда это значение было передано. Частота дискретизации данных устанавливается равной 0.
Правильный способ отправки данных это PushValue.

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

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #35 : 25.10.2016, 10:39:12 »
Использую программу на базе вашего примера test_viw. Остальные каналы показывает нормально по созданному как будто данные просто не поступают.

Тут проще всего посмотреть под отладкой в методе GetDataThroughVector формы, что именно там не так.
Или, так как данные всё равно получаются по таймеру, и берутся как скалярные оценки использовать метод тега
ITag::GetScalarEstimate[Ex] или ITag::GetEstimate чтобы не заморачиваться с индексами и буферами.
IBlockAccess нужен для непрерывного получения полного потока данных, в примере же берется просто одно последнее значение. Т.к. это просто пример. Код будет проще и ближе к сути процесса.

Оффлайн Ярослав2

  • Новичок
  • *
  • Сообщений: 36
Re: plugin к recorder
« Ответ #36 : 25.10.2016, 19:09:40 »
Для векторных каналов рекордер производит контроль целостности и непрерывности потока. Т.е. время следующего блока должно совпадать с концом предыдущего, и периодичность поступления данных должна быть достаточно равномерной.
Для скалярных каналов никакого контроля не производится.
То есть, для скалярного канала,  возможна  ситуация когда некоторые данные передаваемые с интервалом 10 мС будут зарегистрированы в одинаковый момент времени, а при интервале 20 мС данные будут регистрироваться равномерно в разные моменты времени?

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #37 : 25.10.2016, 19:21:17 »
Скалярный канал это по сути именованная пара (time, value). Время присваивается то которое дает источник, либо при его отсутствии текущее время Recorder. В таком же формате данные и регистрируются. В момент прихода.
Поэтому для скалярных каналов об интервале говорить можно только применительно конкретных ситуаций. Бывает скалярные каналы в которые данные поступают регулярно, они по сути векторные но маскируются под скалярные.
А бывают скалярные, такие в которые данные попадают несколько раз за эксперимент.
Поэтому рекордер и не контролирует их своевременный приход.

Оффлайн Ярослав2

  • Новичок
  • *
  • Сообщений: 36
Re: plugin к recorder
« Ответ #38 : 25.10.2016, 19:40:15 »
При ситуации когда в рекорер надо выдавать данные поступающие с последовательного интерфейса (RS-422) с не постоянным интервалом от 5 до 15 мС, при скалярной выгрузке, какой интервал будет минимально допустимым, чтобы информация регистрировалась не в одинаковый интервал времени?

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #39 : 26.10.2016, 10:32:10 »
При ситуации когда в рекорер надо выдавать данные поступающие с последовательного интерфейса (RS-422) с не постоянным интервалом от 5 до 15 мС, при скалярной выгрузке, какой интервал будет минимально допустимым, чтобы информация регистрировалась не в одинаковый интервал времени?

Вы можете сами передавать в Рекордер время ITag::PushValue(значение, >время<) и будет регистрироваться именно с этим временем. У Вас будет полный контроль за процессом.

Оффлайн trudonoshin

  • Новичок
  • *
  • Сообщений: 16
Re: plugin к recorder
« Ответ #40 : 30.11.2016, 12:31:37 »
После перехода на версию 3.3 перестали работать plugin-ы и тот, который в примерах и сделанный на его основе. Подскажите, пожалуйста, в чем дело?

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #41 : 30.11.2016, 18:18:22 »
При переходе с какой версии?

Оффлайн trudonoshin

  • Новичок
  • *
  • Сообщений: 16
Re: plugin к recorder
« Ответ #42 : 01.12.2016, 11:34:46 »
Точно не знаю, ставили бериевцы, но предположительно 3.2

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #43 : 01.12.2016, 18:23:39 »
Что именно не работает?
Версии 3.2 и 3.3 не должны сильно различаться в части взаимодействия с плагинами. В моей 3.3 все плагины из примеров работают


Оффлайн trudonoshin

  • Новичок
  • *
  • Сообщений: 16
Re: plugin к recorder
« Ответ #44 : 02.12.2016, 18:59:20 »
повисает во время изменения конфигурации

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #45 : 05.12.2016, 11:40:58 »
Проверил на плагинах из примеров. Всё работает.
Попробуйте dll которые в примерах.
Могу обновить технологическую версию рекордера на сайте, чтобы у нас всё совпадало. Может действительно есть какая-то разница.
UPD: Действительно с некоторого момента в ветке 3.3 появился контроль исключений. Посмотрите в журнале событий нет ли информации о предотвращенных падениях.

Оффлайн trudonoshin

  • Новичок
  • *
  • Сообщений: 16
Re: plugin к recorder
« Ответ #46 : 07.12.2016, 17:33:15 »
Все исправилось переустановкой на версию 3.3.0.38.
Спасибо.

Оффлайн Ярослав2

  • Новичок
  • *
  • Сообщений: 36
Re: plugin к recorder
« Ответ #47 : 13.12.2016, 16:45:38 »
Подскажите, пожалуйста, возможно ли управление из плагина включением / отключением регистрации по отдельному каналу, при сохранении регистрации по остальным каналам? Если возможно то как.

Оффлайн BacCM

  • moderator
  • *****
  • Сообщений: 69
Re: plugin к recorder
« Ответ #48 : 13.12.2016, 16:52:00 »
Да возможно, для этого надо вынести требуемые каналы в группу. Для неё есть возможность выбрать отдельный каталог для регистрации и произвольное время регистрации

Оффлайн Ярослав2

  • Новичок
  • *
  • Сообщений: 36
Re: plugin к recorder
« Ответ #49 : 15.12.2016, 19:25:07 »
Подскажите, какой максимальный размер файла регистрации для программы рекордер?
Будет ли 64 битная версия программы рекордер?

Возможно ли воспроизведение записанных ранее рекордером данных, если да то каким образом?