Гришечко А.Е.
Junior Member / Новичок
Участник № / Member № 3323
отправлено / posted
Пишу сюда потому что в открытом формуме по 5 версии нет возможности задать вопрос, а в закрытом не хватает прав написать, хотя регистрировался с указанием номера регистрационного от 5 версии.
И так вопрос. Пытаюсь подключить драйвер t11. В пробном проекте создал канал типа DCS, чтоб смотреть работает ли вообще COM порт, а также канал типа КОНТР_1, указал подтип своего драйвера. Запускаю профайлер и вижу, что найдено 4 канала (2 дополнительных создал чтоб смотреть диагностическую информацию по основным каналам), а в поле RS, написано, что найдено 1 канал. Похоже мой драйвер он не загрузил. Добавил в функцию Prepare_xxx создание файла, чтобы вести свой лог, только файл не создался. Это говорит о том что драйвер и правда не загрузился. Подскажите в чем может быть проблема?
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Вы должны были откорректировать файл ...\INI\Type11.ini так, чтобы там был прописан Ваш драйвер, на который ссылается канал подтипа КОНТР_1. А затем поместить файл Вашего драйвера в папку инструментальной системы под соответствующим именем t11sN.dll, где N соответствует строке Вашего драйвера в файле ...\INI\Type11.ini.
Вам предоставлены права записи в разделах "Trace Mode 5", в связи с чем я переношу этот топик в раздел "Trace Mode 5. Драйверы".
Сообщения / Posts 17353 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Гришечко А.Е.
Junior Member / Новичок
Участник № / Member № 3323
отправлено / posted
Это я сделал. Единственно, я удалал из файла type11.ini все строки до тех которые начинаются со знака "@", соответственно назвал свой драйвер t11s0.dll. Может не стоило этого делать?
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Если драйвер существует, но МРВ к нему не обращается, значит, существуют проблемы с инициализацией того COM-порта, который указан в настройках канала подтипа КОНТР_1 и свойствах соответствующего COM-порта, который Вы должны были задать в бланке "Параметры последовательных портов". Запустите, пожалуйста, профайлер с ключом /DEBUG=200. При этом в протоколе профайлера должны быть выведены все ошибки по работе с COM-портами.
Сообщения / Posts 17353 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Гришечко А.Е.
Junior Member / Новичок
Участник № / Member № 3323
отправлено / posted
Вы оказались правы. Выпало, что необходимо передать каналу адрес порта. При замене первого параметра в настройке канала на 0, все заработало. Большое спасибо.
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Гришечко А.Е.
Junior Member / Новичок
Участник № / Member № 3323
отправлено / posted
Здравствуйте, подскажите еще один момент относительно драйвера. Написал. Опрашивается 3 канала единичными запросами, никаких блоковых. Происходит вот что. Канал считывается, отображается его содержимое, а через некоторое время (пока считываются другие каналы) его значение сбрасывается в 0, потом он опять считывается, отображается его содержимое и все повторяется снова. Так происходит для всех каналов.
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Что означает "(пока считываются другие каналы)"?Все каналы должны считываться в течение одного цикла МРВ. Если выключить 2 канала, оставшийся 1 канал будет работать нормально?
Сообщения / Posts 17353 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Гришечко А.Е.
Junior Member / Новичок
Участник № / Member № 3323
отправлено / posted
Если оставить один, то все работает нормально. Цикл идет 1-2-3-1, 1 считался, 2 считался, 3 считался (в это время 1 стал 0) и так далее. Все время один из каналов имеет значение 0.
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Гришечко А.Е.
Junior Member / Новичок
Участник № / Member № 3323
отправлено / posted
Точнее 1 и 3 попеременно имеют значение 0, а 2 все время имеет реальное значение. 1 считался, 3 стал 0, 3 считался 1 стал 0.
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Как Вы задаете циклы опроса? Как наблюдаете? Непонятна терминология "1 считался, 2 считался, 3 считался". Они все должны считываться в пределах одного цикла. Как Вы разделяете транзакции? Если отдельно каждый канал считывается правильно, а при наличии транзакций по всем каналам есть ошибки, значит драйвер отвечает неверно. Разбирать Ваш драйвер и анализировать его на корректность у нас нет возможности.
Сообщения / Posts 17353 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Гришечко А.Е.
Junior Member / Новичок
Участник № / Member № 3323
отправлено / posted
Я запускаю только сервер мат. обработки (drawserv.exe) из командной строки и смотрю что происходит с каналами. Происходит опрос первоого канала, я вижу, что значение поменялось, и так далее. При помощи монитора com порта я смотрю что опрашивается в данное время (я задал большой таймаут в функции Get_xxx, чтоб не мельтишило). Вот и получается, что во время опроса третьего канала значение первого сбрасывается на 0, и наоборот.
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Гришечко А.Е.
Junior Member / Новичок
Участник № / Member № 3323
отправлено / posted
Еще уточнение, контроллер работает на протоколе сходном с протоколом ADAM, таким чтобы узнать значение канала я посылаю запрос на этот канал и получаю его значение, а потом только ответ разобрать надо.
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Гришечко А.Е.
Junior Member / Новичок
Участник № / Member № 3323
отправлено / posted
Подскажите, а что означают значения, которые отображаются в окне сервера матобработки? Сначала у меня сначала 4 столбец принимает значение канала, потом 1 и 2, при сбросе на 0 происходит тоже самое, сначала 3 становится 0, а потом 1 и 2.
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Гришечко А.Е.
Junior Member / Новичок
Участник № / Member № 3323
отправлено / posted
Подскажите, что означает ERR IN10 в файле avmu.tnt? Так помечены все записи, которые содержат ответ контроллера.
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
1. Для отладки драйвера Вам придется в его код вставлять возможные контрольные точки и вести собственный лог, чтобы отследить все обращения к драйверу со всеми передаваемыми параметрами. По этой информации в соответствии со спецификацией функций вызова Вы должны будете определить качество интерфейса драйвера с МРВ, найти и устранить ошибки.
Согласно моего лога получается что функции посылки, проверки и разбора запроса вызываются не циклически, а по логу trace mode наоборот, как правильно?
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
МРВ принципиально работает в полудуплексном режиме: пока не завершена транзакция по одному запросу, МРВ не реализует другой запрос. При правильно м интерфейсе с драйвером МРВ организует последовательность функций вызова драйвера строго циклически. Если после функции Check_xxx нет перехода к функции Get_xxx, значит, следует искать причину в ответах драйвера.
Еще раз вынужден повторить, что у нас нет возможности анализировать код Вашего драйвера и разбирать проблемы, возникающие в его работе. Анализируйте, пожалуйста, драйвер самостоятельно.
Сообщения / Posts 17353 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Гришечко А.Е.
Junior Member / Новичок
Участник № / Member № 3323
отправлено / posted
Скажите, а можно получить описание значений переменных структур IA и RSDATA?
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Гришечко А.Е.
Junior Member / Новичок
Участник № / Member № 3323
отправлено / posted
И еще подскажите, функция Get_xxx возвращает значение времени в милисекундах до следующего запроса на порт, а как с этим временем согласуется таймаут, который задается для этого порта настройками самого порта в редакторе базы каналов?
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
1. Описание структуры RSDATA и удаленного адреса IA приведено в разделе "Разработка драйверов.../Драйверы для связи с контроллерами/Драйверы обмена по последовательному .../Стандартный заголовок" 2. Функция Get_xxx взвращает значение задержки между транзакциями. А таймаут, задаваемый в настройках COM-порта, фиксирует время ожидания ответа в пределах одной транзакции.
Сообщения / Posts 17353 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Гришечко А.Е.
Junior Member / Новичок
Участник № / Member № 3323
отправлено / posted
Относительно структур. В заголовке описан перечень переменных, которые составляют эти структуры, а мне интересно что именно за данные они хранят. Скажем в примере драйвера Ш711/1 в документации функция zCompare_xxx возвращает ia1.i[1]+1, какое значени содержит эта переменная, ее физический смысл?
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Надо прочитать, что выполняет эта функция и что она возвращает. Это документировано.
Сообщения / Posts 17353 | Из / From: Россия
| IP / IP: IP адрес / IP address |