This is topic Использование атрибутов канала в программе in forum Языки программирования в TRACE MODE 6 / Algorithm Programming Languages at Форум TRACE MODE: техническая поддержка.


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

Posted by Grigorovskih (Участник № / Member № 1915) on :
 
Здравствуйте Господа!

Подскажите пожалуйста как всё таки можно прочитать атрибут 4 канала float чтоб использовать в программе значение его двух битов аппаратной и программной достоверностей, простая привязка аргумента программы к этому атрибуту результатов не даёт, использование функции "getAttributeI" тоже ни чё не даёт, хотя с её помощью читаются другие атрибуты без проблем.
Если привязать аргумент экрана к этому атрибуту, то при отображении текстовым полем с численным форматом отображаются значения 0, 1 и 2, 3, а с форматом по умолчанию как в профайлере _T, _F и !T? !F соответственно. В программе всегда 0 - невероятная какая то ситуация [prey / молящийся]
 
Posted by Grigorovskih (Участник № / Member № 1915) on :
 
Ещё добавлю, что при вышеизложеных комбинациях пришлось перебирать всевозможные типы аргументов к которым привязан этот атрибут...
 
Posted by Grigorovskih (Участник № / Member № 1915) on :
 
Ещё кое что:
Значение я всё же смог получить но только два варианта 0 или 2 (при посылке в работающем профайлере в 52 атрибут 0 или 1 соотв), т.е. это отображается старший бит атрибута который связан с атрибутом программной достоверности канала - 52. А младший бит равный 1 (т.е. значени 1 или 3 атрибута 4 ) так и неудаётся получить ни какими способами...
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Мы перепроверили данную ситуацию. Атрибут 4 каналов FLOAT и НЕХ передаются в программу без каких-либо ограничений
 
Posted by Grigorovskih (Участник № / Member № 1915) on :
 
Я тогда Вам проект пришлю для проверки!
 
Posted by Grigorovskih (Участник № / Member № 1915) on :
 
Мы разобрались в чём дело! Но проблему не решили. Всё работает, когда вызов программы которая читает 4 атрибут осуществляется отдельным каналом CALL, но если мы делаем трансляцию т.е. вызываем этим же каналом программу и привязываем атрибут 4 к аргументу этого канала ничего не выходит, причём другие атрибуты нормально читаются, проблема только с этим!
Проверьте пожалуйста именно так реализовать чтение этого атрибута, у Вас получится такая же картина!
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
При аппаратной недостоверности канала не выполняются его внутренние алгоритмы и трансляция. (Руководство пользователя, "Особенности пересчета и отработки каналов")
 
Posted by Grigorovskih (Участник № / Member № 1915) on :
 
Ну Господа, извиняйте тогда за невнимательность [Неодобрение / Frown]
Просто была одна идея хорошая - реализовать для каждого канала, значение которого так или иначе воспроизводится на шаблонах экранов, вывод в этот шаблон через аргумент либо реального значения либо сообщения короткого типа error и т.п.. Реализовали всё работает (привязали к аргументу экрана комментарий, формат текста сделали "по умолчанию", в этот комментарий передавали аппаратное значение канала, а в случае той или иной недостоверности новый текст), но только мы хотели не добавлять каналы для этой цели!
Подскажите пожалуйста тогда есть ли вариант, при прочих равных условиях, как можно "зацепить" недостоверность, может используя ещё какой нибуть атрибут этого же канала, но при использовании режима трансляции [Недоумение / Confused]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Если у Вас канал получил признак недостоверности трансляция вообще не будет выполнятся какой атрибут Вы не используйте. Выход собрать все недостоверности в одну программу и вызывать ее каналом Call. Думается, что один лишний канал погоды не испортит.
 
Posted by Grigorovskih (Участник № / Member № 1915) on :
 
К стати мысль такая по реализации такого механизма, возникла не от "хорошей жизни", а от того, что в TM при аппаратной недостоверности возникает эффект "замораживания" значения канала, не смотря на то что эта недостоверность имеет место быть! Оператору в такой ситуации отображать ничего нельзя, даже ноль, он же незнает что на самом деле у него происходит с процессом!
Так что, мне кажется, что в по этому поводу надо придумать выгодный вариант реализации адекватной реакции на какую либо недостоверность. Посимафорить на мониторе разными мигающими элементами не достаточно, информативней будет отобразить информацию прямо в текстовом поле где оператор отслеживает параметр.
 
Posted by Grigorovskih (Участник № / Member № 1915) on :
 
Канал CALL - ну как вариант впринципе, только не очень удобно, куча аргументов, запутаться можно...
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Можно сделать поверх текстового поля еще одно точно такое же только без заливки и контура, на котором при получении 1 из 4 атрибута канала будет появляться надпись и заливка. Отображать в реальном значнии, как Вы предлагаете нецелесообразно.
 
Posted by Grigorovskih (Участник № / Member № 1915) on :
 
А каким механизмом реализовать управление видимостью этого поля? Слоем что ли?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вы берете ГЭ "Текст" и делаете его как бы невидимым, убирая заливку и контур. В поле текст ставим динамизацию Arg = Const, сравнивая с 1. Если истинно, показыаем "Не достоверно", если ложь, оставляем пустым. Во вкладке заливка ставим галочку "разрешено". Привязываем к тому же аргументы и ставим макс 1. Но можно и слоем. Просто, если у Вас много каналов, отображаемых на экране,то и слоев будет много.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2