This is topic Принудительная запись в OPC тег in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
Здравствуйте! Как я понимаю в выходной OPC Тег значение привязанного канала пишется только при его изменении, а в противном случаем ничего не произойдет, мне же надо писать в любом случае. Например если я в ST программе напишу чето вроде Channel_Out_In = false; но при этом в этом канале итак записан false он все ровно должен инициировать запись в OPC сервер (Channel_Out_In - канал, привязанный к выходному OPC тегу). Проще говоря, как принудительно инициировать запись в выходной OPC тег.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
В релизе 6.07.7 можно каналу, который передает значение в OPC-сервер, поставить цикл пересчета CALC EXE.
Posted by Sheon (Участник № / Member № 5164) on :
Да, но мне не надо чтоб он в OPC сервер писал при каждом пересчете канала (если я правильно понял что это означает), мне надо чтоб он туда писал только если есть команда из программы (как указанно в посте выше). Просто, если это присваивание стоит под условием, тогда и в канал при каждом пересчете экрана значение писаться не будет, а вот если по условию туда провалится, тогда надо писать из канала в OPC тег, даже если значение при этом не меняется. а если я в атрибут канала EXEC(Отработать) пошлю 1, он не инициирует случаем запись в тег?
Попробую приблизительно обрисовать ситуацию. Есть переменная OPC (bool), которую надо сбрасывать в 0 если она устанавливается. Для этого я создал входной (чтение) и выходной (запись) тег, и привязал их к каналам. в программе постоянно слушаю входной канал, и если он true тогда в выходной канал пишем 0, но так как кроме 0 я в выходной канал ничего не пишу естественно значение при присваивании значения false у него не меняется и по этому собственно эта единица не сбрасывается. Сей час я это обошел за 2 такта пересчета канала: 1. Если в входном канале есть 1 и некоторый флаг 0, то в выходной канал и флаг пишем 1 2. Если в входном канале есть 1 и некоторый флаг 1, то в выходной канал и флаг пишем 0
Я понимаю что это до безобразия кривой метод, но пока что я другого ничего не придумал.
И еще такой вопрос: В параметрах узла, во вкладке Архивы есть такой параметр Период сохранения, Он означает что, в архив из КЭШ будут сохраняться срез данных каждые 30 сек, или все таки некоторый набор данных накопленный за 30 сек в КЭШе?
Posted by Nico (Участник № / Member № 5342) on :
(если я правильно понял что это означает) НЕ ПРАВИЛЬНО любая запись во вход канала OUTPUT c цикл ом пересчета CALC EXE инициирует посылку выходного значения источнику-приемнику
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Утверждение "писал при каждом пересчете канала" не соответствует истине. Такой канал OUT будет ОДНОКРАТНО передавать ЛЮБОЕ значение, переданное ему на ВХОД.