Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программная ошибка в реализации таймера ПР Овен
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
SideMoon
Не с первой попытки, но нашел причину ошибки (ошибка в библиотеке от поизводителя) таймера TP, задающего ширину импульса в среде разработки "OWEN Logic" комании Овен.

Краткое описание ошибки - таймер имеет два входа : 1) Вход Уставки длины импульса
2) Вход Управляющий, по переднему фронту которого генерируется импульс на выходе таймера.
При Уставке =0, на выходе должен генерироваться импульс нулевой длины, то есть его не должно быть. Но реально генерируется импульс длиной около 0,1 сек (для Овен ПР100).

--------

В процессе обсуждения были высказаны разные мнения о необходимости исправления ошибки:
1) предлагают решить проблему другим способом, не имеющим отношения к таймеру TP
2) исправлять ошибку в таймере нельзя, тк это может нарушить работу ранее созданных проектов
3) сделать альтернативный таймер с другим названием
4) описать обнаруженную ошибку в руководстве по Owen Logic и оставить все как есть.

http://www.owen.ru/forum/showthread.php?t=...ll=1#post270457
http://www.owen.ru/forum/showthread.php?t=...ll=1#post270472

Не хотелось бы обсуждать производителя - плох он или хорош, ошибки могут быть у всех.

Интересно мнение форумчан - какой описанных вариантов (1 ... 4 или другой ) решения проблемы лучше и почему?







wild
Задавать 0 длительность импульса это глупо. Проверяйте в своей программе параметры на диапазон допустимых значений.
SideMoon
Цитата(wild @ 19.2.2018, 18:47) *
Задавать 0 длительность импульса это глупо. Проверяйте в своей программе параметры на диапазон допустимых значений.


Предлагаю обойтись без оскорблений и вешания ярлыков.

Есть много причин, когда может быть использована нулевая уставка. Например, для сброса таймера в начальное состояние не дожидаясь окончания длинного импульса. Или для генератора, в котором программируемое реле (ПР) определяет длительность, а изменяемая частота импульсов определяется внешним генератором и также применимо для многих других случаев.

Предлагаю обсудить варианты устранения найденной ошибки из 4-х предложенных или любых других на ваш выбор.

По самые по...
Цитата(SideMoon @ 19.2.2018, 18:29) *
...

В процессе обсуждения были высказаны разные мнения о необходимости исправления ошибки:
1) предлагают решить проблему другим способом, не имеющим отношения к таймеру TP
2) исправлять ошибку в таймере нельзя, тк это может нарушить работу ранее созданных проектов
3) сделать альтернативный таймер с другим названием
4) описать обнаруженную ошибку в руководстве по Owen Logic и оставить все как есть.

http://www.owen.ru/forum/showthread.php?t=...ll=1#post270457
http://www.owen.ru/forum/showthread.php?t=...ll=1#post270472

...
Интересно мнение форумчан - какой описанных вариантов (1 ... 4 или другой ) решения проблемы лучше и почему?


Честно описАть обнаруженную ошибку и сделать альтернативный вариант
wild
Цитата(SideMoon @ 19.2.2018, 18:59) *
Предлагаю обойтись без оскорблений и вешания ярлыков.

Есть много причин, когда может быть использована нулевая уставка.


Для начала подумайте как обрабатывается такой функциональный блок исполнительной средой контроллеров, а после этого у Вас не будет соблазнов описывать бесполезные предложения на форуме.
Есть минимальный цикл задачи и вы не можете обеспечить формирование импульса короче чем этот цикл. Какой цикл у вашего аппаратного обеспечения? Отсюда и вывод не пишите глупые программы
LordN
Цитата(wild @ 19.2.2018, 22:47) *
Задавать 0 длительность импульса это глупо. Проверяйте в своей программе параметры на диапазон допустимых значений.

+1
то, что библиотечные функции не делают того, чего от них хочет всякий разный программист - это вообще не проблема, это данность.
селявуха.
с этим просто надо жить и выкручиваться на том месте, где попался в эту ситуацию.

поэтому естественно надо делать так:
самому себе написать тз на нужный функционал и создать его.
других способов просто не бывает.
rolleyes.gif
SideMoon
Цитата(wild @ 19.2.2018, 19:04) *
Для начала подумайте как обрабатывается такой функциональный блок исполнительной средой контроллеров
это уже выяснили вместе с коллегами - проверили аппаратно и на симуляторе.

Обрабатывается ошибочно. Программа не глядя на уставку, выставляет логич. 1 на выходе таймера, а потом начинает анализировать уставку и выставляет логич. 0

kosmos440o
Это не баг, а фича. Надо сделать правку в описании блока. Юзер должен сблокировать значение {Длина импульса >0} в булеан по И с {Разрешено сделать импульс} и это уже подавать на Вход Управляющий. Хотя лучше конечно добавить это в логику блока. Вероятнее всего об этом даже никто из юзеров не узнает. Ибо такой короткий импульс, на уровне гонок, в релейной логике не используется.

Цитата(wild @ 19.2.2018, 18:47) *
Задавать 0 длительность импульса это глупо. Проверяйте в своей программе параметры на диапазон допустимых значений.

Ну да, этот как частотник отключать по входу 0-10 вольт, без отключения по цифровому входу. Можно, но ненадёжно.
starmos
Если я правильно понимаю, то Управляющий вход в момент ошибки активен? Т.е. вы говорите таймеру - "сгенерируй мне импульс нулевой длины"? Это получается из Дзэн что-то, вроде "хлопка одной ладони". Примитивный блок таймера должен ВМЕСТО вас решить что вам важнее: сгенерировать импульс (т.к. вы установили управляющий сигнал) или не генерировать (т.к. вы установили нулевую длину)?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.