Несколько вопросов по SIMP Light

Avatar
  • обновлен
Скачал демо! Сразу же возникли вопросы!
1.Наличие в полной версии WEB и Sql сервера?
2.Есть удаленный клиент?
3.Есть ли ФБ регуляторов типа ТРМ?
На первый взгляд понравилась простота, по сравнению с комплексом Master-Scada.
Avatar
Евгений Горло
А с мнемосхемы к примеру в этот канал можете записать значение?

по-моему я чего-то не понимаю. мнемосхема же просто должна выводить значение, тоже что и на Мониторе.
Avatar
SIMP Tech (Сергей)
по-моему я чего-то не понимаю. мнемосхема же просто должна выводить значение, тоже что и на Мониторе

На мнемосхему можно поставить компонент, для записи значения в канал.
Avatar
Евгений Горло
Объясню суть задачи.Работаем с приборами Termodat. Значение температуры с прибора в программу приходит целым числом(тип Word), на приборе значение отображается в виде числа с плавающей точкой(вещественное). Нам нужно, чтобы значение в программе было тоже с плавающей точкой. В принципе задача решается с использованием виртуальных каналов. То есть скрипт в виртуальном канале преобразует значение с прибора в вещественное и выводит его в этом же виртуальном канале. Код примерно такой:

var d:real; d:=ReadValue('COM1/dev2(addr=2)/var1'); WriteValue('Virtual channel 1',d/10);
При этом физический канал "COM1/dev2(addr=2)/var1" делаем невидимым. При запуске Монитора значение в виртуальном канале отображается верно, но физический канал мелькает в списке каналов находящих вне зоны уставки. Вопрос в том, как его убрать с этого списка? И вообщем корректно выводить значения с прибора в виртуальный канал? Или может писать измененное значение в физический канал (если выговорите, что это возможно)? Если да,то возникает вопрос Как?
Следующее, что нужно сделать это повторить манипуляцию со значение с прибора на 108 каналов. То есть создать еще 107 виртуальных каналов, и добавить 107 строчек кода, приведенного выше, в скрипт. Пробовал обработать все это дело в цикле(примерный код цикла я приводил в предыдущих сообщениях), как видите, не получается.Хотя если если бы я написал этот код на Delphi или на другом языке, уверен, что он интерпретировался бы верно.Не знаю, может быть, есть другой путь!?
Евгений Горло
ОАО ААК "ПРОГРЕСС"
Avatar
Евгений Горло
по-моему я чего-то не понимаю. мнемосхема же просто должна выводить значение, тоже что и на Мониторе

На мнемосхему можно поставить компонент, для записи значения в канал.

этот компонент называется "цифровой задатчик"?
Avatar
SIMP Tech (Сергей)
Объясню суть задачи.Работаем с приборами Termodat. Значение температуры с прибора в программу приходит целым числом(тип Word), на приборе значение отображается в виде числа с плавающей точкой(вещественное). Нам нужно, чтобы значение в программе было тоже с плавающей точкой. В принципе задача решается с использованием виртуальных каналов. То есть скрипт в виртуальном канале преобразует значение с прибора в вещественное и выводит его в этом же виртуальном канале.

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


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


Дело в том, что значение с прибора 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. Задача с перебором в цикле решена, в ближайшем релизе будет.
Avatar
evgeniy
Евгений, я не вижу причины использовать скрипт для такой простой задачи, у каждого физического канала, есть свойство "формула", в которой Вы можете задать пересчёт получаемого значения.


Дело в том, что значение с прибора 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 виртуальных канала. Как я писал выше перечисление в цикле имен каналов не получиться сделать(в ближайшее время мы постараемся решить эту задачу).

как вариант! создать массив..и поместить в него, в ручную, имена всех каналов..затем обрабатывать этот массив в цикле..единственный минус что нужно в ручную вводить имена 100 каналов
Avatar
SIMP Tech (Сергей)
как вариант! создать массив..и поместить в него, в ручную, имена всех каналов..затем обрабатывать этот массив в цикле..единственный минус что нужно в ручную вводить имена 100 каналов

Отпишитесь на почту, проблему с перебором решили.
Avatar
Евгений Горло
Здравствуйте!Ответьте когда ждать релиза?