Тема / Topic: Изменение значения канала через NETLINK LIGHT
Сергей Александрович
Active Forum Member / Активный участник форума
Участник № / Member № 2884
отправлено / posted
Здравствуйте.
Возник небольшой вопрос по NetLink Light. Есть два рабочих места, МРВ+ на одном и NetLink Light (классическая схема) на другом, с графического экрана NetLink Light нужно вносить изменения в каналы - в их атрибуты. На МРВ+ естественно все это работает, а в NLL значения атрибутов не меняются. Для изменения значений предназначены ГЭ типа "кнопка" с прикрепленным действием "Ввести и передать", расположенные на экране рядом с элементами, значения которых надо изменять. Вопрос такой: можно ли все таки это сделать через графический экран NLL?
Согласно документации:
------ Узел Console предназначен для запуска на компьютере под управлением исполнительных модулей, которые, в отличие от МРВ, не выполняют пересчет каналов, предназначенных для работы с данными ------ , то есть изменить не получится? Или не так?
Сергей Александрович
Active Forum Member / Активный участник форума
Участник № / Member № 2884
отправлено / posted
1. Хорошо, то что менять значения можно я понял, только не понятно как. Вот реальный пример: на экране есть текстовое поле со связью с каналом типа float, рядом расположена кнопка для изменения значения этого канала. При вызове на МРВ+, в атрибут канала успешно идет запись, при NLL такого нет - окошко для ввода нового значения появляется, но эффекта нет. Так вот мне не совсем понятно, как добиться чтобы изменения были?
2. Не могли бы вы уточнить, если COM-порт промышленного компьютера работает не как RS232, а как RS485 (изменен аппаратно), есть ли нюансы при его настройки в проекте, или он работает как 232?
3.Уточняющий вопрос про лицензионную политику. NLL на 5 шаблонов означает, что я могу использовать, например, 3 шаблона экрана + 2 шаблона программ для console? То есть суммируются все используемые шаблоны?
отправлено / posted
1. Пришлите данный проект на hotline3@adastra.ru
2. Если Вы будете осуществлять связь по RS485, то никаких дополнительных настроек не надо. Если же Вам не обходимо установить связь с устройством, работающем по интерфейсу RS232, то Вам нужно будет ставить конвертер на входе этого устройства. Лучше, если он будет автоматическим.
Сергей Александрович
Active Forum Member / Активный участник форума
Участник № / Member № 2884
отправлено / posted
Выслал - тема "Тестовый проект", название архива "NLL_and_MRT.rar"
Сообщения / Posts 65 | Из / From: Российская Федерация
| IP / IP: IP адрес / IP address |
Сергей Александрович
Active Forum Member / Активный участник форума
Участник № / Member № 2884
отправлено / posted
Ребята, прошло уже три дня. Проект, что я вам скинул - крошечный, и мне нужна указка на мою возможную ошибку.
отправлено / posted
Аргумент экрана консоли, передающий значение в МРВ, должен быть типа OUT или IN/OUT.
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Сергей Александрович
Active Forum Member / Активный участник форума
Участник № / Member № 2884
отправлено / posted
Это понятно, только шаблон экрана при перетаскивании его из узла RTM+ в узел Console сохраняет все привязки к базе каналов узла RTM+.
Например, если аргументу канала в RTM+ задать тип OUT или IN/OUT, то передачи даже из-под RTM+ вообще не будет. А в Console создание каналов невозможно.
Если не сложно, поясните, пожалуйста, какому каналу надо задать этот самый тип. Или вышлите мой проект, только с коррекцией...
Сообщения / Posts 65 | Из / From: Российская Федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
Для экрана в МРВ тип агрумента как правило не влияет на функции. В консоле же это важно, т.к. происходит межузловой обмен. Аргументы типа INPUT принимают значения, типа OUT передают значения.
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Сергей Александрович
Active Forum Member / Активный участник форума
Участник № / Member № 2884
отправлено / posted
Извините за молчание. Все получилось . Спасибо.
Попутно возник еще вопрос. Вызов сторонней программы - сделано по вашему примеру с калькулятором в базе примеров - работает на АРМ'е с МРВ+, а в NLL (на втором АРМ'е) программа не вызывается. EXE-файл лежит и на машинке с МРВ+ и на компе с NLL в одном и том же месте - программы идентичны. Так вот, как сделать так, чтобы она запускалась с двух АРМ'ов, а не только с компьютера, где стоит МРВ+?
Да, и надо ли настраивать узел NLL (Console) для отчета тревог также как это делается для МРВ+ ?
Сергей Александрович
Active Forum Member / Активный участник форума
Участник № / Member № 2884
отправлено / posted
Не совсем понял, о каком канале идет речь? Канале типа call с типом вызова EXEC? Если о нем, то в узле МРВ+ у него есть один фиктивный аргумент.
Сообщения / Posts 65 | Из / From: Российская Федерация
| IP / IP: IP адрес / IP address |
Сергей Александрович
Active Forum Member / Активный участник форума
Участник № / Member № 2884
отправлено / posted
Нет, так ведь в узел Console можно закинуть только шаблоны, а канал Call с вызовом Exec таким не является - просто "одинокий канал".
quote: а в узле Console канал Call с типом вызова Exec есть?
Если это можно сделать подскажите как?
Я предполагал, что если настроен вызов внешней программы в экране в узле МРВ, то при переносе шаблона этого самого экрана в Console, вызов тоже должен проходить.
Сообщения / Posts 65 | Из / From: Российская Федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
Штатной возможности создать канал Call с типом вызова Exec нет. Для вызова программы из консоли Вы можете написать dll, которая будет вызываться из программы, созданной в консоли.
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Сергей Александрович
Active Forum Member / Активный участник форума
Участник № / Member № 2884
отправлено / posted
Спасибо за ответы. Нашел несколько иной способ - создал два шаблона - один в МРВ, другой в NLL, а на графическом экране - при нажатии на кнопку повесил сразу два события - запуск программы с МРВ и с NLL. Конечно не корректно, но зато работает.
Сообщения / Posts 65 | Из / From: Российская Федерация
| IP / IP: IP адрес / IP address |
Сергей Александрович
Active Forum Member / Активный участник форума
Участник № / Member № 2884
отправлено / posted
Здравствуйте!
Прошу прощения, но вынужден вновь поднять тему.
1. При переходе на следующий этап развития проекта столкнулся опять с проблемой NLL + MPB+. На экране лежит кнопка. По нажатии отрабатывают два действия: 1)запись пределов (HW и/или LW) в атрибуты канала и 2)вызов канала CALL, который вызывает программу записи этих HW и LW в базу. Так вот, первое действие отрабатывает и на MPB+, и на NLL, а вот второе действие отрабатывает только на MPB+. Вызов канала производится штатным средством - событие "Выполнить" - кнопки. Подчеркну, что до вмешательства в проект все работало. Из-за чего могут быть подобные некорректности в работе? Можно наверное решить проблему так же как и с вызовом программ (пост выше), но это неприемлемо.
2. У нас при превышении или достижении лимита по каналам, вдруг ни с того, ни с сего отказывал либо вызов программы через CALL (внешняя DLL), либо параметры в mysql не писались (через odbc). Т. е. удаляли прямо какой-либо канал или два и все вновь начинало работать. К счастью, вовремя пришедший апгрейт МРВ+ изменил ситуацию к лучшему. Однако, хотелось бы сказать, что возможно следовало бы как-то уведомлять пользователя о достижении лимита по каналам или о ситуации, могущей иметь место? И по какому алгоритму (если таковой имеет место быть) "отказывают" каналы? Хочу отметить, что проблемы начинались при достижении общего числа каналов в 125 (при покупки лицензии на 127 каналов).
отправлено / posted
1. У Вас канал Call для записи в базу в узле Console есть?
2. При превышении количества каналов выдается ошибка -4. Если у Вас есть пример отключения каких-то каналов пришлите, пожалуйста, проект и укажите на ключе с какой лицензией Вы это проверяли.
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Сергей Александрович
Active Forum Member / Активный участник форума
Участник № / Member № 2884
отправлено / posted
Доброго времени суток!
Спасибо за ответы.
1. Да, теперь есть. Сделал ссылку на шаблон-программу. Только вот непонятно, почему же до этого работало?
2. Да, у нас была ситуация, связанная именно с этой ошибкой. Однако, уточню, что проблема возникала при приближении к лимиту. К сожалению, подходящего примера сейчас нет, но так только возникнет подобная ситуация, я отпишусь.
Сообщения / Posts 65 | Из / From: Российская Федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
Функция выполнить, привязанная к шаблону, на самом деле запускает канал Call. А так как его не было, то и эффекта никакого. Сами по себе шаблоны не работают. Выполняются именно каналы Call, связанные с этими шаблонами.
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |