This is topic Цикл работы и достоверность in forum Драйверы / Device Drivers at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/14/t/000012.html

Posted by CONSAT (Участник № / Member № 51) on :
 
Мы почти написали драйвер для обмена с Ш-711. Драйвер пишем без самого Ш-711, результат работы видим по нашим логам+профайлера (драйвер подключен правильно). При етом достоверность канала конечно же 1 (девайса нет).
И в один прекрасный момент пересчет каналов перестал работать!
достоверность всегда 0.
в логе нет строки о инициализации портов
на других машинах тоже самое.
И что самое интересное: при использовании родного драйвера - тоже самое!
Переустанавливаем с нуля NT и TM5 - тоже самое!

Чем это может быть вызвано и что посоветуете в етом случае???
 


Posted by CONSAT (Участник № / Member № 51) on :
 
И еще обнаружена связь с настройками COM-портов в ТМ.
При некоторых настройках (изменение базовых адресов и прерываний на другие, неиспользуемые системой) ошибки 40 не возникает но и ваш родной драйвер t11s0.dll также не работает!!! - Вывод нужно прописывать то, что использует ОС(испытано!).

При работе с мультипортовой картой MOXA нас убеждали что в бланке связь через порты неважно то писать ТМ работает через настройки портов самой ОС. (Так ли это? )

Ну и как быть что драйверу для работы необходимы реальные адреса и прерывания И в то же время мультипортовая карта их не имеет...

И вот оказывается что другие части ТМ их используют
 


Posted by CONSAT (Участник № / Member № 51) on :
 
Полностью с нуля ставим NT+IE+TM(никаких дополнительных настроек не производилось)=снова не работает.
Мы вам выслали проекты.
Один проект работает на обеих а другой только на одной из них!
Все апаратные настройки портов идентичны.

Непонятно, почему так происходит??
 


Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1) При работе с СОМ-портами под MS Windows настройка базового адреса порта не имеет значения, главное, чтобы она была отлична от нуля (адрес важен только при работе под MS DOS).
У мультипортовой карты, как и у всех устройствах в системе, есть собственный базовый адрес и прерывание, но только эти значения общие для всех портов этой платы.

2) Вы прислали две директории: Ver1 и Ver2. В каждой из них есть файл драйвера t11s13.dll, но только в Ver1 этот файл от 22.10.2001 и занимает 237 кбайт, а в Ver2 он от 05.12.2001 и занимает 110 кбайт (причем последний явно поврежден или некорректен, потому как оба проекта с ним не работают).
Пожалуйста, поясните ситуацию - с каким именно файлом драйвера работаете Вы?
 


Posted by CONSAT (Участник № / Member № 51) on :
 
В этих двух проектах важны сами dll, А все остальные файлы для показа что подключение его и использование в проекте - рпавильное.

Важно то, что один проект работает на всех машинах - тот что 237к. А вот другой только на одной (и как раз не на стойке ;-()

Вот такая ситуация - откомпилировали на машине X и на ней же работает, а на других нет.
Кроме того нас смущает большие объемы dll - (ваша dll из ТМ около 50, а когда мы компилируем ее из примера - далеко не то).
Как взять вашы настройки Visual C для компиляции у нас.(Возможно они и влияют)
Может они хранятся в самом проекте с dll+cpp+h+... - тогда нужен ваш проект для t11s0.dll

 


Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Причина может быть в том, что при создании DLL в нее не были статически подлинкованы библиотеки. Поэтому данная DLL работает только на той машине, на которой ее компилировали.
Для создания DLL в Visual Studio Вам необходимо выбирать тип проекта "Win32 Dynamic-Link Library", а тип DLL - как "A Simple DLL Project".
Далее нужно проверить настройки проекта:
В бланке "C\C++" параметр Category необходимо установить в "Code Generation", а параметр Use Run-Time library в "Multithreaded DLL" или "Debug Multithreaded".
 
Posted by CONSAT (Участник № / Member № 51) on :
 
>Поэтому данная DLL работает только на той машине, на которой ее компилировали.
Нет это не так! - так как работает еще на одной машине, где нет Visual C++.

Настройки в Visual C++ мы проверим...

И еще, никак не избавимся от строки в профайлере >протокол №13 не найден
Хотя есть t11s13.dll и на всяк пожарный t11s14.dll
При загрузке редактор каналов он не ругается на type11.ini (значит он dll видит нормально )
При переименовании dll -> t11s0.dll и соотв. правка в type11.ini результата не дает (не найден протокол №0)
 


Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Уважаемый CONSAT!
Редактор базы каналов к драйверам не обращается, поэтому Ваше заключение "(значит он dll видит нормально )" не совсем корректно.
Я еще раз взял Ваш проект с Вашим драйвером "большего объема", запустил его, и сообщений, подобных Вашему, не получил. Напротив, получил в протоколе профайлера строку "RS:Loaded protocol TestDrv - Ш711".
Видимо, Вы получаете сообщение "не найден драйвер" при загрузке неработающего драйвера.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2