Новичкам и программистам, которые привыкли создавать программы для компьютеров, некоторые вещи при изучении программируемых логических контроллеров (ПЛК) кажутся странными. Это может затормозить движение по пути инженера-автоматизатора.
Большинство ПЛК являются приборами сканирующего типа. Суть этого заключается в том, что программа ПЛК работает не с действительными сигналами на входах, а с их копиями.
То есть сначала читаются входы и их состояние запоминается. Потом выполняется цикл пользовательской программы. А в течение этого цикла, каким бы продолжительным он не был, программа работает именно с копиями сигналов, снятыми ПЕРЕД началом цикла. Таким образом изменение входных сигналов во время выполнения цикла никак не повлияет на результат работы программы до следующего чтения входов и следующего цикла.
Это с одной стороны не очень хорошо, потому что программа не может отследить изменение сигнала на входе и принять решение мгновенно (как, например, в случае с прерыванием в микроконтроллерах). Но с другой стороны это исключает неоднозначность алгоритмов обработки данных в различных ветвях алгоритма и в разных модулях программы.
Опять же с учётом того, что цикл ПЛК обычно занимает небольшое время (в большинстве случаев намного меньшее, чем время изменения сигналов на входах), это вообще не критично.
Но главное, что должен помнить прикладной программист ПЛК:
Значения входов обновляются автоматически исключительно в начале каждого рабочего цикла
А общая продолжительность рабочего цикла ПЛК называется временем сканирования. Основную часть этого времени занимает работа пользовательской программы. И это время может сильно отличаться в зависимости от объёма и качества программы.
А вот время, занимаемое прочими фазами рабочего цикла (чтение входов, установка выходов и т.п.) обычно величина постоянная (или близкая к постоянной). И соотношение времени, которое затрачивается на выполнение пользовательской программы к времени на остальные фазы примерно такое:
- 98% - пользовательская программа
- 2% - всё остальное
Время цикла обычно можно настраивать в среде разработки - в конфигурации ПЛК. Хотя в большинстве случаев в этом нет необходимости и можно оставлять настройки по умолчанию.
На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить…