Предлагаю создать тему, в которой можно будет задавать глупые вопросы, подобно этому:
если к обоим входным переменным прибавлять одинаковое число, к примеру, 150.0, то при условии равенства взводится только первый меркер, в нашем случае М30.0. М30.1 даже при выполнении равенства не взводится. Если же к одной переменной прибавлять, допустим, 150.0, а к другой 150.1, то взведутся оба. Почему?
Глупые вопросы новичка
Глупые вопросы новичка
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Вопросы новичка
Если я правильно понял ситуацию, то проблема заключается в представлении переменной типа REAL. Если складывать слишком большое число и слишком маленькое, то маленькое число может быть "незамечено". Например, число 0.1 намного меньше 100000.
Немного изменил тему, чтобы было понятнее.
Немного изменил тему, чтобы было понятнее.
Re: Вопросы новичка
.Михайло писал(а):Если я правильно понял ситуацию, то проблема заключается в представлении переменной типа REAL. Если складывать слишком большое число и слишком маленькое, то маленькое число может быть "незамечено".
Нет. Значения переменных изменяются в пределах от 1000 до 3000. Скорость изменения также не большая. Имел ввиду следующее: при DBD26+150 = DBD18 M30.0=1; а при DB30+150 = DBD22, M30.1=0
Re: Глупые вопросы новичка
Я не очень силен в STL, но проблема может быть в попытке сразу после команды +R грузить в аккумулятор ACCU2 командой L. Вероятно команда L сразу после +R затирает результат операции сложения. Нужно после +R сохранить результат командой T, а затем грузить заново.
Re: Глупые вопросы новичка
А где это видно?Drahtor писал(а):Предлагаю создать тему, в которой можно будет задавать глупые вопросы, подобно этому:
если к обоим входным переменным прибавлять одинаковое число, к примеру, 150.0, то при условии равенства взводится только первый меркер, в нашем случае М30.0. М30.1 даже при выполнении равенства не взводится. Если же к одной переменной прибавлять, допустим, 150.0, а к другой 150.1, то взведутся оба. Почему?
Вот моя подпись...
Re: Глупые вопросы новичка
Это еще может быть случайным процессом, никак не связанным с тем, что к чему прибавляется. Дело в том, что команда проверки на равенство двух значений типа REAL - это конь в сферическом вакууме. Если эти значения приходят с датчиков, то вероятность практически равна нулю, что когда-то они будут равны. Обычно для вещественных чисел сравнение делают следующим образом: вычисляют модуль разницы и сравнивают с некоторым пороговым значением. Допустим отклонение не должно быть более 0,05 попугаев, тогда величины считаются равными.Drahtor писал(а):Если же к одной переменной прибавлять, допустим, 150.0, а к другой 150.1, то взведутся оба. Почему?
- Автоматизатор
- Профессионал
- Сообщения: 994
- Зарегистрирован: 09 окт 2012, 05:18
Re: Глупые вопросы новичка
Да. Почему картинки "без очков" отладчика?mr_Frodo писал(а):А где это видно?
Re: Глупые вопросы новичка
Это просто не внимательностьDrahtor писал(а):Почему?
У Вас меркер взводится по команде SET!!!!! Reset где? Т.е один раз взвелся, а потом хоть #головойобстену
Re: Глупые вопросы новичка
Да не, нормально все. Просто фиксируем факт равенства... Наверное...CHANt писал(а):Reset где?
Re: Глупые вопросы новичка
А может правда проблема в понимании того, как работает S?
Re: Глупые вопросы новичка
Так в том то и дело, что топикстартер имеет претезии к неадекватной установке сигнала или даже невозможности, хотя не аргументирует представлением процесса онлайн, а только своими рассуждениями, которые не совсем последовательны и понятны.CHANt писал(а):Это просто не внимательностьDrahtor писал(а):Почему?
У Вас меркер взводится по команде SET!!!!! Reset где? Т.е один раз взвелся, а потом хоть #головойобстену
Но раз уж тема идет в таком ключе, то необходимо досконально разобраться в ситуации, хотя я думаю, что Ваше объяснение вполне выявляет причину неверного трактования работы алгоритма, представленного автором темы. Ждем его рецензии.-
Вот моя подпись...
Re: Глупые вопросы новичка
Меркеры сбрасываются в следующем нетворке. Проблема в том, что они не взводятся.CHANt писал(а): Это просто не внимательность
У Вас меркер взводится по команде SET!!!!! Reset где? Т.е один раз взвелся, а потом хоть #головойобстену
Процесс динамический, поэтому если только видео выложу.Автоматизатор писал(а):Да. Почему картинки "без очков" отладчика?mr_Frodo писал(а):А где это видно?
Это подъемник. Соответственно левая и правая сторона. Считываются сигналы с энкодера (100 имп=0.1 мм), на скрине - значения в миллиметрах. Нажимаем кнопку пуск, мне надо, чтобы на высоте 150мм от пола подъемник остановился. Ставлю SET, потому что по инерции счетчик проскакивает заданное значение. Скорость вращения движков 1500 об/мин, энкодер 1024. Энкодер подключен к приводу. Данный в ПЛК идут по Profinet. Неужели ПЛК просто не успевает зафиксировать равенство или это происходит между циклами?
Если да, то наверно придется сравнивать как было предложено выше по модулю. Как это сделать компактно и без объявления дополнительных переменных?
Re: Глупые вопросы новичка
Равенство в реальных данных?!?
Ставьте сравнение: больше или меньше и равно, вот тогда все будет работать.
Ставьте сравнение: больше или меньше и равно, вот тогда все будет работать.
Вот моя подпись...
Re: Глупые вопросы новичка
Михайло писал(а):Дело в том, что команда проверки на равенство двух значений типа REAL - это конь в сферическом вакууме. Если эти значения приходят с датчиков, то вероятность практически равна нулю, что когда-то они будут равны. Обычно для вещественных чисел сравнение делают следующим образом: вычисляют модуль разницы и сравнивают с некоторым пороговым значением. Допустим отклонение не должно быть более 0,05 попугаев, тогда величины считаются равными.
Re: Глупые вопросы новичка
Объясняю совсем просто: допустим на входе ID1000 в динамике были получены значения 0, 12, 28, 62, 122, 167, 201, 225. Чтобы перевести в миллиметры мы (допустим) умножаем на коэффициент 0.15. Тогда реальные значения будут такие: 0, 1.8, 4.2, 9.3, 18.3, 25.05, 30.15, 33.75 мм. Если прямо сравнивать со значением 32.0 мм, то как видно бит не взведется. Причина - дискретность обработки информации с энкодера.
Re: Глупые вопросы новичка
И это не особенность Симатика, это принципы работы с ПЛК и т.д.
- Автоматизатор
- Профессионал
- Сообщения: 994
- Зарегистрирован: 09 окт 2012, 05:18
Re: Глупые вопросы новичка
Математику можно тестировать отдельно от алгоритма управления механизмами. Самому задавать циферки (минимальные, максимальные, средние, граничные и пр. значения) в отладчике и проверять результат.Drahtor писал(а):Процесс динамический, поэтому если только видео выложу.
Re: Глупые вопросы новичка
Очередной глупый вопрос: один и тот же бит в одно и тоже время в редакторе равен "1", в VAT - "0". Предугадывая ответ, что он сбрасывается в другом месте, скажу, что больше он нигде не записывается.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Глупые вопросы новичка
Я бы проверил четыре случая:
- сохранена и загружена в контроллер сама программа;
- сохранен и загружен в контроллер DB41;
- сохранена и загружена в контроллер таблица VAT;
- характеристики ЦПУ на предмет ограничения областей адресации, как для переменных, так для номеров DB, FC, FB и прочее.
Надо исходить из того что где-то Вы неверно задали параметр или не корректно выполнили операции, или это связано с ограничением этого ЦПУ (это же не полноценный контроллер), а не с позиции глюкавости Симатика, он то как раз и избавлен от глюкавости давно.
- сохранена и загружена в контроллер сама программа;
- сохранен и загружен в контроллер DB41;
- сохранена и загружена в контроллер таблица VAT;
- характеристики ЦПУ на предмет ограничения областей адресации, как для переменных, так для номеров DB, FC, FB и прочее.
Надо исходить из того что где-то Вы неверно задали параметр или не корректно выполнили операции, или это связано с ограничением этого ЦПУ (это же не полноценный контроллер), а не с позиции глюкавости Симатика, он то как раз и избавлен от глюкавости давно.