PDA

Просмотр полной версии : разные вопросы новичка



Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19

temenator
07.08.2025, 07:16
То есть просто в проекте делать сетевую переменную с галкой независимости ?
И для воода с экрана ее использовать так же можно ?
Вопрос еще возник. Завел в облако пр205. В самом пр статус 2. Что все ок.
А вот в облаке он в сети не повялется либо на какое то короткое время.
Сеть кабель->роутер->провайдер.

jamaicarso
07.08.2025, 10:55
Здравствуйте! ПР103. Подскажите, работает ли на ОЛ в режиме симуляции чтение значений по RS485?

1exan
07.08.2025, 10:57
Здравствуйте! ПР103. Подскажите, работает ли на ОЛ в режиме симуляции чтение значений по RS485?

Нет, работа по интерфейсам не эмулируется

Солнечный заяц
07.08.2025, 17:02
Всем привет!
ПР225, конфигурирую аналоговый вход
85235
1. Что будет, при обрыве датчика? Я смогу это увидеть из программы?
2. Никаких блоков преобразования подключать ко входу AI1 на холсте не требуется? сразу получаю температуру в нужную переменную?

Dimensy
07.08.2025, 17:30
Всем привет!
ПР225, конфигурирую аналоговый вход
85235
1. Что будет, при обрыве датчика? Я смогу это увидеть из программы?
2. Никаких блоков преобразования подключать ко входу AI1 на холсте не требуется? сразу получаю температуру в нужную переменную?

Вот сюда гляньте
85236
Сразу получаете данные в виде температуры

FPavel
07.08.2025, 18:44
Всем привет!
ПР225, конфигурирую аналоговый вход
1. Что будет, при обрыве датчика? Я смогу это увидеть из программы?
2. Никаких блоков преобразования подключать ко входу AI1 на холсте не требуется? сразу получаю температуру в нужную переменную?
Недавно интересовал тот же вопрос для ПР205 (это тот же ПР225) - ответ нашёл в инструкции. Не запомнил его, поэтому не воспроизведу.
Чтобы не делать новую диагностику - просто сконфигурировал вход как сопротивление и остался на макросе из компонентов - там есть выход "неисправность", хотя значение температуры показывает не подстановочное, а последнее корректное. В моём случае подходит.

Токовые входы диагностирую как макросом, так и привязанной к диагностике переменной.

kondor3000
07.08.2025, 19:02
Недавно интересовал тот же вопрос для ПР205 (это тот же ПР225) - ответ нашёл в инструкции. Не запомнил его, поэтому не воспроизведу.
Чтобы не делать новую диагностику - просто сконфигурировал вход как сопротивление и остался на макросе из компонентов - там есть выход "неисправность", хотя значение температуры показывает не подстановочное, а последнее корректное. В моём случае подходит.

Токовые входы диагностирую как макросом, так и привязанной к диагностике переменной.

На скрине, состояния Аналоговых входов, создать переменную и читать статус 85240
Не надо никаких макросов и 0-300 Ком

FPavel
07.08.2025, 19:16
У меня в практике происходят смены моделей с ПР200 на ПР205 и обратно.
Поэтому стараюсь использовать "общие" для этих моделей решения - и измерения и ПИД.

2. 0-300 КОм - это максимальный предел измерения. И для него своя погрешность. Для датчиков Pt1000 мы производим калибровку на заводе с устранением нелинейности в нескольких диапазонах измерения. За счет этого повышая точность измерения. Для того, чтобы применить эти коэффициенты и надо выбирать режим работы аналогового входа не 0-3000 а Pt1000. И получить достаточно неплохую точность.

P.S.: Для случаев, когда нужно точно измерять температуру был сделан модуль ПРМ-3. Там ТРМ-ные входы. Хоть термопары измеряйте. И все достаточно точно.
О точности двухпроводного подключения ТПС у меня нет иллюзий, поэтому несмотря на дополнительную заводскую коррекцию измерений в режиме Pt1000 - считаю допустимым пренебрегать этим советом.

Солнечный заяц
08.08.2025, 08:51
Вот сюда гляньте
85236

Надо же, в отдельный раздел засунули, не заметил, спасибо! )

jamaicarso
16.08.2025, 10:38
Здравствуйте! Подключаю датчик температуры ТСП012Сп pt100 к аналоговому входу ПР200. В программе использую макрос для преобразования температуры, на выход получаю 0 градусов. В симуляции на выходе 6,46Е+0. По факту 109Ом при измерении мультиметром. Что делаю не так?

FPavel
16.08.2025, 11:00
Здравствуйте! Подключаю датчик температуры ТСП012Сп pt100 к аналоговому входу ПР200. В программе использую макрос для преобразования температуры, на выход получаю 0 градусов. В симуляции на выходе 6,46Е+0. По факту 109Ом при измерении мультиметром. Что делаю не так?

1. Настроить этот вход:
- аналоговый режим - кажется перемычками под корпусом - смотрите инструкцию
- измерение сопротивлений
https://docs.owen.ru/product/pr200/80/105622#topic-105624

2. заменить датчик на Pt1000, иначе по 2-проводной схеме измерения погрешность температуры будет составлять около 10 гр.C и непредсказуемо колебаться при изменении температуры проводов (это не предположение, а горький опыт)

jamaicarso
16.08.2025, 11:46
1. Настроить этот вход:
- аналоговый режим - кажется перемычками под корпусом - смотрите инструкцию
- измерение сопротивлений
https://docs.owen.ru/product/pr200/80/105622#topic-105624

2. заменить датчик на Pt1000, иначе по 2-проводной схеме измерения погрешность температуры будет составлять около 10 гр.C и непредсказуемо колебаться при изменении температуры проводов (это не предположение, а горький опыт)

Спасибо! Завелся, температура ровно на 10гр выше чем на токовом. Это особенность двухпроводной схемы подключения или ПР200? Интересно просто тогда для каких целей может применяться pt100

Dimensy
16.08.2025, 12:43
Спасибо! Завелся, температура ровно на 10гр выше чем на токовом. Это особенность двухпроводной схемы подключения или ПР200? Интересно просто тогда для каких целей может применяться pt100

Это особенность ПР200. Погрешность измерения большая - для Pt1000 еще более-менее, а вот, на Pt100 уже сильно сказывается

Сергей0308
16.08.2025, 12:48
Спасибо! Завелся, температура ровно на 10гр выше чем на токовом. Это особенность двухпроводной схемы подключения или ПР200? Интересно просто тогда для каких целей может применяться pt100

В руководстве по эксплуатации обозначено какие типы датчиков поддерживает тот или иной прибор(его входы), так вот для поддержки подобных термосопротивлений(видать многие хотели подружить ПР200 с подобными термосопротивлениями) Овен выпустил специальный модуль расширения для ПР - ПРМ-3:
https://owen.ru/product/prm/specifications
В принципе существуют и другие способы подружить эти приборы, например нормирующие преобразователи:
https://owen.ru/product/npt_1k
https://owen.ru/product/npt
модули аналогового ввода:
https://owen.ru/product/moduli_analogovogo_vvoda_s_universal_nimi_vhodami_ s_interfejsom_rs_485/specifications
Также термосопротивление можно подключить к прибору 2ТРМ0(ранее ТРМ200):
https://owen.ru/product/2trm0
и по сети считывать показания прибора. Одного прибора хватит для двух датчиков, он двухканальный.

Dimensy
16.08.2025, 12:54
В руководстве по эксплуатации обозначено какие типы датчиков поддерживает тот или иной прибор(его входы)...

Самое интересное, что на страничке описания ПР200, указано, что он поддерживает Pt100

85339

jamaicarso
16.08.2025, 13:47
Спасибо за ликбез!)

FPavel
16.08.2025, 14:35
Это особенность ПР200. Погрешность измерения большая - для Pt1000 еще более-менее, а вот, на Pt100 уже сильно сказывается
Справедливости ради, это особенность не прибора, а способа измерения (2-проводная схема).

На практике довелось за шабашниками завершать (ну как завершать - полностью все без исключения приборы настраивать) в водогрейной котельной с теплопунктом.
В памяти осталось непонятное решение - датчик уличной температуры 50М имел 2 винта для подключения, 3-проводный кабель подключался всего 2-проводами к датчику, а на клеммах ТРМ32 была необходимая перемычка. Т.е. техническая возможность правильного подключения существовала, но шабашник подключил так. Показания температуры от этого датчика менялись от открытия двери/окна, лучей солнца на кабельканале - достаточно быстро, хотя и не скакали. Попытки исправить погрешность коррекцией в ТРМ32 не приводили к успеху. Решилось - подключением по 3-проводной схеме (повторюсь - готовность к этому существовала).

Также, работал с контроллерами МЗТА (КОНТАР), которые позволяют подключать Pt100 и по 2 и по 3 проводным схемам. Измерялась температура в печи (технологической линии) жарки семечек - т.е. рабочая температура была стабилизирована нагревателем от другой системы автоматики. Температура только измерялась, мер воздействия на неё не было.
Пока не переделал на 3-проводную схему - показания температуры плавали с большой погрешностью (порядка 5-10 градусов). Это при том, что измерялась она в почти неизменной "рабочей точке".
После исправления проектной ошибки - показания стали адекватными, с точностями в доли градуса.

Ниша ПР - очень бюджетная автоматизация с экономией даже на одном проводе в кабеле, соответственно и производитель идёт навстречу покупателю - выпускает Pt1000 и высокоомные позисторы, упрощает схемотехнику измерительных входов, отказывается от регистрации средства измерения.
Соответственно, нужно использовать подходящие датчики, нормирующие преобразователи, модули ввода (как перечислил Сергей0308).

А все проблемы возникают от того, что порог в "бытовую автоматизацию" очень низкий - 40 лет в школах преподают информатику, народ у нас сообразительный и с руками. Но профильное образование всё же требуется - хотя бы для для подбора датчиков.
Т.е. проблема не в ПР, а в отсутствии знаний для применения. Никого не осуждаю, ни к чему не призываю - это просто моё видение ситуации в этой нише. В других нишах - другие проблемы по другим причинам.

Ollema
17.08.2025, 16:41
Я успешно использую для ПР200 собственные датчики температуры с выходом RS485 - все гораздо точнее, проще и надежнее, чем всякие pt100 или 1000.

Dimensy
19.08.2025, 10:21
Справедливости ради, это особенность не прибора, а способа измерения (2-проводная схема)...


Небольшой эксперимент. Датчик Pt100 подключил сначала к ПР200, потом к ПРМ-3 по двухпроводной схеме и по трехпроводной схеме.
Длина кабеля 20 м, сечение 0,75.

85353

kondor3000
19.08.2025, 10:32
Небольшой эксперимент. Датчик Pt100 подключил сначала к ПР200, потом к ПРМ-3 по двухпроводной схеме и по трехпроводной схеме.
Длина кабеля 20 м, сечение 0,75.


В первом случае погрешность 13 градусов,
по 2-проводной всего 3, но при изменении длины кабеля, может дойти и до 10 градусов.
Проверял на 50 метрах, разницу между 2-х и 3-х проводной, погрешность была 8 градусов.

FPavel
19.08.2025, 18:40
Dimensy, на самом деле - жуткие результаты - не ожидал от ПР200 такой погрешности, тем более, что и ПР200 и ПРМ-3 измеряют сопротивление в одном диапазоне (0...4 кОм).

И ожидал и сам видел нестабильность и погрешность для 2-проводных подключений, но здесь у ПР200 - не измерение, а какой-то дискретный индикатор.

Хотя радуюсь, что почти ушёл от ПР200 к ПР205, но боюсь там тоже не всё благополучно даже с Pt1000 - ведь у ПР205 диапазон измерения шире в 100 раз (0...300 кОм).
Может, представится случай и с ПР205 проведу эксперимент по замеру с контролем по мультиметру.

Dimensy
19.08.2025, 18:45
Dimensy, на самом деле - жуткие результаты - не ожидал от ПР200 такой погрешности, тем более, что и ПР200 и ПРМ-3 измеряют сопротивление в одном диапазоне (0...4 кОм).

И ожидал и сам видел нестабильность и погрешность для 2-проводных подключений, но здесь у ПР200 - не измерение, а какой-то дискретный индикатор.

Хотя радуюсь, что почти ушёл от ПР200 к ПР205, но боюсь там тоже не всё благополучно даже с Pt1000 - ведь у ПР205 диапазон измерения шире в 100 раз (0...300 кОм).
Может, представится случай и с ПР205 проведу эксперимент по замеру с контролем по мультиметру.
Ну, это был не совсем ПР200, а ПР200х8, может поэтому. Хотел еще на Pt1000 проверить, но не нашел у себя в загашнике.
По поводу новой линейки, их калибруют на 2 диапазона - до 4кОм и выше (насколько я помню). Так что должно быть нормально

Сергей0308
19.08.2025, 18:49
Dimensy, на самом деле - жуткие результаты - не ожидал от ПР200 такой погрешности, тем более, что и ПР200 и ПРМ-3 измеряют сопротивление в одном диапазоне (0...4 кОм).

И ожидал и сам видел нестабильность и погрешность для 2-проводных подключений, но здесь у ПР200 - не измерение, а какой-то дискретный индикатор.

