Не мешало бы и область объявления переменных описать или проект выложить. Будем гадать на кофейной гуще .
Из справки:
CAL
Вызывает функциональный блок или программу.
Применяется в IL для вызова экземпляра функционального блока, входные переменные помещаются в скобках вслед за его именем.
Для языка ST надобности в данном операторе нет. Если tpDown - это некий ФБ или программа, то в области описания переменных вы задаете:
Код:
tpDown1:tpDown; (*Объявляем экземпляр функционального блока или программы*)
а в коде пишем:
Код:
. . .
ELSE (* IF NOT b*)
tpDown1(pt=>apt;et=>aet);
IF aet=apt THEN
. . .
Если tpDown-это функция, то в коде пишем:
Код:
. . .
ELSE (* IF NOT b*)
переменная:=tpDown(pt=>apt;et=>aet);
IF aet=apt THEN
. . .
Попробуйте, думаю поможет.