1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Математический расчет в WinCC

SCADA, серверы, АРМ верхнего уровня, диспетчерские
Ответить
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Re: Математический расчет в WinCC

Сообщение archisp »

Ну я создал внутренние теги, значение в которых приходит из обработанного таймером тега, как вы писали.. Тогда получается, что если таймер в течении часа обрабатывает значение, то через час его и можно посмотреть? Аналогично, если за сутки? Или не правильно понял? ))
Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1465
Зарегистрирован: 25 июл 2008, 10:25
Имя: Эдуард Владимирович
Страна: СССР
город/регион: Оренбург
Благодарил (а): 45 раз
Поблагодарили: 104 раза

Re: Математический расчет в WinCC

Сообщение CHANt »

Совершенно верно.
--------------------------------------------------------------------------------------------
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Re: Математический расчет в WinCC

Сообщение archisp »

CHANt, я бы сказал вам спасибо и поставил пиво, но увы территория России... Поэтому :thankyou:
А если что-то будет не понятно, могу спросить еще? :roll:
Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1465
Зарегистрирован: 25 июл 2008, 10:25
Имя: Эдуард Владимирович
Страна: СССР
город/регион: Оренбург
Благодарил (а): 45 раз
Поблагодарили: 104 раза

Re: Математический расчет в WinCC

Сообщение CHANt »

Да я уж лет шесть не открывал WinCC даже как пользователь :) В пределах штатных возможностей кой что помню, что-то серьезное - не очень. Осваивайте!
--------------------------------------------------------------------------------------------

Владимир Кузнецов
не первый раз у нас
не первый раз у нас
Сообщения: 321
Зарегистрирован: 31 авг 2011, 22:14
Имя: Кузнецов Владимир Сергеевич
Страна: Россия
город/регион: Казань
Поблагодарили: 1 раз

Re: Математический расчет в WinCC

Сообщение Владимир Кузнецов »

archisp писал(а): Прошу помощи по такому вопросу, если кто знает: имеется значение мгновенного расхода газа в котельной (тег, который берется прям с OPC-сервера). Хотелось бы высчитать расход котельной за сутки, чтобы расчет велся с 10 часов утра.
А почему в контроллере расхода это не считается?
Коммерческий учет так не получится, в лучшем случае просто "для себя".
Вообще для этого не обязательны архивы, можно банально в скрипте считать.
Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1465
Зарегистрирован: 25 июл 2008, 10:25
Имя: Эдуард Владимирович
Страна: СССР
город/регион: Оренбург
Благодарил (а): 45 раз
Поблагодарили: 104 раза

Re: Математический расчет в WinCC

Сообщение CHANt »

Владимир Кузнецов писал(а):А почему в контроллере расхода это не считается?Коммерческий учет так не получится, в лучшем случае просто "для себя".
У коллеги разнородное оборудование работающее по ОРС. Зачем ему надо разбираться с контроллерами? Есть верхний уровень и исходные данные. Ему данные для ТЭП нужны. Для ТЭП и считает, "для себя" так сказать. Обычное дело, в краткосрочном разрезе.
Владимир Кузнецов писал(а):Вообще для этого не обязательны архивы, можно банально в скрипте считать.
Потому что ПТЭ электростанций и сетей РФ (пп.6.10), в меньшей степени ПТЭ коммунальных отопительных котельных (пп. 4.3, 4.5), ПТЭ тепловых энергоустановок (пп. 2.5) предписывают учитывать основные параметры работы. Обычно выполняют архивацию мгновенных значений за недолгий период, сколько - решает заказчик. Затем хранятся получасовые, часовые, суточные срезы. Отчеты для ТЭП соответственно сменные, недельные, месячные, за год. Так что все те виды архивов что ему пришлось создать при решении задачи тех учета расхода газа в котельной, пригодятся в полном объеме и для других переменных. Просто с другими параметрами обработки в архивах. Нафика городить кучу скриптов, когда можно учесть все сразу и штатными средствами. Тем более что Глобал Скрипт - не сильная сторона WinCC, так как обрабатывает скрипты последовательно. Может и не успеть :D
ЗЫ. Это мое мнение ;) с WinCC v.7 не работал.
--------------------------------------------------------------------------------------------
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Re: Математический расчет в WinCC

Сообщение archisp »

