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

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

   
Автор / Author Тема / Topic: Драйве t11, формирование блоков
ddkel
Active Forum Member / Активный участник форума
Участник № / Member № 4120


Icon 1 отправлено / posted      Профиль для / Profile for ddkel           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день!
Подскажите, правильно ли я понял алгоритм формитрования блоковых запросов?
1. МРВ проходит по базе каналов, находит канал с дополнением, устанавливает его как канал-образец(Канал_0).
2. МРВ берет следующий канал с тем же дополнением (Канал_1) и вызывает zCompare_xxx ia0=Канал_0, ia1=Канал_1, count=1.
3. Я в zCompare_xxx проверяю два младших байта удаленного адреса для этих каналов, и другие свои условия: например, являются ли адреса запрашиваемых значений смежными.
4. Если условия соблюдаются, то я возвращаю из zCompare_xxx не ноль (например, count).
5. МРВ устанавливает каналу Канал_1 принадлежность к блоку с каналом-образцом Канал_0. Получили блок из двух каналов.
6. МРВ берет следующий канал с тем же дополнением (Канал_2) и вызывает zCompare_xxx ia0=Канал_0, ia1=Канал_2, count=2.
7. Повторение пункта 3. Например условия не соблюдаютя, возвращаю ноль.
8. МРВ проходит дальше по базе каналов, находит канал с дополнением, устанавливает его как канал-образец(Канал_1).
9. МРВ берет следующий канал с тем же дополнением (Канал_2) и вызывает zCompare_xxx ia0=Канал_1, ia1=Канал_2, count=1.
10. Переход к пункту 3.

Сообщения / Posts 82 | Из / 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   Вставить в ответ текст исходного сообщения  / Reply With Quote 
1. МРВ сам выбирает для проверки группового запроса только те каналы, которые имеют одинаковые значения атрибутов I0 (два младших байта). Поэтому в драйвере их проверять не надо.
Надо проверять остальные байты удаленного адреса.

2. При выделении канала-образца МРВ обегает ВСЮ базу каналов (все каналы, вызывающие этот драйвер и удовлетворяющие п.1). Получение на одной из попыток отказа от включения канала в групповой запрос не прерывает процесса обегания по данному каналу-образцу.

Сообщения / Posts 15201 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
ddkel
Active Forum Member / Активный участник форума
Участник № / Member № 4120


Icon 1 отправлено / posted      Профиль для / Profile for ddkel           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Пункт 2 все же не соответствует действительности: как только из zCompare возвращается ноль, при следующем вызове zCompare ia0 содержит адрес следующего за Канал_0 подходящего канала, в независимости от того, попал этот канал (в моем вопросе Канал_1) в блок к какому-либо каналу-образцу (в моем вопросе Канал_0) или нет.
Сообщения / Posts 82 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
zCompare в начальный момент вызывается для каждого
канала!!!
zCompare в стд режиме вызывается для группы каналов

в расширенном режиме t11(у zCompare 6 параметров)
стд вызовы от начальных отличаются значением первого параметра

Сообщения / Posts 554 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
ddkel
Active Forum Member / Активный участник форума
Участник № / Member № 4120


Icon 1 отправлено / posted      Профиль для / Profile for ddkel           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Господин Nico, прошу Вас внимательно читать вопрос, а не бросаться демонстрировать знание документации. В моем вопросе нет утверждений, что zCompare вызывается не для каждого канала, наоборот для некоторых каналов она вызывается больше одного раза. Да и разница между ТСОМ5 и ТСОМ6 в руководстве пользователя описана довольно внятно, но не имеет никакого отношения к рассматриваемому вопросу.
Сообщения / Posts 82 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
ddkel
Active Forum Member / Активный участник форума
Участник № / Member № 4120


Icon 1 отправлено / posted      Профиль для / Profile for ddkel           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Уточню еще раз по п.2: МРВ дойдя до конца базы каналов, в качестве канала-образца берет Канал_1, уже попавщий в блок с Канал_0. Т.о. если у нас с Канал_0 блок из пяти каналов, то с Канал_1 у нас получится блок из четырех каналов, с Канал_2 - из трех, и так до конца блока. И каждый канал из первого блока будет инициатором блоковых запросов, с разным количеством каналов. Т.е. я хочу спросить, правильно ли то, что канал, уже попавший в блоковый запрос, продолжает участвоввать в формировании блоковых запросов и как часть блока и как канал-образец. Отправлю Вам на hotline@adastra.ru Проект ТМ6 с двумя блоками по пять каналов, проект MVS08Expr c t11s30.dll обрезанной до zCompare с выводом в окно сообщений параметров передаваемых в эту функцию монитором, будет желание, можете запустить, посмотреть.Дополнительно попросил бы Вас прокоментирвать изменение ia0.c[5], которое принимает значения count.
Сообщения / Posts 82 | Из / 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   Вставить в ответ текст исходного сообщения  / Reply With Quote 
"МРВ дойдя до конца базы каналов, в качестве канала-образца берет Канал_1, уже попавщий в блок с Канал_0. " - это действительно так.

По спецификации TCOM5 ia0.c[5] действительно принимает значения count.

У нас нет возможности анализировать драйверы пользователей.

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


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
"Пункт 2 все же не соответствует действительности: как только из zCompare возвращается ноль, при следующем вызове zCompare ia0 содержит адрес следующего за Канал_0 подходящего канала, в независимости от того, попал этот канал (в моем вопросе Канал_1) в блок к какому-либо каналу-образцу (в моем вопросе Канал_0) или нет. "
Сообщения / Posts 554 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
ddkel
Active Forum Member / Активный участник форума
Участник № / Member № 4120


Icon 1 отправлено / posted      Профиль для / Profile for ddkel           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Спасибо за ответы. Получается использовать ia0.c[5]для анализа принадлежности к блоку нельзя. Переделал все на ТСОМ6. Осталось придумать как отсечь вторичные блоки.
Сообщения / Posts 82 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
ddkel
Active Forum Member / Активный участник форума
Участник № / Member № 4120


Icon 1 отправлено / posted      Профиль для / Profile for ddkel           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
При двух группах по пять каналов получается следующая картина. Из zCompare для каналов уже вошедших в блок при повторном их опросе возвращаю 0, и получаю два запроса по пять значений, и восемь запросов по одному значению (исключатся каналы-образцы, т.к. для них возвращаемое значение было не ноль). Т.е. эту ошибку в работе МРВ обойти в zCompare невозможно; считаю этот случай ошибкой, т.к. не вижу ни одного практического применения вторичного опроса уже вошедших в блок каналов, и ошибка, видимо, не устранима - нашел те же вопросы на форуме от 27 07 2006 года. Да и для ТСОМ5 - порча значения ia0.c[5] приводит к невозможности использования этого интерфейса если в удаленном адресе используется шестой байт (зачем передавать значение count в двух разных переменных?).

[ 06.06.2013, 09:20: Сообщение отредактировал / Message edited by AdAstra Technical Support ]

Сообщения / Posts 82 | Из / 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   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Практические случаи реализации неполных групповых запросов существуют.
Заложенный алгоритм реализации групповых запросов позволяет реализовать неполный групповой запрос при отсутствии корректного ответа на полный групповой запрос. При достоверном обмене неполные групповые запросы не реализуются. Алгоритм корректироваться не будет.

Для реализации доступа пользователя к ia0.c[5] и использования дополнительных строковых параметров запроса (ext_data) следует использовать TCOM6.

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

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / 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