ДКС-96А, регистры для извлечение архивов из памяти

Все что касается работы предприятия, сотрудничества и т.п.

ДКС-96А, регистры для извлечение архивов из памяти

Сообщение Роман » 14.08.2013, 15:10:01

Здравствуйте! Имеется ДКС-96А с пультом УИК-05, имеется документация с описанием протокола DiBus и регистров. Взаимодействие с прибором худо-бедно налажено, но в документации нет описания регистров для извлечения архивов из памяти устройства. Вы можете подсказать - через какие регистры Ваша программа Tetra_Reporter извлекает данные из устройства?
Версия ПО: 0.8.41.20111222
Роман
 
Сообщения: 7
Зарегистрирован: 05.08.2013, 14:12:35

Re: ДКС-96А, регистры для извлечение архивов из памяти

Сообщение Volkodavchik » 20.08.2013, 13:26:59

Здравствуйте Роман!

Прошу прощения за задержку с ответом.
Прежде всего спасибо за интересный вопрос. Ниже приведу цитату из описания протокола:
"Для считывания записей хранящихся в архиве устройства, выполняются следующие действия:
1. Мастер записывает номер таблицы, данные для которой необходимо считать, в регистр 0xfc (тип данных в этом случае BYTE(1)). Если устройство
ответит пакетом с ошибкой кода 4 при первой записи, то номер таблицы считать 1 и считать что она всего одна. Если устройство ответит пакетом с
ошибкой кода 4 при второй или последующей записи, то считать, что таблицы с таким номером нету и прекратить опрос. Если устройство ответит
пакетом с кодом подтверждения, то начинать считывание данных для этой таблицы;
2. Мастер записывает номер записи, которую необходимо считать в регистр 0xfe;
3. Мастер считывает значения регистра 0xf8, пока значение не равно 0;
4. Мастер считывает указанную запись из регистра 0xfe;
5. Номер запрашиваемой записи инкрементируется устройством.
Для считывания следующей по номеру записи можно перейти к шагу 3, минуя шаг 2.
После включения прибора номер запрашиваемой записи равен 0.
Для очистки архива устройства необходимо записать значение 0 в регистр 0xfd."

Успехов! :)
Volkodavchik
 
Сообщения: 11
Зарегистрирован: 04.10.2007, 08:52:25

Re: ДКС-96А, регистры для извлечение архивов из памяти

Сообщение Роман » 23.08.2013, 11:40:25

Спасибо Вам большое за подробный ответ!
Роман
 
Сообщения: 7
Зарегистрирован: 05.08.2013, 14:12:35

Re: ДКС-96А, регистры для извлечение архивов из памяти

Сообщение Роман » 25.08.2013, 20:20:06

Подскажите пожалуйста, где можно взять упомянутое вами полное описание протоколов ДКС-96, в котором имеется информация по регистрам архивов? В моем ничего про них не сказано.
Заголовок имеющегося у меня руководства:
"Описание регистров обмена данными по протоколу DiBus для ДКС-96 (пульты УИК -05/-06/-07)
Автор Девяткин Иван Викторович
Соответствует ПО начиная с версии 00.07.085.20090806,
Дата последней модификации 09.10.2009 14:38"
Название файла:
"registers_DKS-96_v0.7.pdf"
Роман
 
Сообщения: 7
Зарегистрирован: 05.08.2013, 14:12:35

Re: ДКС-96А, регистры для извлечение архивов из памяти

Сообщение Volkodavchik » 30.08.2013, 07:21:02

Подробное описание протокола обмена данными можно получить через запрос на наш корпоративный электронный адрес - info@tetra.ua.

По сути, вышеописанных данных достаточно для получения архива из устройства. Если у Вас все же не получается по каким-либо причинам реализовать считывание архива, можете задавать конкретные вопросы на форуме ну и конечно сделать запрос протокола на почту.

Удачи!
Volkodavchik
 
Сообщения: 11
Зарегистрирован: 04.10.2007, 08:52:25

Re: ДКС-96А, регистры для извлечение архивов из памяти

Сообщение Роман » 10.09.2013, 23:32:50

