This is topic Индентификация узла в микроМРВ для DOS in forum Микро Мониторы Реального Времени / Micro Real Time Monitors at Форум TRACE MODE: техническая поддержка.
Каким образом в работающем узле (микроМРВ для DOS) можно определить что-нибудь из следующих пунктов: 1. этот узел MAIN или HOT; 2. номер этого узла по проекту; 3. IP адрес(хотя бы младший байт адреса).
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Переменная статус должна работать в МикроМРВ для DOS.
Параметр = 0, STATUS – значение байта 0 (0x00FF) – состояние узла:
Параметр = 5, IP_Address – INPUT: IP-адрес (если запрашивается как строка, содержит IP-адрес и имя компьютера).
Узнать номер нельзя. Хотя Вы можете отразить его в каком-нибудь канале.
Posted by Polyakov Alexander (Участник № / Member № 4416) on :
Уточняю я спрашивал про MAIN или HOT, не статус узла - work/slave;
STATUS с параметром 5 при сохранении в канал hex16 записывает только два старших байта IPадреса. Как запрашивать строку? ведь речь идет о микроМРВ для DOS, где есть по этому типу ограничения.
Необходимость индентификации узла связана с тем, что в программе переключающей статус узла(рабочий/резервный) надо знать на каком узле она работает.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1) В терминологии Trace Mode нет понятия MAIN или HOT, что Вы имеете в виду.
2) Можно ввести канал, которому по умолчанию будет посылаться номер узла или любой другой идентификатор. По значению этого канала и можно определять какой это узел.
Posted by Polyakov Alexander (Участник № / Member № 4416) on :
1)Не помню где именно в Trace Mode встречаются описания понятий MAIN/HOT. означают они следующее: MAIN узел созданный в проекте HOT резервный узел для вышеприведенного узла
2) Но как сделать чтобы значения по умолчанию этого канала были разными для узла(первоначального или main) и резервного узла(созданного абсолютной копией для первоначального)?
Posted by Polyakov Alexander (Участник № / Member № 4416) on :
дополнение MAIN/HOT это условное название узлов основного/резервного WORK/SLAVE статус этих узлов В РАБОТЕ/В РЕЗЕРВЕ
Возможно это просто вольный перевод следующего куска из помощи ТМ6: Распределенные АСУ->Связь канал-канал: "При интерфейсе CHFAULT в этом списке доступна опция All Redundant (все резервы), а также опции вида Net_ind<N> (N=0,1,2), явно указывающие один из узлов (0 – основной, 1 – первый резерв, 2 – второй резерв)."
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Теперь понятно.
Ситуация не из простых, конечно.
Можно попробовать так.
В файле CNF задать разное значение для этой переменной.
E18=<nlog> – задание значения системной переменной @Logging типа OUTPUT (см. Группа СИСТЕМНЫЕ , а также Задание параметров узла );
Можно использовать биты архива и ОТ, т.к. они в DOS не работают.
Потом считывать это значение системной переменной @Logging.
Posted by Romсheg (Участник № / Member № 3792) on :
А можно через канал Call, что в режиме считывания аргументов из файла работает, задавать нужные значения для каждого узла.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Ограничения мониторов для DOS
не поддерживается чтение из файла/запись в файл значений аргументов канала CALL с помощью атрибутов 128 и 129;
Posted by Polyakov Alexander (Участник № / Member № 4416) on :
Спасибо Support за идею.
Правда, я немного иначе ее реализовал: использовал в редактировании узла стартовые значения @INPUT_OUTPUT, которые своей программой считываю после запуска узла, понимаю кто я (main/hot), а затем согласно своего статуса(work/slave) выставляю в @INPUT_OUTPUT нужную маску.