Jump to content

Recommended Posts

Доброго времени суток, господа!

Сталкивался ли кто со спецификацией протокола обмена Болид (Орион)? Я понимаю что эти данные закрыты, но возможно народные умельцы смогли понять его работу?

Link to comment
Share on other sites

Ничего там сверхестественного нет . Протокол и протокол. Сам посмотри. Каждая запрос начинается с заголовка(адреса, размера посылки) ,тела(команды, данные) и оканчивается CRC. Длина посылки зависит от контекста.Код CRC и является препятствием(для меня) для воспроизведения. Интерес к протоколу упал после выхода C2000-ПП

абыр абыр абырвалг...

Link to comment
Share on other sites

  • 8 months later...

Здравствуйте! Тоже столкнулся с необходимостью расковырять этот протокол.

Код CRC и является препятствием

Как раз это и не проблема. Вот пример вычисления (на PureBasic) CRC реального ответа от "Сигнал-20", где первый байт (132) -это адрес прибора(4) плюс 128 (не понятно почему так), второй байт(5)-это кол-во байт в посылке, последний, шестой байт- это CRC, его мы успешно и получаем.


; CRC ОРИОН
; Побайтное вычисление CRC8
;

Procedure Crc8(inbait ,incrc)
bait.c=inbait
crc.c=incrc
For i=0 To 7
If bait ! crc & 1 = 1
 crc=((crc ! %00011000) >> 1 ) | %10000000
Else
 crc=crc >> 1
EndIf
bait = bait >> 1
Next i
ProcedureReturn crc
EndProcedure
Dim Data_Array.c(7)
CRC.c=0
; размер массива равен полной длине посылки (включая адрес), но без последнего байта-это и есть CRC
; пример ответа от Сигнал-20: 132 5 178 156 176 26
Data_Array(0) = 132
Data_Array(1) = 5
Data_Array(2) = 178
Data_Array(3) = 156
Data_Array(4) = 176

For k=0 To 4
crc=Crc8(Data_Array(k) ,crc )
Next k
Debug crc

А вот с оставшимися байтами (3-5) просто беда! При одинаковом состоянии шлейфов ответы от "Сигнал-20" каждый раз разные! Может знает кто, как выдернуть инфу о состоянии шлейфов?

Link to comment
Share on other sites

Экономичность и универсальность: новые DC/DC-преобразователи MORNSUN для ответственных применений
Высокое качество при конкурентной стоимости позволяет DC/DC-преобразователям MORNSUN конкурировать с аналогами ведущих мировых производителей. Продукция данного бренда, такая как семейство UWTH1D, может с успехом применяться в железнодорожных приложениях. Для телекоммуникационного оборудования подходят DC/DC-преобразователи семейств VCB и VCF, для систем распределенного электропитания – малогабаритные импульсные PoL-стабилизаторы напряжения семейства K78, а для автоматизированных системах производства и робототехники, незаменима серия KUB. Есть и уникальные решения, например, миниатюрный DC/DC-конвертер B0505ST16-W5 в корпусе микросхемы, предназначенный для медицинских приборов.

Читать подробнее>>

Немного разобрался! Приборы, с которыми я экспериментировал (Сигнал-20, С2000-СП1), отвечают на запросы контроллера С2000 шестибайтными посылками, в байтах 3-5 содержится информация (считаем байт адреса за первый). Чтобы её получить, необходимо произвести между двумя из байт операцию "исключающее ИЛИ" ("XOR"). При этом получается три байта: (b3 XOR b5) -как-то связано с номером шлейфа, а так же состояние при стартовом опросе прибора, (b4 XOR b5) -счетчик посылок, сбрасывается при изменении состояния шлейфов, (b3 XOR b4) -типа ответ на команду ("статус"). Таким образом у меня получилось-таки отлавливать события (сработки, взятие-невзятие и т.д.), включение-выключение реле на СП1, чего и остальным страждущим искренне желаю!

Link to comment
Share on other sites

  • 2 weeks later...

POWER FLASH – новая продукция в линейке поставок Компэл

