PDA

Просмотр полной версии : ПЛК210+ПЛК160 Модбас ТСР



Shera_Best
05.03.2023, 21:02
Добрый день, коллеги.
Не могли бы подсказать мне нужно соединить по модбас ТСР ПЛК210 и ПЛК160.
ПЛК210 Мастер, ПЛК160 слэйв.
Я понимаю что нужно присвоить IP-адреса, указать порты, но как указать регистры ПЛК160 в ПЛК210 для считывания и записи не пойму.
Если есть примеры не могли бы выслать.

Paha1977
05.03.2023, 21:06
Приветствую

Ну на этот счет уже много сказано:
https://owen.ru/forum/showthread.php?t=28167&p=365393&viewfull=1#post365393
https://www.youtube.com/watch?v=mkpY3u7K8Kg

Shera_Best
06.03.2023, 21:34
Для уточнения, мне нужно в ПЛК160 в Конфигурации ПЛК создать
66353, указать таким образом все переменные,
в ПЛК 210 в Конфигурации ПЛК
66354
и тут
66355
указать откуда считывать вышеуказанные переменные?

Евгений Кислов
07.03.2023, 06:31
Для уточнения, мне нужно в ПЛК160 в Конфигурации ПЛК создать
66353, указать таким образом все переменные,
в ПЛК 210 в Конфигурации ПЛК
66354
и тут
66355
указать откуда считывать вышеуказанные переменные?

По последнему скриншоту - каналы опросы создаются на вкладке Канал Modbus Slave.
В остальном мы всё верно поняли.

66357

Shera_Best
07.03.2023, 09:20
Ок. спасибо.

Shera_Best
20.03.2023, 11:00
В продолжении темы..
Настроил ПЛК210 мастер ТСР, ПЛК160 слэйв ТСР
появились вопросы по передаче переменных типа bool
так настроен ПЛК160 для передачи дискрет
66633
так настроен ПЛК210 для приема/передачи дискрет
66634
Регистры по порядковому номеру 58 нормально работают, 59 и 60 создают ошибки
ПЛК ругается на них
66635
Подскажите что я делаю не так?

Евгений Кислов
20.03.2023, 11:21
В продолжении темы..
Настроил ПЛК210 мастер ТСР, ПЛК160 слэйв ТСР
появились вопросы по передаче переменных типа bool
так настроен ПЛК160 для передачи дискрет
66633
так настроен ПЛК210 для приема/передачи дискрет
66634
Регистры по порядковому номеру 58 нормально работают, 59 и 60 создают ошибки
ПЛК ругается на них
66635
Подскажите что я делаю не так?

Добрый день.
ПЛК1xx поддерживают чтение бит со следующими ограничениями:
- либо 1 бит с любого адреса
- либо блоком, размер которого кратен 8 бит, с адреса, который кратен 8 (например, 8 бит с адреса 0, 16 бит с адреса 8 и т.д.)

Shera_Best
20.03.2023, 11:34
Добрый день..
Т.е. чтобы мне обменяться с ПЛК160 38 битами мне нужно с 32 адреса передать 38 бит?

Евгений Кислов
20.03.2023, 11:54
Добрый день..
Т.е. чтобы мне обменяться с ПЛК160 38 битами мне нужно с 32 адреса передать 38 бит?

38 - не получится.
Можно 40.

Shera_Best
20.03.2023, 16:25
Соединение установилось. ошибок нет. Но дискреты с ПЛК160 не видно, если считывать как Int то они видны, если считывать как bool то нет.
Еще второй вопрос есть, у меня из 38 дискрет ПЛК160 12 Write, 26 Read. А так как Вы сказали сделать один блок в CS3.5, то это я понимаю как однотипный все или Read или все Write? А как сделать часть таких часть других?
Также с помощью Модбас сканера сканирую ПЛК160, тоже самое вижу.. на 32 адресе если смотрю как Int то всё видно, если смотрю как bool то не вижу ничего. Хотя на ПЛК160 среди этих 38 бит есть активные биты.

Евгений Кислов
20.03.2023, 16:33
А как сделать часть таких часть других?

С точки зрения ПЛК160 - все биты доступны для чтения. Прочитайте число бит, кратное 8.
Можете прочитать все 48 бит, которые видно на вашем скриншоте выше, и не обращать внимания на "ненужные" биты.
Записывать проще всего по одному биту, функцией 0x05.


Но дискреты с ПЛК160 не видно, если считывать как Int то они видны, если считывать как bool то нет

Тогда считывайте как INT. Или вам по какой-то причине обязательно нужно считать их функцией 0x02?
Я предполагаю, что вы используете версию CODESYS младше 3.5.17.30 - в них был ряд проблем при работе с битами по Modbus.

Shera_Best
20.03.2023, 17:01
Записывать проще всего по одному биту, функцией 0x05 как указать один бит из диапазона?

Используется CS 3.5 SP18 patch 3+

Shera_Best
20.03.2023, 17:03
Еще вопрос, в CS3.5 не могу добавить более 100 каналов в один Modbus Slave устройство. Как решается? Второе устройство с опросом на этот IP-адрес с другим портом?

Евгений Кислов
20.03.2023, 18:31
как указать один бит из диапазона?

Используется CS 3.5 SP18 patch 3+

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

66644

Евгений Кислов
20.03.2023, 18:32
Еще вопрос, в CS3.5 не могу добавить более 100 каналов в один Modbus Slave устройство. Как решается? Второе устройство с опросом на этот IP-адрес с другим портом?

Да, именно так. В ПЛК160 также потребуется добавить еще один узел TCP с другим номером порта.

capzap
20.03.2023, 18:43
Еще вопрос, в CS3.5 не могу добавить более 100 каналов в один Modbus Slave устройство. Как решается? Второе устройство с опросом на этот IP-адрес с другим портом?

Вы серьезно не хотите рассмотреть вариант упаковать биты в слова и сократить свои сто кaналов в 16 раз?

Shera_Best
21.03.2023, 06:56
Вы серьезно не хотите рассмотреть вариант упаковать биты в слова и сократить свои сто кaналов в 16 раз?

Из 100 каналов только 8 битовые, остальные real (по 2 канала) и int (по 1 каналу).

capzap
21.03.2023, 10:23
Из 100 каналов только 8 битовые, остальные real (по 2 канала) и int (по 1 каналу).

и сколько знаков после запятой требуется у реалов?

ЗЫ на этой картинке https://owen.ru/forum/attachment.php?attachmentid=66633&d=1679298881&thumb=1 явно не восемь бит отображено, а как минимум 48

1exan
21.03.2023, 11:20
и сколько знаков после запятой требуется у реалов?

ЗЫ на этой картинке https://owen.ru/forum/attachment.php?attachmentid=66633&d=1679298881&thumb=1 явно не восемь бит отображено, а как минимум 48

Похоже под каналами подразумеваются регистры

capzap
21.03.2023, 12:23
Похоже под каналами подразумеваются регистры

в любом случае 8 восьмибитных модулей в плк160 это два DWORD в плк210, все ИНТ-ы это в два раза меньше в DWORD-ах, REAL если какие то безумные тысячные и меньше ненужны, то перевод в ИНТ-ы с умножением на 100 и вновь сокращение передаваемой инфы