Владимир Кузнецов писал(а):
archisp писал(а): Прошу помощи по такому вопросу, если кто знает: имеется значение мгновенного расхода газа в котельной (тег, который берется прям с OPC-сервера). Хотелось бы высчитать расход котельной за сутки, чтобы расчет велся с 10 часов утра.
А почему в контроллере расхода это не считается?
Коммерческий учет так не получится, в лучшем случае просто "для себя".
Вообще для этого не обязательны архивы, можно банально в скрипте считать.
Сам контроллер в котельной считает, но значения с архива через OPC не вытянешь с него, только мгновенный расход, и мгновенный суточный расход. Понятно, что коммерческий учет так вести не получится, я для себя эту цифру считаю, потому как до меня люди бегали списывали со счетчика в котельной. Ну мы то не в пещерах сегодня живем... А если не сложно, объясните, как с использованием скрипта считать? Написать его при помощи встроенного обработчика на C?

Владимир Кузнецов
не первый раз у нас
не первый раз у нас
Сообщения: 321
Зарегистрирован: 31 авг 2011, 22:14
Имя: Кузнецов Владимир Сергеевич
Страна: Россия
город/регион: Казань
Поблагодарили: 1 раз

Re: Математический расчет в WinCC

Сообщение Владимир Кузнецов »

archisp писал(а): Сам контроллер в котельной считает, но значения с архива через OPC не вытянешь с него, только мгновенный расход, и мгновенный суточный расход. Понятно, что коммерческий учет так вести не получится, я для себя эту цифру считаю, потому как до меня люди бегали списывали со счетчика в котельной. Ну мы то не в пещерах сегодня живем... А если не сложно, объясните, как с использованием скрипта считать? Написать его при помощи встроенного обработчика на C?
Расхождения с контроллером будут.
Могу дать пример скрипта, но он для других целей, интегрирование самому нужно будет придумывать.
Со скриптом будет проблема - рестарт ВинСС будет его сбрасывать и нужно будет придумать куда сохранять вычисленные значения (в тэг или файл).
Код рабочий, но не вылизанный.
В двух словах, скрипт срабатывает по тэгу и производит запись порции данных в файл отчета.

Код: Выделить всё

#include "apdefap.h"

int gscAction( void )
{
//    static int fl=0;
    int data_save=0;
   int new_session=0;
   char buf[32];
    FILE* pFile=0;

   data_save = GetTagBit("data_save");
   if(data_save != 1) return 0;
   
   SetTagBit("data_save", 0);
   
   new_session = GetTagBit("new_data_session");
   
   SetTagBit("new_data_session", 0);

    sprintf(buf, "D:\\Reports\\%s - %s.csv", GetTagChar("Date"), GetTagChar("my_name"));
//   pFile = fopen ("C:\\Reports\\"&&GetTagChar("Date")&&".txt","a");
   pFile = fopen (buf,"ab");
    
   if(new_session == 1)
   {
      new_session = 0;
        fprintf(pFile, "%s;%s;;;;;;;;;;;\r\n", GetTagChar("Date"), GetTagChar("Time"));
        fprintf(pFile, "%s;;;;;;;;;;;;\r\n", GetTagChar("my_name"));
        fprintf(pFile, "%s;;;;;;;;;;;;\r\n", GetTagChar("my_target"));
        fprintf(pFile, "%s;;;;;;;;;;;;\r\n", GetTagChar("my_product"));
        fprintf(pFile, "%s;;;;;;;;;;;;\r\n", GetTagChar("my_descript"));
        fprintf(pFile, "Время;Фактор;Qру;Qжидк.;T;P;Плотность;dP1;dP2;dP3;dP4;dP5;dP6\r\n");
    }
   else if(new_session == 0)
   {
       fprintf(pFile, "%s;%.3f;%.3f;%.3f;%.3f;%.3f;%.3f;%.3f;%.3f;%.3f;%.3f;%.3f;%.3f\r\n", GetTagChar("Time"), GetTagFloat("Irvis_F"), GetTagFloat("Irivis_QW"), GetTagFloat("Vzlet_QW"), GetTagFloat("Irivis_tempC"), GetTagFloat("Irivis_P"), GetTagFloat("Irvis_ROw"), GetTagFloat("Proma1"), GetTagFloat("Proma2"), GetTagFloat("Proma3"), GetTagFloat("Proma4"), GetTagFloat("Proma5"), GetTagFloat("Proma6"));
   }

    fclose (pFile); 

return 0; 
}
Что бы переменная сохраняла своё значение между вызовами, её нужно определить как static.
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Re: Математический расчет в WinCC