Компэл стал дистрибьютором компании POWER FLASH, производящей широкий спектр популярных батареек. POWER FLASH производит солевые и щелочные (алкалиновые) цилиндрические батарейки, а также серию литий-диоксидмарганцевых батареек. POWER FLASH выступает OEM-производителем для крупных японских и европейских производителей батареек.

Батарейки POWER FLASH предназначены для самого широкого спектра применений – от бытового до промышленного.

Подробнее>>

Интересно, надо попробывать этот алгоритм. Сейчас нет преобразователя, чтоб поковырять, вернут - попробую.

Я разные приборы пробывал, разные сетевые опросчики (С2000, uprog,pprog,shleifes) и могу сказать что посылки достаточно разной длинны, полностью зависит от контекста, типов приборов и программ. Даже поиск приборов программами и пультом происходит немного по разном. Припамянаю, что при обмене с прибором было число, которое принималось прибором, инкрементировалось на еденицу и в ответе отправлялось опросчику(думаю это какой то механизм контроля подмены прибора )

абыр абыр абырвалг...

Link to comment
Share on other sites

Экономичность и универсальность: новые DC/DC-преобразователи MORNSUN для ответственных применений
Высокое качество при конкурентной стоимости позволяет DC/DC-преобразователям MORNSUN конкурировать с аналогами ведущих мировых производителей. Продукция данного бренда, такая как семейство UWTH1D, может с успехом применяться в железнодорожных приложениях. Для телекоммуникационного оборудования подходят DC/DC-преобразователи семейств VCB и VCF, для систем распределенного электропитания – малогабаритные импульсные PoL-стабилизаторы напряжения семейства K78, а для автоматизированных системах производства и робототехники, незаменима серия KUB. Есть и уникальные решения, например, миниатюрный DC/DC-конвертер B0505ST16-W5 в корпусе микросхемы, предназначенный для медицинских приборов.

Читать статью>>

Выше я писал, что адрес прибора передается увеличенным на 128. С этим тоже прояснилось: пока прибор не обнаружен, контроллер посылает запрос на присутствие, в заголовке которого указан "чистый" адрес, после обнаружения обмен информацией ведется с использованием адреса, увеличенного на 128. Теперь понятно, почему в системе может быть не более 127 адресов (нулевой адрес, как известно, используется для широковещательных сообщений).

Edited by КЭС
Link to comment
Share on other sites

что то не припомню широковещания у болида, есть примеры? Видимо страший бит байта адреса несет в себе какой то смысл, флаг чего то.

127 адресов в болиде скорее наверное исторически. Изначально взяли драйвера 485го с 1\4 UL , потом решили, чего зря биту пропадать и заняли какой то служебной информацией. А сейчас куча драйверов с 1\8 ul, казалось бы взяли бы и увеличили максимальное количество устройств до 256, да вот незадача бита нехватает :) Это ведь не этап разработки, миллионы устройств по России уже наверное в работе!

абыр абыр абырвалг...

Link to comment
Share on other sites

Широковещалка у болида есть. Например, если заглянуть в программе pprog в страничку, где указывается, каким приборам передавать события (страницы->разное->передача событий->приборам), там есть ярлычек "Всем". Если его выбрать, в правой части окна программы (инспектор (события)) будет указан адрес"0".

На счет 8го бита в адресе. Он действительно занят служебной информацией: это флаг того, что прибор с этим адресом обнаружен и находится в работе. Об этом я и писал в своем предыдущем посте.

Edited by КЭС
Link to comment
Share on other sites

Здравствуйте! Тоже разбираюсь с Орионом, хочу программно запустить релюшку с прибора с2000-2! Насколько я понял это можно сделать из под программ ОРИОНА, но я пищу свой софт, к порту подключился, а вот как послать команду не знаю, напишите кто нибудь как это программно реализовать, простой пример! Пишу на C#! Заранее спасибо!

Link to comment
Share on other sites

Напрямую управлять реле с2000-2 нельзя(например как у Сигнала,С2000-4, СП1,КПБ). Жестко привязан к локальной тактике работы. Нужно сформировать сообщение сетевого контроллера чтото типа "Разрешить доступ"

абыр абыр абырвалг...

Link to comment
Share on other sites

Да, но из под программы "Администратор базы данных" у меня например получается послать сигнал на с2000-2 замыкания контактов, так почему нельзя это запрограммировать послав аналогичную команду из под другого программного обеспечения? Насколько я понял, мне только и надо одну лишь команду найти?!

Link to comment
Share on other sites

из под программы "Администратор базы данных" у меня например получается послать сигнал на с2000-2 замыкания контактов

Ну так и смотри на СОМ-порту, что посылает программа, попробуй смоделировать такую же посылку.

Link to comment
Share on other sites

Anthon, АРМ есть купленный? Если да , то делаешь сценарий с нужными действиями, вешаешь его на горячую клавишу, затем своей программой посылаешь оперативной задаче сочетание клавиш.

Кстати если у тебя на этом компе крутится оперативная задача , то порт ею занят, если ОЗ нет, а есть С2000(М) то пойдут потери приборов у пульта. Потому что доступ детерминированный, и сетевой контроллер решает кому когда говорить.

пс Вот как раз АБД формирует "Разрешить доступ" значит, только я у АБД не припомню такую функцию, может у тебя Орион ПРО ? :umnik2:

Edited by ferrum

абыр абыр абырвалг...

Link to comment
Share on other sites

В АБД на релюшке меняешь свойства включить, включить на время, после сохраняешь и между контактами +12В1 и DOOR1 проскакивает импульс. Да я вот и думаю, надо попробовать прослушать порт, а вот по поводу оперативной задачи, это походу тоже проблема, ведь если порт уже каким-то приложением будет открыт, его же уже из под другого не запустишь?!

Link to comment
Share on other sites

Если есть оперативная задача, то я уже сказал как тебе решить. Если расскажешь свою задачу вкомплексе, то может придумаем решение.

Здесь люди лезут в дебри, потомучто это интересно, а не потому что без этого никиак. Многие вещи можно сделать некустарными методами.

Причем здесь Door1 и +12В когда речь идет о реле,Door это ведь СМК двери или датчик прохода турникета.

Если хочется заморочится, то проэмулируй работу прибора со считывателем, пересылаяя Ориону идентификатор с достаточным уровнем прав. Эмулировать приборы - реально, что и доказал КЭС.

Edited by ferrum

абыр абыр абырвалг...

Link to comment
Share on other sites

Задача у меня такая: Есть одноразовые пропуска на территорию, ну тобишь для посторонних лиц, делать им проксимити-карты смысла нет, придумали наносить на одноразовые пропуска штрих коды, дальше свой считыватель, ну и подружить все это хотел через комп, свая база данных, учет посторонних лиц и т.д.! Короче основная задача открыть турникет с постороннего считывателя через Bolid-контроллер! А вообще можно же как-то через rs232 управлять реле на прямую?!

Link to comment
Share on other sites

Вроде все просто, согласуй какой нибудь управляющий сигнал компорта с входом контроллера "Открывание по кнопке". Свой\чужой решение примает твоё ПО, в зависимости от данных баркодсканера, при успехе дергаешь за линию компорта - турникет открывается. соответственно все временные пропуска регистрируются Орионом одинаково "Кнопка", а учет проходов ведешь в своей программе.

В этом случае неплохо было бы предусмотреть ввод в ПО информации с датчика прохода. А то пропуск приложат, а не пройдут. А в твоей базе - человек находится внутри!! И "ты" поидее обязан его искать с охраной, по просроку по времени. Может он где то в яму упал по незнанке. А так прохода небыло - пропуск в девственном состоянии.

Повторяю, напрямую управлять реле нельзя, это не реле контрольного прибора и не релейный блок - команды "Включить, включить на время и др." он незнает. Максимум что можно, это имитировать АРМ "Орион" и командовать "Разрешить доступ" централизованно, но для этого Оперативная задача должна быть ВЫКЛЮЧЕНА и соответственно нужно знать часть протокола .

Не понимаю почему не хочешь через оперативную задачу сделать, чистый программизм никакого железа

Edited by ferrum

абыр абыр абырвалг...

