This is topic как правильно организовать чтение и запись значений? in forum Редактор проекта TRACE MODE 6 / at Форум TRACE MODE: техническая поддержка.


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

Posted by jasha-kz (Участник № / Member № 4149) on :
 
Здравствуйте
У меня вопрос, который, возможно, уже обсуждался на форуме, но мне не
удалось найти такое обсуждение. Или, может быть, он всем и так понятен.
Подскажите пожалуйста, как правильно организовать каналы и связь между
ними, если в системе есть контроллер (EmbRTM) и несколько АРМ (RTM).
На контроллере есть канал - коэффициент настройки регулятора. Нужно иметь
возможность просматривать и менять его значение с любого из АРМ.
Задача вполне обычная, но не могу сообразить, как ее решить правильно.
Есть вариант, который сейчас мной реализован, но он имеет недостатки и
является слишком громоздким: на каждом АРМ заводится два канала, один
типа INPUT, другой OUTPUT. К INPUT каналу привязывается реальное значение
канала с контроллера, к OUTPUT - его входное значение. На экране интер-
фейса вводятся два аргумента IN и OUT (или IN и IN/OUT). Соответственно,
IN-аргумент связан с реальным значением INPUT-канала и используется для
отображения текущего значения, OUT(IN/OUT)-аргумент связан с входным зна-
чением канала OUTPUT и используется для задания нового значения. Во-первых
описанная схема сложна, а во-вторых неудобна при вводе нового значения.
Например, если на экране используется ГЭ "Текст" и его отображение привязано
к IN-аргументу, а запись (ввести и передать) к OUT-аргументу, то при
начале ввода, вводимое значение стартует не с текущего, а того, которое
вводилось в прошлый раз (или с 0.0 в первый раз). ГЭ "Ползунок" в подобной
схеме ведет себя вообще неприемлемо.
Пожалуйста, подскажите, как правильно решается данная задача.
Версия TM 6.06
Большое спасибо
 
Posted by Nico (Участник № / Member № 5342) on :
 
.канал коэф регулятора может изменится без посылок с АРМ ?
.если более чем на одном АРМ меняют значение одного канала на другом узле то что будет ?
.если сверхактуально старт вводимого значения с
текущего ну скопируйте значение одного канала в другой
.используйте аргумент out и привяжите его к удаленному каналу(как в NetLink консоле)
 
Posted by jasha-kz (Участник № / Member № 4149) on :
 
To Nico:
Спасибо за ответ, правда, вопрос все равно остается.
По изменению канала без посылок с АРМ - может, например посылкой с другого АРМ.
Если на нескольких АРМ меняется значение, то это не страшно - когда по очереди, то вообще проблем не должно быть, когда одновременно, то кто последний записал, тот и прав.
Ваше предложение скопировать значение одного канала в другой не совсем понял: имеется в виду INPUT канал скопировать в OUTPUT? Если да, то когда? В момент перед началом ввода? И как лучше это сделать? Да и это только дополнительно усложняет а не упрощает решение. Хотя задача явно тривиальная. А по поводу привязки OUT-аргумента прямо к каналу на ПЛК - похоже, это хорошее дело, упростит задачу. Но я не знаю, будет ли в этом случае запись производиться строго при изменении, а иначе с несколькими АРМ работать не получится.
Еще раз спасибо
 
Posted by Nico (Участник № / Member № 5342) on :
 
.отработка каналов OUT всегда по изменению( кроме спец случаев)
.копировать всегда и отключать копирование когда оператор нажал ввести включать когда IN=OUT
 
Posted by jasha-kz (Участник № / Member № 4149) on :
 
To Nico: да-да, то что канал Output пишется только при изменениях, в курсе. Именно поэтому и использовал его. А вот так же ли работает аргумент экрана - не знаю.
 
Posted by Nico (Участник № / Member № 5342) on :
 
аргумент может передать свое значение в канал(в консоле виртуальный) а канал отработает по изменению
 
Posted by jasha-kz (Участник № / Member № 4149) on :
 
To Nico: в общем, как я понял, Вы описываете именно тот вариант, с которого все и началось. В любом случае спасибо.
To All: может быть все таки кто-то подскажет, как эта задача решается обычно в TM? Простейшая же вещь! Не может быть, чтобы в такой продвинутой системе такую стандартную функцию реализовать было бы так сложно. Скорее всего, я просто недостаточно знаю ТМ. Помогите пожалуйста.
 
Posted by Romсheg (Участник № / Member № 3792) on :
 
Простого решения нет, либо вводите арбитраж на уровне контроллера математикой (тогда есть вводится приоритет по управлению), либо решение от Адастры, что уже было тут Вам озвучено (где оба узла равнозначны в управлении).
 
Posted by jasha-kz (Участник № / Member № 4149) on :
 
Спасибо еще раз всем за помощь. Удалось выкрутиться используя описанную выше громоздкую схему с двумя дополнительными каналами на АРМ (впрочем, можно обойтись и одним, OUTPUT) и двумя аргументами экрана (тут, видимо, одним не обойдешься). В ГЭ Текст на нажатие мышки стоит присвоение IN-аргумента в OUT (Добавить 0), а на отпускание - ввести и передать OUT-аргумент. Сделать и то и другое на нажатие - не проходит, не отрабатывает в нужной последовательности. Ну а с ползунком пока нормального выхода нет. Подложил ползунок только с отображением IN-аргумента под ползунок без заливки с отображением и вводом OUT-аргумента. Результат выглядит весело, но зато наглядно иллюстрирует процесс записи/чтения
 
Posted by jasha-kz (Участник № / Member № 4149) on :
 
Здравствуйте
Насколько я знаю, значение канала типа OUTPUT передается в привязанный к нему канал только при изменении.
Пожалуйста подскажите:
1) а значение OUT-аргумента программы и экрана передаются в атрибут привязанного к нему канала тоже только при изменении или всегда?
2) имеет ли здесь значение то, на одном или на разных узлах находятся вызов программы (экрана) и привязанный к его OUT-аргументу канал?
Большое спасибо
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. C экрана значение передается при активизации функции управления в соответствующем ГЭ (нажатии ЛК мыши на ГЭ).
Из программы значение OUT-аргумента передается всегда.

2. Эти условия одинаковы при передаче в локальный и удаленный каналы.
 
Posted by jasha-kz (Участник № / Member № 4149) on :
 
Спасибо
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2