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