Вход

Просмотр полной версии : ПР-200 Помогите реализовать программу.



Вадим80
03.06.2025, 16:02
Прошу помощи или подсказку, как реализовать диспетчеризацию состояния (включен-выключен)электрических автоматов ВРУ жилищного комплекса.
Какой макрос применить и с какими функциями?

melky
03.06.2025, 16:14
Просто на входы заводите от доп контактов АВ сигналы и читаете потом маску входов.
Вообще непонятно, на кой тут ПР200? или вы на экране хотите все это видеть? в сервисном режиме или прямо с подписями ?

Вадим80
03.06.2025, 16:18
Проект такой разработали, на основе ПР-200
надзор за автоматами и двумя дренажными насосами, по дискретным сигналам, на экране ПР-200
Две надписи (действующий прибор, с прошивкой) "АСУ ТП ИО" И вторая строка с состоянием входов "0" и "1" Все 8 входов показывают состояние.

melky
03.06.2025, 16:25
Ну посмотреть можно ли из программы взять служебный регистр для начала, сейчас не помню. Или лепить переменные на входы ПР и их подтягивать на экран.
мда... из сервисных только часы... Значит писать минималистичную программу, ради чтения состояния входов...

такой вот Овен....

Вадим80
03.06.2025, 16:32
А регистр- это готовый макрос с программы?

Вадим80
03.06.2025, 16:34
А Вы скрин не можете прикрепить в сообщении?
Какую переменную или регистр нужно подтянуть к входу ПР-200?

1exan
03.06.2025, 16:50
А Вы скрин не можете прикрепить в сообщении?
Какую переменную или регистр нужно подтянуть к входу ПР-200?

Создаете 8 переменных с типом "Булевское" - и даёте им имена например "Вход1"...."Вход8".
Подключаете их к соответствующим входам на поле программы.
На "Экран 1" вытаскиваете элемент "Ввод/вывод (Boolean)" и выбираете в нём переменную "Вход1". Оформляете элемент как вам нужно, потом делаете ещё 7 его копий и привязываете к ним остальные переменные

Вадим80
03.06.2025, 23:56
Благодарю Вас за подробное описание!

Вадим80
04.06.2025, 07:19
Добрый день, с привязкой переменной к экрану разобрался-почти, подскажите пожалуйста как сделать чтобы значение на экране менялось с "0" На "1", в симуляторе функционирует, как эти изменения входов отразить на экране, если это Вас не затруднит.

1exan
04.06.2025, 07:34
Добрый день, с привязкой переменной к экрану разобрался-почти, подскажите пожалуйста как сделать чтобы значение на экране менялось с "0" На "1", в симуляторе функционирует, как эти изменения входов отразить на экране, если это Вас не затруднит.

Приложите свой проект

Вадим80
04.06.2025, 08:05
Приложить фото с экрана ноутбука или файл с программой из Овен Лоджика Вам прислать?

1exan
04.06.2025, 08:09
Конечно файл - нажмите под редактором сообщения кнопку "Расширенный режим" и там прикрепите свой файл

Вадим80
04.06.2025, 09:57
Файл с программой

Вадим80
04.06.2025, 10:25
Расскажите пожалуйста кратко на примере одного дискретного входа, я запутался в переменных.

Dimensy
04.06.2025, 10:51
Так, а в чем проблема? Вы все правильно сделали. Единственное, надо убрать возможность редактирования с экрана и для сети собрать сигналы в маску

Dimensy
04.06.2025, 12:09
А еще, на экран можно последовательно выводить неисправности. Думаю, так будет получше

Вадим80
04.06.2025, 12:37
Огромное Вам спасибо за помощь!!!
А что такое "собрать в маску"? Это сложно сделать?

Вадим80
04.06.2025, 12:46
Благодарю Вас Dimensy!
Начал понимать как добавлять переменные в программе и назначать, а то до этого задваивал их, не было понимания совсем.

Dimensy
04.06.2025, 13:14
Огромное Вам спасибо за помощь!!!
А что такое "собрать в маску"? Это сложно сделать?

Если грубо, то маска - это десятичное число, записанное в двоичной системе исчисления.
Например,
2 в десятичной системе, это 00000010 в двоичной системе
5 в десятичной - это 00000101 в двоичной, ну и т.д.

Просто, в случае ПРки, удобнее по сети передать одно число (а это 16 бит), чем 16 слов, каждое из которых представляет бит

kondor3000
04.06.2025, 13:46
Огромное Вам спасибо за помощь!!!
А что такое "собрать в маску"? Это сложно сделать?

Вот пример упаковки и распаковки бит из Маски, с 0 по 2, далее по аналогии можете сделать сами до 15 бита 84162 и упаковать в макросы.
R_trig и XOR нужны для запоминания входов, можно удалить.

