This is topic Проблема в передаче данных между узлами in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
Есть узел RTM1, который запускается на рабочей станции через МРВ. Есть узел MicroRTM_2, который находится в контроллере. На контроллере стоит WinNT. Я настроил нужные информационные потоки между узлами. В узле MicroRTM_2 есть канал аналогового ввода, который принимает данные от источника. Этот канал передает данные на узел RTM1 (на операторской станции). (Пусть это будет поток 1) В узле RTM1 есть аналоговый канал типа INPUT, в который заносятся данные с операторской станции. Для этого канала включил автопосылку. Данные передаются в канал типа OUTPUT в контроллере узла MicroRTM_2. (Пусть это будет поток 2) В общем, если запускать на 2-ух компах, то все работает нормально. Данные пересылаются в нужном направлении. Но если подключить комп и контроллер (который по сути также является компом, только слабым), то данные пересылаются только в одном направлении: от операторской станции к контроллеру. То есть, если запустить RTM1 на операторской санции, а MicroRTM_2 - на контроллере, то данные передаются только от операторской станции к контроллеру по "потоку 2". Если же запустить наоборот: RTM1 - на контроллере, а MicroRTM_2 - на операторской станции, то данные также будут передаваться только от операторской станции к контроллеру, но только по "потоку1". То есть, насколько я понимаю, проблема не в проекте, а в каких-то настройках. Как это можно побороть?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
IP-адреса меняете в настройках узла контроллера когда с ПК его в контроллере запускаете? Ведь наверняка у Вас у ПК и у контроллера, на которых запускается MicroRTM_2, IP разные.
Posted by DreamWeaver (Участник № / Member № 1485) on :
IP-адреса не устанавливаю вообще. В справке написано, что они определяются автоматически, и это действительно так (но пробовал и прописывать их явно - результат тот же). Я пробовал ставить RTM1 на операторскую станцию, а MicroRTM_2 - на другой комп (не контроллер) и все работло отлично. Работает и для контроллера, но только в одну сторону (от операторской станции к контроллеру).
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
А если открыть в МРВ список серверов в сети - там оба узла?
Posted by DreamWeaver (Участник № / Member № 1485) on :
Если открыть МРВ на операторской станции (с которой данные нормально отправляются контроллеру, запущен rtc.exe), то там отображается 2 строки: Work.NT5.RTM (IP машины операторской станции) ...?.? (...) (IP контроллера) А если открыть в контроллере NodeStatus, то там не отображаются IP (запушен rtmg32.exe), просто отображаются 2 строки: WORK.NT.RTM WORK.NT4.eRT Может как раз контроллер не "видит" операторскую станцию. В настройках узла MicroRTM для контроллера можно установить только IP этого узла. Но как установить IP машины, на которую нужно отсылать данныЕ?
Posted by DreamWeaver (Участник № / Member № 1485) on :
Попробовал только что запустить на контроллере rtc.exe (на операторской станции запущен этот же профайлер). Посмотрел статус узлов. В первой строке была IP операторской станции (значит он ее видит), но вот во второй строке весто совего IP были одни нули. В чем может быть причина?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
В настройках узла задается только IP текущего узла, зачем задавать орстальные, если они и так задаются каждый в своем узле?
Похоже, что что-то не то с сетевыми настройками ОС... Попробуйте запустить в командной строке в контроллере и ПК команду ipconfig и выложить сюда ее лог.
Posted by DreamWeaver (Участник № / Member № 1485) on :
Вот лог для операторской станции:
Настройка протокола IP для Windows
Имя компьютера . . . . . . . . . : guru Основной DNS-суффикс . . . . . . : petron.ru Тип узла. . . . . . . . . . . . . : неизвестный IP-маршрутизация включена . . . . : нет WINS-прокси включен . . . . . . . : нет Порядок просмотра суффиксов DNS . : petron.ru
Имя компьютера . . . . . . . . . : fastwel.petron.ru Серверы DNS. . . . . . . . . . . : 192.168.1.1 192.168.1.4 Тип узла . . . . . . . . . . . . : B (рассылочный) Код области NetBIOS . . . . . . : Включена маршрутизация IP. . . . : Нет Доверенный сервер WINS . . . . . : Нет Использование DNS для NetBIOS. . : Нет
Адаптер Ethernet DP838151:
Описание . . . . . . . . . . . . : National Semiconductor Corp. DP83815 10/100 MacPhyter3v PCI Adapter Физический адрес . . . . . . . . : 00-08-B3-3B-12-1C Включен протокол DHCP. . . . . . : Нет Адрес IP . . . . . . . . . . . . : 192.168.1.213 Маска подсети. . . . . . . . . . : 255.255.255.0 Основной шлюз. . . . . . . . . . : 192.168.1.1
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Разобрались - дело в том, что метод автопосылок "один ко многим" работает в режиме рассылки пакетов broadcast (широковещательные пакеты в сети), так вот Windows версии 4.0 их не поддерживает. Варианты следующие: 1) Использовать Win2K или WinXP 2) Использовать обмен в режиме "точка-точка", а не автопосылки 3) Использовать мост - смотрите более подробно описание в справочной системе "Задание параметров узла"
Posted by DreamWeaver (Участник № / Member № 1485) on :
В свойствах узла RTM я поставил флаг "Использовать" для моста, выбрал из списка "первый". В справке написано, что в таком случае будет использоваться мост, заданный переменной @IP_Parameter с атрибутом "Параметр 9". В разделе "Группа системные" справки написано, что Параметр 9 (NodeBridge0) - это порядковый номер первого моста. Откуда его брать? И как его задать? В Источниках/Приемниках создал группу "Диагностика_и_сервис", в ней - группу "Системные", и для этой группы создал компонент "@IP_Parameter". В его свойствах выбрал NodeBridge0. Но как в эту переменную записать номер моста? Может нужно создать канал (автопостроением) для этой системной переменной? Но в таком случае также не совсем понятно, как задать в свойство NodeBridge0 номер моста? А этот мосто нужно в винде создавать?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Мост - это узел того же проекта, запускаемый под МРВ. В Вашем случае понадобиться как минимум два МРВ, чтобы один был мост, а другой мог принимать от него ретранслируемые данные от контроллеров. Как я уже сегодня сообщил Вам в разговоре по телефону - если будет использоваться WinNT4, то лучше перейти на обмен "точка-точка".