Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
doc:jroboplc:modules:peripherial:tenzom_tb09 [2021/06/05 13:17] denis [tenzom] |
— (текущий) | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== tenzom ====== | ||
| - | Mодуль опроса весов Тензо-М. | ||
| - | |||
| - | Используемый протокол - Тензо-М. | ||
| - | |||
| - | Описания протоколов [[https://wiki.tenso-m.ru/doku.php?id=start:%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B:%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB%D1%8B_%D0%BE%D0%B1%D0%BC%D0%B5%D0%BD%D0%B0|здесь]]. | ||
| - | |||
| - | <code yaml> | ||
| - | module.tenzom: | ||
| - | netaddr: 1 | ||
| - | portnum: 1 | ||
| - | type: promauto.tenzom | ||
| - | size: 5 | ||
| - | posSumWeight: 1 | ||
| - | posSumNum: 2 | ||
| - | posLastWeight: 3 | ||
| - | posOutput: 4 | ||
| - | posLastTime: 5 | ||
| - | </code> | ||
| - | |||
| - | ===== Параметры ===== | ||
| - | ^ Параметр ^ По умолчанию ^ Описание ^ | ||
| - | |**storqnt** | 1 |Количество питателей в дозаторе | | ||
| - | |**version** | 2 |Версия протокола. Выбирается в соответствии с прошивкой дозатора.<code> | ||
| - | Версия 1: | ||
| - | - DzrGeliosRazgr (маслодозатор) | ||
| - | |||
| - | Версия 2: | ||
| - | - Dzr | ||
| - | - DzrGelios10 | ||
| - | - DzrGelios3rzg | ||
| - | - DzrGelios6 | ||
| - | |||
| - | </code> | | ||
| - | |**SumWeightMax** | 0xFFFF_FFFF |Максимальное возможное значение суммарного счетчика веса включительно | | ||
| - | |||
| - | ===== Теги ===== | ||
| - | |||
| - | ^Тег ^Тип ^Описание ^ | ||
| - | |**Crc32** | LONG |См. [[#Crc32]] | | ||
| - | |**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) | | ||
| - | |**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 – приостановка разгрузки | ||
| - | </code> | | ||
| - | |IOState | LONG |//для отладки// | | ||
| - | |Stage | INT |//для отладки// | | ||
| - | |StageTime | INT |//для отладки// | | ||
| - | |||
| - | N - номер питателя от 1 до ''storqnt'' | ||
| - | |||
| - | В теги **Cmd*** для активации действия необходимо записать значение > 0, после чего сброс в 0 произойдет после выполнения действия. | ||
| - | |||
| - | Теги, выделенные жирным, являются стандартными, т.е. все многокомпонентные дозаторы обязаны иметь их. | ||
| - | |||
| - | |||
| - | |||
| - | ===== Crc32 ===== | ||
| - | Расчет значения выполняется по алгоритму Crc32. Исходный для расчета буфер данных формируется из 8-байтного представления следующих тегов в приведенной последовательности: | ||
| - | <code> | ||
| - | SumWeight1 | ||
| - | : | ||
| - | SumWeightN | ||
| - | SYSTEM.ErrorFlag | ||
| - | </code> | ||