Пример (Счетчики)

Сеть 1

A "Enable"; // если нажата кнопка "Enable";

FR "Counter"; // разблокировать счетчик;

Сеть 2

A "Count up"; // если нажата кнопка "Count up";

CU "Counter"; // прибавить 1 к значению счетчика;

Сеть 3

A "Count down"; // если нажата кнопка"Count down";

CD "Counter"; // отнять 1 из значения счетчика;

Сеть 4

A "Set"; // если нажата кнопка "Set";

L C#020; // загрузить в аккумулятор число 20 в BCD коде;

S "Counter"; // запустить счетчик со значением в аккумуляторе;

Сеть 5

A "Reset"; // если нажата кнопка "Reset",

R "Counter"; // перезапустить счетчик на начальное значение

Сеть 6

A "Counter"; // если в счетчике ненулевое значение

= "Counter status";// установить 1 на выход "Counter status"

Задача. Организовать автоматическое движение и подсчет движений двух асинхронно работающих цилиндров А и В. Количество движений цилиндра выводить в таблицу переменных.

 

Т а б л и ц а 2 - Таблица символов

Символ Адрес Тип Комментарии
ДН I0.0 BOOL Датчик начального положения цилиндра А
ДК I0.1 BOOL Датчик конечного положения цилиндра А
Пуск I0.2 BOOL Кнопка Пуск
Стоп I0.3 BOOL Кнопка Стоп
СА Q0.0 BOOL Катушка управления цилиндром А
СВ Q0.1 BOOL Катушка управления цилиндром В

 

Программа:

 

A “Пуск” //если нажата Пуск

A “ДН” //если цилиндр А в начале

S “CA” //выдвинуть А

R “CB” //задвинуть В

 

A “ДК” // если цилиндр А в конце

S “CВ” //выдвинуть В

R “CА” //задвинуть А

CU C 1 //прибавить 1 к С 1

 

А “Стоп” //если нажата Стоп

R “CB” //задвинуть В

R “CA” //задвинуть А

 

LC C 1 //загрузить С1 в аккумул

T MW20 //выгрузить по адресу MW