OPC сервер
Re: OPC сервер
Может кто сталкивался с такой проблемой: работаю с 3-мя приборами Овен через ОРС сервер, опрашиваются всего 18 каналов; на каждый прибор открываю-закрываю свой DataSocket. Работает какое-то время(разное, может сразу зависнуть), потом связь с сервером прекращается, зависает, причём сам ОРС сервер работает - опрос идёт, можно процесс обмена в мониторинге видеть, а связи с нет, висит мёртво. Приходится через диспетчер программ закрывать ОРС сервер, тогда просыпается и выдаёт ошибку. Момент зависания, возможно, связан с обращением пользователя к другим программам и загрузкой компа, а может и нет. Как с этим можно побороться?
Заранее спасибо.
Заранее спасибо.
- Вложения
-
- OWEN_МВ110-8А_проба.vi
- Опрос приборов МВ110-8А, 8АС, МУ100-8Р
- (33.73 КБ) 243 скачивания
-
- VIP
- Сообщения: 1327
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 38 раз
- Контактная информация:
Re: OPC сервер
Возможно OPC сервер не справляется с нагрузкой. DataSocket в LabVIEW в этом смысле дурной - он создаёт отдельную группу для каждого соединения, и (с некоторой натяжкой) можно сказать, что с точки зрения сервера это эквивалентно в вашем случае двум десяткам клиентов, одновременно подключённых. Вообще не рекомендуется пользоваться DataSocket в случае большого количества соединений (но в вашем случае два десятка - это совсем немного, проблемы начинаются, когда счёт идёт на сотни). Когда LabVIEW зависает, вы можете из другого клиента до OPC сервера достучаться?
Можно попробовать воспользоваться функциями DataSocket из библиотеки %Program Files%\National Instruments\LabVIEW x.x\vi.lib\Platform\dataskt.llb:
Там идеология абсолютно такая же, просто функции чуть иначе выглядят, и вот есть у меня подозрение, что они субъективно чуть более надёжны. В общем просто попробуйте.
Либо можно установить LabVIEW DSC - там в составе тулкита находится "честный" OPC клиент, который не вызывает перегрузку сервера и клиента при большом количестве соединений. С другой стороны использовать его для двух десятков OPC точек - это как из пушки по воробьям.
Можно попробовать воспользоваться функциями DataSocket из библиотеки %Program Files%\National Instruments\LabVIEW x.x\vi.lib\Platform\dataskt.llb:
Там идеология абсолютно такая же, просто функции чуть иначе выглядят, и вот есть у меня подозрение, что они субъективно чуть более надёжны. В общем просто попробуйте.
Либо можно установить LabVIEW DSC - там в составе тулкита находится "честный" OPC клиент, который не вызывает перегрузку сервера и клиента при большом количестве соединений. С другой стороны использовать его для двух десятков OPC точек - это как из пушки по воробьям.
Re: OPC сервер
Другого клиента у меня нет, т.к. зависает, то открыть ничего не могу. Могу сказать только, что сам ОРС сервер работает и обмен идёт только с другими приборами, прибор, в который нажно записывать опрашивается(видно по св.диоду на нём), но данные на ОРС сервер от него не поступают(судя по протоколу обмена ОРС сервера). И если убирать операции записи из , который я привёл в первом посте, то всё работает нормально. Пробовал запускать отдельным опрос и запись устройства - работает, но если при этом начать открывать другой - вешается. Какие-то проблемы с операцией записи.
Библиотеку dataskt.llb не смог попробовать, опыта работы с библиотеками нет, не смог вытащить оттуда нужные функции.
Библиотеку dataskt.llb не смог попробовать, опыта работы с библиотеками нет, не смог вытащить оттуда нужные функции.
-
- VIP
- Сообщения: 1327
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 38 раз
- Контактная информация:
Re: OPC сервер
Другой клиент желательно иметь под рукой, когда вы работаете с OPC сервером. Обычно поставщик сервера даёт и клиента для просмотра значений. Например, в случае с Siemens это OPC Scout. Вы можете воспользоваться Server Explorer от NI. Это довольно старенькая штука, но свою работу делает. Когда LabVIEW зависнет, запустите Server Explorer (там всё интуитивно понятно, надо подключиться к серверу, добавить группу, а затем добавить интересующие точки подключения к OPC) и проверьте, что вы можете читать и писать в OPC Server при "зависшем" приложении.
В библиотеке llb находятся самые обыкновенные VI, с точки зрения LabVIEW библиотека - это как бы папка. Щёлкаете правой кнопкой на блок диаграмме, затем выбираете Select VI..., затем выбираете llb библиотеку и увидите содержимое, ну и добавляете то, что вам надо.
Ещё момент - у вас чтение и запись происходит параллельно. Попробуйте сделать это последовательно - сначала чтение всех переменных, затем запись. Причём в циклы for недурственно вставить маленькие задержки Wait (ms) - это поможет немного разгрузить CPU.
Вообще странно, что это дело вешается при открытии другого VI. Кстати, если у вас сервер медленный (он случайно не к последовательному порту подключён?), и внутри функций DataSocket вы находитесь слишком долгое время, то зависания вполне объяснимы - функции DataSocket выполняются в UI потоке и блокируют его..
В библиотеке llb находятся самые обыкновенные VI, с точки зрения LabVIEW библиотека - это как бы папка. Щёлкаете правой кнопкой на блок диаграмме, затем выбираете Select VI..., затем выбираете llb библиотеку и увидите содержимое, ну и добавляете то, что вам надо.
Ещё момент - у вас чтение и запись происходит параллельно. Попробуйте сделать это последовательно - сначала чтение всех переменных, затем запись. Причём в циклы for недурственно вставить маленькие задержки Wait (ms) - это поможет немного разгрузить CPU.
Вообще странно, что это дело вешается при открытии другого VI. Кстати, если у вас сервер медленный (он случайно не к последовательному порту подключён?), и внутри функций DataSocket вы находитесь слишком долгое время, то зависания вполне объяснимы - функции DataSocket выполняются в UI потоке и блокируют его..
Re: OPC сервер
Поставил DSC addon, посмотрел ОРС клиентом - при зависании связь с ОРС сервером есть. Связь с сервером теряет сам , т.к. опрос (чтение) приборов сервер продолжает производить, а запись уже не производит, т.к. команда на запись от не приходит, а чтение параметров он и без производит автоматом.
Пошаманил с временами - периодами опроса, поставил задержки, поставил выполнение всех операций последовательно, а всё равно не равномерно работает: я в каждом цикле меняю состояние реле - вкл-выкл, и затем считываю их(состояния); когда нет угрозы зависания( работает только с одним прибором), то щелчки реле цикличны, т.е. переключаются с жёстким ритмом, а когда подключаю все приборы для опроса - начинается разнобой со щелчками - то вместе включатся, то через небольшую паузу. Т.е. где-то на пути между и ОРС сервером какие-то задержки. Никак не пойму в чём дело.
И как правило к зависанию приводит такое действие: после запуска, переключаюсь на блок-схему и начинаю её двигать мышкой(левой кнопкой), процессор при этом сильно грузится(процентов на 50) и аут, т.е. теряет связь с ОРС сервером и постоянно находится в ожидании ответа, причём зависает именно на операции записи. Как бы там между и ОРС сервером како-нибудь буфер что-ли организовать?
Пошаманил с временами - периодами опроса, поставил задержки, поставил выполнение всех операций последовательно, а всё равно не равномерно работает: я в каждом цикле меняю состояние реле - вкл-выкл, и затем считываю их(состояния); когда нет угрозы зависания( работает только с одним прибором), то щелчки реле цикличны, т.е. переключаются с жёстким ритмом, а когда подключаю все приборы для опроса - начинается разнобой со щелчками - то вместе включатся, то через небольшую паузу. Т.е. где-то на пути между и ОРС сервером какие-то задержки. Никак не пойму в чём дело.
И как правило к зависанию приводит такое действие: после запуска, переключаюсь на блок-схему и начинаю её двигать мышкой(левой кнопкой), процессор при этом сильно грузится(процентов на 50) и аут, т.е. теряет связь с ОРС сервером и постоянно находится в ожидании ответа, причём зависает именно на операции записи. Как бы там между и ОРС сервером како-нибудь буфер что-ли организовать?
-
Chupakabra
- professional
- Сообщения: 360
- Зарегистрирован: 21 янв 2009, 10:50
- Награды: 1
- Версия LabVIEW: 2015
- Откуда: Москва
- Поблагодарили: 4 раза
- Контактная информация:
Re: OPC сервер
Не читал, но осуждаю....
Ветку нет времени перечитывать, но хочу дать рекомендацию. Если в приборах есть modbus, то берите сторонний проверенный OPC сервер с поддержкой модбас, например kepware и пробуйте с ним.
Ветку нет времени перечитывать, но хочу дать рекомендацию. Если в приборах есть modbus, то берите сторонний проверенный OPC сервер с поддержкой модбас, например kepware и пробуйте с ним.
-
Vasiliy Baev
- leader
- Сообщения: 545
- Зарегистрирован: 31 окт 2011, 09:02
- Награды: 4
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Благодарил (а): 8 раз
- Поблагодарили: 10 раз
- Контактная информация:
Re: OPC сервер
willzon, если Вы поставили DSC, то почему не воспользуетесь всеми его преимуществами?
Вместо DS добавьте в проект OPC-client и посмотрите что получиться.
Вместо DS добавьте в проект OPC-client и посмотрите что получиться.
- Вложения
-
- Connect LabVIEW to Any PLC Using OPC - Developer Zone - National Instruments.pdf
- (2.54 МБ) 391 скачивание
Re: OPC сервер
А ничего не получается: с симуляторными объектами сервера работает, а выбираешь сервер ОВЕН - на этапе создания всё находится, все параметры видны, а когда запускаю - ничего, ОРС сервер Овена не запускается, соответственно, опрос модулей не ведётся и данные не идут.Vasa писал(а):willzon, если Вы поставили DSC, то почему не воспользуетесь всеми его преимуществами?
Вместо DS добавьте в проект OPC-client и посмотрите что получиться.
Запускаю OPC Quick Client из окна DSC сервера - и сервер Овен запускается, опрос идёт(но к это отношения не имеет). Что я делаю не так?
-
Vasiliy Baev
- leader
- Сообщения: 545
- Зарегистрирован: 31 окт 2011, 09:02
- Награды: 4
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Благодарил (а): 8 раз
- Поблагодарили: 10 раз
- Контактная информация:
Re: OPC сервер
Недавно помогал коллеги с настройкой OPC, ситуация была аналогична, описанной выше, помогла установка и настройка DCOM.Запускаю OPC Quick Client из окна DSC сервера - и сервер Овен запускается, опрос идёт.
http://www.labviewportal.org/viewtopic. ... C&start=15
В настройках OPC клиента в проекте включите логи ошибок и посмотрите что происходит.
-
Aleksey Feoktistov
- leader
- Сообщения: 898
- Зарегистрирован: 20 янв 2009, 00:15
- Награды: 6
- Версия LabVIEW: 2015
- Откуда: Tyumen
- Поблагодарили: 2 раза
- Контактная информация:
Re: OPC сервер
Я тоже горя хапнул с этим OPC сервером бесплатным (для приборов ОВЕН).willzon писал(а): А ничего не получается: с симуляторными объектами сервера работает, а выбираешь сервер ОВЕН - на этапе создания всё находится, все параметры видны, а когда запускаю - ничего, ОРС сервер Овена не запускается, соответственно, опрос модулей не ведётся и данные не идут.
Запускаю OPC Quick Client из окна DSC сервера - и сервер Овен запускается, опрос идёт(но к это отношения не имеет). Что я делаю не так?
Через OPC клиент LabVIEW опрос не идет (DCS модуль)
Потом решил сделать опрос через DataSocket и все удивительным образом заработало
-
Viktor
- expert
- Сообщения: 1408
- Зарегистрирован: 23 мар 2008, 10:56
- Награды: 4
- Версия LabVIEW: 2020
- Откуда: Санкт-Петербург
- Благодарил (а): 17 раз
- Поблагодарили: 3 раза
- Контактная информация:
Re: OPC сервер
Я работал с DCS модулем с Овеном Не помню точно, как настраивал Process mode: но это помоглоЯ тоже горя хапнул с этим OPC сервером бесплатным (для приборов ОВЕН).
Через OPC клиент LabVIEW опрос не идет (DCS модуль)
Потом решил сделать опрос через DataSocket и все удивительным образом заработало
Не забывайте про настройку DCOM
-
Aleksey Feoktistov
- leader
- Сообщения: 898
- Зарегистрирован: 20 янв 2009, 00:15
- Награды: 6
- Версия LabVIEW: 2015
- Откуда: Tyumen
- Поблагодарили: 2 раза
- Контактная информация:
Re: OPC сервер
Да, проверил. Настройка DCOM полностью решила проблему связи OPC-клиента (LabVIEW) с OPC-сервером (OPC-сервер ОВЕН).
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение