Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Здравствуйте! Как я понимаю в выходной OPC Тег значение привязанного канала пишется только при его изменении, а в противном случаем ничего не произойдет, мне же надо писать в любом случае. Например если я в ST программе напишу чето вроде Channel_Out_In = false; но при этом в этом канале итак записан false он все ровно должен инициировать запись в OPC сервер (Channel_Out_In - канал, привязанный к выходному OPC тегу). Проще говоря, как принудительно инициировать запись в выходной OPC тег.
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
В релизе 6.07.7 можно каналу, который передает значение в OPC-сервер, поставить цикл пересчета CALC EXE.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Да, но мне не надо чтоб он в OPC сервер писал при каждом пересчете канала (если я правильно понял что это означает), мне надо чтоб он туда писал только если есть команда из программы (как указанно в посте выше). Просто, если это присваивание стоит под условием, тогда и в канал при каждом пересчете экрана значение писаться не будет, а вот если по условию туда провалится, тогда надо писать из канала в OPC тег, даже если значение при этом не меняется. а если я в атрибут канала EXEC(Отработать) пошлю 1, он не инициирует случаем запись в тег?
Попробую приблизительно обрисовать ситуацию. Есть переменная OPC (bool), которую надо сбрасывать в 0 если она устанавливается. Для этого я создал входной (чтение) и выходной (запись) тег, и привязал их к каналам. в программе постоянно слушаю входной канал, и если он true тогда в выходной канал пишем 0, но так как кроме 0 я в выходной канал ничего не пишу естественно значение при присваивании значения false у него не меняется и по этому собственно эта единица не сбрасывается. Сей час я это обошел за 2 такта пересчета канала: 1. Если в входном канале есть 1 и некоторый флаг 0, то в выходной канал и флаг пишем 1 2. Если в входном канале есть 1 и некоторый флаг 1, то в выходной канал и флаг пишем 0
Я понимаю что это до безобразия кривой метод, но пока что я другого ничего не придумал.
И еще такой вопрос: В параметрах узла, во вкладке Архивы есть такой параметр Период сохранения, Он означает что, в архив из КЭШ будут сохраняться срез данных каждые 30 сек, или все таки некоторый набор данных накопленный за 30 сек в КЭШе?
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
(если я правильно понял что это означает) НЕ ПРАВИЛЬНО любая запись во вход канала OUTPUT c цикл ом пересчета CALC EXE инициирует посылку выходного значения источнику-приемнику
Сообщения / Posts 875 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Утверждение "писал при каждом пересчете канала" не соответствует истине. Такой канал OUT будет ОДНОКРАТНО передавать ЛЮБОЕ значение, переданное ему на ВХОД.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |