Этот топик включает в себя следующие страницы / This topic is comprised of pages 1 2
Автор / Author
Тема / Topic: Вопросы новичка
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Здравствуйте. Я недавно начал осваивать TM6, и на данный момент у меня возникло несколько вопросов:
1. По поводу Генераторов (синус например). Я так понимаю вычисление очередного значения генератора осуществляется в основном потоке(где RTM выполняется)? Если так, то нельзя ли как нибудь вынести генератор на другую нить? Да и в принципе, можно ли как нибудь задавать параметры генератора(например амплитуду)? 2. Честно сказать, не очень понятно как работать с каналом CALL. Конкретно интересует как осуществлять выгрузку определенного параметра из СПАД архива в заданном интервале времени(как локально так и удаленно) в архивный трэнд или таблицу? Как выполнить с помощью него шаблон программы (а точнее где там указывается какой именно шаблон выполнять надо)? 3. По поводу перемещения объектов. Кстати я как раз то и пытался с помощью генератора осуществить это перемещение (для этого то мне и надо генератор в отдельный поток как то поместить для увеличения его скорости пересчета). Может вы что то другое посоветуете по этому поводу? 4. У меня не получается переход между экранами по нажатию на кнопки, хотя вроде бы как я все сделал для этого: -создал 2 экрана -на одном из них поместил кнопку -на событие кнопки MousePresed добавил действие "Перейти на экран", и там отметил на какой экран надо переходить. Я в принципе даже попробовал с помощью drug-and-drop перетащить один экран в рабочую область другого, кнопка создалась, но ничего не работает.
Хотя может какие то проблемы связаны с тем что у меня пока что базовая версия программы? Она никак не порезана?
отправлено / posted
1. Период канала-генераора можно менять по Вашему усмотрению. Установкой "Множителя" в настройках канала можно изменять амплитуду генератора. 2. Это отражено в уроках "Быстрого старта". 3. Если имеется в виду функция "Перемещение" ГЭ на экране, то вся графика работает с более низким приоритетом, чем основной поток пересчета, включая и генераторы. Поэтому сделать "Перемещение" быстрее основного потока нельзя. 4. Базовая версия программа имеет некоторые ограничения, которые описаны в разделе "Принципиальные отличия .../Модификации ИС TRACE MODE 6".
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
SATER
Forum Haunter / Завсегдатай форума
Участник № / Member № 1414
отправлено / posted
4. А если в экране не создано ниодного аргумента - тогда на него невозможно перейти.
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
по поводу 1, 3, 4 : спасибо, за помощь, все понял и разобрался. по поводу 2 : буду разбираться по мануалу, спасибо.
Но возник еще вопрос: Можно ли как то управлять обработкой событий у графических элементов? Например, есть ГЭ Текст, в который по событию MousePreset записывается какое то введенное значение, надо управлять этим событием, т.е. разрешать его обработку только тогда, когда например включен режим управления (режим управления например определяется значением аргумента экрана). И тут же второй вопрос: есть ли какие то стандартные средства для реализации авторизации пользователей или самому делать надо?
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
1. Через ГЭ "Текст", видимо, значение должно куда-то передаваться (Например, в атрибут канала). Блокировать эту передачу (со сбросом значения соответствующего аргумента экрана) можно только программным путем. Передавать значение надо в программу, которая контролирует наступление соответствующего события. Если событие произошло, значение передается в канал, если не произошло - не передается. 2. Если Вы задаете ПОЛЬЗОВАТЕЛЕЙ в проекте, их авторизация осуществляется штатными средствами Trace Mode 6. Это документировано.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Спасибо за помощь!
Но возник еще вопрос... У меня есть шаблон экрана, который допустим отображает какой то технологический процесс, или состояние устройства (не важно). Этот процесс является типовым ну или устройство не одно. В результате мне нужно отображать состояние всех этих типовых процессов. Делать на каждый типовой процесс отдельный экран совершенно не разумно, т.к. они различаются лишь отображаемыми данными (привязаны к различным источникам). Так вот можно ли как то для этих целей использовать один шаблон экрана. Конкретнее меня интересует, можно ли организовать некоторое подобие динамической привязки аргументов экрана к истчникам?
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
Использование одного шаблона экрана с разными привязками его аргументов - это решение типовое. Разные привязки именно у аргументов каналов CALL, вызывающих один и тот же шаблон экрана позволяют использовать 1 шаблон для отображения на подоюных экранов параметров подобюных технологических процессов. Можно использовать и 1 канал CALL вызовf шаблона экрана с динамической перепривязкой его аргументов (см. ".../Автопостроение и автопривязка каналов из редактора аргументов /Замена виртуальной привязки аргументов в канале CALL, ../Замена привязок аргументов канала CALL на привязки аргументов другого канала CALL , ../Перепривязка аргументов на уровне объектов").
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Здравствуйте еще раз! По всем необходимым мне вопроса я вроде бы разобрался, спасибо. Но вот до сих пор висит один открытый вопрос. По поводу СПАД архивов.
Как выгружать в архив понятно, да и как канал CALL настраивать тоже в принципе понятно, я не могу только понять куда канал CALL выгружает данные прочитанные из архива?
Цитата из мануала: "При отработке канала CALL.LocalList в его последующие аргументы записываются извлеченные данные (каждый из таких аргументов возвращает две величины – извлеченное значение и его время)."
Это что получается, я должен заранее знать сколько он мне оттуда значений вытащит и под них завести аргументы в канале CALL? И даже если это так, то как все это в итоге привязать к архивному тренду?
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Теперь понятно, спасибо. Но тогда тренд это не совсем то что мне надо... Мне необходимо извлекать из архива данные за определенный промежуток времени (который задается пользователем) и отображать их графически в виде временного ряда. Скажите, возможно ли в принципе с помощью тренда отображать значения выборки, если да, то буду капать дальше, а если нет, то посоветуйте, с помощью чего это можно сделать?
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
Именно тренд в режиме архивного чтения и выполняет функцию "извлекать из архива данные за определенный промежуток времени (который задается пользователем) и отображать их графически в виде временного ряда."
Если Вам необходимо табличное отображение, можно использовать ГЭ "Архивная таблица 2".
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Возник еще вопрос. А возможно ли с помощью тренда в режиме архивного чтения отображать данные архива с удаленной машины?
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
В описании тренда указано: "Если в узле МРВ1 есть архивируемый канал CH1, который копируется по сети в узел МРВ2, и в канале CH1_copy установлен флаг архивирования в архив, которого в узле МРВ2 нет, то при выводе CH1_copy на архивный тренд запрашиваются данные из локального архива узла МРВ1. "
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Что то у меня не получается вывести на тренд данные из удаленного архива.
Я сделал следующее: -В узле RTM_1 имеется канала (CH1), значения которого сохраняются в архив. -В узле RTM_2 так же имеется канал такого же типа (CH2), к которому привязано реальное значение канала СН1 (привязку я делал в меню редактирования канала=> во вкладке дополнительно=> привязка). Так же канал CH2 установлен на архивирование, но в узле RTM_2 нет архивов. -Значения из канала CH2 выводятся на архивный тренд
Но при попытке отобразить какие нибудь значения из архива на тренд он в его рабочей области выдает сообщение об ошибке запроса(Request error - 1003)
Что я делаю не так?
вот еще какой момент нашел в мануалах: "У всех каналов, связанных с каналами удаленных узлов, в атрибут 90, I0 записывается ID привязанного канала, а в атрибут 92, I2 – порядковый номер узла (ordinal). Значения обоих атрибутов можно менять в реальном времени, что обеспечивает перепривязку каналов."
Может эти параметры надо ручками задавать или они сами устанавливаются при привязке удаленного канала, или это вобще не имеет отношение к моей проблеме?
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
Мы перепроверили указанную функцию в релизе 6.07.7. При правильно организованной связи между узлами вывод удаленного архива на тренд выполняется правильно. Прежде всего Вам надо убедиться в том, что между узлами существует сетевая связь - значения канала CH1 передаются в канал CH2 и отображаются на тренде в узле RTM_2 в режиме реального времени. Временной диапазон выводимых на тренд RTM_2 архивных данных должен соответствовать временному диапазону записей в архиве узла RTM_1.
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Возник вопрос, связанный с динамической трансформацией объектов экрана.
В мануале сказано, что на ряду с пространственным переносом существуют так же преобразования вращения и масштабирования, но собственно в самом TM 607.7 в свойствах объектов во вкладке динамическая трансформация имеется только опция перемещения.
отправлено / posted
Для каждого вида объекта активированы только те функции динамической трнасформации, которые для него реализованы.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
То-есть практически любой графический объект можно динамически перемещать, но ни один элемент не имеет реализации динамического масштабирования и вращения? Я проверил все ГЭ, так скажем, перемещение имеет большинство, вращение и масштабирование не имеет ни один. Хотя может это одно из ограничений базовой TM 607.7?
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
Ограничений в базовой версии такого рода нет.
Например, ГЭ групп "Линии", "Прямоугольники", "Ломаные линии", "Плоские фигуры", "Объемные фигуры" допускают динамическое перемещене, масштабирование и вращение.
Уточните, пожалуйста, как Вы проверяете допустимость динамических трансформаций?
Если Вы дважды кликнете по ГЭ (или после выделения ГЭ и нажатия ПК мыши выберете команду "Свойства объекта"), откроется диалог, в котором может быть специальная вкладка "Динамическая трансформация". Именно в этой вкладке имеются активные разделы функций трансформации.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Именно так я и делаю: пробовал и ПКМ по объекту, а там Свойства объекта, и по ГЭ дважды ЛКМ щелкнуть, далее вкладка динамическая трансформация, и например у примитива линий есть только перемещение.
Да, и вот еще что, по поводу вывода удаленного СПАД архива на тренд. У меня так и не получилось это сделать. Связь между двумя узлами RTM точно есть, так как на тренд в режиме отображения реальных значений выводятся данные из канала с удаленного узла. Вы не могли бы выслать тот пример на котором вы проверяли работоспособность выводы удаленных архивных данных на тренд.
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
1. Пришлите, пожалуйста, скриншот окна свойств ГЭ "Линия" на вкладке "Динамическая трансформация" на адрес hotline@adastra.ru.
2. Запустите оба узла под управлением профайлеров с ключами DEBUG=C00 в файлах конфигурирования запуска *.cnf (см. "Задание параметров работы мониторов"). В протоколах профайлеров должны быть записи о возможных проблемах обмена по сети и о запросах архивных данных.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
На присланном Вами скриншоте имеются все три раздела "Динамической трансформации". Необходимо поставить галочку у необходимого Вам свойства и дважды кликнуть мышкой на этом свойстве. Раскроется меню, которое надо настраивать в соответствии с документацией.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Не обратил внимание вниз окна, так как список преобразования перемещения был раскрыт, извините.
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Здравствуйте.
Мне необходимо навесить авторизацию на режим управления, ну то есть при нажатии на определенную кнопку вызывается окно авторизации, по положительному результату авторизации у пользователя появляется возможность, скажем писать в OPC.
Пробовал использовать канал пользователи, но он вызывается при старте профайлера, а мне необходимо только по событию (нажатию на кнопку). И логаут так же необходимо делать по событию от кнопки.
Я думал как это сделать: - Создать двух пользователей. - Один из них не имеет прав на доступ к событиям кнопок (кроме одной, для перехода в режим редактирования), и он же получает управление при старте МРВ или профайлера но не запрашивает авторизации (тут возникает вопрос, как создать пользователя без запроса на авторизацию?). - Второй канал пользователь вызывается по нажатию на кнопке перехода в режим управления, выдает окно авторизации, и в случае успеха, получает доступ на редактирование (Но тут возникает вопрос, как осуществить логаут этого пользователя не останавливая МРВ, и при этом управление должен перехватить первый канал пользователь, чтобы запретить обработку событий соответствующих контроллов?). А так же, достаточно ли будет передать в параметр EXEC (39) 1, для того чтобы инициировать авторизацию канала пользователя?
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
Менять пользователей таким образом нельзя. Возможны 2 варианта: - менять в реальном времени права текущего пользователя (атрибуты доступа к экранам и к функциям управления) - сложно и неоднозначно, - по событиям или по кнопке открывать диалог с требованием ввода некоего цифрового пароля, который будет контролироваться, запоминаться и в нужный момент сбрасываться программой (по событию или по кнопке). Пока правильный пароль действует, становятся видимыми соответствующие органы управления.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Если так, то да лучше авторизацией режима управления действительно управлять как вы описали, а не каналом пользователь.
А вот еще такой момент: 1. А можно ли как-нибудь при положительной авторизации управлять не видимостью соответствующих органов управления, а разрешать или запрещать обработку событий от них?
Ну например, с OPC сервера читаются значения уставок на какой-нибудь параметр. Естественно эти уставки система должна отображать и давать возможность изменить. В идеале я хотел бы сделать следующее: - К параметру текст ГЭ текст я бы привязал входной канал, который получает значения с соответствующего входного тега OPC. - Создал события для этого ГЭ текст передать значение(ввести и передать) в выходной канал, который передает введенное значение в соответствующий выходной тег OPC. Естественно оба этих тега настроены на одну и туже переменную OPC.
так вот, хотелось бы при правильно введенном пароле разрешать обработку события этого ГЭ текст а при не правильном запрещать. Возможно ли такое?
2. Требуется вести лог. При наступлении каких-то ключевых событий в системе (не аварийных) надо писать их на диск (желательно бы не использовать БД). Примером события является например переключение режима управления(ручное / автоматическое), как вы понимаете определяется это событие булевским значением(по срезу одно по фронту другое). Как зафиксировать событие я понимаю (написал программу которая фиксирует изменение состояния соответствующего канала), а вот куда и как писать, что-то придумать не могу. Надо при фиксации события, например "переход к ручному режиму управления" в некоторый лог-файл записать следующее: <время>: переход к ручному режиму управления. (ну или что-то подобное). А так же необходимо этот лог файл вычитывать и отображать на пульте (на МРВ). Есть ли какие-то штатные решения для этого, посоветуйте мне что-нибудь.
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
1. В правах ПОЛЬЗОВАТЕЛЯ и у ГЭ экрана есть соответствующие свойства, которые определяют доступ текущего пользователя к экранам и функциям управления. задаваемым в ГЭ.
2. Есть штатный текстовый файл регистрации событий, который называется "Отчет тревог". Вы можете запрограммировать произвольные сообщения.
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
2. Спасибо, разобрался.
1. Что-то я вас не понимаю... Вы же мне в предыдущем своем посте сказали, что менять права пользователей динамически "сложно и неоднозначно", и привели второй вариант, в котором, как я понял, фактически, реализуется своя система авторизации. Она мне в принципе подходит, за исключением того момента, что если "правильный пароль действует, становятся видимыми соответствующие органы управления", вместо этого мне бы хотелось управлять событиями от этих ГЭ. А так то я знаю что в правах пользователей можно определить их права на доступ к экранам и событиям, но авторизация пользователей происходит при старте МРВ или профайлера, а мне это не подходит.
Но в принципе, если нельзя управлять событиями от ГЭ не используя канал ПОЛЬЗОВАТЕЛИ, то для ввода значений поставлю у каждого ГЭ текст кнопку, видимостью которой и буду управлять. Хотя конечно хотелось бы сделать как было запланировано, но это вопрос эстетического характера и не является критичным.
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
Имелась в виду штатная авторизация ПОЛЬЗОВАТЕЛЯ.
Если речь идет об авторизации с Вашим собственным паролем, вводимым с экрана, то программа, проверяющая авторизацию, может пропускать через себя управляющие команды с экрана и выдавать их на исполнение только при правильной авторизации.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Здравствуйте, возникла проблема с выводом отчета тревог на ГЭ "ОТ узла".
Ситуация следующая: -настроил узел на ведение ОТ. -создал канал HEX16 его реальное значение привязал к аргументу экрана, и настроил его на сохранение в отчет тревог. -создал словарь сообщений на HEX16 и добавил сообщение на нулевой бит(на фронт ("сообщение1") и на срез "сообщение2") -добавил ГЭ "ОТ узла".
Запускаю профайлер и все нормально, отчет тревог ведется, если я нажимаю на кнопку и передаю 1, то в ГЭ "ОТ узла" появляется "сообщение1", но... вот когда передаю 0, "сообщение2" не появляется, а в файле отчета тревог оно записывается сразу же. Но если полностью закрыть профайлер, и заново его запустить, то не прошедшее "сообщение2" появляется на ГЭ "ОТ узла". Это нормально, так и должно быть?
попутно вопрос: - можно ли отчеты тревог считывать и выводить с удаленного узла, как в случае с SIAD, ну и писать естественно в файл ОТ удаленного узла? Мне просто надо сделать для системы в целом общий лог событий, т.е. в данном случае нужно вести общий ОТ для всех узлов.
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
1. По умолчанию все сообщения , поступающие в файл ОТ, должны выдаваться на экран. Но если Вы в настройках сообщения в словаре изменили атрибут "Направление", то возможно отсутствие сообветствующего сообщения на экране.
2. Просматривать ОТ, который ведется в МРВ, можно на узлах CONSOLE (Net Link Light). Вести ОТ можно только на сервере (VHD или МикроМРВ для Windows CE). Генерировать сообщения в ОТ можно только на сервере. Но значения каналов, по которым генерируются сообщения в ОТ на сервере, можно изменять с узла CONSOLE или другого узла.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Спасибо, разобрался.
Еще момент. А можно ли как-нибудь изменить тип созданного канала? А то по перетягивал тэги OPC с помощью драг-энд-дроп, ну он мне и на создавал float каналов, а я как-то сразу не обратил внимание и уже их привязал к различным аргументам. А тут они мне понадобились как HEX тип.
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Возник еще вопрос, тоже касающийся удобства...
Пока я разрабатываю система я, естественно, использую OPC сервер который находится у меня на локальной машине. В результате он в любом случае будет на удаленном сервере. А не придется ли мне потом делать перепривязку OPC тегов к другом серверу? Или можно как-то изменить только адрес OPC сервера? Достаточно ли будет перепривязать только группу OPC сервера, или каждый тек придется перебирать?
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Здравствуйте. Все-таки у меня ни как не получилось считывать ОТ с удаленного узла.
Ситуация следующая: есть два узла RTM. На одном из них ведется ОТ в виде журнала для регистрации изменения состояния системы и отображается на ГЭ "Отчет тревог". Необходимо как-то удаленно считывать содержимое ОТ с первого узла вторым, и так же выдавать в ГЭ "Отчет тревог", но при этом не должно производиться регистрации событий системы на этом узле. Другими словами один из узлов выполняет роль сервера по сбору данных, а второй только отображает эти данные. Выше вы писали, что для этих целей можно использовать узел CONSOLE, а нельзя ли это сделать в RTM узле? Просто наскока я понял в узле типа Console не производится пересчета каналов, а значит, как я понимаю нет возможности в реальном времени отображать текущее состояние системы, а мне это необходимо на обоих узлах.
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Есть система вентиляции, которой мы собственно и управляем. Под состоянием системы, я имею ввиду что происходит с системой в целом и отдельными ее частями(например включена или выключена ли как ГВУ в целом, так и каждый вентилятор отдельно; в каком положении находятся спрямляющий и реверсивный аппарат каждого вентилятора отдельно; в каком режиме работает ГВУ: в реверсе или прямо; ну и т.д.). На верхнем уровне это все управляется с пульта диспетчера и оператора, которые по своей сути ничем не отличаются, кроме как, как раз то тем, что оператор выполняет роль сервера по сбору и хранению данных(СПАД архивы и ОТ), а у диспетчера эти данные должны только отображаться. Так вот, надо писать в журнал любое изменение состояния ГВУ.
Для реализации пультов диспетчера и оператора было принято решение использовать TM6 (до этого я все делал при помощи .NET, но из-за проблем с отладкой коммуникационной части пришлось отказаться от этого, да и в принципе для таких целей есть готовые решения).
Со СПАД архивами (в смысле: как выводить на тренд с удаленного узла) все понятно, и как оказалось довольно просто, но вот с ОТ не понятно(в смысле с удаленным отображением, с локальными то ОТ все понятно). Я думал сделать ОТ для каждого узла отдельно, но заказчик требует, чтобы при отключении пульта диспетчера, ОТ все-ровно велся, а это значит, что нужен нектоторый "сервер отчетов", и решили что пульт оператора для этих целей вполне сгодится, т.к. он все-ровно круглосуточно роботает.
Да и на всякий случай: оба пульта данные от ГВУ получают посредством OPC сервера, а состояния системы хранятся в регистрах дискретных сигналов.
В принципе это последняя проблема, которую необходимо решить. Если для этих целей не получится использовать ОТ, то посоветуйте, что можно использовать для этого.
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
То есть под контролем «состояния системы» Вы подразумеваете, отображение в реальном времени значений каналов, передаваемых из узла RTM в узел Console. Если так, то никаких проблем нет – значения в узле Console будут соответствовать значениям в узле RTM.
О том, что для отображения отчета тревог узла RTM нужно использовать узел уже Console писали выше.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Ясно. А как насчет управления с узла Console, ну т.е. будет ли возможность писать в каналы узла RTM из узла Console? Я создал узел Console и перетащил туда шаблон экрана. Да, данные на размещенных ГЭ отображаются, а вот при попытке изменить значения, ничего не происходит. ОТ, кстати, на ГЭ "ОТ узла" не отобразился, хотя в узле RTM он есть и отображается. Может помимо перетаскивания шаблона экрана надо еще что то сделать?
Да, и вот еще что (чисто для собственного понимания)... Узел Console, как я понимаю является неким подобием тонкого клиента. Т.е. ему с узла RTM передаются не сами значения из каналов, а заполненная форма (фактически изображение). Так?
И для ясности: под контролем «состояния системы» я имел ввиду не отображение реальных значений канала (хотя из узла Console это тоже надо). Я все-таки не так выразился наверно. Имелось ввиду отслеживание изменения ее состояния, т.е. банальное ведение журнала изменений состояния системы(что, когда произошло и кем, с какого пульта было изменено).
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
Значения из узла Console в узел RTM передавать можно. Если связь между узлами есть, то скорей всего неправильно выполнены привязки.
Чтобы точно ответить, в чем причина нужно смотреть проект. Вышлите файл проекта на hotline3@adastra.ru с указанием, что не работает.
Если к аргументу экрана в узле Console привязать какой-либо канал, то при запуске проекта в узле Console будет создан виртуальный канал, большинство атрибутов которого будут совпадать с атрибутами привязанного канала (исключением будет, например, атрибут достоверность).
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
"В проекте были неверно сделаны привязки и неправильно заданы настройки у узлов" А какие ? Сообщите информацию и другим
[ 08.09.2011, 08:30: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
Сообщения / Posts 873 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Кому интересно, вот цитата из письма: "1. Если Вы хотите передавать значение из аргумента экрана в канал, то аргумент экрана должен быть типа out, а привязка должна быть аргумента ко входному значению канала. 2. Те сообщения, которые должны передаваться в сеть должны иметь направление “NET”. 3. Если требуется в консоли подчитывать на старте ОТ, то у тех узлов, которые отправляют на подчитку сообщения в редакторе узла необходимо параметр @Net_DDE задать равным 16. 4. Чтобы консоль на старте подчитывала ОТ и принимала сообщения ОТ удаленного узла в реальном времени, то параметр @Net_DDE в редакторе узла должен быть равен 16."
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Я немного поторопился вам проект отсылать, забыл попробовать вывести архивные данные на тренд в узле NetLink. Что надо сделать, помимо следующего: -Настроить в параметрах узла RTM разрешение записи SIAD архивов. -Настроить необходимый канал на запись в этот архив. -В узле NetLink на экран вытащить архивный тренд, и привязать к нему необходимый аргумент экрана с архивируемым каналом из узла RTM.
Архив в узле RTM ведется, но вот выводить в узел NetLink не получается. Запрос на получение выборки от узла Console посылается, но его результатом является сообщение "Request error - 1003". Связь между узлами есть точно, т.к. данные на остальных ГЭ с узла RTM отображаются.
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
1003 - нет данных или сетевой таймаут; поставьте отладку архива(debug=800); в файле отладки NetLink скорей всего будет сообщение timeout for REM_ID; проверьте за какое время запрашиваются данные;
Сообщения / Posts 873 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sheon
Forum Member / Участник форума
Участник № / Member № 5164
отправлено / posted
Что касается времени запрашиваемых данных, то тут все нормально, данные из запрашиваемого интервала в архиве существуют, я это проверял подгружая их локально, в узле RTM.
Что касается отладки, то честно сказать тут я тоже не очень компетентен. В корне папки обоих узлов я создал файл TMcom_xx.cnf (для RTM - 00, для NetLink 01). В нем прописал ключ DEBUG со значением 800:
DEBUG=800 END_OF_CNF <пустая строка>
но кроме сообщений start и stop в лог файле(tm6_log.txt) я больше ничего не получаю, хотя результат запроса узла NetLinc на получение удаленных архивных данных с узла RTM является так же ошибка запроса с кодом 1003.
Уважаемая тех поддержка, не могли бы вы в том тестовом проекте что я вам недавно отсылал (если он у вас, конечно, еще сохранился) добавить, для примера, чтение архивных данных в узле NetLink с удаленного узла RTM? Был бы очень признателен.
Сообщения / Posts 51 | Из / From: Российская федерация
| IP / IP: IP адрес / IP address |
Этот топик включает в себя следующие страницы / This topic is comprised of pages 1 2