Хотя радуюсь, что почти ушёл от ПР200 к ПР205, но боюсь там тоже не всё благополучно даже с Pt1000 - ведь у ПР205 диапазон измерения шире в 100 раз (0...300 кОм).
Может, представится случай и с ПР205 проведу эксперимент по замеру с контролем по мультиметру.

Так вроде уже 1000 раз обсуждали этот вопрос, что входа ПР не заточены для работы с ТС, в смысле, сопротивление ТС в "заточенных" входах измеряют создавая стабильный ток, ток должен составлять микроамперы, для исключения разогрева ТС током измерения и т. д.

Dimensy
19.08.2025, 19:08
Так вроде уже 1000 раз обсуждали этот вопрос, что входа ПР не заточены для работы с ТС, в смысле, сопротивление ТС в "заточенных" входах измеряют создавая стабильный ток, ток должен составлять микроамперы, для исключения разогрева ТС током измерения и т. д.

Ну, заточены или нет, но https://owen.ru/forum/attachment.php?attachmentid=85339&d=1755338052

FPavel
19.08.2025, 19:13
Да, видел у ПР205 возможность выбора измерения 300 кОм или ТС с конкретной НСХ - думал, что для Pt1000 они равнозначны или различия незначительны.
Конечно, при возможности проверю, но теперь есть сомнения в предположении об равнозначности.

Да, я знаю о саморазогреве, учил "измерительные мосты" и подобные вещи. Но сам попался на том, что хотя для Pt1000 сопротивлением проводов можно пренебречь, но само измерение у ПР происходит не в полной мере корректно.

Прежде, чем посыпать голову пеплом - дождусь случая и проверю самопридуманную страшилку.

Руслан К.
22.08.2025, 17:17
Здравствуйте. Вопрос про сравнение на равенство. Сделал часть программы (таймер реального времени) и сравниваю уставку с результатом (там и там значения целочисленные, переменные сетевые). Все работает. Копирую эту уже работающую часть меняю переменные на соответствующие второму такому же таймеру (уставка и результат, значения целочисленные, переменные сетевые). Делаю все аналогично. Блок EQ не сравнивает числа... Переменные работают нормально, проверял. Помогите пожалуйста разобраться, почему так?

kondor3000
22.08.2025, 17:21
Здравствуйте. Вопрос про сравнение на равенство. Сделал часть программы (таймер реального времени) и сравниваю уставку с результатом (там и там значения целочисленные, переменные сетевые). Все работает. Копирую эту уже работающую часть меняю переменные на соответствующие второму такому же таймеру (уставка и результат, значения целочисленные, переменные сетевые). Делаю все аналогично. Блок EQ не сравнивает числа... Переменные работают нормально, проверял. Помогите пожалуйста разобраться, почему так?

Выложите проект или хотя бы скрины.
При копировании могут пропасть соединения блоков с переменными, проверяйте.
Сетевые целочисленные, если не указано 2 регистра (32 бит), по умолчанию будут 1 регистр (16 бит, младший), это надо помнить.

Traveller
22.08.2025, 19:34
Ну, заточены или нет, но https://owen.ru/forum/attachment.php?attachmentid=85339&d=1755338052
Выставлю свои 5 копеек!
Дело в том что аналоговые входы любого ПР хоть и могут быть применимы для подключения различных резистивных или полупроводниковых датчиков температуры, но проблема в том что все эти датчики к реле подключаются по 2-х проводной схеме, где как гриться каждый лишний контакт вносит свои коррективы, ну да, можно там мерить если вы датчик подключаете без лишних разъемов и все контакты пропаиваете, будет погрешность не большая и как бы бог с ней, но если линия от датчика, до реле больше нескольких метров и там еще пара тройка клеммников, то погрешность в 10-15 градусов это нормально!, для этого нужно использовать или 3-х, 4-х проводные схемы подключения, а это можно сделать только или со специально заточенными под это дело ТРМ-ками или нужно использовать нормирующие преобразователи, которые будут конвертировать сопротивление резистивных датчиков или ЭДС термопар в унифицированные сигналы 0-10V или 4-20mA которые как раз и лучше подавать на аналоговые входа ПР-ок! Во всяком случае, точность аналоговых входов ПР200 по 4-20mA у меня не вызывала ни каких нареканий... :)

Cs-Cs
23.08.2025, 10:58
novinky Папка профиля пользователя (Users\Имя\Application Data)
Там папка OWEN\OWEN Logic
И файл "config.xml", раздел "<RecentFile>"

Руслан К.
23.08.2025, 13:59
Вот. Рабочий и не рабочий кусок.85388

kondor3000
23.08.2025, 14:08
Вот. Рабочий и не рабочий кусок.85388

Триггер RS2 не соединён с SR2, оттяните и посмотрите.
Кол-во срабатываний 2 - переменная не энергонезависимая.

Руслан К.
23.08.2025, 14:15
kondor3000, спасибо большое! Точно соединение отвалилось. Из-за близкого расположения и небольшого экрана ноутбука не заметил. Впредь постараюсь быть внимательнее. Еще раз спасибо!

vyakl
27.08.2025, 10:55
Здравствуйте.
Подскажите, пожалуйста, есть ли возможность реализовать выполнение группы математических операций по некому триггеру (булевому)?
Извиняюсь, если это уже где-то обсуждалось, не нашёл.

1exan
27.08.2025, 11:00
Здравствуйте.
Подскажите, пожалуйста, есть ли возможность реализовать выполнение группы математических операций по некому триггеру (булевому)?
Извиняюсь, если это уже где-то обсуждалось, не нашёл.

Можете написать свою функцию или функциональный блок на ST с любым функционалом

Сергей0308
27.08.2025, 11:14
Здравствуйте.
Подскажите, пожалуйста, есть ли возможность реализовать выполнение группы математических операций по некому триггеру (булевому)?
Извиняюсь, если это уже где-то обсуждалось, не нашёл.

Вот в проекте по булевому сигналу выполняется запись заводских значений(значений по умолчанию):

85420

Здесь сумматор делал: https://owen.ru/forum/showthread.php?t=13106&p=183127&viewfull=1#post183127

85422

melky
27.08.2025, 11:16
Мне кажется лучше делать на ST. Вроде как при наличии if если условие не выполнено то код исполняться не будет, в отличии от FBD, где цепочка кода исполняется полностью.

vyakl
27.08.2025, 13:52
Спасибо за ответы.
На ST понятно. Интересовало именно на FBD, люблю, когда программа наглядна.

kondor3000
27.08.2025, 14:03
Спасибо за ответы.
На ST понятно. Интересовало именно на FBD, люблю, когда программа наглядна.

Математика на FBD это извращение, то что делается в одну строку на ST , можно растянуть на целую страницу на FBD.

1exan
27.08.2025, 15:16
Спасибо за ответы.
На ST понятно. Интересовало именно на FBD, люблю, когда программа наглядна.

На FBD - через SEL (или fSEL)

Traveller
29.08.2025, 11:25
Возник вопрос такого рода!
Есть такие, блоки записи и считывания значений в функциональные блоки, с записью все понятно, а вот со считыванием, тоже вроде все понятно, но не понятно мне зачем мне этот блок показывает то что я туда записал, это я и так знаю, мне бы знать в каком он сейчас значении находится (сколько миллисекунд он отсчитал или сколько осталось отсчитать и.т.д.), но он этого не показывает, он показывает уставку, не я понимаю, что иногда это может быть и нужно, но даже по логике вещей, я полагал, что он считывает текущее значение, а это не так и для этого нужно городить еще целый ворох ФБ или я не так что то делаю? :)

melky
29.08.2025, 11:48
Возможно что-то не так делаете. Можно и читать, что записано. Были примеры ПЗУ от Сергей308, использовал для сохранения аварий в журнале, и соответственно мог прочитать по кругу, какие аварии были, то есть записаны давно.

petera
29.08.2025, 12:17
Возможно что-то не так делаете. Можно и читать, что записано. Были примеры ПЗУ от Сергей308, использовал для сохранения аварий в журнале, и соответственно мог прочитать по кругу, какие аварии были, то есть записаны давно.

В таймерах нельзя с помощью READ from FB текущее значение читать, только уставку
Это (блоки W и R) он имел ввиду

Traveller
29.08.2025, 12:19
Возможно что-то не так делаете. Можно и читать, что записано. Были примеры ПЗУ от Сергей308, использовал для сохранения аварий в журнале, и соответственно мог прочитать по кругу, какие аварии были, то есть записаны давно.
То что записано, это ежу понятно, мне надо что сейчас в нем в данный момент времени!
Ну например: Есть ФБ TON (таймер задержки включения) и как бы мне нужно видеть сколько времени осталось до этого самого включения, а он этого не показывает, он показывает то что я в него записал, я это и так знаю!:)
Когда я в симуляторе в отладке программы я вижу как там меняется значение, когда в Он-Лайн отладке уже ничего не видно, но это ладно, вот эти бы значения считывать и выводить на дисплей или далее в программу если есть такая необходимость...
Ну была сначала мысль, что этот блок считывания настраивается, типа какие данные считывать, уставку или динамику, но этого тоже нет!

melky
29.08.2025, 12:35
тю, ну ведь делали люди таймеры на ST и даже на FBD с выводом пройденного времени. Штатные не поддерживают такого. Овен не предусматривал :)

kondor3000
29.08.2025, 12:48
Надо использовать самописные таймеры и получить ET (отсчёт таймера). Тут первые 2 ссылки на TON и TOF, есть с паузой и без.
В примерах программ есть ещё много всего, есть и таймер TP.
https://owen.ru/forum/showthread.php?t=37203&page=9&p=429061#81

Traveller
29.08.2025, 13:47
Надо использовать самописные таймеры и получить ET (отсчёт таймера). Тут первые 2 ссылки на TON и TOF, есть с паузой и без.
В примерах программ есть ещё много всего, есть и таймер TP.
https://owen.ru/forum/showthread.php?t=37203&page=9&p=429061#81О да, это то что нужно, спасибо! :) Теперь ни надо ничего самому городить :)

Traveller
29.08.2025, 15:08
И все же городить пришлось, там нет ФБ TP (Импульс включения заданной длительности), там по ссылкам нет такого на ST, а я пока на ST не силен, поэтому он у меня получился аляповатым, т.е. по факту считает в 2 раза медленнее, хотя я почти уверен, если считать не миллисекундах а в секундах, то будет норм, в общем вот:
85479
Ну и собсно сама программа, если кому такое барахло нужно:
https://owen.ru/forum/attachment.php?attachmentid=85480&stc=1&d=1756469102

Если кто напишет на ST, что нить похожее будет полезно... :)

Dimensy
29.08.2025, 16:39
Если кто напишет на ST, что нить похожее будет полезно... :)
Не претендую на оптимальность


function_block fbTP

var_input
IN : bool;
PT : udint;
RST : bool;
end_var

var_output
Q : bool;
ET : udint;
end_var

var
st, tm : udint;
fl : bool;
end_var

tm := time_to_udint(get_time());
if RST then
Q := false;
elsif IN and not fl then
Q := true;
st := tm;
end_if
if Q then
ET := tm - st;
if ET >= PT then Q := false; end_if
else
ET := PT;
end_if;

fl := Q or IN;

end_function_block

EFrol
29.08.2025, 16:45
Вариант 2:
85482


function_block TP

var_input
I : bool; // Входной импульс
T : udint; // Время в мс
end_var

var_output
Q : bool; // Выход
ET : udint; // Текущее значение таймера с обратным отсчетом
end_var

var
ts, d : udint; // Фиксация системного времени и дельты
rt : SYS.RTRIG; // Тригер фронта
end_var

rt(I := I and not Q); // Фиксируем начало нового импульса
if rt.Q then
ts := time_to_udint(get_time()); ET := T; Q := true; // Фиксируем продолжительность и начало импульса
end_if
if ET > 0 then
d := time_to_udint(get_time()) - ts; ts := ts + d; // Прошло времени в мc
if ET > d then
ET := ET - d; // Уменьшаем ET на это время
else
ET := 0; Q := false; // Иначе фиксируем завершение импульса
end_if
end_if

end_function_block

kondor3000
29.08.2025, 16:48
И все же городить пришлось, там нет ФБ TP (Импульс включения заданной длительности), там по ссылкам нет такого на ST, а я пока на ST не силен, поэтому он у меня получился аляповатым, т.е. по факту считает в 2 раза медленнее, хотя я почти уверен, если считать не миллисекундах а в секундах, то будет норм, в общем вот
Ну и собсно сама программа, если кому такое барахло нужно:
Если кто напишет на ST, что нить похожее будет полезно... :)

Ниже код TP с паузой, умножение на 1000 на входе РТ -задача в секундах (можно убрать),
разделить на 1000 на выходе ЕТ, не будет миллисекунд (можно добавить).

function_block TP_P //имя функционального блока
var_input //объявление входных переменных
In : bool; // вход таймера
Pauz : bool; // пауза таймера
PT : udint; //входная переменная для задачи времени
end_var
var_output //объявление выходных переменных
Q : bool; // выход таймера
ET: udint; // время таймера
end_var
var
x: BOOL;
tx,t0: UDINT;
end_var

