Просмотр полной версии : разные вопросы новичка
Страницы :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[
16]
17
18
19
Traveller тут недавно была тема, должны ли исполнители передавать исходники программы. Так вот там привели закон, по которому если в договоре не указано иного, априори должны.
А вы например не хотите передавать исходники. Соответственно должны указать это в договоре, согласовать и т.д. То есть весь ремонт через вас, если сдохло ПР (опять же, по другому закону, если не указано, то срок службы 10 лет)
А передав исходники, без защиты, заказчик может начать самостоятельно делать такие же станки например и вы пролетаете мимо...
В общем юридические и коммерческие нюансы :)
meta11ist87 в вашем случае макрос на ST вас спасет наверное. там вроде изобрели массивы, выбрать уже номер массива останется. не спец по ST на ПР. может кто подскажет правильную идею.
Решение стало некрасивым, когда убили значения по умолчанию для сетевых переменных. Вроде это произошло при появлении ПР200. На какой-то версии ОЛ на 114-м ПР все прекрасно работало.
Вроде связано с архитектурой ПР200 и далее.
В ПР205 возможна инициализация Slave сетевых переменных.
Постоянно применяю эту возможность, тем более, что к ним можно обращаться и по сети и с экрана ПР205.
МихаилГл
27.08.2024, 19:35
Traveller тут недавно была тема, должны ли исполнители передавать исходники программы. Так вот там привели закон, по которому если в договоре не указано иного, априори должны.
А вы например не хотите передавать исходники. Соответственно должны указать это в договоре, согласовать и т.д. То есть весь ремонт через вас, если сдохло ПР (опять же, по другому закону, если не указано, то срок службы 10 лет)
А передав исходники, без защиты, заказчик может начать самостоятельно делать такие же станки например и вы пролетаете мимо...
В общем юридические и коммерческие нюансы :)
Да всё это от лукавого. Эти исходники тока показывают как не надо делать. Сегодня вот со скадой wincc боролся, толку что есть исходники, разработчики такой х...ни нагородили... Короче я среду разработки повесил заказчику напрочь, там столько взаимных ссылок для визуализации ненужного мусора, где то похоже перекрыл... Завтра будем разбираться. Была б моя воля и время, переделал бы, а так приходится разбираться с тем что есть, чтоб один объект интегрировать в систему...
PS WinCC зависла похоже сама по себе, не из-за моих косяков, а из-за старой версии и старого апдейта. Одно радует, не мой косяк.
CoollFox
21.09.2024, 07:56
Можно блиц вопрос: Сделал меню на ПР200 comboBox, все работает, но пролистывание через кнопку "вверх" как поменять кнопку на "вниз" так логичнее и удобнее. Есть такая возможность? и если да, то как?
Сергей0308
21.09.2024, 08:08
Можно блиц вопрос: Сделал меню на ПР200 comboBox, все работает, но пролистывание через кнопку "вверх" как поменять кнопку на "вниз" так логичнее и удобнее. Есть такая возможность? и если да, то как?
В смысле, Вы забыли как это делали, там самому надо выбирать из огромного списка:
78757
Если список в комбо боксе сделать в обратном порядке, то для вас кнопки вверх и вниз поменяются местами, только так!
CoollFox
21.09.2024, 08:31
Имеется ввиду изменить порядок выпадающего меню не от 0 до 5 а от 5 до 0?78758
CoollFox
21.09.2024, 08:34
При нажатии SEL мигает МЕНЮ, чтоб пройтись по меню надо нажимать "вверх", а мне надо нажимать "вниз", вот в чем вопрос. Про выбор вариантов перехода по меню и выборе огромного количества вариантов перехода я помню.
Сергей0308
21.09.2024, 08:55
При нажатии SEL мигает МЕНЮ, чтоб пройтись по меню надо нажимать "вверх", а мне надо нажимать "вниз", вот в чем вопрос. Про выбор вариантов перехода по меню и выборе огромного количества вариантов перехода я помню.
Я же и по комбобоксу написал, сделайте список в комбобоксе в обратном порядке, всё! Теперь кнопки вверх и вниз поменяются местами, соответственно в программе немного поправить соответствие пунктов меню комбобокса!
Ранее писали на форуме, что можно пункты меню комбобокса перетаскивать по списку.
При нажатии SEL мигает МЕНЮ, чтоб пройтись по меню надо нажимать "вверх", а мне надо нажимать "вниз", вот в чем вопрос. Про выбор вариантов перехода по меню и выборе огромного количества вариантов перехода я помню.
Ну, так, вам уже подсказали - сделать обратный список, т.е., пункт "Меню" будет высвечиваться не при значении переменной Menu=0, а при значении Menu=5. Ну и, Menu не в ноль сбрасывать, а устанавливать 5
Сергей0308
21.09.2024, 10:07
Имеется ввиду изменить порядок выпадающего меню не от 0 до 5 а от 5 до 0?78758
Значения переменной комбобокса останутся прежними 0-5, а список расположите в обратном порядке.
Кстати, на форуме ранее уже обсуждали как переходить в нужное меню при включении ПР, если Вам и такое понадобится!
CoollFox
21.09.2024, 10:17
Я же и по комбобоксу написал, сделайте список в комбобоксе в обратном порядке, всё! Теперь кнопки вверх и вниз поменяются местами, соответственно в программе немного поправить соответствие пунктов меню комбобокса!
Ранее писали на форуме, что можно пункты меню комбобокса перетаскивать по списку.
А можно для меня, непонятливого пояснить? я всяко перепробовал, по любому надо вверх нажимать в combobox меню.
Сергей0308
21.09.2024, 10:46
А можно для меня, непонятливого пояснить? я всяко перепробовал, по любому надо вверх нажимать в combobox меню.
Так Вы и значения переменной комбобокс расположили в обратном порядке, короче, надо что-нибудь одно поменять!
А так у Вас всё осталось как и было ранее!
А можно для меня, непонятливого пояснить? я всяко перепробовал, по любому надо вверх нажимать в combobox меню.
попробуйте изменить макрос
78760
CoollFox
21.09.2024, 12:25
Дело же не в макросе!? Дело в том, что перечисление пунктов меню идет по кнопке вверх, а мне 78762надо вниз
Дело же не в макросе!? Дело в том, что перечисление пунктов меню идет по кнопке вверх, а мне 78762надо вниз
По кнопке вверх вы увеличиваете значение. Поэтому и переворачиваем список - тогда по кнопке вниз будете уменьшать значение. А макрос изначально, по умолчанию выставляет максимальное значение
78763
В, общем, вот попробуйте
CoollFox
21.09.2024, 16:31
Спасибо, то что надо!
Сергей0308
21.09.2024, 20:53
Мне кажется, что никакие макросы предустановки здесь не нужны, в смысле, у энергонезависимых переменных есть значение по умолчанию, вот такую и "прилепить" к комбобоксу!
Добрый день подскажите пожалуйста регулятор для запорно-регулирующего клапана работающего по заданию 4-20 мА. Пробовал ПИД но при достижении заданного значения он постепенно закрывается а мне надо что бы достиг заданного значения закрылся допустим на половину, а как привысило заданное значение тогда только закрылся полностью.
МихаилГл
22.09.2024, 10:23
Добрый день подскажите пожалуйста регулятор для запорно-регулирующего клапана работающего по заданию 4-20 мА. Пробовал ПИД но при достижении заданного значения он постепенно закрывается а мне надо что бы достиг заданного значения закрылся допустим на половину, а как привысило заданное значение тогда только закрылся полностью.
Ну как вариант любая ПР и программируйте любой алгоритм.
Да не силен я еще в лоджике. Думал может у кого уже варианты есть готовые.
...ПИД но при достижении заданного значения он постепенно закрывается .
Это как? Если достиг - стоит на месте. Закрывается/открывается - не достиг. Все просто
kondor3000
22.09.2024, 12:18
Да не силен я еще в лоджике. Думал может у кого уже варианты есть готовые.
При достижении уставки, выход ПИД стоит на месте 78771
При достижении уставки, выход ПИД стоит на месте 78771
А смотрите еще такой вопрос: можно ли выход ПИД преобразовать чтобы было 10,20,30, и так до 100 только десятки?
kondor3000
22.09.2024, 13:02
А смотрите еще такой вопрос: можно ли выход ПИД преобразовать чтобы было 10,20,30, и так до 100 только десятки?
Зачем это?
Если вам так надо сделайте сравнение, больше 10, 20, 30 и т. д., будет включение бит разделённое на 10 шагов.
Зачем это?
Если вам так надо сделайте сравнение, больше 10, 20, 30 и т. д., будет включение бит разделённое на 10 шагов.
Мне нужен аналоговый выход с шагом 10,20,30-100
kondor3000
22.09.2024, 13:12
Мне нужен аналоговый выход с шагом 10,20,30-100
На аналоговый выход надо подавать от 0 до 1.0 , какой смысл в этом, если вам для подачи на выход, всё равно надо делить на 100.
На скрине посмотрите.
На аналоговый выход надо подавать от 0 до 1.0 , какой смысл в этом, если вам для подачи на выход, всё равно надо делить на 100.
На скрине посмотрите.
Имею в виду в %. Шаг нужен только десятки
kondor3000
22.09.2024, 13:21
Имею в виду в %. Шаг нужен только десятки
Ну можете сделать кучу преобразований, выход разделить на 10, преобразовать в целочисленное, 78775
умножить на 10, и преобразовать обратно во Float, будет выход десятками.
Ну можете сделать кучу преобразований, выход разделить на 10, преобразовать в целочисленное, 78775
умножить на 10, и преобразовать обратно во Float, будет выход десятками.
Большое спасибо
Такое себе.
ПИД около *5 вдруг будет болтатся и выход такой - плюс 10, минус 10 раскачивать.
Мне нужен аналоговый выход с шагом 10,20,30-100
Тогда вам нафиг не нужен ПИД регулятор. Просто время от времени сравнивайте параметр с уставкой и прибавляйте / убавляйте выход на 10
Доброго дня
В ФБ на ST нужно сохранить состояние между выключениями питания.
Для ФБ на FBD просто объявил бы переменную энергонезависимой.
А для ST не соображу, как быть.
Как объявить переменную в ФБ на ST энергонезависимой?
Доброго дня
В ФБ на ST нужно сохранить состояние между выключениями питания.
Для ФБ на FBD просто объявил бы переменную энергонезависимой.
А для ST не соображу, как быть.
Как объявить переменную в ФБ на ST энергонезависимой?
Только через внешнюю переменную
79087
function_block functionblock1 //имя функционального блока.
// Пример функционального блока на ST, который является счетчиком и используется для прямого счета.
// Операция «прямой счет» выполняется по переднему фронту импульса на входе «U»,
// что увеличивает значение выходного сигнала «Q».
// При поступлении на вход Res логической «1», выход счетчика «Q» устанавливается в значение входа «N».
var_input //объявление входных переменных
U : bool; //входная переменная с типом данных bool
Res : bool; //входная переменная с типом данных bool
N : udint; //входная переменная для значения счетчика после сброса
Q_ : udint;
end_var
var_output //объявление выходных переменных
Q : udint; //выходная переменная с типом данных udint
end_var
var //объявление локальных переменных
CounterValue : udint; //переменная для текущего значения счетчика
RTrig : bool; //переменная для определения переднего фронта на входе «U»
end_var
CounterValue := Q_;
if Res then
CounterValue := N;
end_if
if U and not RTrig and not Res then
CounterValue := (CounterValue + 1);
RTrig := U;
end_if
if not U and RTrig then
RTrig := false;
end_if
Q := CounterValue;
end_function_block
Спасибо
Ясно. Жаль, что пока не существует решения, подобного из FBD.
Спасибо
Ясно. Жаль, что пока не существует решения, подобного из FBD.
Ну, с этим можно жить (и вроде обещают retain в ST), а вот то что творится в ветках про прошивки ПР103 и ПР205 - вот это жесть
Как видно, на сегодняшний день проблемы с прошивками и комплектацией.
Как бы цинично это не звучит - мне нужно сделать только то, что зависит от меня. Прошивки (не первый и не последний раз) поправят, ремонт выполнят.
Ремонт, может даже гарантийный - сталкивался, что сенсор датчика ломался через год, прошивка на одном из приборов в редкой конфигурации некорректно работала - Овен чинил бесплатно. Неприятно, но переживу без волнений.
По правде, обновляю OwenLogic только когда новой версии больше месяца и на форуме нареканий нет. Поэтому проблемы прошли мимо, хотя новичкам сочувствую, понимаю, какое давление на них и сомнение в компетентности со стороны и заказчика и собственного руководства - сам проходил через это.
Поэтому, потихоньку - шаг за шагом - прочь от Овена!!!
На встречу диким китайцам, которые точно ничего не поправят? Максимум просто мюпоменяют на такое же глючное?
In_Da_Cher_A
06.10.2024, 15:51
обновляю OwenLogic только когда новой версии больше месяца и на форуме нареканий нет.я вот вообще понять не могу, что там за фабрика проггеров у ОВЕНа, которые в бешеном темпе рожают бесконечные обновления? нахуа?
ладно, добавили ST - это понятно, можно и обновиться, если тебе это нужно.
ладно добавили новые приборы, обновляйся если тебе нужно именно это
Но после ST прошёл уже год и уже вместо 2.4 "в продаже" уже 2.7.357 (!!!) и глюки, вылеты и прочие приколы и не думают прекращаться
печаль однако, но буду смотреть в сторону питерских, для мелких объектов постепенно буду тестировать
...буду смотреть в сторону питерских, для мелких объектов постепенно буду тестировать
Это Сигнетикс что-ли?
In_Da_Cher_A
06.10.2024, 16:51
ну я пока не вижу другой альтернативы. Вроде они сейчас выкатили второй пиксель, который совсем не первый, надо купить на тестирование
пока единственное что минус - ценник в еврах, в каком-то файле экселя.....какой-то привет из 200х
Китайский Зентек вот пошёл в работу на первом объекте, один шкаф включил, посмотрим, в монтаже ещё три шкафа вентиляции
вроде экстрабюджетно, но цена сейчас уже не главное, нужна стабильность и безгеморность, к сожалению ОВЕН пока это не может гарантировать
ну я пока не вижу другой альтернативы. Вроде они сейчас выкатили второй пиксель, который совсем не первый, надо купить на тестирование
пока единственное что минус - ценник в еврах, в каком-то файле экселя.....какой-то привет из 200х
Абсолютно нормально! Я только за!
Ну, кроме НИОКР, основные расходы электронной промышленности в РФ в долларах. Пусть лучше так, чем спекулятивные игры на курсе
А зентек...
У него огромные тормоза по интерфейсу (привет цене) и нет гальванической развязки последовательного интерфейса, что делает рискованной диспетчеризацию.
А так... Стандартное бюджетное решение.
In_Da_Cher_A
06.10.2024, 18:43
ну я пока пользую это как "готовое изделие" с типа заводской "прошивкой под меня", поэтому тормоза мне пока не принципиальны. и диспетчеризация снимается в моих шкафах в виде сухих контактов "работает шкаф/не работает шкаф", поэтому тоже пока не принципиально
на что-то более серьёзное, чем шкаф типа пром цех вентиляции - я даже не думаю ставить
Стандартное бюджетное решение.вот пока только это. Как я ни старался, ОВЕН "на круг" вставал мне в итоге в 2 раза дороже, плюс жёсткие прошивки не ложатся никак на мою технологию, а вместо ТРМ путь один на ПР со всеми своими приколами. И смысла в ОВЕНе тогда совсем нет - я денег зарабатывать хочу, а не тестером-испытателем бесплатно работать
главное чтобы год отработал, это уже отобьёт все затраты на него.
ладно, закругляемся, не будем мусорить в теме, извиняйте пацаны
Простите за наглость, просто некогда :)
Нужен макрос для ПР200, который будет имитировать охлаждение и нагрев для показушного стенда
Я буду подавать уставки температуры в переменные, и в зависимости от имитации включать так же через сетевую переменную либо нагрев, либо охлаждение а по обратной связи должен получать либо плавное повышение температуры, либо понижение.
Может кто уже изобретал подобное или что-то можно применить из готового?
kondor3000
08.10.2024, 10:49
Простите за наглость, просто некогда :)
Нужен макрос для ПР200, который будет имитировать охлаждение и нагрев для показушного стенда
Я буду подавать уставки температуры в переменные, и в зависимости от имитации включать так же через сетевую переменную либо нагрев, либо охлаждение а по обратной связи должен получать либо плавное повышение температуры, либо понижение.
Может кто уже изобретал подобное или что-то можно применить из готового?
Например так, можно изменять выход кнопками или по сети битами. 79197
Можно сделать изменение пилой, если сбрасывать выход при достижении максимума или минимума.
Я использую имитатор чайника:
79199
function_block Heater
var_input
U : bool;
end_var
var_output
Temp : real := 25; // Текущая начиная с окружающей
end_var
var //объявление локальных переменных
dHeat : real := 1.0; // Скорость нагрева град/10ms
dCool : real := 0.01; // Скорость охлаждения дельта * коэф. охл.
endTemp : real := 25.0; // Температура окружающей стреды
t : SYS.TON; // Таймер интегрирования
end_var
t(I:=true, T:=T#10ms);
if t.Q then
if U then
Temp := Temp + dHeat; // Нагрев
end_if
Temp := Temp - (Temp - endTemp) * dCool; // Охлаждение
t(I:=false);
end_if
end_function_block
Спасибо, опробую. Правда по скринам не вижу задания уставок низ, верх температуры.
Нижняя получается окружающая endTemp (25гр)
А верхняя dHeat / dCool + endTemp (125гр)
Не поверите, только что такой макрос привёл
https://owen.ru/forum/showthread.php?t=25068&p=447749&viewfull=1#post447749
Эмулятор объекта - и для непрерывного и для 3-позиционного управлений.
Спасибо, тоже посмотрю. Мне вообще все равно что там будет, главное чтобы реагировал как объект и прикрутить что-то к экрану, типу "Греюсь, Т такая то", "Нагрелся, Т такая то"
Из программной части у меня пока только Гистерезис портирован.
"Мой" эмулятор - апериодическое звено, т.е. имеет и насыщение и разную скорость изменения при разной силе воздействия.
За счёт коэффициента Gain можно приводить к разным единицам измерения (градусам, Паскалям, мегапаскалям). При нулевом воздействии значение стремится к заданному PV_0.
От "прародителя" досталась и возможность внести возмущение в единицах положения привода.
друзья! а никто на ST не делал удобоваримый блок запаковки и распаковки регистра модбас в биты, чтобы этими битами можно было управлять и снаружи (модбас) и изнутри (из логики) ?
kondor3000
09.10.2024, 09:09
Вот делал для работы, управление на 8 бит (расширяется до 16) управляется по сети Маской бит и из ФБ. 79241
Включённые биты при работе запоминают своё состояние. Может сохранять безопасное состояние при включении.
В примере один блок на FBD для понимания схемы и второй блок на ST.
Traveller
09.10.2024, 09:24
Возник вопрос такого рода!
Сменил компьютер на новый, поставил последнюю версию Owen Logic, и само собой в ней нет ни каких расширений, которые нужно доустановить, но при попытке их доустановить я их вообще не нахожу:
https://owen.ru/forum/attachment.php?attachmentid=79242&stc=1&d=1728454970
https://owen.ru/forum/attachment.php?attachmentid=79243&stc=1&d=1728455004
https://owen.ru/forum/attachment.php?attachmentid=79244&stc=1&d=1728455143
В чем может быть проблема, я что то опять делаю не так?:)
kondor3000
09.10.2024, 09:34
Возник вопрос такого рода!
Сменил компьютер на новый, поставил последнюю версию Owen Logic, и само собой в ней нет ни каких расширений, которые нужно доустановить, но при попытке их доустановить я их вообще не нахожу:
В чем может быть проблема, я что то опять делаю не так?:)
Расширения у меня тоже сейчас не работают, возможно что то переделывают.
Проверьте, у вас есть ПР103 и ПР205 в выборе реле ?
Traveller
09.10.2024, 09:41
Расширения у меня тоже сейчас не работают, возможно что то переделывают.
Проверьте, у вас есть ПР103 и ПР205 в выборе реле ?
У меня ПР200 и я вообще работаю сейчас с программой, а не с реле, мне нужен мастер тиражирования, экзешники нужно сделать...
Вот делал для работы, управление на 8 бит (расширяется до 16) управляется по сети Маской бит и из ФБ. 79241
Включённые биты при работе запоминают своё состояние. Может сохранять безопасное состояние при включении.
В примере один блок на FBD для понимания схемы и второй блок на ST.
вот это похоже то, что нужно. пойду проверю
проверил. в живой железке на пр 205 не работает.
если устанавливается нулевой бит все хорошо. активирую первый - обнуляется нулевой и наоборот
битовые переменные привязаны с двух сторон к одноименным вход/выход (понятно без перехлеста)
установка у этих переменных атрибута "запись в конце цикла" не помогла
kondor3000
09.10.2024, 13:49
вот это похоже то, что нужно. пойду проверю
проверил. в живой железке на пр 205 не работает.
если устанавливается нулевой бит все хорошо. активирую первый - обнуляется нулевой и наоборот
битовые переменные привязаны с двух сторон к одноименным вход/выход (понятно без перехлеста)
установка у этих переменных атрибута "запись в конце цикла" не помогла
Значит не судьба, проверить на железе не успел.
Сергей0308
09.10.2024, 16:03
Подобное Пётр из Минска делал в какой-то теме, на крайний случай макрос изменения целочисленной переменной из двух мест есть, он то по любому подойдёт!
вот это похоже то, что нужно. пойду проверю
проверил. в живой железке на пр 205 не работает.
если устанавливается нулевой бит все хорошо. активирую первый - обнуляется нулевой и наоборот
битовые переменные привязаны с двух сторон к одноименным вход/выход (понятно без перехлеста)
установка у этих переменных атрибута "запись в конце цикла" не помогла
Может такой подойдет - переделал немного макрос на FBD от kondor3000
Сергей0308
09.10.2024, 20:16
Может такой подойдет - переделал немного макрос на FBD от kondor3000
Согласен, не до конца понятно как должно работать, в смысле, приходится гадать!
kondor3000
09.10.2024, 21:47
вот это похоже то, что нужно. пойду проверю
проверил. в живой железке на пр 205 не работает.
если устанавливается нулевой бит все хорошо. активирую первый - обнуляется нулевой и наоборот
битовые переменные привязаны с двух сторон к одноименным вход/выход (понятно без перехлеста)
установка у этих переменных атрибута "запись в конце цикла" не помогла
Короче всё так и должно быть, только по задумке биты должны включаться кнопкой, а не на постоянку. Выключаются при повторном нажатии.
Биты так же запоминаются и можно забить безопасное состояние при включении.
Добавил R_Trig по булевым входам, теперь пофиг, оставили бит включённым или выключили. Можете проверить ещё раз.
Переделал только на ST, на FBD осталось как было, если кто не понял как работает.
Если ФБ вставлять в другой ФБ, нужно внизу добавить строчку M:=N_;
Проверено на живом ПЛК в Codesys 2.3, всё работает. Прикол, что Codesys не позволяет вложить друг в друга 8 штук PUTBIT ( ругается гад),
пришлось разбить на части. А Лоджик хоть 15 штук вложить даёт.
На скрине видно, что верхний макрос срабатывает через раз, если бит не выключить (на входах XOR), а нижний ФБ, отработал всё, у него по входам R_TRIG. 79284
мдя-я-я
Все ж легко решается простыми логическими операциями с целыми
А коли их не завезли, то им втупую делается замена и спокойно пьется пиво.
Завезут - просто убираются прокладки и все.
.. не до конца понятно как должно работать, в смысле, приходится гадать!
Реверс битов по фронту соотв.входов, но прямое сетевое изменение приоритетно.
Если я правильно понял мысль тс. Да?
(ссылки не смотрел, глянул то, про что сказал "норм" kondor3000)
Сергей0308
10.10.2024, 09:31
Реверс битов по фронту соотв.входов, но прямое сетевое изменение приоритетно.
Если я правильно понял мысль тс. Да?
(ссылки не смотрел, глянул то, про что сказал "норм" kondor3000)
Так такую лабуду ещё несколько лет назад мы на форуме делали:
79290
https://owen.ru/forum/showthread.php?t=26216&page=222
И, даже в этой теме!
kondor3000
10.10.2024, 09:49
Так такую лабуду ещё несколько лет назад мы на форуме делали:
Это же на FBD, а запрос был ФБ на ST, его в другой ФБ ещё будут вставлять. На FBD макрос в ФБ не вставишь.
Доработал ФБ Валенка, инициализация при включении и память в сетевых переменных.
Сергей0308
10.10.2024, 10:30
Это же на FBD, а запрос был ФБ на ST, его в другой ФБ ещё будут вставлять. На FBD макрос в ФБ не вставишь.
У товарища таких хотелок не было, в смысле, что это куда-то там ещё вставлять надо в неудобной позе!
kondor3000
10.10.2024, 10:36
У товарища таких хотелок не было, в смысле, что это куда-то там ещё вставлять надо в неудобной позе!
Вот первый пост, с которого всё началось, неужели посмотреть трудно, на предыдущей странице?
друзья! а никто на ST не делал удобоваримый блок запаковки и распаковки регистра модбас в биты, чтобы этими битами можно было управлять и снаружи (модбас) и изнутри (из логики) ?
Это же на FBD, а запрос был ФБ на ST, его в другой ФБ ещё будут вставлять. На FBD макрос в ФБ не вставишь.
я этот вариант пользую, но к нему не выходит подключить одну переменную битовую и на вход и на выход
Это же на FBD, а запрос был ФБ на ST, его в другой ФБ ещё будут вставлять. На FBD макрос в ФБ не вставишь.
спасбо! корректированный элемент завелся!
Сергей0308
10.10.2024, 11:11
Вот первый пост, с которого всё началось, неужели посмотреть трудно, на предыдущей странице?
Здесь не сказано, что это куда-то вставлять надо!
Вы же на этом внимание акцентируете!
kondor3000
10.10.2024, 13:12
спасбо! корректированный элемент завелся!
А пример Валенка не пробовали? Он ещё проще.
У меня на ПР205 спокойно перебираются все экраны кнопками Вверх и Вниз, хотя функции (никакие!) для этих кнопок не заданы. Как от этого избавиться?
И заодно - Динамический текст используется только для выводв, как избавиться от галки справа?
У меня на ПР205 спокойно перебираются все экраны кнопками Вверх и Вниз, хотя функции (никакие!) для этих кнопок не заданы. Как от этого избавиться?
https://owen.ru/forum/showthread.php?t=37840&p=416892&viewfull=1#post416892
И заодно - Динамический текст используется только для выводв, как избавиться от галки справа?
Пока только костылем - сверху стрелки квадратик закрашенный в цвет фона поместить
https://owen.ru/forum/showthread.php?t=37840&p=416892&viewfull=1#post416892
Пока только костылем - сверху стрелки квадратик закрашенный в цвет фона поместить
Какой-то капец прибор - один костыль, другой... С момента обсуждения этих переходов год уже прошел и что прошивку не поправить никак было?
Денисов Максим Сергеевич
17.10.2024, 10:18
У меня на ПР205 спокойно перебираются все экраны кнопками Вверх и Вниз, хотя функции (никакие!) для этих кнопок не заданы. Как от этого избавиться?
И заодно - Динамический текст используется только для выводв, как избавиться от галки справа?
Динамический текст со скрытой галкой выйдет в owen logic 2.8 уже сегодня!
NooBAsTiK
24.10.2024, 21:21
Добрый вечер!
Имеется модуль МУ210-402, можно как-то задать значение по умолчанию на выходах? Нужно после перезагрузке устройства устанавливать из, а не только нули.
Спасибо
Здравствуйте. Присвоить начальные значения переменным, задаваемым с экрана, совсем нельзя? Надоело после каждой перепрошивки восстанавливать все настройки.
kondor3000
28.10.2024, 15:29
Здравствуйте. Присвоить начальные значения переменным, задаваемым с экрана, совсем нельзя? Надоело после каждой перепрошивки восстанавливать все настройки.
Почему нельзя, сделайте инициализацию из констант, при включении, как здесь инициализация сетевых переменных.
https://owen.ru/forum/showthread.php?t=37840&page=54&p=431676#post431676
Присвоить начальные значения переменным, задаваемым с экрана, совсем нельзя? Надоело после каждой перепрошивки восстанавливать все настройки.
В ПР205 объявляю нужные переменные сетевыми - они и энергонезависимые и могут инициализироваться.
В ПР205 объявляю нужные переменные сетевыми - они и энергонезависимые и могут инициализироваться.
Ты забыл добавить, что их и к экрану привязывать можно
Ты забыл добавить, что их и к экрану привязывать можно
В ПР205 низзя
Я вроде сделал инициализацию после прошивки программы. Но мне так и непонятно с экраном - у элемента ввода числа есть контроль предельных значений, которые можно задать. Почему при этом нельзя задать начальное значение? Это полностью решило бы проблему, потому что обычно настройки задаются с экрана же.
Я вроде сделал инициализацию после прошивки программы. Но мне так и непонятно с экраном - у элемента ввода числа есть контроль предельных значений, которые можно задать. Почему при этом нельзя задать начальное значение? Это полностью решило бы проблему, потому что обычно настройки задаются с экрана же.
Ну, к разрабам с самого начала было куча вопросов по реализации. Некоторые гениальные идеи уже исправляют. Например, галку убрали у динамического текста - всего лишь полтора года прошло. Думаю, еще через пару лет уберут и спорное решение по автоматическому назначению энергонезависимости экранной переменной
МихаилГл
29.10.2024, 07:35
Я вроде сделал инициализацию после прошивки программы. Но мне так и непонятно с экраном - у элемента ввода числа есть контроль предельных значений, которые можно задать. Почему при этом нельзя задать начальное значение? Это полностью решило бы проблему, потому что обычно настройки задаются с экрана же.
Ну как бы "начальное значение" и "энергонезависимое" это немного не одно и то же. Начальное постоянно у вас будет одно и то же, какое задали при программировании. Это константа будет, а не изменяемая переменная.
Начальное значение, это то, которое после прошивки имеет переменная. Конечно оно может меняться в дальнейшем. При этом если переменная НЕ энергонезависимая, то это начальное значение должно быть у неё после каждой перезагрузки, а если энергонезависимая, то её начальное значение после каждой перезагрузки берется из энергонезависимой памяти. Так это должно работать. И например на FLProg под Ардуино работает вполне. Почему программист-любитель сделал за бесплатно то, что профессионалы из большой конторы (и подозреваю за немалые деньги) не могут сделать/догадаться - это конечно вопрос.
МихаилГл
29.10.2024, 09:10
Во первых, овенцы разрабатывают среду, которая переделывает код на st, ld и прочих в код, понятный для микроконтроллера реле. А там а-ля ардуина... Я думаю вполне можно к этому реле подключиться через spi и работать в той среде, которую поддерживает данная железяка. Тут надо курить доки...
Во вторых, надо правильно формулировать, не "начальные", а, например, " Сохранять текущие данные". Это что то вроде в модбас опросах галка: сохранять последнее или обнулять при потере связи.
И вы предлагаете чтоб они в своём движке реализовали механизм, который тут как минимум в 10ти ветках на любой вкус изложен... Возможно да... Но именно: сохранять последнее, а никак не начальные значения...
starmos начальное значение для Modbus переменных работало в ПР114, потом из-за архитектуры ПР200 это убили в ОЛ, после чего появились самодельные макросы-костыли, которые потом добавили в библиотеку макросов ОЛ.
почему похерили, и почему не исправили - для меня загадка.
з.ы. когда меняешь прогу, то есть перепрошиваешь ПР, потом не надо вводить кучу переменных. Если бы ОЛ допускал перед прошивкой считывать в программу значения переменных, а потом заливать новые (последние) значения вместе с новой программой, то наверное и вопросов бы не возникало. А так, у многих переменных через Modbus вагон и тележка, и после обновления программы все вводить долго и муторно. Вот и лепят созданные костыли в виде SelChgI, SelChgF и так далее.
Василий Кашуба
29.10.2024, 14:50
starmos начальное значение для Modbus переменных работало в ПР114, потом из-за архитектуры ПР200 это убили в ОЛ, после чего появились самодельные макросы-костыли, которые потом добавили в библиотеку макросов ОЛ.
почему похерили, и почему не исправили - для меня загадка.
з.ы. когда меняешь прогу, то есть перепрошиваешь ПР, потом не надо вводить кучу переменных. Если бы ОЛ допускал перед прошивкой считывать в программу значения переменных, а потом заливать новые (последние) значения вместе с новой программой, то наверное и вопросов бы не возникало. А так, у многих переменных через Modbus вагон и тележка, и после обновления программы все вводить долго и муторно. Вот и лепят созданные костыли в виде SelChgI, SelChgF и так далее.
А если Вы загрузите обновление с другим списком переменных, отличающихся от исходника? Что Вы получите, если будет реализовано ваше предлжение?
В ПР205 низзя
Точно?
---
вот прям недавно это проверял - мона
Василий Кашуба для этого вводятся проверки однако. Если уж до такой степени изменили программу, то только руками. А если там мелочь правится?
Я говорю про сам факт, что раньше в переменную Modbus можно было сразу указать исходное значение, без привлечения костылей.
За то теперь этими костылями гордятся :) а их не Овен написал, а толи AI!, то ли petera, уже и не помню, но точно форумчане.
А если Вы загрузите обновление с другим списком переменных, отличающихся от исходника? Что Вы получите, если будет реализовано ваше предлжение?
Наверно нужно взять за правило обновлять добавлением, а не "взять/взболтать и высыпать обратно"
Даже если что-то в сетевых перестало использоваться - пусть лежит там же, помечайте как резерв для следующих обновлений
GeraZverev
05.11.2024, 15:22
Здравствуйте. Подскажите, пож-та.
Если счетчик CTN можно сделать энергонезависимым, то после выключения и включения питания ПР на выходе Q снова будет 5? Правильно понимаю?
79843
И еще момент не осилил. Уставку CTN через Write to FB нельзя записать? На панели свойств опция есть, но как-то не получается. :confused:
79844
Правильно! Если Вы хотите получить уставку на выходе CTN, то нужен сигнал на входе R:
79845
GeraZverev
05.11.2024, 16:27
Правильно! Если Вы хотите получить уставку на выходе CTN, то нужен сигнал на входе R:
79845
ОК, спасибо.
Пытаюсь сделать циклический счетчик, который прокручивает целые от 0 до 10 вперед и назад при нажатии кнопок ПР205. Это чтобы гонять белый прямоугольник по экрану для выбора позиций меню. Думал, может как-то можно из программы менять уставку CTN, но не получилось в симуляторе. Пока изобрел такую схему. Работает (в симуляторе). И вот экран меню с выбором позиций.
79847
79848
Сильно не смейтесь, полный новичок. Опыта в программировании или пром. автоматике 0. Не уверен, что правильно делаю. Возможно, в ПР уставки с экрана вообще следует как-то иначе задавать, другой подход, иная идеология и т д...
Главное чтобы Вам нравилось этим заниматься. А способов реализации той или иной задачи огромное множество.
Правда новички наровят находить самые сложные варианты.
Я предлагаю рассмотреть вариант с применением энергонезависимой переменной:
79851
GeraZverev
05.11.2024, 20:01
Главное чтобы Вам нравилось этим заниматься. А способов реализации той или иной задачи огромное множество.
Правда новички наровят находить самые сложные варианты.
Я предлагаю рассмотреть вариант с применением энергонезависимой переменной:
79851
EFrol, спасибо Вам за схему! Рассмотрел. Энергонезависимая переменная это то, что нужно. Немного доработал, чтобы когда 10, если вперед, счетчик перескакивал на 0. И наоборот, когда 0 и еще раз жмем назад, на выходе становилось 10. В симуляторе, вроде, работает корректно.
79858
OK! Я тогда Ваш доработаю:
79864
GeraZverev
08.11.2024, 13:49
EFrol, спасибо! Немного прояснилось со счетчиками. Dimency на стр. 379 также рассказал, как на ST написать счетчик и сделать его энергонезависимым с помощью переменной.
79919
Запутался с энергонезависимыми переменными.
Вот, например, в переменнной В висит логическая 1, с А приходят импульсы (от кнопки) и в переменную С записывается то 0, то 1. Я делаю С энергонезависимой (и запись в конце цикла - ДА). Тогда, если в С была 1, то после откл-вкл питания ПР в С снова окажется 1? Получается, что на выходе импульсного реле ON_OFF также будет 1? Или я неверно понимаю?
kondor3000
08.11.2024, 14:05
Запутался с энергонезависимыми переменными.
Вот, например, в переменнной В висит логическая 1, с А приходят импульсы (от кнопки) и в переменную С записывается то 0, то 1. Я делаю С энергонезависимой (и запись в конце цикла - ДА). Тогда, если в С была 1, то после откл-вкл питания ПР в С снова окажется 1? Получается, что на выходе импульсного реле ON_OFF также будет 1? Или я неверно понимаю?
Ваш блок ON_OFF не энергонезависимый, выкиньте его и замените схемой энергонезависимого Т-триггера 79922
В переменной Q8, будет запомнено последнее состояние Т триггера.
Попробуйте создать энергонезависимую ON_OFF включить её сигналом на входе, а потом сбросить питание. Что -получится?
79923
Затем создайте макрос с такой же (энергонезависимой переменной, но внутри макроса):
79924
Замените или выставьте макрос в схему и повторите эксперимент.
79925
Что изменилось? Т-триггер в виде макроса OnOff запоминает своё состояние между сбросами?
GeraZverev
08.11.2024, 15:39
К сожалению, прибора пока нет. Если бы реле было, конечно же, проводил эксперименты непосредственно с реле. Скоро куплю. Там еще много чего надо. Релюшки, диммеры (скорее всего, Финдер-ведомый), блок на 24 В, датчики движения, температуры и т. д. Стенд с дин-рейками надо смастерить. На полу как-то не очень схемы собирать.
Попробую ответить.
Попробуйте создать энергонезависимую ON_OFF включить её сигналом на входе, а потом сбросить питание. Что -получится?
79923
Предположу, состояние переменной сохранится.
Затем создайте макрос с такой же (энергонезависимой переменной, но внутри макроса):
79924
Замените или выставьте макрос в схему и повторите эксперимент.
79925
Что изменилось? Т-триггер в виде макроса OnOff запоминает своё состояние между сбросами?
Не уверен, что триггер в составе макроса сохранит состояние. Если не ошибаюсь, в макрос нельзя вставлять сетевые переменные, сервисные (их в ПР205 нет ?), ПИД-регуляторы. Возможно, и на энергозависимые накладывается ограничение.
Хотя, вот на стр 379 был вопрос
Доброго дня
В ФБ на ST нужно сохранить состояние между выключениями питания.
Для ФБ на FBD просто объявил бы переменную энергонезависимой.
А для ST не соображу, как быть.
Пока путаюсь в терминах. ФБ на FBD - это и есть макрос?
Извиняюсь за тупые вопросы. С Т-триггером вроде понятно. EFrol, kondor3000, спасибо за помощь!
GeraZverev
08.11.2024, 15:41
Описка. Возможно, и на энергоНЕзависимые...
kondor3000
08.11.2024, 16:38
Пока путаюсь в терминах. ФБ на FBD - это и есть макрос?
Макрос, это блок на FBD, в макросах переменные могут быть и энергонезависимые.
На ST это ФБ (функциональный блок), энергонезависимые только снаружи, нужен вход и выход переменной.
Внутри только в виде константы, например задача уставок, которые меняться не будут.
FBD - функционально блочные диаграммы
ST - структурный текст
это языки (способы записывать алгоритмы)
ФБ - функциональный блок (это подпрограмма со своими переменными), которые сохраняют свои значения между программными циклами (аналог класса в ООП)
ФБ - можно написать на любом языке FBD или ST (разница в том, что в ST нельзя создать энергонезависимые переменные)
На ST можно создавать функции - это программы, имеющие только один выход и не сохраняющие значений внутренних переменных
Для ФБ на ST используют простой костыль:
function_block fbPrimer
var_input
X : bool;
EE : bool; //входная переменная с типом данных bool
end_var
var_output
EQ : bool; //выходная переменная с типом данных bool
end_var
EQ := EE; // Востановим сохраненное значение EQ
// Здесь значение EQ может меняться в соответствии с алгоритмом
end_function_block
79931
В этом случае значение переменной EQ передается на выход ФБ, которое сохраняется в энергонезависимой Value.
Тогда при следующем вызове ФБ это значение возвращается в виде переменной EE.
GeraZverev
08.11.2024, 19:38
EFrol, kondor3000 огромная благодарность! Сегодня исчезли многие вопросы и ситуация прояснилась. Решения Ваши обязательно выполню на реальном приборе (лабораторные работы в институте - дело привычное). А пока тщательный конспект и пойду исправлять схемные решения, которые у меня ни разу не НЕ энергонезависимые. Еще раз большое спасибо за обучение!
GeraZverev
10.11.2024, 05:59
kondor3000, разрешите еще вопрос. В теме про фичи и баги OL (https://owen.ru/forum/showthread.php?t=12264&p=450555&viewfull=1#post450555) Вы говорили о сбросе экранной переменной:
Лоджик бывает и зависает, не открывайте много проектов одновременно. Сохраняйтесь чаще.
По поводу кнопки, нужен сброс после включения переменной, например импульс на R-trig на 1 цикл или на таймере TP, на 1 сек. 79947
Запустил в симуляторе, все работает. Но уже не первый раз замечаю один непонятный момент.
Привязываю переменную Auxiliary к кнопке ESC, выставляю "записать True". Здесь ясно.
79949
Затем шагаю цикл за циклом. Сначала все по нулям, вопросов нет.
79950
Нажимаю ESC, след. цикл - устанавливается 1 в A, B, C и D, вопросов нет.
79951
След. шаг. B, C и D устанавливаются в 0, а вот А остается 1.
79952
Это и непонятно! Почему в А в том же цикле не прописывается 0? A, B, C и D - это разные "ячейки" в ОЗУ?
И почему тогда вместе с вЫходной В в том же цикле прописываются в 0 еще и две ВХОДные переменные C и D?
Я читал на форуме, что сначала записывается вЫходная переменная (у нас В), а в течение след. цикла ВХОДные переменные (у нас A, C и D).
Но в данном случае не так... :confused:
Дальше вопросов нет. Все по нулям и снова можно нажимать на кнопку ESC.
79953
GeraZverev
10.11.2024, 06:45
Еще вопрос появился.
Условие задачи. В огороде летний душ. Сверху пластиковый бак. Сравнительно большая (покупная) емкость и ТЭН внутри.
Планирую измерять в емкости уровень воды и выводить результат на экран ПР205. Заодно сделать блокировку, чтобы таймер
не включил ТЭН, если уровень воды ниже минимально допустимого. От места установки ПР до емкости около 25 метров.
Собственно, вопрос. Посмотрел у ОВЕНа поплавковые датчики. Есть ПДУ-RS с выходом -485 и ПДУ-И с аналоговым выходом 4-20 мА.
Какой лучше использовать? Или, может, у других производителей есть что аналогичное? Если сталкивался кто с подобной задачей, подскажите пож-та.
Еще вопрос появился.
Условие задачи. В огороде летний душ. Сверху пластиковый бак. Сравнительно большая (покупная) емкость и ТЭН внутри.
Планирую измерять в емкости уровень воды и выводить результат на экран ПР205. Заодно сделать блокировку, чтобы таймер
не включил ТЭН, если уровень воды ниже минимально допустимого. От места установки ПР до емкости около 25 метров.
Собственно, вопрос. Посмотрел у ОВЕНа поплавковые датчики. Есть ПДУ-RS с выходом -485 и ПДУ-И с аналоговым выходом 4-20 мА.
Какой лучше использовать? Или, может, у других производителей есть что аналогичное? Если сталкивался кто с подобной задачей, подскажите пож-та.
ТЭН, летний душ, голый человек, надеюсь жанр у этой истории будет комедийный
АРТ.Кар 64
10.11.2024, 08:43
ТЭН, летний душ, голый человек, надеюсь жанр у этой истории будет комедийный
К тому же,если для "подобного мероприятия" использовать ПР 205-то не мудрено,что можно стать голым.
In_Da_Cher_A
10.11.2024, 09:27
Какой лучше использовать?какой сможете купить
Или, может, у других производителей есть что аналогичное?может есть. Может нет. Зависит - у каких, и что аналогичное?
Условие задачи. В огороде летний душ. Сверху пластиковый бак.
начните использовать интернет по назначению, не превращайте форум в Яндекс Алису
79954
GeraZverev
10.11.2024, 09:50
какой сможете купить
В принципе... любой смогу купить.
Не ругайте сильно. Тема новая, знаний и опыта в решении подобных задач нет.
начните использовать интернет по назначению, не превращайте форум в Яндекс Алису
ОК. Попрошу модераторов удалить вопрос. Видимо, глупость спросил.
Бог с ним, с датчиком и душем. Если можно, поясните вопрос #3860.
In_Da_Cher_A а там есть с выходом 4-20ма или с RS485?
kondor3000
10.11.2024, 10:25
kondor3000, разрешите еще вопрос. В теме про фичи и баги OL (https://owen.ru/forum/showthread.php?t=12264&p=450555&viewfull=1#post450555) Вы говорили о сбросе экранной переменной:
Это и непонятно! Почему в А в том же цикле не прописывается 0? A, B, C и D - это разные "ячейки" в ОЗУ?
И почему тогда вместе с вЫходной В в том же цикле прописываются в 0 еще и две ВХОДные переменные C и D?
Я читал на форуме, что сначала записывается вЫходная переменная (у нас В), а в течение след. цикла ВХОДные переменные (у нас A, C и D).
Но в данном случае не так... :confused:
Потому, что вы на выходной переменной не поставили запись в конце цикла - Да. 79958
У меня работает правильно, сначала сброс выхода, а присвоение на вход в следующем цикле. 79956
Сначала опрос входов, выполнение программы и присвоение выходов. Присвоение входа будет в следующем цикле.
Обмануть можно так, подключить выход на прямую, а не через переменную. 79957
GeraZverev
10.11.2024, 11:08
kondor3000, все так! "Запись в конце цикла - Да" - не поставил, забыл. Теперь все работает так, как Вы сказали:
У меня работает правильно, сначала сброс выхода, а присвоение на вход в следующем цикле. Сначала опрос входов, выполнение программы и присвоение выходов. Присвоение входа будет в следующем цикле.
Вопрос снят. Спасибо!
Сергей0308
10.11.2024, 11:29
Еще вопрос появился.
Условие задачи. В огороде летний душ. Сверху пластиковый бак. Сравнительно большая (покупная) емкость и ТЭН внутри.
Планирую измерять в емкости уровень воды и выводить результат на экран ПР205. Заодно сделать блокировку, чтобы таймер
не включил ТЭН, если уровень воды ниже минимально допустимого. От места установки ПР до емкости около 25 метров.
Собственно, вопрос. Посмотрел у ОВЕНа поплавковые датчики. Есть ПДУ-RS с выходом -485 и ПДУ-И с аналоговым выходом 4-20 мА.
Какой лучше использовать? Или, может, у других производителей есть что аналогичное? Если сталкивался кто с подобной задачей, подскажите пож-та.
Если Вы хотите самый дорогой вариант исполнения в галактике, тогда всё правильно, короче, мне кажется можно сделать раз в пять дешевле и надёжней, в смысле применить датчик(преобразователь) избыточного давления типа такого:
79959
https://owen.ru/product/datchik_preobrazovatel_izbitochnogo_davleniya_PD10 0_dlya_nasosov_kotelnykh_vodosnabzheniya/modifications
и прибор ТРМ1:
79960
https://owen.ru/product/trm1/price
Если и нагрев сделать на одном приборе, то тогда подойдёт прибор 2ТРМ1:
79969
https://owen.ru/product/2trm1/price
В качестве датчика температуры любое термосопротивление например такое:
79970
https://owen.ru/product/dtshh5_termosoprotivleniya_s_kommutatcionnoj_golov koj/modifications
79972
79973
GeraZverev
10.11.2024, 11:42
ТЭН, летний душ, голый человек, надеюсь жанр у этой истории будет комедийный
К тому же,если для "подобного мероприятия" использовать ПР 205-то не мудрено,что можно стать голым.
Если кому из участников форума действительно интересно, что затевается, расскажу. Секрета нет. Тем более, что первую часть, самое главное, уже сделали. ПР 205 для экспериментов куплю, но не факт, что именно этот прибор будет использован в проекте. Возможно, остановимся на ПЛК + сенсорная панель. Брат болен, да и видит хреново. Менять уставки, глядя в экран ПР 205, будет ему не слишком удобно. Пишите в личку, если интересно. По делу что посоветуете - буду рад.
Сергей0308, там обычное атмосферное давление, 10Е5 Па. Насчет дороговизны... Если, например, только для вытяжки взять пару таких триггеров, то как бы тоже не бесплатно. А в тз - не только вытяжка.
79961
In_Da_Cher_A
10.11.2024, 12:00
Тема новая, знаний и опыта в решении подобных задач нет.купите любой терморегулятор с датчиком температуры, на ОЗОНе такого китайского добра всех видов от 300 рублей, если хотите поиграться в очумелые ручки
если не хотите - гуглите тэн для воды с датчиком температуры, тэн для воды с терморегулятором
сразу получите тэн с регулировкой на корпусе, включите в розетку будет вам тёплая вода и защита от перегрева
если хотите прикрутить датчик уровня воды и поиграть в автоматизацию - купите на али бесконтактный датчик XKC-Y25 или 28 , стоит 350 рублей, но нужна будет релюшка
не хотите играть в автоматизацию - там же на али гулите Liquid Water Level Sensor и купите пластиковый поплавковый датчик уровня цена вопроса от 100 рублей вариантов вагон и тележка хоть сверху хоть вбок хоть как его заколхозить. Кстати, можете очень быть удивлены, встретив там знакомые датчики, которые здесь продают в раз десять дороже
там же гуглите water automatic controller
всё это вам ободётся гораздо дешевле чем овен
In_Da_Cher_A
10.11.2024, 12:22
In_Da_Cher_A а там есть с выходом 4-20ма или с RS485?зачем? это всё абсолютно не нужно
если уж так руки чешутся что-то автоматизировать по хозяйству
то там же на али Ultrasonic Wireless Water Liquid Level Sensor
вариантов заколхозить датчик хоть по вайфай, хоть зигби, хоть как, хоть на телефон уровень выводить - масса вариантов, цена вопроса - от 3000 рублей и даже бак не надо дырявить
GeraZverev
10.11.2024, 13:02
зачем? это всё абсолютно не нужно
если уж так руки чешутся что-то автоматизировать по хозяйству
то там же на али Ultrasonic Wireless Water Liquid Level Sensor
вариантов заколхозить датчик хоть по вайфай, хоть зигби, хоть как, хоть на телефон уровень выводить - масса вариантов, цена вопроса - от 3000 рублей и даже бак не надо дырявить
Да, действительно я идиотский вопрос задал. Про датчики. В сети есть информация по теме, в т. ч. про ОВЕНовские измерители. In_Da_Cher_A, спасибо! Будем посмотреть.
А горячий ТЭН и правда можно крепить к пластиковому баку?
Это реально возможно?
GeraZverev
10.11.2024, 18:51
А горячий ТЭН и правда можно крепить к пластиковому баку?
Это реально возможно?
Бак пластиковый, где-то 1х1х0,4 м или чуть больше. Покупной, не самоделка. Около места установки ТЭНа, снаружи, пластиковая крышка. Под ней, видимо, клеммная колодка. Как конкретно заделан ТЭН в стенку - понятия не имею. Вопрос такой даже не возникал. Если Вас это интересует, могу узнать модель. Очевидно, вопрос лучше задать производителю (или тем, кто их привозит).
Вот что-то такое.
79971
In_Da_Cher_A
10.11.2024, 19:06
А горячий ТЭН и правда можно крепить к пластиковому баку?
Это реально возможно?смотря какой пластик, так-то никаких проблем нет, ты же не сам тэн к пластику прижимаешь как выжигатель по дереву
если бак обычный полиэтилен вторичный, из чего их обычно и делают, то не надо его кипятить длительно, а душевые 50-60 градусов он спокойно выдержит
или полипропиленовая труба на горячую воду не смущает?
полно дачных умывальников и душевых баков из полипропилена, он спокойно выдерживает 120-140 градусов, а плавится начинает про 170
https://www.vseinstrumenti.ru/product/nalivnoj-vodonagrevatel-elbet-evbo-17-1432708/
вот вообще сразу душ вместе с тэном, цена вопроса вообще смешная
https://www.vseinstrumenti.ru/product/nalivnoj-vodonagrevatel-elbet-evbo-55-1432715/
автор вопроса может спокойно заказать полипропиленовый бак на свой размер, это обойдётся дешевле, чем овен
Спасибо. Не знал, вот и засомневался.
GeraZverev
11.11.2024, 19:08
Всем здравствуйте!
Вопрос уже был задан пользователем Виталий_khv на стр. 101, но обсуждения не было.
- Про таймер думал, тут появляется небольшой казус. К примеру, пользователь переходит по пунктам меню, изучая его, как вдруг его по сработавшему таймеру выкидывает в главное меню
Подскажите, пож-та, как следует (или как правильно, как лучше) сделать алгоритм, который я назвал "Блокировка по кнопкам".
У меня есть экраны "Главное меню" и "Нагреватель". В схеме есть блок "Блокировка по кнопкам".
Перехожу в экран "Нагреватель". ОК, пока ничего не происходит. Таймер при этом может быть включен (логическая 1 поступает на выход ТАЙМЕРА) или выключен. Если нажимаю кнопку ESC, перехожу на экран "Главное меню". Таймер при этом остается в том состоянии, в котором и был. На выходе блока "Блокировка по кнопкам" лог. 0.
Теперь другая ситуация. Перехожу в экран "Нагреватель". Пока ничего не происходит. Таймер при этом может быть включен (логическая 1 поступает на выход ТАЙМЕРА) или выключен. Но теперь я нажимаю на другие кнопки (ESC не трогаю), изменяя уставки таймера. В этот момент должна включиться "Блокировка по кнопкам" и на выходе блока появляется лог. 1. (Что мы делаем с таймером - не важно. Можем гонять уставки туда-сюда, таймер включается и выключается, нас это не волнует. Лог. 1 на выходе блока "Блокировка по кнопкам" блокирует сигнал с выхода таймера на исполнительный элемент, катушку реле или контактора.) В момент включения "Блокировки" запускается счетчик времени, например, на 5 минут (в моей тестовой программе пока 10 секунд).
Каждый раз, если нажимаем на любую кнопку, кроме ESC в течение 5 минут, счетчик сбрасывается в 0 и начинает отсчет 5 мин с нуля. На катушку реле или контактора сигнал от таймера (не важно, включен в данный момент таймер или выключен) не поступает, т. к. на выходе блока "Блокировка по кнопкам" висит лог. 1.
Если в течение 5 мин ни на какие кнопки не нажимали,на выходе блока "Блокировка по кнопкам" появляется лог. 0. Блокировка сбрасывается.
Если в течение 5 мин нажали ESC (уставки поменяли и хотим сразу включить нагреватель), блокировка сбрасывается. На выходе блока "Блокировка по кнопкам" появляется лог. 0. И при этом переходим в экран "Главное меню".
Счетчик я написал на ST.
79987
79989
Испытал, вставил в программу. Вроде, эта ступень блокировки работает правильно, проблем не выявил.
Смысл этой ступени блокировки в том, чтобы во время настройки уставок таймера нагревателя сигнал с выхода таймера (0 там или лог. 1 - не важно! Можем играть уставками, чудить, тупо раз за разом включая и выключая таймер.) не поступал на исполнительный элемент.
И снова возник вопрос.
Правильно ли подошел к решению задачи? Если нет, как правильно? Может, подобная задача решается принципиально иначе? Можно ли сделать проще? Может, счетчик времени проще на FBD сделать?
Честно говоря, не могу отделаться от ощущения, что снова изобрел велосипед. :) Колеса квадратные и седло на метр выше руля.
Извините, если написал сумбурно или же излишне подробно.
kondor3000
11.11.2024, 19:33
Только это не счётчик, а таймер, т. к. работаете со временем. Если вас устраивает, то можно и так.
В принципе, подошёл бы любой готовый таймер, импульс разной полярности по входу перезапустит, например таймер ТОN, ТР.
Тут есть примеры таймеров с выходом времени и некоторых блоков. https://owen.ru/forum/showthread.php?t=37203&page=9&p=429067#81
Всем здравствуйте!
Вопрос уже был задан пользователем Виталий_khv на стр. 101, но обсуждения не было.
Не понял, что вы хотите, автоматом при бездействии возвращаться на главный экран?
GeraZverev
11.11.2024, 21:36
kondor3000,можно у Вас спросить про блокировки? Хотя бы мысли в правильном направлении двигаются?
Нагреватель - наиболее сложный элемент системы, "сосредоточение головной боли", если образно. И блокировок должно быть несколько. Наверное.
Подчеркну, что не сам таймер нагревателя блокируется, а сигнал с его выхода. Таймер можно "крутить" как угодно или вообще выключить.
Блокировка по нижнему уровню воды (чтобы ТЭН не сгорел). Сброс при достижении некоторого уровня воды в баке. Если не ошибаюсь, это называется гистерезис.
Следствие - нужен измеритель уровня. Или устанавливать три датчика-индикатора на разных уровнях, что представляется нецелесообразным.
Блокировка, если потеряна связь с измерителем уровня или он вышел из строя. Может, бак пустой, а таймер без этой блокировки включит контактор, а контактор подаст напряжение на ТЭН...
Блокировка при включении ТЭНа в ручном режиме. Делается с помощью реверсивного переключателя с нейтралью.
Здесь надо позаботиться о том, чтобы в любой ситуации (даже когда на выходе таймера лог. 1) контактор не дергался во время манипуляций с реверсивным переключателем и некоторое время после окончания этих манипуляций. Скажем, нагреватель работает, но кто-то, злонамеренно или по глупости, начал дергать переключатель ручного режима. Система должна отключить контактор и выждать, пока "злодею" надоест щелкать. А подавать/снимать напряжение на ТЭН - для ТЭНа такие действия не страшны (если, конечно, уровень воды в норме).
А если без воды вручную включить нагрев - то сработает защита по максимальному току или отсечке (второе, скорее всего). Но ТЭН придется менять.
PS Для многих задача покажется элементарной, а вопросы блокировок - простейшими и стандартными. Мне пока сложно. Каждый пункт алгоритма приходится тщательно продумывать. Спросить у знакомых? Так никто из знакомых и многочисленной родни с автоматикой и близко не связан. Поэтому так ценно мнение и советы умных, грамотных и опытных людей.
Не понял, что вы хотите, автоматом при бездействии возвращаться на главный экран?
Dimensy, нет. Смотрите. Допустим, кто-то начал бездумно менять уставки таймера. Если нет этой блокировки, Таймер начнет то подавать напряжение на обмотку контактора, то снимать. Контактор делает "бум-бум-бум". Человек балуется, прикольно. (Например, приедет племянник в гости и будет развлекаться. Этот может.) А для контактора такой режим не очень. Вот для этого блокировка по кнопкам.
Каждый раз, если нажимаем на любую кнопку, кроме ESC в течение 5 минут, счетчик сбрасывается в 0 и начинает отсчет 5 мин с нуля. На катушку реле или контактора сигнал от таймера (не важно, включен в данный момент таймер или выключен) не поступает, т. к. на выходе блока "Блокировка по кнопкам" висит лог. 1.
Возвращаться на главный экран (если не вернулись после настройки по ESC) система будет, например, в 00 часов 00 мин.
GeraZverev датчик давления 4-20мА при такой высоте плохой помощник, хотя 40 см воды наверное можно отследить.
Датчики уровня топлива есть с Modbus. Но не очень уверен, что они нормально воду будут переваривать.
Имхо, хотите дешево, поплавковый датчик с сухим контактом, настроенный на нижний уровень. И какой-нибудь запирающий клапан для верхнего уровня тоже с сухим контактом.
Два таких https://armastock.ru/miniatyurnyy-poplavkovyy-vyklyuchatel-pdp-01-220v
Нижний уровень выше тэна.
Или такое на два уровня, где-то 300мм для высоты бака 400. https://armastock.ru/nerjaveyuschiy-dvoynoy-poplavkovyy-datchik-vyklyuchatel-pds-03-do-220v-aisi-304-pdu-n112#PDS-03-300
GeraZverev
11.11.2024, 23:40
GeraZverev датчик давления 4-20мА при такой высоте плохой помощник, хотя 40 см воды наверное можно отследить.
Датчики уровня топлива есть с Modbus. Но не очень уверен, что они нормально воду будут переваривать.
Имхо, хотите дешево, поплавковый датчик с сухим контактом, настроенный на нижний уровень. И какой-нибудь запирающий клапан для верхнего уровня тоже с сухим контактом.
Два таких https://armastock.ru/miniatyurnyy-poplavkovyy-vyklyuchatel-pdp-01-220v
Нижний уровень выше тэна.
Или такое на два уровня, где-то 300мм для высоты бака 400. https://armastock.ru/nerjaveyuschiy-dvoynoy-poplavkovyy-datchik-vyklyuchatel-pds-03-do-220v-aisi-304-pdu-n112#PDS-03-300
melky, спасибо за помощь!
Я пока эти уровнемеры в реале не видел. Поэтому соображения (пока) чисто теоретические. Наверное, ошибся я про 40 см. Высота бака, скорее всего, меньше, сантиметров 30.
Но не суть.
Про датчик на 2 уровня вот какие мысли.
79995
Первое. Допустим, уровень воды на минимуме. Датчик нижнего уровня это зафиксирует, блокировка включилась, ОК. Начали наполнять бак. Не будет ли дергаться поплавок во время переходного процесса? Блокировка будет несколько раз включаться и отключаться и, если уже наступило время греть воду ( на выходе таймера лог. 1), контактор начнет дергаться. Как бы не очень хорошо.
Второе. Хотелось бы видеть уровень воды на экране, дистанционно. Дело в том, что разглядеть уровень в тонкой трубочке на стенке бака тяжело даже мне. Приходится на лестницу вставать, неудобно. А родственники обычно (это из опыта) наполняют бак где-то наполовину. Да, верхний уровень датчика можно и на 50% установить (наверное), но как быть, если еще родня приехала (это не редкость) и надо заполнить полностью? Придется опять разглядывать трубочку, вспоминая закон сообщающихся сосудов и мысленно ругаясь, что плохо видно. Поэтому я и подумал, что нужно регистрировать 3 уровня.
А если вот такой взять, ОВЕНовский? Или что-то подобное.
79996
Пока еще точно не узнавал, но в каталоге есть на 25 см и больше. Вот 25-30 см как раз подойдет. Этот уровень измеряет, и гистерезис с блокировками можно организовать. По крайней мере, так представляется теоретически. И не надо будет, включив насос, ломать глаза, стоя на лестнице и прыгать вниз, когда "пора вырубать". Реально, очень неудобно. Брат так вообще плохо передвигается, но это к слову.
PS Друзья, поймите правильно. Я не гну пальцы и не выпендриваюсь. Тем более, никого не хочу обидеть или унизить. Мы обсуждаем технические моменты. Финансовые вопросы предлагаю пока не затрагивать. Сделать грамотно электрику не дешево и это все понимают (или почти все). Например, только байпасс по стоимости комплектующих перешагнет, по грубой оценке, за 50 р. Или кабель. Не самый большой дом и средней сложности проект - около километра. Поэтому, разумеется, "хотелки" соизмеряем с возможностями.
Попробуйте купить у китайцев датчик давления 4-20мА с самым минимальным пределом измерения и измерять высоту столба воды. Датчик вкручивается в патрубок внизу.
30 см это достаточный уровень воды для датчика. Сейчас не помню, посмотрите в нете какой предел давления вам необходим. Я так дома солярку в баке измеряю.
Поплавковый датчик в качестве защиты для ТЭНа. Дергаться будет, да и нас рать, таймер решит проблему.
Вам нужен датчик до 4000 Паскаль это примерно 40см. Можете взять на 5000 Па (5 кПа)
блин, на низкие давления у Овен датчики просто с конскими ценниками.
хм, что-то нету на маленькие давления дешевых... Можно вниз опустить трубу, в которой будет установлен датчик, таким образом использовать датчик ДИ.
GeraZverev
12.11.2024, 00:16
Спасибо, посмотрю. Насчет дерганья согласен, можно в программе "заглушку" сделать на время переходного процесса.
Вот еще вопрос появился.
Если есть устройство с RS-485, которое что-то измеряет или входы опрашивает, например. Я хочу через ПР (или ПЛК) считывать данные и работать с устройством по -485. Чтобы на этом устройстве выставить параметры связи, нужна соответствующая программа? У ОВЕНа это конфигуратор? И как с "обычного" компа подсоединиться к устройству? Нужно что-то, что сигнал с USB шины преобразует в -485? Или это как-то иначе делается?
Не смейтесь, пока я плаваю в теме. Хотя бы, правильно понял общие моменты или нет.
Usb - rs485 преобразователь.
С датчиками давления промашка, слишком маленькая высота, на такое низкое давление столба воды дешёвых датчиков нет.
Можно ещё посмотреть что-то из ардуиновских, но там скорее будут 0-5В а то и 0-3В что может быть не удобным. Хотя входы ПР вполне потянут.
Ну, китайские устройства с rs485 точно настраиваются не через программы оаен :) ищите внимательнее, чтобы хоть какое-то описание было. Обычно через смену значений по умолчанию по каким-то регистрам.
GeraZverev
12.11.2024, 01:30
Ардуино - точно нет. Девиз такой: :) ближе к промке, подальше от паяльника. :)
Dimensy, нет. Смотрите. Допустим, кто-то начал бездумно менять уставки таймера. Если нет этой блокировки, Таймер начнет то подавать напряжение на обмотку контактора, то снимать. Контактор делает "бум-бум-бум". Человек балуется, прикольно. (Например, приедет племянник в гости и будет развлекаться. Этот может.) А для контактора такой режим не очень. Вот для этого блокировка по кнопкам.
Каждый раз, если нажимаем на любую кнопку, кроме ESC в течение 5 минут, счетчик сбрасывается в 0 и начинает отсчет 5 мин с нуля. На катушку реле или контактора сигнал от таймера (не важно, включен в данный момент таймер или выключен) не поступает, т. к. на выходе блока "Блокировка по кнопкам" висит лог. 1.
Возвращаться на главный экран (если не вернулись после настройки по ESC) система будет, например, в 00 часов 00 мин.
Так сделайте переход на экран настроек по паролю
А еще, можно сделать по аналогии с ККБ - задать минимальное время работы и паузы для контактора, скажем, 20 сек работы и 1 мин паузы
Спасибо, посмотрю. Насчет дерганья согласен, можно в программе "заглушку" сделать на время переходного процесса.
Вот еще вопрос появился.
Если есть устройство с RS-485, которое что-то измеряет или входы опрашивает, например. Я хочу через ПР (или ПЛК) считывать данные и работать с устройством по -485. Чтобы на этом устройстве выставить параметры связи, нужна соответствующая программа? У ОВЕНа это конфигуратор? И как с "обычного" компа подсоединиться к устройству? Нужно что-то, что сигнал с USB шины преобразует в -485? Или это как-то иначе делается?
Не смейтесь, пока я плаваю в теме. Хотя бы, правильно понял общие моменты или нет.
https://owen.ru/product/owen_as4
Можно и https://duino.ru/USB-RS485.html/, но Ваш дивиз?! Держитесь его!
GeraZverev я имел ввиду использование какого-то датчика готового исполнения из вариаций для Arduino. Потому что платить за датчик низкого давления ДИ от Овен тысяч 17 как-то перебор для измерения уровня садового душа. :)
По идее нужен с верхним пределом 0,01 МПа и выходом 4-20мА или 0-10В. В смысле с таким верхним пределом от 0 до 0,01 МПа должен подойти.
GeraZverev я имел ввиду использование какого-то датчика готового исполнения из вариаций для Arduino. Потому что платить за датчик низкого давления ДИ от Овен тысяч 17 как-то перебор для измерения уровня садового душа. :)
По идее нужен с верхним пределом 0,01 МПа и выходом 4-20мА или 0-10В. В смысле с таким верхним пределом от 0 до 0,01 МПа должен подойти.
7 тыс
79998
Dimensy о, этот я пропустил.
ПД100-ДИ0,016-171-1,0 - даже такой подойдет. 1% там за глаза. 6240
Для блокировки ТЭНа поплавковый датчик в придачу к датчику давления. Так же от переполнения можно тоже поплавковый датчик. Пластиковые, на которые ссылки давал, вполне подойдут. И стоят они там не сильно уж богато. А для уровня датчик давления в нижней точке. Можно даже пересчитать в объем, если форма емкости не сильно уж неправильная. Ну или заливая мерными емкостями сделать таблицу.
Сергей0308
12.11.2024, 09:51
Dimensy о, этот я пропустил.
ПД100-ДИ0,016-171-1,0 - даже такой подойдет. 1% там за глаза. 6240
Для блокировки ТЭНа поплавковый датчик в придачу к датчику давления. Так же от переполнения можно тоже поплавковый датчик. Пластиковые, на которые ссылки давал, вполне подойдут. И стоят они там не сильно уж богато. А для уровня датчик давления в нижней точке. Можно даже пересчитать в объем, если форма емкости не сильно уж неправильная. Ну или заливая мерными емкостями сделать таблицу.
Зачем тогда что-то писать, если Вы другие посты темы не читаете, в смысле, я даже ссылку давал!
https://owen.ru/forum/showthread.php?t=26216&page=387
Сергей0308 пропустил по датчику. А вообще если у человека есть ПР или планируется, то вся та масса приборов нафик не нужна. Даже дорогой датчик температуры.
у меня вполне справляются в качестве датчиков температуры датчики LM337 - правда у него диапазон напряжения от 2.х до 3.х Вольт. Но для дома вполне. И стоят копейки.
Как вариант, можно у rovki взять плату для датчиков DS18B20 вместо одного из портов RS ПР200.
А можно вообще замутить все на такой штуке jethub D1+ https://jethome.ru/d1p/ плюс модули ввода/вывода нужные. например под вход 4-20мА и датчики температуры ds18B20
там 2 или 3 входа выхода есть. Взять ее просто с Linux и поставить туда RapidScada. И всем этим хозяйством управлять без всяких ПР-ок. Ну, придется чуть-чуть с C# поиграться. Скрипты там только на этом языке пока что.
Еще в придачу получить мониторинг не только бака с водой, а что еще потом взбредет в голову.
GeraZverev
12.11.2024, 10:15
GeraZverev я имел ввиду использование какого-то датчика готового исполнения из вариаций для Arduino. Потому что платить за датчик низкого давления ДИ от Овен тысяч 17 как-то перебор для измерения уровня садового душа. :)
По идее нужен с верхним пределом 0,01 МПа и выходом 4-20мА или 0-10В. В смысле с таким верхним пределом от 0 до 0,01 МПа должен подойти.
melky, прошу прощения за невнимательность. Это я уже носом клевал.
Спасибо большое всем!!! Вечером обязательно внимательно изучу. Сейчас по делам, и профили для стенда надо подготовить.
Kolunayev
14.11.2024, 17:38
Добрый день. На аналоговый вход ПР200 подаются импульсы напряжением 5В частотой от 0 до 300 Гц. Есть ли какой-нибудь макрос частотомер для измерения частоты этих импульсов?
kondor3000
14.11.2024, 18:36
Добрый день. На аналоговый вход ПР200 подаются импульсы напряжением 5В частотой от 0 до 300 Гц. Есть ли какой-нибудь макрос частотомер для измерения частоты этих импульсов?
В примере есть макрос Частотомер, на входе АI поставьте уровень нуля 1-2 В, уровень единицы 3-4 В
Измерение длится 2-7 секунды.
Попробуйте:
80059
function_block Freq
var_input
IN : bool;
end_var
var_output
F : real;
end_var
var
rt : SYS.RTRIG;
ts_old : udint;
ts_new : udint;
end_var
rt(I := IN);
if rt.Q then
ts_new := time_to_udint(get_time());
F := 1000.0 / udint_to_real((ts_new - ts_old));
ts_old := ts_new;
end_if
Только цифровой фильтр у аналоговых входов меньше 0.01 сек не ставится!!!
Боюсь, что всё что больше 100Hz он будет считать шумом и дальше не пропустит.
Сергей0308
14.11.2024, 20:32
Может есть смысл подать сигнал на дискретный вход предварительно его "обработав". Под этим понимаю усилить по напряжению, разделить на 2 или четыре, превратив в меандр, то есть понизив частоту и увеличив длительность до значений воспринимаемых дискретным входом, зависит от сложности(времени цикла) программы ПР200.
Kolunayev
15.11.2024, 17:50
Огромное спасибо всем. После выходных попробую варианты.
Мне кажется, что существуют готовые преобразователи частота - ток 4-20 мА (или напряжение).
Как понимаю, в исходном решении измерения аналоговым входом - не подразумевалось коммерческой точности, поэтому преобразователь будет уместен.
Например, поиск по "frequency 4 20ma converter" даёт ссылки
https://aliexpress.ru/popular/frequency-4-20ma-converter.html?g=y&page=1&searchInfo=ti-arsFsz6oT9FkaeEJN2O0u8Y2OMT6DWeKDlMZLqa2GQIp9z9vve 30jL1dQBNIKVdlBBUrlpwp2vVnC-UKERXMm3K-phuIiDsQlb7om-mQ2r-a-msAvfHkO3FSDHp6x
https://aliexpress.ru/item/1005007550266844.html?sku_id=12000041258071428&spm=a2g2w.productlist.search_results.7.424c7040PlS 75s
Сергей0308
15.11.2024, 22:14
Мне кажется, что существуют готовые преобразователи частота - ток 4-20 мА (или напряжение).
Как понимаю, в исходном решении измерения аналоговым входом - не подразумевалось коммерческой точности, поэтому преобразователь будет уместен.
Например, поиск по "frequency 4 20ma converter" даёт ссылки
https://aliexpress.ru/popular/frequency-4-20ma-converter.html?g=y&page=1&searchInfo=ti-arsFsz6oT9FkaeEJN2O0u8Y2OMT6DWeKDlMZLqa2GQIp9z9vve 30jL1dQBNIKVdlBBUrlpwp2vVnC-UKERXMm3K-phuIiDsQlb7om-mQ2r-a-msAvfHkO3FSDHp6x
https://aliexpress.ru/item/1005007550266844.html?sku_id=12000041258071428&spm=a2g2w.productlist.search_results.7.424c7040PlS 75s
И у Овена такие есть, тахометр называется:
80088
https://owen.ru/product/tx01rs
GeraZverev
15.11.2024, 22:50
Всем здравствуйте!
Спасибо за помощь, с датчиками более-менее разобрался.
Думал на след. неделе ПР205 купить, но в соседней ветке прочитал, что есть проблемы. Как быть?
Если можно, подскажите коротко, как частному лицу приобрести продукцию ОВЕНа? Заказывать надо и оплачивать заранее?
Ничего не покупал у них, а спросить не мог, т. к. интернет 3 дня был недоступен. Как-то не ожидал проблем с покупкой.
Netadmin
16.11.2024, 07:00
Здравствуйте уважаемые Гуру программирования овен логик. есть задача . как обсчитать кубатуру в литрах перевернутого конуса. ? что имеем : Пр200 + ПДУ-И.3750 80089
датчик установлен не до самого низу. данные конуса сейчас добавлю
80090 80091
80092
Сама емкость в виде конуса. рассчитать надо именно конусную часть емкости. ибо с самим цилиндром проблем нет. он рассчитывается по линейному графику
а вот с конусом проблема получается слишком большое кол-во более 105 ФБ надо разместить .
так будет рассчитан основной цилиндр. все что ниже точки 0 датчика будет постоянной константой. и в работе не участвует. 80093
А конусная часть по формуле не вычисляется? Там сильная нелинейность из-за геометрических отклонений формы от конуса? Или имеются метрологические требования к точности?
Можно же сопоставить измеренный уровень с высотой конуса и диаметром его основания - это линейные зависимости.
По известным диаметру и высоте вычислить объём конуса.
Это я к тому, что в конусе при линейной зависимости использовать не 105 точек, а 2-3.
Почему отказываетесь от этого напрашивающегося решения?
Netadmin
16.11.2024, 08:39
А конусная часть по формуле не вычисляется? Там сильная нелинейность из-за геометрических отклонений формы от конуса? Или имеются метрологические требования к точности?
Можно же сопоставить измеренный уровень с высотой конуса и диаметром его основания - это линейные зависимости.
По известным диаметру и высоте вычислить объём конуса.
Это я к тому, что в конусе при линейной зависимости использовать не 105 точек, а 2-3.
Почему отказываетесь от этого напрашивающегося решения?
линейность есть. но она так себе. в 2 графиках представлена это 1 и 2 лист. точность до литра +- желательно. 2-3 точуи ну не знаю. нелинейность большая. емкость самодельная. можно конечно не по 105 точкам. хотябы через одну. ну даже при этом более 50 + блоков. думаю это можно как то на СТ упростить. но на СТ не делал ни разу
МихаилГл
16.11.2024, 08:45
А чем не устраивает:80094
Отнять от полного конуса вершину... В чем сложность?
PS Понял, радиус меняется... Надо подумать...
линейность есть. но она так себе. в 2 графиках представлена это 1 и 2 лист. точность до литра +- желательно. 2-3 точуи ну не знаю. нелинейность большая. емкость самодельная. можно конечно не по 105 точкам. хотябы через одну. ну даже при этом более 50 + блоков. думаю это можно как то на СТ упростить. но на СТ не делал ни разу
Можно попробовать в эксель табличку загнать и формулу получить
80095
Netadmin
16.11.2024, 09:05
думал над этим. на примере в овен логике можно посмотреть как это выглядит ? только конус еще момент. конус не до самого конца острый. вот такой 80096
МихаилГл
16.11.2024, 09:08
Вам надо узнать зависимость радиуса от высоты... Через Пифагора, арксинус или арккосинус. Угол наклона гипотенузы вы знаете.
PS Забыл геометрию... Тангенс или котангенс...
Неизвестный радиус основания конуса = тангенс угла конуса к вертикали * высоту конуса.
Тангенс константа, высота с датчика уровня.
АРТ.Кар 64
16.11.2024, 10:07
80098
Пифагор пусть отдохнёт. Всё намного проще.
Зная что изменяется ,а что константа расчёты простейшие .
Извините за качество фото - руки тряслись от хохота.
МихаилГл
16.11.2024, 10:19
80098
Пифагор пусть отдохнёт. Всё намного проще.
Зная что изменяется ,а что константа расчёты простейшие .
Извините за качество фото - руки тряслись от хохота.
Я дал формулу измерения уровня в самом конусе, думаю это было проблемой. А там без Пифагора никак, там надо знать что такое прилежащий и противолежащий катет.
PS Формулу для радиуса основания конуса, при изменении уровня/высоты в перевёрнутом конусе. А подставив этот радиус в формулу найдете объем.
И программирование это не главное в программировании. Там всё просто... Иф, зен, элсе... А вот без математики никак...
А вы знаете высоту конуса по датчику давления?
Так, к слову.
МихаилГл
16.11.2024, 11:44
А вы знаете высоту конуса по датчику давления?
Так, к слову.
Да, датчик давления это конечно подстава. Я бы на лазерный в байпасе заменил.
PS С другой стороны, измерять уровень косвенным методом, да и объем, в ёмкости нестандартной формы это неблагодарная задача. Уж лучше сразу всё правильно делать, а не через костыли, раз нужна высокая точность.
АРТ.Кар 64
16.11.2024, 11:52
https://disk.yandex.ru/d/ZiDFShiZjJ5RJg
Не пристало принимать спор с участием профи,но всё-таки...
При датчике уровня и при условии верного хода моей логической мысли тоже не проблема.
Предупреждаю,что я тоже давно не держал в руках циркуль и транспортир.
МихаилГл
16.11.2024, 11:53
https://disk.yandex.ru/d/ZiDFShiZjJ5RJg
Не пристало принимать спор с участием профи,но всё-таки...
При датчике уровня и при условии верного хода моей логической мысли тоже не проблема.
Предупреждаю,что я тоже давно не держал в руках циркуль и транспортир.
Да там датчик давления всё портит. При конусной ёмкости он будет нелинейно уровень показывать.
У нас в генераторе стоит датчик топлива. Форма бака вообще отвратная (неправильная).
Если сделать тарировку по 5 литров скажем. И высокая точность не нужна, то через if, else на каждые 5 литров ставится даже линейный scaler и вполне себе.
Подойдёт и для конуса.
А все, что выше уже и так будет линейным.
И да, погрешность там все равно будет на температурное расширение.
Самый простой способ без всяких формул заумных. Тарировка ёмкости.
Здравствуйте уважаемые Гуру программирования овен логик. есть задача . как обсчитать кубатуру в литрах перевернутого конуса. ? что имеем : Пр200 + ПДУ-И.3750 80089
датчик установлен не до самого низу. данные конуса сейчас добавлю
80090 80091
80092
Сама емкость в виде конуса. рассчитать надо именно конусную часть емкости. ибо с самим цилиндром проблем нет. он рассчитывается по линейному графику
а вот с конусом проблема получается слишком большое кол-во более 105 ФБ надо разместить .
так будет рассчитан основной цилиндр. все что ниже точки 0 датчика будет постоянной константой. и в работе не участвует. 80093
А почему не подложить под емкость тензодатчик ?
Да там датчик давления всё портит. При конусной ёмкости он будет нелинейно уровень показывать.
Уровень как раз линейно, а вот объём - нет
Netadmin
16.11.2024, 13:34
У нас в генераторе стоит датчик топлива. Форма бака вообще отвратная (неправильная).
Если сделать тарировку по 5 литров скажем. И высокая точность не нужна, то через if, else на каждые 5 литров ставится даже линейный scaler и вполне себе.
Подойдёт и для конуса.
А все, что выше уже и так будет линейным.
И да, погрешность там все равно будет на температурное расширение.
Самый простой способ без всяких формул заумных. Тарировка ёмкости.
на 1 и 2 фото есть таблица где она измерена по см. вижу только метод привязки по тачкам. вычислять линейную зависимость по размерам конуса, если это можно с привязкой датчика в овен логик. дайте пример
Netadmin
16.11.2024, 13:37
А почему не подложить под емкость тензодатчик ?
хорошая мысля. но уже до этого была куплена линейка датчик уровня. установлен. даже ее сейчас не хотят переделать. и бо говорят нефиг трогать. работаем с тем что есть.
Netadmin, в понедельник сброшу пример по своему датчику топлива.
Правда у меня пересчет в scada выполняется, но думаю в лоджик на ST можно сделать аналогичное.
Netadmin
16.11.2024, 13:48
изначально это было сделано вообще на трм 80102 но сами понимаете это вариант никакой. мало того что емкость не линейна. так еще и датчик в двух частях емкости. конус и цилиндр.
Netadmin
16.11.2024, 13:50
Netadmin, в понедельник сброшу пример по своему датчику топлива.
Правда у меня пересчет в scada выполняется, но думаю в лоджик на ST можно сделать аналогичное.
спасибо. не знаю смогу я на овен логик это спроецировать. с СТ дело не имел.
kondor3000
16.11.2024, 14:10
спасибо. не знаю смогу я на овен логик это спроецировать. с СТ дело не имел.
Готовая функция линейной апроксимации на 10 точек от Petera, можно снять зависимость объёма от уровня или зависимость объёма от давления.
На конус сделать 6-8 точек, выше конуса достаточно 2 точек. Тарировать в конусе и выше можно например, по 5-10 литров.
https://owen.ru/forum/showthread.php?t=35489&page=5
Netadmin
16.11.2024, 14:11
Спасибо неравнодушным, если что это не корыстный интерес. друг пришел на производства пластика. попросил улучшить визуализацию расхода жидкости. то-есть не как у них было в условных единицах на ТРМ а в литрах. Пока решили на конус забить. он как запас.
спасибо. не знаю смогу я на овен логик это спроецировать. с СТ дело не имел.
Можно тупо бахнуть всю таблицу в массив, и считать по нему:
FUNCTION GRAPH : REAL;
VAR_INPUT
x :REAL;
END_VAR
VAR
arX: ARRAY[0..49] OF REAL := [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50];
arY: ARRAY[0..49] OF REAL := [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50];
i: udint;
END_VAR
IF x < arX[0] THEN GRAPH := arY[0];
ELSIF x > arX[49] THEN GRAPH := arY[49];
ELSE
FOR i:=0 TO 48 DO
IF x >= arx[i] AND x <= arx[i+1] THEN
GRAPH := LINEAR(x, arx[i], arx[i+1], ary[i], ary[i+1]);
END_IF;
END_FOR;
END_IF;
end_function
FUNCTION LINEAR : REAL;
VAR_INPUT
rX, rX1, rX2, rY1, rY2 : REAL;
END_VAR
IF rX2 = rX1 THEN LINEAR := rY2;
ELSE LINEAR := (rX - rX1) * (rY2 - rY1) / (rX2 - rX1) + rY1;
END_IF;
end_function
МихаилГл
16.11.2024, 14:17
Только это подойдёт для одной плотности, если в ёмкость нальют что-то более или менее плотное, то всё коту под хвост.
Хотя для поплавкового ду пойдут. Для давления нет.
Попробовал решить задачу измерения объёма в усечённом конусе двумя способами:
1. Выразил объём прямого (полного) конуса через высоту конуса и угол между основанием и образующей (т.е. выразил радиус через высоту и подставил в формулу объёма). Далее взял три точки - начало отсчёта датчика, середину конуса и верхнюю часть конуса - для них известны и уровень и объём. Получил систему из двух уравнений относительно двух переменных - высота конуса до нижней точки измерения датчика и угол между основанием и образующей. Получил квадратное уравнение, решил.
2. Взял точки и при помощи метода наименьших квадратов нашёл полином второй степени. Тут всё просто - в институте на чисметах делал, осталась программка на Pascal. Думаю, что для тех, кто чисметы не изучал - существуют онлайн сервисы аппроксимации МНК.
Какие результаты.
Очень удивился, что лобовое решение при помощи интерполяции по 3 точкам (1-й способ) дал неудовлетворительные результаты - вместо параболы получилась функция гиперболы с перегибом.
А вот аппроксимация дала весьма хорошие результаты.
У меня нет MS Office - работаю в Libre Office, поэтому исходники прикладывать нет смысла, покажу распечатки в pdf - и вывод формулы (как оказалось не нужной) и результаты вычислений по формуле и МНК.
Итого. Как бы поступил лично я.
Нет ничего универсального и эта программа пишется не для всех конусных и не только бункеров, а для конкретного. А для конкретного бункера на диапазоне 35-60 см хорошо применим полином второй степени, коэффициенты для которого получены МНК. Поэтому решение такое:
1. на диапазоне измерений от 35 до 60 см объём вычисляется по аппроксимационному полиному.
2. на диапазоне 60 см и более - по линейной формуле для цилиндра (может придётся разбить на несколько участков)
В примере программы не стал усердствовать с точностью вычислений для цилиндрической части, просто для примера показал с каким-то коэффициентом.
function BunkerVolume: real;
var_input
rLevel: real;
end_var
var
a: array [0..2] of real := [7.8577289377217835E-002, -3.0897496947466449E-003, 1.4868742368739197E-004];
rVolumeMin: real := 0.152;
rVolumeMax: real := 0.429;
rResult: real;
i: udint;
end_var
if rLevel < 35.0 then
rResult := rVolumeMin;
elsif rLevel <=60.0 then
rResult := 0;
for i := 0 to 2 do
rResult := rResult * rLevel + a[2-i];
end_for;
elsif rLevel <= 200.0 then
rResult := rVolumeMax + 0.0348 * (rLevel - 60.0);
end_if;
BunkerVolume := rResult;
end_function
Сергей0308
17.11.2024, 00:09
Только это подойдёт для одной плотности, если в ёмкость нальют что-то более или менее плотное, то всё коту под хвост.
Хотя для поплавкового ду пойдут. Для давления нет.
Надеюсь плотность налитой жидкости не будет являться государственным секретом(тайной), непонятно к чему разговор, в смысле, даже в теплосчётчиках объём воды пересчитывается в массу в зависимости от температуры, но насколько я понял и этого товарищу не надо, в смысле, сверхвысокой точности, коль он измеритель уровня применил с точностью плюс-минус лапоть, в смысле, состоящий из линейки герконов, любой датчик избыточного давления, коих у Овена великое множество, измерит точнее, даже без пересчёта массы в объём, товарищ вроде объём хочет, при использовании тензодатчиков аналогичная ситуация!
И, совсем непонятно зачем датчики применять более чем в 10 раз дороже(наверно куры денег не клюют) датчика избыточного давления и даже дороже датчиков дифференциального давления, для измерения уровня в сосудах под избыточным давлением:
80121
короче, маразмом попахивает, мне так кажется!
Могу добавить, примерно лет 10 назад покупали четыре датчика дифференциального давления, как раз для этой цели(о которой писал), короче, они примерно в 3 раза были дешевле овенских и к тому же и более надёжные оказались, в смысле, до сих пор работают и проблем с ними не возникало, короче, лучше в 10 раз по совокупности качеств, это по моим подсчётам, марку не буду называть, а то заругают!
АРТ.Кар 64
17.11.2024, 00:40
https://disk.yandex.ru/d/hUyNm800NC2x5g
Всё что говорится сейчас было давно уже опробовано.
Без высшей математики все прекрасно знали ,что ? чего ? и сколько ?(за это "дадут с учётом смягчающих ")
Однако расчёты были весьма точные.
Вот примерно такая же емкость высотой 35-60 см. Это ,конечно, шутка. Но делается всё как-то гораздо проще ..
На уровне задачек для подготовки к ЕГЭ.
и этого товарищу не надо, в смысле, сверхвысокой точности, коль он измеритель уровня применил с точностью плюс-минус лапоть
Ну просто замечательно сказано..
Можно тупо бахнуть всю таблицу в массив, и считать по нему:
[CODE]
FUNCTION GRAPH : REAL;
VAR_INPUT
x :REAL;
END_VAR
VAR
[CODE]
1exan, подскажите, на каком сервисе расцвечиваете исходники?
Тоже хочется красоты... :cool:
МихаилГл
17.11.2024, 07:28
Попробовал решить задачу измерения объёма в усечённом конусе двумя...
Вроде тангенс, а не котангенс... Или вы какой угол использовали для расчётов?
PS Снимаю вопрос, вы другой угол взяли.
1exan, подскажите, на каком сервисе расцвечиваете исходники?
Тоже хочется красоты... :cool:
Что самое интересное - ни на каком. Просто копирую из OL
Netadmin
17.11.2024, 08:37
Надеюсь плотность налитой жидкости не будет являться государственным секретом(тайной), непонятно к чему разговор, в смысле, даже в теплосчётчиках объём воды пересчитывается в массу в зависимости от температуры, но насколько я понял и этого товарищу не надо, в смысле, сверхвысокой точности, коль он измеритель уровня применил с точностью плюс-минус лапоть, в смысле, состоящий из линейки герконов, любой датчик избыточного давления, коих у Овена великое множество, измерит точнее, даже без пересчёта массы в объём, товарищ вроде объём хочет, при использовании тензодатчиков аналогичная ситуация!
И, совсем непонятно зачем датчики применять более чем в 10 раз дороже(наверно куры денег не клюют) датчика избыточного давления и даже дороже датчиков дифференциального давления, для измерения уровня в сосудах под избыточным давлением:
80121
короче, маразмом попахивает, мне так кажется!
Могу добавить, примерно лет 10 назад покупали четыре датчика дифференциального давления, как раз для этих целей(о который писал), короче, они примерно в 3 раза были дешевле овенских и к тому же и более надёжные оказались, в смысле, до сих пор работают и проблем с ними не возникало, короче, лучше в 10 раз по совокупности качеств, это по моим подсчётам, марку не буду называть, а то заругают!
не является тайной. обычное базовое масло для изготовления пластика. по поводу что было применено. повторяю. так видел задачу и ее реализация мастер который за пару месяцев уволился до прихода моего друга на предприятия. Собственно все что Сергей сейчас высказал. я слово в слово сказал моему другу. на что начальник сказал работаем с тем что имеем. ибо как было замечено стоил этот датчик с учетом что приехал целым только на 3 раз огого сколько. единственное на что развели "Убедили" начальника это использовать ПР200. такие дела.
Netadmin если в емкости всегда одна жидкость (одни характеристики), то работать будет.
Сергей0308
17.11.2024, 10:01
Netadmin если в емкости всегда одна жидкость (одни характеристики), то работать будет.
Так у них поплавковый датчик уровня с выходом 4-20мА, а не датчик избыточного давления, в смысле, плотность жидкости практически не будет влиять на показания датчика(сигнал на выходе)!
Netadmin
17.11.2024, 10:02
Попробовал решить задачу измерения объёма в усечённом конусе двумя способами:
1. Выразил объём прямого (полного) конуса через высоту конуса и угол между основанием и образующей (т.е. выразил радиус через высоту и подставил в формулу объёма). Далее взял три точки - начало отсчёта датчика, середину конуса и верхнюю часть конуса - для них известны и уровень и объём. Получил систему из двух уравнений относительно двух переменных - высота конуса до нижней точки измерения датчика и угол между основанием и образующей. Получил квадратное уравнение, решил.
2. Взял точки и при помощи метода наименьших квадратов нашёл полином второй степени. Тут всё просто - в институте на чисметах делал, осталась программка на Pascal. Думаю, что для тех, кто чисметы не изучал - существуют онлайн сервисы аппроксимации МНК.
Какие результаты.
Очень удивился, что лобовое решение при помощи интерполяции по 3 точкам (1-й способ) дал неудовлетворительные результаты - вместо параболы получилась функция гиперболы с перегибом.
А вот аппроксимация дала весьма хорошие результаты.
У меня нет MS Office - работаю в Libre Office, поэтому исходники прикладывать нет смысла, покажу распечатки в pdf - и вывод формулы (как оказалось не нужной) и результаты вычислений по формуле и МНК.
Итого. Как бы поступил лично я.
Нет ничего универсального и эта программа пишется не для всех конусных и не только бункеров, а для конкретного. А для конкретного бункера на диапазоне 35-60 см хорошо применим полином второй степени, коэффициенты для которого получены МНК. Поэтому решение такое:
1. на диапазоне измерений от 35 до 60 см объём вычисляется по аппроксимационному полиному.
2. на диапазоне 60 см и более - по линейной формуле для цилиндра (может придётся разбить на несколько участков)
В общем проверил. работает ровно до 60 см. дальше пошли расхождения с тарировочной таблицей в большую сторону до 500литров ! или я что то не учел :confused:
Сергей0308
17.11.2024, 10:07
В общем проверил. работает ровно до 60 см. дальше пошли расхождения с тарировочной таблицей в большую сторону до 500литров ! или я что то не учел :confused:
Наверно потому, что выше 60 см у вас не перевёрнутый конус будет, а цилиндр, надо формулу для цилиндра применять!
Netadmin
17.11.2024, 10:28
Наверно потому, что выше 60 см у вас не перевёрнутый конус будет, а цилиндр, надо формулу для цилиндра применять!
нет конус до 140см. это же видно в таблице. цилиндр начинается со 140 до 416
В общем проверил. работает ровно до 60 см. дальше пошли расхождения с тарировочной таблицей в большую сторону до 500литров ! или я что то не учел :confused:
Так, правильно, формулу получили только до уровня 60 см.
Пробовал я всю таблицу загнать в эксель - точность получается до 2%, но больше литра. Поэтому, как, вариант, разбивать таблицу на части (например 35-60, 60-85, 85-104, 104-123 и 123-140) и для каждой части высчитывать свою формулу
https://owen.ru/forum/showthread.php?t=26216&p=451065&viewfull=1#post451065 ну или чуть ниже, где в массив данные записать, не помогает ?
kondor3000
17.11.2024, 11:51
В общем проверил. работает ровно до 60 см. дальше пошли расхождения с тарировочной таблицей в большую сторону до 500литров ! или я что то не учел :confused:
Да ладно, загнал всю таблицу в массив через одну, вместо 108 точек получилось 54 переменных в массиве, считает правильно по таблице.80131 с точностью 0.1%
Так как в таблице 35 см это 0, то вычел эти 35 см, только для проверки соответствия таблице. В реале вычитание можно убрать.
Таблица выложена только до 141 см, дальше массив можно продолжить. Достаточно 2-6 точек.
Что самое интересное - ни на каком. Просто копирую из OL
Спасибо.
Слышал, что Visual Studio тоже обладает подобным свойством.
Возможно, у меня операционка старая или что-то в реестре начудил за много лет.
МихаилГл
17.11.2024, 16:41
Спасибо.
Слышал, что Visual Studio тоже обладает подобным свойством.
Возможно, у меня операционка старая или что-то в реестре начудил за много лет.
У меня раньше из codesys 3.5 в ворд нормально с расцветкой копировалось, а потом перестало. Так и не понял как вернуть это...
В общем проверил. работает ровно до 60 см. дальше пошли расхождения с тарировочной таблицей в большую сторону до 500литров ! или я что то не учел :confused:
Netadmin,
меня интересовала принципиальная возможность решения. Сил хватило на копирование с фотографии таблицы 25 пар значений (дальше "рука бойца набирать устала").
Но все данные, методики, примеры кода я привёл, чтобы Вы дальше смогли по аналогии продолжить.
Для завершения работы я бы попробовал сначала получить график табличной зависимости в Exel (или Calc из LibOo) - просто посмотреть плавность.
Далее, попробовал при помощи МНК получить полином для всего диапазона из 100 пар чисел, проверил его в Exel. Если результаты не устроили бы - разделил бы таблицу на несколько участков и при помощи МНК для каждого нашёл бы полином.
Т.к. МНК это не интерполяция, а аппроксимация, то на стыках диапазонов потребовалось бы проверить непрерывность.
Ещё можно попробовать увеличить полином до третьей степени, т.к. объём конуса зависит от куба высоты (уровня). На диапазоне 35-60 это не проявлялось заметно, но до 140 может оказаться существенным.
Есть ещё такая штука, как интерполяция кубическими сплайнами - как раз получается серия кусочных функций (полиномов) с гладкими "стыками". Можете попробовать. Сколько помню, формулы были несложные, только у меня от ВУЗовских лабораторок исходники не сохранились. Но интернет всё порешает.
Вы уж простите старика, мне лень в выходной день несколько часов сидеть и подгонять результаты экспериментов по разделению диапазонов, по проверке повышения степени полинома.
Собственно, больше нечего добавить - алгоритмическое решение есть, остаётся только вычислить коэффициенты для формул. Что будет не получаться - спрашивайте.
Хотя kondor3000 уже предложил решение при помощи кусочно-линейной интерполяции.
https://owen.ru/forum/showthread.php?t=26216&p=451105&viewfull=1#post451105
Раз оно работает - применяйте.
У меня по сути это наверное то же, что и предлагает kondor3000 при помощи кусочно-линейной интерполяции
На примере датчика топлива в баке генератора с неправильной формой. з.ы. это скрипт C#
public double Benzscale (double inp)
{
double res = 0;
if (inp > 0 & inp < 773) res = Scaler (inp, 53, 773, 0, 5);
else if (inp > 773 & inp < 1468) res = Scaler (inp, 774, 1467, 5, 10);
else if (inp > 1467 & inp < 2061) res = Scaler (inp, 1468, 2060, 10, 15);
else if (inp > 2060 & inp < 2452) res = Scaler (inp, 2061, 2451, 15, 20);
else if (inp > 2451 & inp < 2870) res = Scaler (inp, 2452, 2869, 20, 25);
else if (inp > 2869 & inp < 3278) res = Scaler (inp, 2870, 3277, 25, 30);
else if (inp > 3277 & inp < 3700) res = Scaler (inp, 3278, 3699, 30, 35);
else if (inp > 3699 & inp < 4096) res = Scaler (inp, 3700, 4095, 35, 36);
return res;
}
числа в else if это показания датчика при тарировке, числа в формуле scaler вторые это литраж. Scaler - это наверное то же самое, что и LINEAR в срипте на ST от petera и kondor3000.
Собственно все проще. Чем меньше диаметр конуса, тем меньше объем нужен для тарировки, так как при таком методе погрешность не накапливается, а сидит внутри каждого диапазона.
По мере увеличения диаметра конуса, можно увеличивать объем тарировочный, чтобы погрешность не выходила за какой-то диапазон.
Набрал все пары от 35 до 140
35 0,152
36 0,160
37 0,168
38 0,176
39 0,184
40 0,193
41 0,202
42 0,211
43 0,221
44 0,231
45 0,241
46 0,251
47 0,262
48 0,273
49 0,284
50 0,296
51 0,307
52 0,320
53 0,332
54 0,345
55 0,358
56 0,372
57 0,385
58 0,400
59 0,414
60 0,429
61 0,444
62 0,460
63 0,476
64 0,492
65 0,508
66 0,525
67 0,543
68 0,561
69 0,579
70 0,597
71 0,616
72 0,635
73 0,655
74 0,675
75 0,696
76 0,717
77 0,738
78 0,760
79 0,782
80 0,804
81 0,827
82 0,851
83 0,875
84 0,899
85 0,924
86 0,949
87 0,975
88 1,001
89 1,027
90 1,054
91 1,082
92 1,110
93 1,138
94 1,167
95 1,197
96 1,227
97 1,257
98 1,288
99 1,319
100 1,351
101 1,384
102 1,417
103 1,450
104 1,484
105 1,519
106 1,554
107 1,589
108 1,625
109 1,662
110 1,699
111 1,737
112 1,775
113 1,814
114 1,854
115 1,894
116 1,934
117 1,975
118 2,017
119 2,059
120 2,102
121 2,146
122 2,190
123 2,235
124 2,280
125 2,326
126 2,372
127 2,419
128 2,467
129 2,516
130 2,565
131 2,614
132 2,664
133 2,715
134 2,767
135 2,819
136 2,872
137 2,925
138 2,980
139 3,034
140 3,090
пропустил через МНК и получил полином третьей степени. Он очень точно вычисляет на всём указанном диапазоне.
Не знаю, почему так ошибся - вывел зависимость объёма пропорциональную кубу уровня, но решил, что квадратичная зависимость идеально подойдёт.
Сейчас увеличил степень и всё сошлось.
Функция y(x) имет вид
y(x)=a[3]*x^3+a[2]*x^2+a[1]*x^1+a[0] ,
где
a[3]= 6,7480106322967544E-007
a[2]= 5,2652074851971609E-005
a[1]= 1,4053194590600596E-003
a[0]= 9,4316767126307200E-003
Но, к слову, если бы "материально не заинтересованный, но просто помогающий другу" Netadmin сразу привёл таблицу в редактируемом виде, то время потраченное на её набор, я потратил бы на обработку.
Думаю, что с разделением диапазона уровня для вычисления объёма конусной и цилиндрической частей бункера сложностей не будет.
Чтобы избежать переполнения разрядной сетки и ускорить сами вычисления, полином лучше вычислять по схеме Горнера, тут сложностей тоже быть не должно.
Будут вопросы - задавайте.
Во вложении программа с новым полиномом и инструменты расчёта и проверки - программа на Pascal, таблица для Calc (аналог Exel).
к словам интерполяция и аппроксимация добавлю такое слово как регрессия и мой вариант по табличным данным
;)
Я то карты раскрыл - полином получен (методом наименьших квадратов (МНК). Там всё просто и в ВУЗах и в колледжах на чисметах преподают. Вот и у меня с ВУЗа осталась собственная реализация по методичке к лабораторке.
А как Вы получили формулы?
Мне кажется, что регрессионный анализ - это "надстройка" над МНК - при помощи пересчёта входных данных меняют формулу зависимости с полинома на другую произвольную, потом используют МНК, пересчитывают полиноминальные коэффициенты в коэффициенты из новой формулы. Часто, регрессия ограничена прямой линией - полиномом первой степени - для удобства пересчёта коэффициентов.
Спасибо.
Богат Python библиотеками, простыми в использовании...
Видимо, нужно уже браться за ум и осваивать, хотя бы на уровне обработки строк, математического анализа.
Armorgan
18.11.2024, 15:36
Доброго дня)
У меня есть индикатор технологических параметров ARM-ITP2.4.P
Он работает в режиме slave, но я не могу придумать как сделать так чтобы он будучи подключенным к пр102, в зависимости от включенного входа отсчитывал 30 секунд или минуту
Доброго дня)
У меня есть индикатор технологических параметров ARM-ITP2.4.P
Он работает в режиме slave, но я не могу придумать как сделать так чтобы он будучи подключенным к пр102, в зависимости от включенного входа отсчитывал 30 секунд или минуту
Это же просто индикатор - как он может "отсчитывать"?
Что именно нужно отображать на индикаторе?
Netadmin
18.11.2024, 17:20
Netadmin,
меня интересовала принципиальная возможность решения. Сил хватило на копирование с фотографии таблицы 25 пар значений (дальше "рука бойца набирать устала").
Но все данные, методики, примеры кода я привёл, чтобы Вы дальше смогли по аналогии продолжить.
Для завершения работы я бы попробовал сначала получить график табличной зависимости в Exel (или Calc из LibOo) - просто посмотреть плавность.
Далее, попробовал при помощи МНК получить полином для всего диапазона из 100 пар чисел, проверил его в Exel. Если результаты не устроили бы - разделил бы таблицу на несколько участков и при помощи МНК для каждого нашёл бы полином.
Т.к. МНК это не интерполяция, а аппроксимация, то на стыках диапазонов потребовалось бы проверить непрерывность.
Ещё можно попробовать увеличить полином до третьей степени, т.к. объём конуса зависит от куба высоты (уровня). На диапазоне 35-60 это не проявлялось заметно, но до 140 может оказаться существенным.
Есть ещё такая штука, как интерполяция кубическими сплайнами - как раз получается серия кусочных функций (полиномов) с гладкими "стыками". Можете попробовать. Сколько помню, формулы были несложные, только у меня от ВУЗовских лабораторок исходники не сохранились. Но интернет всё порешает.
Вы уж простите старика, мне лень в выходной день несколько часов сидеть и подгонять результаты экспериментов по разделению диапазонов, по проверке повышения степени полинома.
Собственно, больше нечего добавить - алгоритмическое решение есть, остаётся только вычислить коэффициенты для формул. Что будет не получаться - спрашивайте.
Хотя kondor3000 уже предложил решение при помощи кусочно-линейной интерполяции.
https://owen.ru/forum/showthread.php?t=26216&p=451105&viewfull=1#post451105
Раз оно работает - применяйте.
Спасибо. за труды взял вчера вариант kondor3000 уже поздно было разбираться. цилиндр рассчитал на ФБ сколхозил. работает. как надо. будет время попробую конечно разобраться в вашем последнем варианте. V2
Netadmin
18.11.2024, 17:25
Набрал все пары от 35 до 140
35 0,152
36 0,160
37 0,168
38 0,176
39 0,184
40 0,193
41 0,202
42 0,211
43 0,221
44 0,231
45 0,241
46 0,251
47 0,262
48 0,273
49 0,284
50 0,296
51 0,307
52 0,320
53 0,332
54 0,345
55 0,358
56 0,372
57 0,385
58 0,400
59 0,414
60 0,429
61 0,444
62 0,460
63 0,476
64 0,492
65 0,508
66 0,525
67 0,543
68 0,561
69 0,579
70 0,597
71 0,616
72 0,635
73 0,655
74 0,675
75 0,696
76 0,717
77 0,738
78 0,760
79 0,782
80 0,804
81 0,827
82 0,851
83 0,875
84 0,899
85 0,924
86 0,949
87 0,975
88 1,001
89 1,027
90 1,054
91 1,082
92 1,110
93 1,138
94 1,167
95 1,197
96 1,227
97 1,257
98 1,288
99 1,319
100 1,351
101 1,384
102 1,417
103 1,450
104 1,484
105 1,519
106 1,554
107 1,589
108 1,625
109 1,662
110 1,699
111 1,737
112 1,775
113 1,814
114 1,854
115 1,894
116 1,934
117 1,975
118 2,017
119 2,059
120 2,102
121 2,146
122 2,190
123 2,235
124 2,280
125 2,326
126 2,372
127 2,419
128 2,467
129 2,516
130 2,565
131 2,614
132 2,664
133 2,715
134 2,767
135 2,819
136 2,872
137 2,925
138 2,980
139 3,034
140 3,090
пропустил через МНК и получил полином третьей степени. Он очень точно вычисляет на всём указанном диапазоне.
Не знаю, почему так ошибся - вывел зависимость объёма пропорциональную кубу уровня, но решил, что квадратичная зависимость идеально подойдёт.
Сейчас увеличил степень и всё сошлось.
Функция y(x) имет вид
y(x)=a[3]*x^3+a[2]*x^2+a[1]*x^1+a[0] ,
где
a[3]= 6,7480106322967544E-007
a[2]= 5,2652074851971609E-005
a[1]= 1,4053194590600596E-003
a[0]= 9,4316767126307200E-003
Но, к слову, если бы "материально не заинтересованный, но просто помогающий другу" Netadmin сразу привёл таблицу в редактируемом виде, то время потраченное на её набор, я потратил бы на обработку.
Думаю, что с разделением диапазона уровня для вычисления объёма конусной и цилиндрической частей бункера сложностей не будет.
Чтобы избежать переполнения разрядной сетки и ускорить сами вычисления, полином лучше вычислять по схеме Горнера, тут сложностей тоже быть не должно.
Будут вопросы - задавайте.
Во вложении программа с новым полиномом и инструменты расчёта и проверки - программа на Pascal, таблица для Calc (аналог Exel).
Покрутил сегодня алгоритм. но пока не стал добавлять у Вас там есть возможность добавить еще и цилиндрическую часть. неплохо было бы. но не разобрался как. параметры покрутил. совсем испортил. а так неплохо было-бы все вместить в один макрос.
ivanov_wanx
19.11.2024, 07:10
Доброе утро, на столе имею: ПЛК110-60 и УПП ONI SFB (3 шт.) с RS485.
Подскажите, как правильно их опросить?
У них по умолчанию у всех 1 адрес. Т.е. сначала ПЛК должен обратиться к каждому отдельно, перезаписать адрес. И потом уже ко всем вместе для считывания сигналов работа/авария?
kondor3000
19.11.2024, 07:53
Доброе утро, на столе имею: ПЛК110-60 и УПП ONI SFB (3 шт.) с RS485.
Подскажите, как правильно их опросить?
У них по умолчанию у всех 1 адрес. Т.е. сначала ПЛК должен обратиться к каждому отдельно, перезаписать адрес. И потом уже ко всем вместе для считывания сигналов работа/авария?
Делаете опрос одного, включаете по одному и меняете адреса, потом включаете все вместе с разными адресами.
Опросить и поменять адреса можно любым ОРС сервером, например Овен ОРС https://owen.ru/catalog/opc_serveri
ivanov_wanx
19.11.2024, 09:15
Благодарю, попробую.
Armorgan
20.11.2024, 18:18
Время и чтобы он сбрасывался по достижению определенной уставки
Alex2023
02.12.2024, 12:09
Здравствуйте. Только начинаю знакомиться с ПР200.
Есть два ПР200, стоят в разных местах. Подскажите, пожалуйста, как на первом реле узнать, что на втором сработал какой-то дискретный вход?
Заранее спасибо.
Alex2023
1. в разных местах где? расположение, расстояние, в одном здании, в разных
2. оба ПР мастера или один может быть мастером, второй слейвом?
3. у ПР только RS485 - какое количество у каждого, есть ли модули в/в у этих ПР
немного правильнее формулируйте вопросы.
Сергей0308
02.12.2024, 12:27
Здравствуйте. Только начинаю знакомиться с ПР200.
Есть два ПР200, стоят в разных местах. Подскажите, пожалуйста, как на первом реле узнать, что на втором сработал какой-то дискретный вход?
Заранее спасибо.
Если есть такая возможность, протяните между ними кабель для связи по RS485. При этом расстояние между ними должно быть не более 1200 метров(без повторителей), далее настраиваете связь и читаете битовую маску дискретных входов, есть по умолчанию, т. е. даже создавать не нужно, потом из битовой маски входов извлекаете нужные вам биты, соответствуют дискретным входам, всё!
Если у вас ПР200 без сетевых интерфейсов можно всегда докупить их, но дешевле сразу вместе с ПР приобретать!
Короче, всё не просто, а очень просто!
Alex2023
02.12.2024, 12:36
1. Расположены в одном здании (расстояние метров 200).
2. Мне нужно, чтобы они знали о состоянии дискретных входов друг друга. Я так понимаю, что тогда они должны быть оба «мастер», правильно?
3. У каждого два rs485.
kondor3000
02.12.2024, 12:46
1. Расположены в одном здании (расстояние метров 200).
2. Мне нужно, чтобы они знали о состоянии дискретных входов друг друга. Я так понимаю, что тогда они должны быть оба «мастер», правильно?
3. У каждого два rs485.
200 метров не проблема, один Мастер, второй слейв, у одного Маска бит 1, у второго Маска 2, мастер одну маску записывает в слейв,
вторую читает из слейва.
Кабель витая пара с экраном, можно кабель для Интернета.
Alex2023
03.12.2024, 14:28
Если есть такая возможность, протяните между ними кабель для связи по RS485. При этом расстояние между ними должно быть не более 1200 метров(без повторителей), далее настраиваете связь и читаете битовую маску дискретных входов, есть по умолчанию, т. е. даже создавать не нужно, потом из битовой маски входов извлекаете нужные вам биты, соответствуют дискретным входам, всё!
Если у вас ПР200 без сетевых интерфейсов можно всегда докупить их, но дешевле сразу вместе с ПР приобретать!
Короче, всё не просто, а очень просто!
Простите за глупые вопросы. А можете подсказать, как настроить связь и прочитать битовую маску?
kondor3000
03.12.2024, 14:53
Простите за глупые вопросы. А можете подсказать, как настроить связь и прочитать битовую маску?
Видео настройки обмена https://rutube.ru/video/12959db57efcb1394f23dd89b270d350/
Пример упаковки и распаковки 3 бит, можно расширить до 16 бит и упаковать в макросы.80526
Попробуйте разобраться самостоятельно!!
Kolunayev
10.12.2024, 20:27
Добрый день. Есть программа, написанная для ПР200-220.4.2. Заказчик купил вместо этой ПР-ки ПР200-24.3.2. Можно ли эту программу залить в купленную заказчиком ПР-ку, или нужно ее писать снова под ПР200-24.3.2?
Сергей0308
10.12.2024, 20:32
Добрый день. Есть программа, написанная для ПР200-220.4.2. Заказчик купил вместо этой ПР-ки ПР200-24.3.2. Можно ли эту программу залить в купленную заказчиком ПР-ку, или нужно ее писать снова под ПР200-24.3.2?
Меню "Файл", далее "Смена целевой платформы"!
Kolunayev
10.12.2024, 20:37
Огромное спасибо))))
Черепанов Сергей
30.12.2024, 09:45
81028
Добрый день, вопрос по ПР200, вывожу на экран значение задержки таймера ТР .Если в секундах то все понятно работает, а мне необходимо в милисекундах, чтоб на экране было значение с запятой. Если переменная INT, то на экран выводится целое число, а если ставлю переменную FLOAT, то при умножении необходимо преоброзователь TO-INT. В библиотеке ОЛ его нет. Подскажите как построить, заранее благодарен.
81028
Добрый день, вопрос по ПР200, вывожу на экран значение задержки таймера ТР .Если в секундах то все понятно работает, а мне необходимо в милисекундах, чтоб на экране было значение с запятой. Если переменная INT, то на экран выводится целое число, а если ставлю переменную FLOAT, то при умножении необходимо преоброзователь TO-INT. В библиотеке ОЛ его нет. Подскажите как построить, заранее благодарен.
На панели инструментов смотреть нужно, а не в библиотеках\
81033
Только нужно сначала умножить FLOAT на 1000 (fMUL), а затем уже преобразовывать в INT.
Иначе преобразование в целое отбросит дробную часть из FLOAT и умножать будете только секунды.
kondor3000
30.12.2024, 10:24
Добрый день, вопрос по ПР200, вывожу на экран значение задержки таймера ТР .Если в секундах то все понятно работает, а мне необходимо в милисекундах, чтоб на экране было значение с запятой. Если переменная INT, то на экран выводится целое число, а если ставлю переменную FLOAT, то при умножении необходимо преоброзователь TO-INT. В библиотеке ОЛ его нет. Подскажите как построить, заранее благодарен.
Float тут не нужен, 5 секунд задаются как 5000, если 100 миллисекунд, то 100.
Newcomer
30.12.2024, 12:07
Добрый день
В ПР200 слот 1 RS-485 настроен как Master, а слот 2 как Slave. Объем памяти под сетевые переменные в обоих случаях 128 байт. Вопрос - область памяти сетевых переменных общая для обоих слотов ?
Правильно ли настроено чтение бита 0 регистра 256 в панели Weintec ?
Добрый день
В ПР200 слот 1 RS-485 настроен как Master, а слот 2 как Slave. Объем памяти под сетевые переменные в обоих случаях 128 байт. Вопрос - область памяти сетевых переменных общая для обоих слотов ?
Правильно ли настроено чтение бита 0 регистра 256 в панели Weintec ?
Общей память будет только если оба слота как Slave настроены. У мастера своя область
По поводу чтение бита, лучше к руководству по подключению обратиться
81046
А еще, можно на кнопочку нажать и там все будет расписано
81047
Newcomer
30.12.2024, 13:33
Общей память будет только если оба слота как Slave настроены. У мастера своя область
81046
Это означает, что в разных областях можно использовать одинаковые адреса регистров ?
Сергей0308
30.12.2024, 13:43
Так одинаковые адреса регистров могут быть и в одной сети(на одном интерфейсе), например если несколько одинаковых модулей ввода-вывода подключено, в смысле, это нормально!
Черепанов Сергей
30.12.2024, 14:08
Спасибо, разобрался
Newcomer
30.12.2024, 14:10
Так одинаковые адреса регистров могут быть и в одной сети(на одном интерфейсе), например если несколько одинаковых модулей ввода-вывода подключено, в смысле, это нормально!
У меня не разные модули, а разные слоты, Один - Master, другой - Slave.
Это означает, что в разных областях можно использовать одинаковые адреса регистров ?
Вы, даже одинаковые имена можете использовать
Сергей0308
30.12.2024, 15:04
У меня не разные модули, а разные слоты, Один - Master, другой - Slave.
Вы сами-то как думаете?
Если даже в одной сети с этим нет проблем(важно, что бы адреса слейв устройств в одной сети были уникальными и в пределах допустимого диапазона), то в разных сетях тем более не будет проблем, если можно так выразится!
Любой сети до лампочки что "творится" в другой сети!
Newcomer
30.12.2024, 18:32
Вы, даже одинаковые имена можете использовать
Имена одинаковые использовать как раз и нельзя. OL ошибку выдает.
Имена одинаковые использовать как раз и нельзя. OL ошибку выдает.
Подумаешь, ругается
81061
Saint999
31.12.2024, 13:01
День добрый, можно ли реле с интерфейсом ethernet (в частности 205 есть в наличии на тест) вывести на свой сайт (сервер), по принципу owencloud?
Может примеры есть, или обсуждение было? Поиск результатов не дал (
Может подскажите какое то стороннее устройство которое через интернет позволит с сайта менять настройки и видеть состояние выходов (просто переменных)?
Спасибо!
Saint999 чтобы вывести на свой сервер необходимы каналы связи.
Само ПР не умеет создавать каналы связи кроме OwenCloud. Но если он установлен в сети, то ваш роутер может создавать соединение с вашим сервером (у сервера должен быть реальный IP например).
А так, на стороннем сервере можно установить RapidScada (и другие подобные), которые позволят управлять вашим устройством.
Saint999
03.01.2025, 09:44
С Новым годом!
На ПЛК делали сокет соединение, так как пр уже умеет ST, я и подумал, может кто то уже пытался адаптировать, а может через modbus tcp, тут правда скорее всего vpn понадобится, но его можно на роутере поднять.
ПР не ПЛК и таких вещей как сокеты не умеет.
Для ST тут только логика работы функций и макросов из заложенных в ПР, не более.
Здравствуйте,
пишу домашний сценарий управления света, пока только даже ниже новичка))
Прибор ПР102.
Не могу понять как реализовать функцию сброса таймера TOF по внешнему сигналу когда он уже сработал.
Конкретно у меня включилась вытяжка по условию и будет молотить 30 минут:
81130
В моем сценарии вытяжку можно и вручную выключить (долгим нажатием клавиши). Но получается если таймер TOF1 сработал, то вытяжку уже ничем не остановить:
81131
Подскажите плиз, может есть макрос TOF c обнулением по внешнему сигналу или такой же макрос на ST.
Помогите плиз.
МихаилГл
06.01.2025, 08:46
Во-первых, верхняя ветвь на втором рисунке у вас при включении (как я понял, при повторном нажатии все должно выключиться), так вот именно при включении и оставлении кнопки нажатой у вас вторая ветвь уже не будет играть никакой роли (если бы даже правильно была сделана)...
Чтобы сбросить таймер, например, на его входе достаточно поставить элемент И, где будет ваш входной сигнал, и сигнал с выхода таймера, пропущенный через р-триггер. Возможно надо инверсировать. Для TON и TOF будет по разному. Возможно ф-триггер для одного, р-триггер для другого. И элемент ИЛИ на выходе 2ой ветви не пойму зачем?
Здравствуйте,
пишу домашний сценарий управления света, пока только даже ниже новичка))
Прибор ПР102.
Не могу понять как реализовать функцию сброса таймера TOF по внешнему сигналу когда он уже сработал.
Конкретно у меня включилась вытяжка по условию и будет молотить 30 минут:
81130
В моем сценарии вытяжку можно и вручную выключить (долгим нажатием клавиши). Но получается если таймер TOF1 сработал, то вытяжку уже ничем не остановить:
81131
Подскажите плиз, может есть макрос TOF c обнулением по внешнему сигналу или такой же макрос на ST.
Помогите плиз.
Пробуйте такой:
81132
Nikseln Ну как же вы все не умеете искать.
Вот готовое решение (нужен заголовок 2): https://cs-cs.net/owen-pr100-pr102-pr200-pt3-owenlogic-programming-modbus#2___owen_logic_8212____logo
EERoll, МишаГл Ну что? Что вы советуете?! Чтобы сбросить включенный таймер, надо его в его уставку времени записать НОЛЬ! А не триггеры городить. Банально SEL поставить, в котором на FALSE будет уставка времени, а на TRUE ноль. И на вход этого SEL ткнуть команду "Reset" (сброс таймера).
МихаилГл
06.01.2025, 11:46
Cs-Cs, а потом еще придумывать такой же sel на задание не нулевой уставки? Никогда так с таймерами не делаю.
PS А, вы уже это в один sel заложили, был невнимателен. Но я так никогда не делаю. На st сбрасываю in, а на fb это не обнуление задания времени.
PS2 Еще и доп кнопка на сброс этого таймера. Не удобное решение, хотя и применимо.
Что-то типа этого... Но никак не обнуление таймера. В ОЛ это еще прокатит, а в кодесисе, если не туда воткнешь, условие может не сработать...
БожеМой! Какая дополнительная кнопка-то? Откуда? Трезветь надо, молодой человече =)
МихаилГл
06.01.2025, 12:23
Cs-Cs, кстати, решение EFrol'а соответствует ТЗ ТС... К нему тр вы чего придрались... (Вопрос риторический)
МихаилГл
06.01.2025, 12:24
БожеМой! Какая дополнительная кнопка-то? Откуда? Трезветь надо, молодой человече =)
Команда ресет откуда идет? Под нее либо кнопка, либо программная логика...
Ресет кнопкой у вас, уж извините...
Так TON-у пофигу, там IN в 0 и логика таймера сама сбросит выход.
Это например для TP или TOF надо предусматривать сбросы времени.
МихаилГл
06.01.2025, 12:38
Так TON-у пофигу, там IN в 0 и логика таймера сама сбросит выход.
Это например для TP или TOF надо предусматривать сбросы времени.
TOF тоже...? Там же вроде тоже от IN все сбрасывается...
МихаилГл TOF - таймер на задержку отключения, при сбросе IN он только начинает отсчитывать время, чтобы выключить включенный выход по In = true
а предположим по логике, надо его сбросить раньше, чем отработает встроенный таймер
МихаилГл
06.01.2025, 14:23
МихаилГл TOF - таймер на задержку отключения, при сбросе IN он только начинает отсчитывать время, чтобы выключить включенный выход по In = true
а предположим по логике, надо его сбросить раньше, чем отработает встроенный таймер
Согласен что именно выход Q тут проблемный. Но если надо аварийно сбросить выход, для этого лучше цепь аварийной обработки воткнуть, чем изменять уставки таймера.
Ну цепь цепью, а подходы бывают разные, потому что сброс например может быть импульсной командой, и Q опять окажется включенным, если время таймера ещё не истекло.
Всегда надо по ситуации программы смотреть, что и как применять. Так что сброс внутренних переменных таймеров имеет место
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot