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

Posted by Olexander (Участник № / Member № 7774) on :
 
1. Подскажите, правильно ли я понимаю, что при создании каналов в узле или базе каналов им по порядку присваивается ID (атрибут 118) и пересчет и отработка этих каналов в основном потоке (в пределах групп каналов INPUT, CALL и OUTPUT) выполняются по возрастанию этого ID? Тогда, чтобы изменить порядок пересчета каналов, мне необходимо уничтожить каналы и создать их заново в узле в нужном порядке? Можно ли вообще как-то узнать ID канала в ИС в режиме конструктора и поменять его?

2. И еще: если некоторые каналы были уничтожены, а затем в узле появились новые, то ID вновь созданным каналам будет присваиваться из образовавшейся области незанятых ID старых каналов или как шел последовательно, так и будет продолжать вне зависимости от появления пустот?

3. Допустим, по недоразумению аргументу канала вызова экрана присваивается сразу несколько значений от других источников. К примеру, в редакторе аргументов канала вызова Экрана#1 задана привязка к аргументу канала вызова Программы#1, а в редакторе аргументов канала вызова Программы#2 задана привязка аргумента ко всё тому же аргументу канала вызова Экрана#1 (см. ниже). Какое значение в итоге присвоится аргументу этого канала? В зависимости от порядка отработки? или же привязки, заданные в канале вызова экрана, скажем, имеют приоритет перед привязками, заданными в каналах вызова программ?

4. Наконец, если канал вызова экрана отрабатывается раньше, чем канал вызова программы, но аргументы первого привязаны к аргументам второго. Тогда монитор будет возвращать значения аргументов программы всякий раз из предыдущего цикла CALC?

Заранее признателен.
______________________________________________
CALL_Экран#1
ARG_0 IN Привязка: CALL_Программа#1.Q1

CALL_Программа#1
Q1 OUT

CALL_Программа#2
Q2 OUT Привязка: CALL_Экран#1.ARG_0
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Принцип организации обработки каналов указан верно.
ID канала можно увидеть при наведении на него курсора - всплывает справочное окошко, в котором среди других свойств указывается и ID.
Изменить ID нельзя.

2. Если сеанс работы инструментальной среды не прерывается, то вновь создаваемые каналы получают ID последовательно, не заполнения "пустот".
Если проект сохранен и перезагружен в ИС, то вновь создаваемые каналы будут заполнять "пустоты".

3. Приоритета в множественных привязках не существует.

4. Поток отработки графики - самостоятельный, асинхронный и низкоприоритетный по отношению к основному потоку CALC, в котором обрабатываются программы. Аргументы экрана получают те значения, которые актуальны на момент его вызова.
 
Posted by Olexander (Участник № / Member № 7774) on :
 
Спасибо за разъяснения, но мне не совсем ясна формулировка по третьему вопросу. Как я понимаю, имеется в виду, что приоритет привязок для аргументов CALL-каналов стоит вне зависимости от типа вызова этих каналов? Но влияет ли на это порядок отработки каналов, их ID?

Именно, можно ли, взглянув на вышеприведенную табличку, сказать, какое значение в конце каждого цикла CALC будет присвоено ARG_0: Q1 или Q2? Или для этого необходимо знать ID каналов и их направленность (Input/Output)?

Подчеркиваю, что здесь одному аргументу, по недоглядению, присваивается два различных значения. Поскольку для данного аргумента в ИС нельзя определить, существуют ли для него привязки, заданные в других каналах, то могут возникать (и у меня возникали) подобные "коллизии". Чтобы скорейшим образом выявлять проблему, мне полезно знать, как ведет себя монитор в таких случаях.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Как уже было сказано, каналы программ обрабатываются в основном потоке в соответствии со своими ID.

Поток отработки графики асинхронен по отношению к основному потоку и имеет более низкий приоритет. Обработка экрана включает в себя этап снятия среза данных для всех аргументов и последующих функций формирования картинки и отрисовки экрана.

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

"для данного аргумента в ИС нельзя определить, существуют ли для него привязки, заданные в других каналах,"
Правой клавишей мыши на CALL.Screen вызовите диалог и команду "Перейти по ссылке/вызову".
Если в проекте есть внешние привязки к аргументам/атрибутам этого CALL.Screen, они будут показаны.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2