PDA

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



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

Diminator
26.02.2017, 14:41
Подскажите, пытаюсь использовать макрос PTC_1000 для преобразования температуры в ПР 200. У меня датчик Danfoss EKS 111. Характеристики вроде подходят http://holod-magazin.ru/document/present/231/554b14578031c.pdf. Но проблема в том что я эмуляторе не получаю значений.
29741
Подскажите, что я делаю не так?

Василий Кашуба
26.02.2017, 15:22
Подскажите, пытаюсь использовать макрос PTC_1000 для преобразования температуры в ПР 200. У меня датчик Danfoss EKS 111. Характеристики вроде подходят http://holod-magazin.ru/document/present/231/554b14578031c.pdf. Но проблема в том что я эмуляторе не получаю значений.
29741
Подскажите, что я делаю не так?
Похоже вы выходы макроса РТС_1000 никуда не подключили (не задействованы в программе).

Pavel_
26.02.2017, 18:05
Но проблема в том что я эмуляторе не получаю значений.
29741
Подскажите, что я делаю не так?
Переменную "Темп-градусы" не привязали к элементу экрана "ввод/вывод (int/float)".

Василий Кашуба
26.02.2017, 21:49
И ещё вопрос. Зачем вы вход AI2, который является float, ещё раз преобразуете во float?

Diminator
26.02.2017, 21:49
Похоже вы выходы макроса РТС_1000 никуда не подключили (не задействованы в программе).
Но переменная т.измеренное тоже не привязана, однако значение присваивается.


Переменную "Темп-градусы" не привязали к элементу экрана "ввод/вывод (int/float)".
Извините, не понял. А как это сделать?

Василий Кашуба
26.02.2017, 21:52
Если хотите быстрой помощи, выкладывайте свою программу.

Василий Кашуба
26.02.2017, 21:55
Но переменная т.измеренное тоже не привязана, однако значение присваивается....
А вот т.измеренное ​значит, где то в программе задействовано.

Diminator
26.02.2017, 22:48
Программа изначально не моя, наверное правильно спросить у автора можно ли ее выложить. Но у меня вообще странное поведение OwenLogic. У меня пропадает закладка "Менеджер экранов". Появляется только после перезапуска программы. На экране не могу назначить переменную для вывода на экран. Черт знает что происходит. :(

Василий Кашуба
26.02.2017, 23:07
Программа изначально не моя, наверное правильно спросить у автора можно ли ее выложить. Но у меня вообще странное поведение OwenLogic. У меня пропадает закладка "Менеджер экранов". Появляется только после перезапуска программы. На экране не могу назначить переменную для вывода на экран. Черт знает что происходит. :(
Тогда задайте вопросы автору, почему его программа не работает.
А по поводу работы ОЛ, переустановите заново.

melky
27.02.2017, 01:17
не надо закрывать вкладку Экраны, оно и пропадать не будет...
Т.измеренное показывает, потому что сигнал пошел на гистерезис и RTC

Diminator
27.02.2017, 01:29
Спасибо. Создал новый проект, вроде все отражает. Но сейчас не могу сконвертировать в "человеческое" отображение температуры. При конвертации в Int все красиво до тех пор пока не появляется показатель со знаком минус. По идеи макрос преобразования должен выдать целое число (градусы) или я ошибаюсь?
29746

maximov2009
27.02.2017, 04:36
Добрый день. А зачем Вам инт? Для температуры обычно используется флоат, чем он Вас не устраивает?
И всё будет корректно отображаться и плюсы и минусы.
С уважением.

melky
27.02.2017, 10:00
int в ПР целочисленный без знака 32 разряда. Нужны минусы, используем float.
Если вам необходим все же int и вы сами будете заниматься преобразованиями в минус и обратно, пробегали на форуме макросы для передачи по сети int с учетом знака...

Diminator
27.02.2017, 10:22
У меня сейчас вот так отражается и очень сложно постоянно конвертировать в одну и другую сторону. Плюс не пойму как с минусовыми значениями работать в этом случае.
29748

maximov2009
27.02.2017, 10:28
А что собственно Вас не устраивает. Уберите преобразователь в инт и всё. Если Вас смущают цифирки типа 2,5Е и т.д., то это просто форма отображения в симуляторе. При выводе на экран ПР200 или дальнейшей обработке, программа работает именно как с числом 25. И покажет именно 25 градусов.
И если дальше в программе будете сравнивать, все как с обычными отрицательными цифрами. Только использовать блоки с приставкой f. Например fsel для для вещественного числа а не sel для целочисленного.
Такая вот особенность симулятора. Это уже не раз обсуждалось.

Сергей0308
27.02.2017, 10:48
Так если он преобразует отрицательные значения температуры(FLOAT) в INT, что в ОЛ, т. е. UDINT, то я извиняюсь, Землю уничтожить можно, получится более 4 миллиардов градусов, а термоядерная реакция синтеза гелия из водорода начинается уже при 15 миллионах!

Diminator
27.02.2017, 11:31
А что собственно Вас не устраивает. Уберите преобразователь в инт и всё. Если Вас смущают цифирки типа 2,5Е и т.д., то это просто форма отображения в симуляторе. При выводе на экран ПР200 или дальнейшей обработке, программа работает именно как с числом 25. И покажет именно 25 градусов.
И если дальше в программе будете сравнивать, все как с обычными отрицательными цифрами. Только использовать блоки с приставкой f. Например fsel для для вещественного числа а не sel для целочисленного.
Такая вот особенность симулятора. Это уже не раз обсуждалось.
Спасибо! Да, именно отображение смутило. Хотелось понимать на сколько верно работает конвертация и сравнить с показаниями моего датчика. Убрал int, все работает корректно но выглядит в симуляторе не очень :)
Еще такой вопрос, я хочу сделать модуляцию котла, т.е. включать/отключать тэны в зависимости от роста температуры сравнивая результат за период. Достаточно примитивный алгоритм, 3 тена - Включил один, посмотрел на рост температуры, нет роста включил второй и далее третий. Если достиг нужной температуры, пытаться ее поддержать за счет включения/отключения тэнов. Есть ли какой-то подобный пример чтобы поучиться?

melky
27.02.2017, 11:51
Округлите значение float до 2-х знаков и не будет у вас отображаться в экспоненте.

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

Алексей Геннадьевич
27.02.2017, 11:56
Спасибо! Да, именно отображение смутило. Хотелось понимать на сколько верно работает конвертация и сравнить с показаниями моего датчика. Убрал int, все работает корректно но выглядит в симуляторе не очень :)
В версии 1.7 было 8 знаков у FLOAT.


Еще такой вопрос, я хочу сделать модуляцию котла, т.е. включать/отключать тэны в зависимости от роста температуры сравнивая результат за период. Достаточно примитивный алгоритм, 3 тена - Включил один, посмотрел на рост температуры, нет роста включил второй и далее третий. Если достиг нужной температуры, пытаться ее поддержать за счет включения/отключения тэнов. Есть ли какой-то подобный пример чтобы поучиться?
1) мощность ТЭНов одинаковая? или это 3 группы с разной мощностью?
2) лучше это делать по уровню выходного сигнала с ПИД регулятора: при 0,0-0,2 работает одна группа, по мере роста уровня сигнала подключаем остальные группы.
Важно, чтобы мощность регулировочной ступени перекрывала по мощности самую малую добавочную.
регулир. ТЭН - 30%
1 ступень - 25%
2 ступень -45%

petera
27.02.2017, 13:19
Внесу ясность.
Не буду цитировать все посты с #11 по #17, но
Преобразование Float To Int выполняется корректно, по всем правилам компьютерной математики!
И преобразованные значения получаются никакие не UDINT, а именно INT, т.е со знаком!
Если смущают миллиарды после -10.0 -->Float To Int-->4294967286, то 4294967286 (FFFF FFF6) это и есть -10 в дополнительном коде
поясню. Целые числа со знаком(INT) в ЭВМ представлены в дополнительном коде.
Он позволяет заменить операцию вычитания на операцию сложения и сделать операции сложения и вычитания одинаковыми для знаковых и беззнаковых чисел, чем упрощает архитектуру ЭВМ.
В таком же виде -10 представлено и в кодесис http://www.owen.ru/forum/showthread.php?t=25132&p=220154&viewfull=1#post220154, и в панели СП, и т.д.
Таким образом если положить 4294967286 (FFFF FFF6) в сетевую переменную, которую читать из панели, то на дисплее панели одна и та же переменная (FFF6) отобразится как 65526 в формате Unsigned или -10 в формате Dec.

В ПР математические операции ADD, MUL, DIV для чисел в дополнительном коде будут выполнятся правильно по определению. Тут даже никаких лишних макросов не нужно.
Т.е. если -10, а это 4 294 967 286(FFFF FFF6) умножить(MUL) на 1000, то получим результат всего лишь 4 294 957 296 (FFFF D8F0) - не что иное, как -10000 в дополнительном коде.
Фактически для операций ADD, MUL, DIV числа 0 до 2147483647 - положительные, а от 2147483648 до 4294967295 - отрицательные в дополнительном коде
Вот только в самой среде редактирования ОЛ почему то ПРАВИЛЬНЫЕ значения INT отображаются как целые беззнаковые.

Сергей0308
27.02.2017, 20:21
Внесу ясность.
Не буду цитировать все посты с #11 по #17, но
Преобразование Float To Int выполняется корректно, по всем правилам компьютерной математики!
И преобразованные значения получаются никакие не UDINT, а именно INT, т.е со знаком!
Если смущают миллиарды после -10.0 -->Float To Int-->4294967286, то 4294967286 (FFFF FFF6) это и есть -10 в дополнительном коде
поясню. Целые числа со знаком(INT) в ЭВМ представлены в дополнительном коде.
Он позволяет заменить операцию вычитания на операцию сложения и сделать операции сложения и вычитания одинаковыми для знаковых и беззнаковых чисел, чем упрощает архитектуру ЭВМ.
В таком же виде -10 представлено и в кодесис http://www.owen.ru/forum/showthread.php?t=25132&p=220154&viewfull=1#post220154, и в панели СП, и т.д.
Таким образом если положить 4294967286 (FFFF FFF6) в сетевую переменную, которую читать из панели, то на дисплее панели одна и та же переменная (FFF6) отобразится как 65526 в формате Unsigned или -10 в формате Dec.

В ПР математические операции ADD, MUL, DIV для чисел в дополнительном коде будут выполнятся правильно по определению. Тут даже никаких лишних макросов не нужно.
Т.е. если -10, а это 4 294 967 286(FFFF FFF6) умножить(MUL) на 1000, то получим результат всего лишь 4 294 957 296 (FFFF D8F0) - не что иное, как -10000 в дополнительном коде.
Фактически для операций ADD, MUL, DIV числа 0 до 2147483647 - положительные, а от 2147483648 до 4294967295 - отрицательные в дополнительном коде
Вот только в самой среде редактирования ОЛ почему то ПРАВИЛЬНЫЕ значения INT отображаются как целые беззнаковые.

Вы же участвовали в обсуждении по этой теме: http://www.owen.ru/forum/showthread.php?t=24760&highlight=%CE%E1%F9%E8%E5+%E2%EE%EF%F0%EE%F1%FB
Короче в 2 словах: в ОЛ INT(DINT) это UINT(UDINT)! Это они так решили "перекрестить"!

Diminator
27.02.2017, 20:57
Округлите значение float до 2-х знаков и не будет у вас отображаться в экспоненте.
А как это сделать?

Сергей0308
27.02.2017, 21:06
А как это сделать?

Как-то так:

29762

petera
27.02.2017, 23:40
Вы же участвовали в обсуждении по этой теме: http://www.owen.ru/forum/showthread.php?t=24760&highlight=%CE%E1%F9%E8%E5+%E2%EE%EF%F0%EE%F1%FB
Короче в 2 словах: в ОЛ INT(DINT) это UINT(UDINT)! Это они так решили "перекрестить"!

В том-то и фишка, что если целое отрицательное число представлено в дополнительном коде, то результаты арифметических операций положительных и отрицательных в любой комбинации всегда будет верным.
Для процессора и те и другие числа просто набор ноликов и единичек. Это для человека нужен + да -, чтобы он сразу видел это положительное число или отрицательное. Смотря в какой системе координат рассматривать эти наборы ноликов и единичек.
Если в системе координат где нет отрицательных чисел, то FFF6 означает 65526
А если система координат предполагает наличие отрицательных чисел, то FFF6 означает минус 10

Сергей0308
28.02.2017, 00:39
В том-то и фишка, что если целое отрицательное число представлено в дополнительном коде, то результаты арифметических операций положительных и отрицательных в любой комбинации всегда будет верным.
Для процессора и те и другие числа просто набор ноликов и единичек. Это для человека нужен + да -, чтобы он сразу видел это положительное число или отрицательное. Смотря в какой системе координат рассматривать эти наборы ноликов и единичек.
Если в системе координат где нет отрицательных чисел, то FFF6 означает 65526
А если система координат предполагает наличие отрицательных чисел, то FFF6 означает минус 10

Да, замечательная фишка! Особенно наверно тогда, когда на экране ПР или в симуляторе ОЛ вместо ожидаемых "-10", видишь миллиарды, сразу наверно думаешь, как хорошо, что арифметические операции верно выполнены! Но я не про это, это всё может и верно с операциями, осталось INT(DINT) назвать UINT(UDINT), чтобы люди меньше путались, а то и Вы уже пишите, цитирую:"Вот только в самой среде редактирования ОЛ почему то ПРАВИЛЬНЫЕ значения INT отображаются как целые беззнаковые". И Вы правы, потому, что понимаете INT как целое знаковое(как и я), а у них(в ОЛ) оказывается(кто бы мог подумать) INT - целое беззнаковое!

AI!
28.02.2017, 11:10
Как-то так:
29762Верхняя конструкция получения знака числа слишком громоздкая.
(особенно если учесть что внутри fSel тоже не один элемент)
для получения знака числа достаточно просто разделить число на его модуль (или наоборот), т.е. |x|/x
PS с учётом что модуль у вас уже есть - то надо всего лишь один элемент - fDIV

Сергей0308
28.02.2017, 11:29
Верхняя конструкция получения знака числа слишком громоздкая.
(особенно если учесть что внутри fSel тоже не один элемент)
для получения знака числа достаточно просто разделить число на его модуль (или наоборот), т.е. |x|/x
PS с учётом что модуль у вас уже есть - то надо всего лишь один элемент - fDIV

Так Вы, если не ошибаюсь, уже такое выкладывали(усовершенствовали), конечно проще получится, но я и не претендовал на совершенство!

29783

Diminator
01.03.2017, 01:02
конечно проще получится, но я и не претендовал на совершенство!
Спасибо, отличный макрос, работать просто в разы приятнее и удобнее!

Продолжу задавать глупые вопросы, я не могу понять, как "очеловичить" вывод сообщений на экран? Т.е. если у меня в переменной "Статус" имеет значение "1" выдать на экран что человеческое, допустим слово "Нагрев"?

maximov2009
01.03.2017, 04:20
Добрый день. Когда на экране создаёте булевую переменную, в параметрах указываете текст для 0 и 1, для фальши и лжи. Там для примера даже по умолчанию написано Пуск и Стоп. Их стираете и пишете какие Вам надо слова.
Можно и побитно, присвоить каждому биту переменной своё словечко. Это уже через КОМБОБОКС.
С уважением.

Diminator
01.03.2017, 09:50
Спасибо! Правда я думал что ОЛ более гибкий и позволяет создавать конструкции типа set переменная - значение и соответственно их вывод. А все намного сложнее оказалось. Да и вообще, любое движение или небольшая хотелка упирается в ковыряние макросов и не самой простой реализацией.

maximov2009
01.03.2017, 09:55
Вы просто не привыкли. Ничего особо сложного нет.
Это как в анекдоте про любовь к кошкам.

melky
01.03.2017, 12:55
Diminator а вы думаете на ПР других производителей все так легко ?....

Diminator
02.03.2017, 11:55
Честно говоря это мое первое знакомство с подобными устройствами. До этого я использовал raspberry, но друзья мне сказали что это неправильно, надо использовать промышленное решение ))) Сейчас я понимаю что реализовывать даже часть того что было на raspberry будет очень не легко. ))) Но ничего, ради промышленного решения - буду погибать молодым!

Василий Кашуба
02.03.2017, 12:05
Честно говоря это мое первое знакомство с подобными устройствами. До этого я использовал raspberry, но друзья мне сказали что это неправильно, надо использовать промышленное решение ))) Сейчас я понимаю что реализовывать даже часть того что было на raspberry будет очень не легко. ))) Но ничего, ради промышленного решения - буду погибать молодым!
Какой то вы пессимист. Я начал изучать КДС в 54 года, Сименс Лого в 56, а ОЛ в 57 лет и ничего, не помер. Из этих программ, для меня самое удобное ОЛ.

Diminator
02.03.2017, 15:11
Нет, что вы! Я как раз оптимист. Поэтому и продолжаю бороться. :) Сименс Лого я только видел, мне показалось что водопроводчики писали. Но все-же хочется что-то более комфортное, все-же прогресс на дворе. Мне очень понравилось Google Blockly. Удобно, понятно и быстро. Но что делать, будем использовать то что есть.

Василий Кашуба
02.03.2017, 15:28
Если вы можете составлять схемы на логических (цифровых) микросхемах, то программировать в ОЛ точно так же.

mixey55
03.03.2017, 19:55
Где посмотреть схему подключения датчика ДТС и настройки входа для ПР-200

SF_Axel
03.03.2017, 20:11
Где посмотреть схему подключения датчика ДТС и настройки входа

Не понял вопроса... Вход калибруется в свойствах элемента (справа внизу окно "Свойства". т.е., выбираете аналоговый вход, к которому будете подключать датчик. В окне его свойст, вместо параметра "4-20мА" выставляете "0...4000Ом". Далее, меню "Файл ->Онлайн база макросов..." Раздел аналоговые преобразования, ставите галочку напротив нужной характеристики и нажимаете кнопку "Загрузить". После появления сообщения об успешной загрузке макроса, окно можно закрыть. Нужный макрос будет доступен в разделе "Макросы проекта".
Вытягиваете его на рабочий лист и подключаете к настроенному входу. Собственно, все. Надеюсь смог ответить на Ваш вопрос.
Кстати, для ПР200 не забудьте переставить перемычки, в соответствии с руководством по эксплуатации. С прибора, для этого, понадобится снять (и потом вернуть на место) верхнюю крышку.

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

verpup
04.03.2017, 13:14
Подскажите как лучше сделать пожалуйста
Есть двухпозиционный регулятор температуры:
Необходимо составить схему так, чтобы чтобы при подаче логической 1 на 2й вход, она не проходила на выход при любых значениях температуры
Вроде не сложно, а придумать не могу

Diminator
04.03.2017, 13:57
непонятно зачем. А при каких условиях должна проходить?

Василий Кашуба
04.03.2017, 15:15
Подскажите как лучше сделать пожалуйста
Есть двухпозиционный регулятор температуры:
Необходимо составить схему так, чтобы чтобы при подаче логической 1 на 2й вход, она не проходила на выход при любых значениях температуры
Вроде не сложно, а придумать не могу
Сделайте вот так, правда для ваших условий нужен ещё инвертор.
29847

verpup
04.03.2017, 17:15
спасибо!
я вот так придумал))

Василий Кашуба
04.03.2017, 19:33
спасибо!
я вот так придумал))
Ну тогда, вот так.
29853

Diminator
07.03.2017, 01:09
Помогите, пожалуйста, весь уже сломался, мозгов не хватает. Сделал программку для включения/выключения электрического 3-х фазного котла. Все хорошо, но не могу понять как сделать удержание температуры в достигнутом диапазоне.
Т.е. Включили котел, дошли до заданной температуры и следим. Если продолжается рост температуры, выключаем один тэн, продолжает расти - выключаем второй.
Если температура падает - подключаем один тэн, продолжает падать - включаем еще один.

29903

maximov2009
07.03.2017, 04:35
Добрый день. А зачем Вам такие изыски с поочерёдным включением ТЭНов. Поставьте ПИД регулятор, с него на аналоговый выход. С аналогового выхода на трёхфазную с аналоговым управлением. И всё.
С уважением.

Diminator
07.03.2017, 10:55
трехфазную с аналоговым управлением? У меня котел готовый, управляется симисторами на входе. Переделывать на аналоговое управление, мне кажется не вариант, тем более что не обладаю таким знаниями. А поочередное включение необходимо для того чтобы с температурой справиться, иначе отключается при достижении температуры и тут же поступает запрос на включение, мне пришлось добавить в проект перерыв между включениями на 10 мин.

Игорюня
07.03.2017, 11:00
Блок управления тиристорами и симисторами ОВЕН БУСТ Вам в помощь

maximov2009
07.03.2017, 11:51
Блок управления тиристорами и симисторами ОВЕН БУСТ Вам в помощь

Согласен. ПИД регулятор на налоговый выход, с него на БУСТ.
БУСТ + симисторы то же ТТР с аналоговым управлением, только по частям. Если симисторы уже приработались, управляйте БУСТОМ.
А в Вашей программе всё уж больно замудрёно
Всё уже придумано до Вас.
С уважением.

Diminator
07.03.2017, 12:19
))))) Друзья, ну вы имейте совесть ))))) Котел мне обошелся в кусок трубы и три тэна (тэны покупал) + три тыщи, + овен немного больше. И вы предлагаете купить управление симисторами за стоимость котел + овен? )))
Помогите, пожалуйста, как решить с включением выключением тэнов. :)

Алексей Геннадьевич
07.03.2017, 12:49
Помогите, пожалуйста, весь уже сломался, мозгов не хватает. Сделал программку для включения/выключения электрического 3-х фазного котла. Все хорошо, но не могу понять как сделать удержание температуры в достигнутом диапазоне.
Т.е. Включили котел, дошли до заданной температуры и следим. Если продолжается рост температуры, выключаем один тэн, продолжает расти - выключаем второй.
Если температура падает - подключаем один тэн, продолжает падать - включаем еще один.

29903
1) Нужно следить за скоростью роста/падения температуры, и исходя из этого принимать решение о включении-отключении соответствующих ТЭНов.
2) примените ПИД-регулятор. Преобразователь аналог 0-1 в ШИМ с задаваемым периодом имеется.
3) мощности ТЭНов

))))) Друзья, ну вы имейте совесть ))))) Котел мне обошелся в кусок трубы и три тэна (тэны покупал) + три тыщи, + овен немного больше. И вы предлагаете купить управление симисторами за стоимость котел + овен? )))
Помогите, пожалуйста, как решить с включением выключением тэнов. :)
Делать нужно как надо, а не как "дешевле".
Вот только БУСТ здесь нафиг не нужен. Всё программно решаемо.

Игорюня
07.03.2017, 12:53
В свое время делал каскадное включение котлов электрических. Алгоритм: включается 1 котел, если температура не набирается в течении 15 мин, то включается 2 котел, если не набралась в течении 15 мин, то включается 3. При наборе температуры выключаются все 3. Температура воды плавает, но для температуры в помещении никак не зависит. Датчик стоял по температуре в помещении, при чем в детском садике, где СНИПы жесткие. Жалоб не было.

