EnglishУкраїнськаmRussian
Login/New
Topic with no new replies

Оновременное чтение и запись точки диспечеризации


Author Message
Written on: 12. 12. 2015 [05:14]
Hayer
Владислав Вельтищев
Disabled
Topic creator
registered since: 12.12.2015
Posts: 8
Добрый день.
Я только начал осваивать Скаду, и столкнулся с такой проблемой:
У меня есть удаленный PLC, и я хочу считывать значение одного из его Регистров Хранения, и при необходимости изменять его из Скады.
Я пытаюсь реализовать это таким образом: Есть виджет, который находится в контейнере, который в свою очередь находится ещё в одном контейнере.
Соответственно, В первом контейнере добавляю атрибут с Конфигурациеей "Inut Link" и ещё один с "Output Link"
Далее, В подконтейнере прокидываю эти 2-е переменных:
K0_Rezhim = Rezhim;
RezhimW = K0_RezhimW;
Получается, что один атрибут для чтения, а второй для записи..
Далее в самом виджете этих 2-а атрибута привязываю к Кнопке (1- чтение состояния кнопки, а 2-й изменение значения по событию Нажатия)
И в самом верхнем контейнере привязываю эти атрибуты к одному и томуже параметру (1 - на чтение, а второй - на запись)
ТАк и не смог придумать способ, как использовать 1 атрибут с Ссылкой "Full Link"

Подскажите, плиз, в как решить этот вопрос нормальным, красивым способом используя 1 атрибут с Full Linkю

[This article was edited 1 times, at last 12.12.2015 at 13:31.]
Written on: 13. 12. 2015 [10:02]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"Hayer" wrote:

Подскажите, плиз, в как решить этот вопрос нормальным, красивым способом используя 1 атрибут с Full Linkю

Если нормально делать то всё связанное со взаимодействием с источником данных и обработкой таких данных делается на уровне логического уровня, а не сеанса интерфейса визуализации. Да и "Full Link" для задачи "прочитал, поменял, записал назад" прекрасно работает, если тот атрибут, с которым он связан, вообще запись поддерживает. Причём фактически все примеры (с записью) в "ДемоБД" именно такие!

Learn, learn and learn better than work, work and work.
Written on: 14. 12. 2015 [13:37]
Hayer
Владислав Вельтищев
Disabled
Topic creator
registered since: 12.12.2015
Posts: 8
Просмотрел обе ДемоБД, не получилось найти ни одного места, где бы один и тот-же элемент (кнопка. например) одновременно и отображала состояние\значение атрибута и при нажатии меняла значение этого-же атрибута..
Я понимаю, как это сделать, если привязывать кнопку напрямую к атрибуту. А вот то, как сделать то же самое, если кнопка находиться внутри контейнира, или несольких...
Вот задача, в самом простом варианте:
Есть атрибут в модуле МодБас - RI_b1:01:rw:R1
Есть кнопка, которая находится ну к примеру на странице, в контейнере, в подконтейнере и т.д.
Нужно чтобы кнопка была одного цвета при (R1 == 1), и другого при (R1 == 0). И при нажатии меняла бы состояние этого атрибута.

Роман, прошу прощения, если не понял ваше сообщение... Я только начал изучать.
Заранне, благодарю.
Written on: 15. 12. 2015 [14:51]
legend
Oleg N
registered since: 13.04.2012
Posts: 63
"Hayer" wrote:

Вот задача, в самом простом варианте:
Есть атрибут в модуле МодБас - RI_b1:01:rw:R1
Есть кнопка, которая находится ну к примеру на странице, в контейнере, в подконтейнере и т.д.
Нужно чтобы кнопка была одного цвета при (R1 == 1), и другого при (R1 == 0). И при нажатии меняла бы состояние этого атрибута.

Открываете демо проект AGLKS. Вкладка Виджеты-Тесты-Тесты "FormEl". Открываете Свойства-Обработка. Внимательно изучаете механизм обработки нажатия кнопки и изменения цвета.
Written on: 21. 01. 2016 [01:02]
Hayer
Владислав Вельтищев
Disabled
Topic creator
registered since: 12.12.2015
Posts: 8
Роман, немного по разбирался, и пришел к такому выводу: Кнопка, или поле, при помощи которого я хочу менять значение, должны находиться максимум на один уровень вглубь (вложенные в один виджет). А если попробовать засунуть кнопку в виджет, а его ещё в один виджет, То до этого параметра, который Full Link, дотянуться уже нельзя... Ну, или так, как сделал я через 2 разных параметра.( на чтение и на запись)
Я всё правильно понимаю?
Или может я всё-таки что-то упустил?

"roman" wrote:

"Hayer" wrote:

Подскажите, плиз, в как решить этот вопрос нормальным, красивым способом используя 1 атрибут с Full Linkю

Если нормально делать то всё связанное со взаимодействием с источником данных и обработкой таких данных делается на уровне логического уровня, а не сеанса интерфейса визуализации. Да и "Full Link" для задачи "прочитал, поменял, записал назад" прекрасно работает, если тот атрибут, с которым он связан, вообще запись поддерживает. Причём фактически все примеры (с записью) в "ДемоБД" именно такие!
Written on: 21. 01. 2016 [08:39]
Hayer
Владислав Вельтищев
Disabled
Topic creator
registered since: 12.12.2015
Posts: 8
Разобрался, как это делается... Жаль, что нельзя прокидывать Full Link сквозь виджеты.

Пока разбирался нашел новую проблему.
Открываю страничку на которой находится элемент FormEl с атрибутами
Elem. type === Line edit,
Viev ===Integer,
Cofiguration === 5:65:1::C:1
Confirm ===false
Присваиваю атрибуту value какое-нибудь значение (при помощи JavaLikeCalc)
Это значение не отображается в Line Edit до тех пор, пока я не попробую его поменять при помощи стрелочек рядом, или с клавиатуры.. (отображает значение 5 - (min))
Если добавить рядом элемент текст и Text1_arg0val = FormEl_value, то в текстовом поле отображает правильное значение. А в FormEl - всё так же 5.

Если установить атрибут Confirm === true, всё нормально отображается, сразу же при открытии страницы.

Я что-то не правильно делаю, или чего-то не понимаю, Или это глюк?



18264