Автор: Ryzhij
Дата: 06.01.14 09:28
indian:
> По опыту - чем больше выделений фронта, тем глюкавее работает контроллер.
Мой опыт подсказывает мне, что глючат не контроллеры, а программы ;)
Разумеется, что программы, использующие столь короткие импулься длительностью в один цикл гора-а-аздо сложнее отлаживать.
indian:
> Более того, задумайтесь, возможно неспроста такая стандартная функция отсутствует.
Например, ввод и вывод ассинхронны по отношению к циклу пользовательской программы, ну скажем ПДП. Хорошо если просто желание производителя оборудования приучить пользователей к правилам хорошего тона.
Есть обширные семейства контроллеров, и PLC, и PAC, с безусловной асинхронностью ввода-вывода, но в системе команд которых функция выделения фронтов имеется.
Нужна синхронность - используйте отдельный программный блок для пересылки на входы-выходы, а в программе оперируйте с копиями (образами) в памяти.
И это, кстати, тоже одно из правил хорошего тона (стиля программирования), позволяющее получить некоторые дополнительные преференции, например в виде портабельности или гибкости на этапе ПНР.
Есть ряд задач, где приём выделения фронтов позволяет получить красивое решение из двух строк, а "автоматный" подход даёт громоздкий код.
Например, помехоустойчивый к дребезгу счётчик с учетверением относительно медленных импульсов на основе А/В последовательностей (инкрементный датчик координат) "на фронтах" получается элементарно.
Решите-ка эту задачку с "автоматным подходом" на комбинаторной логике с триггерами, и сравните.
О чём мы спорим?
Нужен человеку фронт? - Пожалуйста!
Боитесь фронтов? - Воля Ваша, не используйте.
Любое решение, это просто обмен старых проблем на новые.
|
|