Помощь в написании скрипта

Avatar
  • обновлен
Здравствуйте. нужен пример скрипта на паскале, скрипт по таймеру
1. читаем физ канал,
2. проверяем соответствие значения уставке, допустим он должен быть больше определенного значения 30
3. если значение меньше уставки, пишем в вирт канал флаг для контроля допустим 1, причем флаг не должен записаться в течении 5 циклов таймера скрипта, т.е. если течении 5 циклов опроса значение не соответствует уставке и на 6 цикл не сооответствует то должен писаться флаг, если в любом цикле норма, счетчик опроса в 0 и снова
может быть не буду понят но прошу помощи
Avatar
SIMP Tech (Сергей)
День добрый.

А если мы хотим среднее значение за час, то у нас будет не 60, а 3600?

Если Вы про ранее присланный пример, то да.
Avatar
Александр
А если мы хотим среднее значение за час, то у нас будет не 60, а 3600?
Avatar
Александр
Спасибо
Avatar
SIMP Tech (Сергей)
День добрый.

Необходимо сначала накопить выборку за минуту, потом посчитать среднее, затем сохранить в файл. К примеру цикл скрипта 1 секунда, мы суммируем входную переменную к примеру 60 раз, далее считаем среднее и сохраняем в файл.

Среднее за минуту, при условии цикла скрипта в одну секунду, можно примерно так:

var res: double; counter: word; begin if Initialization then begin counter := 1; res := 0; end; if counter <= 60 then begin res := res + ReadValue('Канал откуда берем данные'); inc(counter); end else begin res := (res / 60); WriteValue('Канал куда выводим результат', res); res := 0; counter := 1; end; end.
Avatar
Александр
Необходимо сначала накопить выборку за минуту, потом посчитать среднее, затем сохранить в файл. К примеру цикл скрипта 1 секунда, мы суммируем входную переменную к примеру 60 раз, далее считаем среднее и сохраняем в файл.
Можете помочь примером?
Avatar
SIMP Tech (Сергей)
Добрый вечер.

Доброе утро. Не подскажите как лучше написать скрипт для обеспечения работы задвижки на паропроводе?

Есть 2 кнопки "открыть", "закрыть" и 3 индикатора (зеленый мигающий - открытие задвижки,красный мигающий- закрытие задвижки, желтый - авария). Пока не имею на столе нужной аппаратуры в виде ADAM 6066 и SimpLight Ent, т.к. в сам нахожусь в отпуске (есть только бесплатная версия на ноутбуке).

Напишите к нам на почту simp@miniscada.com, обсудим подробности по задаче, и попробуем накидать пример.
Avatar
Александр
Доброе утро. Не подскажите как лучше написать скрипт для обеспечения работы задвижки на паропроводе?

Есть 2 кнопки "открыть", "закрыть" и 3 индикатора (зеленый мигающий - открытие задвижки,красный мигающий- закрытие задвижки, желтый - авария). Пока не имею на столе нужной аппаратуры в виде ADAM 6066 и SimpLight Ent, т.к. в сам нахожусь в отпуске (есть только бесплатная версия на ноутбуке).
Avatar
SIMP Tech (Сергей)
Добрый вечер.

Здравствуйте. нужен пример скрипта на паскале, скрипт по таймеру
1. читаем физ канал,
2. проверяем соответствие значения уставке, допустим он должен быть больше определенного значения 30
3. если значение меньше уставки, пишем в вирт канал флаг для контроля допустим 1, причем флаг не должен записаться в течении 5 циклов таймера скрипта, т.е. если течении 5 циклов опроса значение не соответствует уставке и на 6 цикл не сооответствует то должен писаться флаг, если в любом цикле норма, счетчик опроса в 0 и снова
может быть не буду понят но прошу помощи

примерно так,если я правильно Вас понял:

var counter: Integer; // счетчик циклов value: double; // считанная переменная const ustavka = 30; // уставка begin // первоначальная инициализация if Initialization then begin counter := 0; end; // читаем переменную value := ReadValue('Имя канала источника'); // сравниваем с уставой, если переменная меньше уставки то приращиваем счетчик циклов if Value < ustavka then inc(counter) else counter := 0; // если переменная меньше, то сбросим счетчик if counter > 5 then WriteValue('Виртуальный канал для вывода результата', 1) else WriteValue('Виртуальный канал для вывода результата', 0); end.