PDA

Просмотр полной версии : Очень странная ошибка в кодесит с тригером.



Serhioromano
24.06.2016, 14:32
Предположим у меня есть код который включает и выключает переменную по нажатии одной и тойже кномки.

25136

Где envKey это системная переменная ПЛК73 для кнопок а keyStart это бит кнопки Старт. Это полностью рабочая схема. Но вот если я захочу однообразную задачу нажатия на кнопку вынести в функцию получается функция.

25137

То тогда в программе я использую это

25138

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

Что не так делаю?

petera
24.06.2016, 14:52
Предположим у меня есть код который включает и выключает переменную по нажатии одной и тойже кномки.

25136

Где envKey это системная переменная ПЛК73 для кнопок а keyStart это бит кнопки Старт. Это полностью рабочая схема. Но вот если я захочу однообразную задачу нажатия на кнопку вынести в функцию получается функция.

25137

То тогда в программе я использую это

25138

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

Что не так делаю?

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

Serhioromano
24.06.2016, 14:55
Я так и думал, но не хотел блок что бы не плодить переменные в основной программе.

Но у меня вопрос. Какая именно переменная не запоминается? У меня вроде одна глобальная, одна входная, и одна входная. Внутри нет ни каких переменных. Можно поподробнее на каком именно этапе все рушится?

Я правильно сделал вывод из функции? В переменнуд одноименнуд функции? Просто там есть еще один блок называется return я думал сначала его нужно использовать. Он тогда зачем.

petera
24.06.2016, 15:01
Я так и думал, но не хотел блок что бы не плодить переменные в основной программе.

Но у меня вопрос. Какая именно переменная не запоминается? У меня вроде одна глобальная, одна входная, и одна входная. Внутри нет ни каких переменных. Можно поподробнее на каком именно этапе все рушится?

Я правильно сделал вывод из функции? В переменнуд одноименнуд функции? Просто там есть еще один блок называется return я думал сначала его нужно использовать. Он тогда зачем.

Как это нет внутри переменных?
А это
25139
что по Вашему не переменная?
Вот ее состояние и не запоминается.

ЗЫ.
А ведь вся фишка реализации МОЕГО импульсного реле именно в R_TRIG http://www.owen.ru/forum/showthread.php?t=13655&p=94449&viewfull=1#post94449

Serhioromano
24.06.2016, 18:08
Поня. Значит буду делать блок. Спасибо за пояснение.