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

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

В цеха ставите SIMP PRO (т.к. только один тип ОПС сервера) на нужное кол-во точек.
На каждый цех своя лицензия.
На инфоцентр ставите SIMP SPACE.
Avatar
Saturnine
Здравствуйте! Скажите, как насчет совместной работы вашей scadа с Siemens S7-1200? Слышал, что к 200-й серии сименса вроде как бесплатный ОРС, а вот про 1200 что-то пока не нашел подобной информации
Avatar
Евгений Горло
Приветствую! Сейчас на производстве внедряем Simp Light. Тоже возникла необходимость в написании скрипта. По вашему вопросу могу сказать, записывать значение можно только виртуальный канал, а канал "COM13/MV110-2A(addr=14)/Output1/Read" получает данные с прибора и не может быть изменен в скрипте. Таким образом, ваш скрипт будет выглядеть так:
'Пример Basic Script
dim In1, Out1
' присвоить переменной In1, значение переменной канала
In1=ReadValue("COM13/MV110-2A(addr=14)/Output1/Read")
' присвоить переменной In2, значение переменной канала
'In2=ReadValue("Имя канала")
' If (In1 >= 30.00) Then WriteValue("Virtual channel 1", Out1)
' записать значение переменной Out1 в канал
Avatar
Евгений Горло
Еще вопросик возник! Со скриптом.
Пробую простой скрипт в виртуальном канале:
'Пример Basic Script
dim In1, Out1
' присвоить переменной In1, значение переменной канала
In1=ReadValue("COM13/MV110-2A(addr=14)/Output1/Read")
' присвоить переменной In2, значение переменной канала
'In2=ReadValue("Имя канала")
' If (In1 >= 30.00) Then WriteValue("COM13/MK110-8R(addr=16)/Output1/r.oe", Out1)
' записать значение переменной Out1 в канал
нажимаю компилировать! Все нормал! Жму выполнить! Все ок! Только в графе значения 0! А не прочитанные значения с модуля ввода! Мб я что нибудь неправильно в скрипте составил?
Если можно дайте пример скрипта виртуального канала просто прочитать с канала МВ значение!
Зарание блогадарен!


Приветствую! Сейчас на производстве внедряем Simp Light. Тоже возникла необходимость в написании скрипта. По вашему вопросу могу сказать, записывать значение можно только виртуальный канал, а канал "COM13/MV110-2A(addr=14)/Output1/Read" получает данные с прибора и не может быть изменен в скрипте. Таким образом, ваш скрипт будет выглядеть так:
'Пример Basic Script
dim In1, Out1
' присвоить переменной In1, значение переменной канала
In1=ReadValue("COM13/MV110-2A(addr=14)/Output1/Read")
' присвоить переменной In2, значение переменной канала
'In2=ReadValue("Имя канала")
' If (In1 >= 30.00) Then WriteValue("Virtual channel 1", Out1)
' записать значение переменной Out1 в канал
Avatar
SIMP Tech (Сергей)
Немного неточно, из под скрипта можно писать как в виртуальный, так и в физический канал. При работе в редакторе скриптов, не производится запуск опроса переменных. В режиме выполнения скрипта (в редакторе скриптов) есть возможность вручную изменять переменную на входе, тем самым следить за реакцией программы скрипта.
Avatar
Евгений Горло
Немного неточно, из под скрипта можно писать как в виртуальный, так и в физический канал. При работе в редакторе скриптов, не производится запуск опроса переменных. В режиме выполнения скрипта (в редакторе скриптов) есть возможность вручную изменять переменную на входе, тем самым следить за реакцией программы скрипта.

Как это сделать в скрипте, то есть как изменять значение физического канала?
Код вида не работает:

var1:=ReadValue('Физический канал 1'); var2:=var1+10; WriteValue('Физический канал 1', var2);В редакторе скриптов код выполняется, в Мониторе - не работает

Еще хотел бы задать вопрос по работе с циклами. Есть такой код:

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. В редакторе скриптов код выполняется и выводит результат правильно. В мониторе результата нет, статус каналов - нет данных. Если я напишу код без цикла, то есть десять таких строк, в которых будет меняться только имена каналов и номера переменных то все прекрасно работает:
d[1]:=ReadValue('Датчик 1_(1)'); r[1]:=d[1]+100 ; WriteValue('Стапель1 Датчик 1_(1)',r[1]+i);
Avatar
SIMP Tech (Сергей)
var1:=ReadValue('Физический канал 1'); var2:=var1+10; WriteValue('Физический канал 1', var2);
Теоретически должно работать, уточните какой ОРС сервер, какой канал (Read / Write).

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.
А вот такой "фокус" с каналами не пройдет, дело в том что перед компиляцией в скрипте все имена каналов заменяются на идентификаторы канала, т.е при инициализации скрипта производит поиск канала по имени в теле скрипта, и замена его на ID канала, по этой причине, канала к примеру 'Датчик 1_('+IntToStr(i)+')' для системы не существует.
Avatar
Евгений Горло
Теоретически должно работать, уточните какой ОРС сервер, какой канал (Read / Write).

Owen OPC сервер
Avatar
SIMP Tech (Сергей)
А с мнемосхемы к примеру в этот канал можете записать значение?