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

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

Не работает, что я делаю не так? sushilo: string; trend: Byte; при таких переменных панель в сеточку(нет данных),sushilo, trend: Byte; при таких данных всегда 0.
Avatar
Виктор
Спасибо.
Avatar
Виктор
Как задать цифры чтобы канал понимал что это переменная string ?

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

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

Уточните задачу. Какого типа канал в который пишите - физический/виртуальный. Тип канала.
Avatar
Виктор
Все каналы виртуальные: Выбор, 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" отображает все нормально.
Avatar
SIMP Tech (Сергей)
День добрый.

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