Сообщение archisp »

Класс! Очень благодарен! )) Буду пробовать!
Аватара пользователя

Looker
эксперт
эксперт
Сообщения: 1109
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 321 раз
Поблагодарили: 218 раз

Re: Математический расчет в WinCC

Сообщение Looker »

archisp писал(а):Сам контроллер в котельной считает, но значения с архива через OPC не вытянешь с него, только мгновенный расход, и мгновенный суточный расход.
Счетчик накопительным итогом, доступный по OPC, имеется?
Если да, тогда протоколируй его показания, например каждый час или полчаса.
И получишь аналог:
archisp писал(а):... люди бегали списывали со счетчика в котельной.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Re: Математический расчет в WinCC

Сообщение archisp »

Looker писал(а): Счетчик накопительным итогом, доступный по OPC, имеется?
Если да, тогда протоколируй его показания, например каждый час или полчаса.
Счетчик-то имеется, но архивные значения из него по OPC не взять, просто нельзя. Его OPC-сервер не позволяет этого сделать....

По поводу Tag Logging есть проблема. Может что-то делаю не так. Подскажите! Рассказываю, что делал:
- Имеется значение мгновенного расхода газа.
- Создал два таймера. Один, начиная с 10:00, часовой. Второй, начиная с 10:00, суточный.
- Создал два архива. Один берет значение мгновенного расхода и считает СРЕДНЕЕ за час по первому таймеру. Это значение заносится в один из созданных заранее внутренних тегов. (Тут все считается, проверял, за час считает среднее значение мгновенного расхода)
- Другой архив берет значение предыдущего внутреннего тега и, используя суточный таймер, должен СУММИРОВАТЬ эти значения. Но цифра не та, точнее она очень похожа на мгновенный расход за час.

Проблема собственно в том, что суточный архив не складывает теперь средние почасовые расходы. Что я делаю не так? Помогите, пожалуйста, мужики!!!
Аватара пользователя

Looker
эксперт
эксперт
Сообщения: 1109
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 321 раз
Поблагодарили: 218 раз

Re: Математический расчет в WinCC

Сообщение Looker »

archisp писал(а):
Looker писал(а): Счетчик накопительным итогом, доступный по OPC, имеется?
Если да, тогда протоколируй его показания, например каждый час или полчаса.
Счетчик-то имеется, но архивные значения из него по OPC не взять, просто нельзя. Его OPC-сервер не позволяет этого сделать....
Нужно брать текущие показания счетчика, сохранять каждый час.
Дельта показаний для двух меток времени - искомый объем.
Если расход не стабильный точность будет выше, чем при интегрировании на основе мгновенных значений.
Но есть недостаток - счетчик может отсутствовать на связи в момент "ч", т.е. не будет достоверных данных.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Re: Математический расчет в WinCC

Сообщение archisp »

Спасибо вам!
А по предыдущему вопросу никто не подскажет?
Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1465
Зарегистрирован: 25 июл 2008, 10:25
Имя: Эдуард Владимирович
Страна: СССР
город/регион: Оренбург
Благодарил (а): 45 раз
Поблагодарили: 104 раза

Re: Математический расчет в WinCC

Сообщение CHANt »

archisp писал(а):А по предыдущему вопросу никто не подскажет?
В суточном архиве, в свойствах архивируемого тега (внутреннего) есть вкладка "Параметры". В поле Cycle надо задать:
"Acquisition" ("Сбор") - 1 час
"Archiving" ("Архивирование") - сутки
Editing - sum
--------------------------------------------------------------------------------------------
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 21:18
Имя: Артур

Re: Математический расчет в WinCC

Сообщение archisp »

Разобрался )) Работает! Спасибо за помощь мужики!!!!!!

Skols
здесь недавно
здесь недавно
Сообщения: 23
Зарегистрирован: 23 июн 2011, 19:49
Имя: Скребнев Олег Александрович
Страна: Россия
город/регион: Волгоград

Re: Математический расчет в WinCC

Сообщение Skols »

