Хотя кажется, что каждая модель ПЛК имеет свой собственный стандарт программирования, существует международный стандарт программирования контроллеров, которому большинство производителей ПЛК, по крайней мере, пытаются соответствовать. Это стандарт IEC 61131-3, который станет стандартом
Следует утешаться тем, что, несмотря на различия в деталях программирования ПЛК от одного производителя к другому и от одной модели к другой, основные принципы во многом одинаковы.
Между различными языками программирования общего назначения (например, C/C++, BASIC, FORTRAN, Pascal, Java, Ada и т. д.) существуют гораздо большие различия, чем между языками программирования, поддерживаемыми разными ПЛК, и этот факт не мешает программистам быть «многоязычным».
Я лично написал и/или проанализировал программы для более чем полдюжины различных производителей ПЛК (Allen-Bradley, Siemens, Square D, Koyo, Fanuc, Moore Products APACS и QUADLOG и Modicon), с несколькими моделями ПЛК в большинстве этих брендов, и я могу вам сказать, что различия в соглашениях по программированию в основном незначительны.
Научившись программировать одну модель ПЛК, довольно легко адаптироваться к программированию других марок и моделей ПЛК.
Языки программирования ПЛК
Стандарт IEC 61131-3 определяет пять различных форм языка программирования для промышленных контроллеров:
- Лестничная диаграмма (LD)
- Структурированный текст (СТ)
- Список инструкций (IL)
- Функциональная блок-схема (FBD)
- Последовательная функциональная схема (SFC)
Не все программируемые логические контроллеры поддерживают все пять языковых типов, но почти все они поддерживают лестничные диаграммы (LD), которым и будет посвящена данная книга.
Языки программирования для многих промышленных устройств ограничены дизайном.
Одной из причин этого является простота: любой язык программирования, достаточно простой по структуре для понимания человеком, не имеющим формальных знаний в области компьютерного программирования, будет ограничен в своих возможностях.
Другой причиной ограничений программирования является безопасность: чем более гибким и неограниченным является язык программирования, тем больше вероятность непреднамеренного создания сложных ошибок «время выполнения» при программировании.
Стандарт безопасности ISA номер 84 классифицирует промышленные языки программирования как языки фиксированного программирования (FPL), языки ограниченной вариативности (LVL) или языки полной вариативности (FVL).
Программирование лестничных диаграмм и функциональных блок-схем считается языками «ограниченной вариативности», тогда как список инструкций (и традиционные языки компьютерного программирования, такие как C/C++, FORTRAN, BASIC и т. д.) считаются языками «полной вариативности» со всеми сопутствующий потенциал для сложных ошибок.