все разобрался, сделал платку вместо 485 порта. все работает.
Вид для печати
все разобрался, сделал платку вместо 485 порта. все работает.
Вопрос такой возник: Нужен ПИД-регулятор для поддержания температуры в помещении с ограничением температуры теплоносителя! Проблема в том, что он управляет трёхходовым клапаном, с Тэнами проблем бы не возникло, отключил их по превышению температуры и всё, а здесь может и нагрузка уменьшится и перерегулирование, короче клапан возможно придётся крутить в обратную сторону! Как это лучше сделать, красивее, пока у меня одна версия переходить при превышении температуры теплоносителя на регулирование по температуре теплоносителя, обратный переход по превышению температуры воздуха, разумеется с каким то гистерезисом, чтобы поменьше было лишних движений регулирующего органа клапана! Не спрашивайте зачем такое надо, не я такое задумал! Короче может кто сталкивался с такими "извращениями" или знает как лучше с ними бороться? Хочу пояснить, вопрос не в том у кого есть такой ПИД, а как это лучше принципиально решить?
Не очень понятна задача. Это теплый пол что ли? То есть САУ поддерживает температуру в помещении, но, например, более 40 градусов в ПСВ давать не имеет права? А если этих условных 40 градусов не достаточно для поддержания заданной температуры?
Ограничение, на то и ограничение, чтобы выше этого значения температуру теплоносителя(воды) не подымать, как дальше там будет всё работать, это для регулятора не имеет ни какого значения, короче, если температура воздуха менее задания, он должен держать максимальную температуру установленную для теплоносителя, для этого я и предложил(в случае превышения температуры теплоносителя) переход на дальнейшую работу ПИД-регулятора по температуре теплоносителя, точнее по её максимальному значению!
Видно пока никто с такой задачей не сталкивался?!
Так проблема тогда в чем? Использовать два ПИДа. На выходе клапана датчик температуры. По достижении порогового значения запрещать работу рег.температуры воздуха, разрешать работу рег.температуры воды. Если с ограниченной температурой воды температура воздуха достигла уставки (закрыли окно или дверь и т.д.), то передать управление рег. темп.возд. Но при этом запретить увеличивать степень открытия клапана до того момента как температура воды не опуститься ниже пороговой величины на определенное значение.
Интересный макрос, но когда вбил координаты Сургута (+2МСК), он продолжил работать по МОСКОВСКОМУ времени))))
Наверно темой ошиблись.
Если про макрос астротаймера https://owen.ru/forum/showthread.php...l=1#post313783
(+2МСК) - это часовой пояс, на схеме это Зона, она задается относительно Гринвича, а не Москвы т.е. Зона = 5
А координаты -это Широта и Долгота Сургута, их нужно задавать здесь
Вложение 44846
Координаты, например, здесь https://planetcalc.ru/300/
Сравниваем
Вложение 44847
и вычисленные макросом
Вложение 44848
Небольшая коррекция =-2.25 дает практически точный результат
Вложение 44849
Всем доброго дня. Работает ли ПР 200 с ПМ01? Могу ли я опросить ПР 200 через этот модуль для вывода в СКАДА? Есть ли примеры реализации?
Спасибо
Если не ошибаюсь, только в CSD режиме. Выберите другое устройство связи, более адекватное и гибкое. Например с поддержкой VPN если ваш сервер со Scada имеет реальный IP адрес.
Добрый день. Посмотрите в сторону облачного сервиса и модемов для него https://owen.ru/forum/forumdisplay.php?f=67.
Здравствуйте. Помогите пожалуйста понять, как ПР200 в режиме мастер, отправлять значения переменных, которые используются в основной программе, в другое устройство по RS-485. Как выбрать переменную для отправки, там только можно создать сетевую переменную.
Добрый день. Смотрите примеры по работе с шаблонами сетевых устройств https://owen.ru/forum/showthread.php?t=25978.
Расскажите пожалуйста, что я делаю не так! Есть вот такие переменные, сейчас экспериментирую с тремя последними. В них происходит считывание данных со входа(сухой контакт). Хочу передавать данные на другое устройство по изменению этих данных. Данные смотрю в монитор порта. Стоит только изменить состояние одного из входов, как начинается бесконечная передача данных этой переменной и другие переменные она не передает! Почему? За что тогда отвечает галочка "Запись по изменению", я предполагал, что она передает данные, только когда меняется состояние переменной в устройстве! Или эта галочка работает совместно с функцией чтения, считывает регистр из слейв устройства и если данные не совпадают она тогда записывает? Вложение 44964 Вложение 44965
Если она сама не шлет запросов, то норм, я обычно пользуюсь полноценным слейв эмулятором, в котором можно задать адрес устройства, тип команд, посмотреть лог обмена посылками. А где смотрите что идут постоянные запросы, может это от другого регистра или это запросы чтения соседних?
Нет, программа чисто только считывает то, что отправляет ПР200. По моей логике ПР200 должен циклично отправлять данные по порядку. Но при старте ПР200 в мониторе порта тишина, замыкаю вход DI7 СТД-31_3 и в порт начинают идти постоянно данные {10}{06}{00}{0C}{00}{01}{8B}{48} размыкаю контакт постоянно идут {10}{06}{00}{0C}{00}{00}{4A}{88} как бы все правильно СТД-31_3 12 регистр. Вот только почему постоянно? Потом замыкаю DI6 СТД-31_2 {10}{06}{00}{0B}{00}{01}{3A}{89} и размыкаю {10}{06}{00}{0B}{00}{00}{FB}{49}. Но если сейчас опять замкнуть DI7 СТД-31_3, то ничего не происходит. И так же если замкнем DI5 СТД-31_1 будут бесконечно передаваться только его значения. Получается, что передаются только те данные, которые стоят выше в списке переменных в программе Owen logic. А если убрать галочку Запись по изменению и поставить Запуск записи переменную TRUE то передается все переменные по порядку(почти по порядку)
Я на почту Вам сейчас отправлю проект!
Проверил, при замыкании 1 дискретного входа, начинается обмен, но это и логично, так как на этот вход назначена переменная разрешающая опрос по всем переменным, (нет ни одной переменной, с установленным чекбоксом "запись по изменению") после снятия сигнала с DI1 запросы прекращаются, пока все логично. С DI7 нет никакой связи. Посмотрите в системном меню, при замыкании DI7? DI1 не становится в "1" случайно?
В онлайн отладке проверил, все хорошо, DI1 не становится в "1". Видимо я вам скинул версию, где поставил переменную разрешающий опрос. А вот если ее убрать и везде поставить галочку "запись по изменению" то не работает как надо. Можете посоветовать эмулятор modbus, чтобы проверить как с ним будет работать.
Даже если создать пустой проект с одной сетевой переменной типа bool и поставить флажок Записывать по изменению то происходит такая еруда, один раз замыкаешь вход и пошли бесконечные данные состояния порта. Это глюк такой или из-за того, что е подключен нормальное устройство, которое бы отвечала на запрос записи.
Разобрался в чем проблема была. ПР200 посылает команду на запись в регистр, так как у меня был не эмулятор Slave устройства, а просто программа для считывания данных из порта(мониторинг) то ответа на команду от ПР200 никто не посылает и из-за этого он зацикливается на этой переменной! Но по идее так не должно быть по логике, если ответа нет от устройства после N попыток, то следует переходить к следующим переменным, а не зависать на одной. Быть может я не со всеми настройками разобрался, но по умолчанию должно быть так!
Когда использую эмулятор Slave устройства, то все работает как положено! При изменении значения переменной происходит отправка один раз!
Добрый день. Как можно организовать циклическое реле на 14 выходов на базе ПР200-220 + ПРМ220.1. Длина импульса - 0,2 сек; Время между импульсами - 120 сек; Время цикла - 19 мин. Т.е. поочередно появляются сигналы на дискретных выходах с 1-го по 14-й (как бегущие огни), затем пауза(время цикла) и снова повторяется цикл. Эти параметры (длина импульса, время между импульсами, время цикла) меняются с экрана ПР200? Может у кого-то есть какие-то наработки?
Неоднократно подобное обсуждалось: https://owen.ru/forum/showthread.php?t=27724&page=2
Вот "подрихтовал" под ваши хотелки, уставки на экран вывести для редактирования думаю проблем не составит, надеюсь сможете!
Вложение 44990
Или так:
Вложение 44991
Или так:
Вложение 44993
Может посмотрите на предмет оптимизации кода?Вложение 45013
Вложение 45014
Вложение 45015
Добавил детектор заднего фронта между генератором импульсов и счетчиком - намного лучше получилось:Вложение 45025
Так Вы практически ничего и не изменили, что я предлагал, что там комментировать?!
И Вам вроде надо было поочерёдно на 14 нагрузок сигналы подавать, тогда, мне так кажется, Вы странно выходы задействовали, короче, так как нагрузки коммутируются последовательно(не одновременно), для этого вполне достаточно и 8 выходов, например можно 8-ой выход использовать для переключения двух групп нагрузок по 7 штук в каждой группе, как раз 14 получается, сколько Вы хотели, или планы резко меняются?
Добрый день Коллеги. Подкинули задачку. Есть задачик сигнала 0-10 вольт( с этого форума) применяем для управления вентилятором. Возникла необходимость сделать что то типа "индикатор работы". Что то похожие на шкалу из "**********" Количество сегментов 10. Максимум 10 (*) а при минимум 1(*)
Как я понимаю: Берем "уставку" сравниваем на равенство с сигналом из задачика и Bool зажигает сегмент(*)
Есть ли другие варианты, может кто то что то делал подобное?
Нет, просто железо готовое уже стоит, программа слетела, а автора программы нет. Пришлось по-новой восстанавливать по алгоритму работы устройства. А насчет переключения 8-м выходом на вторую группу очень дельная мысль. Если-бы делалось все сначала, то так бы и сделал.
Это было-бы так:Вложение 45037
Dan75 спасибо. Тоже не плохой вариант. Заказчику будет из чего выбрать.
Скажите пожалуйста, как работает команда 0х10 в ПР200? Есть 30 регистров, целочисленные с адресами от 100-130 у всех стоит отправка по событию раз в 1с. Почему он не отправляет все данные одно командой? Или такое в ПР200 невозможно?Вложение 45297Вложение 45298
Что-то мне сдается, что ПР еще не поддерживает групповые запросы являясь мастером. Вроде была такая инфа на форуме.
Не могу сообразить, как ограничить ввод уставки с экрана? К примеру, уставка температуры может быть от 45 до 85. ВВод с экрана понятен, но я могу менять только входную переменную и ограничить ее програмно никак не получается...
Ограничение настраивается в настройках переменной экрана. Когда на экран поставите переменную, в ее свойствах есть пункт "Диапазон"
Контроль - Да, Максимум и Минимум