Diminator
07.03.2017, 13:15
@Алексей Геннадьевич,
Да, вот я и понять не могу как следить за движением температуры. Логику я понимаю, я реализацию понять не могу :(
@Игорюня,
Да, у меня сейчас так и работает, но проблема в другом, температура носителя приходит к заданной быстрее чем температура в помещении. Поэтому получается следующая ситуация, носитель нагрелся и отключился а запрос на тепло продолжает поступать от комнатного термостата. Из-за этого происходит тактование котла.

melky
07.03.2017, 13:29
Diminator не помню, вам писал или нет. Кажется rovki делал макрос, который отслеживает изменение переменной, увеличивается или уменьшается.
Это раз. Два, вам нужно к этому еще добавить скорость изменения переменной.
Ну и собрать это до кучи в программе.
Плюс добавить гистерезисов, чтобы контакторами не клацать постоянно.
Раз у вас в котле Т набралась а помещение еще не прогрелось, то надо выключить 1 ТЭН или 2 и ждать повышения Т помещения. то есть держать Т в котле на некотором постоянном уровне, пока термостат не отключится.

Игорюня
07.03.2017, 13:49
@Игорюня,
Да, у меня сейчас так и работает, но проблема в другом, температура носителя приходит к заданной быстрее чем температура в помещении. Поэтому получается следующая ситуация, носитель нагрелся и отключился а запрос на тепло продолжает поступать от комнатного термостата. Из-за этого происходит тактование котла.

Я это делал на 2ТРМ1 и двух реле времени. 1 канал - комнатная температура, гистерезис 1 градус, второй канал - максимальная температура воды 95 градусов и гистерезис (точно не помню) 20 градусов. Если не изменяет память. Давно это было.

Алексей Геннадьевич
07.03.2017, 13:51
@Алексей Геннадьевич,
Да, вот я и понять не могу как следить за движением температуры. Логику я понимаю, я реализацию понять не могу :(
Здесь посмотрите в блоке АНР, может что и придёт в голову.
http://www.owen.ru/forum/showthread.php?t=23453&page=4&p=200940#post200940
ШИМ
http://www.owen.ru/forum/attachment.php?attachmentid=23547&d=1459524760/
Вы про ТЭНы скажите.
какая мощность каждого?


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

Зависимость делается от наружней температуры. И зависимой делается уставка температуры теплоносителя.

Diminator
07.03.2017, 14:53
Тэны по 4кВт. Зависимость да, от температуры на улице. Но сейчас надо удержать температуру теплоносителя. Зависимость я хотел потом сделать, у меня еще газовый котел, но тот по протоколу opentherm работает , я хотел с метеостанции данные получать и на основе этих данных выставлять нужную температуру носителя в обоих котлах. Но это далекая переспектива.

Сергей0308
07.03.2017, 15:34
Тэны по 4кВт. Зависимость да, от температуры на улице. Но сейчас надо удержать температуру теплоносителя. Зависимость я хотел потом сделать, у меня еще газовый котел, но тот по протоколу opentherm работает , я хотел с метеостанции данные получать и на основе этих данных выставлять нужную температуру носителя в обоих котлах. Но это далекая переспектива.

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

Diminator
07.03.2017, 16:01
Одно другого не исключает. Для того чтобы нагреть помещение необходимо нагреть теплоноситель до определенной температуры. Очень важно греть дом равномерно а не рывками , тогда вы избежите проблем с эффектом сауны в доме. Сейчас у меня именно так. Термостат на первом этаже настроен на 23 градуса днем и 18 ночью, на втором этаже на 20 ночью 18 днем. Что происходит, термостат просит тепло, котел включился и греет воду (допустим до 60 градусов). Батареии нагрелись и достигли своего максимума по теплоотдачи, но в комнатах еще нет нужной температуры. Соответственно обратка становиться теплее и в итоге котел нагнетает свои 60 градусов и выключается (съем тепла с радиаторов и теплого пола всегда ниже чем темп теплоносителя). И вот тут котел начинает дико трактовать. Нагнал, выключился, температура теплоносителя за 2 мин упала ниже дельты. Котел включился, за секунду нагрел опять выключился и так постоянно. У меня сначала стояли контакторы которые хлопали как сумасшедшие, с семисторами хорошо тихо, но прыгает температура в комнатах, и это неприятно. + у меня в комнатах стоят термоголовы которые зажимают радиаторы по температуре, количество теплоносителя сокращается и нагрев происходит еще быстрее, тактование выше. Я добавил таймер включения, это спасло ситуацию но за 10 я чуствую сто температура в комнате гуляет.

Сергей0308
07.03.2017, 16:22
Одно другого не исключает. Для того чтобы нагреть помещение необходимо нагреть теплоноситель до определенной температуры. Очень важно греть дом равномерно а не рывками , тогда вы избежите проблем с эффектом сауны в доме. Сейчас у меня именно так. Термостат на первом этаже настроен на 23 градуса днем и 18 ночью, на втором этаже на 20 ночью 18 днем. Что происходит, термостат просит тепло, котел включился и греет воду (допустим до 60 градусов). Батареии нагрелись и достигли своего максимума по теплоотдачи, но в комнатах еще нет нужной температуры. Соответственно обратка становиться теплее и в итоге котел нагнетает свои 60 градусов и выключается (съем тепла с радиаторов и теплого пола всегда ниже чем темп теплоносителя). И вот тут котел начинает дико трактовать. Нагнал, выключился, температура теплоносителя за 2 мин упала ниже дельты. Котел включился, за секунду нагрел опять выключился и так постоянно. У меня сначала стояли контакторы которые хлопали как сумасшедшие, с семисторами хорошо тихо, но прыгает температура в комнатах, и это неприятно. + у меня в комнатах стоят термоголовы которые зажимают радиаторы по температуре, количество теплоносителя сокращается и нагрев происходит еще быстрее, тактование выше. Я добавил таймер включения, это спасло ситуацию но за 10 я чуствую сто температура в комнате гуляет.

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

Diminator
07.03.2017, 17:17
Совет хороший, но на решение не тянет. Я все-же вернусь к регулировке теплоносителя. А тузы это хорошо :) но ничего, пройдет лет пять и мы тоже начнем мыслить "хотелками". Не устаю удивляться (хотя западную систему не очень люблю) у нас на форуме спросишь, сначала ведро помоев выльют, у них попытаются задачу решить, какой бы идиотской она не казалась. Прогресс и стагнация. Надеюсь выберемся когда-то...

Василий Кашуба
07.03.2017, 23:01
Помогите, пожалуйста, весь уже сломался, мозгов не хватает. Сделал программку для включения/выключения электрического 3-х фазного котла. Все хорошо, но не могу понять как сделать удержание температуры в достигнутом диапазоне.
Т.е. Включили котел, дошли до заданной температуры и следим. Если продолжается рост температуры, выключаем один тэн, продолжает расти - выключаем второй.
Если температура падает - подключаем один тэн, продолжает падать - включаем еще один.

29903

Посмотрите мой вариант схемы.

Сергей0308
08.03.2017, 00:19
Совет хороший, но на решение не тянет. Я все-же вернусь к регулировке теплоносителя. А тузы это хорошо :) но ничего, пройдет лет пять и мы тоже начнем мыслить "хотелками". Не устаю удивляться (хотя западную систему не очень люблю) у нас на форуме спросишь, сначала ведро помоев выльют, у них попытаются задачу решить, какой бы идиотской она не казалась. Прогресс и стагнация. Надеюсь выберемся когда-то...

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

Diminator
08.03.2017, 02:21
@Василий Кашуба, круто! Спасибо! Просто и эффективно! Т_min и T_max можно сделать вычисляемым значением от установленной температуры. Клево! Можно это сделать внутри макроса гистерезиса, я так понимаю вы его сами написали?
Подскажите еще момент, я вставил функциональный блок "clock", но время которое в нем задается получается захардкодиным. Можно как-то с морды менять значения в этом блоке? Я честно говоря вообще еще с дисплеем не работал, но хотелось бы с морды управлять большинством значений.

Сергей0308
08.03.2017, 04:31
@Василий Кашуба, круто! Спасибо! Просто и эффективно! Т_min и T_max можно сделать вычисляемым значением от установленной температуры. Клево! Можно это сделать внутри макроса гистерезиса, я так понимаю вы его сами написали?
Подскажите еще момент, я вставил функциональный блок "clock", но время которое в нем задается получается захардкодиным. Можно как-то с морды менять значения в этом блоке? Я честно говоря вообще еще с дисплеем не работал, но хотелось бы с морды управлять большинством значений.

Вы мечтаете изобрести велосипед! Надеюсь Вам никто не мешает ознакомится с макросами из онлайн базы, из многочисленных тем форума:
http://www.owen.ru/forum/showthread.php?t=9398
http://www.owen.ru/forum/showthread.php?t=17153
http://www.owen.ru/forum/showthread.php?t=12687
http://www.owen.ru/forum/showthread.php?t=22361
http://www.owen.ru/forum/showthread.php?t=13106
http://www.owen.ru/forum/showthread.php?t=12691
http://www.owen.ru/forum/showthread.php?t=25067
http://www.owen.ru/forum/showthread.php?t=25068
Это, на мой взгляд, может больше помочь, чем скоропалительные умозаключения, как всё плохо!

Diminator
08.03.2017, 10:50
@Сергей0308, спасибо, будем изучать. По первым вашим ссылкам скажу следующее - есть люди процесса есть люди результата. Первым важен порядок, важно чтобы не задавали по два раза вопросы, чтобы все было собрано, учтено, каталогизировано. Чтобы все было разбито на этапы и сроки. Второй категории важен финальный результат и им глубоко все равно что там по дороге, это люди одержимые результатом но при этом они активно используют труды первых, при этом матерясь на них же за то что те настаивают на документировании их процесса. Обычно теряют интерес при достижении результата. Вот так и живем.
Момент 2 - использовать форум как базу знаний и тем более его поиск, сомнительное , но результат а тем более перелопатить такой объем в поисках призрачной истины, бррр... в 90% случаях это потеря времени. Owen'у необходимо инвестировать в создание некой базы знаний, допустим по модели того-же microsoft. Но на это нужны ресурсы и деньги. Поэтому и ковыряемся на форумах в поисках хоть какой-то информации и задаем по 10 раз одни и те же вопросы.