Подскажите если надо во втором архиве суммировать предыдущий архив не каждый час а по изменению. так как первый архив записывает данные только по изменению, в моём случае раз в смену меняется объём, надо подсчитать за сутки. если поставить тип второго архива upon change а цикл архивирования 24 часа и суммирование, он вместо сложения двух разных чисел переписывает последнее число. боюсь если выберу циклический тип архива и цикл сбора данных 12 часов то не совсем правильно будет так как смену считает контроллер а сутки wincc или я ошибаюсь?
p.s.: контроллер не может подсчитать за сутки так как это программируемое реле которое не может передать число больше 32767...
Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1465
Зарегистрирован: 25 июл 2008, 10:25
Имя: Эдуард Владимирович
Страна: СССР
город/регион: Оренбург
Благодарил (а): 45 раз
Поблагодарили: 104 раза

Re: Математический расчет в WinCC

Сообщение CHANt »

Skols писал(а):...в моём случае раз в смену меняется объём, надо подсчитать за сутки...
Если сутки, то есть расчетный час - второй архив должен отрабатывать по заданному Вами суточному таймеру, а вот параметр "Acquisition", в данном случае, должен быть настроен на конец смены, когда в первичном архиве все изменения уже прошли. Таймера для архивов разнесите не много по времени, чтобы точно получилось, что 12-часовые изменения прошли и есть что складывать в суточном архиве.
--------------------------------------------------------------------------------------------

Skols
здесь недавно
здесь недавно
Сообщения: 23
Зарегистрирован: 23 июн 2011, 19:49
Имя: Скребнев Олег Александрович
Страна: Россия
город/регион: Волгоград

Re: Математический расчет в WinCC

Сообщение Skols »

У меня первый архив записывает только по изменению бита записи, так как через один тег будет передаваться 5 счётчиков( ограничен выходными словами реле), таким образом у меня будет 5 первичных архивов записывающих по изменению. 5 вторичных архивов будут суммировать каждый свой архив, точнее внутренний тег первого архива. Если первые архивы записывают информацию в 8.00(20.00),8.05(20.05),8.10(20.10),8.15(20.15),8.20(20.20) разница 5 сек не минут только, то выходит вы предлагаете задать таймера вторичным таймерам начиная с 00.00 цикл сбора 12 х час а цикл архивации 24 х час и суммирование? или я не правильно понял?)
и ещё вопрос возможно ли в настройках таймера указать архивацию в первый день каждого месяца, таким образом получив отчёт по месяцам?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1465
Зарегистрирован: 25 июл 2008, 10:25
Имя: Эдуард Владимирович
Страна: СССР
город/регион: Оренбург
Благодарил (а): 45 раз
Поблагодарили: 104 раза

Re: Математический расчет в WinCC

Сообщение CHANt »

Skols писал(а):Если первые архивы записывают информацию в 8.00(20.00),8.05(20.05),8.10(20.10),8.15(20.15),8.20(20.20) разница 5 сек не минут только, то выходит вы предлагаете задать таймера вторичным таймерам начиная с 00.00 цикл сбора 12 х час а цикл архивации 24 х час и суммирование? или я не правильно понял?)
Вторичный: сбор в 00.30 цикл 12 и архивация 00.35 цикл 24
Skols писал(а):и ещё вопрос возможно ли в настройках таймера указать архивацию в первый день каждого месяца, таким образом получив отчёт по месяцам?
Нет WinCC в наличии, посмотреть не могу, но, вроде, для работы с календарем надо будет уже скрипты использовать.
--------------------------------------------------------------------------------------------

Skols
здесь недавно
здесь недавно
Сообщения: 23
Зарегистрирован: 23 июн 2011, 19:49
Имя: Скребнев Олег Александрович
Страна: Россия
город/регион: Волгоград

Re: Математический расчет в WinCC

Сообщение Skols »

CHANt, :thankyou:

mate_ru
здесь недавно
здесь недавно
Сообщения: 17
Зарегистрирован: 15 июл 2011, 11:56
Имя: mate r.u.

Re: Математический расчет в WinCC

Сообщение mate_ru »

