Тема / Topic: Изменение значения канала в другом узле
DreamWeaver
Forum Haunter / Завсегдатай форума
Участник № / Member № 1485
отправлено / posted
Есть узел RTM, на котором есть экран "БНА". Есть узел MicroRTM, на котором есть дискретный канал типа INPUT. Каждый бит этого канала определяет в каком режиме работает клапан: ручном или автоматическом. С операторской станции с экрана БНА нужно менять значения в дискретном канале типа INPUT. Причем нужно это делать побитно. То есть при нажатии на кнопку на экране БНА нужно, чтобы в узле MiocroRTM в дискретном канале типа INPUT, определенный бит установился в 1. У меня получается это сделать только посылая значение на вход дискретного канала (при помощи аргумента типа Output). Соответственно подаю значения 1,2,4,8,16. Но если посылать значение непосредственно в "бит1", то значение дискретного канала не изменяется. Хотя на одном узле все работает. Напишите, как все должно работать. Я имею ввиду, какого типа должен быть дискретный канал, какого типа должен быть аргумент экрана через который передаются данные? Я вроде перебрал все варианты, но изменить с экрана одного узла значение дискретного канала на другом узле при помощи непосредственной записи данных в атрибуты "бит1", "бит2".. так и не получилось.
Сообщения / Posts 150 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Передавать между каналами так или иначе лучше сразу значение канала, а не настраивать связь на уровне каждого бита. Так каналов меньше понадобиться. А в эране уже каждый отдельный аргумент можно привязать к собственному биту передающего канала. А связь на уровне двух каналов когда канал типа Output посылает значение в атрибут канала (не важно - атрибут бита это или какой-либо другой) должна работать - может что с настройками?
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
DreamWeaver
Forum Haunter / Завсегдатай форума
Участник № / Member № 1485
отправлено / posted
Если в узле RTM создать канал типа OUTPUT и связать его с каналом типа INPUT (с любым его атрибутом), который находится в узле MicroRTM, то все работает нормально. Я имел ввиду ситуацию когда в узле RTM вообще нет канала типа OUTPUT. В этом узле есть экран, на котором есть кнопка. Для этой кнопки определяем действие по нажатию "Послать значение", и в качестве канала, куда посылается значение выбираем канал типа INPUT в узле MicroRTM. Так вот, если в качетсве этого канала INPUT выступает канал типа FLOAT, и если заносить значние (по нажатию на кнопку, находящейся на экране в узле RTM) в атрибут "Входное значение", то данные передаются. Если в качестве канала INPUT выступает канал дискретный, то посылка значения (с экрана в узле RTM) непосредственно в атрибут "бит1" не приносит никакого эффекта. В то же время, если заносить значение во "входное значение", то данные передаются. Если будете делать тестовый проект, показывающий как передаются данные непосредственно с экрана на одном узле в атрибут "бит1" канала, находящегося в другом узле, вышлете пожалуйста на dreamweaver@petron.ru. Я испробовал несколько вариантов: экспериментировал с типами (вход/выход) аргументов, каналов, но данные передать так и не получилось.
Сообщения / Posts 150 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Напрямую возможно только чтение атрибутов "Бит", управление необходимо выполнять по функции НЕ-ИЛИ (XOR) на Вход этого удаленного канала по соответсвующей маске, которая и будет определять бит.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |