Страница 1 из 1
Резервирование в MBENET
Добавлено:
Пт сен 28, 2007 11:58 am
MaxXx
Здравствуйте!
Помогите, пожалуйста, советом.
Необходимо при определенных условиях (например нажатием на кнопку) переключится на резервный контроллер. Контроллеры свазываются с InTouch через MBENET. Разница лишь в IP-адресах контролерров.
Добавлено:
Пт сен 28, 2007 4:07 pm
Admin
Уважаемый Maxxx, я бы делал в общем так:
Создайте форму для отображения IP и свяжите с ней строковый тэг str.
Создайте кнопку Toggle для смены адреса.
Создайте скрипт на событие в InTouch.
Special - Scripts - Key Scripts.
Например:
If (Event) then str="192.168.1.1"
Добавлено:
Пт окт 05, 2007 10:37 am
MaxXx
Следуя Вашему совету я создал строковый тэг IPstring, в котором прописывается IP. Далее следуя уже своей логике в конфигурации MBENET -> Topic Definition в поле IP Adress вписал IPstring. Но связи с контроллером не происходит.
вот что пишит MBENET в логфайл:
146058 05.10.2007 10:19:59 3816 2760 Info MBENET Unable to resolve name IPstring
146059 05.10.2007 10:19:59 3816 2760 Info MBENET Response Timeout on topic Box1_con9. The PLC failed to respond to our poll.
146060 05.10.2007 10:19:59 3816 2760 Info MBENET Box1_con9 In slow-poll mode, next retry in 15000 milliseconds
Добавлено:
Пт окт 05, 2007 11:42 am
Admin
Unable to resolve name IPString
означает что приложение не может разобрать адрес.
Попробуйте использовать сетевое имя вместо IP-адреса.
Соответствие сетевых имен IP-адресам прописывается в файле
C:\WINDOWS\system32\drivers\etc\hosts
Добавлено:
Пт окт 05, 2007 11:49 am
MaxXx
А вообще, в поле IP адреса может стоять переменная?
В справке MBENET я не нашел ничего об этом.
И еще, если создать HOST файл и в нем менять IP адрес...
Такое возможно? И если да, то подскажите как это реализовать?
Добавлено:
Пт окт 05, 2007 12:34 pm
Admin
Нет, я хотел сказать что вероятно MBENET использует адресацию по имени, а не по адресу.
Но даже если адрес и не может выражаться переменной, то можно создать два топика. а между ними преключаться можно - это факт.
Что касается файла HOST, то его создавать не нужно - он уже есть и лежит там где я Вам сказал и только там. Этот файл можно и нужно редактировать, например
Пример файла hosts:
- Код: Выделить всё
127.0.0.1 localhost #адрес вашего компьютера
213.180.194.113 mic-hard.narod.ru #указываем адрес для ускорения загрузки сайта www.mic-hard.narod.ru
127.0.0.1 bs.yandex.ru #блокируем баннеры Яндекса
Добавлено:
Пт окт 05, 2007 5:00 pm
MaxXx
Создал топик. В нем в поле IP адреса прописал: hostname
в файле C:\WINDOWS\system32\drivers\etc\hosts прописано:
"192.168.3.1 hostname"
(192.168.3.1 - IP адрес основоного контроллера)
При запуске проекта соединение инициализируется все работает.
Затем, когда я перехожу на резервный контроллер содержимое файла host меняется на:
"192.168.3.2 hostname"
(192.168.3.2 - IP адрес резервного контроллера)
Однако, MBENET остаеться потключенным к первому контроллеру.
Для того чтобы он переподключился необходим перезапуск проекта.
Подскажите, пожалуйста, как реализовать данную идею без перезапуска?
Добавлено:
Пт окт 05, 2007 5:23 pm
MaxXx
А возможно ли отключиться от MBENET и вновь подключиться не выходя из проекта?
Т.е. идея такая при переходе на резервный контроллер:
1. отключаем MBENET;
2. переписываем hosts файл;
3. подключаем MBENET;
и чтобы все это произошло незаметно для оператора станции.
Добавлено:
Пт окт 05, 2007 5:45 pm
Admin
Уважаемый MaxXx, получается что Вы хотите микроскопом забивать гвозди
Наверное можно батник написать, почитайте в C:\Windows\Help\ntart.chm как это сделать.
Команды taskill, start
Но Вам ведь просто нужно реализовать механизм динамической адресации, так?
Для этого вместо тэгов InTouch позволяет использовать удаленные ссылки (Remote References) - пожалуйста разберитесь с этим,
в документации на эту тему достаточно информации.
Поля .Reference .ReferenceComplete
Функции IOSetAccessName IOSetItem.
Полная русскоязычная документация на версию 9.5 доступна здесь
http://www.InTouch.ru/support/pub/IT95UG.ru.pdf