Можно ли указать выполнение ПЛК в определенном цикле сканирования «n» в структурированном тексте?

В настоящее время я работаю над кодированием ПЛК для выполнения определенных команд, в которых я хотел бы выполнять определенные циклы сканирования.

Есть ли способ, которым я мог бы закодировать программу в структурированном тексте, где я могу помечать операторы для выполнения только в цикле сканирования «n»?

Заранее спасибо.


person Faisal Gedi    schedule 12.07.2016    source источник


Ответы (1)


Вы можете использовать счетчик, который увеличивается на единицу для каждого цикла сканирования, а затем структуру case, чтобы контролировать, какие команды активны при каждом сканировании:

VAR
  i: INT;
END_VAR

(* Main code to be executed at each scan cycle *)
(* The commands could be either actions to MAIN() or separate POUs *)
i := i + 1;
IF i > 10 THEN
  i := 1;
END_IF;

CASE i OF
  1: (* Call one command *)
    Command1(); 
  2, 4, 6, 8, 10: (* These scans all call the same command *)
    Command2();
  5: (* Call 3 different commands *)
    Command3();
    Command4();
    Command5();
  (* Scans 3, 7 and 9 do nothing *)
END_CASE;
person pboedker    schedule 14.07.2016