This is topic Работа с watchdog timer в МРВ на промPC in forum Мониторы Реального Времени / Real Time Monitors at Форум TRACE MODE: техническая поддержка.
Здравствуйте! При работе с WDT на promPC Mic2000 происходит отключение WDT при выходе из МРВ (версия 5.12). Почему так происходит? Запускаем WDT путем посылок значений уставок WDT в канал DO port с адресом 443. Драйвер для работы с портами win2000 установлен. Чтение данных из порта 443 с использованием канала DI port не производим, то есть программно мы таймер не отключаем.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Вы с портами WDT сами через каналы работаете?
Posted by alfer (Участник № / Member № 819) on :
Работаем сами. В смысле посылаем на вход канала DO port с адресом BASE=h443 значение 30 с помощью FBD-программы, период обработки канала 20 секунд.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
То есть - при останове и выходе из МРВ контроллер не перегружается, хотя должен по WDT, я правильно понял?
Posted by alfer (Участник № / Member № 819) on :
Все верно, мы тоже так предполагали, что при выходе из МРВ должен был произойти перезапуск компьютера, но этого не происходит
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
У Вас есть описание его WDT, можете скинуть на электронную почту?
Posted by alfer (Участник № / Member № 819) on :
Извините, не знал куда именно отправить письмо. Поэтому отправил на forum@adastra.ru и hotline@adastra.ru
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Что-то пока не получили... Какой был объем вложения?
Posted by alfer (Участник № / Member № 819) on :
Объем мизерный, килобайт 30. Попробую еще раз отослать на forum@adastra.ru
Posted by alfer (Участник № / Member № 819) on :
Хотя можно и на форум выложить: --------------------------------------------- A.1 Programming the Watchdog Timer To program the watchdog timer, you must write a program which writes a value to I/O port address 443 (hex). This output value represents a time interval. The value range is from 01 (hex) to 3F (hex), and the related time interval is from 1 sec. to 63 sec. Data Time Interval 01 1 sec. 02 2 sec. 03 3 sec. 04 4 sec. . . 3F 63 sec
After data entry, your program must refresh the watchdog timer by rewriting the I/O port 443 (hex) while simultaneously setting it. When you want to disable the watchdog timer, your program should read the I/O port 443 (hex). The following example shows how you might program the watchdog timer in BASIC:
10 REM Watchdog timer example program 20 OUT &H443, data REM Start and restart the watchdog 30 GOSUB 1000 REM Your application task #1, 40 OUT &H443, data REM Reset the timer 50 GOSUB 2000 REM Your application task #2, 60 OUT &H443, data REM Reset the timer 70 X=INP (&H443) REM, Disable the watchdog timer 80 END 1000 REM Subroutine #1, your application task 1070 RETURN 2000 REM Subroutine #2, your application task 2090 RETURN
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Какое значение Вы посылаете в данный порт в своем проекте? И нет ли у Вас случайно в базе проекта канала, который считывает данный порт?
Posted by alfer (Участник № / Member № 819) on :
Эту информацию мы вам уже предоставили. Повторюсь: посылаем значение 30. Чтение НЕ ПРОИЗВОДИМ.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Если драйвер УСО у Вас установлен корректно (его тест проходит нормально), то дело уже в самом WDT этой платы. Есть только одно предположение - что данный WDT не разрешен в bios-платы. Больше никаких соображений нет, потому как канал ДИСКРЕТ_DO-port - это обычное прямое обращение к порту и ничего о самом WDT как таковом ТМ не знает, поэтому и выключать его не может при останове.
Posted by alfer (Участник № / Member № 819) on :
Извините за продолжительное молчание. Но ряд вопросов у меня все же остался. Фактически WDT работает. Проверили так: посылаем временнУю уставку 10 секунд, а период обработки канала 20 секунд. В результате компьютер перегружается. Все вроде бы согласно докумениации по таймеру. Я понимаю, что трейс моуд ничего не знает о сторожевой собаке, но факт налицо: при выключении МРВ таймер не срабатывает. У меня возникло предположение, что при выключении МРВ происходит чтение из портов, с которыми он работал для записи в файл дампа. Что скажете? PS Драйвер УСО установлен корректно
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Нет - МРВ ничего не подчитывает по каналам типа DO-port ни при остановке, ни при сохранении данных в дамп. А Вы как запускаете МРВ - раздельно сервер и консоль или через консоль?
Posted by alfer (Участник № / Member № 819) on :
Запускаем МРВ через консоль.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Тогда у нас больше нет вариантов, что может быть, потому как, если Вы закрываете МРВ - он прекращает обработку каналов и соответсвенно посылку значения в порт, и если в проекте больше нет обращений (каналами, из IL или FBD) к данному порту на чтение, то WDT должен сработать.