PT:=PT*1000; // задача в секундах
tx:= time_to_udint(GET_TIME());
IF Pauz THEN T0:= tx - ET; END_IF
IF IN AND NOT x THEN t0:= tx; x:= TRUE; Q:= true;
elsif NOT IN AND x and ET=PT THEN ET:= PT; x:=false; Q:=false; END_IF
IF x AND Q THEN IF PT > (tx - T0) THEN ET:= tx - t0;
ELSE ET:= PT; END_IF Q:= ET < PT AND x; END_IF

end_function_block

Сергей0308
29.08.2025, 16:48
Вот сто лет тому назад выкладывал таймер с прямым и обратным отсчётом времени:

https://owen.ru/forum/showthread.php?t=33720&p=353353&viewfull=1#post353353

Вы как будто только сегодня после обеда с луны упали, мне так кажется!

Валенок
29.08.2025, 17:10
Раз пошла такая пьянка то тоже выложу свое.
Принципиальным считаю имена. Одно имя - одно поведение для портаций туды-сюды
Лишних полей не люблю
Запись без уступов терпеть не могу


function_block TP
//полный эквивалент Кодесис/Standart/TP с ТЕМ ЖЕ дебильным мерцанием при PT = 0 IN = TRUE

var_input //описание полей - см справка Кодесис
IN: bool;
PT: udint; //мс
end_var

var_output
Q : bool;
ET: udint; //мс

//++ к Кодесис/Standart/TP
REM: udint; //мс, оставшееся время работы
end_var

var
StartTime: time;
end_var

if Q then
ET := time_to_udint(get_time() - StartTime);
if ET >= PT then
ET := PT;
end_if
Q := ET < PT;
REM := PT - ET;
elsif not IN then
ET := 0;
REM := PT;
elsif ET = 0 then
StartTime := get_time();
Q := true;
end_if

end_function_block

дрю
30.08.2025, 10:24
Добрый день! Подскажите пожалуста, вот на ST выражениеЖ
if LE_PR AND PUSK OR PUSK_F_RIGT AND NOT L_KONC AND NOT STOP then
MOTOR :=TRUE;
PUSK_F_RIGT:=true;

ELSE
MOTOR :=false;
PUSK_F_RIGT:=false;
А это скрин сииммуляцциии его в лоджике
end_if85485. вопрос _почему когда входные переменные:
LE_PR=1 PUSK=1 и L_KONC=1 выходная переменная MOTOR тоже равна 1 хотя условие and not L_KONC должно запрещать выходной переменной MOTOR true? Наверное я чегото с синтаксисом не так написал?

kondor3000
30.08.2025, 10:54
Влияет
OR PUSK_F_RIGT

Если написать например так
if (LE_PR AND PUSK OR PUSK_F_RIGT) AND NOT L_KONC AND NOT STOP then
то будет работать

дрю
30.08.2025, 11:01
спасибо, сейчас попробую. Только сейчас заметил что задал вопрос не втой ветке и продублировал его в ,,правильной,,

дрю
30.08.2025, 11:03
Да все верно, работает.БЛАГОДАРЮ

Dimensy
30.08.2025, 11:06
Добрый день! Подскажите пожалуста, вот на ST выражениеЖ
if LE_PR AND PUSK OR PUSK_F_RIGT AND NOT L_KONC AND NOT STOP then
MOTOR :=TRUE;
PUSK_F_RIGT:=true;

ELSE
MOTOR :=false;
PUSK_F_RIGT:=false;
А это скрин сииммуляцциии его в лоджике
end_if85485. вопрос _почему когда входные переменные:
LE_PR=1 PUSK=1 и L_KONC=1 выходная переменная MOTOR тоже равна 1 хотя условие and not L_KONC должно запрещать выходной переменной MOTOR true? Наверное я чегото с синтаксисом не так написал?

Операция and - это логическое умножение, or - сложение. И приоритеты у ниж такие же как в обычной математике. Т.е., в вашем случае получилось:
1 * 1 + 1 * 0 * 1 = 1 + 0 = 1. Так что выделяйте нужный порядок скобками

А еще, так, для справки, выражение not A and not B можно записать как not (A or B), ну и, также not A or not B = not (A and B)

Валенок
30.08.2025, 11:29
Я б ещё добавил, что если юзается чисто бинарное выражение (if else) да ещё и и с присвоением по сути результата if, то сам if не нужен, можно просто присвоить
Мотор := логическое выражение //выше норм сказали
А второй переменной (здесь) присвоить Мотор

В кодесис можно было бы сделать сквозное присвоение
Мотор := вторая переменная := логическое выражение

Dimensy
30.08.2025, 11:46
Я б ещё добавил, что если юзается чисто бинарное выражение (if else) да ещё и и с присвоением по сути результата if, то сам if не нужен, можно просто присвоить
Мотор := логическое выражение //выше норм сказали
А второй переменной (здесь) присвоить Мотор

В кодесис можно было бы сделать сквозное присвоение
Мотор := вторая переменная := логическое выражение

Перефразирую, специально для чайников:
выражение типа
if (A or B) and not C then
M := true;
B := true;
else
M := false;
B := false;
end_if

Можно записать как
M := (A or B) and not C;
B := M;

дрю
30.08.2025, 12:02
Теперь,наверное, в правильной ветке задам вопрос. Напмсал ФБ на ST_проверил его в симуляторе все работает ошибок нет85487
Перенес его на основной ,,холст,, лоджика_плдключил необходимые переменные_ включаю симуляцию и две из четырех переменных привязаных к физичиским входам не активны в симуляторе (на скрине их отметил красными стрелками)
85488. Если одну из этих ,, мертвых,, перееемеых ,,отвязываю,, от ФБ и соединяю с любым из не используемых выходов на ,,холсте,, она,,оживает,,.. Прикручиваю оббраатно - вхоод нова становиться не доступным . Может кто подскажет что с ними не так?
В качестве эксперимента отсоеденил от ФБ ,,мертвый,, *Пуск_П* и к нему прикрутил используемый в другом участке схемы физичиский вход *З_право* - вс нормально вход доступен в симуляции, значит дело не в написаном мною ФБ.85489

kondor3000
30.08.2025, 12:06
. Если одну из этих ,, мертвых,, перееемеых ,,отвязываю,, от ФБ и соединяю с любым из не используемых выходов на ,,холсте,, она,,оживает,,.. Прикручиваю оббраатно - вхоод нова становиться не доступным . Может кто подскажет что с ними не так?
В качестве эксперимента отсоеденил от ФБ ,,мертвый,, *Пуск_П* и к нему прикрутил используемый в другом участке схемы физичиский вход *З_право* - вс нормально вход доступен в симуляции, значит дело не в написаном мною ФБ.

Переменная Пуск-Стоп у вас не привязана к выходу Q1, перемычку забыли поставить.
Схема не закончена, ФБ не работает. Можно было Пуск-Стоп сделать энергонезависимой, тогда ФБ будет работать.

дрю
30.08.2025, 12:13
Точно, вот я шляпа Спасибо!

Traveller
01.09.2025, 08:48
Не претендую на оптимальность


Вариант 2:
85482


Ниже код TP с паузой, умножение на 1000 на входе РТ -задача в секундах (можно убрать),
разделить на 1000 на выходе ЕТ, не будет миллисекунд (можно добавить).
Благодарю коллеги!
Оказывается это так просто...😊

Traveller
01.09.2025, 14:19
Вот этот подошел (https://owen.ru/forum/showthread.php?t=26216&p=470729&viewfull=1#post470729), работает как надо, у Dimensy тоже работает как положено, но отсчет времени прямой, это не претензия, просто мне нужон обратный :), будет время постараюсь вникнуть и модифицирую под себя, ну типа булевое значение введу, типа 0 прямой счет, 1 обратный или наоборот, но все равно спасибо, буду начинать изучать ST...
А вот у kondor3000, сначала не понял, потом дошло, в общем нужно в ms, там в коде "PT:=PT*1000" тыщу заменил на единицу и стало как надо, или эту строку вообще можно убрать? :)
В общем всем спасибо! :)

kondor3000
01.09.2025, 14:31
А вот у kondor3000, сначала не понял, потом дошло, в общем нужно в ms, там в коде "PT:=PT*1000" тыщу заменил на единицу и стало как надо, или эту строку вообще можно убрать? :)
В общем всем спасибо! :)

Если нужны мс, то строку можно удалить или закоментировать //

Traveller
01.09.2025, 14:41
Если нужны мс, то строку можно удалить или закоментировать //Ок! Я так и понял... :)

Сергей0308
01.09.2025, 14:50
Мне кажется это бред сивой кобылы, в смысле, выводить на индикацию обратный отсчёт времени в миллисекундах, они будут мигать и всё!
Короче, максимум это уставка в миллисекундах, ещё куда не шло и то возможна большая погрешность равная времени цикла программы + время включения(выключения) выходного реле!

Traveller
01.09.2025, 15:06
Мне кажется это бред сивой кобылы, в смысле, выводить на индикацию обратный отсчёт времени в миллисекундах, они будут мигать и всё!
Короче, максимум это уставка в миллисекундах, ещё куда не шло и то возможна большая погрешность равная времени цикла программы + время включения(выключения) выходного реле!Да вы правы, но я хочу уточнить, эта информация лично для меня, т.е. я просто делаю стенд, для тестирования другого девайса, и мне хочется видеть на каком этапе идет процесс, а почему миллисекунды, ну все до банальности просто, мне лень там вешать на выходе доп. ФБ... А так да, если бы эта инфа несла бы какой нибудь смысл, то это было бы в секундах, а то и в минутах... :)
И потом я просто пытаюсь понять как писать на этом языке, не более того... :)

Arpgos01
02.09.2025, 22:55
Доброе время суток! Делаю освещение в дом. Скажите пожалуйста можно ли обьединить два ПРМ-220 по RS485 чтобы принажатие кнопки (МАСТЕР СВЕТ) срабатывали оба ПРМ.

Сергей0308
02.09.2025, 23:09
Доброе время суток! Делаю освещение в дом. Скажите пожалуйста можно ли обьединить два ПРМ-220 по RS485 чтобы принажатие кнопки (МАСТЕР СВЕТ) срабатывали оба ПРМ.

Проблема в том что у ПРМ нет RS485, в смысле, это модули расширения по внутренней шине, без ПР, что их поддерживает, они абсолютно бесполезны!
Просто любопытно, зачем Вы их накупили, если у вас нет ПР?
Короче, подключайте каждое ПРМ к своему ПР, а ПР можно объединить в сеть!

Cs-Cs
03.09.2025, 18:26
Доброе время суток! Делаю освещение в дом. Скажите пожалуйста можно ли обьединить два ПРМ-220 по RS485 чтобы принажатие кнопки (МАСТЕР СВЕТ) срабатывали оба ПРМ.
Не надо писать во всех темах сразу.
Уже ответили в той, в которой спрашивал.

Fusa
05.09.2025, 15:36
Добрый день! Раз тут вопросы новичков,такой момент, пытаюсь сделать в Logic проект чтоб по счётчику, например каждые 5 секунд аналоговый сингал поднимался на N значение (например 10)
понятно что соложение,константа 10 и отправляем в сетевую переменную, но как сделать чтоб таймер посылал сигнал на сложение?

Сергей0308
05.09.2025, 15:40
Добрый день! Раз тут вопросы новичков,такой момент, пытаюсь сделать в Logic проект чтоб по счётчику, например каждые 5 секунд аналоговый сингал поднимался на N значение (например 10)
понятно что соложение,константа 10 и отправляем в сетевую переменную, но как сделать чтоб таймер посылал сигнал на сложение?

Совсем недавно крайний раз этот вопрос поднимался, кстати в текущей теме:
https://owen.ru/forum/showthread.php?t=26216&p=470577&viewfull=1#post470577

85608

EFrol
05.09.2025, 16:23
Вариант 1:
85607

troynig
09.09.2025, 13:37
Добрый день.
Может кто-то сможет объяснить почему ПР103 не может получить данные с ТРМ200 и ТРМ202 по RS485?
Через OPC сервер подключаюсь без проблем.
85673
85674
Через ПР103 получаю нужные данные с 2ТРМ1.
Но к этим двум никак не могу подключиться.
Адреса и скорость передачи данных менял. Не помогает. Скорость ставил и 9600 и 115200 и 19200 и тоже толку нет.
Длина кабеля примерно 6-7 метров, перемычки в ПР103 с подтягивающими резисторами ставил и убирал не помогает.
Кабель подключал и к каждому отдельно ТРМ не видит их ПР103 никак.
В инструкции прочитал, что стоп бит надо ставить 2 на ТРМ200, но через OPC сервер подключается и с одним стопбитом, да и в ПР103 таких настроек для подключения.
Прошу помощи.

kondor3000
09.09.2025, 13:43
Добрый день.
Может кто-то сможет объяснить почему ПР103 не может получить данные с ТРМ200 и ТРМ202 по RS485?
Через OPC сервер подключаюсь без проблем.
В инструкции прочитал, что стоп бит надо ставить 2 на ТРМ200, но через OPC сервер подключается и с одним стопбитом, да и в ПР103 таких настроек для подключения.
Прошу помощи.

Ничего, что ОРС вы включили по протоколу Овен, а ПР103 его не умеет?

