Это старая версия документа.
peripherial
Модули ввода вывода, работающие через последовательный порт.
promauto.conf.yml
module.plci1: netaddr: 1 portnum: 1 enable: on emulate: off retrial: 3 type: promauto.pdio descr: my descr
Общие настройки
portnum | 0 | номер последовательного порта, который должен быть заранее определен (см. serial) |
retrial | 1 | кол-во повторных запросов при ошибке связи |
emulate | off | on/off - эмуляция работы |
netaddr | 0 | сетевой адрес |
descr | описание (произвольный текст) | |
systag | SYSTEM. | префикс для системных тегов |
type | тип устройства | |
logerror | 0 | количество лог записей, производимых при ошибках связи. Данный параметр также можно менять одноименной командой модуля |
proxy | имя модуля-посредника, предоставляющего значения тегов | |
delay_ms | 0 | задержка перед отправкой запроса, мс |
chmap | off | разрешение создания тегов CHANNELMAP |
chmap.name | f | короткое имя модуля, используемое в CHANNELMAP . Если не указано, то используется имя модуля |
chmap.value | f | предопределенный вручную список тегов в CHANNELMAP |
Адресация каналов CHANNELMAP
Каждый периферийный модуль содержит в себе множество тегов. В некоторых ситуациях пользователю необходимо вводить имя тега вручную, например, чтобы прописать адрес в канал в roboplant. Чтобы облегчить пользователю процесс установки канала и исключить необходимость помнить имена тегов полностью, нужно предоставить пользователю возможность выбора тега из списка, содержащего только предназначенные для каналов теги. Данную задачу решает CHANNELMAP
.
CHANNELMAP
- это карта наиболее подходящих для установки в каналы тегов, сопоставляющая полные имена тегов с их короткими вариантами (адресами), и используемая в программах визуализации (hmi-клиентах). Другими словами, CHANNELMAP
только подсказывает hmi-клиенту, какие теги модуля могут быть адресами каналов, а также способ их записи, удобный для пользователя. В тоже время CHANNELMAP
не ограничивает hmi-клиент в выборе любого тега в качестве адреса канала, если это ему необходимо.
При включенном параметре chmap
некоторые периферийные модули автоматически создают карту часто используемых тегов в виде строкового значения в одном или нескольких тегах SYSTEM.CHANNELMAP.N
(где N значение от 0), например:
run>l owen1 owen1:SYSTEM.CHANNELMAP.0 STRING = owen1:1 inp00:0 cnt00:cnt0 inp01:1 cnt01:cnt1 inp02:2 cnt02:cnt2 inp03:3 cnt03:cnt3 inp04:4 cnt04:cnt4 inp05:5 cnt05:cnt5 inp06:6 cnt06:cnt6 inp07:7 cnt07:cnt7 inp08:8 cnt08:cnt8 inp09:9 cnt09:cnt9 inp10:10 cnt10 inp11:11 cnt11 inp12:12 cnt12 inp13:13 cnt13 inp14:14 cnt14 inp15:15 cnt15
Если значение строки слишком большое, то тегов SYSTEM.CHANNELMAP
будет создано несколько.
Формат значения CHANNELMAP
Значение состоит из списка пар ключ-значение, разделенных между собой любым количеством пробелов, а между ключом и значением - двоеточием. Если ключ и значение равны, то двоеточие и значение не указываются.
Первая пара в списке преобразует оригинальное имя модуля в адрес модуля (короткое имя модуля). Задать короткое имя модуля можно в параметре chmap.name
.
Последующие пары преобразуют оригинальное имя тега в адрес тега (короткое имя тега).
Использование CHANNELMAP в HMI
Задача HMI найти все имеющиеся теги, содержащие в имени подстроку CHANNELMAP
, и построить единую карту тегов, которая будет использоваться элементами управления пользовательского интерфейса. Например, из вышеприведенного примера получится следующее:
Полное имя тега | Адрес модуля | Адрес тега |
---|---|---|
owen1.inp00 | 1 | 0 |
owen1.inp01 | 1 | 1 |
: | : | : |
owen1.inp15 | 1 | 15 |
owen1.cnt00 | 1 | cnt0 |
owen1.cnt01 | 1 | cnt1 |
: | : | : |
owen1.cnt00 | 1 | cnt15 |
Примечание: В таблице для примера использована точка для разделения имени модуля и тега. Разделитель может быть любым.
Далее, развивая пример, hmi-клиент дает пользователю возможность выбрать/прописать адрес (короткое имя) модуля из одного выпадающего списка, а затем выбрать/прописать адрес (короткое имя) тега из другого выпадающего списка, в котором будут содержаться только принадлежащие модулю теги.
Задание CHANNELMAP в ручную
Значение тегов CHANNELMAP
можно зададать вручную при помощи параметра chmap.value
, например:
chmap.enable: on chmap.name: 1 chmap.value: inp00:A inp01:B
Карта тегов в hmi-клиенте:
Полное имя тега | Адрес модуля | Адрес тега |
---|---|---|
owen1.inp00 | 1 | A |
owen1.inp01 | 1 | B |
Общие теги
SYSTEM.ErrorCount | Количество ошибок связи |
SYSTEM.ErrorFlag | Флаг ошибки связи |
SYSTEM.NetAddr | Сетевой адрес |
SYSTEM.Port | Номер последовательного порта |
SYSTEM.TimePeriod | Время, затраченной на опрос в одном цикле |
SYSTEM.UpdateDate | Дата последнего запроса |
SYSTEM.UpdateTime | Время последнего запроса |