PDA

Просмотр полной версии : Как Подключить ПЛК в качестве ModBus К второму ПЛК ?



Андреей
09.02.2017, 05:44
Здравствуйте уважаемые форумчане :)

Я являюсь новичком в программирование ПЛК. Но успехи уже есть, смог заставить работать плк110 220 32 KL как мне надо. Но столкнулся со следующими проблемами:
Не могу объединить 2 плк:( вы наверно спросите зачем :confused: :confused: ??? wtf . Но получилась такая история есть 2 плк а МДВВ нету. А входов категорически не хватает :( .

Очень прошу помощи если у кого какие нибудь наработки по этому поводу. или ссылки на информацию.
В наличие есть 2 ПЛК110-220-32 K.L не обновленной версии.

Андреей
09.02.2017, 06:21
Подключать пытался по RS-485 -> RS-485/

melky
09.02.2017, 09:04
Имея 2 ПЛК надо писать программы на каждый в отдельности в случае смерти одного из них, второй свою часть программы продолжает выполнять), а взаимосвязанные переменные передавать между собой,
На форуме есть пример создания глобальных переменных по UDP протоколу между ПЛК (используется сеть LAN)
что касается RS485 то один ПЛК будет главным, второй ведомым, все можно настроить в конфигураторе. Примеры вроде тоже имеются. Есть примеры ПЛК - модули В/В, но кто мешает вторым установить ПЛК ?

Андреей
09.02.2017, 10:05
То есть как я понял ПЛК нельзя использовать как МДВВ?. или все таки можно ? если да то как быть с конфигуратором ?

Андреей
09.02.2017, 10:08
Извиняюсь не так понял ответ
melky, ты писал что все можно настроить в конфигах, Пытался но не очень разобрался . Потом читал статью что даже мдвв чтоб работали настраиваются через специальное ПО. Или я где то что то упустил.

YuriBel
09.02.2017, 11:42
Например:
В том ПЛК, который вместо МДВВ, нужно создать Modbus slave с набором переменных, и программу, которая будет записывать состояние входов в эти переменные. В том ПЛК, который главный, создать Modbus Master, и им читать переменные из второго ПЛК. Ну, понятное дело, их между собой проводочками не забыть соединить и настроить обмен одинаково с обоих сторон.

Андреей
09.02.2017, 12:15
Например:
В том ПЛК, который вместо МДВВ, нужно создать Modbus slave с набором переменных, и программу, которая будет записывать состояние входов в эти переменные. В том ПЛК, который главный, создать Modbus Master, и им читать переменные из второго ПЛК. Ну, понятное дело, их между собой проводочками не забыть соединить и настроить обмен одинаково с обоих сторон.

А можно по подробней про создание мастера и слейва

YuriBel
09.02.2017, 12:44
Поподробней можно, но мне кажется, что сначала стоит прочитать документ "PLC_Configuration_OWEN.pdf" (он есть и на сайте и на диске от ПЛК), это руководство по конфигурированию ПЛК. В нем рассказано, как работать с конфигурацией. Потом стоит посмотреть примеры из раздела "Примеры программ и полезности" этого форума.Там можно взять любой пример работы с блоками Mx110, в нем вы увидите, как организован Мастер. Затем посмотреть самый простой пример работы ПЛК с панелью, например ИП320, где панель-Мастер, а ПЛК- слейв. Там найдете организацию слейва. Затем нужно спокойно сложить все кубики воедино, и все станет просто и понятно. Не подумайте, что мне лень что-то разъяснять, просто раз уж взялись работать с ПЛК Овен, то с этим вещами по-любому нужно разбираться. Если будут непреодолимые сложности - милости просим задавать конкретные вопросы, еще лучше, с выкладыванием своих проетов с затыками, так всегда проще найти, в чем дело.

Андреей
09.02.2017, 13:04
Поподробней можно, но мне кажется, что сначала стоит прочитать документ "PLC_Configuration_OWEN.pdf" (он есть и на сайте и на диске от ПЛК), это руководство по конфигурированию ПЛК. В нем рассказано, как работать с конфигурацией. Потом стоит посмотреть примеры из раздела "Примеры программ и полезности" этого форума.Там можно взять любой пример работы с блоками Mx110, в нем вы увидите, как организован Мастер. Затем посмотреть самый простой пример работы ПЛК с панелью, например ИП320, где панель-Мастер, а ПЛК- слейв. Там найдете организацию слейва. Затем нужно спокойно сложить все кубики воедино, и все станет просто и понятно. Не подумайте, что мне лень что-то разъяснять, просто раз уж взялись работать с ПЛК Овен, то с этим вещами по-любому нужно разбираться. Если будут непреодолимые сложности - милости просим задавать конкретные вопросы, еще лучше, с выкладыванием своих проетов с затыками, так всегда проще найти, в чем дело.

Большое спасибо. Теперь хоть знаю что и где искать :cool:

YuriBel
09.02.2017, 14:24
Если забуксуете, выкладывайте проекты, будем смотреть, что не так.

Tempest
10.02.2017, 06:30
Здравствуйте! Я сам новичок, помогу чем смогу. Вот набросал, проверить в железе смогу только вечером. Удачи.

YuriBel
10.02.2017, 09:49
Вообще говоря, даже если это работает на железе, не стоит это слепо копировать. Если вы объявляете переменные в конфигураторе, то они по определению становятся глобальными и видны из всех компонентов проекта. Вы же их потом переопределяете в PLC-PRG, этого делать не надо. Сейчас, если это и будет работать на железе, то только по той причине, что переменные из конфигурации и переменные их PLC-PRG привязаны к конкретным адресам ввода-вавода. По-хорошему, объявлять их надо один раз, либо в конфигурации, либо где-то еще (например в PLC-PRG). Обычно удобнее в конфигурации. кроме того, все переменные слейвов автоматически станут Retain.

Tempest
10.02.2017, 10:03
В железе это работает уже более года, я для примера изложил без лишнего, просто хотел еще раз убедится что именно данный пример будет работать, вечером на работе проверю. Спасибо вам что посмотрели

Андреей
10.02.2017, 11:55
Походу чего то я все таки не догоняю.
Переписал под свое железо этот пример.
Все равно не могу не как заставить реагировать 2ой ПЛК.

И не могу понять где тут ошибка. 29384

Андреей
10.02.2017, 12:11
В железе это работает уже более года, я для примера изложил без лишнего, просто хотел еще раз убедится что именно данный пример будет работать, вечером на работе проверю. Спасибо вам что посмотрели

Как я правильно понял Проги заливаются на 2 плк одна под мастер, другая под слейв.

YuriBel
10.02.2017, 14:26
Правильно, одна программа заливается в один ПЛК, другая-в другой
Давайте попробуем для начала упростить задачу. В примере кнопки визуализации контроллера Мастер управляют переменными в конфигурации, которые по сети передаются в контроллер Слейв. В нем программа приравнивает принятые по сети значения переменных другим переменным, которые привязаны к физическим выходам. соответственно, кнопками в визуализации, работающей с ПЛК Мастер мы управляем выходами ПЛК Слейв. Состряпал на скорую руку, проверить не на чем, но по идее все должно работать. Пробуйте, если не работает, будем копать дальше.

YuriBel
10.02.2017, 15:11
Пардон, уже нашел ошибку. В конфигурации мастера второй подэлемент 8 bit output должен иметь адрес 8

Tempest
11.02.2017, 02:59
Вот только что проверял, работает. Если что спрашивайте

Андреей
11.02.2017, 05:42
Вот только что проверял, работает. Если что спрашивайте

чет у тебя архив опять битый

Tempest
11.02.2017, 07:32
чет у тебя архив опять битый
Ну вот... Перезалил

J1EXA
22.03.2017, 11:51
Подскажите где затык?
2 ПЛК 110-30 по 485 интерфейсу должны управлять выходами друг друга.
test_M - мастер
test_S - слейв

petera
22.03.2017, 12:13
Подскажите где затык?
2 ПЛК 110-30 по 485 интерфейсу должны управлять выходами друг друга.
test_M - мастер
test_S - слейв
Как минимум
В мастере - читаете и пишете в один и тот же регистр с адресом "0"
30174 30175

А ведь в слейве - один регистр с адресом "0", а второй - с адресом "1"
30176

J1EXA
22.03.2017, 15:34
Благодарствую. Видимо я чего-то где-то не дочитал.

petera
22.03.2017, 15:47
Благодарствую. Видимо я чего-то где-то не дочитал.

В дополнение к сказанному
Удалить в шапке программы объявления переменных, которые уже объявлены в конфигурации мастера и слейва.
30180 30181

J1EXA
28.03.2017, 14:35
Задача усложнилась, 4 ПЛК по 485 интерфейсу. ПЛК 110-60, у него уже не влазиет адрес в ворд, нужен дворд. Для меня не понятна адресация. Регистр 1 дает адресацию с VAR2.0-VAR2.15, регистр 2 - VAR2.16-VAR2.31. Ну допустим регистр 2, вход2.0 - выход получает VAR2.16, вход2.16 - выход получает VAR2.31, А вход2.17 - на выходе уже VAR2.0. Курил мануал и видимо не докурил.
__________________________________________________ __________________________________________________ _________________
PS: В общем разобрался со всем. petera (http://www.owen.ru/forum/member.php?u=11873) еще раз благодарю за советы. Нарисовал схему работы мастера и 3х слейвов, причем два слейва общаются между собой посредством мастера, названия переменных могут быть разные. Может кому поможет, я еле допер.
30309

petera
28.03.2017, 18:26
Задача усложнилась, 4 ПЛК по 485 интерфейсу. ПЛК 110-60, у него уже не влазиет адрес в ворд, нужен дворд. Для меня не понятна адресация. Регистр 1 дает адресацию с VAR2.0-VAR2.15, регистр 2 - VAR2.16-VAR2.31. Ну допустим регистр 2, вход2.0 - выход получает VAR2.16, вход2.16 - выход получает VAR2.31, А вход2.17 - на выходе уже VAR2.0. Курил мануал и видимо не докурил.

В чем проблема? Используйте 32 битные модули и будет Вам DWORD
В мастере - 32 bit input/output module(DWORD)
В слейве - 4 byte(DWORD)
30281
Адреса регистров в слейве будут кратные 2 (0, 2, 4, ... и т.д.)