Demus1
Active Forum Member / Активный участник форума
Участник № / Member № 3844
отправлено / posted
Есть 2 ПЛК, подключены по Ethernet. Необходимо сделать из них один рзервный, а другой основной. Критерий выхода из строя ПЛК - потеря связи с TM. Возможно ли это с ТМ6 и как это сделать? Мой вариант (пока только в задумке): читать атрибут аппаратная недостоверность для каждого канала, в случае установления этого признака у одного из каналов, программно перекидываю на каналы со второго ПЛК и посылаю ему команду перейти в рабочий режим.
Сообщения / Posts 92 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Задумка правильная. Только при этом надо обеспечить переадресацию остальных каналов связи, получающих информацию от ПЛК и передающих управляющие команды.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Demus1
Active Forum Member / Активный участник форума
Участник № / Member № 3844
отправлено / posted
Есть ли способы для переадресации каналов input и output, кроме следующего: Источники/приемники для ПЛК1 связываем с каналами для ПЛК1. Тоже делаем для ПЛК2. Делаем программу, где входами будут все каналы для 1 и 2 ПЛК. Выходов будет в 2 раза меньше. В программе также входным аргументом будет аппаратная недостоверность одного из каналов (любого, т.к. при выходе из строя линии связи или ПЛК у всех будет этот атрибут=1). Допустим у меня 4 канала у одного и 4 у другого. Я беру 2 FBD блока Пересылка четырех значений (MOVE4) и на один из входов управления состоянием подаю сигнал аппаратной недостоверности, а на другой тот же, но инверсный сигнал. Выходы каждого блока суммирую попарно и получаю уже каналы, которые буду использовать для управления и отображения. Также сигнал апп. недостоверности будет передаваться в каждый ПЛК для управления режимом работы. Оцените, пожалуйста будет ли работать такая схема и что еще нужно добавить?
Сообщения / Posts 92 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Такая программа работать не будет, т.к. если FB не пересчитывается, на его выходах сохраняются последние пересчитанные значения. При таком алгоритме надо на каждую пару одноименных входов от разных контроллеров ставить не MOVE и SUM, а SEL. Сейчас другого варианта нет. Но в следующем релизе будет возможность переключать, например, IP-адреса источников MODBUS TCP.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Demus1
Active Forum Member / Активный участник форума
Участник № / Member № 3844
отправлено / posted
quote:Отправитель / Originally posted by AdAstra Technical Support: Сейчас другого варианта нет. Но в следующем релизе будет возможность переключать, например, IP-адреса источников MODBUS TCP.
Реализовать это можно через канал канал Call.ChGroupReq, к которому привязана источник @e_TCP_ModBus.
С помощью такого канала Call можно проводить диагностику состояния соединения.
Также этот канал позволяет произвести переключение IP-адресов источников.
Для этого в атрибуте (90, I0) канала Call.ChGroupReq нужно задать адрес источников, которые требуется переключить на новый IP-адресс. В атрибуте 98, C5 задать номер протокола (например, для Modbus это 9). А в атрибут 97, C4 ввести 10. После этого произойдет переключение на новый IP-адрес. Если провести эту процедуру еще раз, то источники переключатся на первоначальный IP-адрес.
Для задания резервных IP-адресов, для источников в файле ip_modbus, после строки определяющей IP-адрес источника нужно добавить строку "TCP2=<адрес резервного источника>". Следует отметить, что ip-адрес резервного устройства в файл ip_modbus нужно вносить после сохранения проекта для МРВ. После нового сохранения для МРВ информация в файле ip_modbus будет затёрта.
Подробно данный механизм описан в разделе справочной системы «Управление и диагностика обмена по встроенным протоколам».
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Demus1
Active Forum Member / Активный участник форума
Участник № / Member № 3844