партнерский раздел
ФорумЭксплуатацияС2000-ПП, Modbus, работа с С2000-2

Эксплуатация » С2000-ПП, Modbus, работа с С2000-2

Добрый день,
требуется помощь по снятию/взятию охранных ШС прибора С2000-2 через прибор С2000-ПП по протоколу Modbus.
Собрал небольшую тестовую систему С2000М, С2000-ПП, С2000-2. В С2000М сделал трансляцию всех событий в С2000-ПП, в том числе взятие/снятие, никакой сценариев не прописано. В С2000-2 настроил два ШС как охранные, но ничего не подключил, при старте соответственно ШС на охрану не встаёт. Настроил зоны в С2000-ПП.
Во время работы с прибора С2000М через меню "Управление" ставлю ШС1 прибора С2000-2 в охрану, т.к. на ШС1 ничего не подключено, то соответственно получаю сигнал "Невзятие", который также получаю по Modbus через С2000-ПП.
Когда посылаю запрос на взятие ШС1 через Modbus команда установки состояния зоны  [01 06 9С 98 00 18 CRC], пакет в С2000-ПП доходит, ответ повторяет запрос, вроде как успех, но никаких событий о невзятии далее в буфер С2000-ПП не поступает, никаких событий на С2000М не отображается, как будто команда дальше С2000-ПП не уходит.

Так и должно быть или всё таки рекация должна быть такая же как при взятии с пульта С2000М?

Подскажите какие настройки стоит проверить и в каком направлении искать ошибку, если она есть?

5 лет 3 месяца назад

avatar
В запросе адрес 40088 регистра, что соответсвует 89 строчке в таблице зон, вы с таблицей то разобрались в ПП?

Тремасов Константин Александрович 5 лет 3 месяца назад

С учётом того что сообщения о состоянии зон я получаю - разобрался, это опечатка в моем сообщении, должно быть 40008 - 9-я строка (зона Modbus). Спасибо за замечание. 

Роман 5 лет 3 месяца назад

Может быть стоит выложить конфиги в облако, а ссылку сюда?

Тремасов Константин Александрович 5 лет 3 месяца назад

Иногда бывает что надо отправить команду на взятие не 01 06 9С 98 00 18 CRC (24), а 01 06 9С 98 18 00 CRC (6144).

Тремасов Константин Александрович 5 лет 3 месяца назад

Спасибо,   попробую.
Конфигурации выложу позже, если ничего не получится. 

Роман 5 лет 3 месяца назад

Точно не знаю, но возможно надо в Pprog привязку управления разделов сделать к ПП.

Тремасов Константин Александрович 5 лет 3 месяца назад

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

3 ответа

День добрый. 
Самый простой вариант - взять программу которая называется "Панель управления С2000-ПП" . Взять её можно на странице самого С2000-ПП.
В програаме можен ои брать на охрану шлейфы и снимать с охраны. Так же в программе есть логгирование.
Нужное Вам логгирование - это те команды в протоколе Modbus которые посылает эта, работающая программа. Ну и само собой ответы в протоколе Modbus.
Ну и для отладки - программа вещь незаменимая.



 

5 лет 3 месяца назад

avatar
Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

Константин, Юрий, спасибо что откликнулись.

Но...
сказалась усталость, дело оказалось в банальной опечатке вместо 40008 в исходном коде было набрано 10008 мелким шрифтом.
Всё поправил, всё заработало.

Есть заметка по адресации Modbus.
По стандарту Modbus (http://modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf  лист 8) в сообщении PDU адресация идёт с нуля, в модели данных Modbus адресация с единицы. Т.е. регистру 46264 соответствует значение адреса 46263 в PDU.

Собственно вопрос в РЭ на С2000-ПП указана адресация по модели данных Modbus или PDU?
В большинстве описаний, оборудования, с которым мне доводилось работать, обычно указывают адресацию согласно модели данных Modbus. Но в С2000-ПП похоже указана адресация PDU, т.к. при чтении буфера событий при мониторинге пакетов через MOXA я вижу значение B4B8 (46264), что соответствует регистру 46265.
Было бы неплохо упомянуть об этом в РЭ на С2000-ПП.

5 лет 3 месяца назад

avatar
День добрый, Роман. 
Достаточно странно что Вы видите в  Moxa одно а запрашиваете другое. 
Это ввиду того, что в РЭ на С2000-ПП указаны Адреса  в протоколе Modbus (для исключения путаницы и повторяемости примеров в Руководстве по эксплуатации;))
То-есть к примеру чтение событий это адрес "Адрес регистра = 46264" и даже в примере на стр.41 видно, что в "посылке" этот адрес должен выглядеть как "B4B8"
Я бы посоветовал использовать преобразователи RS485 интерфейса в прозрачном режиме, не добавляя искажений пакетов. При этом есть вариант Вы запрашивали достаточно мало регистров и получили только "остаток" события. Рекомендую Панель Управления попробовать. 

Горелый Юрий Алексеевич 5 лет 3 месяца назад

Он в посылке и выглядит как B4B8 - это адресация в PDU, но по модели данных Modbus согласно приведённому документу выше  (http://modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf  лист 8) - B4B8 это регистр №46265. Ну да ладно, не столь важно.

Года два назад мы реализовывали обмен через С2000-ПП по одному из проектов. Тогда использовали опрос буфера событий. Данный способ насколько я помню обладал одним не очень удобным эффектом, при запуске системы, до возникновения какого-либо события в Орионе, С2000-ПП может не знать состояние каких-либо приборов или ШС, соответственно и клиент Modbus ничего не знает. Тем не меннее больших неприятностей нам это не доставило, просто приходилось некторое время подождать.

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

Роман 5 лет 3 месяца назад

"Панель управления С2000-ПП" была создана для помощи в интеграции прибора.
Поэтому обмен с устройством был сделан максимально прозрачным образом.

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

Ларин Юрий Александрович 5 лет 3 месяца назад

Юрий,
можете подробнее пояснить что значит вычитание событий и про нюансы?

Вычитанием что можно получить? Количество  не прочитанных событий ?
Номера событий приходят из системы Орион? Если да, то вопрос, они гарантировано приходят подряд без разрывов (1,2,3,4, .....)?

Вообщем есть нюансы, которые пока не освещены в руководстве или я их там не заметил.

 

Роман 5 лет 3 месяца назад

День добрый, Роман.
Для построения Вашего алгоритма опроса событий
Рекомендую к прочтению 
https://bolid.ru/files/373/566/s2000_pp_re_v.1.31_apr_18.pdf
страницу 39

В случае если возникнут дополнительные вопросы, мы на них сразу ответим.

Горелый Юрий Алексеевич 5 лет 3 месяца назад

Если присмотреться, то я писал "вычитывание событий", а не "вычитание" =)

Про нюансы:

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

Именно такой алгоритм и реализован в "Панели управления С2000-ПП":
- запрос номера самого старого непрочитанного
- его получение
- пометка о прочтении
(получение номеров самого старого и самого нового в данном случае служат лишь для диагностики)

Совсем другая ситуация, если нам придётся вычитывать события не помечая их как прочитанные, или же получить события с уже выставленным флагом о прочтении.

В этих случаях следует учесть ряд нюансов:

- размер буфера событий всего 256 записей

 * по достижении конца списка, начинают затираться записи в его начале, следовательно, при большом количестве поступающих событий, многие из них просто пропадут (актуально при малых скоростях, ниже скорости работы протокола "Орион" и/или высокой активности на линии, когда устройство физически не успевает выполнять все команды с нужной скоростью)

- номера событиям выдаются строго по порядку, но размер регистра с номером не резиновый (целое 16 бит без знака) и в определённый момент происходит переполнение, и сброс номера в нуль. Это следует учесть при цикличном чтении событий (новые события будут иметь номера меньше старых).

и другие нюансы, которые могут обнаружиться только в процессе эксплуатации прибора в вашей конкретной конфигурации.

 

Ларин Юрий Александрович 5 лет 3 месяца назад

Добрый вечер  Юрий. Читал  эту страницу неоднократно. Использую и буфер и запросы к зонам. Я не вижу на этой странице ответы на заданные вопросы:
Что значит вычитание упомянутые Вами? 

Номер события приходит из системы Орион (от С2000М)?

Или же номер события это всего лишь номер ячейки в кольцевом буфере и он никак не связан ни с какими номерами в С2000М? В таком случае ещё могу предположить для чего может понадобиться вычитание, например чтобы контролировать перезапись старых событий новыми, но это можно утверждать только, если знать как устроено хранение данных в буфер  хранение номеров событий. Только вот в РЭ этого не написано  а на догадках строить систему никуда не годится и в диагностике проблем жизнь усложняет. 
 

