Вопросы по скриптам в Simple-Scada 2

Автор Simple-Scada, 29 января 2016, 15:19:20

GEW

#525
Добрый день! В проекте необходимо работать с базой данных и выводить значения в таблицу в формате столбца. При этом каждый раз количество строк от запроса к запросу в столбце разное. Возникает проблема когда скролл улетает вниз (вручную пролистывается), а на следующем запросе выдаётся, например 3 строки и их из-за скрола внизу не видно. Существует ли возможность скриптом вернуть скролл на первую строку (MiveFirst)?
2. При работе с таблицей приходится использовать переменные. Существует  ли возможность работы с ячейками из скриптов без подвязки переменой?

Simple-Scada

#526
Здравствуйте.

ЦитироватьВозникает проблема когда скролл улетает вниз (вручную пролистывается), а на следующем запросе выдаётся, например 3 строки и их из-за скрола внизу не видно. Существует ли возможность скриптом вернуть скролл на первую строку (MiveFirst)?
Т.е. обновляются данные в таблице через метод Table.RunSQL(...), верно? Скролл должен автоматически перемещаться в самую верхнюю позицию после выполнения метода Table.RunSQL. У Вас этого не происходит?

ЦитироватьПри работе с таблицей приходится использовать переменные. Существует  ли возможность работы с ячейками из скриптов без подвязки переменой?
Сейчас менять значение в ячейках можно только через переменные. Считывать текст из ячейки можно следующим образом:

Код: pascal
var
  aText: UTF8String;
begin
  aText := Table1.GetCell(0, 0).Text;  // получить текст из первой ячейки первого столбца
end.

Golowa70

Подскажите пожалуйста. Как свернуть окно клиента в полноэкранном режиме. Кнопка Esc закрывает программу, а вот как свернуть не найду.

Simple-Scada

#528
Здравствуйте.

Используйте комбинацию клавиш "Ctrl + M". Или создайте в проекте кнопку с таким скриптом:
Код: pascal
begin
  MinimizeApplicationClient(GetClientName);
end.
Имя клиента и комбинацию для завершения работы клиента можно изменить через приложение Options.

PonomarevPI

Добрый день!
 Прошу Вас помочь в написании простого скрипта. Имеется связка ПЛК(сервер)-GPRS модем- на объекте ,GPRS модем-Lectus-SimpleScada2 в диспетчерской. Задача - отследить разрыв связи на стороне ПЛК. То есть, необходимо чтобы СКАДА записывала в ПЛК периодически меняющуюся переменную типа boolean. На стороне ПЛК организовать проверку не составляет проблем, а вот со скриптами пока не разберусь... Спасибо!!

levchenkoa

#530
Цитата: PonomarevPI от 27 ноября 2017, 22:10:12Добрый день!
 Прошу Вас помочь в написании простого скрипта. Имеется связка ПЛК(сервер)-GPRS модем- на объекте ,GPRS модем-Lectus-SimpleScada2 в диспетчерской. Задача - отследить разрыв связи на стороне ПЛК. То есть, необходимо чтобы СКАДА записывала в ПЛК периодически меняющуюся переменную типа boolean. На стороне ПЛК организовать проверку не составляет проблем, а вот со скриптами пока не разберусь... Спасибо!!
Cкрипт с условием "Прошла секунда":
Код: pascal
begin
  Tag.Value := InverseBit(Tag.Value, 0);
end.

deldemo

#531
Здравствуйте!
Прошу помощи. Ребята подскажите как указать в универсальном скрипте координаты  открытия окна. Хочется что бы окно появлялось рядом с кликобельным объектом.
Я так понял что координаты окна только для чтения?.

Возможно ли открыть этот параметр для записи

Simple-Scada

Здравствуйте. В будущих версиях добавим возможность изменения координат окна.

JonyBest

 Доброго дня! Тема для меня новая, но очень интересно...
Пытаюсь получить значения с термостата. В справочнике написано
Код: pascal
Room measure temperature(high byte), data range :0-199 / Room set temperature (low byte), data range :0-199
. В ОРС сервере значение получаю как int16
 Как с помощью скриптов получить значения температур?

Simple-Scada

Здравствуйте.

Импортируйте переменную с OPC-сервера в проект и затем используйте. Например разместите в проекте Поле и свяжите его с переменной. После запуска проекта Вы увидите в поле значение переменной. Также Вы сможете обращаться к переменной через скрипты, например:
Код: pascal
begin
  MyVariable.Value := 10; // записываем значение 10 в переменную MyVariable
end.

JonyBest

Цитата: Simple-Scada от 01 декабря 2017, 12:18:26Здравствуйте.

Импортируйте переменную с OPC-сервера в проект и затем используйте. Например разместите в проекте Поле и свяжите его с переменной. После запуска проекта Вы увидите в поле значение переменной. Также Вы сможете обращаться к переменной через скрипты, например:
Код: pascal
begin
  MyVariable.Value := 10; // записываем значение 10 в переменную MyVariable
end.
Это Вы мне написали? Если да то спасибо, но моя проблема лежит в другой плоскости. Основы я знаю, есть рабочие проекты. Я не пойму как с помощью скриптов получить high byte и low byte из переменной с OPC-сервера...
Мне бы один примерчик, дальше я сам...

TeNQ

Код: pascal
Room_measure_temperature.Value := Temperature.AsInt shr 8;
  Room_set_temperature.Value     := Temperature.AsInt and $FF;

Simple-Scada

#537
JonyBest, неправильно поняли Вас. TeNQ описал верное решение. Также подобный вопрос подробно обсуждался на форуме в этой теме.

JonyBest

Спасибо!
температура на термометре = 22,5
строкой
Код: pascal
aText.Text := FloatToStr((aText.AsInt shr 8), 1); 
получаю значение =45.0
где ошибка?

Simple-Scada

#539
А какое значение имеет переменная в скаде без преобразований?