А какая причина была зависания макроса? Пытался понять, не смог...Полезно бы узнать, чтобы в будущем на эти грабли не наступить.
Вид для печати
А какая причина была зависания макроса? Пытался понять, не смог...Полезно бы узнать, чтобы в будущем на эти грабли не наступить.
Из-за того, что при обрыве резистора сопротивление на входе стремится к бесконечности, при попадании этого значения в полином, происходит выход за разрядную сетку числа INT, в симуляции это выявляется заданием большого числа на входе, при этом на выходе получаем бесконечность в симуляции.
Добрый день.
Влияют ли макросы на производительность? Большая программа ПР200+2платы+СП307, так как сроки поджимали программа похожа на кашу, хоть и все прекрасно работает, если ради эстетики поделить программу на участки и превратить их в макросы , повлияет ли это на производительность ПР200 ?
И еще вопрос , смущает довольно большая задержка между СП307 и ПР200, от 1 до 2 сек, это из за того что у меня ПР200 мастер?
В догонку: объединение программы в макросы практически не влияет на итоговую производительность.
пид регулятор с дискретным выходом откр./закрыть доработан?
Юрий, я уже задавал вопросы по регкзр в тебе про онлайн макросы. Я правильно понял как он должен работать? И как ведёт себя при изменении направления
Добрый день, подскажите где можно найти макрос экстремума, ссылка в теме не рабочая
Коллеги, нет ли у кого-нибудь макроса по переводу времени в секундах во время в виде переменной Флоат по маске МИН.СЕК?
Требуется для отображения на СМИ2 таймера обратного отсчета. Тот, что в Онлайн базе выводит в секундах или вообще ничего не выводит.
Ничего сложного в таком макросе нет
Вложение 46361
Вложение 46362
Спасибо большое!
Минуты умножить на 100 + секунды и передавать в целочисленном виде, в СМИ2 можно всегда точку поставить, где надо, с флоатом, мне кажется, попытка сделать через заднее место!
Мне надо сначала передавать целое число - счетчик, а после того, как он дойдет до уставки включать отображение обратного отсчета.
Счетчик должен быть без точки - использую для этого переменную Word.
Допустим, я буду таймер передавать по Int, то как мне для этого типа переменной выставить точку.
Тогда совсем непонятно, если Вы сейчас передаёте прямой отсчёт в инте, как Вы собираетесь ещё и флоат передавать, наверно придётся на чём-то одном остановится, либо инт либо флоат!
В принципе есть универсальное решение для СМИ2 - переменная типа "Портрет", там все сегменты индикатора под контролем, всегда можно зажечь точку, ну только цифры самому своими руками придётся делать, думаю времени много потратите, не меньше часа уйдёт, за то всё что угодно можно нарисовать в пределах возможностей индикатора СМИ2!
А как бы сделать макрос для управления каждым сегментом отдельно в СМИ2. Видел где то ролик там из СМИ2 "псевдо" индикатор работы ножниц.
Там и делать нечего в смысле всё понятно как три копейки, на стр.31 расписано соответствие бит байта сегментам индикатора, каждый байт отвечает за свой разряд:
Вложение 46393
Например, чтобы ноль получился, надо чтобы в байте были все единички, кроме нулевого и первого бита(сегменты G и DP)
Вложение 46394
Сейчас передаю вот так Вложение 46401, но не удается задать точку Флоату, где надо, и он отображается как Х.ХХХ.
Нет ли случайно наработок, как флоат ограничить 2-мя знаками после запятой?
А насчет Портрета - час это очень оптимистично, по-моему. Я не настолько крутой кодер.)) Больше думал в сторону Стринга.
UPD. Сделал через String с помощью модифицированного макроса перевода таймера во Флоат.)) Вложение 46403
Ну, а разделение сделал "тире" - в S2 пишу константу=45. Ну и соответственно в S1 - минуты. а в S3-S4 - секунды.
Можно так делать таймер до 99мин 59сек.
При чём здесь крутой кодер, Вы представляете как цифры выглядят, больше ничего и не надо знать!
И зачем Вы на втором скриншоте к десяткам, единицам минут и секунд добавляете 48, для чего это надо?
Короче, для цифр, поразрядно, как-то примерно так:
Вложение 46406
Проверяйте!
Вложение 46407
48 добавляю для перевода цифр в ASCII коды, по которым они отображаются на СМИ2 в переменной String. Вложение 46413
В таблице НЕХ код, а для записи в переменную его надо перевести в DEC. С 0 по 9 коды 48-57, (-) - это 45. Табличку заскринил из видео про СМИ2.)
За шаблон перевода в Портрет - отдельное спасибо! Возможно, что пригодится. Жаль только возможности СМИ2 по отображению текста очень ограниченные. Все-таки 7 сегментов - это мало для русского языка.
Коллеги, не подскажите макрос ПИД-регулятора с дискретным выходом (или ПИ-)? Все что удалось найти на форуме - выход аналоговый.
Задача простая - есть 2-3 помещения, которые периодически нужно выдерживать сутки при 30+/- 2 по цельсию. В наличии есть простейшие термовентиляторы - включил он греет. С макросом 2PHReg+ из менеджера компонентов заказчику возиться не понравилось: раздражают частое включение/выключение или сильный перегрев.
Спасибо откликнувшимся!
К сожалению, прибор и датчики уже установлены. Там ПР200-220.3.1 и Pt1000. Думаем пробовать переставить датчики, они сейчас над термовентилятором, на высоте человеческого роста. Или вариант поставить еще по датчику и регулировать по средней температуре.
Вентилятор дует параллельно полу. С гистерезисом 0.5 удалось разброс до 7 градусов снизить. В помещениях хранятся какие то редукторы или что то такое. Продолжаем переговоры с заказчиком...
Нет, они на стену прикручены. Температура задается уставкой, в ТЗ написано "30+/-2 град. С". В принципе, все что можно редактировать - вывели на экран, вопрос почему заказчику именно такая температура важна (ГОСТ ?). Особенность помещений может сказываться - здание старое, подвал сыроват. За окном температура скачет...
Здравствуйте. Посоветуйте программу для пр200. Нужно считывать сигнал с энкодера преобразовать его в расстояние, что бы когда он достигнул заданного ему расстояние остановился.
Добрый день. Смотрите тему https://owen.ru/forum/showthread.php?t=32268, не всегда получится в ПР200 работать с энкодером, нужно больше подробностей о сигналах.
Сергей0308. Спасибо. На выходных посмотрю.
Добрый день.
Вопрос по макросу "Преобразователь сопротивления в температуру" из онлайн базы.
К 3 и 4 аналоговым входам ПР200 подключены "сопротивления". Прибор отображает значение температуры, но если от работающего прибора отключить, а затем подключить обратно "сопротивления", то на 4 входе значения вновь отображаются корректно, а на 3 входе (показания на экране) значения не корректны. Если теперь отключить питание прибора и снова включить, то по обоим входам отображается корректно. В чем может быть дело?
Проект прилагаю.
Всем доброго времени суток! Ребят подскажите возможно ли в пр-ке сделать пошаговое выполнение? точнее:
Есть датчик влажности и датчик температуры токовый сигнал 4-20ма ( этот кусочек побежден макрос преобразователя и регулировки все испытано работает четко)
1 шаг задаем температуру 60С, влажность50%, при необходимости временную паузу перед вторым шагом, при достижении влажности (только влажности) происходит переход ко второму шагу ( или если задана пауза то она выдерживается и только тогда переход ко второму шагу)
2 шаг все как и в первом только другие заданные показатели влажности, температуры, времени.
и так хотя бы 5 шагов ну и обязательно в каждом шаге пункт окончания потому как если будет всего два шага или три чтобы можно было обозначить конец выполнения программы.
Как то вот так если вдруг что неясно написал спрашивайте.
И конечно всем заранее огромное спасибо.
В менеджере компонентов есть макрос построения графика но 10 точкам, можно например так сделать: по оси Х откладывать время(секунды) с момента подачи команды начала процесса, по оси У значение уставки задаваемого параметра(влажность, температура и т. д.), для каждого параметра свой параллейный график и для "паузы" достаточно "остановить время"(отсчёт счётчика секунд), всё! Мне кажется, это называется - программный задатчик!
Вопрос только что должно происходить с регулируемыми параметрами во время паузы, поддержание параметров или пусть убегают куда хотят?
Сергей0308 Спасибо посмотрю.
Василий Кашуба в свободном плавании ничего не регулируется.
Связано с тем, что при обрыве сопротивление стремится к бесконечности, а проходя через полином, результирующее значение вылетает за разрядность INT32, это легко увидеть в симуляции, для этого в начале установлен ограничитель, чтоб в расчет не попадало число >4000 Ом, но симуляция показывает что этого недостаточно для этого макроса, можно попробовать добавить ограничение по пути появления бесконечности в макросе, проверяется при симуляции.