troynig
09.09.2025, 15:00
Да без разницы и по RTU подключал.
Вспомнил. Где то человек писал, что при изменении параметров сети в ТРМ надо его перезагружать по питанию.
Я перезагрузил, всё заработало. Но после отключения электричества, то их опять не видит ПР пока не зайдёшь в меню сетевых настроек и не изменишь что-то с последующей перезагрузкой.

EFrol
09.09.2025, 15:32
Да без разницы и по RTU подключал.

Тогда будьте добры. Скриншоты из OPC при работе по ModbusRTU тоже прикрепите.

troynig
09.09.2025, 16:56
Тогда будьте добры. Скриншоты из OPC при работе по ModbusRTU тоже прикрепите.

Такие скрины не делал.

kondor3000
09.09.2025, 17:10
Такие скрины не делал.

Похоже вам помощь не нужна, вы не хотите ничего делать, сделать скрины 5 мин надо.
А в ПР103, всего то шаблоны ТРМ200 и ТРМ 202 вставить, выставить слейв адреса и параметры сети настроить.

IVM
10.09.2025, 14:55
Добрый день

В ПР102 есть ST ?

Ollema
10.09.2025, 15:09
Добрый день

В ПР102 есть ST ?

Да, есть. Можно же Лоджик запустить и убедиться.

IVM
10.09.2025, 15:44
Да, есть. Можно же Лоджик запустить и убедиться.

А в каком ПР нет ST ?

EFrol
10.09.2025, 15:52
А в каком ПР нет ST ?

ПР110, ПР114

IVM
10.09.2025, 16:17
ПР110, ПР114

А в более свежих ПР ?

EFrol
10.09.2025, 16:20
А в более свежих ПР ?

В первых ПР100[M01]

troynig
13.09.2025, 10:08
Похоже вам помощь не нужна, вы не хотите ничего делать, сделать скрины 5 мин надо.
А в ПР103, всего то шаблоны ТРМ200 и ТРМ 202 вставить, выставить слейв адреса и параметры сети настроить.

Я не стал делать скрины потому что пока работает чтение параметров, но электричество больше не отключал в шкафу.
Частично разобрался со многими своими вопросами.
Остались некоторые, на которые не могу сам найти ответ.
Через SCADA SimpLight, записываю в сетевые (slave) регистры переменные для установки параметров требуемой температуры и уставок (в ПР103).
Переменные записываются в эти регистры из них пишу значения в регистры самого 2ТРМ1 (512, 514 и 516) соответственно.
Почему у меня в переменных для записи этих регистров данные есть, а ниже я сразу читаю эти регистры из 2ТРМ1 и у меня значения по нулям?
Нельзя писать и читать одновременно? Или они не сохраняются в регистрах и происходит постоянная перезапись на нули?
Причём иногда, опять же, данные появляются, но редко и не понятно по какому принципу. После изменении программы и записи её в прибор иногда появляются данные. Физически к 2ТРМ1 нет доступа чтобы посмотреть меняется на экране значение уставки или нет, но при перезагрузки ПР103 во всех этих регистрах опять
нули, что подсказывает мне, что данные в 2ТРМ1 не записываются.
под цифрой 1 это данные из SCADA SimpLight записываемые в регистры (512, 514 и 516) соответственно.
под цифрой 2 это данные которые я считываю с 2ТРМ1 с регистров (512, 514 и 516) чтобы посмотреть, что записалось в прибор.
85763
Вот, после очередной записи программы в прибор появилась одна из строк чтения значения... не могу понять что такое.
85764

kondor3000
13.09.2025, 11:26
Физически доступа к 2ТРМ1У нет чтобы поменять параметры и считать заново. Но нули я туда точно не писал.
Параметры чтения:
85730

Адрес 4104, у вас Float, а должен быть целым UINT16
STATUS* Статус прибора (битовая маска) 1008 (4104 ) UINT16
https://docs.owen.ru/product/2trm1/doc/rukovodstvo-po-ekspluatacii-2trm1/spisok-registrov-modbus

RfSS
14.09.2025, 08:29
Здравствуйте. Может кто делал блок TP c ET. Поделитесь. Через поиск не нащел. TON и TOF есть, а 85736 этот не подходит.

Dimensy
14.09.2025, 09:06
Здравствуйте. Может кто делал блок TP c ET. Поделитесь. Через поиск не нащел. TON и TOF есть, а 85736 этот не подходит.

вот тут и дальше https://owen.ru/forum/showthread.php?t=26216&p=470728&viewfull=1#post470728

RfSS
14.09.2025, 09:13
вот тут и дальше https://owen.ru/forum/showthread.php?t=26216&p=470728&viewfull=1#post470728

Сердечно благодарю.

dJuchok
17.09.2025, 20:08
Друзья, поделитесь ссылочками на обсуждение вопросов Расходомер-счетчик Взлет ТЭР нужно считывать с него показания (подключен через токовый вход 4-20ма) в среде Овен лоджик к ПР200, есть ли готовый блочек?

МихаилГл
17.09.2025, 20:20
Непонятна фраза: подключен через токовый вход 4-20ма... Хотите с аналогового входа данные получать и как то обрабатывать, или через модбас протокол?

Сергей0308
17.09.2025, 21:27
Друзья, поделитесь ссылочками на обсуждение вопросов Расходомер-счетчик Взлет ТЭР нужно считывать с него показания (подключен через токовый вход 4-20ма) в среде Овен лоджик к ПР200, есть ли готовый блочек?

Мне кажется Вам ничего не надо дополнительно чтобы получать показания расходомера в ПР200 через токовый выход-вход, в смысле, диапазон можно настроить(задать) в настройках аналогового(токового) входа!

dJuchok
17.09.2025, 22:31
Непонятна фраза: подключен через токовый вход 4-20ма... Хотите с аналогового входа данные получать и как то обрабатывать, или через модбас протокол?

да данные со счетчика л\мин получаю с токового выхода Расходомера-счетчика (Модбас отличный вариант, но пока откладывается на дальнейшее изучение)


Мне кажется Вам ничего не надо дополнительно чтобы получать показания расходомера в ПР200 через токовый выход-вход, в смысле, диапазон можно настроить(задать) в настройках аналогового(токового) входа!

Да верно, показания в реальном времени я получаю, задача в том что теперь через этот расходомер будет работать рецептура. Нужно отмерить определенное кол-во литров и запустить тех процесс.
Вот и спрашиваю у форумчан проекты для подсчета жидкости через расходомер для управлением тех процессом

Сергей0308
17.09.2025, 23:06
да данные со счетчика л\мин получаю с токового выхода Расходомера-счетчика (Модбас отличный вариант, но пока откладывается на дальнейшее изучение)



Да верно, показания в реальном времени я получаю, задача в том что теперь через этот расходомер будет работать рецептура. Нужно отмерить определенное кол-во литров и запустить тех процесс.
Вот и спрашиваю у форумчан проекты для подсчета жидкости через расходомер для управлением тех процессом

Обычно у расходомера бывает импульсный выход, каждый импульс на этом выходе имеет определённый вес в смысле 10, 100, 1000 литров, короче, объём считать удобнее пользуясь этим выходом, в смысле, достаточно подсчитать количество импульсов и умножить на весовой коэффициент.
Или брать данные об объёме из самого расходомера, например по сети!

Maksimys13
18.09.2025, 08:49
Стыдно писать, вожусь с аналогичным проектом, только у меня будет два расходомера, с одного надо снимать плотность и кг сколько через него прошло, со второго будет как резерв и постоянный счётчик обьёма,вот сейчас сижу изучаю как правильно это сделать и каким образом это всё считывать, визуализацию на панель нарисовал, сижу теперь программой занимаюсь, может что подскажете в этом направлении куда смотреть что почитать? Пытаюсь всё это реализовать на пр205.

МихаилГл
18.09.2025, 08:59
Это неправильный подход, если это для каких то дозировок. А если собирать за смену или сутки, то в принципе можно. Но погрешности никто не отменял. Много факторов этого. Время... Точность аналогового выхода... Точность времени дискретизации. Проще по модбас это сделать.

PS Как уже писали выше, используйте дискретный выход прибора, если такой имеется.

kondor3000
18.09.2025, 08:59
Стыдно писать, вожусь с аналогичным проектом, только у меня будет два расходомера, с одного надо снимать плотность и кг сколько через него прошло, со второго будет как резерв и постоянный счётчик обьёма,вот сейчас сижу изучаю как правильно это сделать и каким образом это всё считывать, визуализацию на панель нарисовал, сижу теперь программой занимаюсь, может что подскажете в этом направлении куда смотреть что почитать? Пытаюсь всё это реализовать на пр205.

Темы по расходу в ОЛ тут https://owen.ru/forum/showthread.php?t=27102&p=471924&viewfull=1#post471924
А в поиске ещё больше.

Byter
22.09.2025, 06:27
Здраствуйте, на студенческой практике дали задание подсоединить датчик температуры ТСПr Pt100 к пр200, как привести это все в рабочее состояние в цифровом формате на схеме в овен лоджик?

МихаилГл
22.09.2025, 06:49
Здраствуйте, на студенческой практике дали задание подсоединить датчик температуры ТСПr Pt100 к пр200, как привести это все в рабочее состояние в цифровом формате на схеме в овен лоджик?

Зачем один вопрос в куче тем писать.

Во-первых, вы неправильно задаете вопрос. Непонятно, или вы датчик не можете к пр подключить, или саму пр настроить. Во-вторых, что это за "в цифровом формате на схеме"... Что за цифровой формат...?

Cs-Cs
22.09.2025, 08:32
дали задание подсоединить датчик температуры ТСПr Pt100 к пр200Правильный ответ такой:
а) "Такое невозможно именно к ПРке, так как она поддерживает датчики на 1000 Ом"
б) "Такое возможно только при использовании дополнительного модуля расширения ПРМ с трёхпроводными аналоговыми входами"
:)

capzap
22.09.2025, 08:59
а) "Такое невозможно именно к ПРке, так как она поддерживает датчики на 1000 Ом"

это откуда такая информация, значит в документации (https://docs.owen.ru/product/pr200/80/105614#topic-105618) неверно диапазон указан?

Cs-Cs
22.09.2025, 09:50
это откуда такая информация, значит в документации (https://docs.owen.ru/product/pr200/80/105614#topic-105618) неверно диапазон указан?Куда смотреть? Где 3000 написано?
Поясняю: вход до 3 кОм. Но ПРка штатно по двухпроводной схеме более-менее корректно работает с датчиками температуры на 1000 Ом.
На 50 и 100 Ом - врёт адски. Для них нужно использовать ПРМку и трёхпроводных схему.

capzap
22.09.2025, 09:56
Поясняю: вход до 3 кОм. Но ПРка штатно по двухпроводной схеме более-менее корректно работает с датчиками температуры на 1000 Ом.
На 50 и 100 Ом - врёт адски. Для них нужно использовать ПРМку и трёхпроводных схему.

для студенческой лабораторной работы это какое принципиальное значение имеет? Дать ему совет идти к преподавателю и сказать что это невозможно это верх некомпетентности, тем более вопрос как нарисовать схему в ОЛ. Ну есть в ВУЗе такие приборы и датчики, ими и пользуются, а в ОЛ что то нарисовать нужно наглядное пособие и не глупые советы. Вот например https://rutube.ru/video/1912dcc3959145f531e638e3e5fa23b9/ и не важно с чем он там будет работать

МихаилГл
22.09.2025, 10:02
Вот это в инструкции еще интересно:

Настройка режима работы входа
Предупреждение
Чтобы избежать порчи прибора, любые операции по разборке прибора должен выполнять обученный специалист.
Примечание
По умолчанию все универсальные входы прибора сконфигурированы для работы с сигналами 4…20 мА.
Ну, например, преподаватель даст другой тип датчика (хотя если это основы программирования, то может сказать "пофиг на погрешность, сделай чтобы чтото показывало +/- 10 градусов... "). Придется разбирать прибор...

capzap
22.09.2025, 10:55
Вот это в инструкции еще интересно:

Ну, например, преподаватель даст другой тип датчика (хотя если это основы программирования, то может сказать "пофиг на погрешность, сделай чтобы чтото показывало +/- 10 градусов... "). Придется разбирать прибор...

не приходит в голову что может использоваться готовый стенд, вопрос был задан об ОЛ а не как собрать схему физически.
Про какую погрешность вы все упоминаете, если что то статическое то это решается подбором наклона и смещения, если это увеличенный шум, то решается подбором методов и параметров фильтарации. От этого ПР200 не станет средством измерения, но такая комбинация как раз подходит для обучения

Cs-Cs
22.09.2025, 11:40
capzap Конечно! Если чел учится на инженера АСУТП, а не на раба, который тупо выполняет, что скажут.

МихаилГл
22.09.2025, 11:41
Врят ли готовый стенд, скорее конструктор на столе. Если есть методичка, то там тогда бы было указано куда что подключить, а из этого следовало бы хотябы указание от тс к какому именно входу подключен датчик. Не думаю, что в лаборатории 5 приборов, каждый для одного типа входов... А если надо изучить все унифицированные сигналы, то...

Ну и как я говорил, вопрос пославлен некорректно. Надо было сразу написать, как это запрограммировать.

МихаилГл
22.09.2025, 11:46
capzap Конечно! Если чел учится на инженера АСУТП, а не на раба, который тупо выполняет, что скажут.

Если смотреть реалии, то сейчас на инженерных должностях сплошь одни менеджеры. Из замечаний к реализуемым проектам ни одного технического вопроса, только: цвет не тот, шрифт покоупнее, это не надо на экране. Вопросы, которые решаются за 10 минут. А как доходит до технологических нюансах, то ничего не знают...

Cs-Cs
22.09.2025, 13:26
МихаилГл Так вот мы ж и колотим таких на форуме, чтобы знали :)

Alex87
10.10.2025, 09:11
Здравствуйте. Правильно ли я понимаю, что целочисленные переменные нельзя передавать битовой маской в Owen Logic

kondor3000
10.10.2025, 09:29
Здравствуйте. Правильно ли я понимаю, что целочисленные переменные нельзя передавать битовой маской в Owen Logic

Всё перевернули,
собранная из бит Маска - это и есть целочисленное. Используется для передачи до 16 бит через один регистр.
Биты можно упаковать в Маску, передать и распаковать обратно.

Dimensy
10.10.2025, 10:15
Здравствуйте. Правильно ли я понимаю, что целочисленные переменные нельзя передавать битовой маской в Owen Logic

Если вы имеете ввиду работу с битами целочисленной переменной, то можно

Alex87
10.10.2025, 10:55
В скаде ограничено число сигналов, дискретные сигналы запаковываю в целочисленную переменную, в скаде распаковываю, есть ли возможность в Owen Logic запаковывать целочисленные переменные?

МихаилГл
10.10.2025, 11:22
Функция putbit или setbit вроде есть

PS Ах аналоговые...

EFrol
10.10.2025, 11:23
В скаде ограничено число сигналов, дискретные сигналы запаковываю в целочисленную переменную, в скаде распаковываю, есть ли возможность в Owen Logic запаковывать целочисленные переменные?

Есть, если Вы точно знаете максимальное значение, которое может хранить переменная в Вашем проекте.

Dimensy
10.10.2025, 13:03
В скаде ограничено число сигналов, дискретные сигналы запаковываю в целочисленную переменную, в скаде распаковываю, есть ли возможность в Owen Logic запаковывать целочисленные переменные?
Вот, есть макрос в Менеджере компонентов
86121

Можно на ST написать


function bitIN: udint; //имя функции и тип данных выхода
var_input //объявление входных переменных
b0 : bool; //входная переменная с типом данных bool
b1 : bool;
b2 : bool;
b3 : bool;
b4 : bool;
b5 : bool;
b6 : bool;
b7 : bool;
b8 : bool;
b9 : bool;
b10 : bool;
b11 : bool;
b12 : bool;
b13 : bool;
b14 : bool;
b15 : bool;
end_var

bitIN.0 := b0;
bitIN.1 := b1;
bitIN.2 := b2;
bitIN.3 := b3;
bitIN.4 := b4;
bitIN.5 := b5;
bitIN.6 := b6;
bitIN.7 := b7;
bitIN.8 := b8;
bitIN.9 := b9;
bitIN.10 := b10;
bitIN.11 := b11;
bitIN.12 := b12;
bitIN.13 := b13;
bitIN.14 := b14;
bitIN.15 := b15;

end_function

Alex87
10.10.2025, 13:03
Спасибо. Он для дискретных входов, я дискретные входы им и запаковываю. Вопрос в том, что можно ли также запаковывать аналоговые входы

МихаилГл
10.10.2025, 13:23
Спасибо. Он для дискретных входов, я дискретные входы им и запаковываю. Вопрос в том, что можно ли также запаковывать аналоговые входы

Вы похоже не понимаете как выглядит аналоговый сигнал...

Dimensy
10.10.2025, 13:29
Спасибо. Он для дискретных входов, я дискретные входы им и запаковываю. Вопрос в том, что можно ли также запаковывать аналоговые входы

Если значение аналогового входа, переведенное в целое число не превышает 255, то вы можете в один регистр запихать два значения
Также можно запаковать статусы исполнительных устройств. Например, статус "0 - выключен, 1 - в работе, 2 - авария" занимает два бита. Таких состояний можно в регистре уместить 8 штук

МихаилГл
10.10.2025, 13:35
Если значение аналогового входа, переведенное в целое число не превышает 255, то вы можете в один регистр запихать два значения

Точность конечно так себе будет. Если от 0 до 100 сигнал передавать, то дискретность 0.5 максимум...

Alex87
10.10.2025, 13:41
Вы похоже не понимаете как выглядит аналоговый сигнал...

Объясните, как выглядит

Alex87
10.10.2025, 13:41
Если значение аналогового входа, переведенное в целое число не превышает 255, то вы можете в один регистр запихать два значения
Также можно запаковать статусы исполнительных устройств. Например, статус "0 - выключен, 1 - в работе, 2 - авария" занимает два бита. Таких состояний можно в регистре уместить 8 штук

Спасибо большое, попробую

Alex87
10.10.2025, 14:26
Если значение аналогового входа, переведенное в целое число не превышает 255, то вы можете в один регистр запихать два значения
Также можно запаковать статусы исполнительных устройств. Например, статус "0 - выключен, 1 - в работе, 2 - авария" занимает два бита. Таких состояний можно в регистре уместить 8 штук

Спасибо. Если не трудно, приведите, пожалуйста, небольшой пример, как в один регистр запихать два значения

Dimensy
10.10.2025, 14:57
Спасибо. Если не трудно, приведите, пожалуйста, небольшой пример, как в один регистр запихать два значения

Небольшой пример (защиты от переполнения нет)

Alex87
10.10.2025, 16:04
Небольшой пример (защиты от переполнения нет)

Спасибо большое

Alex87
07.11.2025, 10:37
Небольшой пример (защиты от переполнения нет)

Здравствуйте. В вашем примере с помощью макроса 2x8i-16il два аналоговых целых числа запаковываются в одно, одно число сдвигается влево на 8 бит. Создал свой макрос, хочу распаковать одно целое число на два, сдвигаю запакованное число вправо на 8 бит, одно число распаковывается правильно, второе число в моем макросе не совсем правильно. Подскажите, пожалуйста, как правильно распаковать второе число8662686625

Dimensy
07.11.2025, 10:47
Здравствуйте. В вашем примере с помощью макроса 2x8i-16il два аналоговых целых числа запаковываются в одно, одно число сдвигается влево на 8 бит. Создал свой макрос, хочу распаковать одно целое число на два, сдвигаю запакованное число вправо на 8 бит, одно число распаковывается правильно, второе число в моем макросе не совсем правильно. Подскажите, пожалуйста, как правильно распаковать второе число8662686625

Вот так надо
86627

kondor3000
07.11.2025, 13:03
Здравствуйте. В вашем примере с помощью макроса 2x8i-16il два аналоговых целых числа запаковываются в одно, одно число сдвигается влево на 8 бит. Создал свой макрос, хочу распаковать одно целое число на два, сдвигаю запакованное число вправо на 8 бит, одно число распаковывается правильно, второе число в моем макросе не совсем правильно. Подскажите, пожалуйста, как правильно распаковать второе число

2 варианта упаковки и извлечения байт из регистра 86632

Alex87
07.11.2025, 13:31
Спасибо большое

Сергей0308
07.11.2025, 13:43
Могу добавить, как я байты вертел:

86633

86634

В смысле, эта функция и в одном слове(регистре) байты переставит местами!

Вообще то внутренние целочисленные переменные 32 битные, я так их на байты шинковал:

86649

86650

86653

В смысле, если ограничение на число сигналов(переменных) логично передавать 32 битную целочисленную переменную, она будет занимать два соседних регистра, любая скада это поддерживает, это позволит в два раза больше информации передать, в смысле, байтовых переменных.

Кроме того я ранее предлагал как одним регистром передавать до 128 16-ти битных целочисленных переменных в смысле, каждый регистр разбивается на два байта, в одном хранятся данные в другом служебная информация, это чтобы потом правильно байты данных двух соседних регистров собрать в одну 16-ти битную целочисленную переменную, вам не надо ничего собирать, просто будет идентификация байтовой переменной, короче, всего может получится при ограничении в 32 переменные в скаде передавать до 16384 байтовых целочисленных переменных, если Вы сильно никуда не спешите!

И, у Вас необычная проблема, в смысле, обычно ПР оказывается узким местом, но это интересно, что Вы смогли создать необычную проблему!

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

86654

86655

Ради правды добавлю, что в принципе значения могут быть в некотором диапазоне, например для второго байта в диапазоне 65280 - 65535, для третьего байта 16711680 - 16777215, в смысле, это ничего не изменит, "просочившиеся" значения из младших байтов всё равно сдвиг вправо "уничтожит"!

pt100
10.11.2025, 17:25
Добрый День, коллеги.
подскажите пожалуйста как лучше реализовать схему регулятора.
Нужно поддерживать температуру продукта.
с помощью регулирующего клапана.
Но необходимо еще учитывать температуру продукта до входа в нагреватель.

Сергей0308
10.11.2025, 19:24
Добрый День, коллеги.
подскажите пожалуйста как лучше реализовать схему регулятора.
Нужно поддерживать температуру продукта.
с помощью регулирующего клапана.
Но необходимо еще учитывать температуру продукта до входа в нагреватель.

Если у вас уже всё приобретено, то уже поздно думать, если нет, я бы предпочёл электропривод регулирующего клапана с управлением 4 - 20 мА!

Сергей0308
10.11.2025, 20:46
Если он "учитывает" температуру продукта на входе, наверно ничего не помешает "учитывать" температуру продукта на выходе, тогда остаётся выбрать ПИД-регулятор с подходящим электроприводу выходом и всё, в смысле, поддерживай нужную температуру продукта!
Непонятно в чём здесь проблема?

pt100
11.11.2025, 10:48
коллеги извиняюсь за не полные и непонятные данные.
постараюсь пояснить;
продукт проходя через нагреватель , нагревается соответственно.
нагрев контролируется термометром при выходе.
Но температура продукта, входящая может быть не стабильна.
аппарат греется паром, проходящий через клапан с моторным приводом, управление по сигналу.
Чего хотим добиться - стабилизировать температуру на выходе.
Поэтому и предполагаем что регулятор ПИ или ПИД должен как - то брать во внимание отклонения на выходе и на входе , возможно сумму.86694

Сергей0308
11.11.2025, 11:07
коллеги извиняюсь за не полные и непонятные данные.
постараюсь пояснить;
продукт проходя через нагреватель , нагревается соответственно.
нагрев контролируется термометром при выходе.
Но температура продукта, входящая может быть не стабильна.
аппарат греется паром, проходящий через клапан с моторным приводом, управление по сигналу.
Чего хотим добиться - стабилизировать температуру на выходе.
Поэтому и предполагаем что регулятор ПИ или ПИД должен как - то брать во внимание отклонения на выходе и на входе , возможно сумму.86694

Тогда регулятор будет перегревать, в смысле, температура на выходе поднимется при уменьшении температуры на входе!
Вроде всё понятно написали, чего хотите, а действия неадекватные, в смысле, не надо ничего там предугадывать, пусть ПИД-регулятор штатно работает, наверно придётся его правильно настроить, чтобы успевал вовремя среагировать на возмущение, всё! Это мне так кажется!

capzap
11.11.2025, 11:18
ПИД должен как-то брать во внимание отклонения на выходе и на входе , возможно сумму.
точно не сумму и не среднее двух температур, хотя бы Твх * 0.1 + Твых * 0.9
а так нужно вычислять ожидаемое отклонение выходной температуры из‑за изменения входной, эту разность умноженную на расчетный коэффициент вычитать из уставки, тогда может получиться
и третий вариант двухкаскадное управление

pt100
11.11.2025, 12:11
А двух каскадное это как?

pt100
11.11.2025, 12:21
Тогда регулятор будет перегревать, в смысле, температура на выходе поднимется при уменьшении температуры на входе!
Вроде всё понятно написали, чего хотите, а действия неадекватные, в смысле, не надо ничего там предугадывать, пусть ПИД-регулятор штатно работает, наверно придётся его правильно настроить, чтобы успевал вовремя среагировать на возмущение, всё! Это мне так кажется!

возмущение по температуре на выходе должно быть минимальным, я буду конечно пробовать разные варианты, (может быть стабилизировать давление пара, к примеру) но при регулировке процесса по выходу в любом случае будут запоздалые реакции. дело в том что продукт через змеевик идет минут 5-8

EFrol
11.11.2025, 12:29
У Вас есть возможность измерять температуру пара на входе и конденсата на выходе, а также расход конденсата?
Если да, то измеряйте расход продукта и вычисляйте баланс по калориям. Думаю ПР200 справится.
В принципе, если расход продукта - константа. Давление и температура пара на входе - константа.
Известна формула расхода конденсата f(x), где x - положение штока регулятора, то сможете удерживать строгую разницу между выходящей и входящей температурой обычным П-регулятором.

capzap
11.11.2025, 13:34
А двух каскадное это как?

https://habr.com/ru/articles/707688/ последние абзацы

ЗЫ https://project2425235.tilda.ws/glava9

pt100
11.11.2025, 14:42
спасибо за ссылки, почитаю

pt100
11.11.2025, 14:48
У Вас есть возможность измерять температуру пара на входе и конденсата на выходе, а также расход конденсата?
Если да, то измеряйте расход продукта и вычисляйте баланс по калориям. Думаю ПР200 справится.
В принципе, если расход продукта - константа. Давление и температура пара на входе - константа.
Известна формула расхода конденсата f(x), где x - положение штока регулятора, то сможете удерживать строгую разницу между выходящей и входящей температурой обычным П-регулятором.

нет температура конденсата а тем более объем бюджетом не предусмотрено. Давление пара, да мерим. Температура, ну пар насыщеный, в принципе по таблицам можно узнать.

EFrol
11.11.2025, 15:21
нет температура конденсата а тем более объем бюджетом не предусмотрено. Давление пара, да мерим. Температура, ну пар насыщеный, в принципе по таблицам можно узнать.

Тогда ставьте https://owen.ru/product/trm12.
Подберите под Ваш регулятор с нужными типами выходов и всё!

Радригез
11.11.2025, 16:22
Здравствуйте,как в овен лоджик реализовать работу оптического датчика,который обнаружив препятствие,проходит его и затем запускает исполнительный механизм.Подскажите,пожалуйста.

МихаилГл
11.11.2025, 16:31
Здравствуйте,как в овен лоджик реализовать работу оптического датчика,который обнаружив препятствие,проходит его и затем запускает исполнительный механизм.Подскажите,пожалуйста.

Обычная логика для датчика дискретного типа. Хоть оптического, хоть ультразвукового, хоть контактного...

Сергей0308
11.11.2025, 16:35
Очень сложно Вас понять, Вы точно человек? Короче, насколько смог понять, Вам нужен детектор заднего фронта, по его импульсу запускается механизм!
А, работу оптического датчика в ОЛ не настроишь, это независимый прибор, он сам по себе работает, без ОЛ.

Dimensy
11.11.2025, 16:36
Здравствуйте,как в овен лоджик реализовать работу оптического датчика,который обнаружив препятствие,проходит его и затем запускает исполнительный механизм.Подскажите,пожалуйста.

Если датчик определяет препятствие через отражение луча, то с помощью детектора заднего фронта импульса FTRIG
Если датчик определяет препятствие по прерыванию луча, то с помощью детектора переднего фронта импульса RTRIG

Радригез
12.11.2025, 10:03
У меня проект блокиратор колеса,цилиндр с оптическим датчиком выдвигается до колеса,обнаруживает его,проезжает,затем выдвигается цилиндр поменьше,который стопорит колесо.

EFrol
12.11.2025, 10:21
Т.е. если колесо не обнаружено, то датчик возвращается назад и всё?
А что запускает движение самого датчика?

Радригез
12.11.2025, 12:55
Движение цилиндров осуществляется гидравликой,если не находит,то цикл повторится

EFrol
12.11.2025, 13:43
Замечательно! Значит один цилиндр елозит туда-сюда со сверхзвуковой скоростью - типа ищет препятствие (колесо)?

Радригез
12.11.2025, 13:49
там нет таких скоростей:D

EFrol
12.11.2025, 14:30
Т.е. он медленно и неохотно движется в сторону колеса. У него куча времени до того момента, как ему будет дана команда "назад". Ведь требуется какое-то время, чтобы достигнуть конечной точки своего движения или у него есть свой концевик?

МихаилГл
12.11.2025, 14:42
там нет таких скоростей:D

Вам тут намекают, что нужно более точное ТЗ, хоть эскиз набросайте...
А то куда движется цилиндр, как, поперёк колеса или вдоль на ребро... Вопросов всё больше. Никто не может понять как именно и где там всё расположено, а каких положениях встаёт и т.д. и т.п.

Радригез
12.11.2025, 14:52
да,есть концевики,загуглите видео в ютубе "комбилок"

Радригез
12.11.2025, 14:57
86708 примерно так,слева кнопки и концевики,справа ввыхода на управление цилиндрами и сигнализацию

EFrol
12.11.2025, 16:05
Забыл. Что делает макрос "кнопка"?
А кнопка "Сброс" для чего? Датчик давления сигналит, что колесо подпёрто - надо тушить насос?

ЦМС - движение основного цилиндра в исходную, КЦМС - концевик в исходной
ЦМВ - движение основного цилиндра вперёд, КЦМВ - конечный концевик
ЦБС - втягивание дополнительно цилиндра, КЦБС - концевик полного втягивания
ЦБВ - выдвижение дополнительного цилиндра, КЦБВ - концевик полного выдвижения
Заблокировать - кнопка?
Разблокировать - кнопка?
ДО - датчик оптический?
КМ - гидронасос?

Вы с ST дружите?

Радригез
13.11.2025, 07:19
нет,не дружу пока,поэтому сюда обратился

EFrol
13.11.2025, 07:48
Я так понимаю, что оптический датчик находится чуть правее блокирующего цилиндра и при блокировке колеса оптический датчик снова срабатывает?

Радригез
13.11.2025, 10:20
на конце большого цилиндра,на торце малого цилиндра-упора

Newcomer
13.11.2025, 21:04
Добрый день

Не пойму куда в OL делись внешние библиотеки. Как до них добраться ?

Newcomer
13.11.2025, 21:19
"Компоненты" в меню "Файл"

В ПР205 строка "Компоненты" не активна. У кого есть FB ШИМ-регулятор для ПР205 ?

FPavel
13.11.2025, 21:29
Она активна только из экрана с главным холстом. А из экрана с макросом - нет.

Что такое ШИМ для ПР205? Это новые ФБ для встроенного ПИД?
Могу прикрепить их.


Только учтите - в описании ещё не исправлена ошибка: Хр - это не полоса пропорциональности, а коэффициент пропорциональности, т.е. на него умножается содержимое скобки.

Newcomer
13.11.2025, 21:42
Она активна только из экрана с главным холстом. А из экрана с макросом - нет.

Что такое ШИМ для ПР205? Это новые ФБ для встроенного ПИД?
Могу прикрепить их.


Только учтите - в описании ещё не исправлена ошибка: Хр - это не полоса пропорциональности, а коэффициент пропорциональности, т.е. на него умножается содержимое скобки.

Большое спасибо.

Радригез
14.11.2025, 07:39
Здраствуйте,как на холсте ОЛ взаимозаблокировать два дискретных выхода?

capzap
14.11.2025, 07:40
Здраствуйте,как на холсте ОЛ взаимозаблокировать два дискретных выхода?

у одного AND у другого NOT AND

МихаилГл
14.11.2025, 07:43
Здраствуйте,как на холсте ОЛ взаимозаблокировать два дискретных выхода?

Точнее сформулируйте. Что значит "взаимозаблокировать"... Если есть 1ый, второй не включать? И наоборот?

PS Тогда XOR и AND для обоих

PS2
86726

Newcomer
16.11.2025, 15:31
Добрый день

Не пойму что не нравится компилятору

capzap
16.11.2025, 15:40
End_if-ы есть а где такая же концовка для кейса?

Newcomer
16.11.2025, 15:45
End_if-ы есть а где такая же концовка для кейса?

Слона-то я и не приметил. Спасибо.

Радригез
17.11.2025, 15:55
Спасибо большое,вы очень помогли

capzap
19.11.2025, 13:52
Здравствуйте,в ОЛ надо запрограммировать открытие/закрытие 7 клапанов,пока клапан открывается в течении 15 секунд мигает индикация и после открытия(по истечении 15 секунд) загорается зеленая индикация.Подскажите,пожалуйста,как это можно реализовать,именно мигание и постоянное горение,до отключения?

ну сейчас же возможности нейросетей доступны каждому, зайдите на alice.yandex.ru и заддайте свой вопрос с небольшой приставкой
как эксперт в промышленном программировании на языке ST реши задачу: Здравствуйте,в ОЛ надо запрограммировать открытие/закрытие 7 клапанов,пока клапан открывается в течении 15 секунд мигает индикация и после открытия(по истечении 15 секунд) загорается зеленая индикация.Подскажите,пожалуйста,как это можно реализовать,именно мигание и постоянное горение,до отключения?Во первых пока смотрите на полученный код, наберетесь навыков, когда адаптируете код в ОЛ, еще приобретете умений и потом уж если не получится, обратитесь на форум, вот мол код не работает и другим станет интересно чтож там за код такой косячный. А просто выкатить: решите за меня задачу, это не красиво

Dimensy
19.11.2025, 13:59
Здравствуйте,в ОЛ надо запрограммировать открытие/закрытие 7 клапанов,пока клапан открывается в течении 15 секунд мигает индикация и после открытия(по истечении 15 секунд) загорается зеленая индикация.Подскажите,пожалуйста,как это можно реализовать,именно мигание и постоянное горение,до отключения?

BLINK мигает когда на его входе логическая единица.
TON с задержкой включает выход.
Если их объединить через ИЛИ, то пока TON отсчитывает задержку, выход будет моргать, когда TON сработает - гореть постоянно

Сергей0308
19.11.2025, 16:46
Здравствуйте,в ОЛ надо запрограммировать открытие/закрытие 7 клапанов,пока клапан открывается в течении 15 секунд мигает индикация и после открытия(по истечении 15 секунд) загорается зеленая индикация.Подскажите,пожалуйста,как это можно реализовать,именно мигание и постоянное горение,до отключения?

Да уж, короче, вот здесь делали проект контроля танков:
https://owen.ru/forum/showthread.php?t=26216&p=412743&viewfull=1#post412743

При их наполнении включается звуковая и световая сигнализация.
При первом нажатии на кнопку выключается звуковая сигнализация, световая продолжает работать, в смысле, лампы соответствующие танку(танкам) мигают.

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

Так сделано, чтобы не пропустить все вновь заполненные танки!

Для вашей нехитрой задачи можно посмотреть как реализовано мигание и затем постоянное свечение лампы, что Вы планировали сделать!

Надеюсь что Вам хватит ума!

86797

86796

И, совсем забыл, я бы предпочёл двух(трёх) цветные лампы, типа таких:
https://meyertec.owen.ru/product/mt22_wd24#tech

86798

VladimirSamara
21.11.2025, 17:56
Добрый вечер! Начал разбираться с реле пр103-24.1610.06.1.0 с двумя прм 24.2 . Пока получается при помощи генератора BLINK включать и выключать реле на самом пр и на модуле прм, хотел перейти к следующему шагу : по астрономическому интервальному таймеру CLOCK управлять реле ( для задания режима день/ночь на электрокотле в котельной в своем доме) , но вот ПРОБЛЕМА : CLOCK должен быть в функциональных блоках в подразделе "таймеры", об этом говорит справка и в обучающих видео тоже, но у меня в таймерах только TP, TON, TOF, а CLOCK и WCLOCK отсутствуют. Удалось загрузить в макросы проекта из менеджера компонентов CLOCK_WEEK, но он довольно сложный , хотелось бы поставить CLOCK. Думал , может нужно обновиться : обновил версию овенлоджик и версию прошивки ПР , но CLOCK так и не появился. Подскажите, где может быть эта настройка для появления CLOCK? PS: у меня ПР определяется, программа в него загружается, в режиме симуляции работает, при включении переключателя "Работа" ПР работает физически , реле переключаются. Всем добра!

kondor3000
21.11.2025, 18:04
Добрый вечер! Начал разбираться с реле пр103-24.1610.06.1.0 с двумя прм 24.2 . Пока получается при помощи генератора BLINK включать и выключать реле на самом пр и на модуле прм, хотел перейти к следующему шагу : по астрономическому интервальному таймеру CLOCK управлять реле ( для задания режима день/ночь на электрокотле в котельной в своем доме) , но вот ПРОБЛЕМА : CLOCK должен быть в функциональных блоках в подразделе "таймеры", об этом говорит справка и в обучающих видео тоже, но у меня в таймерах только TP, TON, TOF, а CLOCK и WCLOCK отсутствуют. Удалось загрузить в макросы проекта из менеджера компонентов CLOCK_WEEK, но он довольно сложный , хотелось бы поставить CLOCK. Думал , может нужно обновиться : обновил версию овенлоджик и версию прошивки ПР , но CLOCK так и не появился. Подскажите, где может быть эта настройка для появления CLOCK? PS: у меня ПР определяется, программа в него загружается, в режиме симуляции работает, при включении переключателя "Работа" ПР работает физически , реле переключаются. Всем добра!

В новых ПР от него отказались, задача времени только в программе ПР,
используйте CLOCK_WEEK, там задачу можно менять из программы или по сети.
Если нужен астротаймер, то он тут
Астротаймер на ST________ https://owen.ru/forum/showthread.php?t=29532&page=2&p=448696#post448696

VladimirSamara
21.11.2025, 18:10
В новых ПР от него отказались, задача времени только в программе ПР,
используйте CLOCK_WEEK, там задачу можно менять из программы или по сети.
Если нужен астротаймер, то он тут
Астротаймер на ST________ https://owen.ru/forum/showthread.php?t=29532&page=2&p=448696#post448696

Благодарю!

MishaSur
24.11.2025, 10:23
Добрый день. Можно ли в готовом проекте заменить устройство ПР. Проект написан на ПР205 (24в) Нужно переделать с минимальными изменениями на ПР205 (220в) Как это сделать не создавая новый проект? Заранее благодарю за ответ.

kondor3000
24.11.2025, 10:25
Добрый день. Можно ли в готовом проекте заменить устройство ПР. Проект написан на ПР205 (24в) Нужно переделать с минимальными изменениями на ПР205 (220в) Как это сделать не создавая новый проект? Заранее благодарю за ответ.

В новых версиях Лоджика, есть смена целевой платформы, раньше переносили копипастом.

CoollFox
27.11.2025, 15:16
Всем добрый день! Подскажите, что то туплю. ПР225 на 1-ом экране создал меню, а при нажатии кнопки вниз ПРка так и так перелистывает экраны. Как сделать так, чтоб по экранам переходить только через МЕНЮ. По меню тоже переходит, но когда вниз нажимаешь экран по кругу листается, а у меня в планах еще запароленный экран с настройками должен быть. На ПР205 и на ПР200 делал, а на ПР225 не понимаю как?

Dimensy
27.11.2025, 15:20
Всем добрый день! Подскажите, что то туплю. ПР225 на 1-ом экране создал меню, а при нажатии кнопки вниз ПРка так и так перелистывает экраны. Как сделать так, чтоб по экранам переходить только через МЕНЮ. По меню тоже переходит, но когда вниз нажимаешь экран по кругу листается, а у меня в планах еще запароленный экран с настройками должен быть. На ПР205 и на ПР200 делал, а на ПР225 не понимаю как?

точно так же как и на ПР205 - назначаете на кнопку какое-нибудь действие

kondor3000
27.11.2025, 15:21
Всем добрый день! Подскажите, что то туплю. ПР225 на 1-ом экране создал меню, а при нажатии кнопки вниз ПРка так и так перелистывает экраны. Как сделать так, чтоб по экранам переходить только через МЕНЮ. По меню тоже переходит, но когда вниз нажимаешь экран по кругу листается, а у меня в планах еще запароленный экран с настройками должен быть. На ПР205 и на ПР200 делал, а на ПР225 не понимаю как?

Присвойте кнопке вниз (вверх), переход по экранам (не выбран) переменную, не используемую в проекте.

CoollFox
27.11.2025, 15:30
Да, спасибо, получилось!!!

Newcomer
02.12.2025, 20:28
FB на ST в симуляции работают ?

kondor3000
02.12.2025, 20:38
FB на ST в симуляции работают ?

Работают, ещё и эмуляция внутри ФБ есть

Newcomer
02.12.2025, 20:43
Работают, ещё и эмуляция внутри ФБ есть

Я имею в виду эмуляцию программы без ПР. И как посмотреть эмуляцию внутри FB ?

kondor3000
02.12.2025, 21:19
Я имею в виду эмуляцию программы без ПР. И как посмотреть эмуляцию внутри FB ?

Откройте ФБ и запустите эмуляцию
Если на холсте, то эмуляция программы.
Не надоело такие вопросы задавать? Вы хоть обучающие видео посмотрите, да руководство прочитайте

Newcomer
02.12.2025, 21:26
Откройте ФБ и запустите эмуляцию
Если на холсте, то эмуляция программы.
Не надоело такие вопросы задавать? Вы хоть обучающие видео посмотрите, да руководство прочитайте

На холсте видно, что переменные (Sec) подключенные к входам FB шевелятся, а внутри FB входные переменные (Sec) не шевелятся.

kondor3000
02.12.2025, 21:28
На холсте видно, что переменные подключенные к входам FB шевелятся, а внутри FB входные переменные не шевелятся.

А если посмотреть и подумать головой, что внутри на входах 0 стоят. Значит что?
Вы что и макросы внутри не запускали ?

Newcomer
02.12.2025, 21:33
А если посмотреть и подумать головой, что внутри на входах 0 стоят. Значит что?
Вы что и макросы внутри не запускали ?

Если снаружи секунды тикают, то почему они внутри не тикают ?

kondor3000
02.12.2025, 21:36
Если снаружи секунды тикают, то почему они внутри не тикают ?

Думайте головой, почему их нет внутри?
Макрос тоже внутри сам не тикает. Это эмуляция работы и задавать входы надо руками.
Или внутри эмулировать секунды, на ФБ это возможно.
Тут пример времени в ФБ
https://owen.ru/forum/showthread.php?t=38721&p=443096&viewfull=1#post443096

Newcomer
02.12.2025, 21:41
FB в эмуляции работает, но если в эмуляции посмотреть что происходит внутри этого FB, то там ничего не происходит.

Может вы покажите, что в эмуляции этого простого FB переменная Q внутри считает импульсы. Вы же писали, что внутри FB в эмуляции все шевелится.

kondor3000
02.12.2025, 21:47
FB в эмуляции работает, но если в эмуляции посмотреть что происходит внутри этого FB, то там ничего не происходит.

Может вы покажите, что в эмуляции этого простого FB переменная Q внутри считает импульсы.

Читайте выше, вам всё написал, и мозг свой иногда включать надо.

Dimensy
02.12.2025, 21:57
FB в эмуляции работает, но если в эмуляции посмотреть что происходит внутри этого FB, то там ничего не происходит.

Может вы покажите, что в эмуляции этого простого FB переменная Q внутри считает импульсы. Вы же писали, что внутри FB в эмуляции все шевелится.

Да, как все запущено.
В Лоджике нельзя во время эмуляции развернуть макрос и посмотреть что там происходит. Проверить можно только программу в целом или отдельный макрос в частности

Newcomer
02.12.2025, 22:34
Да, как все запущено.
В Лоджике нельзя во время эмуляции развернуть макрос и посмотреть что там происходит. Проверить можно только программу в целом или отдельный макрос в частности

Речь не про макрос, а про FB на ST. Уважаемый kondor3000 написал, что в эмуляции можно зайти во внутрь FB и увидеть как там все меняется во времени. Я пытался это сделать, но ничего не получилось. Может вы Dimensy, проясните ситуацию или даже покажите как это сделать.

Dimensy
03.12.2025, 06:02
Речь не про макрос, а про FB на ST. Уважаемый kondor3000 написал, что в эмуляции можно зайти во внутрь FB и увидеть как там все меняется во времени. Я пытался это сделать, но ничего не получилось. Может вы Dimensy, проясните ситуацию или даже покажите как это сделать.

kondor писал

Откройте ФБ и запустите эмуляцию


Чувствуете разницу? Не запустите эмуляцию, откройте ФБ, а сначала откройте ФБ и только потом запустите эмуляцию.
И разницы нет, макрос это, ФБ или функция на ST. Ну, не может Лоджик при эмуляции программы показать что происходит внутри блока. Только, либо всю программа целиком, либо внутренность ФБ (вся остальная программа, при этом, не эмулируется)

Newcomer
03.12.2025, 09:49
kondor писал


Чувствуете разницу? Не запустите эмуляцию, откройте ФБ, а сначала откройте ФБ и только потом запустите эмуляцию.


Именно так и делал, но внутри FB при симуляции ничего не происходит. Чем писать не весть что лучше покажите это на том простом FB, который я выкладывал ранее.

kondor3000
03.12.2025, 09:54
Именно так и делал, но внутри FB при симуляции ничего не происходит. Чем писать не весть что лучше покажите это на том простом FB, который я выкладывал ранее.

Не работает как вы хотите.
Я вам уже 3 раза пытался объяснить, но вы не читаете, 3 сообщения полностью проигнорировали.

Newcomer
03.12.2025, 10:08
Не работает как вы хотите.
Я вам уже 3 раза пытался объяснить, но вы не читаете, 3 сообщения полностью проигнорировали.

Зачем много писать, лучше покажите на простом примере, который я выкладывал.

kondor3000
03.12.2025, 10:10
Зачем много писать, лучше покажите на простом примере, который я выкладывал.

Что показать, не работают входы внутри. Их надо руками включать.

melky
03.12.2025, 10:12
Newcomer - FB это отдельная программа, если утрировано. Вы открываете FB на редактирование - далее эмуляция и видите все происходящее, выполняете отладку и т.д.
Потом вы вставляете FB в основную программу и там уже не можете при эмуляции зайти и посмотреть результаты работы FB, он должен у вас быть уже вылизанным с программной точки зрения и эмулируете вы уже саму программу.

Newcomer
03.12.2025, 10:50
Что показать, не работают входы внутри. Их надо руками включать.

Если так, то это примитивный симулятор. В Codesys можно в симуляции открыть любой POU и увидеть как все там крутится без всяких телодвижений.

Dimensy
03.12.2025, 10:58
Если так, то это примитивный симулятор. В Codesys можно в симуляции открыть FB и увидеть как все там крутится без всяких телодвижений.

Вы еще Лоджик с Tia Portal сравните

Newcomer
05.12.2025, 15:43
Добрый день

Как сделать так, чтобы энергонезависимая сетевая переменная не обнулялась при передергивании питания ПР205 ?

Dimensy
05.12.2025, 15:59
Добрый день

Как сделать так, чтобы энергонезависимая сетевая переменная не обнулялась при передергивании питания ПР205 ?

Общий принцип такой
87110

Newcomer
07.12.2025, 12:49
Общий принцип такой
87110

Поясните, как это сделать в таком случае. Нужно чтобы переменная V_S при передергивании питания не сбрасывалась в 0.

1exan
07.12.2025, 13:03
Поясните, как это сделать в таком случае. Нужно чтобы переменная V_S при передергивании питания не сбрасывалась в 0.

А она и не сбрасывается - вы сами записываете в неё ноль из блока, к которому эта переменная подключена.
Если хотите сохранять её значение - реализуйте этот функционал ВНУТРИ блока (возможно получится тот же fSEL использовать)

Newcomer
07.12.2025, 13:31
А она и не сбрасывается - вы сами записываете в неё ноль из блока, к которому эта переменная подключена.
Если хотите сохранять её значение - реализуйте этот функционал ВНУТРИ блока (возможно получится тот же fSEL использовать)

У меня FB сделан на ST. Как сделать что бы переменную V_S внутри блока не сбрасывалась в 0 при передергивании питания ?

Dimensy
07.12.2025, 13:56
У меня FB сделан на ST. Как сделать что бы переменную V_S внутри блока не сбрасывалась в 0 при передергивании питания ?

Ну, мы же не знаем, что у вас и как организовано внутри блока.
Вариантов множество. Покажите внутренности блока и вам подскажут.

Как вариант


function bmState: udint; //имя функции и тип данных выхода
var_input //объявление входных переменных
Enable : bool;
netState : udint;
b0 : bool; //входная переменная с типом данных bool
b1 : bool;
b2 : bool;
b3 : bool;
b4 : bool;
b5 : bool;
b6 : bool;
b7 : bool;
b8 : bool;
b9 : bool;
b10 : bool;
b11 : bool;
b12 : bool;
b13 : bool;
b14 : bool;
b15 : bool;
end_var

if Enable then
bmState.0 := b0;
bmState.1 := b1;
bmState.2 := b2;
bmState.3 := b3;
bmState.4 := b4;
bmState.5 := b5;
bmState.6 := b6;
bmState.7 := b7;
bmState.8 := b8;
bmState.9 := b9;
bmState.10 := b10;
bmState.11 := b11;
bmState.12 := b12;
bmState.13 := b13;
bmState.14 := b14;
bmState.15 := b15;
else
bmState := netState;
end_if

end_function

kondor3000
07.12.2025, 14:23
Добавить энергонезависимую переменную инициализации R1, которая сохранит значение и 87137
при включении запишет значение на выход


function_block Inizial // Инициализация сетевых переменных
var_input
Val1 :real;
R1_ :real;
end_var
var_output
R1 :real;
end_var
var
Init : bool:=false; // Переменная инициализации
end_var

if not Init then // Инициализация сетевых переменных при пуске
R1:=R1_;
Init:=true;
else // Работа сетевых переменных после инициализации
R1:=Val1;
end_if

end_function_block

Newcomer
07.12.2025, 14:50
Общий принцип такой
87110

Два вопроса по этой конструкции:
1) как она работает;
2) если сетевые переменные по умолчанию энергонезависимые и обычные переменные можно то же объявить энергонезависимыми, то зачем вообще нужна эта конструкция ?

