PDA

Просмотр полной версии : ПЛК 210 - ModbusTCP - ПЛК210. Адресация регистров HELP!!!



Coolboy
27.01.2024, 13:27
Добрый день.
Помогите обменяться переменными между двумя ПЛК210.
Правильно ли я делаю и где бы увидеть пример с двумя ПЛК?

На Slave:
1) Создаю Ethernet-ModbusTCP_Slave_Device
2) Соотношу две bool переменные с регистром временного хранения (см. картинку)
73125



На Мастере:
1) Создаю Ethernet-Modbus_TCP_Master-Modbus_TCP_Slave
2) Иду в "Канал Modbus Slave" и зависаю... Как считать две переменные со слейва. Какой адрес нужно прописать?
73126

Связь поднимается, кружки зеленые крутятся.

kondor3000
27.01.2024, 13:36
Добрый день.
Помогите обменяться переменными между двумя ПЛК210.
Правильно ли я делаю и где бы увидеть пример с двумя ПЛК?
Связь поднимается, кружки зеленые крутятся.

В слейве адреса регистров и бит начинаются с 0, советую передавать (принимать) не биты, а регистры. Вместо 16 бит будет 1 регистр с адресом 0.
Биты упаковываются, распаковываются в регистры через точку.
Например упаковка Mask.0:=b0; Mask.1:=b1; где Mask - имя регистра типа WORD
распаковка b0:=Mask.0; b1:=Mask.1;

Coolboy
27.01.2024, 13:57
В слейве адреса регистров и бит начинаются с 0, советую передавать (принимать) не биты, а регистры. Вместо 16 бит будет 1 регистр с адресом 0.
Биты упаковываются, распаковываются в регистры через точку.
Например упаковка Mask.0:=b0; Mask.1:=b1; где Mask - имя регистра типа WORD
распаковка b0:=Mask.0; b1:=Mask.1;

Спасибо, видел такой метод.
Проблема, в моем случае, в адресе - он не 0...
73127



Какой адрес указать тут?
73128

МихаилГл
27.01.2024, 14:00
Спасибо, видел такой метод.
Проблема, в моем случае, в адресе - он не 0...
73127



Какой адрес указать тут?
73128

Именно с нуля. Эти цифры не имеют никакого значения.

IW624 это внутренняя адресация в ПЛК, к адресации модбас она не имеет никакого отношения.

Coolboy
27.01.2024, 14:09
Хорошо, ставлю так:
73129

А тут так:
73130

В результате ничего не происходит :(
73131

Я чего то принципиально делаю не так и не понимаю что...

kondor3000
27.01.2024, 14:27
Хорошо, ставлю так:

Я чего то принципиально делаю не так и не понимаю что...

Вы оставили биты, удалите всё и сделайте заново в обоих проектах, везде поставьте регистр адрес 0, сдвиг это и есть адрес. Присвойте ему имя в программе и выведете в поле программы. После переделки очистить всё, компилировать всё.

МихаилГл
27.01.2024, 14:28
Скиньте хоть проекты. Мы на кофейной гуще гадаем

Coolboy
27.01.2024, 14:52
Скиньте хоть проекты. Мы на кофейной гуще гадаем

Сделал два проекта во вложении. Спасибо, что согласились глянуть. Где ошибка?

МихаилГл
27.01.2024, 15:21
Сделал два проекта во вложении. Спасибо, что согласились глянуть. Где ошибка?

Ну начнём...
В программе слэйва задайте маску сетевого подключения 255.255.255.0 - это в принципе некритично.
Кроме этого для слэйва задайте unit_id, например 1.

Для мастера в конфигурации слэйва на вкладке конфигурация поменяйте unit_id с 255 на 1. Потом закройте всю вкладку и откройте снова, и на под вкладке "общее" Увидите ячейку слэйва айди с 1.

Попробуйте так.

kondor3000
27.01.2024, 15:23
Это не всё, в слейве в соотнесении нет имени переменной WORD[0]
В мастере нет вывода переменной в поле программы.

Coolboy
28.01.2024, 08:26
Доброе утро.
Пошли вторые сутки борьбы. Спасибо всем кто подсказывает, все выполняю - связи нет.
Начинается психоз, помогите :))))))))))))

Во вложении последняя версия ПО мастера и слейва.

