PDA

Просмотр полной версии : МУ210-403 два мастера (клиента) в сети.



Lapu-Leen
19.11.2025, 18:27
Доброго времени суток. Заранее извиняюсь, если где-то уже обсуждалось, поиском не смог найти. В мануале на МУ210-403 написано " Модуль поддерживает следующие режимы обмена данными: обмен с Мастером сети по протоколу Modbus TCP (порт 502) — до 4 одновременных соединений с разными Мастерами сети". Все 4 условных Мастера могут читать состояние выходов и только один из них может писать? Или как-то можно сделать чтобы Мастера могли управлять отдельным битом привязанным в проекте?

Если мне не изменяет память то ФБ OCL.MB_TcpSlave позволяет и читать и записывать отдельный бит нескольким клиентам, ожидал такой же логики работы и от модуля.

Александр Пинэко-Скворцов
19.11.2025, 19:01
Доброго времени суток. Заранее извиняюсь, если где-то уже обсуждалось, поиском не смог найти. В мануале на МУ210-403 написано " Модуль поддерживает следующие режимы обмена данными: обмен с Мастером сети по протоколу Modbus TCP (порт 502) — до 4 одновременных соединений с разными Мастерами сети". Все 4 условных Мастера могут читать состояние выходов и только один из них может писать? Или как-то можно сделать чтобы Мастера могли управлять отдельным битом привязанным в проекте?

Если мне не изменяет память то ФБ OCL.MB_TcpSlave позволяет и читать и записывать отдельный бит нескольким клиентам, ожидал такой же логики работы и от модуля.

Добрый день.

Читать и записывать могут все мастера. Кто последний записал - "тот и прав".

Lapu-Leen
19.11.2025, 19:03
Добрый день.

Читать и записывать могут все мастера. Кто последний записал - "тот и прав".

Почему тогда у меня выход уходит в бесконечный цикл ВКЛ/ВЫКЛ может есть какие-то настройки? В мануале не нашёл и примеров такой реализации тоже.

kondor3000
19.11.2025, 19:06
Почему тогда у меня выход уходит в бесконечный цикл ВКЛ/ВЫКЛ может есть какие-то настройки? В мануале не нашёл и примеров такой реализации тоже.

Если у вас запись циклическая, то так и будет.
Записывать надо по биту или по изменению.

Валенок
19.11.2025, 19:39
Почему тогда у меня выход уходит в бесконечный цикл ВКЛ/ВЫКЛ.
Значит изобразите слейв чем то умным и смотрите что прилетает
Вам же в п#2 сказали

Lapu-Leen
19.11.2025, 19:43
Если у вас запись циклическая, то так и будет.
Записывать надо по биту или по изменению.

Стесняюсь спросить, а в ПЛК и вообще в любых контроллерах программа не в цикле выполняется? ;) Даже когда я удалил все привязанные переменные во втором Мастере и выбрал "Очситить всё" после компиляции и запуска всё равно в модуль от второго мастера приходят 0 ноли в регистр записи, т.е. даже если я действительно сделаю в первом Мастере запись не в цикле а так сказать однократно (R_trig и т.п.) то вместо бесконечного цикла получу однократный щелчок выходным реле. Лечится только отключением второго мастера, но тогда возникает вопрос, а как вообще это должно работать если даже без привязки переменных всёравно в регистр выходов от второго Мастера модуль записывает ноль?

Lapu-Leen
19.11.2025, 19:45
Значит изобразите слейв чем то умным и смотрите что прилетает
Вам же в п#2 сказали

Боюсь для такого у меня не хватит воображения. ;) Да и что туда может прилетать кроме 0 от второго Мастера, вопрос как сделать что бы не прилетало если уже удалил всё что можно было.

