PSW38, DWORD - системное время панели(от момента включения питания) с дискретностью 0,1 сек(100мс),
Вид для печати
Пример измерения интервалов времени с использованием PSW38
Вложение 68460
Анимация:
Добрый день. Спасибо за подсказки. Посмотрел, полезно. У меня была немного другая проблема. Сейчас решил сам по другому. Там был длительный процесс вращения барабана в разные стороны (вперёд-назад) и за сутки почему то набегала значительная ошибка. Сделал в ПР200 в виде генератора blink и счётчика импульсов.ри этом время генерации корректирую путём записи переменной в функциональный блок.
Почему получается ошибка во времени не могу пока понять. Если брать связку генератор - счётчик, то она работает точно. А вот в составе программы с переключением направлений вращения и еще разных условий типа защита и т.д. почему то время уходит.
На данныймомент привёл в требуемый допуск. Хотя может и не правильно.
Пётр, добрый вечер.
Проблема у меня следующая. Есть процесс, который состоит из повторяющихся циклов вращения барабана в разных направлениях с паузами между вращением. Таких повторяющихся циклов много. В процессе работы нужно останавливать барабан, брать пробы, загружать химикаты и т.д. Тоже по времени.
Временные промежутки цикла вращений у меня отрабатываются программой в ПР200. Помимо этого нужно вести учёт общего времени от начала выполнения процесса, что бы оператор видел сколько времени прошло от начала и мог внести корректировку в процесс.
У меня организован в ПР200 таймер, который считает это время в секундах и записывает в сетевую переменную. Мне нужен мкарос в СП310, который из этого числа выводит на экран время в секундах, минутах и часах.
В вашей библиотеке подобный есть, называется "часы". Только я не знаю как его связать с моей переменной, в настройка там нет регистра.
И еще, таких подсчётов времени у меня несколько (несколько барабанов и несколько разных периодов).
Саму программу сейчас выложить не смогу - всё на работе а там я буду только в субботу. Если интересно, то позже могу отправить проект на почту или куда то выложить.
Спасибо заранее за помощь.:D
Вы не там смотрели
Такой макрос находится в "Визуальные ГМ\Ц_индикация\Таймеры" и называется "чч_мм_сс"
Вложение 68689
Операндом там выступает любой регистр DWord
Вложение 68690
Только есть один нюанс - эти ГМ делал для отображения времени заданном в миллисекундах (таймеры в кодесис, например)
По этому можно читать из ПР переменную, например рег.512, а в СП использовать ф.область, непрерывную, с функцией PSW500(dword) = 4x512 * 1000
Вложение 68691
Спасибо. Это то, что нужно. Буду когда на работе - встрою в проект.
Наверное можно будет сразу сделать пересчёт в овенлоджике в нужную размерность и передать результат в регистр панели.
Пётр, всё получилось как нужно.
Вопрос - есть ли возможность отредактировать внешний вид этих макросов,что бы выглядели как стандартные окна ввода и отображения цифровых значений.
Имеется в виду размер цифр и вид рамок.
По поводу шрифта (тип и размер) - для любых визуальных ГМ делается нажатием кнопки "F" на панели инструментов
Вложение 68743
По поводу внешнего вида
Такой же по функционалу ГМ "чч_мм_сс", но в рамке находится в папке "Визуальные ГМ\Ц_индикация\Таймеры\В рамке"
Вложение 68744
В этом случае в настройках появляется вкладка "Цвет"
Вложение 68745
ЗЫ
Что касается другого стиля самой рамки, то путем редактирования самого макроса можно сделать рамку любого стиля, в том числе как у стандартных дисплеев или элементов ввода.
Укажите какой внешний вид рамки Вам нужен (картинку прикрепите)
Пётр, доброго времени суток.
По поводу рамок для макросов- мне бы хотелось, что бы они выглядели как стандартные Цифровой дисплей. Потому как так проще - не надо каждый раз приводить всё к единому стилю.
получается покак вот так
Вложение 68973
и приходиться каждый раз делать несколько операций, что бы получить такой вид.
Тут столкнулся ещё с такой проблемой. Если для вашего макроса (в котором время в микросекундах) указать формат данных word, и делать умножение в овенлоджике, то подсчёт времени идет только до 1мин 5 сек и далее стартует сначала. Получается если я хочу считать часы (реально есть процессы по 2 суток) то мне надо для сетевой переменной выделять 2 регистра и указывать dword в настройках макроса?
И ещё - -если производить вычисления в функциональной области,то надо тоже в области памяти панели выделять 2 регистра? Или можно читать значения сразу из сетевой переменной (которая тоже займёт два регистра)?
Если брать формат данных unsigned, то даже передавая время в секундах и умножая на 1000 в функциональной области и используя только один регистр упрёшься в значение 18 часов.
Как тут мне лучше сделать?