Всем доброго дня!
Столкнулся с необходимостью построения системы мониторинга с использованием контроллеров carel. Протокол сети - ModBus.
Кто-нибудь работал с подобными системами?
Интересует принцип формирования запроса к контроллерам, является ли ModBus кареловских контроллеров классическим?
Кто работал с такой системой, приведите, пожалуйста, пример запроса к контроллеру - считывания, допустим, значения датчика температуры котроллера IR33.
polyakov.mo
29.10.2012, 16:12
у carel MODBUS RTU/RS485 (есть еще Modbus ASCII кажись, который карелом не поддерживается), 8 бит данных, без проверки четности, 2 стоповых бита, скорость до 19200. У меня получилось "подружить" Carel PCO3 и SCADA Trace Mode по примеру с сайта производителя SCADA.
Ищите на просторах сети pco_system_manual
Вы на С# или ассемблере писать запрос планируете?
svintus
29.10.2012, 17:45
Цитата(polyakov.mo @ 29.10.2012, 16:12)

... 8 бит данных, без проверки четности, 2 стоповых бита...
Конфигурируется в COM_CONFIG_BMS
Вот документ по Карел-Модбас.
Нажмите для просмотра прикрепленного файлаВот карта адресов карел для ir32. Вам нужен файл для ir33, у меня нет под рукой, попросите на карелраша.
Нажмите для просмотра прикрепленного файла Найдите адрес модбас требуемой переменной, например строка "temp_ambiente";2;1;1;"Room temperature";"";"";"";"°C";"";"";"" означает что у переменной Room temperature тип - реал(значит функция чтения 3), адрес 1, только чтение.
Пишу на Делфи, сейчас работаю над модулем опроса. Писал итальянцам - чудом, но получил ответ:
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
В основном разобрался с IR33.
Если кому-то поможет:
1. Считываем значение регистров (переменных)
|A|F|H.R.A|L.R.A|H.N.R|L.N.R|CRC|
A- адрес устройства
F- номер функции (1, 2, 3, 4)
H.R.A- старший байт адреса начального регистра (у карела "переменной") - и не забываем отнимать единицу!
L.R.A- младший байт адреса начального регистра
H.N.R- старший байт кол-ва регистров для считывания
L.N.R- младший байт кол-ва регистров для считывания
CRC- два байта (младший и старший) контрольной суммы
2. Записываем значение регистра (переменной)
|A|F|H.R.A|L.R.A|H.V|L.V|CRC|
A- адрес устройства
F- номер функции (5, 6)
H.R.A- старший байт адреса начального регистра (у карела "переменной") - и не забываем отнимать единицу ))
L.R.A- младший байт адреса начального регистра
H.V- старший байт записываемого значения
L.V- младший байт записываемого значения
CRC- два байта (младший и старший) контрольной суммы
Состояния цифровых входов/выходов: "0" - замкнут, "1" - разомкнут.
Аналоговые значения (читаем один регистр): (байт№5*256+байт№6)/10 - для положительных значений
((байт№5-255)*256+(байт№6-255))/10 - для отрицательных значений.
Запись значений регистров аналоговых переменных и значений типа integer производятся по тому же принципу.
Всем доброго дня!
Нужно вывести данные с контроллеров carel рСОxs. Протокол сети - ModBus.
Запросил регистры с 1 по 128 , во всех ячейках единицы со степенью -40 и т.д., практически ноль. Инвертировать тоже пробовал. Менял тип данных, проблема та же.
Кто работал с такой системой, приведите, пожалуйста, пример запроса к контроллеру - считывания, допустим, значения датчика температуры котроллера. Желательно карту регистров, где какая температура и где какие дискретные сигналы.
Igorchello
19.6.2013, 9:20
Цитата(klav-st @ 19.6.2013, 6:31)

Всем доброго дня!
Нужно вывести данные с контроллеров carel рСОxs. Протокол сети - ModBus.
Запросил регистры с 1 по 128 , во всех ячейках единицы со степенью -40 и т.д., практически ноль. Инвертировать тоже пробовал. Менял тип данных, проблема та же.
Кто работал с такой системой, приведите, пожалуйста, пример запроса к контроллеру - считывания, допустим, значения датчика температуры котроллера. Желательно карту регистров, где какая температура и где какие дискретные сигналы.
В контроллерах Carel стандартный протокол Modbus RTU.
Для считывания данных из регистров нужно использовать тип INT.
Контроллер pCOxs - свободно-программируемый. Соответственно какие данные в каких регистрах хранятся определяется программой, которая залита в контроллер.
Может вообще ничего не передаваться в сеть.
Нужно искать документацию на программу.
Guk_Oleg
15.7.2013, 14:29
Добрый день.
Помогите мне с таким вопросом.
Нужно в програме зделать регистры которые будуть считоватса при помощи скады. Ето должно делатса по протоколу Modbus на контролерах Carel. Их будет 15 шт. как мне ето зделать, по тому што я толька начинаю работать по автоматике и тут такая задача, зарание спасибо!!!
polyakov.mo
15.7.2013, 14:58
при создании переменной в 1tool ставите во вкладке network галочку "BMS/Fieldbus". Далее для порта BMS в той же вкладке выбираете input/input-output. А еще очень полезно почитать help к переменным bms_address, com_baudrate_bms, com_protocol_bms
PS Вы с Украины?
Guk_Oleg
15.7.2013, 15:47
Да с Украины ну и руский плохо знаю и по сообщении ето заметно)))))
Спасибо.
А как оно будет с Modbus работать?
polyakov.mo
15.7.2013, 16:10
рекомендую в общих чертах ознакомиться
вот с этим сообщением и вложением, а там в показе слайдов на общие доки по MODBUS ссылки есть
Guk_Oleg
15.7.2013, 16:12
Спасибо!
rancatto
15.7.2013, 16:12
Цитата(Guk_Oleg @ 15.7.2013, 16:47)

Да с Украины ну и руский плохо знаю и по сообщении ето заметно)))))
Спасибо.
А как оно будет с Modbus работать?
Как настроите порты филдбас так и будет. может по модбасу, каресу, лону. переменная - Com_Protocol_fieldbus.
Guk_Oleg
15.7.2013, 16:32
Спасибо!! а как оно будет работать если 15 контроллеров практически с одинаковыми программами и переменными?
polyakov.mo
15.7.2013, 17:10
В сети Modbus у контроллера есть адрес. В случае с Carel от 1 до 207. Master (в Вашем случае SCADA) отправляет запрос - в запросе есть адрес Slave (в Вашем случае контроллер Carel), команда, адрес регистра (-ов)
Вы скачайте мануалы по Modbus, там это написано
Guk_Oleg
15.7.2013, 17:22
Спасибо!! Я почти со всем разобрался, только еще один вопрос.
Как физически мне все эти контроллеры объединить и подключить к компьютеру, и как задать адрес устройства в случае slave.
Извините я уже увидел как задать адрес устройства!!
polyakov.mo
16.7.2013, 8:59
В своих копаниях Вы должны были наткнуться на описание интерфейса RS485 (мы же говорим о modbus rtu, а не modbus tcp?), в котором нарисованы экранированные кабели с витыми парами проводов. Один провод на RX+/TX+, второй на RX-/TX-, третий на GND. Далее все соединяются шлейфом. На последнем контроллере поставьте терминатор между RX+/TX+ и RX-/TX-, по простому - резистор ~120 Ом, и второй конец шлейфа подсоединяете к преобразователю интерфейсов, который должен быть у Вас, если Вы сами прошивали контроллеры. В случае, если 3 пин разъем на преобразователе - все нормально, на нем тоже есть +,-,0. Если он у Вас с телефонным разъемом RJ12, смотрите вложение.
Обратите внимание, у всех контроллеров должны быть разные адреса, одинаковые форматы передачи данных, одинаковые скорости.
Большое спасибо, буду приступать к работе))
Скажите пожалуйста я правильно понял:
1) Настраиваем Modbus slave так как в демо версией;
2) В настройках переменных в закладке network настраиваю BMS порт;
3) присваивает каждому контроллеру свой адрес и одинаковую скорость;
4) Покупаю к каждому контроллеру серийные карты;
5) витой парой обедною все контроллеры между собой таким образом
Нажмите для просмотра прикрепленного файла;
6) Первый контроллер к RS 485 конвертере и из него к компьютеру;
7) На последнем контроллере между RX + и RX - ставлю 120 Ом резистор.
И то должно быть все?
Извините за такое количество вопросов!
polyakov.mo
16.7.2013, 9:31
Цитата(Guk_Oleg @ 16.7.2013, 10:20)