Pavel_
09.03.2017, 12:13
Подскажите еще момент, я вставил функциональный блок "clock", но время которое в нем задается получается захардкодиным. Можно как-то с морды менять значения в этом блоке?
Менять значения в блоке "clock" с морды нельзя.
Такая возможность есть у аналогичных блоку "clock" макросов, например с помощью макроса в базе он-лайн или с помощью этого (http://www.owen.ru/forum/showthread.php?t=23201&page=7&p=218112#post218112).

Diminator
13.03.2017, 16:29
Все было замечательно, сохранил проект, сейчас открываю его и получаю сообщение "Не удалось загрузить файл котел.owl Не удалось загрузить макрос из секции". Что делать?

Павел Братковский
13.03.2017, 17:07
Все было замечательно, сохранил проект, сейчас открываю его и получаю сообщение "Не удалось загрузить файл котел.owl Не удалось загрузить макрос из секции". Что делать?

если ОЛ обновляли, то надо открыть обновленный ОЛ и из него открыть ваш проект....

Diminator
14.03.2017, 10:51
если ОЛ обновляли, то надо открыть обновленный ОЛ и из него открыть ваш проект....
Спасибо, помогло. А то уже испугался.

Подскажите, как создать переменную которая в воздухе висит? Я хотел создать переменную которая присутствует виртуально, но меняется с дисплея? А так повесил переменную но судя по всему она в воздухе не работает :(

Diminator
14.03.2017, 11:34
С переменной разобрался, спасибо. Просто удалил висящие в воздухе блоки выходной переменной и задал значения по умолчанию для переменных. Надеюсь что правильно сделал.

Pavel_
14.03.2017, 11:35
Подскажите, как создать переменную которая в воздухе висит? Я хотел создать переменную которая присутствует виртуально, но меняется с дисплея? А так повесил переменную но судя по всему она в воздухе не работает :(
Нужно включить галочку "энергонезависимая".

Diminator
14.03.2017, 17:40
А как в макросе изменить порядок входов? Я добавил входной порт и поднял его наверх, он получился с номером три и при сохранении макроса вход опускается ниже что очень неудобно :(

Василий Кашуба
14.03.2017, 17:42
А как в макросе изменить порядок входов? Я добавил входной порт и поднял его наверх, он получился с номером три и при сохранении макроса вход опускается ниже что очень неудобно :(
Перенесением связей и переназначением входов.

Diminator
14.03.2017, 19:10
Перенесением связей и переназначением входов.
Очень жестко...

Shu
14.03.2017, 23:27
Господа специалситы нужна нужна ваша помощь.
Необходимо считывать сигнал с 3 отдельных термопар на ПК.
Какой моудль лучше выбрать МВ110-8А или МВ110-8АС?

Павел Братковский
14.03.2017, 23:54
Господа специалситы нужна нужна ваша помощь.
Необходимо считывать сигнал с 3 отдельных термопар на ПК.
Какой моудль лучше выбрать МВ110-8А или МВ110-8АС?

всего три раза написал, не будем отвечать!!!!!!!!!!

Diminator
15.03.2017, 01:37
Извините, очередной тупой вопрос, уверен что его обсуждали но поиском не могу найти. Пытаюсь сделать вкл/выкл одной кнопкой, но как-то громоздко получается, уверен что есть простое решение, но что-то допедрить никак не могу.

Сергей0308
15.03.2017, 01:59
Извините, очередной тупой вопрос, уверен что его обсуждали но поиском не могу найти. Пытаюсь сделать вкл/выкл одной кнопкой, но как-то громоздко получается, уверен что есть простое решение, но что-то допедрить никак не могу.

Посмотрите здесь: http://www.owen.ru/forum/showthread.php?t=21359

Vyachep
15.03.2017, 05:22
Diminator, три варианта, на выбор.
30037

ferret_maybe
15.03.2017, 05:36
Господа специалситы нужна нужна ваша помощь.
Необходимо считывать сигнал с 3 отдельных термопар на ПК.
Какой моудль лучше выбрать МВ110-8А или МВ110-8АС?
Температуру нет смысла опрашивать быстро через MB110-8AC, думаю лучше тебе подойдет МВ110-8А. А вообще выбирается в зависимости от скорости процесса разработчик сам должен выбирать что ему нужно.

Diminator
15.03.2017, 12:26
Vyachep, спасибо! До RTRING не додумался.

Сергей0308
15.03.2017, 12:52
В связке с Д-триггером, детектор переднего фронта не нужен!

Vyachep
15.03.2017, 15:11
Согласен, что не нужен. Пользуюсь обычно RS и SR, особенность D (срабатывание по фронту) подзабыл. Зато указал направление. :rolleyes:

zamnarzanom
15.03.2017, 21:46
у меня стоит Импульс включения заданной длительности (TP) перед триггером :rolleyes:

Алексей Геннадьевич
16.03.2017, 08:04
у меня стоит Импульс включения заданной длительности (TP) перед триггером :rolleyes:
Если делаете управление от кнопки - более правильно будет ставить TON на 0,1-0,2сек.
Вполне достаточно для отсеивания всяких "ой я случайно задел"

JohnV
17.03.2017, 16:35
Как в одну переменную можно вносить несколько значений?
Вот есть переменная "авария", в менеджере экранов я определил что 0-нет аварий, 1-авария 1го датчика, 2-авария 2го датчика и т.д.
А как теперь в эту переменную вносить эти значения? И пусть отображается последняя сработавшая.
Был бы блок Sel с несколькими входящими значениями, почему его такой не сделать? чтобы кол-во входов его можно было менять вручную, а не всего два как сейчас.

Василий Кашуба
17.03.2017, 16:42
Как в одну переменную можно вносить несколько значений?
Вот есть переменная "авария", в менеджере экранов я определил что 0-нет аварий, 1-авария 1го датчика, 2-авария 2го датчика и т.д.
А как теперь в эту переменную вносить эти значения? И пусть отображается последняя сработавшая.
Был бы блок Sel с несколькими входящими значениями, почему его такой не сделать? чтобы кол-во входов его можно было менять вручную, а не всего два как сейчас.

Поищите макрос авария.

Diminator
19.03.2017, 23:34
продолжу :) есть два входа включающие через AND выход. Второй вход это датчик перегрева (NC). В случае его срабатывания хочу отключить повторное срабатывание (датчик может остыть) до перезапуска первого входа (т.е. его отключение и повторное включение). Подскажите, как реализовать?

Сергей0308
20.03.2017, 00:12
продолжу :) есть два входа включающие через AND выход. Второй вход это датчик перегрева (NC). В случае его срабатывания хочу отключить повторное срабатывание (датчик может остыть) до перезапуска первого входа (т.е. его отключение и повторное включение). Подскажите, как реализовать?

Мне сразу множество вариантов лезут в мозг, расталкивая друг друга, вот первый что сумел дойти:

30133

Василий Кашуба
20.03.2017, 00:33
Мне сразу множество вариантов лезут в мозг, расталкивая друг друга, вот первый что сумел дойти:

30133
А это мой вариант схемы.
30134

Сергей0308
20.03.2017, 00:46
Извиняюсь, ваш не так работает:

30135

Тогда как-то так:

30136

Diminator
20.03.2017, 00:54
Мне сразу множество вариантов лезут в мозг, расталкивая друг друга, вот первый что сумел дойти:

30133
Спасибо. Пока не могу разобраться как работает D-триггер :( Поэтому долго пытался запустить схему, оказалось все дело в последовательности, сначала должен запуститься вход D тригера и только потом С. В противном случае не сработает, но работает как надо, спасибо.


А это мой вариант схемы.
30134
У меня работает только если вход 1 является кнопкой, иначе приходиться хлопать первым входом по несколько раз. А на нем у меня 1 постоянно висит. 0 это отключение.

Сергей0308
20.03.2017, 01:29
Спасибо. Пока не могу разобраться как работает D-триггер :( Поэтому долго пытался запустить схему, оказалось все дело в последовательности, сначала должен запуститься вход D тригера и только потом С. В противном случае не сработает, но работает как надо, спасибо.


У меня работает только если вход 1 является кнопкой, иначе приходиться хлопать первым входом по несколько раз. А на нем у меня 1 постоянно висит. 0 это отключение.

В ОЛ справка есть:

30137

Diminator
20.03.2017, 11:19
Спасибо, только примеров маловато, так обычно проще разобраться.

Diminator
20.03.2017, 16:05
Подскажите, можно как-то записывать/обновлять значения переменной через определенный промежуток времени? На дисплее скачет температура с датчика, хочется фиксировать ее раз в 5 сек. И еще просьба, не могу найти макрос который бы выдавал дни недели в целое число Пн-1, Вс-7. Существует что-то подобное?

Сергей0308
20.03.2017, 16:17
Подскажите, можно как-то записывать/обновлять значения переменной через определенный промежуток времени? На дисплее скачет температура с датчика, хочется фиксировать ее раз в 5 сек. И еще просьба, не могу найти макрос который бы выдавал дни недели в целое число Пн-1, Вс-7. Существует что-то подобное?

Посмотрите здесь, можно не только зафиксировать, но и высчитать среднее значение за период:
http://www.owen.ru/forum/showthread.php?t=13106&page=2
И можно сгладить настройками аналогового входа!

Попробуйте так с периодом 5 секунд:

30152

Pavel_
20.03.2017, 16:21
На дисплее скачет температура с датчика, хочется фиксировать ее раз в 5 сек.
Если датчик подключен к аналоговому входу, то попробуйте настроить параметр входа: "Постоянная времени фильтра, сек.".

И еще просьба, не могу найти макрос
Макросы в первую очередь смотрите в темах:
"Макросы в онлайн базе OWEN Logic (http://www.owen.ru/forum/showthread.php?t=25067)"
"Обсуждение макросов для OWEN Logic (http://www.owen.ru/forum/showthread.php?t=25068)"

который бы выдавал дни недели в целое число Пн-1, Вс-7. Существует что-то подобное?
например вот этот (http://www.owen.ru/forum/showthread.php?t=23201&page=2&p=201881&viewfull=1#post201881).

Diminator
20.03.2017, 19:29
К сожалению, в онлайн базе макросов нет макроса для вывода дня недели. Было бы замечательно иметь еще одну базу макросов которую собирали бы форумчане и использовать на свой страх и риск.

Pavel_ , решил воспользоваться вашим макросом (http://www.owen.ru/forum/showthread.php?t=23201&p=218112&viewfull=1#post218112), но у меня в проекте почему-то не выводиться day week и на экране котлета с выводом минут, перекрывают друг друга и в итоге на экране нормально отображается только час.

Pavel_
20.03.2017, 20:34
Pavel_ , решил воспользоваться вашим макросом (http://www.owen.ru/forum/showthread.php?t=23201&p=218112&viewfull=1#post218112), но у меня в проекте почему-то не выводиться day week
В симуляторе в ОЛ или на экране ПР?



и на экране котлета с выводом минут, перекрывают друг друга и в итоге на экране нормально отображается только час.
Это если вам в мунутах нужны нули, то для минут важен порядок наложения, подробнее см. здесь (http://www.owen.ru/forum/showthread.php?t=17153&page=167&p=221602&viewfull=1#post221602).

Diminator
20.03.2017, 20:53
Да, только в эмуляторе нет значений. На экране все нормально. Странно.
Про наложение, простите, ничего не понял. Я скопировал расположение минут из вашего проекта, они там как-то друг на друга заходят, но я не нашел где менять порядок наложения?

Pavel_
20.03.2017, 21:32
но я не нашел где менять порядок наложения?
Вот по этой (http://www.owen.ru/forum/showthread.php?t=26228&p=241357&viewfull=1#post241357) методе можно изменить порядок наложения элементов экрана.

Алексей Геннадьевич
21.03.2017, 09:39
К сожалению, в онлайн базе макросов нет макроса для вывода дня недели. Было бы замечательно иметь еще одну базу макросов которую собирали бы форумчане и использовать на свой страх и риск.

Pavel_ , решил воспользоваться вашим макросом (http://www.owen.ru/forum/showthread.php?t=23201&p=218112&viewfull=1#post218112), но у меня в проекте почему-то не выводиться day week и на экране котлета с выводом минут, перекрывают друг друга и в итоге на экране нормально отображается только час.

http://www.owen.ru/forum/showthread.php?t=12691&page=22&p=214363&viewfull=1#post214363
Целых 2
И UNIXTIME http://www.owen.ru/forum/showthread.php?t=25068&page=3&p=219994#post219994

Diminator
21.03.2017, 11:23
Спасибо, вроде все нормально. Я просто к тому что на форуме очень сложно найти нужный макрос, в онлайн базе все-же проще.
По электронике, хотел ограничить диапазон работы датчика температуры, но не знаю как это корректно сделать. Попробовал через юстировку порта, все делаю как просит ПО но на последнем шаге получаю ошибку 6. Делать программное ограничение данных от датчика?

Василий Кашуба
21.03.2017, 12:24
Делать программное ограничение данных от датчика, с помощью макроса "Лимит".

Diminator
21.03.2017, 13:02
Когда программа выполняется почему у меня блокируется работа с меню? Да момента старта (у меня включается выполнение программы изменением переменной на основном экране) все работает. Но после запуска кнопки на приборе перестают реагировать :( И что значит в настройках переходов по экранам "Безусловный переход"?

melky
21.03.2017, 13:16
Скорее всего вы какой-то переменной все время открываете какой-то один экран, кнопка реагирует, но вы сами себя посылаете на экран обратно.

Diminator
21.03.2017, 13:35
Да, странно. Удалил экран в все заработало. У меня есть экран на который должен попасть при изменении переменной, переменная привязана сразу к входу. На входе у меня 1 постоянно. Действительно при включении происходит переход на этот экран. Но на экране на который осуществляется переход у меня стоят настройки перехода с этого экрана на основной с использованием кнопок прибора.
С отрывом датчика температуры у меня все нормально отрабатывает :( Попадаю на экран и ухожу с него.

Алексей Геннадьевич
21.03.2017, 13:54
Да, странно. Удалил экран в все заработало. У меня есть экран на который должен попасть при изменении переменной, переменная привязана сразу к входу. На входе у меня 1 постоянно. Действительно при включении происходит переход на этот экран. Но на экране на который осуществляется переход у меня стоят настройки перехода с этого экрана на основной с использованием кнопок прибора.
С отрывом датчика температуры у меня все нормально отрабатывает :( Попадаю на экран и ухожу с него.
Правильно переход делается так:
Переменная активируется на короткое время(0,02-0,1сек), происходит переход на нужный экран.
На экране остаёмся до активации переменной перехода на другой экран или ухода с экрана кнопками.
Если переменная в "1" то уход с экрана кнопками невозможен.(хорошо экран аварий так делать).

Diminator
21.03.2017, 14:29
Да, на единице подорвался, а экран куда переходил был пустым. Вот и создалось впечатление что прибор умирает :)
Мда, если бы не форум и ваша помощь ПР200 был бы просто геморройным кирпичом. Спасибо что помогаете!

Diminator
21.03.2017, 19:56
я видимо совсем туповат, перерыл весь форум не нашел макрос "Лимит". Ткните, пожалуйста, носом, где искать?

Сергей0308
21.03.2017, 20:07
я видимо совсем туповат, перерыл весь форум не нашел макрос "Лимит". Ткните, пожалуйста, носом, где искать?

Вот сам макрос в проекте:

Diminator
21.03.2017, 20:23
Блин, вот я дурень! все ограничения и макрос "Лимит" есть в макросе преобразования сопротивления в температуру который я использую в проекте!!!

Сергей0308 - Спасибо!

JohnV
03.04.2017, 14:27
Можно ли менять переменные в схеме кнопками на приборе?
Например на экране есть надпись "сброс-удерживать esc" Я создам переменную для сброса, а как этой переменной присоединить кнопку?

Ревака Юрий
03.04.2017, 14:31
Можно ли менять переменные в схеме кнопками на приборе?
Например на экране есть надпись "сброс-удерживать esc" Я создам переменную для сброса, а как этой переменной присоединить кнопку?

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

JohnV
03.04.2017, 14:47
Самим кнопкам на приборе можно назначать переходы между экранами, а если необходимо управлять с помощью переменной сбросом чего либо, то это делается через переменную на экране типа bool, изменять ее можно нажатием кнопки SEL если данная переменная разрешена к редактированию.

Жалко, а то удобно было , нажать и держать esc- сброс аварии , нажать и держать ок-пуск. Ну это так , к примеру.
А ещё вопрос. А есть ли блок таймер с задрежкой включения как вот Ton , только чтобы время задавать не программно а через переменную?

Василий Кашуба
03.04.2017, 15:03
Жалко, а то удобно было , нажать и держать esc- сброс аварии , нажать и держать ок-пуск. Ну это так , к примеру.
А ещё вопрос. А есть ли блок таймер с задрежкой включения как вот Ton , только чтобы время задавать не программно а через переменную?
Это делается через блок записи в ФБ, в любой таймер, через свойства блока записи.

Ревака Юрий
03.04.2017, 15:06
Жалко, а то удобно было , нажать и держать esc- сброс аварии , нажать и держать ок-пуск. Ну это так , к примеру.
А ещё вопрос. А есть ли блок таймер с задрежкой включения как вот Ton , только чтобы время задавать не программно а через переменную?

Вот в качестве примера:

Sel
03.04.2017, 19:25
добрый день.
Есть дома ПР200 и кнопочные выключатели без фиксации (обычные кнопки). Всю голову сломал как их привязать к ПР и с них управлять светом.
Задачи:
1. Одинарное нажатие на кнопку - включает,выключает свет
2. Длительное нажатие выключает свет
3. Удерживаем нажатой кнопку 1, а при нажатии на кнопку 2 меняется количество горящих ламп (активных выходов)
Подскажите как реализовать данные функции на лоджике?

Василий Кашуба
03.04.2017, 22:16
добрый день.
Есть дома ПР200 и кнопочные выключатели без фиксации (обычные кнопки). Всю голову сломал как их привязать к ПР и с них управлять светом.
Задачи:
1. Одинарное нажатие на кнопку - включает,выключает свет
2. Длительное нажатие выключает свет
3. Удерживаем нажатой кнопку 1, а при нажатии на кнопку 2 меняется количество горящих ламп (активных выходов)
Подскажите как реализовать данные функции на лоджике?
Все кнопки равноправны?

melky
03.04.2017, 22:28
Зачем на длительное нажатие назначать выключить, если короткое нажатие и так выключает ?

rovki
03.04.2017, 22:47
добрый день.
Есть дома ПР200 и кнопочные выключатели без фиксации (обычные кнопки). Всю голову сломал как их привязать к ПР и с них управлять светом.
Задачи:

3. Удерживаем нажатой кнопку 1, а при нажатии на кнопку 2 меняется количество горящих ламп (активных выходов)
Подскажите как реализовать данные функции на лоджике?
регистр сдвига

Сергей0308
03.04.2017, 23:55
регистр сдвига

Вот предложу регистр сдвига для супер люстры, до 32 ламп(выходов):

30394

Ничего не стоит, если понадобится, добавить сброс или реверс!

И формирователь команд в зависимости от продолжительности нажатия кнопки:

30395

Sel
04.04.2017, 00:39
для понимания задачи.
есть группы света - одна в коридоре, четыре на кухне и одна в комнате. соответственно, выключатели 1 в коридоре, 2 на кухне и 1 в комнате.
Короткое нажатие включает\выключает свет только в той комнате где находится выключатель. Удержание выключает все лампы.
На кухне 1 кнопка включает первую группу, вторая кнопка включает вторую группу. При удержании первой кнопки, второй выбираем другие схемы освещения допустим 1+2, 1+4 и т.д.
Я только начинаю вникать в лоджик и, если можно, то ответы с примерами.
Я понимаю как в теории это реализовать - создали переменную и меняем 0 на 1 и обратно, в зависимости от условий. Но как реализовать в лоджике вообще не понимаю. А точнее как реализовать проверку условий и посыл 0 или 1 на выход. Изучаю на примерах. Но примеров очень мало.


Все кнопки равноправны?
да, все кнопки равноправные


Зачем на длительное нажатие назначать выключить, если короткое нажатие и так выключает ?
короткое выключает свет только в одной комнате. Длительное нажатие выключает во всех.



Вот предложу регистр сдвига для супер люстры, до 32 ламп(выходов):

Спасибо. Возник сразу вопрос - что подключается к l1, l2, l3?

Сергей0308
04.04.2017, 01:40
Спасибо. Возник сразу вопрос - что подключается к l1, l2, l3?

I1 - вход данных, I2 - тактовый вход(сдвиг влево на 1 разряд по каждому фронту импульса), I3 - выбор разряда(бита) для чтения(0-31), при "0" повторяет значения на входе, можно поставить до 32 выходных элемента(выхода) для разных разрядов и в какой-то теме я уже описывал более подробно!

verpup
04.04.2017, 16:50
Здравствуйте.
пришлось переустановить Виндос7.
скачал ОЛ 1,8.62 пакет драйверов для юсб, фрэймворк уже есть, все установил.
При первом запуске ОЛ появляется окно с красным крестом и надписью на английском, что порт не открыт.
При подключении комп не определяет устройство и ОЛ не видит порт.
обновил ОЛ до последней версии, не помогло.
В какой стороне искать проблему?

Василий Кашуба
04.04.2017, 17:51
Здравствуйте.
пришлось переустановить Виндос7.
скачал ОЛ 1,8.62 пакет драйверов для юсб, фрэймворк уже есть, все установил.
При первом запуске ОЛ появляется окно с красным крестом и надписью на английском, что порт не открыт.
При подключении комп не определяет устройство и ОЛ не видит порт.
обновил ОЛ до последней версии, не помогло.
В какой стороне искать проблему?
А у вас прибор подключен? Если подключен, то нужно выбрать и настроить СОМ порт, если нет, то не обращать внимание на это окно.

Алексей Геннадьевич
06.04.2017, 07:55
При первом запуске ОЛ появляется окно с красным крестом и надписью на английском, что порт не открыт.
При подключении комп не определяет устройство и ОЛ не видит порт.

1) драйвер виртуального порта для ПР200 установлен?
2) если установлен, то при подключенном ПР200 настроить свойства порта (определяется как OWENPR200) в диспетчере задач и в ОЛ.


скачал ОЛ 1,8.62
Сейчас актуален ОЛ 1,8.107

JohnV
11.04.2017, 08:55
А как реализовать таймер работы? То есть пришла на вход 1 происходит пуск таймера. И пока на входе 1 таймер считает (в миллисекундах, секундах не важно), когда 0 останавливается счёт, но при этом сохраняется значение? Мне нужно это для подсчёта моточасов работы двигателя.

melky
11.04.2017, 09:05
была масса макросов подсчета моточасов в теме про макросы.

Diminator
02.05.2017, 17:57
Уважаемые гуру, спасибо всем кто давал советы и решения как управлять электрическим котлов, решение получилось просто сказочным! Правда уже тепло, но тем не менее все просто шикарно.

Хотел бы еще помощи попросить, у меня второй котел газовый, bosch wbn-6000, вроде бы он управляется по протоколу OpenTherm. Я попытался почитать что это такое и понял что это ШИМ. Никто не сталкивался с подобным управлением? Можно как-то реализовать управление котлом через шим? Я не совсем пониманию какие вводные нужны и может ли управлять ШИМ ПР 200.

Ревака Юрий
03.05.2017, 09:34
Уважаемые гуру, спасибо всем кто давал советы и решения как управлять электрическим котлов, решение получилось просто сказочным! Правда уже тепло, но тем не менее все просто шикарно.

Хотел бы еще помощи попросить, у меня второй котел газовый, bosch wbn-6000, вроде бы он управляется по протоколу OpenTherm. Я попытался почитать что это такое и понял что это ШИМ. Никто не сталкивался с подобным управлением? Можно как-то реализовать управление котлом через шим? Я не совсем пониманию какие вводные нужны и может ли управлять ШИМ ПР 200.

Добрый день, если я правильно понял, то у OpenTherm есть 2 типа протокола, и тот который попроще предполагает работу в режиме ШИМ, поэтому есть шанс что этим котлом можно управлять из ПР200, в сети много описано по нему изучайте.

Diminator
03.05.2017, 09:49
Да, я копаю, но пока не понял может ли мой ПР200 генерировать ШИМ?

Сергей0308
03.05.2017, 09:56
А как реализовать таймер работы? То есть пришла на вход 1 происходит пуск таймера. И пока на входе 1 таймер считает (в миллисекундах, секундах не важно), когда 0 останавливается счёт, но при этом сохраняется значение? Мне нужно это для подсчёта моточасов работы двигателя.

Попробуйте так, как вариант:

30905

Сейчас из часов можно секундные импульсы вытащить в программу и всё упростится!

ASo
03.05.2017, 10:01
Да, я копаю, но пока не понял может ли мой ПР200 генерировать ШИМ?
Естественно, может. Если нужно, доберусь до компа, выложу макрос.

Ревака Юрий
03.05.2017, 11:20
Да, я копаю, но пока не понял может ли мой ПР200 генерировать ШИМ?

Может, есть даже макрос в онлайн базе Генераторы->PWMG

anthrwpos
04.05.2017, 11:41
А кто знает, что это такое за "переменная" и можно ли этим пользоваться?
30926
Это меню переходов экрана.

melky
04.05.2017, 11:52
Вы можете создать переменную, при лог 1 которой будет запущен данный Экран, переменную надо потом сбросить в 0, чтобы была возможность переходить на другие экраны, иначе на этом экране и зависните.

Есть тема - Работа с экранами на ПР200, там много полезного

Pavel_
04.05.2017, 11:58
А кто знает, что это такое за "переменная" и можно ли этим пользоваться?
30926

можно: http://www.owen.ru/forum/showthread.php?t=26104&p=236871&viewfull=1#post236871

anthrwpos
04.05.2017, 14:59
Вы можете создать переменную, при лог 1 которой будет запущен данный Экран, переменную надо потом сбросить в 0, чтобы была возможность переходить на другие экраны, иначе на этом экране и зависните.
Я никак не могу ничего сделать с этой штукой. Ни кнопка эта не выбирается, ни выбор переменной по нажатию на троеточие не происходит.

Есть тема - Работа с экранами на ПР200, там много полезного
Не могу найти эту тему...
Есть тема с названием ПР200 работа с экраном (http://www.owen.ru/forum/showthread.php?t=22382), но там всего 3 сообщения.


можно: http://www.owen.ru/forum/showthread.php?t=26104&p=236871&viewfull=1#post236871

Нет, это совсем не то. Это "условие перехода" - "изменение значения переменной". Про эту штуку я знаю. А я про радиобокс "переменная" сверху, в окошке "выбор экрана". Вот с ним я никак ничего не могу сделать.
30942

Василий Кашуба
04.05.2017, 15:51
Я никак не могу ничего сделать с этой штукой. Ни кнопка эта не выбирается, ни выбор переменной по нажатию на троеточие не происходит.
Не могу найти эту тему...
Есть тема с названием ПР200 работа с экраном (http://www.owen.ru/forum/showthread.php?t=22382), но там всего 3 сообщения.



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

anthrwpos
04.05.2017, 16:37
Вообще у меня там даже два экрана создано.
Если "отсуствует" сменить на что либо другое, этот радиобокс все равно не работает.
Можете кто нибудь прислать скриншот, как оно работает?+)

melky
04.05.2017, 17:30
Да, у меня тоже в верхней части это не активно, возможно это задел на будущее или для ИП120

Diminator
08.05.2017, 15:47
Коллеги, нашел у себя уличный датчик ДТС3005-РТ1000.В2. Какой для него макрос РТ1000? Хочу сделать погодозависимую автоматику котла. В зависимости от температуры на улице устанавливать температуру теплоносителя. Т.е. допустим на улице -30 теплоноситель +80, +10 на улице температура теплоносителя +30. На улице выше +15 вообще не включаем.
Т.е. некая таблица соотношения или изменения температуры носителя в зависимости от температуры на улице.

Сергей0308
08.05.2017, 19:34
Коллеги, нашел у себя уличный датчик ДТС3005-РТ1000.В2. Какой для него макрос РТ1000? Хочу сделать погодозависимую автоматику котла. В зависимости от температуры на улице устанавливать температуру теплоносителя. Т.е. допустим на улице -30 теплоноситель +80, +10 на улице температура теплоносителя +30. На улице выше +15 вообще не включаем.
Т.е. некая таблица соотношения или изменения температуры носителя в зависимости от температуры на улице.

Василий Кашуба предлагал:

31014

Я пытался упростить:

31015

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

Diminator
08.05.2017, 20:19
Сергей0308 , а где можно почитать оригинал? Не совсем понимаю, особенно второй пример.

Сергей0308
08.05.2017, 20:48
Сергей0308 , а где можно почитать оригинал? Не совсем понимаю, особенно второй пример.

Ну это тоже самое:

31016

Вот последний раз недавно обсуждали:
http://www.owen.ru/forum/showthread.php?t=12691&page=23&highlight=%C3%F0%E0%F4%E8%EA+%F2%E5%EC%EF%E5%F0%E0 %F2%F3%F0%FB
http://www.owen.ru/forum/showthread.php?t=12691&page=24&highlight=%C3%F0%E0%F4%E8%EA+%F2%E5%EC%EF%E5%F0%E0 %F2%F3%F0%FB

Diminator
09.05.2017, 13:32
Спасибо! Просто и эффективно!

С праздником! С Днем Победы!

Игорюня
09.05.2017, 16:22
k = (Тотоп max - Тотоп min) / (Тнаруж min - Тнаруж max)
b = Тотоп min - k * Тнаруж max
y = k * Тнаруж + b
Вот формула расчета температурного графика.

Diminator
09.05.2017, 21:01
k = (Тотоп max - Тотоп min) / (Тнаруж min - Тнаруж max)
b = Тотоп min - k * Тнаруж max
y = k * Тнаруж + b

А где взять данные по Тнаруж (мин и макс)?

Сергей0308
09.05.2017, 21:06
А что я ссылку давал, чем так не подходит: Т = (25,6 - Т ул.) х 2,4 ???

melky
09.05.2017, 21:55
извиняюсь, но все эти формулы температуры воды от Т улицы туфта полная без знания теплопотерь дома.

Сергей0308
09.05.2017, 22:05
извиняюсь, но все эти формулы температуры воды от Т улицы туфта полная без знания теплопотерь дома.

Вы предлагаете гадать на кофейной гуще или напишите свою "правильную" формулу?
Хотите напишу как формулу "выводил", думаю все будут в шоке!

Игорюня
10.05.2017, 08:29
А где взять данные по Тнаруж (мин и макс)?

На Кубани берется -25 ... +10

melky
10.05.2017, 09:15
Сергей0308 нет, не напишу. Я немного о другом в принципе. Если брать дом, то надо исходить из возможностей котла и теплопотерь дома.
Вот пример. Дизельный котел, минимальная температура 45 гр, которую он может дать, максимальная 85. При температуре улицы от +5 и выше ставить даже на 45 градусов котел МНОГО, лучше переводить работу в режим по Т помещения при минималке котла 45 гр.

Ставить котел на 70 гр и мучать ему горелку как-то менее радостно. При температуре ниже +5 а то и 0 на улице лучше переходить на работу по воде.

А если ставить 70 на котле и управлять включением отключением котла это если честно колхоз.

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

Формула она может и правильная, только в ней должны учитываться теплопотери дома. То есть играться коэффициентом. Ну и не ко всем типам котлов все равно будет подходить...

petera
10.05.2017, 09:57
В библиотеке OSCATBuilding есть ФБ HEAT_TEMP.
HEAT_TEMP вычисляет температуру теплоносителя в зависимости от наружной температуры по следующей формуле:

TY = TR + T_DIFF / 2 * TX + (TY_C - T_DIFF / 2 - TR) * TX ^ (1 / C)

где: TR = T_INT + OFFSET

TX := (TR - T_C) / (T_INT_C - T_EXT_C);

Входы
T_EXT : REAL (Наружная температура)
T_INT : REAL (Заданная температура в помещении)
OFFSET : REAL (Понижение или повышение температуры в помещении)
T_REQ : REAL (Заявленная температура)
Выходы
TY : REAL (Температура теплоносителя в контуре отопления - погодозависимая уставка)
HEAT : BOOL (Запрос на включение отопления)
Настройки
TY_MAX : REAL (Максимальная температура в контуре отопления, 70°C)
TY_MIN : REAL (Минимальная температура в контуре отопления, 25°C)
TY_C : REAL (Расчётная температура, 70°C)
T_INT_C : REAL (Расчётная температура в помещении, 20°C)
T_EXT_C : REAL (T_EXT при расчётной температуре -15°C)
T_DIFF_C : REAL (Дифференциал подающей и обратной магистрали 10°C)
C : REAL (Постоянная системы отопления, DEFAULT = 1,33)
H : REAL (Порог для запроса на включение отопления 3°C)

Параметры температурного графика отопления задаются через настроечные переменные TY_C (расчетная температура теплоносителя), T_INT_C (температура в помещении в расчётной точке), T_EXT_C (наружная температура в расчётной точке) и T_DIFF_C (разность температур подаваемого и обратного теплоносителя в расчётной точке).
При помощи входа OFFSET температурный график может настраиваться для снижения (отрицательное смещение) или повышения (положительное смещение) температуры в помещении.
Настроечными переменными TY_MIN и TY_MAX температура теплоносителя может быть ограничена минимальным и максимальным значениями.
Вход T_REQ служит для поддержки внешних запросов температуры, например, от бойлера. Если T_REQ больше, чем вычисленное по температурному графику значение TY, то TY будет установлено в соответствии с T_REQ. Ограничение по TY_MAX не распространяется на запрос через T_REQ.

Настроечной переменной H определяется, начиная с какой наружной температуры будет вычисляться температурный график.
Пока T_EXT + H >= T_INT + OFFSET, TY остается равным 0, а HEAT равным FALSE. Когда T_EXT + H < T_INT + OFFSET, HEAT устанавливается в TRUE, а TY становится равным вычисленной температуре теплоносителя.
Настроечная переменная C определяет кривизну температурного графика. Кривизна зависит от применяемой системы отопления.

Конвекторы: C = 1.25 – 1.45
Панельные радиаторы: C = 1.20 – 1.30
Радиаторы: C = 1.30
Трубы: C = 1.25
Теплые полы: C = 1.1
Чем больше значение C, тем сильнее искривлен температурный график. Значение 1.0 задает температурный график в виде прямой. Для типичных систем отопления значение C лежит в пределах от 1.0 до 1.5.
http://www.wago.su/_/rsrc/1313599974960/oscat/building/heat_temp/heat_temp_kurve.gif

Здесь настроек для графика существенно больше, для реализации разных "хотелок".

Diminator
10.05.2017, 11:10
Это конечно круто, только вопрос в следующем - в чем цель? Для меня как для обывателя, как и для большинства пользователей, задача не ходить к котлу для регулировки температуры именно в межсезонье. Если вы думаете что одним алгоритмом и котлом вы решите задачу комфортной температуры всего дома, вы ошибаетесь. Большинство систем отопления в частном секторе это комбинированные системы, обычно теплый пол и радиаторное отопление. Лично в моем случае это два этажа - первый это теплый пол + радиаторы, второй этаж это радиаторы.
В доме привозной газ и электричество.
Теплый пол это 40 градусов, радиаторы это 85 максимум.
В радиаторном отоплении используются термоголовки для комфортной температуры в каждом помещении (факторов уйма) а также комнатные термостаты для запуска котл(а-ов). Обычно никто не заморачивается в плане температуры теплоносителя и ставят максимум.
Зимой в таком режиме все отлично, однако в межсезонье начинаются проблемы следующего характера при температуре -5 градусов на улице котел очень быстро нагнетает высокую температуру и выключается. Однако теплоноситель за такой короткий период не успевает дойти до потребителя. Просто не хватает объема. Через пару минут (если не меньше) поступит запрос на тепло, котел включится. И так по кругу. Процесс называется "тактование". Чем чаще котел тактует тем хуже для котла и меньше его эффективность.
Для того чтобы этого избежать достаточно примерно понимать какой температурой вы согреете дом до комфортной температуры (выясняется эмпирическим путем) и используется следующий алгоритм:
Т улицы от 0 до +15 носитель 40 градусов, Т улицы от 0 до -10 носитель 50 градусов, Т улицы от -10 до -20 носитель 65 градусов, Т улицы от -20 до -40 носитель 85 градусов.
Это позволяет котлу нагреть теплоноситель до оптимальной температуры (в отношении температуры на улицы) и удерживать ее до прогрева дома и снизить количество тактований котла.

В этом случае использовать макрос от Сергей0308 очень удобно и эффективно.

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

Но это исключительно мое мнение.

melky
10.05.2017, 11:19
Diminator просто подобные макросы хороши для котлов, где горелки с модуляцией. Для обычных не особо подходят. Особенно когда Т воды котел может держать 45 гр с какой-то дельтой, заложенной в мозгах котла, а при запросе от бойлера врубает 70.

JohnV
11.05.2017, 15:41
У меня есть счётчик моточасов, но при сбросе питания прибора счёт начинается заново. Как сохранять предыдущую переменную и суммировать с уже новым счётом после сброса питания?
п.с. в своём случае нашёл сохранение состояния блока счётчика и проблема решилась.
А в других случаях как ещё можно решить данную проблему? Например при использовании в качестве счётчика мультивибратора?

Ревака Юрий
11.05.2017, 15:59
У меня есть счётчик моточасов, но при сбросе питания прибора счёт начинается заново. Как сохранять предыдущую переменную и суммировать с уже новым счётом после сброса питания?

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

AAA1
11.05.2017, 18:05
Чтобы много не цитировать, скажу к постам № 156 и 157. Всё регулируется и при межсезонье на входе в котёл выше 65°, и в морозы на выходе из котла 90°. Вы, извиняюсь, не правильно подошли к вопросу. Сначала надо разобраться с гидравлической частью (например у теплотехников спросить, посмотреть), а уже позже станет всё просто и понятно с автоматикой. Надо просто посмотреть на типичные схемы например обвязка котёл, радиаторы, тёплый пол. Там ни когда одного регулятора не бывает, если "колхоз" конечно не организован с термоголовками и макс температурой. Ещё пример, здесь http://www.owen.ru/projects/90488533/about наверное тоже пару минусов от не знания процесса кто-то поставил, а так - да много минусов налепили))), враги народа). Там как раз момент "Регулирование температуры теплоносителя на выходе из котла в пределах 70 – 90 °С, в зависимости от уличной температуры воздуха." Это значит не в систему отопления график, а ИМЕННО НА КОТЛОВОМ КОНТУРЕ.

Sel
26.06.2017, 22:04
Добрый вечер.

Помогите реализовать переключения света. Ранее вопрос задавал, мне посоветовали использовать регистр сдвига, но я так и не разобрался как в лоджике его использовать. Пока у меня нет понимания как в лоджике реализовать функции выбора. В коде я бы написал - если нажата К2, с каждым нажатием К1 увеличиваю переменную, а потом, в зависимости от числа в переменной, включаю ту или иную лампу. Как перевести это в функции лоджика, вообще не понимаю.
Задача:
Есть 5 ламп. Л1, Л2 и т.д. и 2 кнопки К1 и К2. Одинарное нажатие включает на кнопку включает\выключает 1 лампу. Допустим К1 управляет Л1, К2 - Л5. Нужно сделать так, что когда удерживаю К2, то нажатием на К1 переключались схемы свечения. Т.е. Включена Л1, удерживаем нажатой К2, нажимаем К1, включается Л2, гаснет Л1. Второе нажатие на К1 зажигает Л1 и Л2 и т.д. Когда отпускаем К2, нажатие на К1 гасит все лампы Л1, Л2, Л3, Л4, ну а если они выключены, то возвращается к управлению Л1.
Так же не понимаю, как сделать так, чтобы после длительного нажатия на К2, состояние лампы Л5 не менялось. Т.е. если Л5 была включена, то, после переключения схем, она и осталась включенной. Сейчас Л2 управляется по заднему фронту импульса нажатия. Поэтому, она, при отпускании, изменит свой статус.

Василий Кашуба
26.06.2017, 22:23
Добрый вечер.

Помогите реализовать переключения света. Ранее вопрос задавал, мне посоветовали использовать регистр сдвига, но я так и не разобрался как в лоджике его использовать. Пока у меня нет понимания как в лоджике реализовать функции выбора. В коде я бы написал - если нажата К2, с каждым нажатием К1 увеличиваю переменную, а потом, в зависимости от числа в переменной, включаю ту или иную лампу. Как перевести это в функции лоджика, вообще не понимаю.
Задача:
Есть 5 ламп. Л1, Л2 и т.д. и 2 кнопки К1 и К2. Одинарное нажатие включает на кнопку включает\выключает 1 лампу. Допустим К1 управляет Л1, К2 - Л5. Нужно сделать так, что когда удерживаю К2, то нажатием на К1 переключались схемы свечения. Т.е. Включена Л1, удерживаем нажатой К2, нажимаем К1, включается Л2, гаснет Л1. Второе нажатие на К1 зажигает Л1 и Л2 и т.д. Когда отпускаем К2, нажатие на К1 гасит все лампы Л1, Л2, Л3, Л4, ну а если они выключены, то возвращается к управлению Л1.
Так же не понимаю, как сделать так, чтобы после длительного нажатия на К2, состояние лампы Л5 не менялось. Т.е. если Л5 была включена, то, после переключения схем, она и осталась включенной. Сейчас Л2 управляется по заднему фронту импульса нажатия. Поэтому, она, при отпускании, изменит свой статус.
На какой ПР будете реализовывать проект?

Sel
27.06.2017, 00:01
ПР200
все кнопки без фиксации

Сергей0308
27.06.2017, 22:20
Добрый вечер.

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

Можно как-то так:

31846

При длительном нажатии(более 0,5 секунд), команда на включение не проходит!

31847

При длительном нажатии(более 0,5 секунд), команда на изменение состояния на противоположное не проходит!

Алексей Геннадьевич
28.06.2017, 10:27
Sel Вот пара макросов, в которых реализовано : в одном сигнал сброса при длительном удержании, в другом - переход в наладочный режим при удержании (после активирования БКГ).
Разберитесь с ними, и на основе их принципа работы сделайте свой, какой вам нужен.

Sel
04.07.2017, 17:47
Спасибо за советы. Вторую часть, я примерно понял как реализовать, а вот первую не понял.
Решил пойти простым путем - задать переменную и в зависимости от ее значения включать тот или иной выход. Но вот как ее обнулить, не понял. Лоджик разрешает записывать только 1 раз в переменную.
Посоветуйте, как обнулить переменную. Точнее мне нужно чтобы при значении переменной а больше трех, она становилась равной 1.
Сейчас программа работает следующим образом - первое нажатие включает первую лампу, второе нажатие, включает вторую лампу, гасит первую, третье нажатие включает обе лампы. Требуется, чтобы цикл был замкнут, т.е. последующее нажатие включало первую лампу и гасило вторую и т.д. В будущем будет задействовано больше схем. Пока пробую написать для 2-х ламп.
31963

rovki
04.07.2017, 18:13
Используйте счетчик и с ним можно делать что хотите ,в том числе сброс в любое значение ...

Sel
04.07.2017, 18:46
Пробовал несколько разных подходов и счетчики тоже, но не понял как организовать сброс.
При использовании счетчика, выдается импульс, чтобы его перевести в постоянную 1, надо использовать регистр. На данный момент я запутался как обнулять регистры.
В примерах ниже, у меня не получается реализовать при втором нажатии, чтобы гасла первая лампа.
31970

Сергей0308
04.07.2017, 19:17
В принципе можно и регистр сдвига применить:

31971

Пьер
05.07.2017, 16:03
Вопрос. На панель СПК приходит значение температуры в формате INT, т.е. 2 байта. Как переделать в визуально адекватное значение в формате REAL?

Пьер
05.07.2017, 16:08
примерно 25 градусов в виде 11205

Сергей0308
05.07.2017, 18:40
примерно 25 градусов в виде 11205

В INT в любой кодировке 11205 будет 11205, вот не так давно вопрос всплывал насчёт кодировок в INT:
http://www.owen.ru/forum/showthread.php?t=26801&page=2
Может чего напутали? Откуда, с какого прибора приходят значения температуры?

Пьер
06.07.2017, 08:37
Может чего напутали? Откуда, с какого прибора приходят значения температуры?
Прибор AI4-I Pt1000 аналоговый модуль. Оказывается перепутал режимы, у меня стоял в режиме сопротивления. теперь показывает в формате 251, т.е. /10 = 25.1. а в режиме сопротивления 11008. короче тоже делить на 10 надо значение (по таблице сопротивлений в принципе совпадает). очень удобно. Спасибо!

Sel
09.07.2017, 00:36
В принципе можно и регистр сдвига применить:
Спасибо за пример. Возник вопрос, каким образом в этом примере задается задержка, точнее как ПР понимает, что надо задерживаться именно на заданные на вход макроса числа.

Сергей0308
09.07.2017, 00:49
Спасибо за пример. Возник вопрос, каким образом в этом примере задается задержка, точнее как ПР понимает, что надо задерживаться именно на заданные на вход макроса числа.

Запись в функциональный блок:

32012

Или Вам непонятна работа мультиплексора целочисленных переменных?

32013

Sel
09.07.2017, 12:49
Запись в функциональный блок:
Да, я об этом. Спасибо. В помощи, почему-то, упустили описание записи и чтения из функционального блока, поэтому не сразу сообразил, что можно задавать длительность за счет FB

Сергей0308
10.07.2017, 06:43
Да, я об этом. Спасибо. В помощи, почему-то, упустили описание записи и чтения из функционального блока, поэтому не сразу сообразил, что можно задавать длительность за счет FB

Посмотрел в справку(F1), там есть:

32014

KIPSHOP
19.07.2017, 18:35
Добрый день. Помогите решить задачу. Имеем бункер1 на весах (МВ110-224.1ТД) и бункер2 без взвешивания но с двумя датчиками уровня (верхний ,нижний). По датчикам выгружаем часть зерна из бункера1 в бункер2. Для обработки информации от весов использую ПР200. Также ПР200 управляет процессом загрузки. Итак к проблеме мне нужно в ПР200 иметь данные о весе загруженной порции в бункер2. В контролере Mitsubishi с этим всё просто сохранил вес в регистр temp перед началом выгрузки (по датчику нижнего уровня ) и по датчику верхнего уровня производим арифметическую операцию temp - текущий вес получаем вес в бункере2 .Как организовать это в OWEN Logic пока понять не могу.

Сергей0308
19.07.2017, 18:54
Добрый день. Помогите решить задачу. Имеем бункер1 на весах (МВ110-224.1ТД) и бункер2 без взвешивания но с двумя датчиками уровня (верхний ,нижний). По датчикам выгружаем часть зерна из бункера1 в бункер2. Для обработки информации от весов использую ПР200. Также ПР200 управляет процессом загрузки. Итак к проблеме мне нужно в ПР200 иметь данные о весе загруженной порции в бункер2. В контролере Mitsubishi с этим всё просто сохранил вес в регистр temp перед началом выгрузки (по датчику нижнего уровня ) и по датчику верхнего уровня производим арифметическую операцию temp - текущий вес получаем вес в бункере2 .Как организовать это в OWEN Logic пока понять не могу.

Например так:

32140

Сохранение по переднему фронту на I8!

KIPSHOP
19.07.2017, 19:30
у меня ПР200-24.1.1.0

KIPSHOP
19.07.2017, 19:59
суть понял. но при значении Rd.fF = 1,5кг в temp = 9999

32141

KIPSHOP
19.07.2017, 20:03
а при таком варианте всё ок. но много теряю на десятых.

32142

capzap
19.07.2017, 20:13
а при таком варианте всё ок. но много теряю на десятых.

32142

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

Сергей0308
19.07.2017, 20:16
у меня ПР200-24.1.1.0


а при таком варианте всё ок. но много теряю на десятых.

32142

Ну так воспользуйтесь советом, библиотека элементов не меняется, короче что мешает применить fSEL, как я советовал?
На крайний случай можно и округлить, как советуют другие!

32145

KIPSHOP
20.07.2017, 11:54
Ну вот что получилось. 32158



"Rd.fF" - сетевая переменная от МВ110-224.1ТД (в килограммах), "I3" работа шнека в бункер2, "I4" работа шнека от бункера1, "наработка"- сумма веса перекаченного зерна в бункер2 .

Lyric
20.07.2017, 11:58
Здравствуйте. Есть ПЛК110.60 и модуль 8АС. Связываю их по протоколу ОВЕН, значения измеренные идут, всё хорошо. Вопрос в том, как прочитать параметры SRD по протоколу ОВЕН? Для связи использую только конфигурацию кодесиса, никаких библиотек "овенлиб" не ставил.

Василий Кашуба
20.07.2017, 13:47
Здравствуйте. Есть ПЛК110.60 и модуль 8АС. Связываю их по протоколу ОВЕН, значения измеренные идут, всё хорошо. Вопрос в том, как прочитать параметры SRD по протоколу ОВЕН? Для связи использую только конфигурацию кодесиса, никаких библиотек "овенлиб" не ставил.
Вы не в той теме. Это Овен Лоджик, а не КДС.

Сергей0308
17.08.2017, 16:07
Как работает таймер с заданием через Write to FB? Если отсчет времени уже идет, но в это время задание интервала изменилось, то таймер кончится по первоначальному времени или по текущему заданию?

По-моему никак не изменится задание, пока таймер не перезапустится!

Василий Кашуба
17.08.2017, 16:13
Как работает таймер с заданием через Write to FB? Если отсчет времени уже идет, но в это время задание интервала изменилось, то таймер кончится по первоначальному времени или по текущему заданию?
По последнему значению, т.к. в схеме сравнения, если поменять один из параметров, то и значение на выходе будет изменяться, в зависимости от этого параметра.

Сергей0308
17.08.2017, 16:22
По последнему значению, т.к. в схеме сравнения, если поменять один из параметров, то и значение на выходе будет изменяться, в зависимости от этого параметра.

Вы что видите внутренности таймера, это как, тут простым смертным можно только опытным путём проверить!

Василий Кашуба
17.08.2017, 16:27
Вы что видите внутренности таймера, это как, тут простым смертным можно только опытным путём проверить!
Я знаком с небожителями. :)

Сергей0308
17.08.2017, 16:34
Я знаком с небожителями. :)

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

Diminator
28.08.2017, 17:23
Подскажите, РП-200 может обработать управляющие сигналы на входе с разных фаз или все входящее управление должно быть с одной фазы?

Василий Кашуба
28.08.2017, 17:44
Подскажите, РП-200 может обработать управляющие сигналы на входе с разных фаз или все входящее управление должно быть с одной фазы?
Желательно разнести разные фазы в разные группы (S/S1 - I1,I2,I3,I4) - одна фаза, (S/S2 - I5,I6,I7,I8) - другая фаза.

Diminator
28.08.2017, 20:43
А если на I1, I2, I3 три фазы разнесены? Ток там небольшой, сигнал от термостата по витой паре.

игорь68
28.08.2017, 22:11
Вы решите для себя у Вас цепи управления будут 24 или 220 или 380. Я например использую только 24. Чуть дороже но безопасно. А у вас не совсем понятно как и что вы подключаете. Я догадываюсь что вы хотите термостатом контролировать перегрев тена. 32874 подключение двух разных фаз на 220. если подадите три фазы на i1 i2 i3 то будет бум и очень громкий.

Diminator
29.08.2017, 09:37
Бума я и боялся. У меня все построено на 220. И вы правы у меня есть датчик перегрева котла + два комнатных термостата на этажах которые отправляют запрос на тепло.
24в это хорошо, но для этого нужно вести дополнительную сеть питания , а это не удобно.
Термостаты на симисторах, включают подогрев окна и запрос на тепло для котлов через пр-200.
В итоге понял, все должно быть на одной фазе.

Ревака Юрий
29.08.2017, 12:44
По схеме подключений у ПР200 входы AI разделены на две группы с СОМ3 и СОМ4. Но на самом деле СОМ3 и СОМ4 в приборе соединены! Это показывает прозвонка этих точек. На схеме подключений для AI нарисовано неверно?

В данном случае это сделано для того чтобы корректно осуществлялось подключение датчиков, даже с учетом того что COM3 и COM4 это одна и та же линия, не рекомендуется подключать землю на первую группу а сигнал на вторую. Сделано это для уменьшения взаимного влияния входов двух групп, соединение данных полигонов осуществляется непосредственно у входа в процессор.

Ревака Юрий
29.08.2017, 14:15
Надо бы правду рисовать. Думая что группа с СОМ4 развязана, я протащил токовый сигнал через два ПР200, но поскольку на СОМ3 был минус, то из этого ничего не вышло и это был нежданчик.

Вся "правда" есть в руководстве:)

дрю
29.08.2017, 14:28
Добрый день, подскажите как можно изменить задание для счетчиков CTU чтобы изминять его сэкрана ПР200? ЗАПИСЬ В FB тут не работает, входная переменная тоже...32891

Василий Кашуба
29.08.2017, 14:37
Добрый день, подскажите как можно изменить задание для счетчиков CTU чтобы изминять его сэкрана ПР200? ЗАПИСЬ В FB тут не работает, входная переменная тоже...32891
А зачем вам CTU, возьмите СТ. 32892

дрю
29.08.2017, 14:47
Понял, сейчас перепишу, спасибо!

Ревака Юрий
29.08.2017, 14:48
ну смотрю на стр 61. Нигде ничего о том что СОМ3 и СОМ4 в приборе соединены. И p-n-p транзистор рисовать не умеют (рис.7.6)

Я про отсутствие гальванической развязки, про COM3 и COM4 постараемся добавить, про транзистор это в каком документе, можно ссылку.

Василий Кашуба
29.08.2017, 14:52
Понял, сейчас перепишу, спасибо!

Тогда ваша схема упростится до такой.32893

дрю
29.08.2017, 15:21
32894 Всё работает, и записываеться, прошу прощения за наглость, но чем можно считать текущее состояние счетчиков, чтобы вывести его на экран, ума не приложу?

rovki
29.08.2017, 15:29
Переменной

Ревака Юрий
29.08.2017, 15:31
32894 Всё работает, и записываеться, прошу прощения за наглость, но чем можно считать текущее состояние счетчиков, чтобы вывести его на экран, ума не приложу?

Read from FB, но для СТ это будет только уставка, если нужно именно состояние посчитанное на выходе, тогда CTN, он более универсальный.

Серёга Букашкин
29.08.2017, 15:35
Просветите что делает команда "создать файл с ключем". Пытаюсь создать - ничего не происходит после указания имени и пароля. Что за файл, где и для чего? Или сошлитесь если про это уже было.

Ревака Юрий
29.08.2017, 15:45
Просветите что делает команда "создать файл с ключем". Пытаюсь создать - ничего не происходит после указания имени и пароля.

Встроенный Help раздел Дополнения, там есть подробное описание, только OL должен быть из крайних релизов.

Василий Кашуба
29.08.2017, 16:09
32894 Всё работает, и записываеться, прошу прощения за наглость, но чем можно считать текущее состояние счетчиков, чтобы вывести его на экран, ума не приложу?
Тогда используйте счётчик CTN.

дрю
29.08.2017, 16:11
32895 Мужики, всем спасибо, все работает,Овен Рулит!

RomX
04.09.2017, 12:07
РП прибора о использовании аналоговых входов стр. 32: "Вход работает в режиме компаратора, настройки которого задаются параметрами «Уровень 0, В» и «Уровень 1, В». Параметры задают гистерезисную переходную характеристику – см. рисунок 6.5. Диапазон изменения этих величин от 0 до 10 В."
Вопрос: можно на вход подавать сигнал 24В? В ОЛ есть возможность ставить верхнюю уставку более 10В. Что происходит если уставка более 10В?

Вольд
04.09.2017, 12:25
Вопрос: можно на вход подавать сигнал 24В ?

Если хочешь спалить аналоговый вход ПР, то смело подавай. ;)

melky
04.09.2017, 12:34
Да можно в режиме дискретного входа подавать 24В на данной версии, ниче ему не будет. Просто РЭ кривозадо написано. По РЭ ниже 10В будет нулем, по факту даже 8,5 может быть единицей.
Если речь именно об использовании аналогового входа как дискретного, с соответствующей установкой перемычки и настройки входа.

RomX
04.09.2017, 12:44
Да аналоговый в качестве дискретного. melky у вас опытные данные? Т.е. вход не спалю?

И еще вопрос: применяется датчик 4-20 у которого есть события за пределами 4-20ма. <3.6ма или >21ма - отказ датчика, 3,8ма - выход данных за пределы измерения. Может ли ПР отследить эти события?

Алексей Геннадьевич
04.09.2017, 14:50
Если хочешь спалить аналоговый вход ПР, то смело подавай. ;)
Можно, установив перемычку согласно РЭ.
Но лучше сделать так - уж больно маленький входной ток лог "1" у аналогового входа,
не все кнопки/концевики/переключатели могут нормально коммутировать малые токи.
32963
И ещё один + такого подключения: если просохатишь и не переключишь перемычки из 4-20ма, то всё выживет.

Сергей0308
04.09.2017, 15:07
Да аналоговый в качестве дискретного. melky у вас опытные данные? Т.е. вход не спалю?

Вот на сайте что написали:

32964

http://www.owen.ru/catalog/programmiruemoe_rele_pr200/90872976

melky
04.09.2017, 15:23
Опытнее не бывает, ничего не спалил. В программе выбираете тип входа "Дискретный", меняете перемычку и вперед...
Только я не помню, чтобы у меня задавался порог логической единицы, возможно от версии программы и прошивки зависит. Я пока 1.9 не использую, хватает косяков и в 1.8, чтобы новые добавлять.

RomX
05.09.2017, 09:28
Испытания: 1. От уставки порогов дискретного входа ничего не зависит. Гистерезис переключения 0-1 5,5В - 10В. Входной ток макс. 4,6ма при 24В.

Сергей0308
05.09.2017, 09:38
Испытания: 1. От уставки порогов дискретного входа ничего не зависит. Гистерезис переключения 0-1 5,5В - 10В. Входной ток макс. 4,6ма при 24В.

Значит не исправили! Об этом уже говорили много раз, что пороги срабатывания невозможно изменить!

Алексей Геннадьевич
05.09.2017, 09:56
Значит не исправили! Об этом уже говорили много раз, что пороги срабатывания невозможно изменить!
Правда?
ОЛ 1.8.107
Выбран прибор ПР200-24.2
32970

Сергей0308
05.09.2017, 10:12
Правда?
ОЛ 1.8.107
Выбран прибор ПР200-24.2
32970

Мне непонятно, как Ваша картинка может показать, что данный баг исправили??? Так всё и было, значение в программе можно было менять, а пороги срабатывания в железе не менялись, собственно в этом и весь баг заключался, а Ваша картинка ясности не вносит!

RomX
05.09.2017, 10:16
Да эти цифры ни на что не влияют.
Если кому интересно аналоговый вход кажет от 0 ма до 20.669ма дальше показания замирают на верхнем пределе пробовал до 21.4ма.

Настроил 1,2 входы как аналоговые, 3-дискретный, 4 - резистор (кстати кажет до 26000 ом (у меня больше нет резюка), а при обрыве 99999Ом. При входе в меню прибора Входы>Аналоговые>Датчик пишет: Перенастройте джамперы! Джамперы настроил по руководству. Что не так?

Ревака Юрий
05.09.2017, 10:55
(кстати кажет до 26000 ом (у меня больше нет резюка), а при обрыве 99999Ом. При входе в меню прибора Входы>Аналоговые>Датчик пишет: Перенастройте джамперы! Джамперы настроил по руководству. Что не так?

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

Алексей Геннадьевич
05.09.2017, 14:15
Мне непонятно, как Ваша картинка может показать, что данный баг исправили??? Так всё и было, значение в программе можно было менять, а пороги срабатывания в железе не менялись, собственно в этом и весь баг заключался, а Ваша картинка ясности не вносит!
Проверил.
"Баг" присутствует.
Если так сильно сплющилось регулировать порог срабатывания, то можно перемычки в дискрет поставить, а вход в программе в 0-10в настроить.

игорь68
08.09.2017, 08:37
Добрый день. Нужна помощь. Необходимо контролировать работу одного контакта. Мне нужно знать в какое время этот контакт сработал и сколько раз.
Например за сутки он сработал 2 раза. 1 раз в10:35 . 2 раз 14:49. Работа в течении 2 суток. Потом можно сбросить показания и перезапустить заново.
В примере я взял счетчик и выход в переменную и на экран. Выход наQ2 сделан для контроля. А вот как теперь к этому привязать время не могу понять. По идее запускаю таймер и останавливаю этим контактом. Записываю это куда то и продолжаю считать. Только не могу понять как это сделать.

Ревака Юрий
08.09.2017, 10:34
Добрый день. Нужна помощь. Необходимо контролировать работу одного контакта. Мне нужно знать в какое время этот контакт сработал и сколько раз.
Например за сутки он сработал 2 раза. 1 раз в10:35 . 2 раз 14:49. Работа в течении 2 суток. Потом можно сбросить показания и перезапустить заново.
В примере я взял счетчик и выход в переменную и на экран. Выход наQ2 сделан для контроля. А вот как теперь к этому привязать время не могу понять. По идее запускаю таймер и останавливаю этим контактом. Записываю это куда то и продолжаю считать. Только не могу понять как это сделать.

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

Сергей0308
08.09.2017, 10:49
Если срабатывания редки, не проще по фронту, спаду импульса фиксировать(записывать) время события, я раньше выкладывал матрицу памяти для хранения 32(32 битных) переменных, дальше можно по кругу затирать наиболее старые события, короче о 32 последних событий будете знать!

игорь68
08.09.2017, 11:52
Юрий фиксация длительности не нужна. Нужен просто сам факт срабатывания. Сергей0308 срабатывания происходят случайно. Может быт одно срабатывание в сутки а может четыре срабатывания за час.
Есть объект КНС. В СКАДУ передаем сигнал с реле контроля фаз. Все работало хорошо 2 года. Последние 4 месяца в СКАДУ прилетают аварии то питание то пожар то перепад давления. Питание движков насосов отдельно от питания контроллера. За питали контроллер от ИБП . Теперь в СКАДУ летят сообщения о питании. Заказчик говорит что схемы питания не менял. Все как было так и есть. Вот и хочу посмотреть за этим реле контроля фаз. Если будем видеть время "просадок" по питанию можем посмотреть что в это время включали на объекте что так сажает этот фидер питания.

Ревака Юрий
08.09.2017, 12:51
Юрий фиксация длительности не нужна. Нужен просто сам факт срабатывания. Сергей0308 срабатывания происходят случайно. Может быт одно срабатывание в сутки а может четыре срабатывания за час.
Есть объект КНС. В СКАДУ передаем сигнал с реле контроля фаз. Все работало хорошо 2 года. Последние 4 месяца в СКАДУ прилетают аварии то питание то пожар то перепад давления. Питание движков насосов отдельно от питания контроллера. За питали контроллер от ИБП . Теперь в СКАДУ летят сообщения о питании. Заказчик говорит что схемы питания не менял. Все как было так и есть. Вот и хочу посмотреть за этим реле контроля фаз. Если будем видеть время "просадок" по питанию можем посмотреть что в это время включали на объекте что так сажает этот фидер питания.

Тогда размножаете переменные в моем варианте, выводите их на экран и анализируете, можно еще и секунды добавить.

Сергей0308
08.09.2017, 14:17
Юрий фиксация длительности не нужна. Нужен просто сам факт срабатывания. Сергей0308 срабатывания происходят случайно. Может быт одно срабатывание в сутки а может четыре срабатывания за час.
Есть объект КНС. В СКАДУ передаем сигнал с реле контроля фаз. Все работало хорошо 2 года. Последние 4 месяца в СКАДУ прилетают аварии то питание то пожар то перепад давления. Питание движков насосов отдельно от питания контроллера. За питали контроллер от ИБП . Теперь в СКАДУ летят сообщения о питании. Заказчик говорит что схемы питания не менял. Все как было так и есть. Вот и хочу посмотреть за этим реле контроля фаз. Если будем видеть время "просадок" по питанию можем посмотреть что в это время включали на объекте что так сажает этот фидер питания.


Это не принципиально(не имеет значения) случайно или неслучайно происходит событие, тут главное чтобы уместились события за необходимое вам время, оно всё равно будет зафиксировано! Можно поставить несколько экземпляров макроса ячейки памяти, чтобы памяти хватало на 2 суток без затирания! И в одну целочисленную переменную 32 битную, без всяких "заморочек", просто через "Х100"(чтобы разнести значения по разным десятичным разрядам) можно поместить секунды, минуты, часы, дни и месяцы одного года, чего, как я понимаю, вам вполне достаточно! Короче, в старшие разряды месяцы пишите!

33034

Не может быть более "42"!
Хотел дополнить, для ясности, можно использовать старший бит, для классификации события, например "1" - контакт замкнулся, "0" - контакт разомкнулся!

Как-то примерно так, до 31 события, включительно:

33036

Останется на экран вывести для просмотра события и времени происхождения! Данные энергонезависимые, если энергонезависимость не нужна можно убрать!
Нулевое событие - это текущее состояние, далее, чем больше номер события, тем дальше в историю(тем более давнее событие)!

Вот экран добавил:

33041

И чуть-чуть подрихтовал, теперь с экрана можно редактировать переменную номер события, тоесть просматривать события, кому нравятся внешние кнопки, можно оставить как в преведущем варианте!

игорь68
09.09.2017, 11:45
Всем спасибо кто помог. В понедельник пробуем на железе. Результат отпишу.

Сергей0308
09.09.2017, 14:34
Всем спасибо кто помог. В понедельник пробуем на железе. Результат отпишу.

Проверил свой вариант в железе, всё работает! Только я для проверки генератор импульсов в программу ставил, лень заморачиваться с входами, кнопками, проводами, короче, на практике возможен дребезг контактов, легко устраняется, в 24 В реле просто настройкой входа, обычно ставлю максимальное время фильтрации = 255 мс!

И опять хотел добавить для разработчиков! Для удобства считаю необходимым сделать значения ограничения диапазона настраиваемыми, подобно координатам, тогда в данном случае константу меняем на переменную, в качестве переменной счётчик событий, что существенно добавит удобств при просмотре с экрана:

33050

Упустил, вот счётчик событий добавил:

33051

Если за двое суток будет набегать более 31, можно будет задуматься о расширении, я уже писал как, добавить несколько экземпляров макроса "матрица памяти"! Только сбрасывать не забывайте!

Ревака Юрий
12.09.2017, 09:22
Добрый день. Видео уроки по ПР200 и другую полезную информацию смотрите по ссылке: http://edu.owen.ru/tag/%d0%bf%d1%80200/

игорь68
13.09.2017, 13:43
Сергей 0308. Что то не могу понять а как посмотреть. Второй вопрос а как дату и время перевести в читаемый вид на экране ПР?

Сергей0308
13.09.2017, 16:11
Сергей 0308. Что то не могу понять а как посмотреть. Второй вопрос а как дату и время перевести в читаемый вид на экране ПР?

Ну а сейчас чем по-вашему нечитаемое? Сейчас в формате: месяц, день, часы, минуты, секунды, по два разряда на каждый пункт, без разрывов! Нажимаете SEL, будет мигать переменная номер события, стрелками вверх-вниз увеличиваем-уменьшаем значение. ОК - просматриваем выбранное, если есть что просматривать, счётчик событий больше нуля, нулевое событие - текущее состояние! Замк - замыкание контакта, Разм - размыкание контакта! После просмотра сбрасываем счётчик событий! Максимум 31 событие! Счётчик событий максимум насчитает 99 событий и встанет, пока не сбросят! Можно и сброс счётчика событий с экрана сделать, например по возвращению, после просмотра, в "0" событие(текущее состояние) с помощью детектора переднего фронта, короче примерно так:

33202

игорь68
13.09.2017, 21:09
Понятно. Разобрался. Спасибо. Очень помог.

RomX
14.09.2017, 07:55
Для СМИ2 необходимо вывести индикацию от 0 до 100 000 (вакуум). до 9999 понятно в float. Далее надо выводить в string до 1,0Е5. Как лучше решить эту задачу? Это надо сделать из ПР200.

Ревака Юрий
14.09.2017, 09:06
Для СМИ2 необходимо вывести индикацию от 0 до 100 000 (вакуум). до 9999 понятно в float. Далее надо выводить в string до 1,0Е5. Как лучше решить эту задачу? Это надо сделать из ПР200.

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

игорь68
14.09.2017, 12:49
Уважаемый Василий Кашуба вы как то выкладывали схему эмулятора сигнала 4-20 милиампера. Что то не могу найти на форуме. Если не трудно можно повторить. Если есть другие варианты то если можно сюда или в личку. Появилась необходимость эмулировать входные сигналы 4-20 милиампера для ПР200. У Овен на учебных стендах есть 0-10V. если дадите схему тоже будет не плохо.

эндрю
14.09.2017, 15:34
Добрый день! я новичёк в лоджике. Програму для ПР200 написал и она работает нормально. Только что с подсказкой с форума освоил как передавать Флоут в ИП320 - заработало, Спасибо Евгению. Теперь вот не соображу как передать три булевых переменных в ИП320. В Ип320 хочу использовать ДИНАМИЧИСКИЙ текст, Вот его параметры 33125. В ПР 200 три бита нужно упаковать в один байт33126. Когда Бит ,оведённый красным, =1 это соответствует на панеле надписи ВЫС, бит синий=1 - НИЗ, зелёный =0 -НОРМА. Но как уложить эту историю в байт ума не приложу.Подскажите?

melky
14.09.2017, 15:42
есть макрос Bit_to_Byte в онлайн базе.

petera
14.09.2017, 15:46
Добрый день! я новичёк в лоджике. Програму для ПР200 написал и она работает нормально. Только что с подсказкой с форума освоил как передавать Флоут в ИП320 - заработало, Спасибо Евгению. Теперь вот не соображу как передать три булевых переменных в ИП320. В Ип320 хочу использовать ДИНАМИЧИСКИЙ текст, Вот его параметры 33125. В ПР 200 три бита нужно упаковать в один байт33126. Когда Бит ,оведённый красным, =1 это соответствует на панеле надписи ВЫС, бит синий=1 - НИЗ, зелёный =0 -НОРМА. Но как уложить эту историю в байт ума не приложу.Подскажите?

Зеленый байт вообще не нужен, даже вредно его упаковывать!
Красный присвоить нулевому биту байта(слова) при Красный=1 байт=1(Высокий)
А синий - первому биту байта(слова) при Синий=1 байт=2(Низкий)
Если и синий и красный равны 0, то байт тоже равен =0(Норма)

эндрю
14.09.2017, 15:55
Спасибо буду пробовать

petera
14.09.2017, 16:04
Спасибо буду пробовать

Например так
33128

эндрю
14.09.2017, 16:06
Извиняюсь, я правильно понял что необходим этот макрос 33129 ?

эндрю
14.09.2017, 16:08
Петра спасибо, сейчас попробую ваше предложение1, ЕСЛИ ВСЕ В ПОРЯДКЕ ТО СДЕЛАЮ ЕГО МАКРОСОМ И БУДУ ИСПОЛЬЗОВАТЬ В СВОИХ ПРОЕКТАХ!

RomX
14.09.2017, 16:50
Спасибо Юрий. Получилось так. Проверено работает. Кстати в примере переменные R29...R31 отображаются как R0...R3 глюк при переназначении. Переменные надо перевставить.

эндрю
14.09.2017, 16:51
Петра , ваше вариант работает!33132. Я соеденил выходы как указано цветными линиями 33133 все работает, но поначалу вместо прямых соединений я использова теже булевые переменные но сделал их входными33134. Те я ипользовал выходные переменные и входные с одноименным названием и ничего не работало Выходные изминяли своё значение а входные с одноименным названием не изменялись. Только после этого я удалил входные переменные и соединил связи на прямую. Скажите как соеденитьвход блока с входом другого блока при помощи переменных, чтобы не тянуть связи через всю схему если эти блоки размещены на холсте далеко друг от друга? Заранее спасибо

Василий Кашуба
14.09.2017, 16:59
Петра , ваше вариант работает!33132. Я соеденил выходы как указано цветными линиями 33133 все работает, но поначалу вместо прямых соединений я использова теже булевые переменные но сделал их входными33134. Те я ипользовал выходные переменные и входные с одноименным названием и ничего не работало Выходные изминяли своё значение а входные с одноименным названием не изменялись. Только после этого я удалил входные переменные и соединил связи на прямую. Скажите как соеденитьвход блока с входом другого блока при помощи переменных, чтобы не тянуть связи через всю схему если эти блоки размещены на холсте далеко друг от друга? Заранее спасибо
Вам нужно входным переменным не давать похожие имена, а выбирать из списка имён выходных переменных.