This is topic Переменная message и ее испоьлзование 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/000519.html

Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Здравствуйте. Объясните пожалуйста как работать с данной переменной? Просто выполняю по хелпу все действия а результата ноль. Проблема такая у меня есть программа, которая сравнивает установочные значения со значениями приходящими и если приходящее значение больше установочного, то нужно это прописать в ОТ. Я создал пользовательский словарь, затем переменную @message. К ней привязал программу, а к программе пользовательский словарь. Результат нулевой, подскажите может я что то не так сделал?
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Народ, может кто-нибудь расскажет как работать с данной переменной, пожалуйста. Очень нада, а то в Хелпе ничего не понятно... [Неодобрение / Frown]
 
Posted by andrelek (Участник № / Member № 3209) on :
 
воспользуйся границами канала. Путь в хелпе:Каналы и систем переменные\Числовые каналы\
Канал класса флоат\границы и интервалы.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Спасибо andrelek, но немного не то. Мне нужно связать переменную message программу(тип input), написанную мной и пользовательский словарь таким образом чтобы выдавалось соответствующее сообщение, если выполняется условие.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Ребята, я конечно понимаю, что можно цитировать (не менее чем через 16 часов ответ на свой вопрос и все такое) до бесконечности, но прошло уже больше 16 часов, а ответа нет. На то Вы техническая поддержка, чтобы отвечать на вопросы, а не цитировать Хелп и ссылки Вашего сайта. [Неодобрение / Frown]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
quote:
Ответы на вопросы пользователей "горячей линии" даются в срок не позднее 16 РАБОЧИХ часов с момента поступления.
Время работы нашего офиса с 9-00 до 17-30 московского времени (GMT +3).

Теперь о вопросе про @message. Причина, скорее всего, в том, что Вам нужно обнулять значение в канале, иначе новое сообщение не будет генерится.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
А как это сделать?
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
И еще можно ли не использовать переменную, а работать со словарем на прямую? т.е. чтобы сообщения записывались в ОТ?
 
Posted by Реуцкий Александр (Участник № / Member № 3206) on :
 
>И еще можно ли не использовать переменную, а >работать со словарем на прямую? т.е. чтобы >сообщения записывались в ОТ?

Конечно можно для этого вам нужно создать группу словари сообщений и почитать справку там все описывается.

----------------------------------------
Реуцкий Александр
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Да словарь у меня уже создан. Проблема в том, как записать сообщение словаря в ОТ(txt-файл) и отобразить его в графическом элементе.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Что значит работать со словарем напрямую?

Чтобы использовать словарь, Вам нужно послать во входное значение системной переменной @message, к которой привязан, нужное число. Чтобы оно не повторялось, сделайте два одинаковых сообщения и попеременно посылайте разные числа.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
т.е. в атрибут 0(Value), правильно?
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Хочу еще раз рассказать что я делаю, может все таки у меня где-то ошибка:
1. Создал программу(тип input), к ней привязал два значения, которые сравниваются друг с другом. Если одно значение больше другого, то вывожу одно сообщение.
2. Перетащил программу на созданную переменную @message.
3. Привязал пользовательский словарь к программе и поставил галку "Отчет тревог".
4. Поставил галку "отработать".
5. Вот код программы:

PROGRAM
VAR_INPUT Result : REAL; END_VAR
VAR_INPUT ПВ_ТШП_ТШПср_R : REAL; END_VAR
VAR_INPUT Message_1_VALUE : REAL; END_VAR
VAR_INPUT Message_2_VALUE : REAL; END_VAR

if Result > ПВ_ТШП_ТШПср_R then
Message_1_VALUE = 0;
end_if;

END_PROGRAM

Есть ли в моих действиях ошибка?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Сделайте проект "Быстрый старт". Многие вопросы отпадут сами.

2. У Вашей программы нет выходных аргументов.

3. Программу в Вашем случае нужно создавать отдельным каналом.

4. Посылать значение нужно в атрибут 2, In.

5. Почему Message_1_VALUE = 0, если сообщения генерятся при значении от 1 до 8?

Но основной пункт 1-ый.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
А можно не плодить каналов? Быстрый старт я выполнил, но там нет примера как работать с пользовательскими словарями, с обыкновенными типа float, hex проблем никаких нет, потому что все и так понятно и прозрачно, а вот с пользовательскими не очень.
1. Что значит 4 пункт? Нужно создать программу, затем послать результат в 2,In какого-то канала или что?
2. Цитата из Хелпа:
"При каждом изменении выходного значения канала типа OUTPUT, имеющего установленный флаг Отчет тревог и связанного с системной переменной @Message типа OUTPUT (группа СИСТЕМНЫЕ), монитор генерирует сообщения вида @Message_<N>, где N – выходное значение канала (целое число в диапазоне 1-8).

Чтобы изменить генерируемые сообщения, нужно создать в узле словарь Пользовательский словарь сообщений и связать с этим словарем указанный канал. В этом случае выходное значение канала (0-7) задает порядковый номер генерируемого сообщения в словаре (соответственно 1-8)." Хотелось бы понять чем отличается 0-7 и 1-8 соответственно.
3. Я создавал др. программу, где выходной параметр указывал Message_1_VALUE = 1, результат тот же.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Чтобы не создавать дополнительные каналы воспользуйтесь функцией Трансляция, описание в справке.

1. У Вас какой релиз? В Хелпе релизов 6.05.1 и 6.06 никакого упоминания про 0-7 нет.

2. Выходной аргумент программы должен быть связан с атрибутом входное значение канала message.

3. Работа с пользовательским словарем ничем не отличается от работы со словарем для HEX каналов.

Вам выслан пример.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
У меня релиз 6.05.1(512 точек) и есть 6.06, но Ваш пример не запускается [Неодобрение / Frown] . Пишет: Сервер проекта: Не поддерживаемая версия файла проекта.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Он сделан в базовой версии, так как вы пишите в ветке по Бесплатной версии.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
А как мне писать в ветке для зарегистрированных пользователей?
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
просто, когда я хотел создать тему, мне просто не дали этого сделать и поэтому я создал ее здесь.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вам надо было после регистрации профессиональной версии написать нам письмо с просьбой расширить права на форуме.

Теперь можете писать и в разделе Коммерческая версия.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Спасибо огромное, но какую-то регистрацию коммерческой версии я проходил и подумал, что этого достаточно. Извините меня.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
А можно прислать еще раз тестовый проект только для коммерческой версии 6.05.1
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
В 6.05.1 примера точно не будет, т.к. текущий релиз 6.06. Почему Вы не можете посмотреть этот пример?
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
потому что у меня нет базовой версии 6.05.1. Но у меня есть CD-диск с версией 6.06, правда я не знаю, какая это версия, наверно базовая. Она пришла вместе с коробкой версии 6.05.1
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Скачать версию 6.06 Вы можете с нашего сайта.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Дорогие товарищи все равно ничего не получается. Можно Вам отослать тестовую программу и Вы скажите что я не так делаю,потому что из Вашего примера с одной стороны все понятно, но есть и вопросы.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Версию 6.06 я обязательно скачаю, только помогите пожалуйста, а то я голову всю сломал. Не получается, хоть ты тресни. [Неодобрение / Frown]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Мы Вам прислали полный проект рашающий задачу. Какие вопросы у Вас возникают?
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Вопрос у меня такой: когда вызываешь свойства канала(тип FLoat) @Message, то там есть вкладка "Аргументы". Но когда я делаю, тоже самое в своем проекте, то у меня этой вкладки нет, а как ее добавить я не знаю.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вкладка Аргументы появляется, когда Вы добавляете в нее программу-трансляцию.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
А как добавить программу-трансляцию?
Извините, может быть глупый вопрос.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Просто взять и перетащить шаблон программы на канал?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Да, именно так.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
И еще один вопрос, зачем нужна глобальная переменная?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Чтобы у Вас алгоритм сравнения отрабатывался только при изменении значения.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Понятно.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Все сделал, как в Вашем проекте, все равно ничего не выводит.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Вот код программы:

PROGRAM
VAR_INPUT ARG_000 : REAL; END_VAR // //Сообщение статуса ТШП1
VAR_INOUT ARG_001 : REAL; END_VAR // //Входное значение переменной message
VAR_INPUT ARG_002 : REAL; END_VAR // //Реальное значение переменной message
VAR_OUTPUT ARG_003 : REAL; END_VAR // //Аппаратное значение переменнной Message

if SR_TSHP_1 != ARG_000 then
if ARG_000 == 9 or ARG_000 == 11 then
if ARG_001 ==1 then
ARG_001 = 2;
else
ARG_001 = 1;
end_if;
end_if;
end_if;
ARG_003 = ARG_002;
SR_TSHP_1 = ARG_000;

END_PROGRAM
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
У Вас сообщения по этой программе должны генерится, если статус равен 9 или 11. Так?

Если так, то присылайте Ваш проект на hotline3@adastra.ru
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Файл проекта я отправил.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
А еще я никак не могу понять зачем аппаратному значению приравнивается значение реальное, которое ничего не содержит.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
И еще один вопрос, не знаю справивал я или нет:
19.12.2008 16:44:01.3 ТШП1 ТC5 Error?
Что это означает?
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
ДА, заметил какую вещь. Если убирать @ то сообщение выводится. т.е значение в канал передается.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Почитайте в справке раздел "Обработка в канале FLOAT"

2. Это означает, что по этому каналу нет данных от устройства

3. В справке написано "Сообщение, которое начинается со знака @, не выводится в отчет тревог." Раздел "Редактор словарей сообщений"
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
По поводу аппаратного и реального значения извините, забыл. Бывает. Но согласно Вашему примеру сделал все привязки, не работает. Стоит только убрать @ и пишет имя переменной в виде сообщения, а со словарем работать не хочет.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Уважаемая техническая поддержка, объясните мне "дураку", в чем может быть проблема. Потому что, я сделал все так же как и у вас в примере и не хочет работать со словарем, а просто с переменной хочет. Я бы отвязался бы, но в этом случае мне нужно сделать 11*12 каналов, привязать к ним переменные message и тд., что согласитесь, "пошло".
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
В канал значение передается.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Я понял!!! В ритейле 6.05.1 какой-то глюк, потому что, если делать в 6.06(BASE), то все нормально. Т.е. сообщения выдаются и записываются в ОТ.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Возникает вопрос, как быть? Я так понимаю, обновиться до версии 6.06 бесплатно нельзя.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вы не правильно понимаете. Обновиться можно на нашем сайте в разделе Поддержка.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
А как это сделать? Потому что прямых ссылок нет.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Прошу прощения не сразу разглядел.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Жму на обновление программ. Просит зарегистрировать коммерческую версию. Пытаюсь регистрировать, а мне говорят что такая версия уже зарегистрирована. Как быть?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
У Вас должен быть логин и пароль, на который зарегистрирована коммерческая версия.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Они есть. Я же проходил первичную регистрацию или это совсем иное.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Проблема была в ошибке в релизе 6.05.1. В релизе 6.06 она исправлена.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
А можно чтобы не выводилось сообщение:
ТШП 1 TC5 Error?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Создайте словарь сообщений Системный и ставите @ перед сообщением Ошибка.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
А можно ли хранить предыдущие значения переменных?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Поясните, что конкретно Вы имеет в виду.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Я имею ввиду следующее: например, пришло некое число я его сравниваю и выдаю соответствующее сообщение, а затем мне нужно запомнить это число, чтобы его можно было сравнить с вновь пришедшим числом.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Т.е. исключить другое сообщение.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Так для этого в пример и введена глобальная переменная в программе. Можно также воспользоваться дополнительным аргументом, или в крайнем случае программой.
 
Posted by Сидоров Александр Александрович (Участник № / Member № 3279) on :
 
Так значение меняется всякий раз, когда вызывается эта программа и глобальная переменная будет переопределяться каждый раз, правильно? А если воспользоваться дополнительным аргументом, то как запомнить старое значение и не затереть его при следующем вызове?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Сначала идет проверка изменилось ли значение, путем сравнения с глобальной переменной. Если не изменилось, то никаких действий не производится. При этом можно и не пересохранять глобальную переменную.

Также сохранять значение в аргументе или глобальной переменной можно только при необходимом условии.
 
Posted by magnetic (Участник № / Member № 4145) on :
 
quote:
Чтобы не создавать дополнительные каналы воспользуйтесь функцией Трансляция, описание в справке.

1. У Вас какой релиз? В Хелпе релизов 6.05.1 и 6.06 никакого упоминания про 0-7 нет.

2. Выходной аргумент программы должен быть связан с атрибутом входное значение канала message.

3. Работа с пользовательским словарем ничем не отличается от работы со словарем для HEX каналов.

Вам выслан пример.

Здравствуйте, техподдержка!

Пришлите пожалуйста мне тоже пример на почту.

Заранее спасибо.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Отправлено.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2