
Приложение D: Библиотеки CoDeSys
CoDeSys V2.3 10-64
Входы IN, HIGH и LOW типа INT, выходы O, U и IL типа BOOL.
Если значение на входе IN:
превышает предел HIGH выход O = TRUE
меньше предела LOW выход U = TRUE
лежит в пределах между LOW и HIGH (включительно) выход IL = TRUE
Пример FBD:
Библиотека AnalyzationNew.lib
Данная библиотека содержит модули для анализа выражений в SFC. Если сложное выражение да-
ет FALSE, то библиотека позволяет уточнить, какие компоненты условного выражения дали такой
результат. Существует специальный флаг SFCErrorAnalyzationTable, механизм его работы неявно
использует данные функции для анализа условий переходов.
Пример условного выражения:
b OR NOT(y < x) OR NOT (NOT d AND e)
Во всех модулях используются следующие переменные:
InputExpr: BOOL, анализируемое выражение
DoAnalyze: BOOL, TRUE запускает анализ
ExpResult: BOOL, текущее значение выражения
Функции:
AnalyzeExpression возвращает строку, содержащую компоненты выражения, дающие в итоге зна-
чение FALSE. Для этого служит вспомогательная функция AppendErrorString добавляющая ком-
поненты, разделенные символом "|".
Выходная строка OutString (тип STRING) содержит результат (например: y < x | d).
Функция AnalyseExpressionTable записывает компоненты выражения, дающие в итоге значение
FALSE, в массив. Для каждого компонента заполняется структура ExpressionResult, содержащая
наименование, адрес, комментарий и текущее значение.
OutTable: ARRAY [0..15] OF ExpressionResult;
Например:
AnalyseExpressionCombined совмещает функции AnalyzeExpression и AnalyseExpressionTable.