Вход

Просмотр полной версии : вопрос по подмодулю Modbus (FIX)



Ian
20.04.2021, 19:39
В документации "Конфигурирование области ввода/вывода ПЛК.Руководство пользователя" на странице 39 написано "В состав модуля Modbus (Slave) фиксировано вставлен подмодуль Modbus (FIX) – внутренний модуль, создающий определенную структуру, к которой уже подключается коммутационный интерфейс"

Подскажите, пожалуйста, есть ли источники где описана эта структура, которую создает Modbus (FIX), что она из себя представляет в ПЛК OWEN и каким образом она создается?

A.Simonov
21.04.2021, 23:26
В документации "Конфигурирование области ввода/вывода ПЛК.Руководство пользователя" на странице 39 написано "В состав модуля Modbus (Slave) фиксировано вставлен подмодуль Modbus (FIX) – внутренний модуль, создающий определенную структуру, к которой уже подключается коммутационный интерфейс"

Подскажите, пожалуйста, есть ли источники где описана эта структура, которую создает Modbus (FIX), что она из себя представляет в ПЛК OWEN и каким образом она создается?

Добрый день.

Например, в РП на ПЛК1xx [М02]
https://owen.ru/uploads/249/rp_plk1hh_m02__1-ru-75044-1.32_a4.pdf

См. раздел 10.7.3.1 (Подмодуль ModBus (FIX). Настройка коммуникационных интерфейсов)

Ian
22.04.2021, 12:20
Вопрос задавал, чтобы понять структуру организации данных Модбас в ПЛК OWEN.

В документе "MODBUS APPLICATION PROTOCOL SPECIFICATION" дано два примера для организации памяти:
- 1 вариант с 4-мя раздельными блоками Input Descrete, Coils, Input Registers и Holding Registers
- 2-й вариант с одним блоком данных, где к одним и те же данным можно обращаться разными командами.

В ПЛК OWEN второй вариант используется?
Также про нумерацию регистров Слэйва, как назначаются номера регистрам, ведь мастер будет обращаться с командами к примеру 03 прочитать Holding регистры с номера 40010 по 40012 или командой 02 прочитать регистры Input Descrete с с номера 10010 по номер 10012. Такая нумерация поддерживается или в OWEN есть только нумерация с 1-го регистра без делений на Input Descrete, Coils, Input Registers и Holding Registers и без адресации, как в прикрепленной картинке.

A.Simonov
22.04.2021, 12:43
Добрый день.


Вопрос задавал, чтобы понять структуру организации данных Модбас в ПЛК OWEN.
Как вопрос задали, так и получили ответ.

Все есть в РП, нужно его просто прочесть (стр. 94-98)
https://owen.ru/uploads/249/rp_plk1hh_m02__1-ru-75044-1.32_a4.pdf

Если коротко ответить на ваши в опросы:

В ПЛК OWEN второй вариант используется?
Да



Такая нумерация поддерживается или в OWEN есть только нумерация с 1-го регистра без делений на Input Descrete, Coils, Input Registers и Holding Registers?
Начиная с нулевого регистра и далее по порядку, в соответствии с выравниванием адресации, про выравнивание читайте в РП.

petera
22.04.2021, 13:02
Лучше одни раз увидеть...
https://owen.ru/forum/attachment.php?attachmentid=12345&d=1395648726

Ian
22.04.2021, 18:07
Лучше одни раз увидеть...
Спасибо за помощь. Я уже находил эту картинку в форуме, но так как в деле программирования плк я человек новый, поэтому сразу совместить ее с тем что написано в спецификации Модбас не смог. Да и сейчас остались вопросы по нумерации регистров.

Я создал регистр 2 байта и потом в программе CAS я просматриваю этот регистр и она мне его нумерует, как положено в Модбас, если читаю командой 03 то пишет что читает регистр 40001, если командой 2 то читает регистр 10001. Но по всем объяснениям OWEN это регистр под номером просто 0, вот это у меня пока не складывается в голове. Если это номер 0, то при чем тут тогда 40001.

Также это деление в Модбас на Input Descrete, Coils, Input Registers и Holding Registers было создано же для того чтобы разделить данные, тут храним это и это можно только читать, а вот в этих регистрах храним вот этот тип данных, который можно и читать и изменять. Здесь же получается храним все везде и какой смысл тогда в этих всех разделениях и куче разных команд, если бы можно было сделать как в OWEN, читай чем хочешь и пиши что хочешь. Протокол он же на то и протокол, чтобы установить правила общения, а в OWEN получается какой то измененный протокол, может ли он тогда называться Модбасом?

A.Simonov
22.04.2021, 21:22
Спасибо за помощь. Я уже находил эту картинку в форуме, но так как в деле программирования плк я человек новый, поэтому сразу совместить ее с тем что написано в спецификации Модбас не смог. Да и сейчас остались вопросы по нумерации регистров.

