В «мире теплоучета», как, впрочем, и в любом другом мире, существуют сменяющие друг друга течения, тенденции, настроения. Мы можем проследить их, например, по сборникам трудов конференций «Коммерческий учет энергоносителей», которые проходят в Санкт-Петербурге дважды в год, весною и осенью. Так, когда-то «все разом» говорили и писали о том, по каким формулам теплосчетчик должен «считать тепло», затем увлекались системами учета, потом заговорили о фальсификациях в приборном учете и о методах борьбы с ними. Тема фальсификаций многим потребителям (производители об этом, конечно, знали всегда) открыла глаза на то, что подавляющее большинство функций тепловычислителя реализуется программно. И возник вопрос: но если это так, то законна ли смена (обновление) версии программного обеспечения вычислителя в процессе его эксплуатации? Законна ли такая смена после того, как прибор прошел государственные испытания и получил сертификат утверждения типа СИ? Прежде, чем начать разбираться в этой теме, давайте вспомним теорию. Согласно общепринятым определениям, теплосчетчик — это средство измерений, предназначенное для определения количества теплоты и измерения массы и параметров теплоносителя. Функционально теплосчетчик состоит из измерительных преобразователей расхода, температуры и (иногда) давления, а также из тепловычислителя. Тепловычислитель — это средство измерений, обеспечивающее расчет количества теплоты на основе входной информации о массе, температуре и давлении теплоносителя. Такая информация «предоставляется» вычислителю преобразователями в виде электрических сигналов, величины или значения которых пропорциональны измеряемой величине. Например, преобразователь давления, как правило, формирует сигнал постоянного тока, причем сила тока пропорциональна измеряемому давлению. Преобразователи температуры чаще всего изменяют свое электрическое сопротивление пропорционально измеряемой температуре. Преобразователи расхода могут быть как с токовым, так и, например, с частотным выходным сигналом, когда частота следования импульсов пропорциональна измеряемому расходу. Очень часто применяются преобразователи расхода с дискретным — числоимпульсным — сигналом, где каждый импульс выдается после того, как через преобразователь прошел определенный объем (один, десять или сто литров) теплоносителя. Измерительные преобразователи могут иметь в своем составе процессор с соответствующим программным обеспечением. Однако в составе теплосчетчиков, особенно — комбинированных, чаще используются «неинтеллектуальные» преобразователи. Например, тахометрические водосчетчики, где теплоноситель вращает крыльчатку, и через определенное число оборотов происходит замыкание-размыкание контакта, формирующего выходной «импульс». Или термопреобразователи сопротивления, где электрическое сопротивление металлической пластинки изменяется в зависимости от температуры, до которой эта пластинка нагрелась, как то описано законами физики. Поэтому далее для упрощения мы будем говорить не о теплосчетчике в целом, а о тепловычислителе как о функциональном блоке, принимающем и обрабатывающем «стандартные» электрические сигналы измерительных преобразователей. Также предположим, что метрологические характеристики преобразователей (погрешности преобразования измеряемых величин в выходные электрические сигналы) известны и неизменны, и потому «окончательные» результаты измерений и учета зависят только от вычислителя. Так что же нужно, чтобы при наличии преобразователей с известными характеристиками обеспечить требуемые метрологические характеристики теплосчетчика в целом? В первую очередь, с определенной точностью «измерить», т.е. представить в числовом виде сигналы преобразователей. Решается эта задача, как правило, «аппаратно»: разработчик вычислителя подбирает аналогоцифровые преобразователи (АЦП) и счетчики импульсов с требуемыми характеристиками (благо, выбор этих микросхем сейчас велик), впаивает их в плату — и все. В том смысле, что вряд ли эти микросхемы заменят на другие после сертификации и начала серийного выпуска вычислителя, и уж совсем точно не будут их «перепаивать» в ходе эксплуатации. Иное дело — программное обеспечение. Итак, оцифровать сигналы преобразователей мы можем, и мы можем быть уверены в точности этой оцифровки. А дальше в дело вступает «мозг» вычислителя — его микропроцессор, управляемый специально разработанной программой. В общем случае перед вычислителем стоит две задачи: 1. Рассчитывать величину потребленной тепловой энергии Q. 2. «Накапливать» и сохранять в почасовых, посуточных, помесячных архивах измеренные значения тепловой энергии и объемов (масс) теплоносителя, усреднять по времени и сохранять в тех же архивах измеренные значения температур и давлений теплоносителя. Для решения первой задачи процессор со строго определенной периодичностью (раз в секунду или в несколько секунд) должен: ❏ «посмотреть» показания преобразователей расхода, температуры и давления на данный момент времени; ❏ на основании полученных данных о температуре и давлении теплоносителя вычислить его плотность и энтальпию; ❏ с учетом рассчитанной плотности вычислить значение массового расхода теплоносителя (преобразователи измеряют, как правило, объемный расход); ❏ вычислить по заданной формуле приращение ΔQ на данном «временном кванте»; ❏ суммировать это приращение с суммой приращений на предыдущих квантах (собственно, это операция интегрирования). Если в составе теплосчетчика используются преобразователи расхода с дискретным сигналом (водосчетчики, выдающие импульс после прохождения через них N литров теплоносителя), алгоритм модифицируется, т.к. либо вместо реальных значений мгновенного расхода надо оперировать расчетными значениями эквивалентно-непрерывного расхода, либо «накапливать» в каждом периоде измерений значения объема (и массы) и уже их использовать при расчетах Q. В любом случае данный цикл измерений должен повторяется снова и снова, и раз в час «накопленное» за этот час значение Q «складывается» в соответствующую ячейку почасового архива, раз в сутки — в ячейку посуточного, раз в месяц — в ячейку помесячного. А для решения второй задачи процессор также в каждом цикле измерений должен «накапливать» значения объемов и/или масс теплоносителя, рассчитывать средние на интервале времени значения давлений (если давления измеряются), средние или средневзвешенные (что логичней) значения температур. Из сказанного понятно, где могут скрываться причины возможных «ошибок» в работе тепловычислителя. Например, по каким-то причинам может нарушиться продолжительность цикла измерений, «сдвинуться» время начала нового цикла. Невероятно? Вовсе нет. Если процессор недостаточно «быстр», и цикл измерений «успевает» выполнить на пределе своих возможностей, то любая дополнительная загрузка процессора (обработка нештатной ситуации, обработка сигналов клавиатуры, передача данных по внешнему запросу и т.п.) при небрежно написанной программе может привести к задержке в измерениях. Соответственно, погрешность измерений на данном временном интервале возрастет. Далее, ошибка может таиться в алгоритме расчета плотностей и энтальпий. Неверно могут быть составлены и реализованы алгоритмы измерения тепловой энергии, алгоритмы интегрирования и расчета средних (средневзвешенных) значений параметров, алгоритмы архивирования. Обо всем этом мы подробно писали в работе [1], и потому здесь дополнительно разъяснять не будем. Современный тепловычислитель — это прибор, который может работать в системах теплоснабжения различных конфигураций и в комплекте с различными измерительными преобразователями. Во многих случаях он реализует еще и ряд дополнительных функций: анализирует нештатные ситуации, передает данные по различным каналам связи, иногда даже управляет средствами регулирования. Соответственно, при конфигурировании для работы в одной измерительной схеме алгоритмы используются одни, в другой схеме — другие. И вот предположим, что новый тепловычислитель разработан и воплощен «в железе», его программное обеспечение отлажено и испытано в «реальной жизни». Прибор представлен на государственные испытания с целью утверждения типа средства измерений, испытания успешно пройдены, заявленные производителем метрологические характеристики подтверждены, получен сертификат и, соответственно, дорога в большую жизнь. Прибор начинают продавать, и вдруг… Тут может случиться всякое. Бывает, что в процессе эксплуатации «всплывет» допущенная при разработке программного обеспечения и незамеченная при отладке и испытаниях ошибка. В этом нет ничего необычного: программы вычислителей в силу вышеописанной универсальности и многофункциональности сложны, над программой в процессе ее создания могут работать разные люди (как специалисты разного класса, так и люди с различным отношением к жизни, т.е. более или менее дотошные). Времени же на отладку обычно не хватает [2]. В общем, ошибка всплывает, и ее нужно исправлять. А бывает и так, что разработчик сам вдруг хлопает себя по лбу и восклицает: «Ведь вот эту штучку можно было бы реализовать по-другому — изящней и эффективней!». Как бы то ни было, но в программу вносятся исправления, и вот очередная партия приборов поступает в продажу уже с новым — усовершенствованным! — программным обеспечением. Естественно, производитель считает, что он, во-первых, исправил и дополнил, а не ухудшил и урезал, во-вторых, что его исправления не повлияли на метрологические характеристики вычислителя. Но кто, какой компетентный орган или независимый эксперт подтвердит это? Ведь, во-первых, обнаруженную ошибку можно исправить и неверно: или просто не улучшив, или даже усугубив ситуацию. Во-вторых, исправив один фрагмент программы, можно случайно «испортить» другой. Спросите программистов, такое на самом деле случается. В-третьих, на метрологические характеристики вычислителя может влиять даже то, что на первый взгляд влиять на них не может — вспомните пример со сбоем цикла измерений из-за загрузки процессора. Мы же приведем еще и парочку совершенно реальных примеров из жизни. Однажды находящиеся у нас в эксплуатации вычислители одного известного производителя один за другим начали «останавливать» архивы, т.е. переставали делать в них новые записи. В местном сервисном центре этого производителя пояснили: это ошибка конкретной версии программного обеспечения, «лечится» заменой на новую версию. Пришлось демонтировать приборы и везти их в сервис-центр: там их, что называется, «перешили», заменив «версию 5.1» на «версию 5.2» — и все вроде бы заработало. «Вроде бы», поскольку под управлением предыдущей версии программного обеспечения приборы изначально тоже работали, а остановка архивов происходила через довольно продолжительный промежуток времени. Так что, как говорится, поживем — увидим. Второй пример таков. На объекте в одном отдаленном городе автору данной статьи пришлось изменить в вычислителе (другого производителя) один параметр, совершенно не связанный с метрологией, а именно — сетевой адрес прибора, что было нужно для подключения удаленного компьютера. Выполнялось сие в полном соответствии с Руководством по эксплуатации при помощи клавиатуры вычислителя, но при попытке сохранения измененного параметра вычислитель просто… «умер» — погасил табло и не отвечал на нажатия кнопок. Звонок производителю, и все как будто ясно: «привозите, заменим программу». Привезли, заменили, опробовали — больше не «умирает». Но, возможно, способен сделать это при какой-то другой операции. В обоих этих примерах ошибка формально крылась в «неметрологической» части программы: в первом она была связана с записью в архивы (текущие значения параметров прибор измерять продолжал), во втором — и вовсе с коммуникационными настройками. Но результат-то был один: приборы коммерческого учета не смогли обеспечить (прекратили, сорвали, нарушили) этот самый коммерческий учет! Не «чистая метрология», но… Выходит, нельзя позволять самому производителю решать, что «влияет на метрологию», а что нет. В этой связи вспоминается еще один случай: некий производитель расходомеров модернизировал свой продукт и в одной из статей про эту модернизацию написал: «…новая конструкция… не ухудшает метрологических характеристик, а в некоторых случаях (?!) их даже улучшает…». При этом государственные испытания модернизированного прибора не проводились, а значит факты «неухудшения» и «в некоторых случаях улучшения» характеристик официально подтверждены не были. Что не мешает производителю выпускать и продавать этот прибор. Но вернемся к теплосчетчикам-тепловычислителям. Постоянное «усовершенствование» и замена версий их программного обеспечения для ряда производителей стало своего рода правилом. Посмотрите их сайты — там вы обязательно найдете новости об обновленных версиях, но не найдете информации о сертификации приборов с новым программным обеспечением. А ведь такой прибор, даже если его корпус и лицевая панель остались неизменными — это, по сути, новый прибор: с новыми и неподтвержденными метрологическими характеристиками, с новыми подходами к обработке данных, с новыми показателями надежности — и т.д., и т.п. В результате «…внешне одинаковые приборы с различными версиями программного обеспечения могут давать различные результаты. Какому из них должен верить потребитель?! При этом приборы имеют один и тот же сертификат об утверждении типа СИ, одно и то же описание типа СИ. Такого не должно быть…» [3].Да, такого быть не должно. Два теплосчетчика разных марок в одной и той же системе теплоснабжения могут измерять и вести учет по-разному [1]. Теперь выясняется, что так же могут делать даже два теплосчетчика одной и той же марки, но с разными версиями программного обеспечения «внутри». Поэтому в последнее время все чаще звучат призывы разработать алгоритмы идентификации этих версий, а номер и/или контрольную сумму версии включать в описание типа теплосчетчика или тепловычислителя. Очень хорошо этот момент описан в [3], и потому закончим свою статью цитатами из нее: «…Для обеспечения единства измерений изготовители средств измерений при замене версии программного обеспечения в соответствии с требованиями п. 4.2 ПР 50.2.009 [4] обязаны проводить испытания на соответствие средства измерений утвержденному типу, как “при внесении в их конструкцию или технологию изготовления изменений, влияющих на их нормированные метрологические характеристики”…». И далее: «…Для проверки соответствия программного обеспечения утвержденному типу, а также для проверки и подтверждения целостности и подлинности программного обеспечения и данных, в соответствии с [5] должна проводиться идентификация программного обеспечения… Алгоритм идентификации должен являться частью программного обеспечения… Идентификация должна осуществляется при запуске программного обеспечения [или] по команде пользователя…». Программное обеспечение должно быть неотъемлемой частью теплосчетчика (тепловычислителя). Пусть производители тщательнее «обкатывают» приборы перед выводом на рынок, пусть они проводят повторные испытания с целью утверждения типа при каждой модернизации программного обеспечения. Да, приборы от этого станут дороже. Но что для всех нас важнее: дешевый теплосчетчик или точный учет тепла? Задумайтесь. 1. Анисимов Д.Л. Скрытые ошибки учета тепла // Энергосбережение, 2007. 2. Анисимов Д.Л. Мифы энергоучета // Энергосбережение, 2007. 3. Данилов А.А. О необходимости наведения порядка в идентификации программного обеспечения средств измерений. Коммерческий учет энергоносителей / Сост. Д.Л. Анисимов. — СПб.: Политехника, 2007. 4. ПР 50.2.009–94. Порядок проведения испытаний и утверждения типа средств измерений. 5. МИ 2891–2004. ГСИ. Общие требования к программному обеспечению средств измерений.
Программное обеспечение теплосчетчика
Опубликовано в журнале СОК №9 | 2010
Rubric:
Тепловычислитель — это средство измерений, обеспечивающее расчет количества теплоты на основе входной информации о массе, температуре и давлении теплоносителя. Такая информация «предоставляется» вычислителю преобразователями в виде электрических сигналов, величины или значения которых пропорциональны измеряемой величине.