МЭК 61131 (Стандарт МЭК 61131-3: Языки программирования)

Стандарт МЭК 61131 предназначен для обеспечения единого набора языков программирования для программируемых контроллеров и средств автоматизации производственных процессов, что позволяет упростить разработку и сопровождение программного обеспечения для автоматизации производственных процессов.

Основные цели и задачи стандарта МЭК 61131 включают:

  • Обеспечение единого синтаксиса и семантики для различных языков программирования, что упрощает обучение и понимание программного кода разработчиками.
  • Повышение переносимости программ между различными моделями и производителями программируемых контроллеров.
  • Обеспечение возможности структурирования программного кода для легкого понимания и сопровождения.
  • Поддержка различных типов задач автоматизации, включая управление процессами, обработку данных, коммуникацию и т.д.
  • Обеспечение возможности создания гибких и расширяемых систем управления.

В SCADA NPT Compact применяется МЭК 61131 ST (Structured Text). Для реализации различных задач в SCADA используются разные диалекты языка МЭК 61131 ST:

  • ST - классическая реализация для свободно программируемой логики.
  • ST Formula - для выражения в формулах при формировании отчетов.
  • ST Script - для периодических задач.
  • ST Query - для запросов в базу данных реального времени и к базе данных тегов.
Интерфейс для языка ST

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

Пример использования ST в SCADA-системе:

Предположим, в SCADA-системе требуется реализовать алгоритм управления температурой в промышленной печи с использованием ПИД-регулятора. На языке ST этот алгоритм может выглядеть так:

VAR CurrentTemp: REAL; // Текущая температура. Входной сигнал, получаемый от устройства Output: REAL; // Выходное значение ПИД-регулятора. Выходной сигнал, передаваемый в устройство. //Локальные переменные: Error, Integral, Derivative, PreviousError: REAL; Setpoint: REAL := 100.0; // Уставка температуры Kp, Ki, Kd: REAL := 1.0, 0.1, 0.01; // Коэффициенты ПИД-регулятора END_VAR // Расчёт ошибки Error := Setpoint - CurrentTemp; // Расчёт интегральной составляющей Integral := Integral + Error; // Расчёт дифференциальной составляющей Derivative := Error - PreviousError; // Расчёт выходного значения Output := Kp * Error + Ki * Integral + Kd * Derivative; // Обновление предыдущей ошибки PreviousError := Error;