Dimensy
07.12.2025, 15:22
Два вопроса по этой конструкции:
1) как она работает;
2) если сетевые переменные по умолчанию энергонезависимые и обычные переменные можно то же объявить энергонезависимыми, то зачем вообще нужна эта конструкция ?

1) В момент запуска выходные переменные могут быть еще не рассчитаны, поэтому запишут в энергонезависимую переменную ноль. Эта конструкция на один цикл не дает это сделать
2) Можно и обычные переменные делать энергонезависимыми, но с ними может быть такая же ситуация, когда в момент запуска они перезаписываются нулем. Конструкция не дает этого сделать

EFrol
07.12.2025, 15:23
87138


function_block fb

var_input
inVal : udint;
end_var

var_output
outVal : udint;
end_var

outVal := inVal;

end_function_block

Newcomer
07.12.2025, 15:33
Ну, мы же не знаем, что у вас и как организовано внутри блока.
Вариантов множество. Покажите внутренности блока и вам подскажут.

Как вариант


function bmState: udint; //имя функции и тип данных выхода
var_input //объявление входных переменных
Enable : bool;
netState : udint;
b0 : bool; //входная переменная с типом данных bool
b1 : bool;
b2 : bool;
b3 : bool;
b4 : bool;
b5 : bool;
b6 : bool;
b7 : bool;
b8 : bool;
b9 : bool;
b10 : bool;
b11 : bool;
b12 : bool;
b13 : bool;
b14 : bool;
b15 : bool;
end_var