Добрый день,
чтобы не создавать новую тему - спрошу здесь.
сразу хочу отметить - мой уровень знания wincc (на мой взгляд) ниже низкого, по-этому прошу не судить строго.
В общем есть WinCC7.0 c Tag logging и таймером в нём на тег 5 секунд.
Возможно ли получить среднее значение архивного тега за определенный период времени в другой внутренний тег или переменную из скрипта? или просто доступ к набору данных через SQL-запрос за тот же период?
Хотя опишу задачу - вдруг есть более простые решения: есть производственная линия, показатель производительности записывается в Tag logging с таймером 5 секунд, иногда в линии что-то ломается и производительность снижается - в этот момент (начало и окончание периода снижения производительности записывается в User Archive) вот за этот период надо рассчитать среднюю производительность линии - при этот показатель надо видеть и сегодня и через неделю и через месяц - т.е. типа отчета что-то должно быть.
пробовал писать скрипт для расчета во внутренних переменных этого показателя, но много дополнительных скриптов и в 5 секунд не всегда мой укладывался, плюс к этому - когда период "простоя линии" очень большой мне не хватает разрядности типа данных для хранения общих данных (т.е. есть всего две переменных: накопленная производительность и количество этих производительностей -например каждые 5 секунд в переменную Побщ=Побщ+Птекущая; Кобщ=Кобщ+1; как только линия начала работать нормально - считаем производительность за период Побщ/Кобщ). Но скрипт не всегда точно считает, из-за проблем с ритмичностью его выполнения. Если есть предложения в этом направлении - с радостью приму.

Заранее всем спасибо.
Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1465
Зарегистрирован: 25 июл 2008, 10:25
Имя: Эдуард Владимирович
Страна: СССР
город/регион: Оренбург
Благодарил (а): 45 раз
Поблагодарили: 104 раза

Re: Математический расчет в WinCC

Сообщение CHANt »

User Archive это для рецептов, Вам не нужно.
Если попроще и штатными средствами, то лучше создать два архива с запуском по событию. Нормальный режим (линия работает в нормальном режиме) пишем в архив А, при возникновении события неисправности, останавливаем архив А и запускаем архив Б. В третьем архиве считаем часовую среднюю, или в другом суточную среднюю))) почитайте штатные возможности.
--------------------------------------------------------------------------------------------

mate_ru
здесь недавно
здесь недавно
Сообщения: 17
Зарегистрирован: 15 июл 2011, 11:56
Имя: mate r.u.

Re: Математический расчет в WinCC

Сообщение mate_ru »

CHANt,
спасибо за ответ,
но User Archive - с ним проблем нет и он нужен, туда сменные инженеры свои комментарии пишут по "остановкам"
сразу прошу прощения - не полностью я описал задачу. Исправляюсь:
в User Archive попадают данные: время начала "проблемы", описание "проблемы", классификация "проблемы", и время этой "проблемы" (сколько она продолжалась в минутах)
а в отчет к этим данным должна еще быть привязана производительность за время "проблемы", которую я и хотел высчитать из Tag Logging
дело в том что время проблемы может быть от 10 минут до 4-х месяцев. и отчет должен быть за любой период от 12 часов до любых интервалов дат.

P.S. ко мне лучше на ты.
Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1465
Зарегистрирован: 25 июл 2008, 10:25
Имя: Эдуард Владимирович
Страна: СССР
город/регион: Оренбург
Благодарил (а): 45 раз
Поблагодарили: 104 раза

Re: Математический расчет в WinCC

Сообщение CHANt »

Что мешает кнопку с надписью "Проблема" создать и чтоб на нее оператор нажимал? Вот и событие для вкл/откл архива.
И по этой кнопке пусть форма юзер-архива для заполнения открывается, или слой появляется - вариантов куча
--------------------------------------------------------------------------------------------

mate_ru
здесь недавно
здесь недавно
Сообщения: 17
Зарегистрирован: 15 июл 2011, 11:56
Имя: mate r.u.

Re: Математический расчет в WinCC

Сообщение mate_ru »

С описанием проблемы всё нормально и событие для вкл/выкл архива уже есть (тег внутренний для этого), я не пойму как производительность посчитать, пример
с 9:10 до 9:22 было снижение производительности и инженер указал причину - электрика
с 9:45 до 9:58 было снижение производительности и инженер указал причину - механика
мне надо рассчитать производительность за эти два промежутка в отдельные переменные или теги,
вот в чем вопрос.
Ответить

Вернуться в «Верхний уровень автоматизации (отображение)»