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

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
Post Reply
gawgaw2
Posts: 2
Joined: Wed Mar 14, 2018 2:25 pm

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

Post by gawgaw2 » Thu Mar 15, 2018 6:25 am

Вопрос в создании блока.
Внутри блока пишу одну строку включить выход OUT.
В программе вставляю экземпляр этого блока
На вход EN блока подключаю М0,0 на выход OUT подключаю Q0,0
Выход OUT не включится пока на EN не попадет сигнал с M0,0
При попадании сигнала на EN выход OUT включается.
После этого даже если мы снимаем сигнал с EN выход так и останется включенным.

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

CoMod
Site Admin
Posts: 3969
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia
Contact:

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

Post by CoMod » Thu Mar 15, 2018 9:02 am

Во первых - в настройках процессора активируй Таймерный Меркер по адресу МВ0 и впредь используй это определение МВ0 как аксиому.

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

Dfcz
Posts: 875
Joined: Tue Dec 26, 2006 5:21 am
Location: Russia

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

Post by Dfcz » Fri Mar 16, 2018 10:51 am

Может проблема в слове "включаю"?
Если есть слово "включить", то должно быть слово "выключить".
Ну, типа, set-reset.

gawgaw2
Posts: 2
Joined: Wed Mar 14, 2018 2:25 pm

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

Post by gawgaw2 » Sat Mar 17, 2018 7:35 pm

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

Rex2701
Posts: 370
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

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

Post by Rex2701 » Sun Mar 18, 2018 7:54 am

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

Post Reply