====== promauto.gelios.dozkkmc ======
Mодуль управления многокомпонентным дозатором Гелиос (ПромАвтоматика).
Используемый протокол - AA55.
Описание протокола:
* [[doc:jroboplc:modules:peripherial:promauto_gelios_dozkkmc_protocol|АА55]]
* [[doc:jroboplc:modules:peripherial:promauto_gelios_dozkkmc_protocol_modbus|modbus ]]
===== yml-файл =====
module.gelios1:
netaddr: 1
portnum: 1
type: promauto.gelios.dozkkmc
storqnt: 10
version: 2
===== Параметры =====
^ Параметр ^ По умолчанию ^ Описание ^
|**storqnt** | 1 |Количество питателей в дозаторе |
|**version** | 2 |Версия протокола. Выбирается в соответствии с прошивкой дозатора.
=1 - АА55 Версия 1 для прошивок:
- DzrGeliosRazgr (маслодозатор)
=2 - АА55 Версия 2 для прошивок:
- Dzr
- DzrGelios10
- DzrGelios3rzg
- DzrGelios6
=3 - Modbus
|
|**SumWeightMax** | 0xFFFF_FFFF |Максимальное возможное значение суммарного счетчика веса включительно
Внимание! Для дозаторов версий SD00-12 макс.значение счетчика = 4000000000
|
^ Режим real-time эмуляции ^^^
|**emulateSpeedLoad** | 0 |Скорость загрузки - значение веса, на которое будет увеличиваться ''CurWeight'' при загрузке. Если = 0, то real-time эмуляция не используется |
|**emulateSpeedUnload** | emulateSpeedLoad * 3
|Скорость разгрузки - значение веса, на которое будет уменьшаться ''CurWeight'' при разгрузке |
|**emulateDelay** | 2000 |Задержка исполнения команд |
===== Теги =====
^Тег ^Тип ^Описание ^
|**Crc32** | LONG |См. [[#Crc32]] |
|**State** | INT | Состояние дозатора (битовая маска):
1 – стоп
2 – готов к старту задачи
4 – загрузка
8 – выгрузка
16 – авария
|
|**CurStorNum** | INT |номер текущего питателя (0 - дозирование не идет, от 1 до N - номер питателя) |
|**CurWeight** | LONG |Если CurStorNum = 0, то текущий общий вес. Если CurStorNum > 0, то набранный вес текущего компонента |
|**CurPercent** | INT |Процент выполнения загрузки текущим питателем, от 0 до 100 |
|**CurPercentTotal** | INT |Процент выполнения загрузки/разгрузки суммарно по всем питателям, от 0 до 100 |
|**SumWeightMax** | LONG |Значение одноименного параметра (максимальное возможное значение суммарного счетчика веса включительно) |
|**SumWeightN** | LONG |Счетчик веса несбрасываемый циклический питателя N |
|**ReqWeightN** | LONG |Установленный вес задачи питателя N (то, что установлено на данный момент, а не сколько уже отвесили) |
|**SetWeightN** | LONG |Задание веса задачи питателя N |
|**SendTask** | INT |Для установка задачи необходимо предварительно задать вес задачи в SetWeight по каждому питателю, после чего прописать в данный тег любое положительное значение, отличное от нуля. После успешного выполнения в теге можно будет прочитать записанное значение. Если установка не выполнена, то в теге появится записанное значение со знаком минус. При записи 0 тег просто обнуляется, установка задачи не происходит. |
|**CmdStartCycle** | INT |Если в состоянии стопа или аварии, послать старт цикла (Cmd=0) |
|**CmdStartTask** | INT |Если в состоянии ожидания старта задачи, послать старт задачи (Cmd=6) |
|**CmdStartLoad** | INT |Если в состоянии готовности к загрузке, послать старт загрузки (Cmd=2) |
|**CmdStopLoad** | INT |Если в состоянии загрузки, послать стоп загрузки (Cmd=10) |
|**CmdStartUnload** | INT |Если в состоянии готовности к разгрузке, послать старт разгрузки (Cmd=4) |
|**CmdSuspUnload** | INT |Если в состоянии разгрузки, послать старт приостанов (Cmd=8) |
|Status | INT |Состояние дозатора:
0 – стоп (или дозирование завершено)
1 – ожидание загрузки
2 – загрузка
3 – ожидание выгрузки
4 – ожидание старта задачи после установки
5 – авария
6 – приостановка выгрузки
7 – выгрузка
|
|StorQnt | INT |Заданное кол-во питателей |
|StorQntActual | INT |Фактическое кол-во питателей, поддерживаемое дозатором |
|ErrorCode | INT |Код ошибки |
|Cmd | INT |
0 – Старт цикла
6 – Запуск загрузки после установки рецепта
Следующие команды поддерживаются не всеми дозаторами:
2 – старт загрузки
4 – старт разгрузки
8 – приостановка разгрузки
10 – стоп разгрузки
|
|Replacement | BOOL |Флаг физической замены устройства. Нужен только для того, чтобы сказать модулю учета, типа [[doc:jroboplc:modules:raduga]], что устройство подменили и суммарные счетчики стали другими |
N - номер питателя от 1 до ''storqnt''
В теги **Cmd*** для активации действия необходимо записать значение > 0, после чего сброс в 0 произойдет после выполнения действия.
Теги, выделенные жирным, являются стандартными, т.е. все многокомпонентные дозаторы обязаны иметь их.
===== Crc32 =====
Расчет значения выполняется по алгоритму Crc32. Исходный для расчета буфер данных формируется из 8-байтного представления следующих тегов в приведенной последовательности:
SumWeight1
:
SumWeightN
SYSTEM.ErrorFlag