kondor3000
19.11.2025, 19:59
Стесняюсь спросить, а в ПЛК и вообще в любых контроллерах программа не в цикле выполняется? ;) Даже когда я удалил все привязанные переменные во втором Мастере и выбрал "Очситить всё" после компиляции и запуска всё равно в модуль от второго мастера приходят 0 ноли в регистр записи, т.е. даже если я действительно сделаю в первом Мастере запись не в цикле а так сказать однократно (R_trig и т.п.) то вместо бесконечного цикла получу однократный щелчок выходным реле. Лечится только отключением второго мастера, но тогда возникает вопрос, а как вообще это должно работать если даже без привязки переменных всёравно в регистр выходов от второго Мастера модуль записывает ноль?

Вы путаете работа ПЛК всегда циклами, только при чём тут запись регистров?
По умолчанию, чтение и запись стоит циклическая, так и смотрите как в ваших 4 ПЛК сделано. Для чтения это нормально.
А вот если запись циклическая, то в одном исправить на запись по биту мало, надо во всех.

Lapu-Leen
19.11.2025, 20:26
Вы путаете работа ПЛК всегда циклами, только при чём тут запись регистров?
По умолчанию, чтение и запись стоит циклическая, так и смотрите как в ваших 4 ПЛК сделано. Для чтения это нормально.
А вот если запись циклическая, то в одном исправить на запись по биту мало, надо во всех.

У меня два СПК210-10-CS в проектах обоих СПК модули МУ210-403 добавлены из готовых шаблонов ОВЕН. В данный момент запись производит только Мастер №1, а во втором проекте я уже удалил все привязанные к битам выхода переменные. В моём понимание Мастер №2 теперь вообще не должен что либо не важно 0 или 1 писать в регистр выхода МУ210-403, однако туда явно пишутся 0. У меня там даже регистры чтения не привязаны к переменным. Как отключить запись того чего следуя логике собственно и нет от слова совсем. Завтра буду пробовать пинать двумя Мастерами ОВЕН OPC Server если всё будет ОК, значит трабла не в модуле, а как вариант Codesys или х.з. сам шаблон.

kondor3000
19.11.2025, 20:29
У меня два СПК210-10-CS в проектах обоих СПК модули МУ210-403 добавлены из готовых шаблонов ОВЕН. В данный момент запись производит только Мастер №1, а во втором проекте я уже удалил все привязанные к битам выхода переменные. В моём понимание Мастер №2 теперь вообще не должен что либо не важно 0 или 1 писать в регистр выхода МУ210-403, однако туда явно пишутся 0. У меня там даже регистры чтения не привязаны к переменным. Как отключить запись того чего следуя логике собственно и нет от слова совсем. Завтра буду пробовать пинать двумя Мастерами ОВЕН OPC Server если всё будет ОК, значит трабла не в модуле, а как вариант Codesys или х.з. сам шаблон.

Выкинуть шаблон и сделать свой опрос, чтение циклическое, запись по биту. Заодно удалить всё не нужное, как в шаблоне сделано.
И шаблон не предназначен для управления с 4 ПЛК одним модулем, типа МУ, где основное это запись в модуль.

Lapu-Leen
19.11.2025, 20:37
Выкинуть шаблон и сделать свой опрос, чтение циклическое, запись по биту. Заодно удалить всё не нужное, как в шаблоне сделано.

К такой мысли тоже пришёл, но так как лентяй подожду, а вдруг представители Овен поделятся готовым решением, в конце концов это и в интересах производителя в первую очередь ;)


К тому же если начинать городить огород с самописными блоками записи по Modbus TCP может резко возникнуть желание просто избавится от второго мастера и один из СПК сделать слейвом на OCL.MB_TcpSlave.
Но повторюсь, я ленивый, ищу простых и быстрых решений. :)

kondor3000
19.11.2025, 20:39
К такой мысли тоже пришёл, но так как лентяй подожду, а вдруг представители Овен поделятся готовым решением, в конце концов это и в интересах производителя в первую очередь ;)

Ничего вы не дождётесь, шаблон не предназначен для управления с 4 ПЛК одним модулем, типа МУ, где основное это запись в модуль.

