
- •Раздел 2. Программирование контроллеров 2
- •Раздел 2. Программирование контроллеров
- •2.1. Системное и прикладное программное обеспечение
- •2.2. Ос реального времени.
- •2.3. Рабочий цикл и время реакции плк
- •2.4. Классификация методов разработки по контроллеров
- •2.5. Стандарт iec 61131-3.
- •2.6. Инструментальная система программирования контроллеров iSaGraf.
- •2.7. Данные и переменные в iSaGraf
- •2.8. Языки программирования контроллеров
- •2.8.1. Язык sfc.
- •2.8.1.1. Основные графические компоненты языка.
- •2.8.1.2. Динамические правила языка sfc.
- •2.8.1.3. Описание действий внутри шагов.
- •2.8.1.4. Описание условий прикрепленных к переходу.
- •2.8.2. Язык fbd.
- •2.8.3. Язык ld.
- •2.8..4 Язык st.
- •2.8.5. Язык il
- •2.9. Программирование задач логического управления на стандартных языках.
- •2.10. Последовательность создания прикладных программ в системе iSaGraf.
- •2.11 Повторное использование кода в iSaGraf
- •2.11.1. Типы программных модулей
- •2.11.2. Определение интерфейса программных модулей
- •2.11.3. Словарь локальных переменных
- •2.11.4. Вызов программного модуля
- •2.11.4.1. Вызов функций и подпрограмм
- •2.11.4.2. Вызов функциональных блоков
- •2.11.5. Управление программами-потомками на языке sfc.
- •2.12. Библиотека iSaGraf
2.11.2. Определение интерфейса программных модулей
Параметры функциональных блоков:
может иметь много выходных параметров;
имеет всего максимум 32 параметра;
каждая копия (экземпляр) библиотечного блока (ссылка) должна иметь уникальное имя.
Параметры функций:
имеет только один выходной параметр;
может иметь до 31 параметра вызова;
всегда возвращает одно значение, имеющее то же самое имя, что и собственно функция.
Функции и подпрограммы всегда имеет один (и только один) выходной параметр, который должен иметь то же самое имя, как и функция, чтобы соответствовать соглашению языка “Си”.
Подпрограммы-потомки, написанные с использованием языка SFC, не имеют ни входных, ни выходных параметров.
Параметры возврата подпрограмм и функций
ST: параметр возврата использует то же имя, как и название подпрограммы или функции
subprog_name:=<выражение>;
IL: параметр возврата в конце вычислений должен содержаться в аккумуляторе
LD 10 ADD 20 (* величина параметра возврата = 30 *)
F
BD:
используется имя переменной с именем
параметра возврата
L
D:
используется символ обмотки с именем
параметра возврата
Примечание: переменную с именем параметра возврата (subprog_name) не нужно объявлять в словаре.
2.11.3. Словарь локальных переменных
Все типы программных модулей могут иметь локальные переменные.
Библиотечная функция или функциональный блок не могут обращаться к глобальным переменным. Начальные значения локальной переменной функции должны быть инициализированы в теле функции.
Локальные переменные функций и подпрограмм уничтожаются по завершении работы подпрограммы.
Локальные переменные функционального блока, написанного на языке МЭК, во время исполнения программы копируются для каждого блока, используемого в проекте. При выполнении блока в программе, фактически выполняется один и тот же код, но используемые данные (переменные) уникальны для каждого блока. Значения переменных блока сохраняются от одного цикла работы контроллера до другого.
2.11.4. Вызов программного модуля
2.11.4.1. Вызов функций и подпрограмм
ST:
<переменная>:=<имя подпрограммы>(<par1>, ..., <parN>);
Вызывает подпрограмму <имя подпрограммы> на языке ST, IL, LD или FBD со списком параметров <par1>, ..., <parN> и получает возвращаемое ею значение. Тип возвращаемого значения и параметров вызова должен соответствовать интерфейсу, определенному для подпрограммы.
Вызовы подпрограмм могут использоваться в любом выражении. Например: Y:=2*SubProgamm(x1,x2)+3;
IL:
При вызове подпрограммы первый параметр вызова должен находиться в аккумуляторе. Следующие параметры находятся в поле операнда и разделяются запятыми. Значение, возвращаемое подпрограммой, находится в аккумуляторе IL.
LD x1
CAL SubProgramm,x2
SFC:
Подпрограммы (написанные на языке ST, IL, LD или FBD) могут быть вызваны непосредственно из блока SFC-действий с использованием следующего синтаксиса:
ACTION(P); ACTION(N);
<результат>:=<подпрограмма>(); <результат>:=<подпрограмма>();
END_ACTION; END_ACTION;
Для вычисления условия, прикреплённого к переходу, может быть вызвана любая подпрограмма (написанная на языке FBD, LD, ST или IL). При этом результат вычисления выражения с использование подпрограммы должен быть булевым. Если функция имеет возвращаемое значение, отличное от булевого, то необходимо применять операции отношения (=, <, > и др.).
Например: (2*Podprog(x1,x2)+3)>10; или (2*Podprog(x1,x2)+3)=1;
FBD/LD:
При использовании функций в языках FBD/LD они автоматически появятся в поле выбора типа добавляемого в диаграмму блока наравне со стандартными блоками.