0

Чтение из переменного канала, как?

Виктор 10 лет назад в Редактор каналов обновлен 10 лет назад 0
Задал числовые каналы, пытаюсь сделать просмотр канала выбранного на мнемосхеме.
Var
sushilo: string; trend: Byte;
Begin
sushilo:=ReadValue('выбор'); //считываю заданный номер из виртуального канала
trend:=ReadValue('sushilo'); //пытаюсь считать значение из реального канала
WriteValue('тренд',trend); //запись в виртуальный канал
end.

Не работает, что я делаю не так? sushilo: string; trend: Byte; при таких переменных панель в сеточку(нет данных),sushilo, trend: Byte; при таких данных всегда 0.
День добрый.

Задал числовые каналы, пытаюсь сделать просмотр канала выбранного на мнемосхеме. var sushilo: string; trend: Byte; begin sushilo := ReadValue('выбор'); //считываю заданный номер из виртуального канала trend := ReadValue('sushilo'); //пытаюсь считать значение из реального канала WriteValue('тренд', trend); //запись в виртуальный канал end.
Если я правильно понял переменная "sushilo" должна содержать имя канала из которого Вы читаете значение "trend := ReadValue('sushilo')" Правильно я понял?
раз "sushilo" переменная то правильней будет вот так trend := ReadValue(sushilo) т.е. sushilo без кавычек надо указать, раз это переменная.
И ещё каналы запоминают своё состояние и их нельзя изменить пока не переименуешь. Я поставил тип переменной Boolean, поигрался с каналом. Поставил тип переменной Word но он продолжал отображать данные только 0,1.
Спасибо, чтение из канала заработало.
И ещё каналы запоминают своё состояние и их нельзя изменить пока не переименуешь. Я поставил тип переменной Boolean, поигрался с каналом. Поставил тип переменной Word но он продолжал отображать данные только 0,1.

Отображать на объекте мнемосхемы? Если да, то попробуйте после изменений в канале, перепривязать канал к объекту.
А в чем разница между этими функциями? WriteVirtualChannel('',,,) WriteValue('',)

WriteVirtualChannel('',,,) Если можно примеры по этой функции.
А в чем разница между этими функциями? WriteVirtualChannel('',,,) WriteValue('',)

WriteVirtualChannel(const AName: String; AValue: Variant; ATimeStamp: TDateTime; AQuality: Word)

позволяет установить у виртуального канала не только значение переменной, но и временную метку и качество переменной. Физическому каналу мы можем изменить только значение переменной.
ATimeStamp: TDateTime А время в каком виде задается?
ATimeStamp: TDateTime А время в каком виде задается?
www.delphibasics.ru/TDateTime.php
Как задать цифры чтобы канал понимал что это переменная string ?

Ставлю на мнемосхему "Строковый задатчик" если ввожу буквы всё работает, ввожу цифры на выходе 0.
Как задать цифры чтобы канал понимал что это переменная string ?

Ставлю на мнемосхему "Строковый задатчик" если ввожу буквы всё работает, ввожу цифры на выходе 0.

Уточните задачу. Какого типа канал в который пишите - физический/виртуальный. Тип канала.
Все каналы виртуальные: Выбор, test - string; Тренд , vvv, nnn, 52, 55 - Double

В канале "Выбор" скрипт:

Var
sushilo: string; trend: Double;
Begin
sushilo:=ReadValue('Выбор');
WriteValue('test',sushilo);
trend:=ReadValue(sushilo);
WriteValue('Тренд',trend);
end.

На мнемосхеме: Управление"Строковый задатчик" привязан к каналу "Выбор", четыре Управление"Слайдер" привязаны к "vvv", "nnn", "52", "55", два Индикатор"Текст" к "Тренд", "test".

Запускаю "Монитор" при записи в "Строковый задатчик" vvv или nnn данные передаются в "Тренд", если набрать 52 или 55 то "Тренд"=0. Канал "test" отображает все нормально.
День добрый.

var sushilo: string; trend: Double; begin sushilo := ReadValue('Выбор'); // в канал "test" значение переменной выводиться потому что для канала это строка. WriteValue('test', sushilo); // здесь система пробует найти канал с именем указанным в переменной "sushilo" // и в случае с именем состоящим из одних цифр, у неё это не получается. // почему это происходит мы будем разбираться. А решение Вашей задачи - дать каналам более // информативные имена. trend := ReadValue(sushilo); WriteValue('Тренд', trend); end.

Сервис поддержки клиентов работает на платформе UserEcho