ISaGRAF. Version 3.4

         

Основные контакты и витки языка LD


Для представления контактов используются символы:

- Прямой контакт

- Инвертированный контакт

- Контакт с определением фронта

Для представления витков используются символы:

- Прямой виток

- Инвертированный виток

- SET виток

- RESET виток

- Виток с определением фронта

Имя переменной пишется над этими графическими символами:

        Прямой контакт

Прямой контакт позволяет производить логические операции между состояниями линий и логическими переменными.

Состояние линии соединения на правом конце - это логическое И(AND) состояния левого конца и значения переменной контакта.



(* Пример использования ПРЯМЫХ *)

(* ST Эквивалент: *)

output1 := input1 AND input2;

        Инвертированный контакт

Инвертированный контакт позволяет производить логические операции между состоянием линии и отрицанием логической переменной.

Состояние линии соединения на правом конце - это логическое И(AND) состояния левого конца и  отрицания значения переменной контакта.

(* Пример использования ИНВЕРТИРОВАННЫХ контактов*)

(* ST Эквивалент: *)

output1 := NOT (input1) AND NOT (input2);

         Контакт с определением переднего фронта

Этот контакт позволяет производить логические операции между состоянием линии и  логической переменной.

Состояние линии соединения на правом конце принимает значение TRUE, когда значение на левом конце - TRUE и  значения переменной контакта меняется с FALSE на TRUE. Во всех остальных случаях оно устанавливается равным FALSE.

(* Пример использования контактов ПЕРЕДНЕГО ФРОНТА*)

(* ST Эквивалент: *)

output1 := input1 AND (input2 AND NOT (input2prev));

(* input2prev - значение input2 на предыдущем цикле *)

        Контакт с определением заднего фронта

Этот контакт позволяет производить логические операции между состоянием линии и  логической переменной.

Состояние линии соединения на правом конце принимает значение TRUE когда значение на левом конце - TRUE и  значения переменной контакта меняется с TRUE на FALSE. Во всех остальных случаях оно устанавливается равным FALSE.




(* ST Эквивалент: *)

output1 := input1 AND (NOT (input2) AND input2prev);

(* input2prev - значение input2 на предыдущем цикле *)

        Прямой виток


Прямой виток дает логический выход состояния  линии соединения.



Переменной витка приписывается значение состояния левой лини соединения. Состояние левого соединения распространяется на правое соединение. Правое соединение может быть связано с правым вертикальным силовым рельсом.

Соответствующая логическая переменная должна быть выходом или внутренней.

Соответствующее имя может быть именем программы (только для подпрограмм). Это соответствует присвоению возвращаемой величины подпрограммы.



(* ST Эквивалент: *)

output1 := input1;

output2 := input1;

       
Инвертированный виток

Инвертированный виток дает логический выход отрицания состояния  линии соединения.



Переменной витка приписывается отрицание значение состояния левой линии соединения. Состояние левого соединения распространяется на правое соединение. Правое соединение может быть связано с правым вертикальным силовым рельсом.

Соответствующая логическая переменная должна быть выходом или внутренней.

Соответствующее имя может быть именем программы (только для подпрограмм). Это соответствует присвоению возвращаемой величины подпрограммы.



(* ST Эквивалент: *)

output1 := NOT (input1);

output2 := input1;

       
SET виток

SET виток дает логический выход

состояния  линии соединения.



Соответствующая переменная принимает значение TRUE, когда состояние левой линии связи становится равным TRUE. Переменная удерживает это состояние до тех пор, пока она не будет инвертирована витком RESET. Состояние левого соединения распространяется на правое соединение. Правое соединение может быть связано с правым вертикальным силовым рельсом.

Соответствующая логическая переменная должна быть выходной или внутренней.



(* ST Эквивалент: *)

IF input1 THEN

   output1 := TRUE;

END_IF;

IF input2 THEN

   output1 := FALSE;

END_IF;

       
RESET виток

RESET виток дает логический выход состояния  линии соединения.





Соответствующая переменная принимает значение FALSE, когда состояние левой линии связи становится равным TRUE. Переменная удерживает это состояние до тех пор, пока она не будет инвертирована витком SET. Состояние левого соединения распространяется на правое соединение. Правое соединение может быть связано с правым вертикальным силовым рельсом.

Соответствующая логическая переменная должна быть выходной или внутренней.



(* ST Эквивалент: *)

IF input1 THEN

   output1 := TRUE;

END_IF;

IF input2 THEN

   output1 := FALSE;

END_IF;

        Виток с определением переднего фронта


“Положительный” виток дает логический выход состояния  линии соединения. Этот тип витка имеется только в “быстром” релейном редакторе (Quick ladder).



Соответствующая переменная принимает значение TRUE, когда состояние левой линии связи меняет значение с FALSE на TRUE. Во всех остальных случаях переменная принимает значение FALSE. Состояние левого соединения распространяется на правое соединение. Правое соединение может быть связано с правым вертикальным силовым рельсом.

Соответствующая логическая переменная должна быть выходной или внутренней.



(* ST Эквивалент: *)

IF (input1 and NOT(input1prev)) THEN

   output1 := TRUE;

ELSE

   output1 := FALSE;

END_IF;

(* input1prev - значение input1 на предыдущем цикле *)

        Виток с определением заднего фронта


“Отрицательный” виток дает логический выход состояния  линии соединения. Этот тип витка имеется только в “быстром” релейном редакторе (Quick ladder).



Соответствующая переменная принимает значение TRUE, когда состояние левой линии связи меняет значение с TRUE на FALSE. Во всех остальных случаях переменная принимает значение FALSE. Состояние левого соединения распространяется на правое соединение. Правое соединение может быть связано с правой вертикальным силовым рельсом.

Соответствующая логическая переменная должна быть выходной или внутренней.

(* Пример использования “Отрицательного” витка  *)



(* ST Эквивалент: *)

IF (NOT(input1) and input1prev) THEN

   output1 := TRUE;

ELSE

   output1 := FALSE;

END_IF;

(* input2prev - значение input2 на предыдущем цикле *)


Содержание раздела