Category: Modbus

Сен 22 2013

Обновление ModbusEasy

ModbusEasy — моя утилита для работы с протоколом Modbus.

Утилита opensource, исходники и бинарники доступны для скачивания здесь: https://github.com/arktur04/modbuseasy/archive/master.zip.

Добавлены несколько команд:

getdb -a  -получить список всех переменных в текущей конфигурации

getdb <varname>  -получить текущее значение переменной

setdb <varname>  -установить текущее значение переменной

 

Также добавлено простое консольное приложение, работающее с modbuseasy в режиме slave. Оно изменяет по таймеру значения двух переменных и может использоваться как для тестирования приложений, работающих с протоколом Modbus в режиме master.

Также данное приложение может служить примером работы с modbuseasy и основой для написания собственных программ, работающих с modbuseasy.

Все исходники на C#.

Май 14 2013

Утилита для работы с протоколом Modbus

Написал простую утилиту для работы с протоколом Modbus. Утилита поддерживает работу как в режиме Master, так и в режиме Slave, что позволяет не только обращаться к устройству по шине Modbus, но и эмулировать устройство. Утилита пока поддерживает только протокол Modbus RTU, функции 1-6, 15, 16.

Графического интерфейса нет (и пока не предвидится), конфигурируется из файла xml, его структура проста и понятна, его легко можно править руками.

Пока функциональность утилиты минимальна, буду ее улучшать, когда будет на это время. В ближайших планах — поддержка Modbus TCP.

Утилита написана на C#.

Скачать исходники можно здесь: https://github.com/arktur04/modbuseasy

Ссылка на скачивание бинарника: https://www.box.com/s/ob8938m0cl93oglktnm6

 

Июн 24 2012

Модуль аналогового ввода

Модуль аналогового ввода со снятым корпусом:

Нажмите на фото для увеличения

Технические характеристики:

  • 8 каналов разрядностью 16 или 24 бита (в зависимости от того, какие микросхемы АЦП установлены)
  • каналы  изолированы друг от друга и от источника питания (напряжение изоляции 1 кВ)
  • типы входов:
  • ток 0-20 мА (4-20 мА),
  • напряжение 0-70 мВ (для подключения термопар)
  • напряжение 0-10 В
  • токовые входы защищены самовосстанавливающимися предохранителями
  • встроенный калиброванный датчик температуры с погрешностью не более 1 °С, служит датчиком температуры холодного спая
  • контроль обрывов входных цепей термопар (состояние цепи отображается в логическую переменную, доступную по Modbus)
  • по Modbus доступны как напряжения входов термопар в мВ, так и значения температуры
  • порт RS-485, поддержка протокола Modbus (возможне поддержка протокола DCON)
  • порт RS-232 (опционально, для большего удобства подключения к компьютеру)
  • порты гальванически изолированы
  • каждый канал имеет индикатор состояния (выключен, в работе, обрыв)
  • Напряжение питания 24 В
  • Установка на DIN-рейку
  • Еще фото (под катом)

    Read more »

    Июн 12 2012

    Модуль аналогового ввода

    Образец модуля аналогового ввода, предназначенный для лабораторных испытаний.

    Рис. 1. Модуль аналогового ввода с поканальной развязкой.

    Read more »

    Дек 13 2010

    Очень старая разработка

    Контроллер для промышленного применения. Содержит 4 входа термосопротивлений, 6 дискретных входов и 8 выходов реле (220 В, 5 А) и интерфейс связи Modbus (RS-485). Всё это работает под управлением микроконтроллера Fujitsu.

    С крышкой он выглядит так (под катом):

    Read more »

    Дек 12 2010

    Интерфейс прибора

    Интерфейс прибора реализован на базе монохромного индикатора разрешением 128х64, и включает в себя 35 различных экранов, в которых выполняются все манипуляции с прибором, включая его наладку и тестирование всех узлов (ЦАП, АЦП, все дискретные входы и выходы), установку параметров алгоритма обработки сигналов (DSP), а также все переменные настройки прибора (более 200 переменных).

    Программно интерфейс реализован в виде библиотеки классов C++, представляющих элементы управления (кнопки, поля ввода, текстовые поля и пр.)

    Так это выглядит в натуральном виде:

    Ещё  несколько картинок под катом.

    Read more »

    Дек 05 2010

    Старый прибор

    Фотография старого прибора, для которого я разрабатывал прошивку.

    Кроме разработки программного обеспечения, я также отлаживал некоторые узлы прибора, принимал участие в испытаниях, а также частично разрабатывал документацию на прибор.

    Прибор содержит микроконтроллер с ядром ARM7 (фирмы Atmel), и имеет 8 каналов АЦП (16 бит), 8 каналов ЦАП (12 бит), 16 дискретных входов, 16 дискретных выходов, 2 силовых выхода управления ТЭНами, интерфейсы RS-232 и RS-485 (протокол Modbus). Все входы и выходы прибора имеют гальваническую изоляцию друг от друга.

    Сен 17 2010

    Протокол Modbus в устройствах на базе микроконтроллеров. Часть 2.1. Программная поддержка протокола

    Для поддержки протокола Modbus RTU программа должна принимать символы, поступающие в порт и размещать их в буфере приёма. Признаком окончания сообщения служит тайм-аут, т.е. прекращение поступления символов в течение 3,5 — 4.5 длительностей передачи одиночного символа.

    По окончании приёма сообщения управление должно передаваться специальному обработчику, который декодирует команду протокола, исполняет её, и формирует строку ответа, которая размещается в буфере передачи.

    Передача ответа также ведётся с помощью прерываний. Начало передаваемого сообщения размещается в аппаратном буфере UART, при его исчерпании формируется прерывание, и буфер заполняется снова.

    Работа с сообщениями ModbusASCII происходит аналогичным образом, за исключением того, что признаком конца приёма сообщения служит не тайм-аут,  а специальный символ конца сообщения.

    В этой статье будет рассмотрен только режим Modbus RTU, как наиболее распространённый в настоящее время.

    Read more »

    Май 16 2010

    Протокол Modbus в устройствах на базе микроконтроллеров. Часть 1.4

    Продолжение. Начало здесь: http://32bit.me/?p=355 — введение; http://32bit.me/?p=373 — часть 1.0; http://32bit.me/?p=377 — часть 1.1; http://32bit.me/?p=395 — часть 1.2; http://32bit.me/?p=406 — часть 1.3.

    Перед тем, как перейти к программной реализации поддержки протокола Modbus, необходимо прояснить ещё один вопрос.

    Регистры протокола (3х и 4х) имеют разрядность 16 бит, а значения переменных, которые требуется передавать, часто имеют разрядность 32 бита. Каким образом 32-битные переменные передаются в 16-битных регистрах?

    Read more »

    Май 16 2010

    Протокол Modbus в устройствах на базе микроконтроллеров. Часть 1.3

    Продолжение. Начало здесь: http://32bit.me/?p=355 — введение; http://32bit.me/?p=373 — часть 1.0; http://32bit.me/?p=377 — часть 1.1; http://32bit.me/?p=395 — часть 1.2.

    Кратко рассмотрим обмен данными между ведущим и ведомым устройством для других типов регистров.

    Read more »