Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

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

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

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 07 ноя 2011, 14:18

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

Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1243
Зарегистрирован: 25 июл 2008, 09:25
Ф.И.О.: Гринев Эдуард Владимирович
Откуда: Оренбург
Благодарил (а): 11 раз
Поблагодарили: 37 раз
Контактная информация:

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

Сообщение CHANt » 07 ноя 2011, 14:22

Совершенно верно.
--------------------------------------------------------------------------------------------
"Почти все начальники - дилетанты." © цитата из поста hell_boy )))

Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 07 ноя 2011, 14:26

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

Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1243
Зарегистрирован: 25 июл 2008, 09:25
Ф.И.О.: Гринев Эдуард Владимирович
Откуда: Оренбург
Благодарил (а): 11 раз
Поблагодарили: 37 раз
Контактная информация:

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

Сообщение CHANt » 07 ноя 2011, 14:56

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


Владимир Кузнецов
не первый раз у нас
не первый раз у нас
Сообщения: 321
Зарегистрирован: 31 авг 2011, 21:14
Ф.И.О.: Кузнецов Владимир Сергеевич

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

Сообщение Владимир Кузнецов » 07 ноя 2011, 21:57

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

А почему в контроллере расхода это не считается?
Коммерческий учет так не получится, в лучшем случае просто "для себя".
Вообще для этого не обязательны архивы, можно банально в скрипте считать.

Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1243
Зарегистрирован: 25 июл 2008, 09:25
Ф.И.О.: Гринев Эдуард Владимирович
Откуда: Оренбург
Благодарил (а): 11 раз
Поблагодарили: 37 раз
Контактная информация:

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

Сообщение CHANt » 07 ноя 2011, 23:33

Владимир Кузнецов писал(а):А почему в контроллере расхода это не считается?Коммерческий учет так не получится, в лучшем случае просто "для себя".

У коллеги разнородное оборудование работающее по ОРС. Зачем ему надо разбираться с контроллерами? Есть верхний уровень и исходные данные. Ему данные для ТЭП нужны. Для ТЭП и считает, "для себя" так сказать. Обычное дело, в краткосрочном разрезе.

Владимир Кузнецов писал(а):Вообще для этого не обязательны архивы, можно банально в скрипте считать.

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

Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 08 ноя 2011, 07:13

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

А почему в контроллере расхода это не считается?
Коммерческий учет так не получится, в лучшем случае просто "для себя".
Вообще для этого не обязательны архивы, можно банально в скрипте считать.

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


Владимир Кузнецов
не первый раз у нас
не первый раз у нас
Сообщения: 321
Зарегистрирован: 31 авг 2011, 21:14
Ф.И.О.: Кузнецов Владимир Сергеевич

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

Сообщение Владимир Кузнецов » 08 ноя 2011, 09:17

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, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 08 ноя 2011, 09:22

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

Аватара пользователя

Looker
осмотрелся
осмотрелся
Сообщения: 189
Зарегистрирован: 09 фев 2011, 11:32
Ф.И.О.: Дитрих Евгений
Откуда: Донецк
Благодарил (а): 22 раза
Поблагодарили: 5 раз

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

Сообщение Looker » 08 ноя 2011, 10:48

archisp писал(а):Сам контроллер в котельной считает, но значения с архива через OPC не вытянешь с него, только мгновенный расход, и мгновенный суточный расход.

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

Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 09 ноя 2011, 12:41

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


Счетчик-то имеется, но архивные значения из него по OPC не взять, просто нельзя. Его OPC-сервер не позволяет этого сделать....

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

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

Аватара пользователя

Looker
осмотрелся
осмотрелся
Сообщения: 189
Зарегистрирован: 09 фев 2011, 11:32
Ф.И.О.: Дитрих Евгений
Откуда: Донецк
Благодарил (а): 22 раза
Поблагодарили: 5 раз

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

Сообщение Looker » 09 ноя 2011, 15:00

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


Счетчик-то имеется, но архивные значения из него по OPC не взять, просто нельзя. Его OPC-сервер не позволяет этого сделать....

Нужно брать текущие показания счетчика, сохранять каждый час.
Дельта показаний для двух меток времени - искомый объем.
Если расход не стабильный точность будет выше, чем при интегрировании на основе мгновенных значений.
Но есть недостаток - счетчик может отсутствовать на связи в момент "ч", т.е. не будет достоверных данных.

Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 11 ноя 2011, 07:41

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

Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1243
Зарегистрирован: 25 июл 2008, 09:25
Ф.И.О.: Гринев Эдуард Владимирович
Откуда: Оренбург
Благодарил (а): 11 раз
Поблагодарили: 37 раз
Контактная информация:

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

Сообщение CHANt » 11 ноя 2011, 12:54

archisp писал(а):А по предыдущему вопросу никто не подскажет?

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

Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

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

Сообщение archisp » 14 ноя 2011, 07:37

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


Skols
здесь недавно
здесь недавно
Сообщения: 23
Зарегистрирован: 23 июн 2011, 18:49
Ф.И.О.: Скребнев Олег Александрович

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

Сообщение Skols » 02 июн 2013, 13:31

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

Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1243
Зарегистрирован: 25 июл 2008, 09:25
Ф.И.О.: Гринев Эдуард Владимирович
Откуда: Оренбург
Благодарил (а): 11 раз
Поблагодарили: 37 раз
Контактная информация:

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

Сообщение CHANt » 03 июн 2013, 06:59

Skols писал(а):...в моём случае раз в смену меняется объём, надо подсчитать за сутки...

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


Skols
здесь недавно
здесь недавно
Сообщения: 23
Зарегистрирован: 23 июн 2011, 18:49
Ф.И.О.: Скребнев Олег Александрович

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

Сообщение Skols » 03 июн 2013, 08:59

У меня первый архив записывает только по изменению бита записи, так как через один тег будет передаваться 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
эксперт
эксперт
Сообщения: 1243
Зарегистрирован: 25 июл 2008, 09:25
Ф.И.О.: Гринев Эдуард Владимирович
Откуда: Оренбург
Благодарил (а): 11 раз
Поблагодарили: 37 раз
Контактная информация:

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

Сообщение CHANt » 03 июн 2013, 18:58

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 в наличии, посмотреть не могу, но, вроде, для работы с календарем надо будет уже скрипты использовать.
--------------------------------------------------------------------------------------------
"Почти все начальники - дилетанты." © цитата из поста hell_boy )))


Skols
здесь недавно
здесь недавно
Сообщения: 23
Зарегистрирован: 23 июн 2011, 18:49
Ф.И.О.: Скребнев Олег Александрович

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

Сообщение Skols » 03 июн 2013, 19:54

CHANt, :thankyou:


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

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

Сообщение mate_ru » 21 авг 2014, 10:11

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

Заранее всем спасибо.

Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1243
Зарегистрирован: 25 июл 2008, 09:25
Ф.И.О.: Гринев Эдуард Владимирович
Откуда: Оренбург
Благодарил (а): 11 раз
Поблагодарили: 37 раз
Контактная информация:

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

Сообщение CHANt » 21 авг 2014, 11:36

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


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

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

Сообщение mate_ru » 21 авг 2014, 12:21

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

P.S. ко мне лучше на ты.

Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1243
Зарегистрирован: 25 июл 2008, 09:25
Ф.И.О.: Гринев Эдуард Владимирович
Откуда: Оренбург
Благодарил (а): 11 раз
Поблагодарили: 37 раз
Контактная информация:

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

Сообщение CHANt » 21 авг 2014, 12:25

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


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

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

Сообщение mate_ru » 21 авг 2014, 12:41

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


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



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей