А если просто удерживать сигнал с входа на время больше периода опроса, а затем его сбрасывать если он взводился, в итоге облако должно его опросить если сигнал был.
Вид для печати
Как правило, нужен макрос SelChgI
Вложение 52853
Смотреть пункт 3 здесь, Обмен битовыми (BOOL) переменными с ПР Slave
Так я написал об этом.
Период опроса 5 секунд. Я переменную по сигналу взвожу и держу 10 секунд. Если связь без сбоев - облако считывает его и на графике видно моменты, когда событие наступало и сколько держалось. Красиво, удобно, понятно.
Но если потеря пакетов будет, или роутер перезагрузится или еще что-то, если перерыв связи дольше 10 секунд - облако увидит что было 0 и сейчас 0, событие пропущено будет.
О факте события хочется знать и желательно, во сколько оно было. Но события чаще всего штатные и могут быть несколько раз в сутки, квитировать каждое событие (выставлением флага в ПР и ручным сбросом, записывая переменную) утомительно и не хочется. Достаточно возможности посмотреть журнал, если понадобится. Но хочется, если понадобиться, точно знать - было или нет событие в выбранный промежуток времени.
Я пока пришел к следующему решению, но мне кажется оно сложным и некрасивым каким-то, может можно проще. Потому пришел посоветоваться, может я переусложняю.
1) Переменная удерживается минимум 10 секунд, при периоде опроса 5 секунд она должна считаться, потом можно посмотреть график, во сколько было, сколько длилось. При штатной работе всё красиво, захотел - посмотрел график одной переменной, другой, видно когда наступали события, сколько длились.
2) Пропадание связи с устройством - событие редкое и, вроде как, нештатное. Поэтому по нему облако генерирует уведомление. То есть о том, что облако могло пропустить событие я вроде как знаю.
3) На такой случай локально нужно вести журнал, во сколько наступало и какое событие. При пропадании связи - я топаю ножками к устройству и смотрю локально. Ведь при пропадании связи всё равно, скорее всего, придется топать ножками и разбираться, что случилось, так что такой подход устраивает.
4) Но если связь пропадала и появилась (проблемы у провайдера/перезагрузка роутера/другое), то хочется знать, надо ли все же топать ножками к устройству и смотреть локально, или ничего в это время не было, сейчас всё работает и топать не нужно. Вот тут бы пригодилось какой-то признак, что событие было считано облаком. Но такого признака нет, как я понимаю.
5) Пока писал, появилась мысль. Можно параллельно вести счетчик событий. Наступление события - увеличение значения на 1. Если связь пропадала и появилась, то можно сравнить значения в облаке на момент пропадания и момент появления связи. Будет видно, были ли события между опросами и даже сколько их было. И понять, надо ли топать к журналу локальному и смотреть что было и во сколько.
p.s. Весной смотрел ваши выпуски с лайфхаками, но уже подзабыл. На выходных сейчас как раз будет время, еще раз просмотрю. Спасибо, что делаете их.
Как часто у вас события могут происходить? Как то делал архив на ПР200 на 31 событие с меткой времени, короче, когда связь наладится тогда и считаете события, разумеется размер архива должен умещать максимально возможное количество событий за время планируемого вами пропадания связи, всё!
Несколько раз в сутки, наверное. 31 событие перекрывает точно.
Я видел в темах журналы событий, ваш, скорее всего, тоже. Но пока не делал еще у себя, только задумался об этом.
А я что-то не понимаю, можно через облако считывать не текущее значение переменной, а архив событий? Это как происходит?
Если в теме какой-то описано, как это работает, поделитесь ссылкой пожалуйста. :confused:
Мне кажется можно и архив считать, но не знаю как там чего в клауде, никогда не имел с ним дела, а для ПР я как то так делал:
Вложение 52854
Интересно. Спасибо.
Автоматом облако ничего не сможет скачать за пропущенный период, после появления связи. Только количество событий в журнале просмотреть, поменялось или нет. Но вручную записывая переменную по сети, можно просмотреть удаленно журнал. Ножками в любом случае теперь топать не придется. На выходных сяду покопаться.
я тоже делал такой журнал с меткой времени. В Scada не слежу и не удерживаю сигнал 10 сек. Просто читаю эту переменную с кодом ошибок и еще две с меткой времени. Даже если пропадет связь, изменится время и код ошибки (события) как хотите назовите. Можно наверное добавить еще переменную с номером ячейки, если это следующая ячейка, топать не надо, если через одну и далее, то топать к ПР200 и смотреть руками.Цитата:
3) На такой случай локально нужно вести журнал, во сколько наступало и какое событие. При пропадании связи - я топаю ножками к устройству и смотрю локально. Ведь при пропадании связи всё равно, скорее всего, придется топать ножками и разбираться, что случилось, так что такой подход устраивает.
Пожалейте память ПР. Потому что по Modbus штатными средствами можно читать только регистры и вам придется каждую ячейку архива писать в отдельный регистр. Практически ни у кого не видел реализации пользовательских команд Modbus (да, да, есть и такие) а уж узреть это у Овен наверное не придется никогда.Цитата:
А я что-то не понимаю, можно через облако считывать не текущее значение переменной, а архив событий? Это как происходит?
Если в теме какой-то описано, как это работает, поделитесь ссылкой пожалуйста.
А кстати да, подавая команды в определенный регистр можно считывать значение из памяти... Но в реализации это будет наверное не совсем просто...
Доброго времени, подскажите пожалуйста, могу ли я использовать для подключения реле к rs-485 использовать преобразователь интерфейсов АС4-М и будет ли через него устанавливаться связь с owen logic и ops сервер?