Я создал регистр 2 байта и потом в программе CAS я просматриваю этот регистр и она мне его нумерует, как положено в Модбас, если читаю командой 03 то пишет что читает регистр 40001, если командой 2 то читает регистр 10001. Но по всем объяснениям OWEN это регистр под номером просто 0, вот это у меня пока не складывается в голове. Если это номер 0, то при чем тут тогда 40001.

Также это деление в Модбас на Input Descrete, Coils, Input Registers и Holding Registers было создано же для того чтобы разделить данные, тут храним это и это можно только читать, а вот в этих регистрах храним вот этот тип данных, который можно и читать и изменять. Здесь же получается храним все везде и какой смысл тогда в этих всех разделениях и куче разных команд, если бы можно было сделать как в OWEN, читай чем хочешь и пиши что хочешь. Протокол он же на то и протокол, чтобы установить правила общения, а в OWEN получается какой то измененный протокол, может ли он тогда называться Модбасом?

Modbus был разработан в начале 80-х годов, за это время в автоматизации сменилось кучу трендов.
В том виде, в каком Modbus описан в стандарте - его мало кто использует.
Везде есть свои нюансы.
Использование единой области памяти используется не только нами, и в целом это имеет свои плюсы.

С другой стороны, вам ни кто не мешает на наших ПЛК использовать библиотеки для работы с com-портом, и реализовать Modbus так как нравится именно вам.

Ian
22.04.2021, 23:09
С другой стороны, вам ни кто не мешает на наших ПЛК использовать библиотеки для работы с com-портом, и реализовать Modbus так как нравится именно вам.
Рановато мне еще создавать, пока только понять пытаюсь, как с ним работать.

Подскажите еще, пожалуйста, можно ли регистры создавать программно или только через "Конфигурацию ПЛК"?

A.Simonov
23.04.2021, 12:26
Подскажите еще, пожалуйста, можно ли регистры создавать программно или только через "Конфигурацию ПЛК"?

Есть библиотека OwenModbusSlave её можно использовать вместо конфигурации (только для RS485/232).
https://owen.ru/forum/showthread.php?t=28996

burov-vyazma
23.06.2021, 10:53
Доброго времени суток!Просветите,пожалуйста по ПЛК-150.Я правильно понимаю, что его физические входы/выходы не имеют регистров для связи по Modbus?Получается,что виртуальные входы/выходы ,создаваемые самостоятельно во вкладке Modbus (slave) ,нужно в программе связывать с физическими,чтобы СП307 могла с ними связаться?

Евгений Кислов
23.06.2021, 10:54
Доброго времени суток!Просветите,пожалуйста по ПЛК-150.Я правильно понимаю, что его физические входы/выходы не имеют регистров для связи по Modbus?Получается,что виртуальные входы/выходы ,создаваемые самостоятельно во вкладке Modbus (slave) ,нужно в программе связывать с физическими,чтобы СП307 могла с ними связаться?

Добрый день.
Да, вы всё правильно понимаете.

burov-vyazma
23.06.2021, 11:09
Добрый день.
Да, вы всё правильно понимаете.

А почему Вы пишете"CODESYS Repository Archive V3.5 SP4 (необходим для работы)"? ПЛК-150,вроде ,под V2.3 работает?Может я неправильно понял?

Евгений Кислов
23.06.2021, 11:17
А почему Вы пишете"CODESYS Repository Archive V3.5 SP4 (необходим для работы)"? ПЛК-150,вроде ,под V2.3 работает?Может я неправильно понял?

Это просто подпись, она автоматически подставляется под любым моим ответом - примерно как в почтовом клиенте.

burov-vyazma
23.06.2021, 15:48
Это просто подпись, она автоматически подставляется под любым моим ответом - примерно как в почтовом клиенте.

Прошу меня извинить за невнимательность. Назрел ещё вопрос. Помнится в ПЛК-63 можно было изменять тип "оперативный/конфигурационный",а здесь как сделать, чтобы ПЛК запомнил введённые с СП307 значения, например уставок(int,real) , и не приходилось каждый раз вводить при включении питания?
Может быть копировать значения в RETAIN? Я пока этого не умею делать,но научусь ,если поможете.

petera
23.06.2021, 15:56
Прошу меня извинить за невнимательность. Назрел ещё вопрос. Помнится в ПЛК-63 можно было изменять тип "оперативный/конфигурационный",а здесь как сделать, чтобы ПЛК запомнил введённые с СП307 значения, например уставок(int,real) , и не приходилось каждый раз вводить при включении питания?
Может быть копировать значения в RETAIN? Я пока этого не умею делать,но научусь ,если поможете.

Все переменные в Слейве ПЛК - энергонезависимые (RETAIN)!
По этому не надо копировать значения в RETAIN
введённые с СП307 значения запомнятся автоматически

burov-vyazma
23.06.2021, 16:09
Все переменные в Слейве ПЛК - энергонезависимые (RETAIN)!
По этому не надо копировать значения в RETAIN
введённые с СП307 значения запомнятся автоматически

От души!Вроде,ПЛК-150 поудобнее, чем 63 в плане нумерации регистров, но есть свои нюансы.СПАСИБО!