Необработанное исключение

Просмотр 5 сообщений - с 1 по 5 (из 5 всего)
  • Автор
    Сообщения
  • #7172
    Аватарcropas
    Участник

    Конфигурация системы, контроллер на базе всем известной игрушка Arduino элементная база Atmel ATmega328. По стандартному протоколу modbus связана с сервером Rapid Scada. В целом система используется в частном доме для контроля различных параметров окружающей среды и управлением несколькими исполнительными устройствами, насосами и вентиляторами.
    Система работает связь с контроллером есть данные передаются команды на управление принимаются и исполняются.
    Работает система произвольное количество времени, может сутки, может несколько часов а может и несколько дней, но всегда завершается с одинаковой ошибкой, при этом в логах сервера ничего не отображается. А вот работа коммуникатора прекращается он переходит в состояние остановлен и в логах имеются следующие сообщения:

    <система><EXC> Необработанное исключение: System.ObjectDisposedException: Safe handle has been closed
       at System.Runtime.InteropServices.SafeHandle.DangerousAddRef(Boolean& success)
       at System.StubHelpers.StubHelpers.SafeHandleAddRef(SafeHandle pHandle, Boolean& success)
       at Microsoft.Win32.UnsafeNativeMethods.GetOverlappedResult(SafeFileHandle hFile, NativeOverlapped* lpOverlapped, Int32& lpNumberOfBytesTransferred, Boolean bWait)
       at System.IO.Ports.SerialStream.EventLoopRunner.WaitForCommEvent()
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()

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

    #7174
    MikhailMikhail
    Модератор

    Скорее всего проблема связана с преобразователем COM-порта, который используется. В Коммуникаторе происходит «отлов» ошибок, которые выполняются в его коде. Данная ошибка не была поймана, потому что она ближе к системной.
    Я бы рекомендовал организовать подключение Arduino по локальной сети, это более универсальный и надежный вариант.

    #7176
    Аватарcropas
    Участник

    К сожалению в Arduino модуль Ethernet реализован не полноценно и сам контроллер зависает периодически используя данный модуль, особенно при использовании его совместно с флеш памятью и часами реального времени. Я уже заказал другой преобразователь интерфейсов USB-485 попробую использовать его. Вопрос есть ли возможность контролировать состояние службы коммутатора и запускать его автоматически если он остановлен. Система Win serv 2008R2. Пока хочу использовать планировщик заданий и раз в час перезапускать данную службу. SCADA используется для сбора статистических данных а так же реализована возможность управления исполнительными устройствами в ручном и авто режимах, + контроль состояния контроллера. Планируется в будущем использовать несколько устройств в modbus шлейфе вариант с Ethernet практически не реализуем, хотя бы в виду уже проложенного двужильного кабеля в доме.

    #7177
    Аватарcropas
    Участник

    Собственно еще вопрос есть ли возможность использования exe файла коммутатора с ключами в командной строке, запуск остановка перезапуск, где об этом можно почитать?

    #7178
    Аватарcropas
    Участник

    То что сделал сейчас (может кому пригодится), в оснастке администрирования сервера «Службы» нашел службу ScadaCommService, в свойствах службы во вкладке «Восстановление» указал действия компьютера при сбое службы «перезапуск службы». Теперь по идее при остановке службы ОС будет ее перезапускать. Пока тестирую данную функцию надеюсь это решит проблемы остановкой службы.

Просмотр 5 сообщений - с 1 по 5 (из 5 всего)
  • Вы должны авторизироваться для ответа в этой теме.