if "нет ответа от внешнего мира" or "ошибка обмена с внешним миром" then
делаете то, что Вам нужно...
end_if
if "нет ответа от внешнего мира" or "ошибка обмена с внешним миром" then
делаете то, что Вам нужно...
end_if
Николаев Андрей, краткость - сестра таланта
это я понимаю) по видимому это делать через конфигуратор тревог.
Зашёл я туда, задал 2 класса тревог - обрыв связи и ошибка связи, задал действие при возникновении тревог (присвоить соответствующим переменным значение 1) но вот как контроллер то узнает что при обрыве связи надо среагировать по этим двум классам тревог, причём при обрыве на обрыв а при ошибке на ошибку
Чтобы понять рекурсию нужно понять рекурсию
у вас же контроллер будет слэйвом?
Получается наверное да. Он конечно будет управлять всем в автомате, но в то же время будет всю информацию передавать в MasterSCADA и если что диспетчер сможет перейти в ручной режим и включать/выключать всё из скады. Так что наверное слейв. ведь 2 мастера не может быть вроде
Чтобы понять рекурсию нужно понять рекурсию
да, я имел ввиду по отношению к скаде. если организовывать связь со скадой через конфигурацию плк добавляя модуль модбас слейв, то мониторить связь штатными средствами кажется нельзя. надо со скады с некоторой периодичностью перезаписывать один регистр меняющимися значениями. если значения этого регистра в плк не меняются, то ошибка связи.
у меня получается связь со скадой через codesys opc.
не могли бы вы кинуть в меня ссылкой в которой описано как это всё делать с записью регистра, или рассказать подробно? А то я не догоняю что к чему, как его и куда записывать
Чтобы понять рекурсию нужно понять рекурсию
ага... примерно понятно... теперь бы докопаться как это реализовать ничего, щас чё нить придумаю)
Чтобы понять рекурсию нужно понять рекурсию
так... сделал я переодическую запись из скады в переменную SVYAZ_ERROR значений 1 и 2, но вот не могу добиться чтоб при разрыве связи эта переменная стоновилась 0. При разрыве связи со скадой остаётся записаным последнее поступившее значение... Получается условие
IF SVYAZ_ERROR=0 THEN AUTO:=TRUE;
END_IF;
не работает((( если принудительно в начале каждого прогона программы ставить это значение в 0 то она будет всегда сбрасывать в автоматический режим. Что-то я уже незнаю как сделать(( Кто подскажет как при разрыве установить переменную в 0? Тип у неё INT
Чтобы понять рекурсию нужно понять рекурсию
так... сделал я переодическую запись из скады в переменную SVYAZ_ERROR значений 1 и 2, но вот не могу добиться чтоб при разрыве связи эта переменная стоновилась 0. При разрыве связи со скадой остаётся записаным последнее поступившее значение... Получается условие
IF SVYAZ_ERROR=0 THEN AUTO:=TRUE;
END_IF;
не работает(((
поидее надо сделать
if "svyaz_error не меняется в течение 20 секунд" then auto:=true
end_if
только вот как это записать?
PS: я случайно: хотел отредактировать а получилось почему-то новое
Чтобы понять рекурсию нужно понять рекурсию