This is topic Принудительная запись в OPC тег in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/001013.html

Posted by Sheon (Участник № / Member № 5164) on :
 
Здравствуйте!
Как я понимаю в выходной 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 будет ОДНОКРАТНО передавать ЛЮБОЕ значение, переданное ему на ВХОД.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2