Скачиваний:
8
Добавлен:
08.08.2022
Размер:
2.34 Mб
Скачать

5. Вызов функционального блока

Вызов целевого FB AI_eval осуществляется с помощью дополнительного вызывающего функционального блока AI_call.

С помощью такого подхода удобно создавать несколько экземпляров целевого функционального блока. Но мы создали только один, сам функциональный блок служит сервисом опроса, мы последовательно указываем ему объекты опроса и характеристики, по которым он должен определить состояния тех. параметра и датчика, а выводы сохраняются в созданную ранее структуру. Таким образом нам доступны результаты опроса всех 5 датчиков.

FUNCTION_BLOCK AI_call

VAR

I:INT;

converter : AI_eval;

END_VAR

storage.sensor[1].input := ANI.AI1;

storage.sensor[1].hi_lim := 20;

storage.sensor[1].lo_lim := 4;

storage.sensor[1].hi_lim_mes := 35;

storage.sensor[1].lo_lim_mes := -15;

storage.sensor[1].hhv := 32;

storage.sensor[1].hv := 30;

storage.sensor[1].lv := -12;

storage.sensor[1].llv := -14;

storage.sensor[2].input := ANI.AI2;

storage.sensor[2].hi_lim := 1;

storage.sensor[2].lo_lim := -1;

storage.sensor[2].hi_lim_mes := 100;

storage.sensor[2].lo_lim_mes := 0;

storage.sensor[2].hhv := 90;

storage.sensor[2].hv := 80;

storage.sensor[2].lv := 10;

storage.sensor[2].llv := 5;

storage.sensor[3].input := ANI.AI3;

storage.sensor[3].hi_lim := 5;

storage.sensor[3].lo_lim := -5;

storage.sensor[3].hi_lim_mes := 50;

storage.sensor[3].lo_lim_mes := -50;

storage.sensor[3].hhv := 45;

storage.sensor[3].hv := 40;

storage.sensor[3].lv := -40;

storage.sensor[3].llv := -45;

storage.sensor[4].input := ANI.AI4;

storage.sensor[4].hi_lim := 20;

storage.sensor[4].lo_lim := 0;

storage.sensor[4].hi_lim_mes := 5;

storage.sensor[4].lo_lim_mes := 0;

storage.sensor[4].hhv := 4.5;

storage.sensor[4].hv := 4;

storage.sensor[4].lv := 1.5;

storage.sensor[4].llv := 1.2;

storage.sensor[5].input := ANI.AI5;

storage.sensor[5].hi_lim := 10;

storage.sensor[5].lo_lim := -10;

storage.sensor[5].hi_lim_mes := 25;

storage.sensor[5].lo_lim_mes := -15;

storage.sensor[5].hhv := 9.5;

storage.sensor[5].hv := 8.5;

storage.sensor[5].lv := -8.5;

storage.sensor[5].llv := -9.5;

FOR I:= 1 TO 5 DO

converter(input:=storage.sensor[I].input,

hi_lim:=storage.sensor[I].hi_lim,

lo_lim:=storage.sensor[I].lo_lim,

hi_lim_mes:=storage.sensor[I].hi_lim_mes,

lo_lim_mes:=storage.sensor[I].lo_lim_mes,

hhv := storage.sensor[I].hhv,

hv:=storage.sensor[I].hv,

lv:=storage.sensor[I].lv,

llv:=storage.sensor[I].llv);

storage.sensor[I].state:= converter1.state;

storage.sensor[I].val:= converter1.val;

storage.sensor[I].hh:= converter1.hh;

storage.sensor[I].h:= converter1.h;

storage.sensor[I].ll:= converter1.ll;

storage.sensor[I].l:= converter1.l;

storage.sensor[I].ovH:= converter1.ovH;

storage.sensor[I].ovL:= converter1.ovL;

END_FOR;

END_FUNCTION_BLOCK

Экземпляр доп. функц. блока

DATA_BLOCK AI_EKZ AI_call

BEGIN

END_DATA_BLOCK

Соседние файлы в папке УТС 7 семестр