Функцилнирование подпрограмм |
Типовые задачи Предыдущий Следующий |
Общие сведенияАлгоблоки в подпрограмме выполняются последовательно, в порядке их расположения (исключение — условные и безусловные переходы). Результат работы алгоблока размещается в логическом наименовании алгоблока. При холодном рестарте Контроллера все значения логических наименований алгоблоков становятся неинициализированными (исключение — алгоблоки RESULT, их значения рассчитываются до старта программы). Рассчитанное значение логического наименования алгоблока доступно только в текущей подпрограмме (если не указан префикс public). Логическое состояние или значение выходного канала в логической программе Контроллера определяется результатом алгоблока RESULT с номером соответствующего выходного канала*. Если у активного выходного канала не задан алгоблок RESULT (или упрощенная логика/формула срабатывания), то он будет находиться в неинициализированном состоянии. (Состояние/значение выходного канала можно также установить из циклической программы.) Примечание: * —логические состояния дискретных выходных каналов также формируются при использовании алгоблоков ENGINE, VALVE1 и VALVE2. Подача сигнала или значения на номер соответствующего физического выхода производится только после работы алгоблоков PHY_DSC и PHY_ANALOG с номерами соответствующих выходных каналов. (В упрощенной логике можно также установить специальный признак «Выводить на физический выход».) Результат работы вызываемой стандартной подпрограммы задается алгоблоком FUNC_RES с соответствующим значением аргумента. Сгенерированная подпрограммаСгенерированные алгоблоки автоматически создаются при использовании упрощенной логики работы (располагаются в одноименном пункте в самом конце дерева проекта). Они выполняются на каждом цикле работы Контроллера до пользовательских подпрограмм. Преобразование типовВ подпрограмме при необходимости производится автоматическое преобразование типов: •из вещественного в логический; •из логического в вещественный; •из вещественного в целый. Из вещественного в логическийВ логический ноль преобразуется вещественное число R, значение которого принадлежит интервалу (−0,1; 0,1). В логическую единицу преобразуется вещественное число R, значение которого принадлежит одному из двух лучей (−∞; −0,1] или [0,1; +∞). Из логического в вещественныйВ вещественное число 0 преобразуется логический ноль, а в вещественное число 1 — логическая единица. Из вещественного в целыйВ целое число N преобразуется вещественное число R методом округления. То есть, R преобразуется в N, если: •R[N − 0,5; N + 0,5), при R ≥ 0; •R(N + 0,5; N − 0,5], при R < 0. ИнверсияВо входах алгоблоков В выраженияхВ выражениях также можно использовать операцию инверсии (обозначается знаком «!»). Если перед знаком инверсии стоит вещественное значение, то оно сначала преобразовывается в логическое, а затем применяется операция инверсии. |