PDA

Просмотр полной версии : Связь между несколькими ПЛК210-03



Talgat24
03.04.2025, 21:40
Подскажите пожалуйста. У меня есть несколько ПЛК210-03, мне надо их связать, пытался сделать это через Modbus TCP Master, все получается, но, когда дело доходит до добавления канала в Modbus TCP Slave я не могу найти адреса сдвигов для регистров WRITE и READ своих ПЛК. Искал везде, но не нашел.

Вопрос такой: как можно найти адреса регистров входов и выходов своего ПЛК210-03? или как можно связать эти все ПЛК210-03 каким нибудь другим способом?

Буду очень благодарен за ответ, а то я зашел в тупик!

kondor3000
03.04.2025, 22:36
Подскажите пожалуйста. У меня есть несколько ПЛК210-03, мне надо их связать, пытался сделать это через Modbus TCP Master, все получается, но, когда дело доходит до добавления канала в Modbus TCP Slave я не могу найти адреса сдвигов для регистров WRITE и READ своих ПЛК. Искал везде, но не нашел.

Вопрос такой: как можно найти адреса регистров входов и выходов своего ПЛК210-03? или как можно связать эти все ПЛК210-03 каким нибудь другим способом?

Буду очень благодарен за ответ, а то я зашел в тупик!

В слейве адреса регистров считаются с 0, соответственно мастером вы читаете эти регистры слейва тоже с 0. 82865
На скрине показано по 16 регистров для чтения и записи (адреса с 0 по 15), соотнесение регистров слейва и Мастера,
в какие регистры Мастер читает (функция 4) и куда записывает по триггеру (функция 16). Обмен по TCP/IP (можно и по Модбас сделать)

Для передачи входов и выходов ПЛК (дискретные ), им надо дать имена, упаковать в маску бит (WORD) через точку (биты с 0 по15) и отправить по 16 штук в другой ПЛК. При получении распаковать через точку и присвоить куда вам надо.

Talgat24
03.04.2025, 23:22
На счет второго абзаца вашего ответа, есть ли видеоурок который объясняет то что вы написали?

И я пробовал указывать сдвиг как 0, но когда я привязывал туда переменные, ничего не получалось (попробовал включить выход одного ПЛК с помощью входа второго (не получилось) ). Мне получается нужно одну дискретную переменную ПЛК210-03(1) перекинуть на ПЛК210-03(2).

kondor3000
04.04.2025, 08:38
На счет второго абзаца вашего ответа, есть ли видеоурок который объясняет то что вы написали?

И я пробовал указывать сдвиг как 0, но когда я привязывал туда переменные, ничего не получалось (попробовал включить выход одного ПЛК с помощью входа второго (не получилось) ). Мне получается нужно одну дискретную переменную ПЛК210-03(1) перекинуть на ПЛК210-03(2).

Вот так упаковываются и распаковываются биты в Маску, через точку 82872 и работа Масок 82873
Каждый включённый бит соответствует своему числу в Маске бит. Привязывать в соотнесении надо только Маску, биты вы упаковываете и распаковываете уже в программе.
Если же вы используете дискретные входы ПЛК, то им можно дать те же имена, b0, b1, b2 и т. д., только в объявлении переменных тогда надо их удалить.
Пример для 8 бит, можно сделать до 16 бит в одной Маске.

Вам надо начать с азов, Посмотрите видео на Ю-туб по программированию ПЛК210, ПЛК210 как слейв и как Мастер,
есть и на Ру-туб.

Cs-Cs
04.04.2025, 09:11
А что значит "связать"? Мысли:
1. У ПЛК на CodeSys НЕТ прямого обращения к внутренним переменным или сигналам, как было у Siemens (всякие V, M, I, Q).
ВООБЩЕ нет. Чтобы извне ПЛК что-то выдал - это надо с нуля запрограммировать самому.
Например при помощи Modbus. Про это сазали выше.
2. Если надо связываться между несколькими программаи ПЛК на уровне CodeSys, то у Евгения Кислова есть видео про СЕТЕВЫЕ ПЕРЕМЕННЫЕ, которые добавляются прямо внутри проектов ПЛК на уровне CodeSys, и работают автоматически.
(Или спросить у него напрямую, так как сейчас YouTube плохо работает, и я ссылку не найду)