Здравствуйте.
В OPC-сервере имеется переменная U, кот. представляет собой напряжение, снятое с АЦП и имеющее диапазон значений 0 (0.00В) до 600 (6.00В).
Конструкция case..of применяется только для целых чисел. Для вещественных придется писать обычные сравнения по типу "if aVar.AsFloat > 4.56 then". Но в Вашем случае, как мы поняли. переменная adc0 это
целочисленная переменная со сдвигом запятой на 2 знака влево. Если это так, то вместо "adc0.AsInt" лучше использовать "adc0.OriginalAsInt". OriginalAsInt возвращает оригинальное значение переменой, без смещения запятой. И тогда можно использовать конструкцию case..of, вот так:
begin
Text1.Text := adc0.AsStr;
case adc0.OriginalAsInt of
0..429: Text1.FontColor := clRed; // Красный
430..519: Text1.FontColor := clBlack; // Черный
520..600: Text1.FontColor := clRed; // Красный
end;
end.
А т.к. таких переменных предполагается около 100, то чтобы не писать 100 по сути одинаковых скриптов, лучше всего сделать один универсальный скрипт. Для этого нужно в Редакторе у объекта "Text1" выбрать свойство "Переменная" - "adc0". Затем создать универсальный скрипт:
var
aText: TM_Text;
begin
{ прерываем процедуру, если скрипт вызван не объектом Текст }
if not (Sender is TM_Text) then Exit;
aText := Sender as TM_Text;
aText.Text := aText.AsStr;
case aText.Variable.OriginalAsInt of
0..429: aText.FontColor := clRed; // Красный
430..519: aText.FontColor := clBlack; // Черный
520..600: aText.FontColor := clRed; // Красный
end;
end.
Такой скрипт можно поставить любому объекту типа Текст на событие OnDataChange и он будет работать. При этом у каждого объекта Текст можно выбрать свою переменную и скрипт будет работать именно с этой переменной. Не придется писать 100 подобных скриптов. Подробнее про универсальные скрипты можно
прочесть здесь.
Фон страницы нужен Белый. Как лучше это реализовать?
Здесь можно посоветовать только поставить в качестве фона объект Фигура (Shape), растянуть его на нужную зону и выбрать цвет.
Можно ли все эти значения экспортировать в таблицу EXCEL или в БД MySQL? Или экспорт работает только с Трендами?
Сейчас Simple-Scada 2 может выполнять любые запросы к БД и Вы можете сделать что угодно используя все возможность языка SQL. Для выполнения пользовательских SQL команд используйте процедуру
RunSQL. Можно создать отдельную таблицу и добавлять в неё любые данные. Здесь главное знать как правильно написать SQL запросы. Хороший пример есть в Демо-проекте (страница Скрипты - Работа с БД). там есть и создание таблицы, запись и чтение из этой таблицы. Можно также вместо БД выводить данные
в текстовые, или двоичные файлы. Экспортировать в Excel сейчас можно только данные переменных, которые пишутся в тренды.
Нигде не мог найти, какие арифметические и логические функции можно использовать в скриптах.
В скриптах Simple-Scada 2 используется Object Pascal компилятор. Обо всех командах и операторах присущих языкам Pascal/Delphi можно прочесть в интернете на сайтах связанных с языками Pascal/Delphi. Например, описание
типов данных и
ключевые слова (к которым и относятся такие слова как or или and и др.).
Почему имя переменной при обьявлении в скриптах начинается с буквы "a" - aValue?
Это распространенный в программировании способ именования локальных переменных, или параметров методов. Буква "a" добавляется для того, чтобы имя стало уникальным, это позволяет убрать возможную путаницу в именах переменных/объектов и совпадение имён.