CODESYS V3.5. Настройка обмена с другими устройствами (Modbus, ОВЕН, OPC и др.)
Добрый день, уважаемые коллеги.
Эта тема предназначена для обсуждения вопросов, связанных с настройкой обмена между контроллерами ОВЕН, программируемыми в среде CODESYS V3.5, и другими устройствами.
Наши контроллеры поддерживают следующие протоколы:
Modbus TCP/RTU/ASCII (Master/Slave) - настройка через нативные компоненты CODESYS, добавляемые в дерево проекта;
Modbus TCP/RTU/ASCII (Master/Slave) - настройка через библиотеку OwenCommunication (расширенный функционал, управление обменом из кода);
OPC UA (Server) - настройка через нативный компонент CODESYS (Символьная конфигурация);
протокол ОВЕН (Master) - настройка через библиотеку OwenNet;
возможна реализация нестандартных протоколов обмена через библиотеку OwenCommunication или стандартные библиотеки CODESYS.
В таблице ниже собрана документация, посвященная организации связи по протоколам Modbus, ОВЕН и нестандартным протоколам, а также опросу контроллеров с помощью OPC-серверов. Каждый документ содержит примеры, доступные для скачивания в формате .projectarchive.
Известные проблемы при обмене по Modbus (для старых контроллеров):
1. В компоненте Modbus RTU Master версии 3.5.7.0 не работает галочка Автопереподключение (Autoreconnect).
Статус: в версии 3.5.11.x галочка работает корректно.
При работе со старой линейкой СПК1хх/СП207 рекомендуется использовать версию компонента (3.5.5.0).
2. В компоненте Modbus TCP Slave Device версии 3.5.2.0 не поддержана работа с битами.
Статус: исправлено в версии компонента 3.5.11.x.
3. В компоненте Modbus RTU Slave Device версии 3.5.5.5 не поддержана работа с битами.
Статус: исправлено в версии компонента 3.5.11.x.
4. Модули МУ110-6У и МУ110-8И в некоторых ситуациях могут переставать отвечать на запросы мастера.
Статус: проблема решена в прошивках модулей версии 2.00. Текущую версию прошивки можно посмотреть в Конфигураторе Mx110.
Статус: проблема решена в прошивках модулей версии 1.08. Текущую версию прошивки можно посмотреть в Конфигураторе Mx110.
6. При использовании Modbus TCP каждое slave-устройство должно иметь уникальный порт. При использовании шлюзов Modbus TCP/RTU, которые используют один порт и разные Unit ID , будет производится опрос только первого добавленного устройства.
В документе SPK_Modbus_v.0.8.pdf много раз используется фраза "рисунок хорошо масштабируется", хотя по факту масштабируется плохо (т.е. картинка растровая).
В итоге "Рис. 5.9. Код программы COM2 (CFC)" читается тяжело/плохо.
21.04.2016, 10:49
Евгений Кислов
Цитата:
Сообщение от vladimirisitnikov
В документе SPK_Modbus_v.0.8.pdf много раз используется фраза "рисунок хорошо масштабируется", хотя по факту масштабируется плохо (т.е. картинка растровая).
В итоге "Рис. 5.9. Код программы COM2 (CFC)" читается тяжело/плохо.
Справедливо, с рисунком 5.9 действительно возникли определенные проблемы. Спасибо за замечание.
21.04.2016, 11:09
ASo
Пока вижу ляп на с.38..39 с модбас слэйв.
21.04.2016, 11:20
Евгений Кислов
Цитата:
Сообщение от ASo
Пока вижу ляп на с.38..39 с модбас слэйв.
Спасибо, увидел на с. 39 - вместо Modbus COM написано Device. На с. 38 тоже есть опечатка?
21.04.2016, 12:08
ASo
Скорее на с.40, таблица внизу.
1. Input Registers - это как раз запись из программы и только чтение из сети
Holding Registers - это только чтение из программы и запись/чтение из сети
2. Надо объяснить, что Input Registers отображаются в конфигурации как %QW, а Holding Registers отображаются в конфигурации как %IW.
3. Теперь надо объяснить, что такая конфигурация делает бессмысленным ее применение - не возможно редактировать значение переменной с панели и по сети. Для этого нужна библиотека ModbusSlave.
4. По поводу бибки ModbusSlave - надо придумать пример, как передавать такую переменную из п.3
В принципе, если Вы работаете на Компрессоре, можно встретится на следующей неделе, принесу свой пример.
21.04.2016, 12:21
Евгений Кислов
Цитата:
Сообщение от ASo
Скорее на с.40, таблица внизу.
1. Input Registers - это как раз запись из программы и только чтение из сети
Holding Registers - это только чтение из программы и запись/чтение из сети
2. Надо объяснить, что Input Registers отображаются в конфигурации как %QW, а Holding Registers отображаются в конфигурации как %IW.
3. Теперь надо объяснить, что такая конфигурация делает бессмысленным ее применение - не возможно редактировать значение переменной с панели и по сети. Для этого нужна библиотека ModbusSlave.
4. По поводу бибки ModbusSlave - надо придумать пример, как передавать такую переменную из п.3
В принципе, если Вы работаете на Компрессоре, можно встретится на следующей неделе, принесу свой пример.
Спасибо за замечания, все принял к сведению.
Работаю на компрессоре. Напишите в личку по этому поводу, пожалуйста.
21.04.2016, 12:36
rovki
Вложений: 1
Что бы остальные не поняли ,что вы работаете на компрессоре или тракторе - это территория завода ,где расположен головной офис ОВЕН ;) ,
21.04.2016, 13:02
Сергей0308
Цитата:
Сообщение от rovki
Что бы остальные не поняли ,что вы работаете на компрессоре или тракторе - это территория завода ,где расположен головной офис ОВЕН ;) ,
Не вижу ничего плохого(постыдного) работать на компрессоре или тракторе!!!
21.04.2016, 13:04
rovki
А кто говорил ,что это плохо ,работать на тракторе ???Просто дал пояснение ,что это географическое понятие (место) .