Версия для печати

Step7. Две логические единицы в программе. Зачем?

Дата: 2009-02-16

Добавлено: komatic

Тема: Step7

При программировании в Step7 часто возникает необходимость подать на вход функции, функционального блока или логического выражения константу (логический ноль или единицу).

Поэтому можно часто встретить в программах выделение под эту цель, ячеек памяти или реже ячеек в блоках данных. Инициализируются они по-разному, но в результате получается одно и тоже: в одной хранится логическая единица, в другой логический ноль.

В этом ничего как бы интересного нет - обычная необходимость. Но вот недавно я просматривал несколько программ и нашел, что в них используется два комплекта таких констант. Стало интересно, для чего может быть сделан второй комплект. Ответ стал ясен, когда просмотрел перекрестные ссылки на них - их небыло (ну и конечно надпись в символьном комментарии "for commissioning" тоже помогла :)).

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

Идея вроде простая, но мне, почему-то, в голову никогда не приходила, поэтому я и решил поделиться ею со всеми.

Кстати несколько видов инициализаций логических констант, которые я видел, выглядят так:

SET
= M 0.1
CLR
= M 0.0

Или еще вариант

A M 0.0
R M 0.0
AN M 0.1
S M 0.1

ON M 1.1
O M 1.0
R M 1.0
S M 1.1

Кратчайший вариант by Pash@

SET
R M 0.0
S M 0.1

Знаете еще? Киньте в комменты…





Просмотров: 5998

Комментарии к материалу

Добавлен: Pash@    Дата: 2009-11-01

SET
R M 0.0
S M 0.1

Добавлен: Alex    Дата: 2010-01-21

A M 0.0
ON M0.0
= M0.1
Независимо от M0.0 (может использоваться где угодно и для чего угодно) M0.1 всегда true.

Добавлен: Василий    Дата: 2016-05-11

FALSE:
M0.0:=M0.0 XOR M0.0;
TRUE: (Быть или не быть)
M0.1:=M0.1 OR NOT(M0.1)

Добавить комментарий

Ваше имя:

Текст комментария (4000 max):

Введите сумму с картинки: