партнерский раздел
ФорумЭксплуатацияС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М?

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

20 дней 13 часов назад

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

Тремасов Константин Александрович 20 дней 11 часов назад

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

Роман 20 дней 11 часов назад

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

Тремасов Константин Александрович 20 дней 11 часов назад

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

Тремасов Константин Александрович 20 дней 10 часов назад

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

Роман 20 дней 10 часов назад

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

Тремасов Константин Александрович 20 дней 10 часов назад

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

3 ответа

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



 

20 дней 7 часов назад

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-ПП.

20 дней 6 часов назад

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

Горелый Юрий Алексеевич 20 дней 4 часа назад

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

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

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

Роман 20 дней 4 часа назад

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

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

Ларин Юрий Александрович 19 дней 10 часов назад

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

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

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

 

Роман 18 дней 20 часов назад

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

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

Горелый Юрий Алексеевич 18 дней 11 часов назад

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

Про нюансы:

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

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

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

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

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

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

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

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

 

Ларин Юрий Александрович 18 дней 11 часов назад

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

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

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

Роман 18 дней 10 часов назад

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

Роман 18 дней 10 часов назад

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

Роман 18 дней 10 часов назад

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

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

 

Ларин Юрий Александрович 18 дней 10 часов назад

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

Добрый день,
есть такая конфигурация, приложил конфигурационные файлы:
С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 никакой инфомрации получить не выходит.

9 дней 8 часов назад

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

Тремасов Константин Александрович 8 дней 21 час назад

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

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

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

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

Роман 8 дней 17 часов назад

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

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

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

ПОКАЗАН

565 раз

ЗАДАН

20 дней 13 часов назад

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