Page 1 of 1

Создание функционального блока

Posted: Thu Mar 15, 2018 6:25 am
by gawgaw2
Вопрос в создании блока.
Внутри блока пишу одну строку включить выход OUT.
В программе вставляю экземпляр этого блока
На вход EN блока подключаю М0,0 на выход OUT подключаю Q0,0
Выход OUT не включится пока на EN не попадет сигнал с M0,0
При попадании сигнала на EN выход OUT включается.
После этого даже если мы снимаем сигнал с EN выход так и останется включенным.

ВПОРОС.
Что нужно поменять в коде блока чтобы выход выключался вместе с EN

Re: Создание функционального блока

Posted: Thu Mar 15, 2018 9:02 am
by CoMod
Во первых - в настройках процессора активируй Таймерный Меркер по адресу МВ0 и впредь используй это определение МВ0 как аксиому.

Вход EN разрешает вызов функции или процедуры, но не влияет на результаты вызываемой функции.
Если ты функцию по обработке значения входа не вызываешь, то значения внутри функции не меняются = она же не вызвана на исполнение.

Re: Создание функционального блока

Posted: Fri Mar 16, 2018 10:51 am
by Dfcz
Может проблема в слове "включаю"?
Если есть слово "включить", то должно быть слово "выключить".
Ну, типа, set-reset.

Re: Создание функционального блока

Posted: Sat Mar 17, 2018 7:35 pm
by gawgaw2
Dfcz wrote:Может проблема в слове "включаю"?
Если есть слово "включить", то должно быть слово "выключить".
Ну, типа, set-reset.
Нет моя проблема в любопытстве.
У блока есть вход EN и выход ENO
В документации на сименс нашел как управлять этим ENO.
А про вход EN написано что ону булев. Ну раз он булев то КАК его можно прочитать???

Re: Создание функционального блока

Posted: Sun Mar 18, 2018 7:54 am
by Rex2701
gawgaw2 wrote:А про вход EN написано что ону булев. Ну раз он булев то КАК его можно прочитать???
Дело в том, что если твой код исполняется, то EN=1, всегда. Если же EN=0, то твой код не будет исполняться и не сможет проверить его состояние.
В общем же, при вызове блока состояние EN копируется в статусный бит BR, который можно проверить несколькими способами:
1. L STW. BR будет скопирован в 8 бит аккумулятора.
2. Использовать инструкции JBI / JNBI.