trust already work Овен СИ8 - счетчик импульсов » Портал инженера

Овен СИ8 - счетчик импульсов

§1 Описание счетчика импульсов Овен СИ8

Счетчик импульсов - это одно из старейших и простейших устройств промышленной электроники.
Требования к ним давно известны и реализованы. Фирма которая не в состояние сделать хороший счетчик импульсов вряд ли сможет сделать что-нибудь стоящее.
Фирма Овен выпускает один из лучших отечественных микропроцессорных счетчиков, хотя в нем много существенных недостатков. Я опишу опыт применения этого счетчика, его особенности (недостатки). Полное функциональное описание СИ8 вы можете найти на сайте компании Овен , я не ставлю перед собой цели давать полное описание СИ8.
  • Функциональные возможности:
  • Прямой, обратный или реверсивный счет импульсов;
  • определение направления и скорости вращения;
  • подсчет текущего или суммарного расхода;
  • реальные единицы измерения продукции;
  • подсчет времени наработки оборудования;
  • измерение длительности процессов;
  • три внешних входа;
  • управление нагрузкой с помощью двух выходных устройств;
  • сохранение результатов счета при отключении питания;
  • встроенный модуль интерфейса RS-485.
Если посмотреть по функциональным возможностям, то всё выглядит неплохо. Но, чтобы понять как оно работает давайте сравним СИ8 с другими счетчиками. Для сравнения возьмем счетчики AS-8 Kracht и DA-5 Pepperl+Fuchs. По функциональным возможностям СИ8 превосходит эти счетчики. Остается только вопрос по мелочам: как это работает?

Рис.1 Счетчик импульсов DA-5 Pepperl+Fuchs 

 Рис.2 Счетчик импульсов AS-8 Kracht
Рис.3 Счетчик импульсов СИ8 Овен
 

§2 Мелочи не значат ничего - они определяют всё!

  • Сравнение счетчиков:
  • Дисплей.
    СИ8-8 мелких цифр.
    DA5 и AS8 - 5 крупных цифр.
    Мелкие цифры это минус, так как к приборам в промышленной зоне не всегда удается подойти близко.
  • Клавиатура.
    DA5 - высокие резиновые кнопки на которые удобно нажимать, даже в перчатках.
    AS8 - кнопки спрятаны под стекло.
    CИ8 - кнопки под плёнкой, что совсем не удобно (это архаизм), нажимать надо заострённым пальцем:)
    Кнопки должны быть большие и удобные либо их вообще не должно быть видно.(Почему смотри в п.3)
  • Доступ в режим программирования счетчика.
    СИ-8: просто нажатием на кнопку PROG.
    DA-5: нажать кнопку P и включить питание удерживая кнопку.
    AS-8: вскрыть окно, нажать и удерживать кнопку
    Как видите, доступ в режим программирования у СИ8 очень прост, это недостаток. Хотя возможно применение пароля на ввод параметров, но это не всегда помогает. Только на СИ8 я постоянно сталкиваюсь со случайным входом в режим программирования. Умудряются сбивать параметры даже на тех счетчиках, где нет операторов (т.е. случайные люди из интереса тыкают пальчиками).
  • Коэффициент перемножения (Отображаемая величина).
    AS8 и DA5 не зависимый.
    СИ8- это катастрофа! сделать зависимость положения десятичной точки на экране дисплея от положения десятичной точки у коэффициента перемножения входных импульсов!
    В результате:
    Обычно приходится заклеивать черной изолентой или бумагой ненужные разряды справа(если хочешь получить отображаемую величину в заданных единицах ), при этом при наличии 8 разрядов на дисплее, большая их часть уходит в никуда, а разрядов слева начинает катастрофически не хватать. Либо приходится выводить на дисплей величины не понятной размерности (например, при отображении метража пройденного транспортерной лентой вместо метров использовать полусантиметры). По моему глубокому мнению, современный счетчик, должен свободно преобразовывать входную величину в отображаемую. Т.е. не только масштабировать и округлять её, но и прибавлять/вычитать постоянную. Что в СИ-8 никак не реализовано.По сути дела,конструктора собственными руками уничтожили все функции своего счетчика (см.§1) кроме прямого и реверсивного счета в целых числах (удивительно что руководство предприятия пошло у них на поводу!)
  • Использование счетчика в режимах расходомеров, изм. скорости и т.п.
    СИ-8 почти не пригоден в этих режимах.
    Как сказано выше в п.4 мы не можем с заданной точностью ввести коэффициент перемножения, нас сдерживает связь с отображаемой величиной на дисплее.
    Есть ещё и другие проблемы. Например, хотим отображать на нем скорость вращения двигателя (оборотов/минуту) И чего?. Элементарная функция для счетчика расхода. Минимальное время измерения расхода (ti), которое в нем предусмотрено 1 сек. То есть это частотомер (оборот/сек т.е Гц). Умножаем на 60, чтобы получить оборот/минуту. Двигатель обычно делает от 30-60 об/сек. В результате на экране видим обор/мин, прыгающие раз в секунду ступеньками по ±60 об/мин (кому нужна такая плавность измерения?). Если хотим плавнее берем ti=10 секунд, но тогда данные на дисплее будут меняться раз в 10 секунд (ждать устанешь).
    Далее к вопросу расходомеров. Все расходомеры имеют линейность только в центре. Края характеристик всегда завалены. Поэтому прибор отображающий расход должен иметь возможность к аппроксимации кривизны.

    Рис.4 Реальная характеристика расходомера 

