Перейти к содержанию

Рекомендуемые сообщения

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

  • 8 месяцев спустя...

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

Код 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" каждый раз разные! Может знает кто, как выдернуть инфу о состоянии шлейфов?

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

Изменено пользователем КЭС
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

Изменено пользователем КЭС
Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Изменено пользователем ferrum

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Изменено пользователем ferrum

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Изменено пользователем ferrum

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

Ссылка на комментарий
Поделиться на другие сайты

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

Voila...

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

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

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

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

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

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

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

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

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

Изменено пользователем ferrum

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

Изменено пользователем ferrum

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

Попытаюсь.

Добавляем в конфигурацию С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

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

Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

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

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

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

Из листинга -

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...