Всем доброго дня! 
Столкнулся с необходимостью построения системы мониторинга с использованием контроллеров 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) 

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