Роман 5 лет 3 месяца назад

Юрий, пока писал сообщение не увидел Вашего дополнения.
Т.е.получается номера событий задаёт сам С2000ПП, а моё предположение о номере события как об номере ячейки не верно.
Ну и соответственно сравнением номеров событий (например вычитанием) позволяет контролировать затирание старых событий.

Роман 5 лет 3 месяца назад

Юрий, можете привести пример какой-то практической ситуации, когда после считывания события не нужно помечать его прочитанных? 

Роман 5 лет 3 месяца назад

Если С2000-ПП находится на линии как Master, то он сам генерирует события и раздаёт им номера, а если в режиме Slave, то события генерируются и нумеруются "Пультом", кроме событий "Сброс" и "Неправильное напряжение источника питания".
 
Помечать событие как прочитанное не стоит в том случае если:
- была ошибка чтения и нужно повторить запрос
- если события вычитываются несколькими программами
- если задача только собрать события
- итд в зависимости от конкретной ситуации

P.S. Лично мне такая задача ставилась, поэтому ситуация более чем возможна

 

Ларин Юрий Александрович 5 лет 3 месяца назад

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

Добрый день,
есть такая конфигурация, приложил конфигурационные файлы:
С2000М - https://drive.google.com/open?id=1ZV0dinsOK7QjmFEeXZw_LmWlbvAeanWA
С2000-2 - https://drive.google.com/open?id=1MNXNRRXEZY8gS6gCBpJn40bElzwJjbjJ
С2000-ПП - https://drive.google.com/open?id=1NFv_JX5KN2YF2Ov-qZOA9BNKrXgrVxR2

С2000-ПП в режиме Slave на интерфейсе Орион.
К С2000-2 подключен один считыватель, первый.

Подношу ключ к считывателю, С2000-2 согласно конфигурации включает реле на 5 сек., затем отключает. Вопросов нет.

Не могу понять почему события включения/отключения реле прибора С2000-2 не транслируются в кольцевой буфер событий прибора С2000-ПП.
При опросе кольцевого буфера от прибора С2000-2 вообще никаких событий не поступает.

Следующий эксперимент, даю через С2000-ПП команду на включение/отключение второго реле прибора С2000-2, реле включается/отключается.
а реле №1 не реагирует. Опять же никаких событий о состоянии реле в кольцевой буфер событий не поступает.

Тем не менее прямой запрос состояния реле №2 возвращает статус реле, но  по реле №1 никакой инфомрации получить не выходит.

5 лет 3 месяца назад

avatar
Насколько я знаю, чтобы получать состояние реле, необходимо это реле отвязать от локальных тактик, это когда сам прибор управляет реле. В вашем случае, скоре всего установлен режим одна дверь на вход/выход, задействовано только первое реле прибора, второе самим прибором не управляется, поэтому вы видите состояние второго и даже можете им управлять, а первого нет, так как им управляет прибор. Попробуйте поставить галки на на события дверь открыта и дверь закрыта, не уверен что поможет, но попробовать стоит. Я вообще не уверен что ПП может работать с доступом. Еще вариант, не реле опрашивать, а закинуть один из считывателей в раздел и пробовать получить события от считки.

Тремасов Константин Александрович 5 лет 3 месяца назад

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

Видимо так и есть.

Посмотрел ещё раз настройки реле, заметил галку "События о включении /выключении реле". Поставил, события стали приходить в кольцевой буфер.
У меня версия прибора 2.20, судя по инструкции поддержка событий появилась только с версии 1.15.

По считывателям тоже сомнения можно ли к ним как к ШС получить доступ из С2000-ПП. Не ясно какой номер шлейфа указывать в ПП для них, если это вообще возможно.
В ПП в настройках ключей прописал ключ, но в событиях, судя по логам с Moxa, ни в одном из сообщений не
проскакивает поле №1 "Порядковый номре пользователя в базе данных С2000-ПП".

Роман 5 лет 3 месяца назад

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

Добавить ответ

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

ПОКАЗАН

4250 раз

ЗАДАН

5 лет 3 месяца назад

По каждому вопросу/ответу можно добавлять комментарии. Комментарии предназначены для уточнения вопроса/ответа.