Просмотр полной версии : Поведение системы после перезагрузки ПК
Коллеги, доброе утро!
Наша SCADA передает уставки и сигналы управления по сети Ethernet на программируемое реле ОВЕН ПР103. Если по какой-то причине произошла перезагрузка ПК, то при новом запуске SCADA-проекта он выдает на ПР103 нули по всем уставкам. Подскажите, пожалуйста, как можно сделать так, чтобы запоминались значения регистров, передаваемых на ПР103, и при новом запуске проекта на этот ПР103 выдавались именно запомненные значения, а не нулевые?
Коллеги, доброе утро!
Наша SCADA передает уставки и сигналы управления по сети Ethernet на программируемое реле ОВЕН ПР103. Если по какой-то причине произошла перезагрузка ПК, то при новом запуске SCADA-проекта он выдает на ПР103 нули по всем уставкам. Подскажите, пожалуйста, как можно сделать так, чтобы запоминались значения регистров, передаваемых на ПР103, и при новом запуске проекта на этот ПР103 выдавались именно запомненные значения, а не нулевые?
У переменных, которые формируют значения уставок установить свойство "Сохранять = Да", также поставить периодиеческий тип записи у протокола.
А вот еще вопрос. Мы используем бесплатную версию на 32 тэга. Когда запускаем проект из системы разработки, то можем подключаться к проекту с других устройств (например, смартфона) просто вводя в адресную строку браузера адрес вида 192.168.0.23:8043 и все нормально работает. Но если мы запускаем проект через среду исполнения, то с удаленного устройства подключиться не можем совсем. На самом же компьютере при запуске с адресом 127.0.0.1:8043 все работает, а при адресе 192.168.0.23:8043 только открывается окно идентификации пользователя, мы вводим в него пароль — и появляется внизу экрана на красном фоне надпись «Ошибка подключения».
Подскажите, пожалуйста, в чем дело?
А вот еще вопрос. Мы используем бесплатную версию на 32 тэга. Когда запускаем проект из системы разработки, то можем подключаться к проекту с других устройств (например, смартфона) просто вводя в адресную строку браузера адрес вида 192.168.0.23:8043 и все нормально работает. Но если мы запускаем проект через среду исполнения, то с удаленного устройства подключиться не можем совсем. На самом же компьютере при запуске с адресом 127.0.0.1:8043 все работает, а при адресе 192.168.0.23:8043 только открывается окно идентификации пользователя, мы вводим в него пароль — и появляется внизу экрана на красном фоне надпись «Ошибка подключения».
Подскажите, пожалуйста, в чем дело?
Хз, у меня на демо РТ32 с вашим проектом все работает
61623
P.s. А, стоп, я же на локалхост заходил. RT32 не поддерживает удаленных клиентов, насколько я знаю.
У переменных, которые формируют значения уставок установить свойство "Сохранять = Да", также поставить периодиеческий тип записи у протокола.
Попробовал. Так не работает.
Хз, у меня на демо РТ32 с вашим проектом все работает
61623
P.s. А, стоп, я же на локалхост заходил. RT32 не поддерживает удаленных клиентов, насколько я знаю.
Да, это ограничение бесплатной версии.
Попробовал. Так не работает.
Здесь должно работать. У меня такой функционал реализован в проекте.
Здесь должно работать. У меня такой функционал реализован в проекте.
Это если данные на тэг передаются непосредственно с контрола. Если эти данные передаются с контрола на тэг через какю-либо программу, то кроме того что Вы написали, нужно сделать следующее (по данным наконец-то ответившей техподдержки MS4D):
Заголовок ST:
VAR_INPUT RETAIN
SourceTag: LREAL := 0;
END_VAR
VAR_OUTPUT
EnO: BOOL := True;
TargetTag: SYSTEM_LREAL_PARAM := (Value := 0, SourceTime := DT#0001-01-01-00:00, StatusCode := 16#80320000);
END_VAR
VAR
Initialised: BOOL := False;
LastTagValue: LREAL := 0;
END_VAR
Код:
IF NOT Initialised THEN
LastTagValue := SourceTag;
Initialised := True;
END_IF;
IF LastTagValue <> SourceTag THEN
TargetTag.StatusCode := 0;
END_IF;
TargetTag.Value := SourceTag;
LastTagValue := SourceTag;
Это если данные на тэг передаются непосредственно с контрола. Если эти данные передаются с контрола на тэг через какю-либо программу, то кроме того что Вы написали, нужно сделать следующее (по данным наконец-то ответившей техподдержки MS4D):
Заголовок ST:
VAR_INPUT RETAIN
SourceTag: LREAL := 0;
END_VAR
VAR_OUTPUT
EnO: BOOL := True;
TargetTag: SYSTEM_LREAL_PARAM := (Value := 0, SourceTime := DT#0001-01-01-00:00, StatusCode := 16#80320000);
END_VAR
VAR
Initialised: BOOL := False;
LastTagValue: LREAL := 0;
END_VAR
Код:
IF NOT Initialised THEN
LastTagValue := SourceTag;
Initialised := True;
END_IF;
IF LastTagValue <> SourceTag THEN
TargetTag.StatusCode := 0;
END_IF;
TargetTag.Value := SourceTag;
LastTagValue := SourceTag;
Так я это вам и написал в самом начале, что переменные, которые формируют значение уставок, нужно сделать сохраняемыми (т.е. RETAIN)
P.S. Но вообще, целесообразнее это делать в самом ПЛК (или ПР), так будет логически правильно, чтобы процесс управления не зависел от скады
Так я это вам и написал в самом начале, что переменные, которые формируют значение уставок, нужно сделать сохраняемыми (т.е. RETAIN)
P.S. Но вообще, целесообразнее это делать в самом ПЛК (или ПР), так будет логически правильно, чтобы процесс управления не зависел от скады
То что RETAIN - это понятно. Но, как выяснилось, еще и вышеуказанный скрипт тоже нужен. А с ПЛК - согласен, но нам такая система досталась, а денег на переписывание программы ПЛК нам давать не хотят.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot