Форум TRACE MODE: техническая поддержка   
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 5 » Драйверы / Device Drivers » КОНТР_1 типа "Запрос-ответ-подтверждение"

   
Автор / Author Тема / Topic: КОНТР_1 типа "Запрос-ответ-подтверждение"
Svetlov
Forum Member / Участник форума
Участник № / Member № 1193


Icon 5 отправлено / posted      Профиль для / Profile for Svetlov           Редактировать/удалить сообщение / Edit/Delete Post 
Возможно ли реализовать драйвер типа не "запрос-ответ", а "запрос-ответ-подтверждение"?
Если да, то как?

Про функцию Check_xxx сказано - "Если при этом значение параметра max_send больше 0, то осуществляется посылка по последовательному порту строки из буфера rbuf. "
Сначала я подумал, что это то что надо, но ведь я не могу изменить rbuf - он нужен для функции Get_xxx.
Тогда для чего это? И как мне послать контроллеру подтверждение принятия данных?

Сообщения / Posts 31 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post 
В функции GET_xxx есть такая опция (см.документацию)
"Если младший бит старшего байта параметра type_cnv равен 1 (0x01000000), то следующий вызов драйвера выполняется для того же самого канала (переход к обработке очередного канала не производится). Это свойство используется при разработке многопроходных драйверов."

Вам следует после получения ответа и его разборки при повторном обращении к драйверу от того же канала в функции SET_xxx задать, что надо передавать, но количество байтов в ответе указать равным 0.

Сообщения / Posts 15118 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
sugar
Forum Haunter / Завсегдатай форума
Участник № / Member № 1198


Icon 1 отправлено / posted      Профиль для / Profile for sugar           Редактировать/удалить сообщение / Edit/Delete Post 
Есть ли еще какое-либо условие для для того чтобы драйвер продолжал обработку одного канала и не переходил к следущему?
type_cnv поставил 0x01000000 ,но каналы продолжают вызываться по очереди без задержки.
Мне необходимо реализовать цикл обработки канала запрос-ответ-запрос-ответ-запрос-ответ-запрос-ответ.Осуществить 4 прохода при обработке одного канала.Что я мог упустить?
Для отладки вел лог файл в который записывал удаленный адрес канала ia.c[3] ,который на каждом канале индивидуальный.Каждая новая строка лога шла с новым удаленным адресом,хотя должен быть по моему мнению один и тот же.
В функцию Get_xxx передается удаленный адрес ia.c[i] канала "инициатора" или "найденного"?

Сообщения / Posts 133 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post 
Просим прощения за неточность в документации.
"Если младший бит первого байта параметра type_cnv равен 1 (0x0100), то следующий вызов драйвера выполняется для того же самого канала (переход к обработке очередного канала не производится). Это свойство используется при разработке многопроходных драйверов."

Сообщения / Posts 15118 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
sugar
Forum Haunter / Завсегдатай форума
Участник № / Member № 1198


Icon 1 отправлено / posted      Профиль для / Profile for sugar           Редактировать/удалить сообщение / Edit/Delete Post 
Поставил type_cnv=0x0100 ,но ничего не поменялось каналы как продолжались вызываться по очереди так и дальше меняются на новые.
В функцию Get_xxx передается удаленный адрес ia.c[i] канала "инициатора" или "найденного"?
В чем может быть дело?

Сообщения / Posts 133 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post 
В функцию Get_xxx передается удаленный адрес "канала-инициатора" обмена.
Сообщения / Posts 15118 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
sugar
Forum Haunter / Завсегдатай форума
Участник № / Member № 1198


Icon 1 отправлено / posted      Профиль для / Profile for sugar           Редактировать/удалить сообщение / Edit/Delete Post 
Для каких алгоритмов обработки даных можно написать многопроходный драйвер(DATA11,BLOCKDATA11,одиночных)?
А канал инициатор при type_cnv = 0x0100 меняется на другой или должен остаться тот же самый?

Сообщения / Posts 133 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
romer
unregistered



Icon 1 отправлено / posted            Редактировать/удалить сообщение / Edit/Delete Post 
При выдаче функцией Get_xxx type_cnv = 0x0100 разбор ответа функцией Compare_xxx не осуществляется. МРВ сразу вызывает функцию Set_xxx с удаленным адресом того же канала.
IP / IP: IP адрес / IP address | Report this post to a Moderator
sugar
Forum Haunter / Завсегдатай форума
Участник № / Member № 1198


Icon 1 отправлено / posted      Профиль для / Profile for sugar           Редактировать/удалить сообщение / Edit/Delete Post 
Почему же эта функция c type_cnv=0x0100 не работает, вызывается следующий канал с другим удаленным адресом?
Сообщения / Posts 133 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post 
##
У нас нет возможности детально работать с исходными кодами программ, написанных пользователями.
Режим многопроходности в драйвере проверялся и функционирует.

Сообщения / Posts 15118 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

   Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us

Rambler's Top100 Rambler's Top100



Powered by Infopop Corporation
UBB.classic™ 6.7.2