Большое спасибо, буду приступать к работе))
Скажите пожалуйста я правильно понял:
1) Настраиваем Modbus slave так как в демо версией;
2) В настройках переменных в закладке network настраиваю BMS порт;
3) присваивает каждому контроллеру свой адрес и одинаковую скорость;
4) Покупаю к каждому контроллеру серийные карты;
5) витой парой обедною все контроллеры между собой;
6) Первый контроллер к RS 485 конвертере и из него к компьютеру;
7) На последнем контроллере между RX + и RX - ставлю 120 Ом резистор.
И то должно быть все?
Извините за такое количество вопросов!
1 - да.
2 - да.
3 - да.
4 - да, если PCO3; у PCO5 уже есть - в данном случае по встроенному в 1tool help почитайте про настройку порта. Переменные примерно так же называются, я с PCO5 еще не работал, особенностей не знаю.
5 - да, желательно витая пара в экране.
6 - да.
7 - да.
А еще:
8 - сделайте таблицу регистров для того, кто будет все это встраивать в SCADA. Таблица должна содержать следующую информацию: адрес регистра (он же индекс), тип переменной (bool/int), доступ (чтение/чтение-запись), в примечании укажите за что отвечает переменная и диапазоны значений
Вот теперь все
Большое вам человеческое спасибо!
polyakov.mo
16.7.2013, 9:47
Пожалуйста
Я Вам не упомянул, что порт plan можно использовать в режиме Modbus. Сам начал пробовать, потом время для экспериментов кончилось, однако тех поддержка уверяет, что это возможно. Обратитесь к Igorchello в
этой веткеГлядишь съэкономите 15*100 EUR и премию сможете попросить )))
А как насчет оптоизоляции?
polyakov.mo
16.7.2013, 10:08
Цитата(svintus @ 16.7.2013, 10:51)

А как насчет оптоизоляции?
По каталогу Carel доп. плата имеет оптоизоляцию, у plan - как опция, считаем, что ее нет
Ну, я как бы имел ввиду, что эта экономия может боком вылезть.
Guk_Oleg
16.7.2013, 22:47
Спасибо.
Подскажите пожалуйста я сделал как было сказано выше, а у меня почему-то не связывается контроллер с компьютером по Modbus в чем может быть причина?
polyakov.mo
6.8.2013, 9:42
Чудес быть не должно.
Прикрепите скрины из 1tool с переменными bms_address, com_baudrate_bms, com_protocol_bms; а так же вкладки с окнами объявления какой-либо переменной для чтения по modbus. Каким ПО со стороны компьютера читаете переменные?
А отвечая собственно на вопрос, причины могут быть следующие:
1. программно со стороны контроллера;
2. аппаратно: неверное расключение RS485, не к тому порту....;
3. программно со стороны компьютера: драйверы преобразователя интерефейсов;
4. настройки формата передачи данных и скорости отличаются у контроллера и ПО со стороны компьютера
Я использовал несколько программ:
Modbus poll, SCADA TRACE MODE, Modbus slave.
У Modbus poll была ошибка Timeout error.
Может быть причина в том, что это PCO XS
polyakov.mo
6.8.2013, 10:01
Цитата(Guk_Oleg @ 6.8.2013, 10:54)

