Ваши комментарии

Здравствуйте! Я столкнулся с тем что вариант описанный мной выше не работает на двух точках, на которых установлена программа!На виртуальных каналах возвращаются нули.Так получилось эти два рабочих места единственные, где нужен скрипт. Также пробовал проверять работу скрипта на девелоперской версии программы при подключении только одного прибора Термодат(4 канального) - все работало! На данный момент решил проблему своим способом - созданием массивов имен всех каналов и работой с ними в цикле. Так образом могу сделать вывод что программой понимается только имя канала целиком, а не в формате 'Датчик 1_('+IntToStr(i)+')'! Но так же налицо что этот случай частный, так как на девелоперской версии все работает. Что посоветуете

Версии программы везде одинаковые?
у меня обычный перебор не получается

evgeniy, пример скрипта который Вы приводили выше, должен работать:

var d,r:array[1..10] of real; i:integer; begin for i:=1 to 10 do begin d[i] := ReadValue('Датчик 1_('+IntToStr(i)+')'); r[i] := d[i]+100 ; WriteValue('Стапель1 Датчик 1_('+IntToStr(i)+')',r[i]+i); end; end.
Для теста попробуйте подключиться к серверу сторонним ОРС клиентом, и посмотреть свойства тега, какой тип доступа у него (read, write, read/write).
В редакторе мнемосхем есть такой компонент "Текст". При привязке его к определенному канала, у него появляются дополнительные свойства "Знач. выше уставки","Знач. норма" и т.д. Очень полезные свойства! Хотелось бы их видеть и у других компонентов, например "Цифровой индикатор", "Матричный индикатор".

Пока в планах переработка "Цифровой индикатор", "Матричный индикатор" не стоит, запланируем, возможно в скором времени вернемся к их доработке.

А также возможно ли сделать альтернативные компоненты всем выше перечисленным, чтобы в них можно было задать реакцию компонента не на уставку, а на некоторое заданное значение. С какой целью Вы спросите? Значение уставки задается однократно в редакторе каналов. Вот и возникает вопрос как быть, если на одном производственном участке используют разные значения уставки для разных деталей? Решением в этом случае может быть такой компонент.

Да, скорей всего такие компоненты появятся в ближайшее время, работы над их созданием ведутся.
Например: значения свойства какого-либо канала заполняю определенными значениями, отключаю этот канал, сохраняю настройки и закрываю редактор. Затем открываю редактор снова и включаю этот канал, при этом обнаруживаю, определенные ранее значения заменены значениями по умолчанию.Так и должно быть?

Да, сохраняются только свойства активных каналов, если Вы отключили канал и сохранили проект, то свойства отключенного канала сохранены не будут

Нельзя редактировать свойства "формула" и "видимость канала" у группы каналов (версия enterprise 4.3.0.197).

Ок, мы добавим это в лист доработок.
Free версия работает с реальным соединением? с реальным каналом? с контроллером?

Да, работает, ограничение только в количестве каналов.
Спасибо за Ваши предложения, мы рассмотрим их, о результатах сообщим.
Здравствуйте!Ответьте когда ждать релиза?
В течении одного - двух дней.
как вариант! создать массив..и поместить в него, в ручную, имена всех каналов..затем обрабатывать этот массив в цикле..единственный минус что нужно в ручную вводить имена 100 каналов

Отпишитесь на почту, проблему с перебором решили.
Евгений, я не вижу причины использовать скрипт для такой простой задачи, у каждого физического канала, есть свойство "формула", в которой Вы можете задать пересчёт получаемого значения.


Дело в том, что значение с прибора Termodat на opcserver приходит в виде целого числа, например, на приборе температура - 27,4 градуса, а на opcserver приходит 274. При применении к нему формулы val/10 на выходе получаем 27.
Решается это только в скрипте - преобразованием значения в переменную типа Real, а далее применение к нему формулы :


var t:real; ///действительное число

t:= ReadValue('COM1/dev2(addr=2)/var1');
WriteValue('Virtual channel 1', t/10);



Ок. Понятно. Тогда я бы сделал следующим образом, к примеру у меня есть 100 физических каналов, мне будет необходимо 100 виртуальных, причём только в одном из них есть скрипт, остальные 99 "без скриптов", в скрипте производим обработку всех каналов, а пишем посчитанное значение уже в те 99 виртуальных канала. Как я писал выше перечисление в цикле имен каналов не получиться сделать в текущей версии.

P.S. Задача с перебором в цикле решена, в ближайшем релизе будет.


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