Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
doc:jroboplc:modules:peripherial:tvh_pulsarm [2023/02/22 07:19] alexi |
doc:jroboplc:modules:peripherial:tvh_pulsarm [2024/02/23 08:16] (текущий) vitaly [Теги] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== tvh.pulsarm ====== | ====== tvh.pulsarm ====== | ||
- | Счетчики воды многоструйные Пульсар М. | + | Счетчики воды многоструйные **Пульсар М**. |
+ | |||
+ | Производитель: ООО НПП «ТЕПЛОВОДОХРАН». | ||
Протокол "фирменный". | Протокол "фирменный". | ||
Строка 7: | Строка 9: | ||
===== yml-файл ===== | ===== yml-файл ===== | ||
<code yaml> | <code yaml> | ||
- | module.pm1: | + | plugin.peripherial: |
- | netaddr: 0x4104068 | + | |
- | portnum: 1 | + | module.pm1: |
- | type: tvh.pulsarm | + | netaddr: 0x4104068 |
+ | portnum: 1 | ||
+ | type: tvh.pulsarm | ||
</code> | </code> | ||
===== Параметры ===== | ===== Параметры ===== | ||
^ Параметр ^ По умолчанию ^ Описание ^ | ^ Параметр ^ По умолчанию ^ Описание ^ | ||
- | |**storqnt** | 1 |Количество питателей в дозаторе | | + | |**netaddr** | 1 |Адрес устройства задаётся производителем (4 байта) | |
- | |**version** | 2 |Версия протокола. Выбирается в соответствии с прошивкой дозатора.<code> | + | |
- | Версия 1: | + | |
- | - DzrGeliosRazgr (маслодозатор) | + | |
- | + | ||
- | Версия 2: | + | |
- | - Dzr | + | |
- | - DzrGelios10 | + | |
- | - DzrGelios3rzg | + | |
- | - DzrGelios6 | + | |
- | + | ||
- | </code> | | + | |
- | |**SumWeightMax** | 0xFFFF_FFFF |Максимальное возможное значение суммарного счетчика веса включительно<html> | + | |
- | <span style="color:red">Внимание! Для дозаторов версий SD00-12 макс.значение счетчика = 4000000000</span> | + | |
- | </html> | | + | |
===== Теги ===== | ===== Теги ===== | ||
^Тег ^Тип ^Описание ^ | ^Тег ^Тип ^Описание ^ | ||
- | |**Crc32** | LONG |См. [[#Crc32]] | | + | |**counter** | INT |текущее значение счётчика / 1000 | |
- | |**State** | INT | Состояние дозатора (битовая маска):<code> | + | |
- | 1 – стоп | + | |
- | 2 – готов к старту задачи | + | |
- | 4 – загрузка | + | |
- | 8 – выгрузка | + | |
- | 16 – авария | + | |
- | </code> | | + | |
- | |**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 |Состояние дозатора:<code> | + | |
- | 0 – стоп (или дозирование завершено) | + | |
- | 1 – ожидание загрузки | + | |
- | 2 – загрузка | + | |
- | 3 – ожидание выгрузки | + | |
- | 4 – ожидание старта задачи после установки | + | |
- | 5 – авария | + | |
- | 6 – приостановка выгрузки | + | |
- | 7 – выгрузка | + | |
- | </code> | | + | |
- | |StorQnt | INT |Заданное кол-во питателей | | + | |
- | |StorQntActual | INT |Фактическое кол-во питателей, поддерживаемое дозатором | | + | |
- | |ErrorCode | INT |Код ошибки | | + | |
- | |Cmd | INT |<code> | + | |
- | 0 – Старт цикла | + | |
- | 6 – Запуск загрузки после установки рецепта | + | |
- | Следующие команды поддерживаются не всеми дозаторами: | ||
- | 2 – старт загрузки | ||
- | 4 – старт разгрузки | ||
- | 8 – приостановка разгрузки | ||
- | 10 – стоп разгрузки | ||
- | </code> | | ||
- | |IOState | LONG |//для отладки// | | ||
- | |Stage | INT |//для отладки// | | ||
- | |StageTime | INT |//для отладки// | | ||
- | N - номер питателя от 1 до ''storqnt'' | ||
- | |||
- | В теги **Cmd*** для активации действия необходимо записать значение > 0, после чего сброс в 0 произойдет после выполнения действия. | ||
- | |||
- | Теги, выделенные жирным, являются стандартными, т.е. все многокомпонентные дозаторы обязаны иметь их. | ||
- | |||
- | |||
- | |||
- | ===== Crc32 ===== | ||
- | Расчет значения выполняется по алгоритму Crc32. Исходный для расчета буфер данных формируется из 8-байтного представления следующих тегов в приведенной последовательности: | ||
- | <code> | ||
- | SumWeight1 | ||
- | : | ||
- | SumWeightN | ||
- | SYSTEM.ErrorFlag | ||
- | </code> | ||