Просмотр полной версии : Экспресс вопрос (ответ)
Из программы на аналоговый выход подаётся значение с плавающей запятой диапазона 0-1, что соответствует выходному току 4-20 мА или напряжению 0-10В.
Напряжение будет падать на нагрузочном резисторе, одним концом он будет подключен к токовому выходу ПР200, другим к минусу источнику питания, не понимаю какие здесь могут быть сложности.
Это, если у Вас прибор с токовым выходом, в смысле, если прибор с выходом по напряжению, ничего и думать не надо. Тип нужного выхода указывается при заказе прибора.
Спасибо, я кажется разобрался.
ПР200 бывает в модификации .2 с выходом по току и .4 по напряжению
у меня ПР200.24.2.2.0 - с токовым выходом, соответственно чтобы получить управляющее напряжение 2-10 В мне нужно нагрузить выход резистором 500 Ом (просто поставив его между клеммами [+] и [-].
вопрос только в том, какое будет напряжение если я подам на этот выход 0,5 - 6В или 5В )
МихаилГл
27.10.2024, 23:04
Внимательнее читайте. И заодно схему подключения питания внешнего на токовый выход гляньте. А то Сергей вас щас ругать будет)
МихаилГл
27.10.2024, 23:40
так?
79690
одним концом он будет подключен к токовому выходу ПР200, другим к минусу источнику питания
Вот это внимательно... Т.е. тут не сказано про плюс источника питания, который, как я понимаю, подключён к второму выводу токового выхода. Хотя я возможно ошибаюсь, т.к. электроника это не моё.
А в вашей схеме где будет изменяемое напряжение? Если вы +/- блока питания сопротивлением перемкнули...
Сергей0308
28.10.2024, 02:40
Непонятно, зачем гадать, в смысле, там же есть и схема подключения:
79691
https://owen.ru/product/pr200/connection
Непонятно, зачем гадать, в смысле, там же есть и схема подключения:
79691
https://owen.ru/product/pr200/connection
Спасибо! Осталось понять, что такое Uн - это внешний блок питания? А какие у него характеристики должны быть?
kondor3000
28.10.2024, 08:15
Спасибо! Осталось понять, что такое Uн - это внешний блок питания? А какие у него характеристики должны быть?
Это Uп, напряжение питания. +/- 24 В. Для 1-2 выходов 100 мА, можно больше.
R н - сопротивление нагрузки, это ваше сопротивление 500 Ом, стоящее параллельно входу 2-10 В.
R огр - ограничительное, можно не ставить. (около 100-200 Ом)
Спасибо! Осталось понять, что такое Uн - это внешний блок питания? А какие у него характеристики должны быть?
Поищите в руководстве, там и про напряжение есть и про резисторы
79692
sergeyart
28.10.2024, 15:54
Натолкните на мысль, пожалуйста. Нажимаю кнопку больше/меньше, на аналоговом выходе раз в секунду увеличивается/уменьшается значение на 0,1 и остается неизменным при отпускании кнопки
kondor3000
28.10.2024, 15:59
Натолкните на мысль, пожалуйста. Нажимаю кнопку больше/меньше, на аналоговом выходе раз в секунду увеличивается/уменьшается значение на 0,1 и остается неизменным при отпускании кнопки
А что вы хотите сделать?
Если регулировать FLOAT кнопками + и -, то можно так 79698
Сергей0308
28.10.2024, 16:01
Натолкните на мысль, пожалуйста. Нажимаю кнопку больше/меньше, на аналоговом выходе раз в секунду увеличивается/уменьшается значение на 0,1 и остается неизменным при отпускании кнопки
Примерно как-то так:
79697
Непонятно, как могут возникнуть трудности в столь элементарном вопросе!
sergeyart
28.10.2024, 20:12
Примерно как-то так:
79697
Непонятно, как могут возникнуть трудности в столь элементарном вопросе!
Упрек принят. Сам не ожидал, что тормозну на этом. Спасибо всем откликнувшимся
Есть датчик температуры пт1000, к нему проложена 10м линия 4х1,5
если подключать его двухпроводным способом то из-за наводок показания прыгают слишком сильно, и даже при пятисекундном усреднении постоянно прыгает второй разряд (например, измеряет то 30 градусов то 31).
если датчик подключать напрямую к входу, т.е. без 10м линии, то ошибка возникает лишь в четвертом разряде, а если нужны целые значения градусов, то можно вообще работать без усреднения.
понятно что есть отдельные модули, реализующие 4-х проводное подключение и всё такое прочее, но вот что мне пришло в голову:
если убрать усреднение в настройках входа, порт перевести в режим измерения сопротивления, а вторую (незадействованную) пару проводов в кабеле замкнуть на дальнем конце и подключить ко второму аналоговому входу, то вычитая показания второго входа из первого мы по идее должны получить очищенный от наводок результат, ну а дальше уже с помощью макроса (а не настройки порта) конвертировать значение сопротивления в градусы цельсия.
такое имеет право на жизнь? может кто-то проверял? а может это уже воплощено где-то?
Сергей0308
30.10.2024, 23:48
Есть датчик температуры пт1000, к нему проложена 10м линия 4х1,5
если подключать его двухпроводным способом то из-за наводок показания прыгают слишком сильно, и даже при пятисекундном усреднении постоянно прыгает второй разряд (например, измеряет то 30 градусов то 31).
если датчик подключать напрямую к входу, т.е. без 10м линии, то ошибка возникает лишь в четвертом разряде, а если нужны целые значения градусов, то можно вообще работать без усреднения.
понятно что есть отдельные модули, реализующие 4-х проводное подключение и всё такое прочее, но вот что мне пришло в голову:
если убрать усреднение в настройках входа, порт перевести в режим измерения сопротивления, а вторую (незадействованную) пару проводов в кабеле замкнуть на дальнем конце и подключить ко второму аналоговому входу, то вычитая показания второго входа из первого мы по идее должны получить очищенный от наводок результат, ну а дальше уже с помощью макроса (а не настройки порта) конвертировать значение сопротивления в градусы цельсия.
такое имеет право на жизнь? может кто-то проверял? а может это уже воплощено где-то?
Может велосипед не изобретать, в смысле, для борьбы с наводками применяют экранированный кабель, типа МКЭШ, кстати у Овена есть:
https://owen.ru/product/kabeli_k_termopreobrazovatelyam_soprotivleniya/price
И, вообще прочитайте для чего применяют 3(4)-х проводное подключение, такое впечатление, что у Вас интернета нет!
Сергей0308 Он БУДЕТ, будет, будет, будет изобретать! Потому что сначала он замучил меня тупостью на моём ресурсе, а ща на ОВЕН пришёл.
На моём ресурсе я его отматерил за этот кабель: http://we.cs-cs.net/blog/avtomatics/560.html (осторожно: я там жёстко матерюсь)
Сергей0308 Он БУДЕТ, будет, будет, будет изобретать! Потому что сначала он замучил меня тупостью на моём ресурсе, а ща на ОВЕН пришёл.
На моём ресурсе я его отматерил за этот кабель: http://we.cs-cs.net/blog/avtomatics/560.html (осторожно: я там жёстко матерюсь)
У тебя был экранированные кабель, а показания без фильтрации все равно дико скакали.
У тебя был экранированные кабель, а показания без фильтрации все равно дико скакали.
Так можете добавить свой фильтр - тот что у Овена мне не очень нравится, я его отключаю или ставлю на небольшие значения.
У тебя был экранированные кабель, а показания без фильтрации все равно дико скакали. Упрёк не совсем принят. У меня скакали сотые и тысячные. Но не на несколько градусов.
Я ещё дополню, что это он тёплые полы делает. То есть, кабель и датчик - внутри тёплого пола. Может, там наводки от нагревательного мата вообще.
Так что нужен экранированный кабель. Был.
А, да. И добавлю вот что. У меня на квартире Матери ПР200 + датчик Pt1000 (наш, ОВЕНский, ДТС 3224). Использован МКЭШ 2х0,75. Длина трассы - 30 метров (засунул в этажный коллекторный щит отопления). Хрен там какие помехи и скачки на градусы есть. Всё прекрасно измеряется.
Упрёк не совсем принят. У меня скакали сотые и тысячные. Но не на несколько градусов.
Я ещё дополню, что это он тёплые полы делает. То есть, кабель и датчик - внутри тёплого пола. Может, там наводки от нагревательного мата вообще.
Так что нужен экранированный кабель. Был.
А, да. И добавлю вот что. У меня на квартире Матери ПР200 + датчик Pt1000 (наш, ОВЕНский, ДТС 3224). Использован МКЭШ 2х0,75. Длина трассы - 30 метров (засунул в этажный коллекторный щит отопления). Хрен там какие помехи и скачки на градусы есть. Всё прекрасно измеряется.
В том тексте написано: "измеренное значение постоянно скачет на 2-3 градуса".
IVM И? А я что писал?
И, кстати, где я писал про то, что у меня скачет?
IVM И? А я что писал?
И, кстати, где я писал про то, что у меня скачет?
Я привёл точную фразу из твоей статьи. Перейди по своей ссылке и прочти.
volodimer
31.10.2024, 15:42
Здравствуйте, столкнулся с проблемой подключения мв210 к пр 205. Не могу сообразить как считать в овен лоджике показания дискретных входов. Создал целочисленную переменную с адресом 51 по умолчанию. И пытался достать значения через функцию чтение бита. Какие то значения по переменной приходят меняются но на биты разложить не могу. Пните куда копать пожалуйста.
kondor3000
31.10.2024, 15:54
Здравствуйте, столкнулся с проблемой подключения мв210 к пр 205. Не могу сообразить как считать в овен лоджике показания дискретных входов. Создал целочисленную переменную с адресом 51 по умолчанию. И пытался достать значения через функцию чтение бита. Какие то значения по переменной приходят меняются но на биты разложить не могу. Пните куда копать пожалуйста.
Ещё раз, читать надо 2 регистра, по адресу 51, для 32 битной целочисленной важно не только расположение байт, но и расположение регистров. Проще всего включить 1-2 входа на модуле и смотреть какое число вы получили.
0 бит это число 1, 1 бит -число 2, 2 бит число 4, 3 бит число 8
Если у вас отличное от этих чисел, значит надо правильно поставить галки, старшим байтом вперёд, старшим регистром вперёд.
Когда получите верные числа, тогда и распаковывайте спокойно биты. 20 бит лучше распаковать на ST, через точку, типа
b0:=Mask.0; b1:=Mask.1; b2:=Mask.2; и т. д.
Тут пример упаковки и распаковки на 4-8-16 бит, до 20 бит допишите сами https://owen.ru/forum/showthread.php?t=38920&page=2#13
Здравствуйте. Имею в наличие ПР103. При переподключении ethernet в ПР пропадает связь. Ситуация: мне нужно отладить систему пр+панель. был подключен к пр по езернету, решил подключить панель. панель не вышла на связи. помогла только перезагрузка. в обратном порядке (панель соединена с пр. отключил панель и подключил ноутбук) так же. хотел бы узнать причину
jutzle внимательно посмотрите какая у вас версия прошивки. Поищите тут темы про обновление, чтобы не окирпичить. Вроде про 103-и было по поводу отключения Ethernet
melky версия прошивки 1.8.0. Посмотрел в список изменений овен логик после моей прошивки не было изменений связанных с работой ethernet. Версия овен логик 2.7.353.0
По ключевым словам ethernet, пр103, отвалилось, пропало соединение ничего не нашел на форуме.
kondor3000
01.11.2024, 14:14
версия прошивки 1.8.0. Посмотрел в список изменений овен логик после моей прошивки не было изменений связанных с работой ethernet. Версия овен логик 2.7.353.0
По ключевым словам ethernet, пр103, отвалилось, пропало соединение ничего не нашел на форуме.
Прошивку для ПР103 уже 3 раза переделали и обратно откатили
2.7.359
Обновления
Встроенное ПО прибора ПР103 v1.8.2:
Заменена прошивка прибора с 1.8.3 на 1.8.2, которая приводила к некорректной работе прибора
volodimer
01.11.2024, 14:23
Спасибо большое все получилось! Объяснили, разжевали, ткнули носом.)
Солнечный заяц
02.11.2024, 13:55
Здравствуйте,
Не могу разобраться во взаимодействии HMI и программы в ПР205. Нужно реализовать ввод очередности запуска котлов, которые работают в каскаде. Планировал сделать так: последовательно 4 переменные на экране, пользователь вводит номера котлов от высокого приоритета запуска к низкому. Написал ФБ, который при изменении любой переменной, заполняет дублирующееся значение, что бы в последовательно не было котлов с одинаковым номером. Но теперь не могу наладить взаимодействие с программой. Создал простейший проект, если я не присваиваю переменные к визуализации все работает (test1), если присваиваю, то переменные почти невозможно изменить, только изредка (test2). Видео и проекты во вложении.
kondor3000
02.11.2024, 14:08
Здравствуйте,
Не могу разобраться во взаимодействии HMI и программы в ПР205. Нужно реализовать ввод очередности запуска котлов, которые работают в каскаде. Планировал сделать так: последовательно 4 переменные на экране, пользователь вводит номера котлов от высокого приоритета запуска к низкому. Написал ФБ, который при изменении любой переменной, заполняет дублирующееся значение, что бы в последовательно не было котлов с одинаковым номером. Но теперь не могу наладить взаимодействие с программой. Создал простейший проект, если я не присваиваю переменные к визуализации все работает (test1), если присваиваю, то переменные почти невозможно изменить, только изредка (test2). Видео и проекты во вложении.
Всем выходным переменным привязанным к экрану ПР205, надо в настройках поставить Запись в конце цикла -Да.
Солнечный заяц
02.11.2024, 14:13
Всем выходным переменным привязанным к экрану, надо в настройках поставить Запись в конце цикла -Да.
Спасибо! Получилось.
sergeyart
03.11.2024, 20:01
У ПР102 значения входов можно считывать напрямую через его регистры модбас , не используя сетевые переменные. Как считывать значения входов, присоединенных к нему модулей расширения ПРМ, только через сетевые?
Сергей0308
03.11.2024, 20:21
У ПР102 значения входов можно считывать напрямую через его регистры модбас , не используя сетевые переменные. Как считывать значения входов, присоединенных к нему модулей расширения ПРМ, только через сетевые?
В смысле, это и есть сетевые переменные!
Одной рукой, примерно как-то так, создаёте битовую маску входов ПРМ для передачи с помощью сетевой переменной:
79813
Другой рукой утираете слёзы счастья!
У ПР102 значения входов можно считывать напрямую через его регистры модбас , не используя сетевые переменные. Как считывать значения входов, присоединенных к нему модулей расширения ПРМ, только через сетевые?
Думаю, что вопрос о переводе ПР и подключённых к нему ПРМ в режим модуля ввода - не в рабочий с исполнением программы пользователя.
Мне лень искать ответ, но, думаю, он найдётся в одном из РЭ на ПР, ПРМ или OwenLogic.
sergeyart
03.11.2024, 21:28
В смысле, это и есть сетевые переменные!
Одной рукой, примерно как-то так, создаёте битовую маску входов ПРМ для передачи с помощью сетевой переменной:
79813
Другой рукой утираете слёзы счастья!
Считывание аналоговых входов (float), которое может быть передано в сетевые переменные ПР102, ограничено 32-мя значениями, т.к. 128 байт/2= 64 регистра / 2 (float), всего 32 входных аналоговых сигнала. Начинается сетевой регистр модбас ПР102 с адреса 512, заканчивается 574. Поэтому количество сетевых переменных ограничено количеством регистров (float )32. В документации на ПР102 есть карта адресов непосредственного обращения к аналоговым входам. У ПР102 8 входов, соответственно адреса регистров с 2816 по 2830. Поэтому возник вопрос, возможно ли считывания аналоговых входов с подключенных ПРМ без использования сетевых переменных. Их и так мало
Сергей0308
03.11.2024, 21:40
Считывание аналоговых входов (float), которое может быть передано в сетевые переменные ПР102, ограничено 32-мя значениями, т.к. 128 байт/2= 64 регистра / 2 (float), всего 32 входных аналоговых сигнала. Начинается сетевой регистр модбас ПР102 с адреса 512, заканчивается 574. Поэтому количество сетевых переменных (float) ограничено количеством регистров 32. В документации на ПР102 есть карта адресов непосредственного обращения к аналоговым входам. У ПР102 8 входов, соответственно адреса регистров с 2816 по 2830. Поэтому возник вопрос, возможно ли считывания аналоговых входов с подключенных ПРМ без использования сетевых переменных. Их и так мало
Это какой-то парадокс, в смысле, считывать значения по сети без использования сетевых переменных невозможно!
По умолчанию ПР не имеет сетевых переменных для модулей расширения!
Надо самому создавать и учитывать возможности ПР, в смысле, выше головы не прыгнешь!
В преведущем посте я показал как можно до 16 булевых переменных передать одним регистром.
sergeyart
03.11.2024, 22:27
Панель оператора СП307 мастер, ПР102 слэйв. Вместо промежуточной трансляции аналоговых входов сначала в сетевые модбас регистры ПР102 (512-574), а потом в панель в регистры PSW, можно в панели напрямую задавать модбас регистры ПР102 (2816-2830) все корректно считывается. Тем самым сэкономил в сетевых переменных (8 аналоговых входов), т.е. 16 регистров, которые мне нужны для другого ввода-ввода. Для ввода аналогов модулей расширения пока не вижу другой возможности, кроме как использовать сетевые переменные, отсюда мой вопрос. Передача булевых (битовых) переменных в одном регистре 16 штук вопросов не вызывает.
При резкой недостаче сетевых переменных, как в ПР200, ПР102, я бы попробовал обменивать параметры настройки в "окне" сетевых переменных, где номер "окна" хранится в отдельной переменной.
Это, конечно, не слишком просто с учётом непредсказуемости порядка опроса, но возможно.
Таким образом, выделится некоторое число параметров, передаваемых "непрерывно" - это как раз состояния входов и выходов, и настройки режимов - ввод и отображение которых происходит поочерёдно по мере смены экранов панели оператора. В скрипты экранов добавить изменение переменной номера "окна" при смене экрана.
Если позволяет ситуация и технические параметры - замените на ПР205 - там сетевых переменных несколько тысяч.
Обмен данными через "окно" - не такая уж редкость.
Недавно с оборудования, которое поступает в техобслуживание, скачал программы ПЛК и панели - несмотря на техническую возможность обоих устройств к обмену сотней параметров, настройки передаются через "окно".
Не выяснял причины такого решения, возможно, что программист воспользовался готовыми наработками по панели даже при смене ПЛК.
Панель оператора СП307 мастер, ПР102 слэйв. Вместо промежуточной трансляции аналоговых входов сначала в сетевые модбас регистры ПР102 (512-574), а потом в панель в регистры PSW, можно в панели напрямую задавать модбас регистры ПР102 (2816-2830) все корректно считывается. Тем самым сэкономил в сетевых переменных (8 аналоговых входов), т.е. 16 регистров, которые мне нужны для другого ввода-ввода. Для ввода аналогов модулей расширения пока не вижу другой возможности, кроме как использовать сетевые переменные, отсюда мой вопрос. Передача булевых (битовых) переменных в одном регистре 16 штук вопросов не вызывает.
Большинство аналоговых сигналов можно передать в целочисленном виде, не используя float. Тот же сигнал 4-20мА можно передавать в виде 4000-20000, чего для подавляющего числа применений вполне достаточно
Королев Кирилл
05.11.2024, 09:42
У ПР102 значения входов можно считывать напрямую через его регистры модбас , не используя сетевые переменные. Как считывать значения входов, присоединенных к нему модулей расширения ПРМ, только через сетевые?
Добрый день! С какого именно ПРМ хотите считывать значения?
Evgen Dnepr
05.11.2024, 15:45
Ну... по Modbus на Home Assitant я ориентируюсь на это: https://www.home-assistant.io/integrations/modbus/
Сервер выделенный (аппаратный) во внешнем дата-центре. Там у меня крутится почта, хранилище и прочий софт. ОС CentOS.
Подскажите как вы пишете регистр TCP modbus.write_register ?
У меня ругается Home Assistenc
Пишу в файл /homeassistant/automations.yaml
- id: '1730530349657'
alias: Пробую записать в Modbus TCP
description: Пробую записать в Modbus TCP
sergeyart
05.11.2024, 16:41
Конечно, везде, где только возможно, передаю в целочисленном, как входные аналоги, так и уставки. С модулей расширения ПРМ передача возможна только через сетевые переменные (нашел в документации). Надеюсь обычные модули ввода-вывода типа МВ110 можно опрашивать по модбас, минуя ПР102. А что представляет сигнал 4000-20000?
...
А что представляет сигнал 4000-20000?
4.000-20.000 мА со сдвигом точки на 3 знака
Подскажите как вы пишете регистр TCP modbus.write_register ?
У меня ругается Home Assistenc
Пишу в файл /homeassistant/automations.yaml
- id: '1730530349657'
alias: Пробую записать в Modbus TCP
description: Пробую записать в Modbus TCP
Вы имеете ввиду как из HA с помощью сервиса write_register в прибор значение записать?
Подскажите как вы пишете регистр TCP modbus.write_register ?
Ооо! Я щас прям запустил большой (для меня) проект с ОВЕНом и HomeAssistant - спасибо моим донатерам, кто мне подарил настроенный HA!
Надо так:
- id: '1728657012399'
alias: Button OFF Light 1 Etaj
description: ''
trigger:
- platform: state
entity_id:
- input_button.habtn_light_off1e
condition: []
action:
- service: modbus.write_coil
metadata: {}
data:
hub: ModbusPLC
state: 1
address: 168
slave: 10
mode: single
То есть, должно быть:
* Задано условие сработки Automatin
* Описан Modbus HUB (параметры подключения) в конфиге. Это сделано?
Надо так:
Точно! Должна быть настроена интеграция с хабом, автоматизация запускающая нужный сервис срабатывающая по условию.
Но! (у меня вопрос) а в Вашем проекте есть запись значений именно в регисты, а не в coil? А еще лучше с типом данных float32))
А разве сложно сделать запись на float?
Если так сложно почитать документацию про Modbus (на которую тут ссылку дали) и поменять тип данных - то, блин, за это надо денег брать.
Да не сложно конечно! Я, собственно, ее и читал, и продолжаю читать, как без нее) И в документации описано конечно, там указан способ с отправкой числа уже представленного в виде 2 байтов
service: modbus.write_register
data:
address: <target register address>
unit: <target slave address>
hub: <hub name>
value: [0x4120, 0x0000]
только я не программист и не знал как из input_number взять число и представить его в нужном виде.
Тогда была была самоделка работающая на ардуино через modbus rtu over tcp. И проблему я решил, сейчас справшивал лишь для того чтобы, возможно, узнаеть еще один способ решения задачи.
service: modbus.write_register
data:
address: 48
slave: 1
hub: hub1
value: >
[{{ '0x%04x' % unpack(pack(states('input_number.man_temp_tp')|flo at(0),
">f"), ">h")|abs }} ,
{{ '0x%x' % unpack(pack(states('input_number.man_temp_tp') |float(0), ">f"), ">h",
offset=2) | abs }} ]
если что, бесплатно... ;-)
SergeyXT
08.11.2024, 12:06
День добрый, такая ситуация возникла. Есть пр200, на нем проект который регулирует 3х ходовой клапан и в какой-то момент перестал работать пид регулятор и всегда выдает 100%, при том что в ручную этот самый клапан без проблем регулируется (те физически порт живой). Другие проекты с пид регуляторами конкретно на этом контроллере ведут себя так-же, на других контроллерах работают корректно. Проблемный контроллер по мимо замены проектов пробовал обновлять ПО и пока ни чего не помогло, все функции работают, кроме пид регуляторов.
Собственно контроллер можно в утиль или у них это распространенная проблема и есть решения?
МихаилГл
08.11.2024, 12:10
Ну а регулятор к чему привязан? К входам-выходам? К датчикам? Может вход вышел из строя... Переключите на другой...
Добрый день
В РЭ на ПР200 написано - Напряжение «логическойединицы» для дискретного входа - 15...30 В.
Каково реальное нижнее значение «логическойединицы» ?
SergeyXT
08.11.2024, 13:08
привязан к термометру, температуру он показывает, в онлайн отладке это видно
МихаилГл
08.11.2024, 13:17
привязан к термометру, температуру он показывает, в онлайн отладке это видно
Скинули бы проект... Бывает при манипуляциях просто связь теряется между блоками, особенно когда они стоят вплотную без линии связи, и у вас просто нет на регулятор информации от датчика, хотя сам он показывает... (Актуально для FBD)
SergeyXT
08.11.2024, 14:02
этот проект успешно работает на 11 других пр200, проблема именно в одном контроллере, на котором перестал работать пид регулятор, другие проекты с пидами (которые так-же без проблем работают на остальных контроллерах) так же не работают на одном приборе
Непосредственно пид регулятор это программная часть, даже если она заложена в firmware прошивки.
Причина явно не в программной части.
Непосредственно пид регулятор это программная часть, даже если она заложена в firmware прошивки.
Причина явно не в программной части.
Ну почему же, а если неисправен ЦАП на выходе? Автор не сказал как он наблюдает 100%. Это физически клапан открыт или всё же в программе при отладке наблюдается?
МихаилГл
08.11.2024, 17:02
Ну почему же, а если неисправен ЦАП на выходе? Автор не сказал как он наблюдает 100%. Это физически клапан открыт или всё же в программе при отладке наблюдается?
Зато он сказал что в ручную из программы клапан регулируется... Или я опять не то и не там прочитал?
А так, по словам ТС, входа рабочие, выхода рабочие... А именно пид не работает...
PS А так как на выходе регулятора при его включении 100, значит задание выше сигнала обратной связи. И это появилось без изменения программы а в процессе работы. С таким не сталкивался. Может с переменной задания в автомате что творится?
kondor3000
08.11.2024, 17:45
А у ПИД а настройки коэффициентов не слетели, в этом ПР?
А то так можно до посинения менять проекты и работать ПИД не будет.
И хоть бы один скрин выложили.
Никто не читает, что эта же программа работает на других ПР? И что программы с других ПР перестают работать в этом ПР?
МихаилГл
08.11.2024, 17:59
Никто не читает, что эта же программа работает на других ПР? И что программы с других ПР перестают работать в этом ПР?
Да читали. Только не можем понять, где коза порылась...
Сергей0308
08.11.2024, 18:02
Опять лечение геморроя дистанционно по фотографии, даже без фотографии, типа что-то болит, значит геморрой, будем лечить!
МихаилГл
08.11.2024, 18:05
Опять лечение геморроя дистанционно по фотографии, даже без фотографии, типа что-то болит, значит геморрой, будем лечить!
Исходник выкладывать отказался... Приходится экстрасенсами подрабатывать.
Вариант 1 - что-то типа как было на другом ПР, слетели какие-то функции на кривой прошивке, как слетали настройки калибровки входов/выходов. После прошивки на "правильную" версию калибровки не возвращались
Вариант2 - что-то сдохло в ЦАП как пишут выше, то есть выходы работают, но внутрях железо ничего не регулирует. Показания в онлайн режиме это ни о чем, так как это программная составляющая.
Подскажите есть проект для ПР200-24.1 как этот проект записать в ПР200-24.5, не меняя проекта, что то можно сделать, спасибо?
Или где можно поправить в проекте, я далеко не силен в этом?
kondor3000
13.11.2024, 09:04
Подскажите есть проект для ПР200-24.1 как этот проект записать в ПР200-24.5, не меняя проекта, что то можно сделать, спасибо?
Для этого в Лоджике есть смена целевой платформы, для ПР200 она работает.
Нажмите Файл/Смена целевой платформы и выберите нужную ПР200.
Подскажите есть проект для ПР200-24.1 как этот проект записать в ПР200-24.5, не меняя проекта, что то можно сделать, спасибо?
Смена целевой платформы
80015
volodimer
15.11.2024, 12:43
Здраввствуйте. Не могу найти в менеджере экранов кнопку добавить группу. как на скрине из справки. ткните носом пожалуйста два часа туплю.8007380074
Королев Кирилл
15.11.2024, 12:54
Здраввствуйте. Не могу найти в менеджере экранов кнопку добавить группу. как на скрине из справки. ткните носом пожалуйста два часа туплю.8007380074
Добрый день. Группы экранов в данный момент не поддержаны. Справку скорректируем.
volodimer
15.11.2024, 12:58
От это подстава). А в ближайшем будущем функция не появится ? То есть подменю (меню настроек) отличное от основного дисплея мне создать не получится с переходом на группу экранов?
Сергей0308
15.11.2024, 13:08
Так оно и сейчас никто не запрещает создать экран или группу экранов, например закольцевав эту группу и переходить на главный экран этой группы, далее по кольцу этой группы, короче, всё зависит от Вас, в смысле, как переходы сделаете, я имею ввиду ПР200!
Королев Кирилл
15.11.2024, 13:12
От это подстава). А в ближайшем будущем функция не появится ? То есть подменю (меню настроек) отличное от основного дисплея мне создать не получится с переходом на группу экранов?
Задача по реализации данного функционала в бэклоге, в ближайшее время не появится. Создать подменю можно, нужно только грамотно настроить переходы. Если возникнут сложности, то можете с вопросами и проектом обращаться либо ко мне на почту, либо на support@owen.ru.
Добрый всем,подскажите новичку, к ПР-200 подключил драйвер шагового двигателя, в библиотеке макросов подключил генератор ШИМ, но не могу добиться нормальной скорости, мкс. один оборот в сек., это ограничение ПР-ки или я где то туплю?
Добрый всем,подскажите новичку, к ПР-200 подключил драйвер шагового двигателя, в библиотеке макросов подключил генератор ШИМ, но не могу добиться нормальной скорости, мкс. один оборот в сек., это ограничение ПР-ки или я где то туплю?
Надеюсь Вы используете выход типа "К"?
Надеюсь Вы используете драйвер ЩД, у которого можно устанавливать число имп./оборот?
Что такое "нормальная скорость"?
В РЭ на ПР200:
80272
т.е. даже при типе выхода "К" и при настройке драйвера 200 шагов/оборот
с очень простой программой - цикл 1мс
Вы получите максимум 500/200 = 2,5 об./сек
Смена состояния выхода происходит в конце цикла, т.е. чтобы сформировать 1 импульс - нужно 2 цикла.
Да, выход "К", т.е. большую частоту ПР-200 не выдаст?
Здравствуйте. В ПР200 можно одновременно менять скважность и частоту следования импульсов на выходе 0...10В? (Нужна частота 30-35Гц)
Сергей0308
28.11.2024, 09:28
Здравствуйте. В ПР200 можно одновременно менять скважность и частоту следования импульсов на выходе 0...10В? (Нужна частота 30-35Гц)
Для этого "напрашиваются" дискретные транзисторные выходы в пятой модификации прибора и цикл программы должен быть не более 14 мс.
Допустим у вас цикл программы 14 мс, в принципе по частоте вы укладываетесь, но скважность менять проблематично, короче, пожалуйста без извращений, в смысле, переключаете транзисторный выход в ШИМ режим и меняете себе скважность сколько захотите, но в пределах возможностей ПР200, если не изменяет память продолжительность импульса от 1 мс и ШИМ там аппаратный, в смысле, не зависит от времени цикла программы!
Здравствуйте. В ПР200 можно одновременно менять скважность и частоту следования импульсов на выходе 0...10В? (Нужна частота 30-35Гц)
Вообще-то, аналоговый выход не предназначен для такого
Юрий_Влад
28.11.2024, 10:45
В инструкции по эксплуатации ПР102 написано, что нельзя объединять COM входы групп DI, нельзя питать выходные устройства от БП реле.
При этом в примерах подключения .dwg все это делается. Так нужны ли отдельные блоки питания по группам входных датчиков? И можно ли промежуточные реле запитывать от БП самой ПР102?
В инструкции по эксплуатации ПР102 написано, что нельзя объединять COM входы групп DI, нельзя питать выходные устройства от БП реле.
При этом в примерах подключения .dwg все это делается. Так нужны ли отдельные блоки питания по группам входных датчиков? И можно ли промежуточные реле запитывать от БП самой ПР102?
У ПР102 отсутствует гальваническая развязка, так что на свой страх и риск
Юрий_Влад
28.11.2024, 12:29
Непонятно почему разработчики противоречат сами себе. В инструкции нельзя, а в примерах электросхем можно.
Непонятно почему разработчики противоречат сами себе. В инструкции нельзя, а в примерах электросхем можно.
В примерах электросхем разработчики поленились нарисовать те самые БП. Не надо экономить на спичках, себе дороже выйдет.
В инструкции по эксплуатации ПР102 написано, что нельзя объединять COM входы групп DI, нельзя питать выходные устройства от БП реле.
При этом в примерах подключения .dwg все это делается. Так нужны ли отдельные блоки питания по группам входных датчиков? И можно ли промежуточные реле запитывать от БП самой ПР102?
Не знаю, как сейчас, но в тех ПР102 24VDC, которые у меня были лет 5 назад, общие СОМ групп DI итак были соединены между собой внутри прибора, что можно проверить при помощи мультиметра. Я тоже тогда это предупреждение прочитал в инструкции, и тоже парился. В итоге всё от одного источника запитал, все ПР работают.
Юрий_Влад
29.11.2024, 14:14
Не знаю, как сейчас, но в тех ПР102 24VDC, которые у меня были лет 5 назад, общие СОМ групп DI итак были соединены между собой внутри прибора, что можно проверить при помощи мультиметра. Я тоже тогда это предупреждение прочитал в инструкции, и тоже парился. В итоге всё от одного источника запитал, все ПР работают.
Не поленился проверить соединение COM выводов мультиметром. Результат - COM1 (общие входов DI) между собой не прозваниваются, COM2 (общие входов AI) соединены между собой. При этом COM2 соединены также с - 24В, а вот COM1 нет. Эх посмотреть бы схему хотя бы подключения входов и выходов.
Не поленился проверить соединение COM выводов мультиметром. Результат - COM1 (общие входов DI) между собой не прозваниваются
Как вы прозванивали? Если на винтах клемм, то затяните их сначала, бывает так, что не затянутый винт не контачит с клеммой.
Юрий_Влад
30.11.2024, 06:11
Как вы прозванивали? Если на винтах клемм, то затяните их сначала, бывает так, что не затянутый винт не контачит с клеммой.
Про клеммники я в курсе, прозванивал и со снятыми клеммами. Не соединяются, нет сопротивления даже не пределе 2М. При минусовом щупе на клемме COM1, а плюсовом на одном из четырех DI показания в режиме прозвонки диодов ~ 1560 Ом.
прозванивал и со снятыми клеммами. Не соединяются
А в режиме диодов на минус питания?
Напрямую в техподдержку вопрос задавали? Что отвечают?
Если дословно следовать этому предупреждению, то на ПР102 нужно минимум 9(!!!) внешних гальванически развязанных источников питания, что уже смешно. Я полагаю, это в инструкции ошибка или кривая формулировка.
Юрий_Влад
01.12.2024, 06:10
А в режиме диодов на минус питания?
Напрямую в техподдержку вопрос задавали? Что отвечают?
Если дословно следовать этому предупреждению, то на ПР102 нужно минимум 9(!!!) внешних гальванически развязанных источников питания, что уже смешно. Я полагаю, это в инструкции ошибка или кривая формулировка.
С питанием COM1 не соединены никак. Светодиоды по входам загораются только при подаче питания ПР, просто при подаче сигнала на вход не горят. В поддержку пока не писал. При сегодняшней цене БП совсем не смешно.
Здравствуйте. ПР200-24.5 с четырьмя транзисторными ключами на выходе в среде OL не позволяет использовать выходы К3 и К4 как выходы ШИМ, просит преобразовать сигнал перед этими выходами в bool. Это только в OL, или реально у ПР200.24.5 в качестве ключей ШИМ можно использовать только выходы К1 и К2?
Здравствуйте. ПР200-24.5 с четырьмя транзисторными ключами на выходе в среде OL не позволяет использовать выходы К3 и К4 как выходы ШИМ, просит преобразовать сигнал перед этими выходами в bool. Это только в OL, или реально у ПР200.24.5 в качестве ключей ШИМ можно использовать только выходы К1 и К2?
Блин, меня умиляют разработчики Овен. Выставляйте режим ШИМ не через настройки прибора, а на панели свойств
80501
Сергей0308
02.12.2024, 16:19
Блин, меня умиляют разработчики Овен. Выставляйте режим ШИМ не через настройки прибора, а на панели свойств
80501
Так вроде так всегда и было, в смысле, по другому и не было!
Так вроде так всегда и было, в смысле, по другому и не было!
В какой-то версии Лоджика добавили настройки выходов в меню настроек прибора.
Вот, нашел
80502
Блин, меня умиляют разработчики Овен. Выставляйте режим ШИМ не через настройки прибора, а на панели свойств
80501
Так и пробовал, не получается. 1 и 2 норм, 3, 4 не подключаются никак кроме буля.
Сергей0308
02.12.2024, 16:40
В какой-то версии Лоджика добавили настройки выходов в меню настроек прибора
Не знаю, я уже привык по-старинке, в смысле, мне этого хватает, все варианты и знать не к чему, даже если что-то добавили, так "старые" варианты настройки остались!
Сергей0308
02.12.2024, 16:43
Так и пробовал, не получается. 1 и 2 норм, 3, 4 не подключаются никак кроме буля.
Так Вы картинку посмотрите, что товарищ добавил, там всё нормально работает!
TiiTan4ik
02.12.2024, 18:57
Помогите решить проблему. Подключил к пр 205 , к одному входу RS485- Панель оператора СП 307,ко второму входу RS485- ПМ210 . Адреса в сети разные. Owen cloud прибор видит и считывает значения, но проходит пару минут и error 255? но если отключаю СП307, параметры приходят верно- что нужно сделать чтоб они работали совместно???
Сергей0308
02.12.2024, 19:11
Помогите решить проблему. Подключил к пр 205 , к одному входу RS485- Панель оператора СП 307,ко второму входу RS485- ПМ210 . Адреса в сети разные. Owen cloud прибор видит и считывает значения, но проходит пару минут и error 255? но если отключаю СП307, параметры приходят верно- что нужно сделать чтоб они работали совместно???
Мне кажется для подключения ПР205 к облаку шлюз не нужен!
TiiTan4ik
02.12.2024, 19:12
Нужно имено по Сим-карте организовать
Сергей0308
02.12.2024, 19:51
Нужно имено по Сим-карте организовать
Тогда возьмите ПР200, хотя бы логично будет!
TiiTan4ik
02.12.2024, 19:55
Обычно на пр200 и делал,но в данном случае не хватает сетевых переменных
Сергей0308
02.12.2024, 20:03
Обычно на пр200 и делал,но в данном случае не хватает сетевых переменных
Мне кажется для подключения ПР205 к облаку достаточно роутера 3G(4G)!
На стр.43 РЭ указаны настройки для подключения.
80515
Народ, форум глючит или что-то не так у меня. Уведомления приходят, а на форуме я их не вижу.
TiiTan4ik
03.12.2024, 09:59
Заработала, поставил галочку в Owen Cloud при настройки прибора- разрешить пакетное чтение. Всем спасибо
Юрий_Влад
04.12.2024, 16:34
С питанием COM1 не соединены никак. Светодиоды по входам загораются только при подаче питания ПР, просто при подаче сигнала на вход не горят. В поддержку пока не писал. При сегодняшней цене БП совсем не смешно.
Получил ответ от техподдержки:
По теме - в новых версиях Пр102 сделали гальваническую изоляцию между питанием и входами прибора.
Можно использовать 1 блок питания для всего прибора.
С Уважением,
Пантелеев Дмитрий Алексеевич
Инженер технической поддержки ОВЕН
Тел:8-800-775-63-83 (бесплатно)
Не понимаю только почему не внесли эту информацию в описание на сайте.
Получил ответ от техподдержки:
По теме - в новых версиях Пр102 сделали гальваническую изоляцию между питанием и входами прибора.
Можно использовать 1 блок питания для всего прибора.
Тогда понятно, почему СОМ у вас между собой не звонятся.
Но и отсутствие гальванической развязки ранее, никак не мешало использовать 1 БП для ПР102 и периферии. Это вообще не взаимосвязано. Существует несметное количество приборов, не имеющих внутрисхемных гальванических развязок, и это не мешает им работать от одного ИП.
Всех приветствую! Достал из коробки новый ПР102-24.1216.03.01 выпуска декабря 2024 года, залил в него прогу которую еще два года назад "рисовал", прибор прошился, обновился и т.д. че он там делает еще))) И имею следующую "неисправность" - не светятся светодиоды дискретных входов при подаче на них +24В! Цешкой проверяю - физически подается, светодиод не светится! Ладно, думаю, мож че прибор не исправен и беру другой, новый, тож из коробочки.... и тоже самое. Т.е. два неисправных прибора что ли? Аналоговые входы переведены в режим дискретных и работают нормально, светодиоды светятся! Уж не знаю чего и делать то, подскажите куда копать?
kondor3000
07.12.2024, 12:22
Всех приветствую! Достал из коробки новый ПР102-24.1216.03.01 выпуска декабря 2024 года, залил в него прогу которую еще два года назад "рисовал", прибор прошился, обновился и т.д. че он там делает еще))) И имею следующую "неисправность" - не светятся светодиоды дискретных входов при подаче на них +24В! Цешкой проверяю - физически подается, светодиод не светится! Ладно, думаю, мож че прибор не исправен и беру другой, новый, тож из коробочки.... и тоже самое. Т.е. два неисправных прибора что ли? Аналоговые входы переведены в режим дискретных и работают нормально, светодиоды светятся! Уж не знаю чего и делать то, подскажите куда копать?
Минус 24 В на СОМ подали? СОМ1, СОМ2 теперь не соединены с минусом.
Минус 24 В на СОМ подали? СОМ1, СОМ2 теперь не соединены с минусом.
Конечно, блок питания один. Я уже и другой блок на 24В взял и отдельно подаю на дискретные входа и ничего
Не могли на заводе плату входов от модификации 220В поставить по ошибке, вместо входов на 24В? Как это проверить?
Крч, разобрался. Версия прошивки прибора была 2.32. Нада 2.7. и заработало
Сергей0308
07.12.2024, 17:32
Крч, разобрался. Версия прошивки прибора была 2.32. Нада 2.7. и заработало
Какой-то бред, а ПР видела сигнал на входе или просто светодиоды не светились? Можно было посмотреть в онлайн отладке.
Какой самый простой, правильный и быстрый способ переноса программы с ПР102 на ПР103?
kondor3000
09.12.2024, 13:15
Какой самый простой, правильный и быстрый способ переноса программы с ПР102 на ПР103?
Копипастом из одного проекта в другой, в одной версии Лоджика.
Копипастом из одного проекта в другой, в одной версии Лоджика.
Спасибо! Понял.
А сетевые переменные никак не перенести, хотя бы названия?
kondor3000
09.12.2024, 13:47
Спасибо! Понял.
А сетевые переменные никак не перенести, хотя бы названия?
Не получится, адреса регистров совсем другие
Не получится, адреса регистров совсем другие
Понял, спасибо!
Буду работать.
Адреса можно поменять, а вот создавать все переменные снова и подключать долго, да и допустить ошибку легко.
Жалко что нет возможности в оболочку импортировать переменные из внешнего источника. В Excel'е проще их набить.
Добрый день
Вроде у ПР200 Rсогл 120 Ом есть внутри или я не прав ?
TiiTan4ik
11.12.2024, 15:03
Подскажите как настрить ПР200 для управления даным устройством по RS 485
Подскажите как настрить ПР200 для управления даным устройством по RS 485
Ну в принципе начали правильно, только почему-то в то что только читать можно Вы записываете и наоборот - что только записывать Вы читаете.
А главное - зачем перезаписывать их самих в себя?
И снимите красный фон с последних строк - не видно что там.
Ещё разберитесь с форматами HEX и DEС:
0x10 = 16
0x11 = 17
0x100 = 256
и т.д.
Добрый день
Вроде у ПР200 Rсогл 120 Ом есть внутри или я не прав ?
Нет внутри согласующего.
TiiTan4ik
12.12.2024, 08:27
У меня только в таком формате картинка, там что то сказано-что если двигатель не получает сигнал по rs485 то начинает работать от 0-10В либо на полною мощность
TiiTan4ik
12.12.2024, 08:28
Ну в принципе начали правильно, только почему-то в то что только читать можно Вы записываете и наоборот - что только записывать Вы читаете.
А главное - зачем перезаписывать их самих в себя?
И снимите красный фон с последних строк - не видно что там.
Ещё разберитесь с форматами HEX и DEС:
0x10 = 16
0x11 = 17
0x100 = 256
и т.д.
У меня только в таком формате картинка, там что то сказано-что если двигатель не получает сигнал по rs485 то начинает работать от 0-10В либо на полною мощность
Если адрес устройства и параметры обмена указаны правильно, то попробуйте:
PavelPrm
14.12.2024, 21:30
Здравствуйте уважаемые коллеги! В программировании новичок, прошу совета. ПР200, на аналоговом входе термопара PT1000. Необходимо как то отслеживать изменение температуры. Чтобы при возрастании температуры таймер секундомер стоял. А как температура установилась, таймер запускался. Подскажите пожалуйста какие нибудь идеи, как в овенлоджик реализовать данную задачу
Сергей0308
14.12.2024, 22:00
Здравствуйте уважаемые коллеги! В программировании новичок, прошу совета. ПР200, на аналоговом входе термопара PT1000. Необходимо как то отслеживать изменение температуры. Чтобы при возрастании температуры таймер секундомер стоял. А как температура установилась, таймер запускался. Подскажите пожалуйста какие нибудь идеи, как в овенлоджик реализовать данную задачу
Наверно, как то так:
80794
Таймер есть(найдёте) в ОЛ!
Есть и такое:
80795
Короче, сто раз подобное обсуждалось на просторах форума!
Мой вариант:
80797
При скорости изменения менее градуса в минуту включается отсчёт таймера.
Порог включения настраивается.
И, ещё, Вы видать большой специалист по термопарам, в смысле, такой термопары в нашей галактике нет!
PavelPrm
15.12.2024, 10:52
За идею спасибо. Не претендую называться специалистом. Вы видимо специалист галактического масштаба.
За идею спасибо. Не претендую называться специалистом. Вы видимо специалист галактического масштаба. Ну! Суть иронии была в том, что если написано PT1000 - это термосопротивление (платиновое), а не термопара. В плане схем подключения и обработки данных это прям очень разные вещи, и поэтому стоит говорить правильно.
egoracii
18.12.2024, 10:44
как удалить всех пользователей устройства в CODESYS?
как удалить всех пользователей устройства в CODESYS?
Вы адресом немножко ошиблись
Newcomer
04.01.2025, 13:34
Добрый день
Слот 2 ПР200 настроен как Slave сети, сенсорная панель - Master. Согласно карте регистров Modbus адрес регистра дискретных входов ПР200 - 256. Не совсем понятно как в OL должно быть оформлено чтение этого регистра панелью. Надо ли в таблице сетевых переменных прописывать регистр с адресом 256 и надо ли на холсте в OL создавать сетевую переменную с адресом этого регистра. Или ничего в OL делать не надо.
kondor3000
04.01.2025, 13:43
Добрый день
Слот 2 ПР200 настроен как Slave сети, сенсорная панель - Master. Согласно карте регистров Modbus адрес регистра дискретных входов ПР200 - 256. Не совсем понятно как в OL должно быть оформлено чтение этого регистра панелью. Надо ли в таблице сетевых переменных прописывать регистр с адресом 256 и надо ли на холсте в OL создавать сетевую переменную с адресом этого регистра. Или ничего в OL делать не надо.
При чём тут 256 регистр панели? Это внутренние адреса панели, их можно читать мастером, если панель слейв.
У вас слейв в ПР200 начинается с 512 регистра, вот его и надо читать панелью мастером.
Адрес дискретных входов ПР, в ПР прописывать не надо, просто из панели читаете 256 адрес.
Newcomer
04.01.2025, 13:47
При чём тут 256 регистр панели? Это внутренние адреса панели, их можно читать мастером, если панель слейв.
У вас слейв в ПР200 начинается с 512 регистра, вот его и надо читать панелью мастером.
256 - это не регистр панели. В регистре с адресом 256 хранятся состояния дискретных входов ПР200. Панель должна читать из ПР200 этот регистр.
Добрый день
Слот 2 ПР200 настроен как Slave сети, сенсорная панель - Master. Согласно карте регистров Modbus адрес регистра дискретных входов ПР200 - 256. Не совсем понятно как в OL должно быть оформлено чтение этого регистра панелью. Надо ли в таблице сетевых переменных прописывать регистр с адресом 256 и надо ли на холсте в OL создавать сетевую переменную с адресом этого регистра. Или ничего в OL делать не надо.
Просто панелью читаете этот регистр, в Лоджике ничего делать не надо
Newcomer
04.01.2025, 13:51
Просто панелью читаете этот регистр, в Лоджике ничего делать не надо
Это короткий и толковый ответ. Спасибо.
ПР200, сетевая переменная.
Сбрасывается ли его значение при вкл и выкл ПР200? Или храниться в энергонезависимой памяти?
Сам не могу проверить, в данный момент нет устройства.
Спасибо за ваши ответы.
kondor3000
10.01.2025, 08:52
ПР200, сетевая переменная.
Сбрасывается ли его значение при вкл и выкл ПР200? Или храниться в энергонезависимой памяти?
Сам не могу проверить, в данный момент нет устройства.
Спасибо за ваши ответы.
Все сетевые переменные в слейве сохраняются (если вы в программе их не перезаписываете), в мастере сетевые надо инициализировать.
asdorofeev
10.01.2025, 12:14
ПР205, стандартная булевая переменная.
Как сбросить значение переменной при включении прибора? Установить на 0.
ПР205, стандартная булевая переменная.
Как сбросить значение переменной при включении прибора? Установить на 0.
Если это не энергонезависимая переменная, то обычно в таком действии нет смысла - её значение и так равно 0 при включении, да и алгоритм программы ведь всё равно далее перепишет значение этой переменной.
Вообще для получения сигнала о первом цикле работы программы можно использовать RTRIG с константной "1" на входе:
81226
ПР205, стандартная булевая переменная.
Как сбросить значение переменной при включении прибора? Установить на 0. Если она стандартая (не энергонезависимая) - то она сама встанет в 0 при включении.
asdorofeev
10.01.2025, 13:05
Если она стандартая (не энергонезависимая) - то она сама встанет в 0 при включении.
Переменная энергозависимая.
Сергей0308
10.01.2025, 13:21
Да уж, интересный вопрос, для решения которого ничего и делать не надо, любопытно, как они возникают, в смысле, что мешает изучить свойства энергонезависимых и не энергонезависимых переменных, вроде как элементарные знания появятся, хотя бы их зачаток!
Без наличия элементарных знаний невозможно практически ничего сделать!
asdorofeev
10.01.2025, 13:28
Если это не энергонезависимая переменная, то обычно в таком действии нет смысла - её значение и так равно 0 при включении, да и алгоритм программы ведь всё равно далее перепишет значение этой переменной.
Вообще для получения сигнала о первом цикле работы программы можно использовать RTRIG с константной "1" на входе:
81226
Указанным способом проблему решил. Спасибо!
PavelPrm
15.01.2025, 12:50
Коллеги добрый день, новичок в программировании, прошу не судить строго, имею ПР200, штук 5 экранов и хочу сделать отдельный экран с настройками. И чтобы из любого экрана можно было к примеру Alt-Sel зайти в экран Настройки, и по нажатию Esc вернуться в предыдущий экран, из которого зашли в НАстройки. Прошу подсказать идею, как это реализовать.
Коллеги добрый день, новичок в программировании, прошу не судить строго, имею ПР200, штук 5 экранов и хочу сделать отдельный экран с настройками. И чтобы из любого экрана можно было к примеру Alt-Sel зайти в экран Настройки, и по нажатию Esc вернуться в предыдущий экран, из которого зашли в НАстройки. Прошу подсказать идею, как это реализовать.
Такое на ПР200 простым методом наверно не провернуть. По Esc можно установить возврат только на КОНКРЕТНУЮ страницу, которая указывается при программировании экранов.
(Можно сделать очень костыльный метод - создать 5 (ПЯТЬ!) одинаковых страниц настроек и переходить на конкретную из них со своего "главного" экрана. Ну а на каждой из страниц настроек установить возврат на "свой" главный экран)
Сергей0308
15.01.2025, 19:50
Такое на ПР200 простым методом наверно не провернуть. По Esc можно установить возврат только на КОНКРЕТНУЮ страницу, которая указывается при программировании экранов.
(Можно сделать очень костыльный метод - создать 5 (ПЯТЬ!) одинаковых страниц настроек и переходить на конкретную из них со своего "главного" экрана. Ну а на каждой из страниц настроек установить возврат на "свой" главный экран)
Только вот вопрос стоит ли ради возврата на исходный экран так заморачиваться, в смысле, на пяти экранах настроек надо чтобы данные синхронизировались при изменении на любом из пяти экранов! В принципе можно сделать возврат, мне так кажется!
Если сигналы нажатия кнопок были бы доступны в программе(о чём просят все лет 10) - проблем бы не возникло!
Только вот вопрос стоит ли ради возврата на исходный экран так заморачиваться, в смысле, на пяти экранах настроек надо чтобы данные синхронизировались при изменении на любом из пяти экранов! В принципе можно сделать возврат, мне так кажется!
Если сигналы нажатия кнопок были бы доступны в программе(о чём просят все лет 10) - проблем бы не возникло!
Так ничего не надо синхронизировать - просто пять копий экрана сделать - переменной то без разницы, из скольких экранов её меняют.
Но это всё так, скорее теоретический вариант
eshostko
16.01.2025, 13:13
Только вот вопрос стоит ли ради возврата на исходный экран так заморачиваться, в смысле, на пяти экранах настроек надо чтобы данные синхронизировались при изменении на любом из пяти экранов! В принципе можно сделать возврат, мне так кажется!
Если сигналы нажатия кнопок были бы доступны в программе(о чём просят все лет 10) - проблем бы не возникло!
Так вроде бы в ПР205 это реализовано
Сергей0308
16.01.2025, 19:07
Так вроде бы в ПР205 это реализовано
Так у товарища ПР200!
Что реализовано в ПР205, возврат на преведущий экран?
Приветствую Уважаемые.
Подскажите где почитать или может обсуждали уже - можно как то работать с кнопками на морде ПР200? То есть пуск установки, или например квитирование аварии.
Сергей0308
04.02.2025, 18:35
Приветствую Уважаемые.
Подскажите где почитать или может обсуждали уже - можно как то работать с кнопками на морде ПР200? То есть пуск установки, или например квитирование аварии.
Можно! В смысле переменные можно редактировать с экрана ПР200, впрочем я так и делаю!
Какой Вам нужен пример, как вывести переменную на экран?
81755
На ПР200 через переменные с их последующим сбросом в программе, если требуется. По другому к сожалению никак.
На ПР200 через переменные с их последующим сбросом в программе, если требуется. По другому к сожалению никак.
Прошу прощения - не совсем понял. То бишь требуется - сработала авария, включился звонок - оператор подошел и нажал ок для квитирования. Это решаемо ли не париться и поставить внешние кнопки?
Прошу прощения - не совсем понял. То бишь требуется - сработала авария, включился звонок - оператор подошел и нажал ок для квитирования. Это решаемо ли не париться и поставить внешние кнопки?
Поставьте кнопки - если входов хватает
Прошу прощения - не совсем понял. То бишь требуется - сработала авария, включился звонок - оператор подошел и нажал ок для квитирования. Это решаемо ли не париться и поставить внешние кнопки?
Нет, оператор нажал SEL, кнопкой вверх выставил значение и нажал ОК. Это если коротко
Нет, оператор нажал SEL, кнопкой вверх выставил значение и нажал ОК. Это если коротко
Три кнопки это сложно :)
Сергей0308
04.02.2025, 21:00
Три кнопки это сложно :)
Многие не справляются, в смысле, хотят одну кнопку нажимать, много таких вопросов было!
Тогда нужно её подключить на дискретный вход, как уже выше советовали!
Ну как вариант, не помню только сработает или нет.
При аварии запускается какой-то экран с аварией собственно. Если на этот экран повесить на кнопку переход на другой экран, возможно это вызовет квитирование.
То есть тогда не надо будет выбирать при помощи кнопки Sel переменную и менять ее состояние.
День добрый. Вероятно плохо ищу на форуме. Есть ли где-то точная маркировка клемников для ПР200? Надо докупить частично, большая часть на заказ, в магазине не сравнить толком. Спасибо.
Если кто-то покупал, достаточно шага для больших и для маленьких.
День добрый. Вероятно плохо ищу на форуме. Есть ли где-то точная маркировка клемников для ПР200? Надо докупить частично, большая часть на заказ, в магазине не сравнить толком. Спасибо.
Это лучше напрямую в техподдержку написать
День добрый. Вероятно плохо ищу на форуме. Есть ли где-то точная маркировка клемников для ПР200? Надо докупить частично, большая часть на заказ, в магазине не сравнить толком. Спасибо.
Если кто-то покупал, достаточно шага для больших и для маленьких.
Нашел остатки комплекта от одного из ПР. Маркировка на гранях большого 2EGTK - 5.08, малого 15EGTK - 3.5. То есть шаги клемников 5.08 и 3.5. Пусть будет для инфы.
День добрый. Вероятно плохо ищу на форуме. Есть ли где-то точная маркировка клемников для ПР200? Надо докупить частично, большая часть на заказ, в магазине не сравнить толком. Спасибо.
Если кто-то покупал, достаточно шага для больших и для маленьких.
Какие надо? На сколько контактов? У меня море неиспользуемых от серийной продукции.
Добрый день. Есть ли возможность скачать из Пр 200 файл программы?
Славка к вашему сожалению нет такой возможности.
Славка к вашему сожалению нет такой возможности.
А может и хорошо что нельзя. Тут с какой стороны посмотреть.
PavelPrm
13.02.2025, 19:43
Добрый вечер, вероятно глупый вопрос, задаю переменную "Старт нагрева" с экрана ПР200. По окончании технологического процесса, нагрев останавливается, нужно переменную "Старт нагрева" перезаписать ноль. Как это можно сделать? Напрямую не получается, т.к. она тогда с экрана не меняется на 1. Заранее спасибо
Сергей0308
13.02.2025, 20:01
Добрый вечер, вероятно глупый вопрос, задаю переменную "Старт нагрева" с экрана ПР200. По окончании технологического процесса, нагрев останавливается, нужно переменную "Старт нагрева" перезаписать ноль. Как это можно сделать? Напрямую не получается, т.к. она тогда с экрана не меняется на 1. Заранее спасибо
Так подобное постоянно обсуждается, короче, примерно как-то так можно:
81971
PavelPrm
13.02.2025, 20:29
В этом случае будет ведь постоянно писаться в переменную 0 или 1, и не даст с экрана менять. Или я не допонимаю чтото.
Сергей0308
13.02.2025, 20:37
В этом случае будет ведь постоянно писаться в переменную 0 или 1, и не даст с экрана менять. Или я не допонимаю чтото.
У всех, кроме Вас работает, но там есть нюансы, в смысле, я обычно делаю переменную энергонезависимой, если памяти хватает, если нет запаса энергонезависимой памяти, могут быть варианты!
Добрый вечер, вероятно глупый вопрос, задаю переменную "Старт нагрева" с экрана ПР200. По окончании технологического процесса, нагрев останавливается, нужно переменную "Старт нагрева" перезаписать ноль. Как это можно сделать? Напрямую не получается, т.к. она тогда с экрана не меняется на 1. Заранее спасибо
https://i.postimg.cc/8Pn5FsNT/image.jpg
PavelPrm
14.02.2025, 06:54
https://i.postimg.cc/8Pn5FsNT/image.jpg
Спасибо дружище, коротко, по делу, без лишнего флуда и демагогии
Менеджер компонентов не загружается. Что делать?
Менеджер компонентов не загружается. Что делать?
У меня такая же ситуация, может неполадки на сервере?
kaftanati
23.02.2025, 12:15
ПР103 - половина аналоговых входов режиме отладки показывают -1Е+07, еще один всегда и не меняются от реальных показаний. Этот же калибратор/датчик подкидываю на прм24.2 - там все верно отображается. Входы настроены одинаково, 4-20мА. Хана входам?
82136
ПР103 - половина аналоговых входов режиме отладки показывают -1Е+07, еще один всегда и не меняются от реальных показаний. Этот же калибратор/датчик подкидываю на прм24.2 - там все верно отображается. Входы настроены одинаково, 4-20мА. Хана входам?
82136
Это экспоненциальная форма числа, при реальной работе прибора всё будет нормально показывать
ПР103 - половина аналоговых входов режиме отладки показывают -1Е+07, еще один всегда и не меняются от реальных показаний. Этот же калибратор/датчик подкидываю на прм24.2 - там все верно отображается. Входы настроены одинаково, 4-20мА. Хана входам?
82136
С этой проблемой лучше сразу в техподдержку писать. Возможно придется в ремонт отправлять приборчик
Это экспоненциальная форма числа, при реальной работе прибора всё будет нормально показывать
Это онлайн отладка и входы показывают обрыв
kaftanati
24.02.2025, 09:53
ПР103 - половина аналоговых входов режиме отладки показывают -1Е+07, еще один всегда и не меняются от реальных показаний. Этот же калибратор/датчик подкидываю на прм24.2 - там все верно отображается. Входы настроены одинаково, 4-20мА. Хана входам?
Для потомков, чем кончилась история:
1. Два входа так и не реагируют на приходящий датчик (похоже им плохо)
2. Один постоянно показывает 999999 и тоже ни на что не реагирует (похоже и ему плохо)
3. Остальные 3 из 6 на ПР и все 4 на ПРМ24.2 - корректно отображают значения датчика: ПРМ всегда показывает плавающие значения, а ПР, пока откинут -1Е+07, как только подключается датчик уже в нормальных величинах (как настроен вход).
4. Так как есть вероятность кривого подключения КИПа монтажниками "на горячую" - +24В на измерительный вход, скорее всего неисправные входы поджарены. Благо есть запас по входам, обошлись без ремонта.
P.S. То, что -1Е07 - экспоненциальная форма это понятно, удивляло ее отображение при настроенном диапазоне входа (4..20). Я всегда входы 4..20мА настраиваю на отображение от 4 до 20, чтоб при отладке видеть 1 к 1 ток, дальнейшие преобразования/приведения показаний датчика делаю программно. Заодно имею возможность через интерфейс менять уставку датчика и потом менять датчик без изменения программы.
У меня был случай данные с датчика температуры неверно отображались, потом выяснилось некоторая партия была "кривая" лечилось обновлением программы. Я правда не воспользовался этим, так как корректировка температуры заложена в контроллере и ее максимальное значение как раз компенсировала ошибку. Так что может быть обновить программу нужно.
Николай Н.
24.02.2025, 14:33
Здравствуйте! пр-102 при включении питания загорелся красный светодиод знак восклицательный знак в треугольнике. Компьютер его не видит программа не работает. можно как то самому реанимировать?
Для потомков, чем кончилась история:
1. Два входа так и не реагируют на приходящий датчик (похоже им плохо)
2. Один постоянно показывает 999999 и тоже ни на что не реагирует (похоже и ему плохо)
3. Остальные 3 из 6 на ПР и все 4 на ПРМ24.2 - корректно отображают значения датчика: ПРМ всегда показывает плавающие значения, а ПР, пока откинут -1Е+07, как только подключается датчик уже в нормальных величинах (как настроен вход).
4. Так как есть вероятность кривого подключения КИПа монтажниками "на горячую" - +24В на измерительный вход, скорее всего неисправные входы поджарены. Благо есть запас по входам, обошлись без ремонта.
P.S. То, что -1Е07 - экспоненциальная форма это понятно, удивляло ее отображение при настроенном диапазоне входа (4..20). Я всегда входы 4..20мА настраиваю на отображение от 4 до 20, чтоб при отладке видеть 1 к 1 ток, дальнейшие преобразования/приведения показаний датчика делаю программно. Заодно имею возможность через интерфейс менять уставку датчика и потом менять датчик без изменения программы.
Я как-то лечил такое, там на аналоговых входах супрессоры стоят - диоды защитные, всего скорее пробило - звонятся накоротко. Если выпаять то входы сразу начинают работать, но без них тоже лучше не оставлять.
by_serjo
26.02.2025, 03:41
Добрый день! Возможно ли к ОВЕН ПР 102 прикрутить модем ОВЕН ПМ 01? Задача отправлять смс сообщения при срабатывание определенных сигналов ( например низкий уровень топлива)
Добрый день! Возможно ли к ОВЕН ПР 102 прикрутить модем ОВЕН ПМ 01? Задача отправлять смс сообщения при срабатывание определенных сигналов ( например низкий уровень топлива)
Нельзя. Есть подобные девайсы, которые умеют по дискретным и аналоговым сигналам отправлять смс
by_serjo
26.02.2025, 05:48
Нельзя. Есть подобные девайсы, которые умеют по дискретным и аналоговым сигналам отправлять смс
Спасибо! Можете посоветовать какой нибудь,для примера?
Спасибо! Можете посоветовать какой нибудь,для примера?
Поищите "CCU" например
Добрый день! Возможно ли к ОВЕН ПР 102 прикрутить модем ОВЕН ПМ 01? Задача отправлять смс сообщения при срабатывание определенных сигналов ( например низкий уровень топлива)
Раньше использовал ПЛК-304 (https://owen-prom.ru/products/plk304-kontroller-dlya-raspredelennykh-sistem/).
Сейчас собираю на модуле SIM800 + PIC12F1822.
kaftanati
26.02.2025, 09:55
Спасибо! Можете посоветовать какой нибудь,для примера?
LE-09-44-AC-NOTIFY
Belletein
27.02.2025, 12:44
Добрый день, при импорте переменных в ПР103 стала появляться такая ошибка, можно вылечить?8222882229
Niggaдяй
06.03.2025, 20:05
Доброго времени суток, форумчане! Хочу чтобы по мере выполнения процесса на экране ПР200 заполнялась шкала прогресса. Нашёл в одной инструкции наличие среди возможных символов таблицу "специальных символов". Как их ввести в программе? (символ прямоугольника из таблицы ASCII не подходит, вылезает ошибка "этот символ не поддерживается")
82336
Доброго времени суток, форумчане! Хочу чтобы по мере выполнения процесса на экране ПР200 заполнялась шкала прогресса. Нашёл в одной инструкции наличие среди возможных символов таблицу "специальных символов". Как их ввести в программе? (символ прямоугольника из таблицы ASCII не подходит, вылезает ошибка "этот символ не поддерживается")
82336
Инструкцию надо актуальную читать. Нету там этих спецсимволов
Добрый день!ПР_200,Подключаю датчик разряжения 0т 0 до -1кПа. В настройках аналогового входа 4мА это 0 разряжения(т.е. атмосферное) 20мА это -1КПа. Но интерфейс лоджика не позволяет задать верхнию границу (20мА) отрицательной величиной. Как выходят из этой ситуации. Мне необходимо потом ещё это значение в панель перекинуть:(
kondor3000
08.03.2025, 15:40
Добрый день!ПР_200,Подключаю датчик разряжения 0т 0 до -1кПа. В настройках аналогового входа 4мА это 0 разряжения(т.е. атмосферное) 20мА это -1КПа. Но интерфейс лоджика не позволяет задать верхнию границу (20мА) отрицательной величиной. Как выходят из этой ситуации. Мне необходимо потом ещё это значение в панель перекинуть:(
Сделайте настройки входа 4-20 мА, а в макросе Scale задайте нужные.82354
Собрал схему с вашим решением__ настроил аналоговый вход82384__создал переменную чтобы видить на экране ПР200__82385__настроил экран ПР200 82386. В симуляции работает замечательно 82387___ Но вот в с реальным подключением только так 82388 (это теже 10мА). Проверил работу аналогового входа А1 без макроса - вход рабочий и показывает нужную величину только в с положительным знаком. Подскажите, что необходимо сделать чтобы он работал? Спасибо
.
kondor3000
11.03.2025, 10:21
Собрал схему с вашим решением__ настроил аналоговый вход_создал переменную чтобы видить на экране ПР200____настроил экран ПР200 . В симуляции работает замечательно __ Но вот в с реальным подключением только так (это теже 10мА). Проверил работу аналогового входа А1 без макроса - вход рабочий и показывает нужную величину только в с положительным знаком. Подскажите, что необходимо сделать чтобы он работал? Спасибо
.
Вы не поставили пределы в настройках входа 4-20 мА, поменяйте 0-1000 на 4-20.
Я настроил аналоговый вход 0 нижния величина , 1000 верхнея величина82389, поэтому без миакроса он и показывает 375 при входном токе 10 мА
Может физичиский вход надо иначе настраивать, другими опорными величинами?
Вот так выглядит без макроса82390 а на экране ПР200 0,4
kondor3000
11.03.2025, 10:31
Может физичиский вход надо иначе настраивать, другими опорными величинами?
поменяйте 0-1000 на 4-20.
Отлично, заработало 82391, все выполнил и на ПР ке стали -375. Благодарю kondor, хорошего Вам дня!:o
Роман Анатольев
14.03.2025, 12:10
Доброго дня. Почему то не корректно работает режим симуляции. Первый раз столкнулся с такой проблемой. При включении симуляции должны появляться цифры состояния 0 или 1 или число для Int - состояния входов/выходов функциональных блоков, так всегда было. А в этот почему то не появляются для функции Putbit например. Для обычных И ИЛИ НЕ появляются и изменяются как надо, зато вторая половина программы с Путбитами молчит. Подскажите пожалуйста.
kondor3000
14.03.2025, 12:15
Доброго дня. Почему то не корректно работает режим симуляции. Первый раз столкнулся с такой проблемой. При включении симуляции должны появляться цифры состояния 0 или 1 или число для Int - состояния входов/выходов функциональных блоков, так всегда было. А в этот почему то не появляются для функции Putbit например. Для обычных И ИЛИ НЕ появляются и изменяются как надо, зато вторая половина программы с Путбитами молчит. Подскажите пожалуйста.
Выходы блоков должны быть куда то подключены, или к энергонезависимой переменной или к сетевой или на выходы ПР.
Если блок не закончен, ОЛ не просчитывает выходы.
Макросы и ФБ симулируются по разному, у макроса должны быть подключены все выходы, у ФБ хотя бы один.
Соседняя тема, тот же вопрос https://owen.ru/forum/showthread.php?t=33208&p=459375&viewfull=1#post459375
novovek.it
14.03.2025, 14:40
Здравствуйте.
Открыл старый проект для ПР100. Работает отлично. Но нужно было потравить немного недельный решим работы в блоке Cloсk WEEK. В нём в настройках фигурирует и год. И что бы я не делал год я изменить не могу. Если вытаскиваю на рабочее поле новый Cloсk WEEK ,то в нём уже новый год фигурирует. Вот и вопрос: Если мне нужно запрограммировать на переходе с одного года на другой скажем с 2025 на 2026, то как мне это сделать. Выбрать сейчас 2026 год у меня не получается. Это конструктивная особенность программирования аппаратов? Кто то сталкивался с такой проблемой?
Сергей0308
14.03.2025, 14:46
Здравствуйте.
Открыл старый проект для ПР100. Работает отлично. Но нужно было потравить немного недельный решим работы в блоке Cloсk WEEK. В нём в настройках фигурирует и год. И что бы я не делал год я изменить не могу. Если вытаскиваю на рабочее поле новый Cloсk WEEK ,то в нём уже новый год фигурирует. Вот и вопрос: Если мне нужно запрограммировать на переходе с одного года на другой скажем с 2025 на 2026, то как мне это сделать. Выбрать сейчас 2026 год у меня не получается. Это конструктивная особенность программирования аппаратов? Кто то сталкивался с такой проблемой?
И на компе не получается 2026 год поставить?
novovek.it
14.03.2025, 14:48
Пробовал. Но этот вариант у меня не прокатил почему то. Может потому что программу я не перезапускал. Нужно попробовать ещё раз.
Здравствуйте.
Открыл старый проект для ПР100. Работает отлично. Но нужно было потравить немного недельный решим работы в блоке Cloсk WEEK. В нём в настройках фигурирует и год. И что бы я не делал год я изменить не могу. Если вытаскиваю на рабочее поле новый Cloсk WEEK ,то в нём уже новый год фигурирует. Вот и вопрос: Если мне нужно запрограммировать на переходе с одного года на другой скажем с 2025 на 2026, то как мне это сделать. Выбрать сейчас 2026 год у меня не получается. Это конструктивная особенность программирования аппаратов? Кто то сталкивался с такой проблемой?
Теоретически, год там участвует только для определения дня недели, поэтому не влияет на настройки
82466
82467
novovek.it
14.03.2025, 15:57
Теоретически, год там участвует только для определения дня недели, поэтому не влияет на настройки
82466
82467
И как же тогда настроить работу контроллера что бы он в праздничные дни скажем с 30 декабря по 10 января правильно отработал . Скажем отключил Q1 30 декабря и только 11 января включил его обратно.
И как же тогда настроить работу контроллера что бы он в праздничные дни скажем с 30 декабря по 10 января правильно отработал . Скажем отключил Q1 30 декабря и только 11 января включил его обратно.
Написать свой таймер, который будет учитывать праздничные дни
novovek.it
14.03.2025, 16:55
Написать свой таймер, который будет учитывать праздничные дни
Собственно я так и делаю. Но у меня не получается сделать переход между годами. Я просто не могу в блоке задать следующий год. Вот в этом у меня проблема.
kondor3000
14.03.2025, 17:00
Собственно я так и делаю. Но у меня не получается сделать переход между годами. Я просто не могу в блоке задать следующий год. Вот в этом у меня проблема.
Чтобы задать следующий год, надо использовать блоки времени с годом, тогда все получится. 82474 82469
https://owen.ru/forum/showthread.php?t=40116&p=444236&viewfull=1#post444236
И сравнивать не только время но и год
Собственно я так и делаю. Но у меня не получается сделать переход между годами. Я просто не могу в блоке задать следующий год. Вот в этом у меня проблема.
Ну и в чем проблема? Ставите "выключить 30.12" и "включить 11.01" Причем здесь год
novovek.it
14.03.2025, 17:10
Спасибо за ответы. Обязательно попробую Ваши варианты. Немножко попозже. Сегодня рабочий день уде закончился. Про блоки попробую найти. Пока не попадались.
Добрый день. Прошу помощи у знатоков. При выводе текущего времени на экран ПР200 вместо формата 00:00:00 получаю 0: 0: 0, если значения находятся в диапазоне от 0 до 9. Как это можно исправить? Спасибо
Добрый день. Прошу помощи у знатоков. При выводе текущего времени на экран ПР200 вместо формата 00:00:00 получаю 0: 0: 0, если значения находятся в диапазоне от 0 до 9. Как это можно исправить? Спасибо
Штатных средств вроде нет.
Костыльте сравнение с 9 и выводите сами ведущий 0 на экран (отдельно для часов, минут и секунд)
Штатных средств вроде нет.
Костыльте сравнение с 9 и выводите сами ведущий 0 на экран (отдельно для часов, минут и секунд)
Спасибо, попробую.
kondor3000
16.03.2025, 17:16
Добрый день. Прошу помощи у знатоков. При выводе текущего времени на экран ПР200 вместо формата 00:00:00 получаю 0: 0: 0, если значения находятся в диапазоне от 0 до 9. Как это можно исправить? Спасибо
Вот так 82498 Деление на 10 и MOD 10
...я костылил динамический текст. Набил туда от 00 до 59 и привязал переменную, к примеру, минут.
kondor3000 Преклоняюсь - ты КРУТ!
kondor3000
16.03.2025, 18:59
...я костылил динамический текст. Набил туда от 00 до 59 и привязал переменную, к примеру, минут.
kondor3000 Преклоняюсь - ты КРУТ!
Это не я, тут на форуме лет 7 назад увидел))) По моему Сергей3008 выкладывал.
kondor3000 Ты умеешь всё быстро найти и узнать! Прям самый лучший участник форума, реально!
Вот так 82498 Деление на 10 и MOD 10
Я решил вот так.
82503
Сергей0308
18.03.2025, 00:07
Я решил вот так.
82503
И, что Вы так решили?
Здесь "Мессингов" нет.
И, что Вы так решили?
Здесь "Мессиргов" нет.
Проблему отсутствия 0 в первой ячейке при выведении на экран сервисных переменных минуты и секунды в интервале от 00 до 09. У меня сейчас все показывает правильно. Извините, может это решение и корявое по мнению профессионалов, но я проблему для себя решил. Не судите строго, занимаюсь программированием ПР200 всего третий день для замены сгоревшего контроллера управления ЛОС у себя на даче.
Проблему отсутствия 0 в первой ячейке при выведении на экран сервисных переменных минуты и секунды в интервале от 00 до 09. У меня сейчас все показывает правильно. Извините, может это решение и корявое по мнению профессионалов, но я проблему для себя решил. Не судите строго, занимаюсь программированием ПР200 всего третий день для замены сгоревшего контроллера управления ЛОС у себя на даче.
Да нормальное решение, тоже давно так делаю
Сергей0308
18.03.2025, 18:47
Такое впечатление, что не с разумными людьми общаюсь, в смысле, Вы можете объяснить как булевый ноль на выходе элемента сравнения добавляет незначащий целочисленный ноль на экране ПР200, хотите сказать, что выложен полный алгоритм, а не его часть?
Почему нельзя понятно для всех написать, чтобы они не путались в догадках и гипотезах?
kondor3000
18.03.2025, 18:57
Такое впечатление, что не с разумными людьми общаюсь, в смысле, Вы можете объяснить как булевый ноль на выходе элемента сравнения добавляет незначащий целочисленный ноль на экране ПР200, хотите сказать, что выложен полный алгоритм, а не его часть?
Почему нельзя понятно для всех написать, чтобы они не путались в догадках и гипотезах?
Да всё просто, при 0 в бите выводится значащий 0, при 1 в бите выводится пробел в десятках часов, мин. и сек, наложенные на десятки.
novovek.it
31.03.2025, 13:26
Чтобы задать следующий год, надо использовать блоки времени с годом, тогда все получится. 82474 82469
https://owen.ru/forum/showthread.php?t=40116&p=444236&viewfull=1#post444236
И сравнивать не только время но и год
Разобрался. Заработало всё. Спасибо огромное!!!
tolik-8422
01.04.2025, 21:38
Добрый день. Такой вопрос - как можно организовать счетчик наработки за последнюю неделю, за предпоследнюю неделю и.т.д., ну т.е. хотя бы за 4 прошедшие недели с разбивкой по неделям.
Нужно для дренажного насоса, т.е. важно знать сколько он работал за интервалы времени и если есть тенденция к увеличению времени значит увеличивается приток
kondor3000
02.04.2025, 07:45
Добрый день. Такой вопрос - как можно организовать счетчик наработки за последнюю неделю, за предпоследнюю неделю и.т.д., ну т.е. хотя бы за 4 прошедшие недели с разбивкой по неделям.
Нужно для дренажного насоса, т.е. важно знать сколько он работал за интервалы времени и если есть тенденция к увеличению времени значит увеличивается приток
7 дней считаете 1 наработку, запоминаете, следующие 7 дней считаете 2, запоминаете и т. д.
Тут выложены ФБ времени, где можно взять дату, время, дни недели, месяцы, по ним и считайте https://owen.ru/forum/showthread.php?t=40116&p=444236&viewfull=1#post444236
Тут ФБ Опер Таймер на языке ST, считает наработку и количество включений https://owen.ru/forum/showthread.php?t=38721#8
kondor3000 Или ещё соорудить какой-нить условный "сдвиговый регистр": считаем каждый день, и каждый раз когда дни кратны 7 - записываем наработку в условный массив (или несколько переменных) со сдвигом элемента (накатать на ST).
Тогда у нас каждую неделю текуща наработка будет "переезжать" в переменные предыдущих недель.
kondor3000 Или ещё соорудить какой-нить условный "сдвиговый регистр": считаем каждый день, и каждый раз когда дни кратны 7 - записываем наработку в условный массив (или несколько переменных) со сдвигом элемента (накатать на ST).
Тогда у нас каждую неделю текуща наработка будет "переезжать" в переменные предыдущих недель.
а т.к. в ST нет ретайнов, то требуется внешнюю обертку делать и получится что ПР не в роли контроллера технологического процесса а как счетчик наработки с визуализацией
Это выглядит примерно так:
82829
function_block WorkTime
var_input
in: bool; // Состояние оборудования
end_var
var_output
Q, Q1, Q2, Q3, Q4 : udint; // Наработка текущая и недельная в секундах
end_var
var
rtWeek: SYS.RTRIG; // Триггер начала недели
rt: SYS.RTRIG; // Триггер включения
ft: SYS.FTRIG; // Триггер выключения
ts: udint; // Метка времени включения
end_var
// Фиксируем начало новой недели
rtWeek(I := (dt_to_udint(get_date_time()) / 86400 mod 7 = 2));
if rtWeek.Q then
if in then // Сохраняем текущую наработку и начинаем следующую
Q := Q + dt_to_udint(get_date_time()) - ts; ts := dt_to_udint(get_date_time());
end_if
Q4 := Q3; Q3 := Q2; Q2 := Q1; Q1 := Q; Q := 0; // Сдвигаем наработки
end_if
// Накопление наработки
rt(I:=in); ft(I:=in);
if rt.Q then ts := dt_to_udint(get_date_time()); end_if
if ft.Q then Q := Q + dt_to_udint(get_date_time()) - ts; end_if
end_function_block
Добрый день. Такой вопрос - как можно организовать счетчик наработки за последнюю неделю, за предпоследнюю неделю и.т.д., ну т.е. хотя бы за 4 прошедшие недели с разбивкой по неделям.
Примитивно, но работает и, главное, энергонезависимое
82836
ребята, здравствуйте!
подскажите пожалуйста, начинаю первый проект на ПР205 (ПР205-230.1211.26.2.0), с паскалем знаком, нужен простейший пример, хочу дергать выходом контактор 220В для включения насоса по таймеру.
Есть ли где-то уроки или типа такого, для начинающих?
В чистом виде ST код если написать, его куда-то можно вставить или нужно только FDB схему рисовать для начала?
PROGRAM WaterPumpControl
VAR
Timer : TON; (* Таймер на 4 часа *)
PumpControl : BOOL := FALSE; (* Управление насосом *)
LowLevel : BOOL; (* Нижний уровень *)
HighLevel : BOOL; (* Верхний уровень *)
Overflow : BOOL; (* Аварийный уровень *)
StartTime : TIME := T#4H; (* Время цикла включения насоса *)
END_VAR
(* Логика работы *)
IF Overflow THEN
PumpControl := FALSE; (* Выключение насоса при переполнении *)
ELSIF HighLevel THEN
PumpControl := FALSE; (* Выключение при достижении верхнего уровня *)
ELSIF NOT HighLevel AND NOT Timer.Q THEN
Timer(IN := TRUE, PT := StartTime); (* Запуск таймера каждые 4 часа *)
END_IF;
IF Timer.Q AND LowLevel THEN
PumpControl := TRUE; (* Включение насоса если сработал таймер и низкий уровень воды *)
END_IF;
(* Управление выходом реле *)
OUT_PUMP := PumpControl; (* OUT_PUMP - выход, управляющий контактором насоса *)
kondor3000
03.04.2025, 13:43
ребята, здравствуйте!
подскажите пожалуйста, начинаю первый проект на ПР205 (ПР205-230.1211.26.2.0), с паскалем знаком, нужен простейший пример, хочу дергать выходом контактор 220В для включения насоса по таймеру.
Есть ли где-то уроки или типа такого, для начинающих?
В чистом виде ST код если написать, его куда-то можно вставить или нужно только FDB схему рисовать для начала?
В Лоджике ST немного другой (урезанный), есть только ФБ и функции (программ нет, как нет и глобальных переменных), таймеры есть системные и самописные,
тут 3 пример, наработка, ротация 4 насосов по времени и включение от уровня https://owen.ru/forum/showthread.php?t=38920&p=426052&viewfull=1#post426052
В данном примере наработка не сохраняется ври выключении питания ( смотри примеры 4 и 5, там сохраняется)
ребята, здравствуйте!
подскажите пожалуйста, начинаю первый проект на ПР205 (ПР205-230.1211.26.2.0), с паскалем знаком, нужен простейший пример, хочу дергать выходом контактор 220В для включения насоса по таймеру.
Есть ли где-то уроки или типа такого, для начинающих?
В чистом виде ST код если написать, его куда-то можно вставить или нужно только FDB схему рисовать для начала?
У вас таймер один раз сработает и все - он нигде не сбрасывается.
Зачем таймер вообще нужен? - если бочку опустошить быстрее чем за 4 часа, потом надо ждать таймера?
по сбросу понял, спасибо.
вода появляется в скважине каждые 4 часа, чтобы набирать воду. малый дебет очень.
ST2K Вызов таймера должен быть ВСЕГДА в теле основной программы - ни в каких IF.
Если удобно потратить чуть-чуть времени, то вот тут я писал со скриншотами про это (нужен заголовок 7): https://cs-cs.net/funkciya-fun-i-funkcionalniy-blok-fb-codesys-owenlogic#7__fb_ton_tof_tp_blink
Может быть тут вообще применить BLINK? И сделать так, чтобы насос мог запускаться не ранее чем каждые 4 часа?
по сбросу понял, спасибо.
вода появляется в скважине каждые 4 часа, чтобы набирать воду. малый дебет очень.
Понятно.
Я бы так сделал
function_block WaterPumpControl
var_input //объявление входных переменных
Enable : bool; //разрешение на работу
LowLevel : bool; //низкий уровень
HightLevel : bool; //высокий уровень
Overflow : bool; //аварийный высокий уровень
AlarmPump : bool; //авария насоса (защита от сухого хода)
ForseStart : bool; //принудительное наполнение
end_var
var_output //объявление выходных переменных
Q : bool;
end_var
var //объявление локальных переменных
PumpControl : SYS.RS; // управление насосом
Timer : SYS.TON; // таймер
rtrig : SYS.RTRIG; // триггер
end_var
Timer(I := not Q, T := t#4h); //до повторного запуска насоса должно пройти 4 часа
rtrig(I := ForseStart); //принудительное включение насоса (не дожидаясь таймера)
PumpControl(R := HightLevel or Overflow or AlarmPump or not Enable , S := (LowLevel and Timer.Q) or rtrig.Q); //условие запуска и остановки насоса
Q := PumpControl.Q;
end_function_block
Прошу сильно не пинать, первые шаги в освоении ST....
использовал учебник Иванова и мануал по ПР-205:
решил с простого начать:
Задача модели мониторить датчики в емкости и обрабатывать принудительный ручной запуск набора воды в емкость. Насос скважины качает соленую воду, прогоняет через осмос (в осмосе свой насос высокого давления)
и набирает емкость 750 литров до уровня FULL. включение по датчику LOW. На всякий случай аварийный датчик переполнения, если с датчиком FULL что-то произойдет.
В модели 4 клапана, один подает воду в емкость 750 литров, второй (на будущее) будет подавать воду во вторую емкость 5000 литров, если 750 наполнена уже или принудительно. Третий открывает дренаж на слив грязной воды.
Четвертый открывается чтобы подавать неочищенную воду, естественно, закрывая все остальные.(это тоже TODO...)
1. не совсем понял как в режиме симуляции в интерактивном режиме менять значения на входах реле, чтобы увидеть как работает модель.(выставлять 0 или 1 на выбранном входе и наблюдать изменения).
нашел только что можно открыт окно просмотра при запущенной симуляции и там добавить вход и в нем поменять переменную... а вот чтобы щелкнуть на виртуальную кнопку (как, например, в Proteus) такого там нет?
2. как работает в принципе функциональный блок, исполняется ли он в цикле или же разово? т.е. крутится в цикле, опрашивает входы или же выполняется как только происходит изменения на входных переменных?
или же мониторинг входов нужно вешать на триггеры, которые срабатывают при изменении одного из входов и тогда запускать на выполнение функциональный блок? Хочу понять принцип и подход. Как я понимаю, постоянно гонять
опрос входов - это грузить процессор на 100%? или тут другая ситуация?
3. как отключить насос скважины через 5 секунд после остановки насоса осмоса. Не выключается выход реле через 5 секунд. Включение насоса c задержкой 10 секунд идет нормально, клапана тоже все открываются нормально, при сбросе I4 в 0 все выключается , а PumpSKV остается работать...
d
//включение режима подачи воды из скважины и очистки ее установкой осмоса
//с подачей очищенной воды в емкость 750 литров.
function_block OsmosHomeMode
var_input
Level750_Overflow : bool;
Level750_LOW : bool;
Level750_FULL : bool;
Manual_Start : bool;
end_var
var_output
PumpSKV : bool; //выход на контактор насоса скважины
PumpOSMOS : bool; //выход на контактор насоса установки обратного осмоса
Klapan750 : bool;//клапан на емкость 750 литров для подачи в дом
Klapan5000 : bool;//клапан на емкость 5000 литров для полива
KlapanSLIV : bool;//клапан открывает дренажную трубу для слива грязной воды, концентрата
KlapanRAW : bool; //клапан подачи неочищенной воды
end_var
var
OSMOSPump_ON_Delay : SYS.TON;
SKVPump_OFF_Delay : SYS.TOF;
NeedSTOP : bool;
end_var
IF Level750_LOW or Manual_Start THEN //нажали кнопку с фиксацией или уровень упал ниже минимального
Klapan750 := TRUE; //открываем клапан на набор очищенной воды в емкость 750л
KlapanSLIV := TRUE; //открываем клапан на дренаж концентрата после осмоса
Klapan5000 := FALSE; //закрываем клапан на емкость 5000
KlapanRAW := FALSE; //закрываем клапан слива неочищенной воды
PumpSKV:=TRUE; //включаем насос скважины
OSMOSPump_ON_Delay(I:=Level750_LOW or Manual_Start,T:=T#10S,Q=>PumpOSMOS);//включение насоса осмоса через10 секунд после насоса скважины
ELSE
PumpOSMOS:=FALSE; //отключаем насос установки осмоса
Klapan750 := FALSE; //закрываем клапан на набор очищенной воды в емкость 750л
Klapan5000 := FALSE; //закрываем клапан на емкость 5000
KlapanRAW := FALSE; //закрываем клапан слива неочищенной воды
//NeedSTOP := NOT ((NOT Manual_Start) OR Level750_FULL or Level750_Overflow); //если отключится кнопка или сработает датчик наполнения или аварийный
NeedSTOP:=TRUE;
SKVPump_OFF_Delay(I:=NeedSTOP,T:=T#5S);//выключение насоса скважины через 5 секунд после насоса осмоса
PumpSKV:=SKVPump_OFF_Delay.Q; //!!! насос не выключается через 5 секунд
KlapanSLIV := FALSE; //закрываем клапан на дренаж
END_IF;
end_function_block
Прошу сильно не пинать, первые шаги в освоении ST....
использовал учебник Иванова и мануал по ПР-205:
решил с простого начать:
Задача модели мониторить датчики в емкости и обрабатывать принудительный ручной запуск набора воды в емкость. Насос скважины качает соленую воду, прогоняет через осмос (в осмосе свой насос высокого давления)
и набирает емкость 750 литров до уровня FULL. включение по датчику LOW. На всякий случай аварийный датчик переполнения, если с датчиком FULL что-то произойдет.
В модели 4 клапана, один подает воду в емкость 750 литров, второй (на будущее) будет подавать воду во вторую емкость 5000 литров, если 750 наполнена уже или принудительно. Третий открывает дренаж на слив грязной воды.
Четвертый открывается чтобы подавать неочищенную воду, естественно, закрывая все остальные.(это тоже TODO...)
1. не совсем понял как в режиме симуляции в интерактивном режиме менять значения на входах реле, чтобы увидеть как работает модель.(выставлять 0 или 1 на выбранном входе и наблюдать изменения).
нашел только что можно открыт окно просмотра при запущенной симуляции и там добавить вход и в нем поменять переменную... а вот чтобы щелкнуть на виртуальную кнопку (как, например, в Proteus) такого там нет?
2. как работает в принципе функциональный блок, исполняется ли он в цикле или же разово? т.е. крутится в цикле, опрашивает входы или же выполняется как только происходит изменения на входных переменных?
или же мониторинг входов нужно вешать на триггеры, которые срабатывают при изменении одного из входов и тогда запускать на выполнение функциональный блок? Хочу понять принцип и подход. Как я понимаю, постоянно гонять
опрос входов - это грузить процессор на 100%? или тут другая ситуация?
3. как отключить насос скважины через 5 секунд после остановки насоса осмоса. Не выключается выход реле через 5 секунд. Включение насоса c задержкой 10 секунд идет нормально, клапана тоже все открываются нормально, при сбросе I4 в 0 все выключается , а PumpSKV остается работать...
d
//включение режима подачи воды из скважины и очистки ее установкой осмоса
//с подачей очищенной воды в емкость 750 литров.
function_block OsmosHomeMode
var_input
Level750_Overflow : bool;
Level750_LOW : bool;
Level750_FULL : bool;
Manual_Start : bool;
end_var
var_output
PumpSKV : bool; //выход на контактор насоса скважины
PumpOSMOS : bool; //выход на контактор насоса установки обратного осмоса
Klapan750 : bool;//клапан на емкость 750 литров для подачи в дом
Klapan5000 : bool;//клапан на емкость 5000 литров для полива
KlapanSLIV : bool;//клапан открывает дренажную трубу для слива грязной воды, концентрата
KlapanRAW : bool; //клапан подачи неочищенной воды
end_var
var
OSMOSPump_ON_Delay : SYS.TON;
SKVPump_OFF_Delay : SYS.TOF;
NeedSTOP : bool;
end_var
IF Level750_LOW or Manual_Start THEN //нажали кнопку с фиксацией или уровень упал ниже минимального
Klapan750 := TRUE; //открываем клапан на набор очищенной воды в емкость 750л
KlapanSLIV := TRUE; //открываем клапан на дренаж концентрата после осмоса
Klapan5000 := FALSE; //закрываем клапан на емкость 5000
KlapanRAW := FALSE; //закрываем клапан слива неочищенной воды
PumpSKV:=TRUE; //включаем насос скважины
OSMOSPump_ON_Delay(I:=Level750_LOW or Manual_Start,T:=T#10S,Q=>PumpOSMOS);//включение насоса осмоса через10 секунд после насоса скважины
ELSE
PumpOSMOS:=FALSE; //отключаем насос установки осмоса
Klapan750 := FALSE; //закрываем клапан на набор очищенной воды в емкость 750л
Klapan5000 := FALSE; //закрываем клапан на емкость 5000
KlapanRAW := FALSE; //закрываем клапан слива неочищенной воды
//NeedSTOP := NOT ((NOT Manual_Start) OR Level750_FULL or Level750_Overflow); //если отключится кнопка или сработает датчик наполнения или аварийный
NeedSTOP:=TRUE;
SKVPump_OFF_Delay(I:=NeedSTOP,T:=T#5S);//выключение насоса скважины через 5 секунд после насоса осмоса
PumpSKV:=SKVPump_OFF_Delay.Q; //!!! насос не выключается через 5 секунд
KlapanSLIV := FALSE; //закрываем клапан на дренаж
END_IF;
end_function_block
1. В режиме симуляции - просто кликайте на квадратик входа и вход изменит своё состояние
2. Код внутри ФБ выполняется ТОЛЬКО в тот момент, когда происходит его вызов (строка вида "ИмяФБ(...);"). В скобках может вообще ничего не быть - в этом случае блок обработает те значения, которые будут в этот момент на его входах.
В промежутках между вызовами выходные переменные ФБ СОХРАНЯЮТ свои значения.
3. п.2
Прошу сильно не пинать, первые шаги в освоении ST....
использовал учебник Иванова и мануал по ПР-205:
Найдите книжку Петрова И.В. Программируемые контроллеры Стандартные языки и приемы прикладного проектирования
3. как отключить насос скважины через 5 секунд после остановки насоса осмоса. Не выключается выход реле через 5 секунд. Включение насоса c задержкой 10 секунд идет нормально, клапана тоже все открываются нормально, при сбросе I4 в 0 все выключается , а PumpSKV остается работать...
Задержка отключения - если на входе пропал сигнал, то выход отключится через заданное время. У вас же вход просто взводится и все.
Совет: не надо таймеры располагать под условием. Таймер у нас не аппаратный, который пнул и забыл, а программный, т.е. должен выполняться. В вашем примере: если низкий уровень уйдет раньше чем 10 секунд, то таймер не сработает и насос осмоса не запуститься. Но, зато, в следующий раз он может запуститься сразу, ведь 10 секунд уже пройдет.
Далее, если вы явно пинаете таймер ton(I := true), то, где-то в коде обязательно должны его сбросить ton(I := false), иначе таймер сработает только один раз
Вот, чуть поправил код
//включение режима подачи воды из скважины и очистки ее установкой осмоса
//с подачей очищенной воды в емкость 750 литров.
function_block OsmosHomeMode
var_input
Level750_Overflow : bool;
Level750_LOW : bool;
Level750_FULL : bool;
Manual_Start : bool;
end_var
var_output
PumpSKV : bool; //выход на контактор насоса скважины
PumpOSMOS : bool; //выход на контактор насоса установки обратного осмоса
Klapan750 : bool;//клапан на емкость 750 литров для подачи в дом
Klapan5000 : bool;//клапан на емкость 5000 литров для полива
KlapanSLIV : bool;//клапан открывает дренажную трубу для слива грязной воды, концентрата
KlapanRAW : bool; //клапан подачи неочищенной воды
end_var
var
OSMOSPump_ON_Delay : SYS.TON;
SKVPump_OFF_Delay : SYS.TOF;
NeedSTOP : bool;
pusk : bool; //флаг запуска
end_var
IF Level750_LOW or Manual_Start THEN //нажали кнопку с фиксацией или уровень упал ниже минимального
Klapan750 := TRUE; //открываем клапан на набор очищенной воды в емкость 750л
KlapanSLIV := TRUE; //открываем клапан на дренаж концентрата после осмоса
Klapan5000 := FALSE; //закрываем клапан на емкость 5000
KlapanRAW := FALSE; //закрываем клапан слива неочищенной воды
//PumpSKV:=TRUE; //включаем насос скважины
//OSMOSPump_ON_Delay(I:=Level750_LOW or Manual_Start,T:=T#10S,Q=>PumpOSMOS);//включение насоса осмоса через10 секунд после насоса скважины
pusk := true; //запускаем систему
ELSE
//PumpOSMOS:=FALSE; //отключаем насос установки осмоса
Klapan750 := FALSE; //закрываем клапан на набор очищенной воды в емкость 750л
Klapan5000 := FALSE; //закрываем клапан на емкость 5000
KlapanRAW := FALSE; //закрываем клапан слива неочищенной воды
//NeedSTOP := NOT ((NOT Manual_Start) OR Level750_FULL or Level750_Overflow); //если отключится кнопка или сработает датчик наполнения или аварийный
//NeedSTOP:=TRUE;
//SKVPump_OFF_Delay(I:=NeedSTOP,T:=T#5S);//выключение насоса скважины через 5 секунд после насоса осмоса
//PumpSKV:=SKVPump_OFF_Delay.Q; //!!! насос не выключается через 5 секунд
KlapanSLIV := FALSE; //закрываем клапан на дренаж
pusk := false; //останавливаем систему
END_IF;
OSMOSPump_ON_Delay(I := pusk, T := t#10s, Q => PumpOsmos); //управление насосом осмоса
SKVPump_OFF_Delay(I := pusk, T := t#5s, Q => PumpSKV); //управление насосом скважины
end_function_block
Прошу сильно не пинать, первые шаги в освоении ST....]
точно знаю что нейросеть не пинает в любом случае, вот её версия
// улучшенная версия
FUNCTION_BLOCK OsmosHomeMode
VAR_INPUT
Level750_Overflow : bool; // Датчик переполнения емкости 750л
Level750_LOW : bool; // Датчик минимального уровня
Level750_FULL : bool; // Датчик максимального уровня
Manual_Start : bool; // Ручное управление
END_VAR
VAR_OUTPUT
PumpSKV : bool; // Насос скважины
PumpOSMOS : bool; // Насос осмоса
Klapan750 : bool; // Клапан емкости 750л
Klapan5000 : bool; // Клапан емкости 5000л
KlapanSLIV : bool; // Клапан слива
KlapanRAW : bool; // Клапан подачи сырой воды
END_VAR
VAR
OSMOSPump_ON_Delay : SYS.TON; // Таймер включения насоса осмоса
SKVPump_OFF_Delay : SYS.TOF; // Таймер выключения насоса скважины
NeedSTOP : bool; // Флаг необходимости остановки
END_VAR
// Основной цикл работы
IF Level750_LOW OR Manual_Start THEN
// Режим запуска системы
Klapan750 := TRUE; // Открытие клапана подачи воды в емкость 750л
KlapanSLIV := TRUE; // Открытие дренажа концентрата
Klapan5000 := FALSE; // Закрытие клапана емкости 5000л
KlapanRAW := FALSE; // Закрытие клапана сырой воды
PumpSKV := TRUE; // Включение насоса скважины
OSMOSPump_ON_Delay(IN := Level750_LOW OR Manual_Start,
T := T#10S,
Q => PumpOSMOS); // Включение насоса осмоса через 10с
ELSE
// Режим остановки системы
PumpOSMOS := FALSE; // Отключение насоса осмоса
Klapan750 := FALSE; // Закрытие клапана подачи воды
Klapan5000 := FALSE; // Закрытие клапана емкости 5000л
KlapanRAW := FALSE; // Закрытие клапана сырой воды
NeedSTOP := NOT((NOT Manual_Start) OR
Level750_FULL OR
Level750_Overflow);
// Управление насосом скважины с задержкой выключения
SKVPump_OFF_Delay(IN := NeedSTOP,
T := T#5S,
Q => PumpSKV);
KlapanSLIV := FALSE; // Закрытие дренажа
END_IF;
END_FUNCTION_BLOCK
82868
Диаграмма показывает последовательность работы системы:
При включении (Level750_LOW = TRUE) насос скважины запускается сразу
Насос осмоса включается через 10 секунд после запуска насоса скважины
При остановке сначала выключается насос осмоса
Насос скважины выключается через 5 секунд после остановки насоса осмоса
Клапаны синхронизируются с работой насосов
Основные улучшения в коде:
Оптимизация логики работы насосов:
Добавлен таймер включения насоса осмоса (OSMOSPump_ON_Delay)
Реализована последовательная запуска насосов с задержкой
Улучшена логика остановки системы через NeedSTOP
Улучшение структуры кода:
Добавлены подробные комментарии на русском языке
Группировка связанных действий
Улучшена читаемость через правильное форматирование
Безопасность работы:
Проверка всех условий остановки через NeedSTOP
Корректная последовательность закрытия клапанов
Синхронизация работы всех компонентов
Код теперь лучше структурирован и безопасен, при этом сохраняя всю функциональность системы управления насосами и клапанами.
на вопрос
как отключить насос скважины через 5 секунд после остановки насоса осмоса. Не выключается выход реле через 5 секунд. Включение насоса c задержкой 10 секунд идет нормально, клапана тоже все открываются нормально, при сбросе I4 в 0 все выключается , а PumpSKV остается работать
Проблема в том, что выход насоса скважины (PumpSKV) не отключается через 5 секунд после остановки насоса осмоса. Давайте рассмотрим, почему это происходит и как это исправить.
82871
На диаграмме показана последовательность работы системы, где:
Синяя линия показывает активное состояние компонента
Стрелки показывают команды управления
Проблема возникает в последней части, где насос скважины не выключается через 5 секунд
Основная причина проблемы:
// Проблемный код
NeedSTOP:=TRUE;
SKVPump_OFF_Delay(I:=NeedSTOP,T:=T#5S);//выключение насоса скважины через 5 секунд
PumpSKV:=SKVPump_OFF_Delay.Q; //!!! насос не выключается через 5 секунд
Исправленная версия:
// Правильная реализация
VAR
SKVPump_OFF_Delay : SYS.TOF; // Таймер выключения насоса скважины
PumpSKV_State : bool; // Состояние насоса скважины
END_VAR
IF Level750_LOW OR Manual_Start THEN
// Режим запуска
PumpSKV_State := TRUE;
PumpSKV := PumpSKV_State;
SKVPump_OFF_Delay(IN := FALSE, PT := T#5S); // Сброс таймера
// Остальной код включения...
ELSE
// Режим остановки
SKVPump_OFF_Delay(IN := TRUE, PT := T#5S); // Запуск таймера
PumpSKV_State := NOT SKVPump_OFF_Delay.Q; // Управление через состояние
PumpSKV := PumpSKV_State;
END_IF;
Ключевые изменения:
Добавлен отдельный бит состояния насоса (PumpSKV_State)
Таймер TOF используется правильно:
IN := TRUE при остановке
IN := FALSE при запуске
PT := T#5S задает время задержки
Управление насосом происходит через состояние, которое инвертируется по Q выходу таймера
Проверка работоспособности:
При включении:
PumpSKV_State = TRUE
Таймер сбрасывается
Насос включается сразу
При остановке:
Таймер запускается (IN := TRUE)
Через 5 секунд Q становится TRUE
PumpSKV_State становится FALSE
Насос выключается
Теперь насос скважины должен корректно выключаться через 5 секунд после остановки насоса осмоса.
как то так, главное в вопросах к нейросетям(phind.com, you.com) в начале указать в контексте какой сферы задается вопрос и она довольно быстро подберет правильное направление решения
как работает в принципе функциональный блок, исполняется ли он в цикле или же разово? Я же специально для ПРщиков написал статью про Функцию и Функциональный блок. Простым языком. Без книжек. Бесплатно.
И уже давал на неё ссылку. Разве сложно было почитать?
Даю ещё раз: https://cs-cs.net/funkciya-fun-i-funkcionalniy-blok-fb-codesys-owenlogic
точно знаю что нейросеть не пинает в любом случае, вот её версия
// улучшенная версия
...
Все хорошо с ИИ, но, если кнопка Manual_Start будет без фиксации, то можем не дождаться включения насоса осмоса. А если с фиксацией, то не дождемся выключения насоса скважины
Всем спасибо за помощь, книжку Петрова от 2004 и 2016 годов нашел, изучаю.
Таймер у нас не аппаратный, который пнул и забыл, а программный, т.е. должен выполняться
Это важно, я думал он как отдельный thread стартует и висит самостоятельно до завершения.
TiiTan4ik
04.04.2025, 10:52
Нужен макрос который бы ограничел изминение целочисленного значения по вермени. Было число 5 изминилось 6 но на выходе висит 5 пока не истикло время и так на каждое изминение числа. Помогите пожалуйста может у кого есть что то подобное.
Все хорошо с ИИ, но, если кнопка Manual_Start будет без фиксации, то можем не дождаться включения насоса осмоса. А если с фиксацией, то не дождемся выключения насоса скважины
я не смогу продолжить с ней диалог, потому что закрыл вкладку. А с нуля начать может каждый, постепенно задавая ей уточняющие вопросы
Нужен макрос который бы ограничел изминение целочисленного значения по вермени. Было число 5 изминилось 6 но на выходе висит 5 пока не истикло время и так на каждое изминение числа. Помогите пожалуйста может у кого есть что то подобное.
Отсчет задержки постоянно ведётся или запускается при изменении значения на входе?
PS
В буквы "е" и "и" по какому принципу выбираете? )
kondor3000
04.04.2025, 13:35
Нужен макрос который бы ограничел изминение целочисленного значения по вермени. Было число 5 изминилось 6 но на выходе висит 5 пока не истикло время и так на каждое изминение числа. Помогите пожалуйста может у кого есть что то подобное.
Как то так 82883
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot