Комментарии 19
На старой работе была задача — снимать показания с счетчиков электроэнергии в машзале (~50 штук!). Посчитали, сколько это обойдётся если брать MOXA и родной софт от счетчиков и немного обалдели…
Но тут ктото вспомнил, что есть у нас сисадмин необычный (я) и поставили задачу сэкономить…
В итоге я отреверсил протокол обмена (Весьма простой) и запилил кучку аппаратных Zabbix-agent'ов на базе Arduino + enc28j60 + MAX232 (~500р всего, включая корпус)
В общем — начальство видит красивые графики в Zabbix и Graphana, а я получил некислую премию :P
Нечто похожее уже описывалось на хабре раза два. Правда там про электросчетчики «Меркурий 230» (И подобные) писали.
Собственно, так получилось, что когда я искал инфу по своим счетчикам статьи ещё небыло, а когда разобрался и начал писать прошивку под Arduino — вышла и статья… Эх, на неделю бы раньше — не пришлось бы мучится с реверсом протокола… :(
Себестоимость: 8 модулей, примерно по 500р за каждый (Примерно, т.к. тотже корпус сделал из одолженных у электриков пластиковых распред-коробок).
Zabbix сервер уже был.
Точно не скажу, сколько сэкономили, но получилось раз в 20 дешевле, чем если бы делали по рекомендациям производителей этих самых счетчиков (MOXA + их специализированный софт, который тоже немалых денег стоит)
Чип оказался с большим количеством аппаратных багов, основная часть которых проявлялась при работе с tcp/ip стеком (а ведь это фишка камня!), библиотека забита пометками //workaround. Прототип я сделал, но в продакшн решил не пускать из-за кривого кремния.
Основная идея использования w7500p была в удешевлении решения на stm32f4, но все уперлось в баги кремния.
Мы используем MOXA в своих работах. И давно уже хотелось снять с пользователя задачи по их настройке в случае нештатных ситуаций. Да и своим инженерам будет меньше мороки при первичной настройке изделия.
При этом дополнительно на скорость очень сильно влияет параметр Serial Command Mode, включенный по-умолчанию.
Лучше использовать Wiznet, если есть возможность.
p.s. Ещё вспомнил прикол про старые PCI платы CP-132. У них по-умолчанию в драйвере стоит настройка размера буферов «High». Но при этом плата теряла каждый шестнадцатый байт при передаче (или приёме, уже не помню, это было в середине 2000-х).
модель MOXA Nport device, в данном случае NPort 5232
Уважаемый Автор! Займусь немного некропостингом...
1. Хотелось бы сначала дать высокую оценку проделанному труду. Посидеть посниффать пакеты может любой, а вот составить мануал и две слегка отличающиеся публикации для сообщества - дорогого стоит. В этом вопросе Вы просто уникальны.
2. Теперь к ложке дегтя. Вы уверенно говорите, что берем dsci, тащим данные оттуда и все работает. Однако в реальности "справочника", на который Вы ссылаетесь, в природе нет. В библиотеке не прописаны, например, модели с индексом "А", как та, на которую Вы ссылаетесь в блоге (в части по эндианам). Скажу без обиняков, мне сразу вспомнилась шутка про преподающего профессора, который говорит "откуда очевидно", когда не знает, как произвести и обосновать какой-то этап вычисления, но не хочет показать это перед студентами.
Если я не прав, разъясните, пожалуйста, что я смотрю не туда и в какую сторону смотреть. Если Вы действительно не смогли разобраться с этой частью, напишите откровенно, так как по факту отсылка на dll не несет толком смысловой нагрузки и только сбивает с толку. А я, со своей стороны, готов поделиться какой-либо информацией, хотя на данный момент мне предоставить откровенно нечего.
MOXA Nport — взгляд изнутри