Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
dev:hardware:omron:protocol [2019/11/29 11:39]
vitaly
dev:hardware:omron:protocol [2019/12/02 07:07] (текущий)
vitaly
Строка 62: Строка 62:
  
 Чтение по отдельным регистрам Чтение по отдельным регистрам
- 
-[14:​58:​44,​223] ​ <​--:​80000300000000090006 
-0104B00CE400B00CE400 
- 
-[14:​58:​44,​230] ​ -->:​C0000200090000000006 
-01040000B00028B00028 
- 
- 
  
 <​code>​01 04 KK AA AA AA [ KK AA AA AA ]</​code>​ <​code>​01 04 KK AA AA AA [ KK AA AA AA ]</​code>​
Строка 103: Строка 95:
 Мы запрашивали два слова из области B0.  Ответ ​ B0 00 28   B0 00 00 - означает что это CIO с значением 0028h и CIO с значением 0000h. Мы запрашивали два слова из области B0.  Ответ ​ B0 00 28   B0 00 00 - означает что это CIO с значением 0028h и CIO с значением 0000h.
  
 +
 +
 +Добавление,​ как работать и битами.
 +В протоколе 1бит данных записывается как 1 байт, т.е. если надо считать 5 бит, то в ответе на команду будет 5 байт (см. последний столбец в таблице откуда берем коды областей). Причем каждый из этих байт будет иметь значение 00h или 01h.
 +Например: ​  мы хотим запросить 20h битов начиная с адреса 0CEE 
 +Команда будет такая 01 01 30 0C EE 00 00 20
 +01 01 - это команда чтения регистров ​ (для команды 01 04 логика аналогична)
 +30 - код области памяти CIO только при побитовом чтении.
 +0C EE 00 - адрес регистра. причем последний 00 это номер бита в регистре.
 +00 20 - это сколько бит читать (32 штуки).
 +
 +Ответ:
 +01 01 00 00 00 00 01 00 01 01 00 00 00 01 00 00 01 00 00 00 00 00 00 01 01 01 01 00 00 01 01 00 01 00 01 00
 +
 +В начале идет
 +01 01 - команда
 +00 00 - код ответа все хорошо
 +Данные 32 байта: 00 00 01 00 01 01 00 00 00 01 00 00 01 00 00 00 00 00 00 01 01 01 01 00 00 01 01 00 01 00 01 00
 +
 +Каков порядок следования битов в ответе ? Вот такой:
 +0CEE:0 бит, 0CEE:1 бит, ...., 0CEE:15 бит, 0CEF:0 бит, 0CEF:1 бит, ..., 0CEF:15 бит
  
  
Строка 122: Строка 135:
 <​code>​C0 00 02 00 09 00 00 00 00 ZZ   01 02 00 00</​code>​ <​code>​C0 00 02 00 09 00 00 00 00 ZZ   01 02 00 00</​code>​
 структура ответа полностью аналогична чтению структура ответа полностью аналогична чтению
 +
 +
 +Примечание:​ Пример побитового режима записи.
 +Запишем в область CIO3200 бит 0. Код области CIO для побитового режима 30h. В hex адрес будет выглядеть как 0C 80. Далее ставим смещение бита в слове (00 - нулевой бит). Записывать будем 1 элемент (бит), значит ставим 00 01h. Потом область данных длинной количество элементов умножить на байт (размер байт берется из таблицы раздела 5-3-3). У нас 1 элемент значит 1 байт. Значение байта может быть или 00h или 01h. В первом примере отсылается 0, во втором 1. Ответ код команды,​ и код успешного выполнения 00 00h.
 +
 +[10:​53:​58,​781] ​ <​--:​80000300000000090003 01 02 30 0C 80 00 00 01 00
 +[10:​53:​58,​793] ​ -->:​C0000200090000000003 01 02 00 00
 +
 +[10:​54:​07,​363] ​ <​--:​80000300000000090004 01 02 30 0C 80 00 00 01 01
 +[10:​54:​07,​375] ​ -->:​C0000200090000000004 01 02 00 00
 +
 +Если надо установить 10ый бит, то смещение 0A.
 +[11:​04:​17,​195] ​ <​--:​8000030000000009000D 01 02 30 0C 80 0A 00 01 01
 +[11:​04:​17,​203] ​ -->:​C000020009000000000D 01 02 00 00
 +В примере,​ если до выполнения было 0000h, то после выполнения станет 0400h (взведение 10ого бита).
  
  
dev/hardware/omron/protocol.1575016744.txt.gz · Последние изменения: 2019/11/29 11:39 — vitaly
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0