Link to comment
Share on other sites

Может знает кто, как выдернуть инфу о состоянии шлейфов?

Voila...

Получаем состояние ШС

Запрос: Адр Кол 0 25 ШС 0 CRC

Ответ: Адр Кол 26 ШС ССТ CRC

где ССТ - состояние шлейфа

Например : 109 -Снят, 24 - Взят, 3 -Тревога, 17-Невзятие

Получаем значение АЦП

Запрос: Адр Кол 0 27 ШС 0 CRC

Ответ: Адр Кол 28 ШС АЦП CRC

пс Пробывал с прибором Сигнал-20П Smd v.2.02

Edited by ferrum

абыр абыр абырвалг...

Link to comment
Share on other sites

ferrum, сдается мне, что твой ребус мало кому поможет. :umnik2: Я так понимаю, запросы ты взял с uprog? Они там фиксированные, ответы Сигнала-20 на них-тоже. Если же "слушать" RS-485 "разговора" С2000 с Сигналом-20, там будут совсем другие посылки. Чтобы добыть истину, байты надо "ксорить", как я писал в 4м посте.

Link to comment
Share on other sites

ХА, ты подслушиваешь чужие обмены?

Ну незнаю, кому может помочь, но работает, достоверные данные о ШС получаю, уже можно Сигнал использовать с собоственным ПО.

Снифание обменов скорее будет полезным взломщикам, чем людям прикручивающим болидовские железяки в свою систему.

Я ,например, не передавал бы(еслиб протокол был мой) состояние ШС без причины, запрашивал бы признак изменения состояния ШС прибора с последнего опроса. Если б признак получал, то тогда бы запросил нужные ШС, а так чего просто так забивать интерфейс.

пс Uprog не опрашивает состояние ШС, взял у пр. Shleifes

Edited by ferrum

абыр абыр абырвалг...

Link to comment
Share on other sites

Я бы ,например, не передавал бы(еслиб протокол был мой) состояние ШС без причины, запрашивал бы признак изменения состояния ШС прибора с последнего опроса.

Так и есть. Если состояние шлейфов неизменно, от Сигналов передаются только посылки, подтверждающие присутствие прибора. Про Uprog -это я перепутал по запарке, действительно Shleifes запрашивает. Снифер я делал, бесполезная вещь, т.к. неизвестно состояние шлейфов (реле) на момент запуска снифера, можно только отловить события. Именно поэтому я и заморочился с эмуляцией СП1.

Link to comment
Share on other sites

Попытаюсь.

Добавляем в конфигурацию С2000 (через pprog) новый прибор, делаем его СП1, версия не имеет значения, присваиваем ему адрес, например 50.

После этого контроллер будет периодически запрашивать этот прибор . Здесь я делаю маленькое отступление: везде, где будут встречаться указания кодов посылок, будет иметься ввиду "проксоренная" последовательность. Пример: принята последовательность 178;6;45;46;47;48;31;. Байты считаем слева направо от 1. Получается: 1й байт(178)-адрес прибора, которому адресован запрос(50) плюс 128;, 2й байт(6)-длина посылки(без CRC), 3-6 байты - собственно запрос, 7байт-CRC.

Теперь необходимо с каждую пару байт "проксорить" между собой. Получится последовательность из (х*х-х)/2 байт,где х- число исходных байт, в нашем случае их 4.

Вот процедурка для такой обработки:

Procedure.s detect(xyz.s)
Dim xvrem.c(0)
rez.s=""

For a=3 To CountString(xyz.s, ";")-1
ReDim xvrem.c(a-3)
xvrem(a-3)=Val(StringField(xyz.s, a, ";"))
Next a


