Не смог найти в описаниях ограничений работы ФБ. То есть - подпрограмма исполняется в контроллере в случае, если задействованы входные и выходные параметры с внешними условиями, НО как только необходимо произвести какие-либо дополнительные преобразования, использовать локальные переменные - ФБ выдает 0.
Например, работает конструкция:
а такая же с константой уже не работает:Код:PROGRAM MAIN_PROGRAM VAR_INPUT in:word; END_VAR VAR_OUTPUT out:word; END_VAR VAR i:word; END_VAR i:=in; out:=Mul(in,i) END_PROGRAM
при этом ошибок не генерится, предупреждений не выводится. При отладке, к слову, все работает.Код:.... i:=in; out:=Mul(2,i)
из хелпа на ST: ST стандарта МЭК-61131-3. Функциональный блок может исполняться как в компьютере, так и в контроллере (применимость для конкретных контроллеров нужно уточнять в службе технической поддержки).
P.S.: На 2013-07-02 проблема зафиксирована в техподдержке InSat и подтверждена. будут разбираться. отпишусь.


Ответить с цитированием