СИ-8 имеет только две точки привязки характеристики (F и di). Поэтому он отображает данные только по прямой линии, которая начинается со смещения di (синие линии на рис.5 при di=0 см. ниже).

Рис.5 Простейшая аппроксимация характеристики расходомера 

 
  • На рис.5 красным цветом показана простейшая аппроксимация характеристики расходомера тремя линиями (DA5). То есть счетчик должен иметь хотя бы три диапазона в которых можно задавать разные коэффициенты пересчета. В СИ8 аппроксимация не возможна.
  • Интерфейс обмена данными RS-485.
    Во всех рассматриваемых счетчиках он присутствует.
    Это очень большой плюс для СИ8, так как подключив счетчик к ПК вы программно уничтожаете все его недостатки. Вам нужно иметь только прямое показание входных импульсов, а все дальнейшее делайте программно с выводом на экран ПК.

§3 Протокол обмена СИ8 Овен по интерфейсу RS-485

Из описанного выше понятно, что наибольший интерес представляет использование этого счетчика в сети RS-485, если бы это было невозможно , я бы назвал этот счетчик никудышным (из-за п.4 §2).

Протокол обмена с приборами Овен  Вы не можете скачивать файлы с нашего сервера    Объем: 1285 kb Изменен:30.06.2009

Вторичные приборы-счетчики (slave) соединяются последовательно кабелем типа "витая пара" с волновым сопротивлением 100 Ом. Длина кабеля допустима до 1000 метров. На последнем вторичном приборе необходимо установить терминатор. Терминатор это обычное сопротивление, величина его должна быть равна волновому сопротивлению кабеля (в нашем случае 100 Ом). Он необходим для гашения вторичной волны, которая отражается от конца линии связи, а также для токовой запитки "витой пары".

Рис.6 Построение линии связи RS-485 из руководства по АС3 Овен 

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

В сети RS-485 по протоколу Овен предусмотрено присутствие только одного ведущего (master), обычно это ПК с программой опроса вторичных приборов. Счетчики СИ8 выступают в роли ведомых (slaves), они не могут сами инициировать обмен данными и ждут команду с запросом данных от ведущего. При получении команды запроса данных от ведущего счетчик посылает затребованные данные в сеть RS-485. При этом счетчик не проверяет свободна или занята линия связи и примерно через 1.1мс выдает ответ. Это является недостатком протокола ОВЕН, так как может вызывать коллизии в линии связи. Кроме этого если использовать конвертер интерфейсов в котором прием/передача данных в линию связи выбирается сигналом RTS (АС3 Овен), то всегда есть вероятность не успеть снять его активность в течении 1мс, что приводит к потере целостности ответа от счетчика. Это особенно чувствительно в ОС XP/Vista где приостановка действий вашей программы может значительно превышать интервал в 1мс. Настройки времени задержки ответа в счетчике СИ8 нет. Для решения этой проблемы используйте конверторы интерфейсов с автоматическим определением приёма/передачи (АС3М Овен). Я решаю эту проблему с АС3 замыканием сигнала TD на RTS перемычкой и не использование сигнала RTS от СОМ порта ПК. С таким соединением АС3 начинает работать как АС3М. Интересно, фирма ОВЕН разработала АС3М таким же способом или нет?

Другой особенностью протокола Овен (и наверно его недостатком) является передача байта информации тетрадно-символьным способом. То есть каждый передаваемый байт разбивается на две тетрады, каждой из которой присваивается заранее определённый символ, эти символы передаются в линию связи. На приёмной стороне для получения байта информации необходимо правильно склеить эти тетрады.

Таблица 1. Принятые ОВЕН символы для отображения тетрад
тетрадасимволбайт которой перелается по линии связи (код символа)
0000(0h)G47hex
0001(1h)H48hex
0010(2h)I49hex
0011(3h)J4Ahex
0100(4h)K4Bhex
0101(5h)L4Chex
0110(6h)M4Dhex
0111(7h)N4Ehex
1000(8h)O4Fhex
1001(9h)P50hex
1010(Ah)Q51hex
1011(Bh)R52hex
1100(Ch)S53hex
1101(Dh)T54hex
1110(Eh)U55hex
1111(Fh)V56hex
Недостатком (или точнее сказать неиспользованными возможностями) я здесь считаю то, что при 100% избыточности кода, Овен не использует возможности исправления битовых ошибок, а только предлагает обнаруживать их. При этом адресное пространство символов расположено слитно, без зазоров, тем самым существенно снижая детектирование битовых ошибок (так как байты символов слишком похожи, а вероятность однобитовой ошибки самая высокая!). Современный счетчик должен использовать корректирующее избыточное кодирование.

Кроме набора символов для передачи тетрад предусмотрено два маркера посылок(кадра).
Это символ # (код 23hex) который служит для обозначения начала посылки(кадра) и символ CR( код 0Dhex) концом посылки.

Рис.7 Структура кадра протокола ОВЕН 

Маркер начала кадра - информирует о начале посылки
Адрес прибора в сети - может быть 8 или 11 бит
Бит запроса - равен 1 если это команда запроса параметра счетчика, 0 - если это ответ счетчика
Длина блока данных - указывает размер блока данных в байтах
Идентификатор команды- hash свертка имени параметра
Блок данных- здесь передаются показания счетчика
Контрольная сумма - контрольная сумма пакета без маркеров
Маркер конца кадра - информирует о конце посылки
  • Перед началом работы в сети нужно выставить параметры счетчика СИ8
  • ALEn - 8 битный или 11 битный формат адреса прибора
  • Adr - адрес прибора в сети (он должен быть уникальный)
  • SPd - скорость обмена в сети RS-485
Таблица 2. Счетчик СИ8 имеет три параметра:
имя параметраhash-сверткатетрада-символописание команды
DCNTC173hexSHNJсчитывание показания счетчика
DSPD8FC2hexOVSIсчитывание показания расходомера
DTMRE69ChexUMPSсчитывание показания таймера

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

К примеру, чтобы прочитать показания счетчика с Adr=4, необходимо послать в сеть следующую посылку:

#GKHGSHNJNPHU(CR) 
в hex формате при преобразования по алгоритму Овен(таблица 1):
23 04 10 C1 73 79 1E 0D
В ответ получим (если счетчик по нулям) ответ:
#GKGKSHNJGGGGGGGGRSTL(CR) 
в hex формате после преобразования по алгоритму Овен(таблица 1):
23 04 04 C1 73 00 00 00 00 BC D5 OD
маркеры # и CR не преобразуются по таблице 1.

Для формирования запроса и чтения посылки необходимо вычислять контрольную сумму. Как я уже говорил для вычисления контрольной суммы берется вся посылка за исключением маркеров и контрольной суммы(естественно) и производится её побайтная свертка с полиномом 8F57hex по алгоритму изображенному на рис.8.

Рис.8 Алгоритм вычисления контрольной суммы протокола ОВЕН для одного байта 

 
  • Текстовое описание алгоритма:
  • Получив посылку отбрасываем маркеры и контрольную сумму;
  • Обнуляем переменную контрольной суммы;
  • Загружаем байт;
  • Сравниваем старшие биты байта и контрольной суммы;
  • Сдвигаем контрольную сумму на один разряд вправо (с потерей старшего разряда);
  • Если в п.4 биты не равны, то складываем контрольную сумму с полиномов функцией XOR(Исключающее ИЛИ);
  • Сдвигаем байт на один разряд вправо (с потерей старшего разряда);
  • Циклически переходим к п.4 пока не проверим все биты принятого байта;
  • Далее загружаем следующий байт посылки и повторяем п.3-8, пока не обработаем все байты посылки.;

Остался вопрос получения hash-свертки имени параметра, подробно описывать я его не буду. ОВЕН конструкторы здесь зачем-то намудрили. Имена параметров прибора записаны ASCII однозначно отображаются в передаваемые тетра-символы в ASCII. Для чего преобразовывать ASCII в ASCII. Например имена параметров DCNT->SHNJ, DSPD-> OVST, DTMR->UMPS всегда отображаются в одно и тоже. Овен предлагает взять имя параметра в ASCII (например DCNT), перевести его в двойчный вид не по кодовой странице ASCII, а кодовой странице придуманной ОВЕН. Потом сделать hash-свертку с полиномом 8F57hex по алгоритму несколько отличающемся от представленного на рис.8 и получившуюся hash-свертку перевести в тетрада-символы по таблице Овен. Чем обусловлен такой ход мысли разработчиков я объяснить не могу, почему сразу не назвать параметры как нужно для вставки в кадр?

Вы можете не использовать все эти преобразования для работы с СИ8, необходимо только знать какую посылку нужно послать для каждого адреса прибора. Это легче сделать вручную на листке бумаге чем писать алгоритмы всех этих обработок.
Можете воспользоваться таблицей 3, где посылки посчитаны для первых 15 адресов.

Таблица 3. Посылка запроса на СИ8 без маркеров
адрес прибораформатзапрос DCNTзапрос DSPDзапрос DTMR
01hex0110C173A81801108FC2D5F50110E69C92C6
посылкаGHHGSHNJQOHOGHHGOVSITLVLGHHGUMPSPISM
02hex0210C173E71A02108FC29AF70210E69CDDC4
посылкаGIHGSHNJUNHQGIHGOVSIPQVNGIHGUMPSTTSK
03hex0310C173DDE403108FC2A0090310E69CE73A
посылкаGJHGSHNJTTUKGJHGOVSIQGGPGJHGUMPSUNJQ
04hex0410C173791E04108FC204F30410E69C43C0
посылкаGKHGSHNJNPHUGKHGOVSIGKVJGKHGUMPSKJSG
05hex0510C17343E005108FC23E0D0510E69C793E
посылкаGLHGSHNJKJUGGLHGOVSIJUGTGLHGUMPSNPJU
06hex0610C1730CE206108FC2710F0610E69C363C
посылкаGMHGSHNJGSUIGMHGOVSINHGVGMHGUMPSJMJS
07hex0710C173361C07108FC24BF10710E69C0CC2
посылкаGNHGSHNJJMHSGNHGOVSIKRVHGNHGUMPSGSSI
08hex0810C173CA4108108FC2B7AC0810E69CF09F
посылкаGOHGSHNJSQKHGOHGOVSIRNQSGOHGUMPSVGPV
09hex0910C173F0BF09108FC28D520910E69CCA61
посылкаGPHGSHNJVGRVGPHGOVSIOTLIGPHGUMPSSQMH
10hex0A10C173BFBD0A108FC2C2500A10E69C8563
посылкаGQHGSHNJRVRTGQHGOVSISILGGQHGUMPSOLMJ
11hex0B10C17385430B108FC2F8AE0B10E69CBF9D
посылкаGRHGSHNJOLKJGRHGOVSIVOQUGRHGUMPSRVPT
12hex0C10C17321B90C108FC25C540C10E69C1B67
посылкаGSHGSHNJIHRPGSHGOVSILSLKGSHGUMPSHRMN
13hex0D10C1731B470D108FC266AA0D10E69C2199
посылкаGTHGSHNJHRKNGTHGOVSIMMQQGTHGUMPSIHPP
14hex0E10C17354450E108FC229A80E10E69C6E9B
посылкаGUHGSHNJLKKLGUHGOVSIIPQOGUHGUMPSMUPR
15hex0F10C1736EBB0F108FC213560F10E69C5465
посылкаGVHGSHNJMURRGVHGOVSIGJLMGVHGUMPSLKML

Получив ответ от счетчика, в поле данных будут находиться его показания в символьном виде. Переведите символы в двоичные тетрады согласно таблицы 1. Получившееся двоичное число нужно перевести в показания счетчика согласно формату данных определённых фирмой ОВЕН.

Для DCNT
Имеет знак (S), десятичный порядок (Exponent) указывающий положение десятичной точки
(0 для целого числа, 1 для числа с десятыми долями и т.п.) и ненормализованную мантиссу (Mantissa). 
S - старший бит
Exponent- 3 следующих бита
Mantissa- остальные биты (длина мантиссы определяется размером поля данных)
Суммарная длина должна составлять целое число байтов
числа можно вычислить, как
(-1)^S * 10^(-Exponent) * Mantissa
Мантисса может выражаться как в двоичном, так и в двоично-десятичном виде.
Например:
-10.38 выражается как 0xA01038 при двоично-десятичном представлении мантиссы
или как 0xA40E, то есть на байт короче, при ее двоичном представлении.

Для DSPD аналогично DCNT только без бита знака

Для DTMR
0-й байт – сотые доли секунды;
1-й байт – секунды;
2-й байт – минуты;
3, 4, 5-й байты – часы.

§4 Заключение

Как я писал в начале статьи СИ8 один из лучших отечественных счетчиков, и это не насмешка.
СИ8 был выпущен в 90-е годы и в то время был довольно продвинутым. Он более 10 лет находится в эксплуатации. Фирма Овен несколько запаздывает с модернизацией счетчика и эту статью я писал в надежде что они учтут пожелание потребителей при разработки нового счетчика. Насколько мне известно к выпуску готовиться счетчик СИ30 ОВЕН(надеюсь у него не будет 30 разрядов на экране :))


Источник:http://softelectro.ru


Обсудить на форуме

Комментарии

Добавить комментарий
    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent

    Овен СИ30 счетчик импульсов

      Счетчик импульсов ОВЕН СИ30 входит в состав новой линейки счетчиков импульсов, отличающейся повышенной устойчивостью к различным видам электромагнитных помех.