For b=0 To a-4
For k=b+1 To a-4
rez.s+Str(xvrem.c(!xvrem.c(k))+";"
st+1
Next k

Next b
ProcedureReturn rez.s
EndProcedure

Debug detect("178;6;45;46;47;48;31;")

На выходе процедура выдаст "3;2;29;1;30;31;" (в нашем примере). Вот это и есть "голая правда" протокола Болид!

Теперь, собственно о "разговоре" С2000 с СП1.

Пока прибор не обнаружен, С2000 посылает запрос "1;0;254;1;255;254;".

Дальше необходимо отметить, что в СП1 имеется счетчик , инкременирующийся при каждой новой передаче (не совсем так, об этом позже)

он используется при формировании ответа.

Следующие строчки я переписывал несколько раз, книга получается! давайте я выложу исходник своей недоделанной, но рабочей версии эмулятора, написана на PureBasic 4.10. ну и скомпилированный вариант.болид1.rar

Будут вопросы (а они будут!), отвечу.

Link to comment
Share on other sites

  • 3 weeks later...

На выходе процедура выдаст "3;2;29;1;30;31;" (в нашем примере).

И что с этим делать , проксоренным...

Пример не работает что-то( . Пульт не обнаруживает ваш эмуль и команды вкл. реле непроходят.

Из листинга -

If adrabs=77  ;почему-то с этим адресом приходится менять нормальный CRC на 252

Потому что Болид неиспользует расчет CRC8 с помощью полинома. У них таблица изменена намеренно, вот вы и натыкаетесь на эти грабли.

Link to comment
Share on other sites

Не обнаруживает, потому что это не реализовано, там ответ надо формировать соответствующий, надо вручную сконфигурить в pprog' е.

Задержку перед ответом надо поставить >=1мс (у меня работает с значениями 1-5). Программа не закончена, сейчас не имею возможности разбираться, только после 20го (по заезду на вахту).

О какой таблице речь? CRC вычисляется программно, в запросах от контроллера несоответствий вычисленного и принятого замечено не было.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.

  • Сообщения

    • Рабочая точка слишком близко к области сеточных токов. Если характеристики лампы уплыли, то вполне возможно, что рабочая точка была уже при токах сетки. И то, что на схеме на сетке ФИ больше вольт, чем на катоде, говорит в пользу этого. А они скорей всего сильно уплыли, т.к. на лампе падает всего 10 вольт(104 на катоде и 114 на аноде). В любом случае, если б ты сделал по графику, и оставил бы по рассчётам лампе вольт 100-120, то фазик всё бы переворачивал даже при полудохлой лампе. Ну а если нет возможности столько вольт ей дать, то можно было увеличить резисторы настолько, чтоб ток понизился миллиампер до 3-5. Тогда тоже был бы шанс, что всё бы работало.
    • Над сгоревшей мс много не запаянных элементов, очень похоже на шим, возможно киты просто решили сэкономить.
    • Что в общем то ожидаемо. КРАВ бы точнее выразился. Ну да ладно. По сути - вы сморозили глупость, а ответить за свои слова не в состоянии. Ну да бог вам судья. Удачи.
    • Для долговременного питания аппаратуры ионисторы не очень подходят из-за саморазряда. А вот для поддержания питания при пропадании внешнего – очень даже используются. Ионисторы были даже в старых автомагнитолах, для сохранения настроек при отключении АКБ в авто. А сейчас делают автомобильные видеорегистраторы с ионисторами. При отключении питания заряда ионистора хватает корректно завершить запись и отключиться. И, в отличие от li-ion аккумуляторов, ионисторы лучше переживают морозы и жару. 
    • Вас это не касается никак. Поэтому я предпочту обратиться в соответствующие  правонарушениям инстанции. Спасибо.
    • Ну, моторы разные, частоты тоже. Я помню, когда настраивал, у меня выброс был гораздо короче при номинальной нагрузке, с небольшим резистором последовательно с диодом. Схема, конечно, примитивная и среднее напряжение на ключе зависит не только от полочки, но и ширины импульсов ШИМ. У меня даже была мысль делать выборку перед открытием ключа, но не стал заморачиваться, результат и так устраивал.
    • Я нисколько не уменьшаю необходимость и нужность расчетов по ВАХам, но уже успел заметить, что эти расчёты при настройке УНЧ оказываются неверными.  Это как  считать-считать выходной трансформатор, его КТР и всё такое. А в итоге делаются отводы для ктр в диапазоне от 27 до 35 крат,  и подбирается отвод с наименьшими искажениями.
×
×
  • Create New...