Lapu-Leen
19.11.2025, 20:48
Ничего вы не дождётесь, шаблон не предназначен для управления с 4 ПЛК одним модулем, типа МУ, где основное это запись в модуль.

Да, но в таком случае зачем они OwenCommunication библиотеку сделали? Возможно что и в моём случае есть готовая библиотека, зачем тогда велосипед изобретать. Надеюсь хотя бы придут и напишут, дескать не ждите, скажите спасибо, что у вас руль не заклинивает как у некоторых.

kondor3000
19.11.2025, 20:55
Да, но в таком случае зачем они OwenCommunication библиотеку сделали? Возможно что и в моём случае есть готовая библиотека, зачем тогда велосипед изобретать. Надеюсь хотя бы придут и напишут, дескать не ждите, скажите спасибо, что у вас руль не заклинивает как у некоторых.

Посмотрите пример с библиотекой OwenCommunication (есть видео), запись тоже по биту через R_Trig.
Биб-ка сделана и хорошо работает, но для других целей. Для ваших целей, только ваша голова и написание своего опроса.

Lapu-Leen
19.11.2025, 21:14
Посмотрите пример с библиотекой OwenCommunication (есть видео), запись тоже по биту через R_Trig.
Биб-ка сделана и хорошо работает, но для других целей. Для ваших целей, только ваша голова и написание своего опроса.

Здесь есть принципиальный момент. Я покупаю импортозамещённый, скажу больше - скрепный СПК и он из коробки должен без проблем работать со своими православными собратьями, ибо имеется у меня подозрение, что есть куча всяких не особо скрепных девайсов ( от наших китайских братьев) которые и стоят дешевле, и умеют работать в соответствии со стандартами без лишних танцев.:rolleyes:

Lapu-Leen
19.11.2025, 21:18
Здесь есть принципиальный момент. Я покупаю импортозамещённый, скажу больше - скрепный СПК и он из коробки должен без проблем работать со своими православными собратьями, ибо имеется у меня подозрение, что есть куча всяких не особо скрепных девайсов ( от наших китайских братьев) которые и стоят дешевле, и умеют работать в соответствии со стандартами без лишних танцев.:rolleyes:

А если без флуда, может модеры перенесут в ветку Codesys или СПК210?

Евгений Кислов
19.11.2025, 21:27
К такой мысли тоже пришёл, но так как лентяй подожду, а вдруг представители Овен поделятся готовым решением, в конце концов это и в интересах производителя в первую очередь ;)


К тому же если начинать городить огород с самописными блоками записи по Modbus TCP может резко возникнуть желание просто избавится от второго мастера и один из СПК сделать слейвом на OCL.MB_TcpSlave.
Но повторюсь, я ленивый, ищу простых и быстрых решений. :)

См. скриншот.

86804

Lapu-Leen
19.11.2025, 21:43
См. скриншот.

86804

Наверняка это то что я и искал, спасибо! Вопрос, если я меняю на "По изменению", то будет контролироваться изменение каждого бита и соответственно записываться только изменённый?

Евгений Кислов
19.11.2025, 21:49
Наверняка это то что я и искал, спасибо! Вопрос, если я меняю на "По изменению", то будет контролироваться изменение каждого бита и соответственно записываться только изменённый?

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

Lapu-Leen
19.11.2025, 21:55
При изменении любого из битов в модуль будет записываться весь регистр битовой маски (избежать этого не получится даже при отказе от шаблона).
Соответственно, в вашей ситуации разумно непосредственно перед изменением любого из битов присваивать в канал записи битовой маски значение канала считанной битовой маски.

Этого то я и боялся, пойду убьюсь ап стену :confused: Жаль, что всётаки не обойтись без лишних телодвижений.

При обмене по Modbus TCP у модуля не поддерживается функция 0x05 (Write Single Coil), печалька, надо было внимательнее читать мануал.