k-shultz
Junior Member / Новичок
Участник № / Member № 6883
отправлено / posted
Добрый день! Написал на ST программу которая определяет разницу между текущим и предыдущим значением канала. Для сохранения предыдущего значения использую глобальную переменную объявленную в программе. При исполнении этой программы в реальном времени на экране в короткий период времени отображается расчитанное программой значение, а потом 0. Таким образом выход данно йпрограммы на экране постоянно моргает с результата на 0. Почему так?
Сообщения / Posts 12 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Результат программы передается на экран непосредственно или через значение канала? В какой атрибут канала передается результат программы?
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |
k-shultz
Junior Member / Новичок
Участник № / Member № 6883
отправлено / posted
Выход функции привязан к каналу. Используется R атрибут канала (реальное значение).
Сообщения / Posts 12 | Из / From: Россия
| IP / IP: IP адрес / IP address |
k-shultz
Junior Member / Новичок
Участник № / Member № 6883
отправлено / posted
Написанные ранее программы на ST, без использования глобальных переменных, по различной обработке данных, с аналогочной привязкой к каналу, корректно отображаются на экране. Поэтому встал вопрос это не влияние глобальной переменной?
Сообщения / Posts 12 | Из / From: Россия
| IP / IP: IP адрес / IP address |
k-shultz
Junior Member / Новичок
Участник № / Member № 6883
отправлено / posted
Глобальная переменная в данном случае не при чем.
Присылайте проект с ясными комментариями (по именам программы каналов и экрана) на адрес hotline@adastra.ru.
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |
k-shultz
Junior Member / Новичок
Участник № / Member № 6883
отправлено / posted
Проблема осталась. В своем проекте привязал Входное значение канала - мигает. Если в качестве входного аргумента в программу задаю синусоиду, все работает, как только задаю реальное значение из ОРС сервера мигает.
Сообщения / Posts 12 | Из / From: Россия
| IP / IP: IP адрес / IP address |
k-shultz
Junior Member / Новичок
Участник № / Member № 6883
отправлено / posted
Если в программе убираю глобальную переменную, ставлю любую математическую операцию с числом, то канал корректно показывает результат при любой привязке его аргумента либо входное значение либо реальное значение
Сообщения / Posts 12 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Вы программно вычисляете разность между двумя значениями, полученными от источника. Программа работает со своим циклом, независимо от того, изменилось ли значение параметра после предыдущей проверки. Если значение не изменилось, программа выдаст ноль и будет мигание. В программе необходимо проверить, изменилось ли значение параметра, и только при изменении параметра вычислять разность.
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |
k-shultz
Junior Member / Новичок
Участник № / Member № 6883