Перемещение системы сбора данных на основе .NET для удаленной автоматической установки? - PullRequest
0 голосов
/ 07 июня 2011

Мне нужно сделать несколько довольно простых (по крайней мере, на поверхности) сбор и регистрацию данных.В удаленном месте (как, например, на другом континенте) будет несколько устройств RS-485 (наш пользовательский аппаратный продукт), использующих собственный протокол, плюс метеостанция (анемометр и флюгер).Для метеостанции у меня есть несколько вариантов: один выводит скорость ветра как частоту прямоугольной волны, а направление - как аналоговое напряжение;другой связывается через USB, используя HID-интерфейс.Машина, к которой подключаются эти устройства, должна собирать данные, регистрировать их и периодически передавать их через Интернет через соединение WiFi.Эта передача может быть как push, так и pull, то есть я могу периодически получать удаленный доступ к машине, чтобы получать последние данные, или машина может периодически выгружать данные на FTP-сайт или в веб-службу.Эта машина должна быть установлена ​​на чердаке, поэтому она должна работать надежно, без присмотра за детьми, и она должна выживать в окружающей среде (температура, влажность, твари).

У меня есть приложение .NET, которое выполняет большую частьэто уже написано для .NET 4. Это интерактивное приложение с графическим интерфейсом, которое отображает измеренные данные и записывает их в файл.(У меня фактически есть две версии с небольшими отличиями - одна на основе Winforms, а другая WPF.)

У меня есть около недели, чтобы разработать решение для удаленной установки, включая определение и покупку любогонеобходимое оборудование, выполняя любое необходимое кодирование и заставляя его работать.Ох, и это должно быть дешево.(Например, было бы неплохо менее 500 долларов. Все, что больше 1000 долларов, будет непростым.)

Некоторые вещи, о которых я подумал или которые мне предложили:

  • Используйте дешевый нетбук с интерфейсом RS-485-USB. Ну, возможно ... но я действительно не ожидаю, что это сохранится в окружающей среде.Например, жесткому диску не понравится сильная жара или холод.SSD - вариант, но это как минимум еще 100 долларов, и я до сих пор не уверен, что машина выдержит влажность и твари.Я мог бы положить его в корпус, но это еще один расход.В общем, я просто чувствую, что этот подход намного дороже и сложнее, чем он должен быть, и вряд ли будет таким надежным.
  • Используйте небольшой одноплатный или промышленный компьютер. Как правило, они имеют повышенную прочность, и во многих есть порты RS-485 и встроенные сторожевые таймеры. Некоторые даже имеют цифровые входы / выходы общего назначения.До сих пор я не нашел ни одного с аналоговым входом напряжения, но они, вероятно, также существуют.Кроме того, они обычно используют карту памяти CompactFlash для хранения.Это похоже на правильный краткосрочный подход, но те, которые используют Windows, обычно используют какую-то встроенную версию (например, Windows CE или Windows XP Embedded) - что, вероятно, замечательно, за исключением того, что у меня нет опыта работы с ними, и я неЯ знаю, сколько потребуется работы, чтобы установить и запустить мое программное обеспечение.Кроме того, они, как правило, имеют процессоры с очень низким энергопотреблением, и я действительно не знаю, какая мощность мне нужна.Мое приложение прекрасно работает на современном рабочем столе;Я понятия не имею, будет ли он работать нормально на одном из этих младших процессоров.Некоторые из них заявляют, что они совместимы с .NET 2.0, но я ничего подобного не видел, поэтому, по крайней мере, мне, вероятно, придется перенести все обратно на .NET 2.0.О, и многие из этих компьютеров, которые я нашел до сих пор, довольно дороги.
  • Использование беспроводного последовательного сервера . Эти вещи устанавливают последовательный порт в сеть.Вы можете подключиться к нему удаленно, и последовательный порт выглядит как локальный COM-порт, хотя он может быть расположен в любой точке мира.Это своего рода опция для RS-485.Это позволяет избежать необходимости удаленного администрирования ПК и заставить мое программное обеспечение работать удаленно.Однако меня беспокоит пропускная способность и надежность интернет-соединения с другой стороной мира, и это не помогает с устройством USB HID.(Хотя, если это окажется хорошим подходом, я мог бы найти версию этого устройства для RS-485.)
  • Использовать регистратор данных. Это также, кажется, довольно дорого - особенно те, которые с WiFi - и я не нашел ни одного, который делает все, что мне нужно.В частности, высокая скорость передачи данных и собственный протокол наших устройств RS-485, по-видимому, являются препятствием.(Многие из них предназначены для работы с устройствами MODBUS.) Метеостанция на основе USB HID не будет работать с таким подходом, поэтому мне придется использовать ту, которая выводит частоту и напряжение.
  • Используйте недорогое встроенное решение для микроконтроллера. В долгосрочной перспективе (например, в будущих проектах), это, вероятно, лучший подход.Это дешево, и я могу запрограммировать его на то, что мне нужно.Однако я не вижу, как я справлюсь с этим через неделю.Это полное переписывание моего программного обеспечения и освоение нового процессора и среды разработки.

У кого-нибудь есть опыт решения подобных проблем?Какой самый простой, дешевый, самый надежный способ, который вы можете придумать, чтобы осуществить это?На какие продукты или подходы я должен смотреть?

Ответы [ 2 ]

1 голос
/ 07 июня 2011

Может быть NetDuino + может помочь. Это дешево, но вам придется подумать о блоке питания, преобразователе RS232 <> RS485, WiFi и корпусе. Он поддерживает .NET Micro Framework, поэтому вы можете использовать большую часть кода C #. Он также имеет аналоговый и цифровой ввод-вывод. GESBC-9260S имеет встроенный RS485, дополнительный WiFi, аналоговый и цифровой IO. На нем установлен Linux, так что вы, вероятно, можете использовать Mono для использования своего кода .NET.

0 голосов
/ 28 июня 2011

Я закончил с CompuLab fit-PC2 под управлением Windows Embedded Standard 7 . Для входа RS-485 я использовал изолированный интерфейс RS-485-USB от B & B Electronics . В итоге я пропустил интерфейс с анемометром и лопастью, что значительно упростило проблему, поскольку теперь мне нужно было только общаться с моими последовательными устройствами RS-485.

Fit-PC оказался отличным решением:

  • Это дешево (я заплатил менее 400 долларов за модель 8-ГБ SSD из Amazon )
  • это эффективно (только 8 Вт при полной загрузке процессора и 0,5 Вт в режиме ожидания !)
  • имеет встроенный WiFi и проводной Ethernet
  • автоматически включается и перезагружается после сбоя питания
  • имеет аппаратный сторожевой таймер, который может автоматически перезагружать компьютер, если он зависает
  • это крошечный и прилично прочный

С Windows Embedded оказалось очень легко справиться. Я перенес свое приложение в службу Windows, которая автоматически запускается при запуске системы и выводит данные в удаленную базу данных MySQL. Встроенный Windows не включает в себя функцию .Net 4, поэтому мне пришлось установить ее отдельно, но в остальном все прекрасно переносилось с моей системы разработки на встроенную систему.

...