if Enable then
bmState.0 := b0;
bmState.1 := b1;
bmState.2 := b2;
bmState.3 := b3;
bmState.4 := b4;
bmState.5 := b5;
bmState.6 := b6;
bmState.7 := b7;
bmState.8 := b8;
bmState.9 := b9;
bmState.10 := b10;
bmState.11 := b11;
bmState.12 := b12;
bmState.13 := b13;
bmState.14 := b14;
bmState.15 := b15;
else
bmState := netState;
end_if

end_function


Почему после первого вызова функции Enable не поменяла своего состояния ?

Newcomer
07.12.2025, 15:36
87138


function_block fb

var_input
inVal : udint;
end_var

var_output
outVal : udint;
end_var

outVal := inVal;

end_function_block


Вероятно outVal := inVal; должно выполняться только при первом исполнении FB, т.е. при подаче питания на ПР.

Dimensy
07.12.2025, 15:44
Почему после первого вызова функции Enable не поменяла своего состояния ?

Потому что Enable это входная переменная
У меня после сбоя питания идет задержка на разрешения запуска всяких процессов. Эта функция, пока идет задержка, держит состояние до сбоя. Поэтому Enable и сделана входной переменной.

EFrol
07.12.2025, 15:49
Вероятно outVal := inVal; должно выполняться только при первом исполнении FB, т.е. при подаче питания на ПР.

