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