Среда разработки Unimod PRO 2 (версия 2.3.40)
 Руководство по программированию
×

Контакты


Контакты используются для управления потоком передачи логического сигнала от левой шины питания к правой. Поступающий на контакт сигнал может передаваться на выход без изменения или инвертироваться, в зависимости от принципа работы контакта. В языке LD используются четыре вида контактов: прямой, инвертированный, контакт по переднему фронту и контакт по заднему фронту.
 
Прямой контакт.
Прямой контакт управляет передачей дискретного сигнал TRUE на выход в зависимости от состояния булевской переменной - сигнал передается, если значение булевской переменной равно TRUE, иначе на выходе FALSE.
Синтаксис на языке ST:
out_1 := in1;
out_2 := in2;
 
Инвертированный контакт.
Инвертированный контакт управляет передачей дискретного сигнала TRUE на выход в зависимости от состояния булевской переменной - сигнал передается, если значение булевской переменной равно FALSE, иначе на выходе TRUE.
Синтаксис на языке ST:
out_1 := NOT(in1);
out_2 := NOT(in2);
 
Контакт по переднему фронту.
Пропускает через себя дискретный сигнал TRUE до окончания текущего цикла контроллера, если значение булевской переменной изменяется с логического нуля в логическую единицу (FALSE → TRUE), иначе на выходе FALSE.
Синтаксис на языке ST:
//in1_prev - значение переменной in1 в предыдущем цикле
out_1 := in1 AND (NOT (in1_prev));
in1_prev := in1;
//in2_prev - значение переменной in2 в предыдущем цикле
out_2 := in2 AND (NOT (in2_prev));
in2_prev := in2;
 
Контакт по заднему фронту.
Пропускает через себя дискретный сигнал TRUE до окончания текущего цикла контроллера, если значение булевской переменной изменяется с логической единицы на логический ноль (TRUE → FALSE), иначе на выходе FALSE.
Синтаксис на языке ST:
//in1_prev - значение переменной in1 в предыдущем цикле
out_1 := NOT(in1) AND in1_prev;
in1_prev := in1;
//in2_prev - значение переменной in2 в предыдущем цикле
out_2 := NOT (in2) AND in2_prev;
in2_prev := in2;