Пример скрипта

Avatar
  • обновлен
Добрый день!
Будьте добры, напишите пример скрипта Pascal который бы в определенное время (например в 9-00 и 21-00 того же дня) брал значение определенного канала из архива базы данных и записывал вирт. канал, функция GetHistory как я понимаю
Спасибо!
Avatar
Виталий
Описание того что нужно:
У нас 4-е линии производства обоев, на каждой линии установлен Счетчик импульсов СИ8, который считает метраж используемой бумаги, персонал линий (печатники ) работают сменно с 9-00 по 21-00 и с 21-00 по 9-00, нужно вывести значения одно с 9-00 по 21-00 сколько истратилось бумаги, второе - 21-00 по 9-00 сколько истратилось бумаги. Представляю себе это так - запоминаем значение тега "показания счетчика" в 9-00 текущего времени далее запоминаем значение в 21-00, производим вычитание , получившийся результат записываем в вирт. канал (записанное значение хранится(остается неизменным ) до 21-00 следующего дня). Тоже самое с 21-00 по 9-00 только вычитание и запись (в другой вирт. канал) производится в 9-00 текущего времени.

Ответ:
Можно попытаться решить минуя архив, а сохраняя промежуточное значение в глобальной переменной….

Пример:

var
Hour, Min, Sec, Milli, Res : Word;
value, value1: double;
begin

DecodeTime(Now, Hour, Min, Sec, Milli);

// самое простое что можно сделать
Res := Hour + (Min * 100);

case res of
9: begin
value := ReadValue('Канал счетчика');
SetGlobalVar('VAL9', value, true);
end;
21: begin
value := ReadValue('Канал счетчика');
value1 := GetGlobalVar('VAL9');
WriteValue('Канал для показаний', value - value1);
end;
end;
end.



Большое спасибо!
Avatar
SIMP Tech (Сергей)
День добрый.

День добрый, ребят, забыли про меня? уж очень нужен пример скрипта

Да, приношу свои извинения. Затерялся Ваш вопрос. Сегодня в течении дня с Вами свяжутся по почте, для уточнения деталей реализации.

в довесок к этому появилась проблема опроса тегов. Тег счетчика импульсов СИ8. В редакторе каналов стоит время опроса 300мс в opc-сервере Овен стоит 10мс, после запуска монитора больше половины тегов (температура, давление, скорость и т.д.) с различных приборов какое-то время (мин 10, а бывает и больше) не обновляют свои значения а стоят перечеркнуты (нет данных), а показания счетчика СИ8 обновляются с периодичностью мин. 5, а бывает и все 10. Выводил данные через Owen Process Manager, все четко, то есть с сетью всё в порядке. В чем может быть причина такой заторможености? Сейчас редактор каналов содержит более 100 тегов, версия SCADA SIMP Light ENT

Существует проблема работы в одной сети СИ8 и остальных приборов. Проблема эта известная, её решение уже обсуждалось на нашем форуме и форуме Овен. На память ссылок на эти обсуждения не дам, надо поискать.
Avatar
Виталий
День добрый, ребят, забыли про меня? уж очень нужен пример скрипта, в довесок к этому появилась проблема опроса тегов. Тег счетчика импульсов СИ8. В редакторе каналов стоит время опроса 300мс в opc-сервере Овен стоит 10мс, после запуска монитора больше половины тегов (температура, давление, скорость и т.д.) с различных приборов какое-то время (мин 10, а бывает и больше) не обновляют свои значения а стоят перечеркнуты (нет данных), а показания счетчика СИ8 обновляются с периодичностью мин. 5, а бывает и все 10. Выводил данные через Owen Process Manager, все четко, то есть с сетью всё в порядке. В чем может быть причина такой заторможености? Сейчас редактор каналов содержит более 100 тегов, версия SCADA SIMP Light ENT
Avatar
Виталий
vitaltab@mail.ru
Avatar
SIMP Tech (Сергей)
Добрый день!

Будьте добры, напишите пример скрипта Pascal который бы в определенное время (например в 9-00 и 21-00 того же дня) брал значение определенного канала из архива базы данных и записывал вирт. канал, функция GetHistory как я понимаю

Немного позже подготовим пример скрипта. Оставьте свою электронную почту для связи.