Нет. Будет выполняться в каждом цикле.

Newcomer
07.12.2025, 15:53
Нет. Будет выполняться в каждом цикле.

А какой смысл выполнять это в каждом цикле ? Задача-то предотвратить запись 0 в outVal при подаче питания. Три человека предложили разные варианты.

EFrol
07.12.2025, 15:56
А какой смысл выполнять это в каждом цикле ? Задача-то предотвратить запись 0 в outVal при подаче питания.

При входе в FB значение надо сначала восстановить из сетевой (ведь она энергонезависимая и содержит сохраненное значение до первого цикла).
А потом уже в самом FB можно менять это значение при необходимости.



function_block fb

var_input
inVal : udint;
in, reset: bool;

end_var

var_output
outVal : udint;
end_var

var
rtIN : SYS.RTRIG;
rtReset : SYS.RTRIG;
end_var

outVal := inVal;

rtIN(I := in);
If rtIN.Q then
outVal := 100;
end_if

rtReset(I := reset);
If rtReset.Q then
outVal := 0;
end_if

end_function_block


Попробуйте перед выключением подать сначала in.
А перед следующим выключением подать reset.
Чисто для эксперимента.

Newcomer
07.12.2025, 15:59
При входе в FB значение надо сначала восстановить из сетевой (ведь она энергонезависимая и содержит сохраненное значение до первого цикла).

Разве это не достаточно сделать 1 раз, т.е при первом вызове FB ?

Newcomer
07.12.2025, 16:01
Потому что Enable это входная переменная
У меня после сбоя питания идет задержка на разрешения запуска всяких процессов. Эта функция, пока идет задержка, держит состояние до сбоя. Поэтому Enable и сделана входной переменной.

И сколько длится эта задержка ?

Dimensy
07.12.2025, 16:08
И сколько длится эта задержка ?

Задержка настраиваемая, по-умолчанию 5 сек.
И, на всякий случай, нафига я вообще сделал эту задержку - у нас частенько свет моргает, поэтому в щите стоит реле контроля фаз, он него я и регистрирую сбой питания

EFrol
07.12.2025, 16:10
Разве это не достаточно сделать 1 раз, т.е при первом вызове FB ?

Можно. Но тогда придется сделать так:


function_block fb

var_input
inVal : udint;
end_var

var_output
outVal : udint;
end_var

var
rtStart : SYS.RTRIG;
end_var

rtStart(I := true);
IF rtStart.Q then
outVal := inVal; // Извлекаем при старте
end_if

end_function_block

Murzik162
08.12.2025, 13:17
Не могли бы подсказать, по какой причине не выводится на экран через компонент ввод вывод времени это самое время? Сделал все по инструкции присвоил дату к переменной, эту переменную перетащил к другой, и эту другую в компонент засунул. Однако вообще ничего. Где ошибся?
И еще как работают переменные и данные в настройках прибора? у меня там вообще 2000 год просто и все. Но в часы реального времени считают. Чего то не уловил видимо.

kondor3000
08.12.2025, 13:26
Не могли бы подсказать, по какой причине не выводится на экран через компонент ввод вывод времени это самое время? Сделал все по инструкции присвоил дату к переменной, эту переменную перетащил к другой, и эту другую в компонент засунул. Однако вообще ничего. Где ошибся?
И еще как работают переменные и данные в настройках прибора? у меня там вообще 2000 год просто и все. Но в часы реального времени считают. Чего то не уловил видимо.


Надо привязать все переменные времени и присвоить переменным на холсте программы, а потом выводить на экран (работает только в живой ПР).

Проще работать с готовыми блоками времени, в том числе в симуляции
ФБ времени в ПР205 (Часы, Мин. и Сек.) ФБ Опер Таймер (наработка) на языке ST______ https://owen.ru/forum/showthread.php?t=38721#8
Дата, Время и День недели через DT с 2000г. (и с 1970г.)____________ https://owen.ru/forum/showthread.php?t=40116#4

Murzik162
08.12.2025, 14:08
Спасибо за информацию.А где это описано, или же это просто особенность которую все знают?

kondor3000
08.12.2025, 14:11
Спасибо за информацию.А где это описано, или же это просто особенность которую все знают?

Читайте справку Лоджика по F1, а так же по языку ST в ОЛ.

Dionis2000
18.12.2025, 12:40
Здравствуйте. В справке Лоджика не нашел такой информации: На холсте входы и выходы дополнительного модуля ПРМ появятся только после подключения ПРМ к ПР205 и конфигурации? Сейчас я пока не имею на руках ПР205 с модулем расширения ПРМ, но проект нужно делать. Спасибо за внимание.

kondor3000
18.12.2025, 13:14
Здравствуйте. В справке Лоджика не нашел такой информации: На холсте входы и выходы дополнительного модуля ПРМ появятся только после подключения ПРМ к ПР205 и конфигурации? Сейчас я пока не имею на руках ПР205 с модулем расширения ПРМ, но проект нужно делать. Спасибо за внимание.

Достаточно добавить модули в настройках и всё появится

Радригез
19.12.2025, 07:47
Здравствуйте. Подскажите, пожалуйста, как сделать так,чтобы пришел сигнал на вход ПР, сигнал стал "1" через определенное время и чтобы этот сигнал некоторое время "держался включенным" и потом через определенное время "потух". Есть ли какой-нибудь макрос и тд. Помогите,пожалуйста, советом

EFrol
19.12.2025, 07:56
Здравствуйте. Подскажите, пожалуйста, как сделать так,чтобы пришел сигнал на вход ПР, чтобы этот сигнал некоторое время "держался включенным" и через определенное время "потух". Есть ли какой-нибудь макрос и тд. Помогите,пожалуйста, советом

таймер TP или TOF в разделе ФБ/Таймеры
87282
87283

Радригез
19.12.2025, 09:13
Спасибо большое,я не всю ситуация описал оказывается,нужно чтобы этот сигнал сработал,стал "1" не сразу,а с выдержкой по времени.

kondor3000
19.12.2025, 09:44
Спасибо большое,я не всю ситуация описал оказывается,нужно чтобы этот сигнал сработал,стал "1" не сразу,а с выдержкой по времени.

Тогда Таймер TON, а дальше TOF если надо

Slon1800
20.12.2025, 04:49
Здравствуйте, скажите как в узд1 считать регистры 10199 и 10200 они являются unsigned 32, в пр103 где пишу программу сетевая переменная только 1 регистр, а порегистрово эти регистры не читаются, даже сторонними программами, только сразу 2 регистра. Как считать эту битовую маску?

Dimensy
20.12.2025, 09:03
Здравствуйте, скажите как в узд1 считать регистры 10199 и 10200 они являются unsigned 32, в пр103 где пишу программу сетевая переменная только 1 регистр, а порегистрово эти регистры не читаются, даже сторонними программами, только сразу 2 регистра. Как считать эту битовую маску?

вот так
87302

Slon1800
20.12.2025, 13:58
А как затем перевести в буль ведь в макросе инт то буль 2 входа и 32 выхода но сетева получиться же 1 с узд?

Dimensy
20.12.2025, 15:17
А как затем перевести в буль ведь в макросе инт то буль 2 входа и 32 выхода но сетева получиться же 1 с узд?

Сделайте свой макрос на основе этого
87314

Slon1800
20.12.2025, 15:44
То есть я выбираю к примеру запрос и 2 регистров с 10199, ставлю н вход макроса экстарк 10199 и для извлечения 2 бита из 10200 ставлю на вход макроса х цифру 18 и на выходе имею булевое значение из регистра 10200 2 бита?

Dimensy
20.12.2025, 15:48
То есть я выбираю к примеру запрос и 2 регистров с 10199, ставлю н вход макроса экстарк 10199 и для извлечения 2 бита из 10200 ставлю на вход макроса х цифру 18 и на выходе имею булевое значение из регистра 10200 2 бита?

Смотря, что вы подразумеваете под вторым битом. Если это порядковый номер, тогда 17, если это степень двойки, то 18

Slon1800
20.12.2025, 16:00
Я имею ввиду 2 бит 2 регистра. 16 бит это 1 регистр и 2 бит это еще надо +3 (0-1-2) получается вообще 19 тогда

Slon1800
20.12.2025, 16:16
Есть вопрос как в ПР103 сделать так что при разрыве связи по езернет ПР103 понял что связь разорвана?

Dimensy
20.12.2025, 16:25
Я имею ввиду 2 бит 2 регистра. 16 бит это 1 регистр и 2 бит это еще надо +3 (0-1-2) получается вообще 19 тогда

В Лоджике (и не только) первые 16 бит имеют номера от 0 до 15, вторые - от 16 до 31


Есть вопрос как в ПР103 сделать так что при разрыве связи по езернет ПР103 понял что связь разорвана?
Вот здесь переменную привязать
87315

Радригез
22.12.2025, 09:38
Здравствуйте, проект блокиратора колес грузового транспорта, подскажите, пожалуйста, может есть какой-нибудь макрос, для расчета размера колес, через оптический датчик. Пробовал через таймеры задать, но там размеры у разных фур разные. Помогите, пожалуйста, советом.

МихаилГл
22.12.2025, 09:41
Здравствуйте, проект блокиратора колес грузового транспорта, подскажите, пожалуйста, может есть какой-нибудь макрос, для расчета размера колес, через оптический датчик. Пробовал через таймеры задать, но там размеры у разных фур разные. Помогите, пожалуйста, советом.

Схему общего вида предполагаемой установки дайте. Непонятно, что вы этим датчиком меряете или фиксируете...

Радригез
22.12.2025, 09:57
Схемы как таковой нет, в поисковике попробуйте вбить "комбилок",там нагляднее все. Датчик "видит" колесо, проезжает его и останавливается.

МихаилГл
22.12.2025, 10:08
Ну посмотрел... А при чем тут размеры колёса?

kondor3000
22.12.2025, 10:34
Здравствуйте, проект блокиратора колес грузового транспорта, подскажите, пожалуйста, может есть какой-нибудь макрос, для расчета размера колес, через оптический датчик. Пробовал через таймеры задать, но там размеры у разных фур разные. Помогите, пожалуйста, советом.

Расчёт радиуса (Диаметра) из длины окружности по формуле R=C/2*pi (D=C/ pi ) 87335
https://yandex.ru/images/search?text=%D1%80%D0%B0%D1%81%D1%87%D1%91%D1%82+% D0%B4%D0%BB%D0%B8%D0%BD%D1%8B+%D0%BE%D0%BA%D1%80%D 1%83%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8+%D0%BF%D0 %BE+%D0%B4%D0%B8%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1% 83&img_url=https%3A%2F%2Favatars.dzeninfra.ru%2Fget-zen_doc%2F271828%2Fpub_65c55dfcf20e2343860a26d9_65 c561baf20e2343860c6192%2Fscale_1200&pos=0&rpt=simage&stype=image&lr=213&parent-reqid=1766388778667422-9613373490746088975-balancer-l7leveler-kubr-yp-klg-306-BAL&source=serp

EFrol
22.12.2025, 10:45
Не найду где это было. Но уже составляли программу для этого проекта для ПР-200.
https://owen.ru/forum/showthread.php?t=26216&p=475132&viewfull=1#post475132
Вы на вопросы так и не ответили https://owen.ru/forum/showthread.php?t=26216&p=475154&viewfull=1#post475154