Вадим80
04.06.2025, 14:02
Благодарю за подробности, попробую воплотить это в проекте.

Вадим80
05.06.2025, 08:01
Вот пример упаковки и распаковки бит из Маски, с 0 по 2, далее по аналогии можете сделать сами до 15 бита 84162 и упаковать в макросы.
R_trig и XOR нужны для запоминания входов, можно удалить.

Вы не могли бы эту прошивку загрузить в разработке?
То что Вы изобразили на скрине

kondor3000
05.06.2025, 08:05
Вы не могли бы эту прошивку загрузить в разработке?
То что Вы изобразили на скрине

Макрос SelChgI находится в Файл/ Менеджер компонентов, выбрать его, поставить галку и нажать загрузить в проект.
Он нужен только для передачи маски по сети, а для сборки бит в Маску он не нужен.

Вадим80
05.06.2025, 08:07
Загрузил, всё равно не работает (

kondor3000
05.06.2025, 08:19
Загрузил, всё равно не работает (

Так схему надо собрать по скрину, вытащить макрос и вставить. И вы не читаете, для сборки бит он не нужен. 84181

Макрос SelChgI нужен только для управления битами из 2 мест, из панели и со входов ПР200.

Вадим80
05.06.2025, 10:11
Так схему надо собрать по скрину, вытащить макрос и вставить. И вы не читаете, для сборки бит он не нужен. 84181

Макрос SelChgI нужен только для управления битами из 2 мест, из панели и со входов ПР200.

Вы не могли бы скинуть скрин не из симулятора для понимания связей между блоками ?

kondor3000
05.06.2025, 10:16
Вы не могли бы скинуть скрин не из симулятора для понимания связей между блоками ?
Вот проект, удалите что не нужно сами,
схему можно переносить копипастом из одной ПР в другую, кроме сетевых переменных.

Вадим80
05.06.2025, 10:26
[QUOTE=kondor3000;465451]Вот проект, удалите что не нужно сами,
схему можно переносить копипастом из одной ПР в другую, кроме сетевых переменных.


Благодарю Вас за помощь.

Вадим80
05.06.2025, 11:00
Вот проект, удалите что не нужно сами,
схему можно переносить копипастом из одной ПР в другую, кроме сетевых переменных.

Можно Вас еще попросить? Не могли бы Вы проверить проект?

1exan
05.06.2025, 11:18
Можно Вас еще попросить? Не могли бы Вы проверить проект?

Не пытайтесь создать связь между элементами, совмещая их концы - в OL это не работает. Создавайте связи явно, протягивая их мышкой.
84185
Дискретные выходы ПР у вас для чего предназначены?

Вадим80
05.06.2025, 11:22
Для диспетчеризации состояний двух дренажных насосов, и вводных автоматов в ВРУ, везде "сухой" контакт.
Всего 8 сигналов

kondor3000
05.06.2025, 11:58
Можно Вас еще попросить? Не могли бы Вы проверить проект?

Константы с 3 по 7 у вас не соединены с блоками, справа и слева, соедините их вручную мышкой.

Вадим80
05.06.2025, 12:07
Понял Вас, спасибо за подсказку.

1exan
05.06.2025, 12:27
Для диспетчеризации состояний двух дренажных насосов, и вводных автоматов в ВРУ, везде "сухой" контакт.
Всего 8 сигналов

Тогда вам не нужен ФБ SelChgI - просто соедините входы с выходами

Dimensy
05.06.2025, 12:50
А что за прыжки с маской? Я же, еще здесь https://owen.ru/forum/showthread.php?t=41443&p=465344&viewfull=1#post465344 в примере все в маску упаковал
84187
Причем, этот блок из диспетчера компонентов

Вадим80
05.06.2025, 12:58
Это я понял, а здесь в этом скрине нужно добавлять макросы распаковки и привязывать их в выходам?

Вадим80
05.06.2025, 13:02
Вот этот узел нужно внести в проект, который отведён красным на выходы?

Dimensy
05.06.2025, 13:15
Вот этот узел нужно внести в проект, который отведён красным на выходы?

Только в том случае, если вы выходами управляете из двух мест: локально и по сети

Вадим80
05.06.2025, 13:27
По сети они будут только опрашиваться, если можно так сказать,

Вадим80
05.06.2025, 13:30
Данные выходы в будущем, согласно проекта должны будут выведены на АРМ в графическом виде, пока у меня только получилось увидеть функционал входов на экране ПР и то благодаря всем вам, сам бы не дошёл до этого.

Вадим80
05.06.2025, 13:32
А что за прыжки с маской? Я же, еще здесь https://owen.ru/forum/showthread.php?t=41443&p=465344&viewfull=1#post465344 в примере все в маску упаковал
84187
Причем, этот блок из диспетчера компонентов

Я назначил все переменные к входам согласно вашей подсказке, чтобы по сети их было видно нужно ещё что то добавлять в этот проект?

Dimensy
05.06.2025, 13:50
Я назначил все переменные к входам согласно вашей подсказке, чтобы по сети их было видно нужно ещё что то добавлять в этот проект?

Если программа только смотрит входы и отправляет в сеть, то ничего.
Хотя, можно всякие свистелки приделать, например, при аварии моргать красным светодиодом F2

Вадим80
05.06.2025, 14:42
Это осталось настроить сетевые параметры ПР-200?
И оставить как есть Ваш вариант проекта, со всеми переменными, которые я добавил, правильно я понимаю?

Dimensy
05.06.2025, 14:48
Состояния входов отображаются на экране?
Состояния входов можно прочитать по сети?
Больше ничего не требуется?
Если да, то можете оставить мой вариант

Вадим80
05.06.2025, 14:53
На экране всё отлично отображается, я не знаю как опросить её по сети, если у Вас есть время-можете мне хотябы обобщённо это объяснить?
Опрос будет вести С2000- Ehternet/RS-485.

kondor3000
05.06.2025, 15:19
На экране всё отлично отображается, я не знаю как опросить её по сети, если у Вас есть время-можете мне хотябы обобщённо это объяснить?
Опрос будет вести С2000- Ehternet/RS-485.

Для этого есть обучающие видео https://rutube.ru/video/12959db57efcb1394f23dd89b270d350/
Разница только, если ПР200 слейв, то адреса у неё начинаются с 512

Вадим80
05.06.2025, 15:24
Адрес 512 это вместо 70 адреса на видео?

Dimensy
05.06.2025, 15:25
Обобщенно.
Настраиваете конвертер чтобы со стороны RS485 совпадало с ПРкой, а на стороне Ethernet с вашей сетью. На компьютер ставите программку OPC-сервер, например, эту https://owen.ru/product/opc_server_insat. Настраиваете там подключение (вам нужен будет Modbus over TCP). Прописываете в программке ID вашего приборчика и номер регистра. И пробуете

Вадим80
05.06.2025, 15:36
Спасибо большое за информацию!

kondor3000
05.06.2025, 15:43
Адрес 512 это вместо 70 адреса на видео?

Смотрим другое видео ПР200 слейв, настраиваем сеть. https://rutube.ru/video/8afc6ff35b12c5a7eb4f0e72c2562b26/
Слейв адрес ПР по умолчанию 16 , первый регистр слейва-адрес 512.

Вадим80
05.06.2025, 15:56
Попробую воплотить в жизнь, благодарю Вас за уроки.

Вадим80
06.06.2025, 04:28
Смотрим другое видео ПР200 слейв, настраиваем сеть. https://rutube.ru/video/8afc6ff35b12c5a7eb4f0e72c2562b26/
Слейв адрес ПР по умолчанию 16 , первый регистр слейва-адрес 512.

Добрый день, Вы не могли бы проверить проект, все там правильно?

In_Da_Cher_A
06.06.2025, 07:17
Добрый день, Вы не могли бы проверить проект, все там правильно?
синдром студента?
Вы сами можете самостоятельно пройти по основным моментам, на которые вам уже показывали и принять осмысленное решение - вот проект, он готов, я отвечаю за его работоспособность и заложенные в нём решения?

Dimensy
06.06.2025, 08:54
Как все запущено.
Почистил, перегруппировал

kondor3000
06.06.2025, 10:00
Как все запущено.
Почистил, перегруппировал

Биты же не по порядку включаются. Ему ещё и биты потом искать придётся.

Вадим80
06.06.2025, 10:06
А как найти биты? Расскажите пожалуйста на примере этого проекта.

kondor3000
06.06.2025, 10:08
А как найти биты? Расскажите пожалуйста на примере этого проекта.

Я же вам дал упаковку бит, там по порядку всё. Сравните числа в маске в этом примере и в моём.
Каждый следующий бит должен увеличивать число в Маске в 2 раза, 0 бит 1, 1 бит -2, 2 бит 4, 3 бит 8, и далее 16,32,64,128, 256,512,1024 и т. д.

Dimensy
06.06.2025, 10:30
Биты же не по порядку включаются. Ему ещё и биты потом искать придётся.

А что значит не по порядку и искать?
Нулевой и первый биты - насосы
Второй и третий - АВР
Остальные - Вводы.

Думаю, логично

Вадим80
06.06.2025, 10:59
Я же вам дал упаковку бит, там по порядку всё. Сравните числа в маске в этом примере и в моём.
Каждый следующий бит должен увеличивать число в Маске в 2 раза, 0 бит 1, 1 бит -2, 2 бит 4, 3 бит 8, и далее 16,32,64,128, 256,512,1024 и т. д.

Как я Вас понял указанные числа бит следует ввести в тегах ОПС сервера? Верно?

Rask
06.06.2025, 11:24
А как найти биты? Расскажите пожалуйста на примере этого проекта.
Человеку просто лень. Народ я одного не пойму - на кой? Даже девушкой притворятся не надо))) И так поможете
Только от этого смысл есть?
Да бывает моменты когда она (помощь) нужна, не поспоришь - но здесь " Мама а куда битик положить, скажи пожалуста"
А Вы: сюда маленький сюда"
Оказываете помощь тому кому она реально нужна)))

