====== 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