Проблема заключается в следующем, в Simple-Scada 2 (demo), нужно вывести 8 аналоговых сигналов, которые будут идти напрямую, без контроллера, прям от модбас-модуля аналоговых сигналов, через OPC-сервер на Simple-Scada 2 (demo). Для этого мне нужно сделать функцию масштабирования аналогового сигнала. В принципе она есть в OPC-сервере, но мне хочется что бы все преобразования происходили в Simple-Scada, мне кажется что таким образом работа с системой мониторинга будет более оперативнее. Для чего нужна функция масштабирования аналогового сигнала, допустим известно что от модуля аналоговых сигналов, информация приходит в диапазоне значений от 0 до 27648, где 0 это 4мА(0%), а 27648 это 20мА(100%), мне нужно значения модуля преобразовать в значения физической величины, допустим температуры, где 0 это будет 5°С, а 27648 это будет 50°С, для этого и применяется функция масштабирования. В Simple-Scada 2 (demo) эту функцию реализовать в принципе легко с помощью скриптов, но от шкалы многое что зависит, это и отображение цифрового значения и отображение трендов, а хотелось бы, что б поменял границу физической величины, сразу автоматом поменялось отображение числа и графика, то есть мне нужно границу физической величины привязать к шкале. Ведь может получиться так что я настрою шкалу +5..+50, а в дальнейшем нужно будет -50..+150, то все что будет выходить за диапазон +5..+50, в таком случае, отображаться не будет.
Вообщем вопрос такой можно в Simple-Scada 2 (demo), с помощью скриптов изменять минимум и максимум шкалы?
Данные функции масштабирования я оформил в виде таблички и написал скрипт для этой таблички, всё работает, но из-за шкалы система получается несовершенной.
//Скрипт "D1_T_OnDataChange":
//D1_T - значение периферии;
//sD1_T - значение тока;
//fD1_T - значение физической величины;
//fD1_T_MAX - максимум физической величины;
//fD1_T_MIN - минимум физической величины;
begin
sD1_T.Value := (D1_T.Value / 27648) * 16.0 + 4.0;
fD1_T.Value := (D1_T.Value / 27648) * (fD1_T_MAX.Value - fD1_T_MIN.Value) + fD1_T_MIN.Value;
end.