====== Протокола обмена данными многокомпонентных дозаторов Гелиос ======
Протокол является АА55-совместимым.
Необходимо добавить в прошивку:
* Возможность послать удаленно команду СТОП
* Возможность послать удаленно команду ОТКРЫТЬ НИЖНЮЮ ЗАДВИЖКУ
* Доступ ко всем параметрам (чтение и запись)
===== Версия 2 =====
Поддерживается дозаторами:
* Dzr
* DzrGelios10
* DzrGelios3rzg
* DzrGelios6
1. Запрос текущего состояния
-> 55 <0x20+адр>
<- <адр>
#2 - если = 0, то работа без состояния 4 (ожидание запуска после установки рецепта)
#1 - номер текущего компонента (0 - дозирование не идет, от 1 до N - номер питателя)
#1 - общее кол-во компонентов минус отвешенное кол-во компонентов (не актуальный параметр)
#4 - если CurStorNum = 0, то текущий общий вес
если CurStorNum > 0, то набранный вес текущего компонента
#1 - отладочный параметр
#2 - отладочный параметр
#4 - отладочный параметр
#1 - см. ниже
#1 - описание кодов смотреть в сопроводительной документации весового блока
21 bytes
Status =
0 – стоп (или дозирование завершено)
1 – ожидание загрузки
2 – загрузка
3 – ожидание выгрузки
4 – ожидание разрешения дозирования от ккорм (установка рецепта)
5 – авария
6 – приостановка выгрузки
7 – выгрузка
--------------------------------------------------------------------
2. Запрос значений суммарных счетчиков
-> 55 <0x40+адр>
<- <адр>
- количество счётчиков в ответе, равное CntCount, либо реальное
кол-во питателей, если их кол-во меньше чем CntCount
#1 #4 …
#1 #4
Значение каждого счетчика изменяется только завершению дозирования соответствующим шнеком.
--------------------------------------------------------------------
3. Запрос текущего рецепта (то, что установлено на данный момент, а не сколько уже отвесили)
-> 55 <0x60+адр>
<- <адр>
- реальное количество питателей устройства
#1 #4 …
#1 #4
5 + 5*N bytes
--------------------------------------------------------------------
4. Установка новой задачи
-> 55 <0xA0+адр> 00 03
#1 #4 …
#1 #4
8 + 5*N bytes
если принята:
<- <адр> 0x00
Если задача не принята, то:
<- <адр> 0xFF
--------------------------------------------------------------------
5. Команды на исполнение
-> 55 <0xC0+адр>
#1
#1
Cmd =
0 – Старт цикла
6 – Запуск загрузки после установки рецепта
2 – старт загрузки
4 – старт разгрузки
8 – приостановка разгрузки
если принята:
<- <адр> 0x00
Если команда не принята, то:
<- <адр> 0xFF
--------------------------------------------------------------------
StorNum – номер питателя (хранилища / бункера / места размещения ингредиента)
CurStorNum – номер текущего используемого питателя
RestStorNum – кол-во оставшихся питателей для завершения полного дозирования
CurStorWes – текущий вес набираемый CurStorNum питателем
StageNum – номер стадии
StageTime – время стадии
IOState – состояние входов / выходов дозатора
N – количество пар
Wes – циклический счетчик общиго веса, прошедшего через питатель
Size – кол-во байт в посылке, начиная со следующего и заканчивая мл.байтом контрольной суммы.
CntCount – количество счётчиков
В расчете CRC16 участвуют все байты посылки кроме ключа 55.
Для 2-х и 4-х байтовых значений: старший байт - первый, младший – последний.
Значения веса – целые числа. Единицы измерения – граммы.
===== Версия 1 =====
Поддерживается дозаторами:
* DzrGeliosRazgr (маслодозатор)
1. Запрос текущего состояния
-> 55 <0x20+адр>
<- <адр>
#2 - если = 0, то работа без состояния 4 (ожидание запуска после установки рецепта)
#4 - набранный вес
#1 - отладочный параметр
#2 - отладочный параметр
#2 - отладочный параметр
#1 - см. ниже
#1 - описание кодов смотреть в сопроводительной документации весового блока
17 bytes
Status =
0 – стоп (или дозирование завершено)
1 – ожидание загрузки
2 – загрузка
3 – ожидание выгрузки
4 – ожидание разрешения дозирования от ккорм (установка рецепта)
5 – авария
7 – выгрузка
--------------------------------------------------------------------
2. Команды на исполнение
-> 55 <0xC0+адр>
#1
#1
Cmd =
0 – Старт цикла
6 – Запуск загрузки после установки рецепта
если принята:
<- <адр> 0x00
Если команда не принята, то:
<- <адр> 0xFF
**Остальные команды аналогичны версии 2.**