МихаилГл
28.01.2024, 09:06
Доброе утро.
Пошли вторые сутки борьбы. Спасибо всем кто подсказывает, все выполняю - связи нет.
Начинается психоз, помогите :))))))))))))

Во вложении последняя версия ПО мастера и слейва.

Попробуй проверить сторонним по, модбас пулом, Геркулесом...

Там ещё в модбас регистрах могут биты быть переставлены. Для слэйва это 0...16, а для мастера 8..16 и 0...7

Coolboy
28.01.2024, 10:16
Попробуй проверить сторонним по, модбас пулом, Геркулесом...

Там ещё в модбас регистрах могут биты быть переставлены. Для слэйва это 0...16, а для мастера 8..16 и 0...7

Чего то просканировал...
73142

73143

МихаилГл
28.01.2024, 10:53
Когда в слэйве меняешь регистры в пулле меняются данные. Уже видно, что читаются только 10 слов, остальных и нету, т.к. массив от 0 до 9. Заодно и увидишь, что придёт, по этому и определишь, какие биты переворачивать.

Coolboy
28.01.2024, 11:46
Когда в слэйве меняешь регистры в пулле меняются данные. Уже видно, что читаются только 10 слов, остальных и нету, т.к. массив от 0 до 9. Заодно и увидишь, что придёт, по этому и определишь, какие биты переворачивать.

Стыдно не понимать, стыдно не хотеть разобраться...

Не могли бы вы разжевать, что надо сделать, пошагово?

kondor3000
28.01.2024, 11:56
Стыдно не понимать, стыдно не хотеть разобраться...

Не могли бы вы разжевать, что надо сделать, пошагово?

Вы же не сделали ничего, что написал, опять бит навтыкали, а читать пытаетесь регистр

МихаилГл
28.01.2024, 12:02
Стыдно не понимать, стыдно не хотеть разобраться...

Не могли бы вы разжевать, что надо сделать, пошагово?


Вы же не сделали ничего, что написал, опять бит навтыкали, а читать пытаетесь регистр

Как тут говорит один админ..

Предоставьте удалённый доступ, попробуем помочь)
Энидэск, например...

Coolboy
28.01.2024, 12:51
Как тут говорит один админ..

Предоставьте удалённый доступ, попробуем помочь)
Энидэск, например...

Я готов. Код пришлю в личку

kondor3000
28.01.2024, 13:31
На всякий случай скину пример для виртуального контроллера, как надо было сделать, проект Мастер -1 даже проверил на Codesys Control WIN W3 версии 11

Coolboy
28.01.2024, 13:31
На всякий случай скину пример для виртуального контроллера, как надо было сделать, проект Мастер -1 даже проверил на Codesys Control WIN W3 версии 14

О, спасибо, сейчас изучу.

Coolboy
28.01.2024, 14:02
Мне уже писать стыдно...
Повторил ваш пример один к одному, происходит постоянный перезапуск шины...

Единственное, чего у меня нет, это шлюза в настройках сети...

:mad:

Coolboy
28.01.2024, 14:07
Вот последний "релиз" )))))))))))))))))))))))))))) Что в нем не так?

kondor3000
28.01.2024, 14:32
Вот последний "релиз" )))))))))))))))))))))))))))) Что в нем не так?

Забыли в мастере Вкл. 2 (всегда в задаче цикла шины) 73147 Это надо везде делать

Modbus TCP Slave у вас 16 версии, а ПЛК как я понял 14, тогда устройство лучше заменить (обновить) выбрав 11, 12 или 14 версию73154

В слейве не удалили биты в соотнесении 73148 Это не обязательно, но чтобы не путаться. У вас биты присваиваются в программе
А шлюз лучше поставить

МихаилГл
28.01.2024, 15:08
Если что, могу подключиться... Там и посмотрим

Coolboy
28.01.2024, 15:12
Если что, могу подключиться... Там и посмотрим

Спасибо большое, но я уже уехал с работы.
Завтра применю все исправления и напишу, что получится.

Coolboy
29.01.2024, 08:45
Доброе утро!
Спасибо большое мужики! Поклон вам в пол.

Все работает!!!

Выкладываю сюда рабочие проекты ведущего и ведомого, чтоб было!

(ПЛК 210-04__ModbusTCP__ПЛК 210-01)