Вадим80
06.06.2025, 11:37
Человеку просто лень. Народ я одного не пойму - на кой? Даже девушкой притворятся не надо))) И так поможете
Только от этого смысл есть?
Да бывает моменты когда она (помощь) нужна, не поспоришь - но здесь " Мама а куда битик положить, скажи пожалуста"
А Вы: сюда маленький сюда"
Оказываете помощь тому кому она реально нужна)))

Хорошо говорить, когда долгое время всем этим занимаешся, яд лейте в другом месте, всё всего знать не возможно,

kondor3000
06.06.2025, 12:17
Как я Вас понял указанные числа бит следует ввести в тегах ОПС сервера? Верно?

Нет, число в маске бит соответствует своему биту, плохо вы разобрались в примере упаковки и распаковки.

EFrol
06.06.2025, 12:21
Хорошо говорить, когда долгое время всем этим занимаешся, яд лейте в другом месте, всё всего знать не возможно,

Не обольщайтесь. Здесь профи поливают друг друга тоже не слабо. Научитесь не обращать внимания. Сосредоточьтесь на задаче.

Dimensy
06.06.2025, 12:53
Как я Вас понял указанные числа бит следует ввести в тегах ОПС сервера? Верно?

OPC пусть читает маску. А биты будете выдергивать в SCADA, АРМ или, что там у вас будет использоваться наверху

kondor3000
06.06.2025, 12:54
А что значит не по порядку и искать?
Нулевой и первый биты - насосы
Второй и третий - АВР
Остальные - Вводы.

Думаю, логично

8 бит включает в маске число 16777216, это уже 24 бит, он даже в 16 битный регистр не влезет 84199
С вашей расстановкой констант

Вадим80
06.06.2025, 13:21
OPC пусть читает маску. А биты будете выдергивать в SCADA, АРМ или, что там у вас будет использоваться наверху

Да, наверху будет SCADA, получается нет смысла в OPC добавлять тэги дискретных входов? Получилось подключиться и опросить ПР-200, по адресу 16 и регистру маски.

Вадим80
06.06.2025, 13:23
Просто хотел как бы сказать в"живую" получить данные с входов.

Dimensy
06.06.2025, 14:43
8 бит включает в маске число 16777216, это уже 24 бит, он даже в 16 битный регистр не влезет [/ATTACH]
С вашей расстановкой констант

Вадим80, вот нахрена было лезть в макрос? Не понимаешь, блин, не трогай

Вадим80
06.06.2025, 14:53
Вадим80, вот нахрена было лезть в макрос? Не понимаешь, блин, не трогай

Вот по этому примеру поставил константы, а в макросе они были без применения в проекте, накосячил.

Dimensy
06.06.2025, 15:02
Это готовый макрос битовой маски из менеджера компонентов. Чтобы вносить в него правки, надо понимать как он работает
Вернул как было

Вадим80
06.06.2025, 15:46
Это готовый макрос битовой маски из менеджера компонентов. Чтобы вносить в него правки, надо понимать как он работает
Вернул как было

Dimensy, благодарю Вас за уроки, я очень многое узнал благодаря Вам. Поправлю всё в проекте.

Вадим80
07.06.2025, 09:52
Dimensy, благодарю Вас за уроки, я очень многое узнал благодаря Вам. Поправлю всё в проекте.



Если будет, посмотрите пожалуйста, экран еще не привязывал к переменным

kondor3000
07.06.2025, 10:05
Если будет, посмотрите пожалуйста, экран еще не привязывал к переменным

Если бы вы читали, что вам пишут, то не задавали вопросов по 5 раз.
На 2 блоке Шифт должен быть 1, а в маске с 9 и 10 входа, 256 и 512
https://owen.ru/forum/showthread.php?t=41443&p=465519&viewfull=1#post465519

Лучше бы сделали свой макрос, 1 вместо 2 готовых, разобрались бы с битами и с Шифтами не мудрили.
Глядищь и знания бы в памяти отложились.

Dimensy
07.06.2025, 10:31
Ну, с Shift - это я тормознул.