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/000440.html

Posted by Реуцкий Александр (Участник № / Member № 3206) on :
 
Добрый День дорогая администрация AdAstra!

Вопрос такой.
Задача состоит в следующем: к Trace Mode 6 подключен уровнемер, передающий уровень заполнения резервуара.
Нам необходимо написать программу, которая будет выдавать сообщения "Предельный уровень" и "Норма".
Литсинг программы ниже:


PROGRAM
VAR_INPUT Уровень_1 : REAL; END_VAR
VAR_OUTPUT Уровень_м_1 : UDINT; END_VAR

VAR_OUTPUT Предельный_уровень : STRING; END_VAR
VAR VAR_000 : STRING := "Норма"; END_VAR // "Норма" //локальная переменная
VAR VAR_001 : STRING := "Предельный уровень"; END_VAR // "Предельный уровень"
//локальная переменная

if Уровень_1 < 95 then

Уровень_м_1=Уровень_2*50;
End_if;
if Уровень_1 > 95 then

Предельный_уровень = VAR_001;
else
Предельный_уровень = VAR_000;
End_if;


END_PROGRAM


В графическом экране создали элемент Текст приязали его к аргументу "Предельный_уровень", вид индикации->значение,формат->по умолчанию.

В программе аргумент Предельный_уровень привязали к каналу Предельный_уровень к атрибуту Комментарий.
Вобщем в отладчике программа работает правильно, а в элемент графического экрана Текст передает 0.
Подскажите в чем проблема?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Пришлите, пожалуйста, проект на адрес техподдержки hotline@adastra.ru.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Вы не зарегистрированы в качестве пользователя профессиональной версии Trace Mode 6, поэтому рассматривать Ваши проекты в профессиональном формате мы не должны.
2. Для анализа проекта папка проекта не нужна - это лишние 15 MB почты.
3. В присланном Вами проекте я не нашел программы с указанным текстом.
4. Нет необходимости проверять элементарную функцию на рабочем проекте объемом 9 MB.
Сделайте, пожалуйста, простенький тестовый проект в объеме обсуждаемой задачи и пришлите нам.
 
Posted by c0d3m4st3r (Участник № / Member № 2970) on :
 
quote:
Отправитель / Originally posted by Реуцкий Александр:

PROGRAM
VAR_INPUT Уровень_1 : REAL; END_VAR
VAR_OUTPUT Уровень_м_1 : UDINT; END_VAR

VAR_OUTPUT Предельный_уровень : STRING; END_VAR
VAR VAR_000 : STRING := "Норма"; END_VAR // "Норма" //локальная переменная
VAR VAR_001 : STRING := "Предельный уровень"; END_VAR // "Предельный уровень"
//локальная переменная

if Уровень_1 < 95 then

Уровень_м_1=Уровень_2*50;
End_if;
if Уровень_1 > 95 then

Предельный_уровень = VAR_001;
else
Предельный_уровень = VAR_000;
End_if;


END_PROGRAM

Вобщем в отладчике программа работает правильно, а в элемент графического экрана Текст передает 0.
Подскажите в чем проблема?

Попробую Вам помочь [Улыбка / Smile]
Из кода немного непонятно как эта прога вообще у вас компилируется, ведь в объявленных переменных не существует "Уровень_2".
Однако, не суть. На вашем месте я бы избавился от лишних "VAR_000" и "VAR_001".

Вместо этого просто

if Уровень_1 > 95 then

Предельный_уровень = "Уровень: Предел!";
else
Предельный_уровень = "Уровень: Норм.";
End_if;

И ещё кое-что. Переменная "Предельный_уровень" типа OUT должна быть привязана к аттрибуту КОММЕНТАРИЙ любого канала, как Вы впринципе и сделали, НО

quote:
В графическом экране создали элемент Текст приязали его к аргументу "Предельный_уровень"
ГЭ Текст так же должен быть привязан именно к КОММЕНТАРИЯМ того же канала. Удачи [gigi / Гы-Гы]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
c0d3m4st3r прав. В особенности в части привязок аргументов.
Однако, такую задачу можно решить без программы, на самом ГЭ "Текст".
Я послал Вам проект на базе Вашего примера, в котором текстовые сообщения формируются без программы.
 
Posted by Реуцкий Александр (Участник № / Member № 3206) on :
 
Спосибо за помощь все получилось. На счет того что эту задачу можно решить без программы это мы знали, но в этом варианте можно выдавать только 2 сообщения или истинно, или ложно, а с помощью программы сколько угодно. Или я не прав?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Посмотрите внимательно на возможности текстового индикатора. Там есть не только бинарные, но многопозиционные индикаторы: "Аргумент в диапазоне", "Аргумент в интервале", "Набор".
 
Posted by c0d3m4st3r (Участник № / Member № 2970) on :
 
Впринципе без программы можно и сколько угодно, ведь есть опции диапазонов, и можно по диапазонам определять сообщения, но по-моему с программой легче и удобнее. [Улыбка / Smile]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Дело вкуса и ресурсов. Использование встроенных решений менее ресурсоемко.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2