У Modbus poll была ошибка Timeout error.
Экспресс диагностика: задайте в modbus poll адрес устройства на 1 меньше, чем у контроллера. Аналогично адрес читаемой переменной. Отпишитесь
polyakov.mo
6.8.2013, 10:13
Настройка порта: протокол - ок,
скорость - попробуйте ничего не записывать в переменную com_baudrate_bms, посмотрите в 1tool значение по умолчанию: нажмите на глаз, который включает показ неподключенных соединений. Если переменной будет присвоено 4 - все норм.
настройка переменной - норм.
по мануалу к PCOxs у него есть место для установки платы RS485 для автоматики верхнего уровня
Фотографируйте контроллер с платой и расключение проводов. Дополнительно проверьте, сидит ли плата RS485 на своем месте
Может ли быть причина в том что у меня подключен 2 контроллера?
Попробовал я задать адреса на 1 меньше такая же ошибка.
подключение к плате:
Резистор припкручен к GND и + потому что мне кажытса что наклейка не тем боком приклеена.
polyakov.mo
6.8.2013, 10:45
Может, если у них адреса одинаковые. Резистор 120 Ом прикрутили?
Глянь ище на настройку Modbus poll
Адреса разные.
polyakov.mo
6.8.2013, 11:12
Цитата(Guk_Oleg @ 6.8.2013, 11:30)

Резистор припкручен к GND и + потому что мне кажытса что наклейка не тем боком приклеена.
Сдается мне, что приклеена правильно. У меня в руках вот такой. С его помощью прошиваю контроллеры, ибо заводской 6 пин кабель сломал. Попробуйте оставить в сети только 1 контроллер и открутите резистор. А еще лучше посмотрите бумажку к плате и саму плату, на текстолите пишут назначение контактов (во всяком случае на плате для порта fieldbus написали) . У меня под рукой ни бумажки, ни платы, ни контроллера - все продал )))
Modbus poll - нормально.
адрес контроллера - 1
функция 3 - читать регистры
с регистра с индексом 1 читать 26 регистров.
Добавьте скрин с настройкой самого порта: скорость и формат
polyakov.mo
6.8.2013, 11:34
Поправка:
Сейчас запямотовал, может для чтения регистра с доступом R/W нужно будет использовать функцию 4, а не 3. Просто не помню
Большое спасибо уже все работает.
Видимо не хотело работать без первого слейв, поскольку я прописывал адрес 2 и 3.
А наклейка действительно была правильно приклеена.
p.s Были бы вы во Львове с меня было бы пиво))))
polyakov.mo
6.8.2013, 12:27
Все оказалось на поверхности
PS в 100 км от Львова в Бродах во времена СССР родили моего старшего брата. Вдруг он решит съездить посмотреть в сознательном возрасте место своего рождения - сяду на хвост )))
Lawkraft
22.1.2025, 20:03
Добрый день! Кто-нибудь дружил Carel Easy с Modbus RTU? Нет ни данных, не HEX адресов, ни связи(
Carel Easy поддерживает только протокол Carel
https://wirenboard.com/ru/product/WB-REF-U/Вот через такое можно подключиться по modbus. Мы их поставили несколько сотен, работает стабильно. Подключали, правда, carel μRack, но EASY у них тоже присутствует в списке поддерживаемых контроллеров.
Цитата(Barbus @ 23.1.2025, 7:41)

https://wirenboard.com/ru/product/WB-REF-U/Вот через такое можно подключиться по modbus. Мы их поставили несколько сотен, работает стабильно. Подключали, правда, carel μRack, но EASY у них тоже присутствует в списке поддерживаемых контроллеров.
Спасибо) такой уже посоветовали) по ходу это единственный доступный способ без бубнов) С Овен шлюзом пойдёт?
Цитата(Barbus @ 23.1.2025, 9:55)

Да, через овен работают.
уже пользуем, спасибо!
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.