Привязать ко времени не проблема, но это не задача управляющего отображением на экране ПР.
Вид для печати
Привязать ко времени не проблема, но это не задача управляющего отображением на экране ПР.
с такой постановкой вопроса, ДА. тут все правы, а некоторые (Ростехнадзор, МРСК, Энергосбыт) немножечко правее.
вопрос в выборе оборудования и производителя оного, не просто "что дешевле", а и с чем удобнее и приятнее работать. да и как потом объяснить обслуживающему персоналу (не всегда квалифицированному), что если тут "1" то вам надо вооон ту задвижку закрыть и привод выбросить?Цитата:
Сообщение от capzap
мне приятно работать с ОВЕНОМ, в том числе благодаря Вам уважаемые форумчане.
"там где трудно одному... где чего-то не пойму, разберусь с друзьями"
Погнали наши городских :)
Ехал вчера домой и думал, а почему собственно сортировка только сверху вниз ? в общем тестируйте....
Макрос делался не ради извращения, то есть он ограничен одновременным выводом 8-ми (ВОСЕМЬ) аварий либо от большего aA=false, либо от меньшего aA=true, по умолчанию от большего, так работает быстрее если его каскадировать до 32-х одновременных аварий, см. пример "*down")
Для правильной работы со старшим разрядом необходимо установить параметр Hb в true. При каскадировании Hb=false, так же необходимо с последнего выхода t8 подать на вход bit следующего макроса (см. пример)
Запуск счета работает по 2-м параметрам, входу C и изменению входной переменной code
Выход RS (Ready state) сигнал готовности, если bit равно 0 то RS не станет true, можно подавать на вход С следующего макроса, но так как в примере быстрее.
В примере есть экран, список собран копипастом с изменением переменной. То есть постоянно редактировать весь список нет необходимости.
Скажу больше, при авариях можно переключить экран на Экран Аварий
Спарва или слева можно сделать индикаторы, что список еще не до конца прочитан...
з.ы. с трудом представляю установку, где при большом количестве аварий она не остановится и не зафиксирует нужные аварии.
з.з.ы. у меня реализовано обнуление всех выходов при перерасчете, сделать что-то удобоваримое и не глобальное, чтобы значения перезатирались не получилось, хвосты остаются....
А что если попробовать применить бугущую строку для вывода названия аварий? Приемущество: можно вывести название длиннее 16 символов. Но есть неудобство с конфигурированием экрана при большом кол-ве сообщений и опять таки если выводить сообщения в одну строку, то долго ждать прокрутки если есть допустим авария 1 и 7, а между ними ничего нет. По аналогии можно использовать автоматическую вертикальную прокрутку, нюансы те же.
Они не дублируются, макрос работает несколько циклов ПР, не мгновенно, он должен при сигнале на входе С обнулить значения и пересчитать.
Вариант на 32-ве одновременных аварии сверху вниз быстрее и проще чуть чуть - это всего лишь пример.
Один макрос может обрабатывать 32 бита и выведет соответственно до 8-ми одновременных аварий
Соответственно при 32-х битах макрос будет работать больше 32-х циклов ПР.
Проверку на изменения числа можно вынести ЗА макрос и запускать его самостоятельно по входу С.
Макрос просто относительно универсальный. Так что какие-то вещи из него убрать всегда можно :)
capzap предложил самую оптимальную, на мой взгляд, систему. его сортировщик и дополнить можно и строки будут высвечиваться по порядку без пробелов, а для того чтобы знать как много прокручивать, можно кол-во аварий вывести 2-значным числом в первой строке (кол-во отображаемых символов 16 достаточно для внятного, сокращенно написанного события.). а действия при аварии доводятся до автоматизма тренировками "КАРАУЛ, В РУЖЬЁ!!!!".
Хм, обнаружил странность, в эмуляции сам макрос работает отлично, но ставишь в поле начинает глючить, непонятно почему, может пропустить значение, которое выставленно в 1 а то и 2....
Сортировщик имеет плюс так как работает быстро, но и имеет минус так как требует всегда подгонять под необходимое количество входов/выходов исходя из битности...
AI! так я их не сортирую, а убираю пустоты (нули) и они идут по порядку.
Стати в ПР макрос выполнялся быстро, не как в эмуляции. Но памяти отъедает побольше, тут точно минус
Да ошибки как выясняется связаны с обратными связями и еще не пойми с чем. сейчас попробую из своего макроса убить обратную связь и проверить просто запуская по импульсу, тогда будет понятнее...
AI! цифра 10 была образной :)
Добрые люди, напомните пожалуйста, есть возможность выдернуть программу из ПР110(ПР200)? запамятовал совсем.
Калибровка аналоговых входов.
Использую РЗУ-420, при подаче 0 мА сам РЗУ пишет 0.00 мА, Обрыв.
ПР200 при этом показывает на входе 0,06 мА далее, так как шаги на РЗУ начинаются с 0.20мА и с шагом 0,1 мА вроде все корректно.
Но как избавиться от начального 0,06 мА ?
По верхнему пределу ПР200 застыл на 20,71 :)
После калибровки работа входа на 5+ вот только ноль не совсем ноль. Если отключить подачу тока то значение будет 0,01 мА
Да, и если вход откалибровать на ток, как он потом будет работать по напряжению ? или нужен эталонный БП для калибровки входа по напряжению.?
Здравствуйте! Подскажите, пожалуйста:
1. В режиме симулятора на аналоговом входе с активным датчиком температуры 4...20мА задаётся температура? И как её значение задать ниже нуля?
2. Как передать по сети данные о температуре, поступившие по RS-485 на ПР-200?
1. выбираете датчик 4-20мА в свойствах входа указываете нижнюю границу -40 градусов, верхнюю границу +100 градусов например
2. записать уставку ? любой SCADA системой в режиме Modbus RTU, только придется пока озаботиться сохранением переменной, например при помощи SelChange для плавающей точки, есть в теме макросов.
Планирую произвести замену блоков управления Укринтерм МН-120 на 5-ти модулях нагрева, ПР-200 с расширительным блоком дискретных сигналов 8/8 (надеюсь в начале 2017 поступят в продажу). Примерную программу написал, но осталось поработать с экраном (родным), есть ли примеры, например Основной экран - под экраны - переходы, мне бы примеры посмотреть а там думаю потихоньку с Вашей помощью разберусь )))
В симуляторе, чтобы задать значение на аналоговом входе ниже нуля, перед значением поставьте знак "-"! Передать отрицательные значения можно во FLOAT или INT, вот макросы: http://www.owen.ru/forum/showthread.php?t=13106&page=3
Вложение 27253
Спасибо! Я тоже разобрался) Целочисленную переменную на плавающую поменял, и на входе стало возможным задать число с минусом. А в свойствах датчика было всё как надо: 4...20мА и -50...200 градусов. Минус ставил и в первом, и во втором случае) спасибо за ответы!
Добрый день! Если более подробно опишите структуру экранов сделаю для Вас пример. Мне необходимо знать как планируется переход между экранами (по нажатию какой кнопки или комбинаций или удержания либо срабатывание внутренней переменной), а так же разветвленность переходов. В общем желательно общий каркас. Так же прошу обратить внимание на один момент при использовании макросов термосопротивления, перед входом необходимо поставить ограничение на величину немного больше рабочего максимального диапазона по сопротивлению, иначе при обрыве датчика сопротивление на входе стремится к бесконечности, и затем числа проходя через полином выходят за диапазон 2^32.
Ревака Юрий в прошивке хромает переход по удержанию.
Объясню. Когда на одном экране используется переход по нажатию и по удержанию одновременно.
Получается такая байда, что в ПР переход срабатывает по фронту импульса, а надо использовать по спаду и чтобы прошивка определяла время нажатого состояния и принимала решение, это было короткое нажатие или длинное.
з.ы. когда в системных переменных появятся кода кнопок и возможность использовать 2-3 клавиши ? :)
А, точно, что-то я про отпускание забыл...
Хотя с другой стороны у меня получилось как бы скрытое меню, если не знать в какой момент надо удерживать кнопку :)
По паролю есть смысл делать изменение переменных, которые нельзя менять просто так абы кому и когда.
Меню конечно тоже паролить не мешало бы. было бы плюсом.
з.ы. я всего лишь делал не скрытое меню а технологическое для проверки, так и оставил...
Но больше всего не хватает системной переменной кода кнопок, имхо....