Здравствуйте! Вы писали:
1. Мастер записывает номер таблицы, данные для которой необходимо считать, в регистр 0xfc (тип данных в этом случае BYTE(1)). Если устройство
ответит пакетом с ошибкой кода 4 при первой записи, то номер таблицы считать 1 и считать что она всего одна. Если устройство ответит пакетом с
ошибкой кода 4 при второй или последующей записи, то считать, что таблицы с таким номером нету и прекратить опрос. Если устройство ответит
пакетом с кодом подтверждения, то начинать считывание данных для этой таблицы;
2. Мастер записывает номер записи, которую необходимо считать в регистр 0xfe;
3. Мастер считывает значения регистра 0xf8, пока значение не равно 0;
4. Мастер считывает указанную запись из регистра 0xfe;
5. Номер запрашиваемой записи инкрементируется устройством.
Для считывания следующей по номеру записи можно перейти к шагу 3, минуя шаг 2.


При записи в устройство любого номера таблицы устройство отвечает ошибкой с номером 4, код подтверждения не приходит ни в одном случае. Но при этом, послав номер записи = 0, считав значение регистра f8 (которое всегда равно 0) и считав данные из регистра fe, я получаю запись 001, послав номер записи = 1, я получаю запись 002. Послав любой другой номер записи, я получу все равно 002-ю. Автоматического инкрементирования не происходит, никаких других записей, кроме этих двух, я считать не могу. А TetraReporter считывает 110 записей. Что я делаю не так?
Роман
 
Сообщения: 7
Зарегистрирован: 05.08.2013, 14:12:35

Re: ДКС-96А, регистры для извлечение архивов из памяти

Сообщение Роман » 21.09.2013, 23:03:29

Простите за назойливость, но никто не может мне помочь по существу вопроса, заданного в предыдущем посте? Я действительно не могу понять, почему выполнение описанных в протоколе действий не приводит к чтению всех записей из устройства
Роман
 
Сообщения: 7
Зарегистрирован: 05.08.2013, 14:12:35

Re: ДКС-96А, регистры для извлечение архивов из памяти

Сообщение Moriarti34 » 27.09.2013, 10:20:54

Здравствуйте Роман!
Просим прощения что так долго тянули с ответом. Всему виной была смена разработчика проекта ДКС-96.

Итак, что касается Вашего вопроса.
Во время имитации Вашей ситуации использовалась указанная Вами версия ПО и программа DWPTest (скачать с сайта НПП «Доза» http://www.doza.ru/files/dibus.zip). Все записи из архива получилось считать. Возможно Вами был задан некорректный блок данных во время создания посылки на указание номера записи. Ниже приведу пример для считывания третьей записи.

Посылаем номер записи:
заголовок: FFFFFF 010101 08 05 0300
блок данных: FE 0400
Считываем запись:
заголовок: FFFFFF 010101 06 29 0100
блок данных: FE

Более детально о посылках можно прочитать в описании протокола DiBUS (находится в том же архиве что и программа DWPTest, ссылка выше).

Спасибо за вопрос! И спасибо за назойливость. :)
Moriarti34
 
Сообщения: 2
Зарегистрирован: 12.09.2013, 14:58:51
Откуда: Украина

Re: ДКС-96А, регистры для извлечение архивов из памяти

Сообщение Роман » 29.09.2013, 14:46:37

Спасибо большое, так считывается любая указанная запись! Но, правда, только при явном указании ее номера перед каждым считыванием, автоматического инкрементирования все равно не происходит. Насколько я понял, в теории достаточно один раз записать в регистр номер записи, а после этого остается лишь считывать последовательно каждую запись?
Роман
 
Сообщения: 7
Зарегистрирован: 05.08.2013, 14:12:35

Re: ДКС-96А, регистры для извлечение архивов из памяти

Сообщение Moriarti34 » 30.09.2013, 09:48:05

Здравствуйте Роман!

Функционал описанный выше, а именно "5. Номер запрашиваемой записи инкрементируется устройством." поддерживается не всей нашей продукцией. На данный момент автоинкремент в ДКС-96 не реализован.

Спасибо за вопрос!
Moriarti34
 
Сообщения: 2
Зарегистрирован: 12.09.2013, 14:58:51
Откуда: Украина

Re: ДКС-96А, регистры для извлечение архивов из памяти

Сообщение Роман » 02.10.2013, 11:58:54

Спасибо большое за подробные ответы и терпение! :)
Роман
 
Сообщения: 7
Зарегистрирован: 05.08.2013, 14:12:35


Вернуться в Общие вопросы, предложения, пожелания



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2