Работа с макросами

Andy_V
Сообщения: 159
Зарегистрирован: 19 окт 2011, 17:21

Работа с макросами

Сообщение Andy_V »

Всем привет.
Коллеги помогите с легким вопросом, что-то отупел совсем.
В макросе надо сделать следующее: читаем 2 реле: М75 и М75, потом если одно из них True, то замкнуть $0.4, если нет то не замыкаем $0.4. Как только с операторами IF не игрался, панель ошибку при компиляции выдают. Букварь, что-то подобный пример не описывает, там есть только со переменными типа word только.

pkl
Сообщения: 1096
Зарегистрирован: 23 ноя 2010, 10:08

Re: Работа с макросами

Сообщение pkl »

Вы хоть пример кода выложите, что делаете и когда ошибка возникает.

Andy_V
Сообщения: 159
Зарегистрирован: 19 окт 2011, 17:21

Re: Работа с макросами

Сообщение Andy_V »

pkl писал(а):
28 авг 2020, 15:13
Вы хоть пример кода выложите, что делаете и когда ошибка возникает.
Ах да, ну вот например:
IF {SE_LOS}5@M77 == ON
BITON $0.4
ELSE
BITOFF $0.4
ENDIF
Вот так работает.
А мне надо добавить еще одно реле M78 и создать условие OR между ними.
Всяко пробовал, при компиляции ошибка в этой линии.
Например, вот так пробовал:
IF ({SE_LOS}5@M77 | {SE_LOS}5@M77) == ON
BITON $0.4
ELSE
BITOFF $0.4
ENDIF
Ошибка в линии IF.... Как это сделать правильно с OR и AND до кучи...

pkl
Сообщения: 1096
Зарегистрирован: 23 ноя 2010, 10:08

Re: Работа с макросами

Сообщение pkl »

Ошибка синтаксическая? Или компилятор не говорит?
IF ({SE_LOS}5@M77 | {SE_LOS}5@M77) == ON
Точно М77 ? Писали же М78

Andy_V
Сообщения: 159
Зарегистрирован: 19 окт 2011, 17:21

Re: Работа с макросами

Сообщение Andy_V »

pkl писал(а):
28 авг 2020, 15:50
Ошибка синтаксическая? Или компилятор не говорит?
Если нажимаю внутри окна написания макроса кнопку Syntax check, то все нормально. А вот когда выполняется компиляция всего проекта, пишет: Error, Line 30(-109-Address format in macro in incorrect).

Andy_V
Сообщения: 159
Зарегистрирован: 19 окт 2011, 17:21

Re: Работа с макросами

Сообщение Andy_V »

pkl писал(а):
28 авг 2020, 15:50
Ошибка синтаксическая? Или компилятор не говорит?
IF ({SE_LOS}5@M77 | {SE_LOS}5@M77) == ON
Точно М77 ? Писали же М78
А ну я ошибся просто. Да в принципе не важно какие реле, главное что они разные и нужна логика OR и AND (в последствии).

tvent
Сообщения: 869
Зарегистрирован: 11 янв 2011, 17:02

Re: Работа с макросами

Сообщение tvent »

Andy_V писал(а):
28 авг 2020, 15:26

Например, вот так пробовал:
IF ({SE_LOS}5@M77 | {SE_LOS}5@M77) == ON
BITON $0.4
ELSE
BITOFF $0.4
ENDIF
Ошибка в линии IF.... Как это сделать правильно с OR и AND до кучи...
В IF Допускается только одно условие ((

Andy_V
Сообщения: 159
Зарегистрирован: 19 окт 2011, 17:21

Re: Работа с макросами

Сообщение Andy_V »

В общем удалось только такую конструкцию построить:
IF {SE_LOS}5@M77 == OFF
IF {SE_LOS}5@M78 == OFF
BITOFF $0.4
ENDIF
ENDIF
IF {SE_LOS}5@M77 == ON
BITON $0.4
ENDIF
IF {SE_LOS}5@M78 == ON
BITON $0.4
ENDIF
Мне кажется, что это как-то более изящно можно сделать, я про условие OR?

tvent
Сообщения: 869
Зарегистрирован: 11 янв 2011, 17:02

Re: Работа с макросами

Сообщение tvent »

Andy_V писал(а):
01 сен 2020, 07:53
Мне кажется, что это как-то более изящно можно сделать, я про условие OR?
ИМХО, более изящно, если бы вся логика осталась у ПЛК,а Панель только бы отображала состояние процесса.

pkl
Сообщения: 1096
Зарегистрирован: 23 ноя 2010, 10:08

Re: Работа с макросами

Сообщение pkl »

Может до условия сделать OR , а условием проверять на True или False результат?

Ответить