Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
|
||||
|
Вопрос о перезапуске слотов в крейтахВопрос о перезапуске слотов в крейтах. Речь в частности о LTR27. Есть два небольших крейта Есть OPC гейт, который организует 4 нитки и опрашивает модули путем -----Beginning of the citation-----
----- The end of the citation ----- Через какое-то время (может длительное, возможно это связано со скачками в сети хз, словом бывает) LTR27_Recv возвращает 0. В этом случае решено сделать перезапуск модуля. Для этого сначала я закрываю модуль -----Beginning of the citation-----
----- The end of the citation ----- и снова запускаю той же процедурой, что вначале.
----- The end of the citation ----- Так вот, при повторном вызове LTR27_Open эта функция возвращает LTR_WARNING_MODULE_IN_USE, не смотря что я его вроде бы остановил и закрыл. Вопрос - может можно как-то еще закрыть модуль, чтобы потом не получать LTR_WARNING_MODULE_IN_USE при повторном открытии? Может это сообщение связано с тем, что в этом крейте есть еще один (работающий) слот LTR27? |
|||
|
||||
|
Re: Вопрос о перезапуске слотов в крейтахВообще LTRXX_Close, если Вызывается и вызывается успешно, то должен закрывать ранее открытое соединение. Точно он у Вас вызывается по любой ветке при перезапуске? В принципе модуль можно гарантированно полностью сбросить, разорвав все соединения с ним через управляющее соединение со службой с помощью LTR_ResetModule(), но как правило при корректной работе это не требуется. Модули в других слотах никак не влияют на соединение, количество соединений считается по каждому слоту и к одному модулю при повторном соединении выдается данное предупреждение |
|||
|
||||
|
Re: Вопрос о перезапуске слотов в крейтахАлексей L Card пишет:
В процедуру нити передается указатель объекта слота - процедура одна для всех нитей модулей. Так что я закрываю именно тот и только тот модуль у которого была ошибка по LTR27_Recv. Правда как я увидел я не анализировал результат функции LTR27_Close. А в каком месте лучше вызывать LTR_Reset_Module если все таки попробовать это делать? Нужно ли в этом случае вызывать LTR27_ADCStop и LTR27_Close? События перезапуска из-за срыва данных очень редкое. Вот например как у меня выглядит функция остановки модуля с функцией LTR_Reset_Module:
Всё работает и закрывается при штатном закрытии гейта. |
|||
|
||||
|
Re: Вопрос о перезапуске слотов в крейтахПопробовал вышеописанную функцию: Однако LTR27Open срабатывает после уже без LTR_WARNING_MODULE_IN_USE. |
|||
|
||||
|
Re: Вопрос о перезапуске слотов в крейтахСорри - после того как я сегодня обновил драйвер lcomp модуль стал закрываться и без LTR_ResetModule. Только что проверил это. Видимо разность версий драйвера и LTR софта как-то сказывалась. Вопрос закрылся короче. Извиняюсь за лишние сообщения. |
Страницы 1
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2
Многоканальный телефон:
+7 (495) 785-95-25
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск