Страница 1 из 1

Обманул меня Weintek с журналом событий

СообщениеДобавлено: 06 фев 2024, 13:55
IBAH
План был такой:
Панель МТ8051, протокол Модбас RTU zero
В контроллере счетчик, сбрасывается флагом от панели.
В панели "Битовая кнопка" записывает флаг=1. Контроллер обнаруживает флаг==1, сбрасывает флаг и сбрасывает счетчик.
Хотел чтобы при нажатии на кнопку, происходила запись в журнал событий и сохранялось значение счетчика перед сбросом.
В журнале определил триггер срабатывания флаг(0->1).

В журнал записываются данные ПОСЛЕ СБРОСА счетчика, уже сброшенные значения счетчика, то есть 0!!!!
Нахрена мне нужен такой журнал событий!!!! Который делает запись через несколько десятков миллисекунд после события!!

Что делать?

Re: Обманул меня Weintek с журналом событий

СообщениеДобавлено: 06 фев 2024, 15:15
8bit
IBAH писал(а):
Что делать?



переходить на Codesys

Re: Обманул меня Weintek с журналом событий

СообщениеДобавлено: 06 фев 2024, 16:11
IBAH
8bit писал(а):
IBAH писал(а):Что делать?

переходить на Codesys


У меня конкретная панель, конкретный проект, конкретная задача. Куда я воткну Кодесис?!

Обозначил конкретную проблему. Задал конкретный вопрос. Как сделать сохранение записи журнала, в момент срабатывания триггера?

Видимо на этом форуме очень мало специалистов....

Re: Обманул меня Weintek с журналом событий

СообщениеДобавлено: 06 фев 2024, 17:01
dimensy
Кнопкой запускаете макрос, где сначала считываете значение, а потом уже сбрасываете

Re: Обманул меня Weintek с журналом событий

СообщениеДобавлено: 06 фев 2024, 17:16
IBAH
dimensy писал(а):Кнопкой запускаете макрос, где сначала считываете значение, а потом уже сбрасываете

Думал об этом... Не очень уверен в многозадачности...

Выполнение макросов многозадачно?
DELAY() передает управление ОС? или тупо блокирует поток?

Re: Обманул меня Weintek с журналом событий

СообщениеДобавлено: 06 фев 2024, 17:26
dimensy
Delay тупо блокирует выполнение макроса, но вам это зачем? Я в проектах использую кучу макросов, некоторые крутятся постоянно, некоторые обрабатываются по событию. Меня быстродействие устраивает.

Re: Обманул меня Weintek с журналом событий

СообщениеДобавлено: 06 фев 2024, 17:41
IBAH
dimensy писал(а):Delay тупо блокирует выполнение макроса, но вам это зачем?

То есть останавливает выполнение текущего макроса и передает управление операционной системе? или блокирует выполнение, процессор ничего не делает и ждет окончания DELAY()

Я уже написал. Вроде, ничего... работает.

во время DELAY() обмен по 485 продолжает идти

Re: Обманул меня Weintek с журналом событий

СообщениеДобавлено: 06 фев 2024, 17:45
dimensy
Блокирует выполнение только данного макроса, остальное (в том числе и другие макросы) работает.

Re: Обманул меня Weintek с журналом событий

СообщениеДобавлено: 06 фев 2024, 17:55
VanMo
IBAH писал(а):Видимо на этом форуме очень мало специалистов....

Вы приходите сюда за помощью, но просите ее без уважения...
Здесь Вам никто ничем не обязан.

Панель записывает флаг в контроллер, контроллер сбрасывает свой регистр со счетчиком. По этому же флагу в панели формируется событие, в тексте которого должно быть значение счетчика.
Объект события запрашивает данные указанного регистра счетчика из контроллера. Естественно запрос данных счетчика происходит после запроса на запись бита. И кто тут кого обманул?

Очевидно, счетчик нужно сбрасывать после считывания, а не до.
Можно запускать событие другим битом, а сброс счетчика делать битом уведомления события.