This is topic Глобальная переменная в программе 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/001470.html

Posted by k-shultz (Участник № / Member № 6883) on :
 
Добрый день! Написал на ST программу которая определяет разницу между текущим и предыдущим значением канала. Для сохранения предыдущего значения использую глобальную переменную объявленную в программе.
При исполнении этой программы в реальном времени на экране в короткий период времени отображается расчитанное программой значение, а потом 0.
Таким образом выход данно йпрограммы на экране постоянно моргает с результата на 0. Почему так?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Результат программы передается на экран непосредственно или через значение канала?
В какой атрибут канала передается результат программы?
 
Posted by k-shultz (Участник № / Member № 6883) on :
 
Выход функции привязан к каналу. Используется R атрибут канала (реальное значение).
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Надо привязать к атрибуту ВХОДНОЕ_ЗНАЧЕНИЕ канала.
 
Posted by k-shultz (Участник № / Member № 6883) on :
 
Написанные ранее программы на ST, без использования глобальных переменных, по различной обработке данных, с аналогочной привязкой к каналу, корректно отображаются на экране. Поэтому встал вопрос это не влияние глобальной переменной?
 
Posted by k-shultz (Участник № / Member № 6883) on :
 
Перепривязал. Ничего не изменилось.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Глобальная переменная в данном случае не при чем.

Присылайте проект с ясными комментариями (по именам программы каналов и экрана) на адрес hotline@adastra.ru.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Привязка неправильная.
Пример отправлен почтой.
 
Posted by k-shultz (Участник № / Member № 6883) on :
 
Спасибо. Очень выручили.
 
Posted by k-shultz (Участник № / Member № 6883) on :
 
Проблема осталась. В своем проекте привязал Входное значение канала - мигает.
Если в качестве входного аргумента в программу задаю синусоиду, все работает, как только задаю реальное значение из ОРС сервера мигает.
 
Posted by k-shultz (Участник № / Member № 6883) on :
 
Если в программе убираю глобальную переменную, ставлю любую математическую операцию с числом, то канал корректно показывает результат при любой привязке его аргумента либо входное значение либо реальное значение
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вы программно вычисляете разность между двумя значениями, полученными от источника.
Программа работает со своим циклом, независимо от того, изменилось ли значение параметра после предыдущей проверки.
Если значение не изменилось, программа выдаст ноль и будет мигание.
В программе необходимо проверить, изменилось ли значение параметра, и только при изменении параметра вычислять разность.
 
Posted by k-shultz (Участник № / Member № 6883) on :
 
Спасибо. Теперь все работает.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2