Вы можете свободно скачать мой перевод, читать его, исправлять ошибки, но при размещении данного материала у себя на сайте обязательно оставляйте ссылку на эту тему. Это не так уж и сложно.
ВЫДЕРЖКА ИЗ ПЕРЕВОДА писал(а):2.6 Элементы языка SFC
2.6.1 Общие сведения
Элементы SFC представляют собой средство разделения организационного блока программы программируемого контроллера в последовательность шагов и переходов, соединенных направленными связями. С каждым шагом связан набор действий, а с каждым переходом связано условие перехода.
2.6.2 Шаги
Как показано в таблице 40, шаг может быть представлен графически в виде прямоугольника, содержащим имя шага в форме идентификатора как определено в 2.1.2 или в текстовом виде конструкцией STEP...END_STEP.
Направленная связь к шагу может быть представлена графически вертикальной линией, присоединенной к верхней стороне шага. Направленная связь, исходящая из шага, может быть представлена вертикальной линией, присоединенной к нижней стороне шага. Направленные связи могут также быть представлены в текстовом виде конструкцией TRANSITION...END_TRANSITION, определенной в 2.6.3.
Флаг шага (активное или неактивное состояние шага) может быть представлен логическим значением булева структурного элемента ***.X, где *** - имя шага, как показано в таблице 40. Эта логическая переменная равна значению 1, когда соответствующий шаг является активным, и 0, когда - неактивным. Состояние этой переменной доступно для графического соединения в правой стороне шага как показано в таблице 40.
Точно так же прошедшее время ***.T, начиная с инициирования шага, может быть представлено структурным элементом типа TIME, как показано в таблице 40. Когда шаг будет деактивирован, значение прошедшего времени шага должно остаться в том же значении, когда шаг был деактивирован. Когда шаг активируется, значение прошедшего времени шага должно быть сброшено в нуль (t#0s).
Область определения имен шагов, флагов шага и времени шага должна быть локальной для организационного блока программы, в котором они определены.
Исходное состояние организационного блока программы представлено исходными значениями его внутренних переменных и выходных переменных, и его набором исходных шагов, то есть шагов, которые являются первоначально активными. У каждой сети SFC или ее текстового эквивалента должен быть один исходный шаг.
Исходный шаг может быть выделен графически двойной линией границы. При использовании набора символов, определенного в 2.1.1, исходный шаг должен быть выделен так, как показано в таблице 40.
При инициализации системы согласно 2.4.2, начальное прошедшее время по умолчанию для шагов - t#0s, и начальное состояние по умолчанию BOOL#0 для обычных шагов и BOOL#1 для исходных шагов. Однако, когда экземпляр функционального блока или программы объявляется сохраняющим (например, как в функции 3 из таблицы 33), состояния и (если поддерживается), прошедшие времена всех шагов, содержащихся в программе или функциональном блоке, должны быть обработаны также сохраняющими при инициализации системы как определено в 2.4.2.
2.6.3 Переходы
Переход представляет собой условие, посредством которого управление передается от одного или более шагов, предшествующих переходу к одному или более шагам-последователям вдоль соответствующей направленной связи. Переход должен быть представлен в виде горизонтальной линии.
Направление эволюции по направленным связям должно осуществляться от нижней стороны предшествующего шага (шагов) к верхней стороне последующего шага (шагов).
Каждый переход должен иметь связанное условие перехода, которое является результатом вычисления одного логического выражения. Условие перехода, которое всегда является истиной, должно быть представлено символом 1 или ключевым словом True.
Условие перехода может быть связано с переходом одним из следующих способов, как показано в таблице 41:
1) Записью соответствующего логического выражения на языке ST (см. главу 3.3), физически или логически совмещенной с вертикально направленной связью.
2) Цепочкой лестничной диаграммы на языке LD (см. главу 4.2), физически или логически совмещенной с вертикально направленной связью.
3) Цепочкой на языке FBD (см. глава в 4.3), физически или логически совмещенной с вертикально направленной связью.
4) Цепочкой LD или FBD, выход которой взаимодействует с вертикально направленной связью через коннектор как определено в 4.1.1.
5) Конструкцией TRANSITION...END_TRANSITION, используя язык ST. Конструкция должна состоять из:
- ключевых слов TRANSITION FROM и имени шага-предшественника (или, если есть больше чем один предшественник, заключенным в скобки списком шагов-предшественников);
- ключевого слова TO и имени шага-последователя (или, если есть больше чем один последователь, заключенным в скобки списком шагов-последователей);
- оператора присваивания (:=) и логического выражения на языке ST, определяющим условие перехода;
- завершающегося ключевого слова END_TRANSITION.
6) Конструкцией TRANSITION...END_TRANSITION, используя язык IL (см. главу 3.2). Конструкция должна состоять из:
- ключевых слов TRANSITION FROM, имени шага-предшественника (или, если есть больше чем один предшественник, заключенным в скобки списком шагов-предшественников) и двоеточия (:);
- ключевого слова TO и имени шага-последователя (или, если есть больше чем один последователь, заключенным в скобки списком шагов-последователей);
- начинающегося с новой строки списка инструкций на языке IL, результат вычисления которого определяет условие перехода;
- завершающееся ключевое слово END_TRANSITION с новой строки.
7) Использованием имени перехода в форме идентификатора справа от направленной связи. Этот идентификатор должен обратиться к конструкции TRANSITION...END_TRANSITION, определяющей один из следующих объектов, вычисление которых должно привести к присвоению логического значения к переменной, обозначенной именем перехода:
- цепочка на языках LD или FBD;
- список инструкций на языке IL;
- присвоение логического выражения на языке ST.
Область определения имени перехода должен быть локальным для организационного блока программы, в котором расположен переход.
2.6.4 Действия
Нуль или больше действий должны быть связаны с каждым шагом. Шаг, у которого нет связанных действий, нужно рассматривать как имеющий функцию WAIT, то есть ожидающий, когда условие исходящего перехода станет истиной.
Действие может иметь форму:
- булевой переменной,
- набора инструкций на языке IL, определенном в главе 3.2,
- набора операторов на языке ST, определенном в главе 3.3,
- набора цепочек на языке LD, определенном в главе 4.2,
- набора цепочек на языке FBD, определенном в главе 4.3,
- диаграммы SFC, организованной как определено в главе 2.6.
Действия должны быть объявлены через один или более механизмов, определенных в подпункте 2.6.4.1, и должны быть связаны с шагами с помощью текстовых тел шагов или графических блоков действий, как определено в подпункте 2.6.4.2.
Подробности схематического представления действия определены в подпункте 2.6.4.3. Управление действиями должно быть выражено квалификаторами действия так, как определено в подпункте 2.6.4.4.