Вход

Просмотр полной версии : переменные BOOL в ПР100 и СП310



KonstantinS
05.08.2026, 12:40
89970899718997289973899748997589976
Добрый день! Пытаюсь организовать связь по 485 Modbus между ПР100 и СП310, где ПР100 мастер, а СП310 слейв. Передача чисел в формате integer проблем не вызвала, однако не получается передать значение в BOOL, например результат переключения переключателя на экране. Изначально проверил через Master OPC, связь работала, значение COIL адрес 256 переключается, но когда мастером выступает ПР100 не могу добиться переключения сетевой переменной BOOL, с integer проблем нет.:confused:

МихаилГл
05.08.2026, 12:45
А вы используйте для булей интеджер. Это грубо говоря 16 или 32 Буля в одном слове. И про коил функцию 05 забудьте

Евгений Кислов
05.08.2026, 12:46
Добрый день.
В вашем случае в OwenLogic для input1 нужно настроить "регистр = 16, бит = 0".

89977

https://owen.ru/downloads/rp_owen_logic.pdf

kondor3000
05.08.2026, 14:04
Пример передачи и приёма бит из панели, маска бит передаётся целым числом, на скрине передача 3 бит (с 0 по 2 бит) 89978
в одном регистре можно передать до 16 бит, можете сами доделать по аналогии.
Макрос SelChgI из менеджера компонентов.

KonstantinS
05.08.2026, 16:42
тогда для адреса 257 в СП310 должен соответствовать в ПР100 адрес 16 бит 1
для 258 адрес 16 бит 2 ?

МихаилГл
05.08.2026, 17:16
тогда для адреса 257 в СП310 должен соответствовать в ПР100 адрес 16 бит 1
для 258 адрес 16 бит 2 ?

Ну вам Евгений так и ответил. Зачем вы переспрашиваете? Что за недоверие?

PS Если вы про следующие биты, то да...

PS2 Читаю снова и снова ваш вопрос... В пр бит 256, в сп регистр 16 бит 0, и т.д. А если в СП битами, то да, в СП бит 256, а в пр регистр 16 бит 0. Сам запутался...

kondor3000
05.08.2026, 17:59
тогда для адреса 257 в СП310 должен соответствовать в ПР100 адрес 16 бит 1
для 258 адрес 16 бит 2 ?

Так и есть, только поймите, при большом количестве бит (и переменных) это сильно тормозит обмен,
для передачи 16 бит отдельно, надо затратить по времени в 16 раз больше, чем передать 1 регистр с битовой маской на 16 бит.
Условно для ПР передача 1 регистра 100 мс, для передачи 16 бит вы потратите 1,6 секунды, всесто 0,1 сек. А если бит (переменных) много, то нажав кнопку будете ждать несколько 3-5-10 сек. пока бит сработает.

KonstantinS
06.08.2026, 07:41
тут не доверяю прежде всего себе ;), есть какая-то возможность перевести данные в СП310 с выключателей в формат integer?

kondor3000
06.08.2026, 07:54
тут не доверяю прежде всего себе ;), есть какая-то возможность перевести данные в СП310 с выключателей в формат integer?

Выше я вам всё описал, используйте регистры начиная с PSW256, 89980
для маски бит в 256 регистре ПР, в панели ставите PSW256 биты с 0 по 15

KonstantinS
06.08.2026, 12:42
вроде как разобрался, всем спасибо!!!::D