Организовать удаленный сбор показаний с электросчетчиков — задача вроде не сложная, счетчики с каждым годом все умнее и умнее и должны сами все отправлять, ан нет, информация конечно есть, но она разрозненная. Производители оборудования видимо тоже хотят зарабатывать на продаже своего ПО. Пишу эту статью чтобы сэкономить время всем, у кого есть похожие задачи.
На предприятии нужно было автоматизировать сбор показаний с электросчетчиков, порядка двадцати штук. Сделать это требовалось быстро и максимально дешево. Поэтому приняли решение собирать данные с помощью уже развернутого Zabbix, а вот для подключения к счетчику потребовалось написать небольшой скрипт, об этом ниже. Так вышло, что сбор показаний, это лишь один из параметров, который нужно собирать, за остальные отвечает ПК с Debian на борту, поэтому не было сложности подключиться к счетчику через COM-порт. Конечно, для большинства, будет удобнее использовать локальную сеть и получить информацию с промышленного коммутатора или конвертера интерфейсов.
Из вариантов подключения также можно рассматривать оптопорт, правда потребуется приобретать дополнительный девайс, с другой стороны — не нужно снимать пломбу.
Клеммы для подключения к счетчику находятся под опломбированной крышкой.
Поэтому нам пришлось договариваться сетевой компанией о том что, нужно снимать пломбы, выполнять работы, заново пломбировать счетчики. Но в итоге, договоренности были достигнуты и можно было спокойно заниматься решением основной задачи.
Как следует из официальной документации.
Счетчик, принимает на вход строку байтов формата ADDR-CMD-CRC, а отдает ADDR-CMD-DATA-CRC, где:
Теперь попробуем получить от счетчика его серийный номер и проверить CRC. Понадобится установить модуль pyserial
import serial import struct import time sn = 26222790 # Открываем соединение ser = serial.Serial('/dev/ttyUSB0', 9600, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE) print ('Connected:', ser.isOpen()) # \x2f - Команда для получения серийного номера chunk = struct.pack('>L', int(sn)) chunk += b'\x2f' chunk = crc16(chunk) # Отправим данные на счетчик и получим информацию с него ser.write(chunk) time.sleep(1) out = ser.read_all() ser.close() print ('Check CRC:', out[-2:] == crc16(out[:-2])[-2:]) print ('Result string:', ':'.join('{:02x}'.format(c) for c in out))
Отлично! Теперь получим значения для израсходованной энергии по первому и второму тарифам, на самом деле нам нужно изменить только поле команды и распарсить результат.
chunk += b'\x27' t1 = ''.join('{:02x}'.format(c) for c in out[5:9]) t2 = ''.join('{:02x}'.format(c) for c in out[9:13]) print ('T1 =', float(t1)*0.01, '(кВт*ч)', 'T2 =', float(t2)*0.01, '(кВт*ч)')
Все работает. Конечный вариант скрипта выложил на git. В перспективе, планирую добавить поддержку работы по локальной сети.
Для разработки использовался Адаптер USB -> COM «Меркурий-221», но можно напрямую подключать счетчик к COM-порту.
Ссылки:
Полезная информация по подключению счетчиков находится тут
Документация на официальном сайте
Сайт техподдержки
Про CRC на Википедии
%PDF-1.4 1 0 obj > /ExtGState > /Font > /Para > /Para1 > /Para10 > /Para11 > /Para12 > /Para13 > /Para14 > /Para15 > /Para16 > /Para17 > /Para18 > /Para19 > /Para2 > /Para20 > /Para21 > /Para22 > /Para23 > /Para24 > /Para25 > /Para26 > /Para27 > /Para28 > /Para29 > /Para3 > /Para30 > /Para31 > /Para32 > /Para33 > /Para34 > /Para35 > /Para36 > /Para37 > /Para38 > /Para39 > /Para4 > /Para40 > /Para41 > /Para42 > /Para43 > /Para44 > /Para45 > /Para46 > /Para47 > /Para48 > /Para49 > /Para5 > /Para50 > /Para51 > /Para52 > /Para53 > /Para54 > /Para55 > /Para56 > /Para57 > /Para58 > /Para59 > /Para6 > /Para60 > /Para61 > /Para62 > /Para63 > /Para64 > /Para7 > /Para8 > /Para9 > >> /ProcSet [/PDF /Text /ImageC] /Properties > /XObject > >> /Rotate 0 /TrimBox [0 0 595.
276 841.89] /Type /Page >> endobj 2 2 obj > endobj 3 0 obj > stream application/pdfПРОЕКТЫ/ПРОГРАММЫ
В результате воздействия ртути на окружающую среду и риска нейротоксичности, связанного с трофическим переносом метилртути человеку, в настоящее время во всем мире уделяется внимание сокращению выбросов ртути угольными электростанциями, являющимися крупнейшим антропогенным источником. Для решения предстоящих нормативных требований по сокращению выбросов ртути необходимо создать систему измерения выбросов ртути, которая продемонстрировала бы точность и прослеживаемость до национальных и международных стандартов. Чтобы удовлетворить эту потребность, NIST совместно с Агентством по охране окружающей среды США (EPA) разработал систему прослеживаемости (рис. 1), которая связывает выходные данные приборов для калибровки элементарной ртути, расположенных на предприятиях электроэнергетики, с Международной системой единиц (СИ). ).
18 мая 2005 г. Агентство по охране окружающей среды обнародовало Правило о ртути в чистом воздухе (CAMR), поправку к Закону о чистом воздухе, которая устанавливает стандарты производительности для производства ртути на новых и существующих угольных электростанциях. Правило было разработано для значительного сокращения выбросов ртути угольными электростанциями с конечной целью сокращения выбросов ртути коммунальными предприятиями с 48 тонн в год до 15 тонн в год. Впоследствии CAMR был освобожден летом 2008 года, но в настоящее время отдельные штаты принимают аналогичные стандарты производительности. Задача измерения, стоящая перед электроэнергетическими предприятиями, заключается в точном количественном определении как элементарной, так и ионной ртути в их потоках дымовых газов с использованием соответствующей технологии мониторинга выбросов. Эти усилия по измерению должны будут соответствовать требованиям EPA или государственных нормативных требований и неявно требуют разработки структуры прослеживаемости NIST. NIST уже обеспечивает прослеживаемость ртути до SI для многих материалов с твердой и жидкой матрицей, включая ископаемое топливо, в рамках программы SRM, но ранее не предпринималось попыток обеспечить первичные стандарты ртути более высокого порядка в газовой фазе. В настоящее время генератор элементарной ртути представляет собой наилучший подход к калибровке систем мониторинга ртути на основе мониторов непрерывного выброса (CEM) и/или систем сорбентных ловушек, расположенных на предприятиях электроэнергетики. Генератор элементарной ртути представляет собой коммерческое устройство, которое производит ртуть известной концентрации в газовом потоке с известной скоростью потока. Это достигается пропусканием части газового потока через свободное пространство, выдерживаемое при известной температуре, с последующим смешиванием с разбавляющим потоком того же газа. Эти устройства, в свою очередь, должны быть сертифицированы, чтобы их выходной сигнал при заданных заданных значениях был точно известен и имел связанную и известную неопределенность. В настоящее время ведется работа по разработке структуры прослеживаемости NIST для этих устройств и по применению этой структуры для сертификации NIST систем калибровки генераторов элементарных частиц, которые будут поставляться на коммунальные предприятия.
Аналитическая химия, традиционная энергетика, окружающая среда, качество воздуха/воды/почвы и справочные материалы
Создано 6 января 2009 г., обновлено 21 сентября 2016 г.
Ртуть представляет собой природный элемент, который возникает в земной коре и может быть обнаружен в воздухе, воде, рыбе и других животных и растениях. Ртуть существует в трех формах: элементарная, органические соединения и неорганические соединения.
Ртуть широко используется в промышленности благодаря своим разнообразным свойствам. В очень малых количествах ртуть проводит электричество, реагирует на изменения температуры и давления и образует сплавы почти со всеми другими металлами. Ртуть играет важную роль в качестве компонента процесса или продукта в нескольких промышленных секторах, включая электротехническую промышленность, навигационные устройства, приборы для измерения температуры и давления и другие связанные с этим области применения. Он также является компонентом стоматологических амальгам, используемых для восстановления полостей зубов.
Помимо производства конкретных продуктов, ртуть используется во многих промышленных процессах, включая производство хлора и каустической соды на ртутных хлорно-щелочных установках, амальгамирование, использование в ядерных реакторах, обработку древесины (в качестве противогрибкового средства), использование в качестве растворителя для реактивных и драгоценных металлов, а также использование в качестве катализатора. Соединения ртути также часто добавляют в качестве консервантов во многие фармацевтические продукты.
В глобальном масштабе основными антропогенными источниками выброса элементарной ртути в атмосферу являются сжигание угля, нефти и древесины в качестве топлива, использование элементарной ртути в кустарной добыче золота, а также вулканы и лесные пожары.
Часть выбрасываемой элементарной ртути после осаждения и преобразования в двухвалентную ртуть может биотрансформироваться в метилртуть. Метилртуть является стойким и способным к биоаккумуляции нейротоксином. Воздействие метилртути чаще всего происходит, когда люди едят рыбу и моллюсков, в тканях которых содержится высокий уровень метилртути.
https://www.epa.gov/mercury
Экологические законы, применимые к ртути
Закон о чистом воздухе регулирует 188 токсичных веществ в воздухе, также известных как «опасные загрязнители воздуха». Ртуть указана как один из этих ядовитых веществ в воздухе. Закон также включает специальные положения по борьбе с токсичными веществами в воздухе, выбрасываемыми коммунальными предприятиями, что наделяет Агентство по охране окружающей среды полномочиями регулировать выбросы ртути электростанциями.
В соответствии с Законом о чистой воде штаты принимают стандарты качества воды для своих рек, ручьев, озер и водно-болотных угодий. Эти стандарты определяют приемлемые уровни загрязнения воды многими загрязняющими веществами, включая ртуть.
Агентство по охране окружающей среды США и штаты США также публикуют информацию о водах, загрязненных ртутью, вредном воздействии ртути, определяют источники ртути и предупреждают людей об употреблении в пищу рыбы с высоким содержанием метилртути.
Закон о планировании действий в чрезвычайных ситуациях и праве общества на информацию (EPCRA) Раздел 313 требует, чтобы промышленные и федеральные объекты сообщали о выбросах химических веществ, включая выбросы ртути и ртутных соединений. Отчетность осуществляется в рамках программы Агентства по охране окружающей среды по инвентаризации выбросов токсичных веществ (TRI).
Закон о сохранении и восстановлении ресурсов (RCRA) требует, чтобы Управление по охране окружающей среды управляло опасными отходами, в том числе ртутными отходами, от их образования, хранения и транспортировки до их окончательной обработки и удаления.
Закон о безопасной питьевой воде (SDWA) , EPA устанавливает стандарты для питьевой воды, применимые к общественным системам водоснабжения. Эти стандарты защищают людей, ограничивая уровни ртути и других загрязняющих веществ в питьевой воде.
Закон об обращении с ртутьсодержащими и перезаряжаемыми батареями от 1996 года (Закон о батареях) поэтапно прекращает использование ртути в батареях.
Закон о запрете экспорта ртути направлен на сокращение доступности элементарной (металлической) ртути на внутреннем и международном рынках. Сокращая предложение металлической ртути в коммерческих целях, закон направлен на сокращение использования ртути в коммерческих целях во всем мире.
https://www.epa.gov/mercury/environmental-laws-apply-mercury
Огайо Lumex предлагает ряд анализаторов ртути и сорбционных ловушек, которые обеспечивают выборочную проверку или измерения в режиме онлайн и в реальном времени для контроля и мониторинга выбросов и процессов.