Jump to content
kandiral

Мой вариант реализации Modbus Slave RTU/ASCII для Arduino

Recommended Posts

Сделал простой обработчик Modbus(RTU/ASCII) для микроконтроллеров Arduino

Обрабатываются функции:
Read Holding Registers 0x03
Read Input Registers 0x04
Write Holding Register 0x06
Write Holding Registers 0x10


Подробное описание и пример использования можно посмотреть по ссылке
http://kandiral.ru/arduino/modbus_slave_na_arduino.html

В примере передаются данные из микроконтроллеров в программу на Delphi следующих типов:
int, word, unsigned long, long, float, string(массив символов)
А также передаются данные напрямую из/в EEPROM

Старался сделать максимально простой простой с минимальным использованием ресурсов контроллера.

Если будут выявлены ошибки или возникнут предложения по доработке, пишите исправим и обсудим.

Share this post


Link to post
Share on other sites

Вам на СИ не попадалась библиотека для Modbus RTU slave?


Пока ты жив, надежда есть.

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By LodestaRgr
      Доброго времени суток, форумчане. У меня мало опыта в микроэлектронике, прошу знающих помочь и подсказать?
      Идея сделать из обычных весов, wi-fi IP весы по аналогу CAS для подключения с торговому оборудованию по средствам локальной сети.
      За базу взял весы ГАРАНТ ВПС-40М




      http://www.datasheet-pdf.com/PDF/SDI5209T-Datasheet-SOLIDIC-1238977
      Подключение к локальной сети через Wi-Fi пытаюсь реализовать при помощи платформы NodeMCU на основе модуля ESP8266 (аналог Arduino c модулем wifi)

      Проблем с подключением по WiFi к торговому оборудованию (выбираю модель IP весы производства CAS) не возникло, программа получает вес который я указываю.
      Не могу разобраться как получить нужный сигна (сам вес от весом) от контроллера SDI5209T.
      На сколько я понял он использует интерфейс I2C на ножках 3 и 5. (опыта в работе с I2C еще не было)
      Подключаю его к NodeMCU (ножки GPIO 0, GPIO 4 - напряжения просто включаю весы), запускаю скетч сканера I2C портов
      https://www.instructables.com/id/ESP8266-I2C-PORT-and-Address-Scanner/
      и каждый раз получает разные адреса устройств по 26 по 4, 5 и т.д. т.е.
      Помогите, может советом, как мне словить сигнал веса с данного контроллера?
       
    • By Basters
      Доброго времени суток. 
       
      Идея
      Довольно давно у меня появилась идея сделать во дворе подсветку (именно подсветку, не освещение) дорожек с учетом максимальной экономии электричества.
      Экономию электричества, по моим прикидкам, я бы мог обеспечить за счет работы конечных потребителей в режиме, скажем, 10-20% от их мощности. В случае, когда кто-то пришел домой, т.е. сработал какой-то из датчиков движения, либо препятствия, по заранее заданному алгоритму потребители выдают 100% мощности в течении заданного времени, после чего возвращаются обратно к тусклому свету.
      По моему мнению я буду иметь возможность не в полной тьме дойти до двери дома, а также территория будет аккуратно, не броско, подсвечена в момент, когда потребители работают в режиме экономии.
      Кроме того, есть идея связать это все с приложением в телефоне, с возможностью настройки этого всего действа, а так же переключения всевозможных режимов при желании. Отсюда выросла необходимость использовать что-то вроде Arduino, либо nodemcu.
       
      Идея реализации
      Возможно более опытные пользователи меня поправят, но вот как я решил реализовать этот проект.
      Т.к. провода между лампами будут находиться в земле, решено было использовать слаботочку, во избежание нежелательных сюрпризов.
      Питание всей этой схемы будет располагаться где-то в доме, через некий БП я получу из 220 AC необходимый мне 24 DC, после чего, будет запитано N потребителей параллельно. На данный момент я не знаю сколько точно потребителей мне необходимо, т.к. точное число я планировал вывести после тестов "в бою", но пусть будет не более 20. На тестовый период - 5.
      Я начал поиск LED Dimmable ламп и заказ для теста два варианта РАЗ, ДВА. 
      Лампы я решил монтировать в копеечные столбики IKEA/Леруа/(другой магазин), которые изначально идут в виде втыкающихся в землю грибков для сада, работающих на аккумуляторе, который заряжается от солнечной батареи. Т.к. эти столбики довольно копеечные, я мог бы выбросить их электронное содержимое, соединить их через ножки под землей, а на место ламп установить что-то, что мне подходило бы.
      Со одной стороны, это не бросалось бы в глаза днем, практически не мешалось, а ночью помогало комфортно передвигаться.
      К данному посту я прикрепил рисунок от руки для лучшего (надеюсь) понимания схемы. (схемы рисовать как видно умею не очень)
      Если есть идеи по реализации - я буду рад!
       
      Вопросы
      Здесь начинается самое интересное. Если взаимодействие с ардуиной, мобильным приложением и т.п. мне довольно понятно, т.к. я имею опыт программирования и разработки, то вот в плане электроники - печаль. У меня есть базовые знания электроники, но их к сожалению не достаточно, чтобы понять куда двигаться. Из того, что я смог прочесть в интернетах, я понял что многое зависит от самой лампы, а точнее ее контроллера. Но о лампах которые я заказал я знаю только то, что у них стоит пометка Dimmable на алишке и что в теории они должны управляться ШИМом, но я в этом не уверен.... На всякий случай я прикреплю фото одной из них....
       
      Хотелось бы помощи и совета в сборке диммера, который смог бы контролировать в паре с ардуинкой весь этот зоопарк. Я видел уже кучу реализаций, на таймерах разных и других микросхемах, но ввиду отсутствия опыта я понятия не имею что мне стоит использовать и что будет лучше.
      Кроме того, я еще думал о замене ламп на трех ватные смд светодиоды, но проблема все так же, нет понимания как лучше это все собирать.
       
      Заранее спасибо!




    • By Swah
      Я мало разбираюсь в схемотехнике, но этот Проект на tinyAVR(что ето вообще за древняя штука) хочу сделать на ардуино. Т.к Ардуино у меня есть а  tinyAVR нет.

       Вот ссылка на Word файл. Кто может помочь с скетчем и схемкой.
      https://drive.google.com/file/d/1P5sgOSEaZMXmB6ws-ThD7XMu_FS70FwP/view?usp=sharing

      И подойдет ли просто камера смартфона?
    • By Spyro1313
      Помогите убогому, пожалуйста!
      Проблема: Собрана и проверена схема сигнализации (компилируется и загружается).При введении в схему сигнализации модуля ИК с пультом дистанционного управления, не проходит компиляция. Схема ИК модуля отдельно без изменений из проекта сигнализации - компилируется и загружается (как отдельный проект ) на ура!!!
      При проверки проекта сигнализации с модулем ИК Arduino IDE ВЫДАЕТ ОШИБКУ:
      Arduino: 1.8.9 (Windows 10), Плата:"Arduino/Genuino Uno"
      Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':
      (.text+0x0): multiple definition of `__vector_7'
      libraries\IRremote\IRremote.cpp.o (symbol from plugin):(.text+0x0): first defined here
      collect2.exe: error: ld returned 1 exit status
      Несколько библиотек найдено для "IRremote.h"
      Используется: c:\Program Files (x86)\FLProg\ideV3\portable\sketchbook\libraries\IRremote
      Не используется: c:\Program Files (x86)\FLProg\ideV3\libraries\IRremote
      exit status 1
      Ошибка компиляции для платы Arduino/Genuino Uno.
      Этот отчёт будет иметь больше информации с
      включенной опцией Файл -> Настройки ->
      "Показать подробный вывод во время компиляции"
      ==================================================================
      Явно проблема с библиотеками.Не могу разобраться.Что делать?Подскажите...
    • By Macca
      Напривозил много оригинальной электроники
      Имеется большой каталог с микроконтроллерами и расширителями для них.
      Москва. Возможно доставка в другие города. Сергей, физ. лицо, 89776100987
      Можно обращаться в WhatsApp и Telegram по всем вопросам

       
      Малинка:
      Raspberry Pi 3 B+ - 2400руб
      Raspberry Pi 3 А+ - 1700руб
      Sparkfun Набор Raspberry Pi 3 А+, адаптер питания, корпус, microSD 16Гб - 2400руб
      Sparkfun Набор Raspberry Pi zero W, microSD 16 ГБ, HDMI кабель,USB OTG-кабель, адаптер питания - 2500руб
      Vilros Набор Raspberry Pi 3 B+, корпус, адаптер питания, HDMI кабель, microSD 32Гб, картридер, радиаторы - 4200руб
      Sparkfun Набор Raspberry Pi 3 B+, Pi Wedge, FTDI Basic Breakout 3,3 В, Макет Полноразмерный (голый), черный Pi Tin, MicroSD 16 ГБ, картридер, Разноцветные пуговицы (4 шт), Ассорти из светодиодов (20 шт), Резистор 330 Ом 1/6 Вт PTH (20 шт.), Raspberry Pi GPIO Ленточный кабель 40-контактный, USB Mini-B Кабель, адаптер питания, Соединительные провода (10 пакетов), cтандартные проволочные перемычки (30 шт.) - 5200руб
      OddWires Набор Raspberry Pi 3 B+,16 ГБ microSD-карта класса 10, адаптер питания, CP102 USB для последовательного адаптера, Raspberry Pi прозрачный чехол, HDMI кабель, GPIO кабель и коммутационная плата,MCP3008 Микрочип 8-канальный 10-битный АЦП, модуль джойстика, ИК пульт дистанционного управления с батареей, макеты, провода, перемычки, ассорти светодиоды,RGB LED,Пьезо Зуммер Пассивный и Активный, переключатели, резисторы - 5000руб
      Raspberry Pi Infrared Camera Module – 1300руб
      Raspberry Pi Camera module v2 - 1500руб
      Raspberry Pi Touchscreen – 4000руб
      Raspberry Pi UPS Hat - 1100руб
      ReSpeaker 4-микрофонный массив для Raspberry Pi - 1800руб
       
      Ардуино:
      Pro Micro ATmega32U4 3.3В/8МГЦ - 1300руб
      Pro Micro ATmega32U4 5В/16МГЦ - 1300руб
      Arduino Pro Mini 328 3.3В/8МГЦ - 650руб
      Arduino Pro Mini 328 5В/16МГЦ - 650руб
      Arduino Mega 2560 R3 - 2400руб
      Arduino Due - 2700руб
      Arduino Uno Rev3 – 1300руб
      LilyPad Arduino USB - ATmega32U4 Board - 1600руб
      LilyPad Arduino 328 Main Board - 1000руб
      Arduino Fio - 1800руб
      Arduino Mkr1000 - 2300руб
      Arduino Mkr Vidor 4000 - 5000руб
       
      Teensy 3.6 - 2000руб
      Teensy 3.2 - 1300руб
      Teensy 2.0 – 1000pуб
       
      BeagleBone Black rev C – 3200руб
      BeagleBone Black – 2500руб
      BeagleBone Blue – 4500руб
      BeagleBone Pocket – 1600руб
       
      Искусственный интеллект:
      NVIDIA Jetson Nano Developer Kit - 7500руб
      Google Coral Development Board - 9500руб
      NVIDIA Jetson AGX Xavier Module - 45500руб
      NVIDIA Jetson Xavier - 65000руб
      Coral environmental sensor board v 1.0 – 1600руб
      Intel Neural Compute Stick 2 – 7000руб
      Coral Camera CA1 -1600руб
       
      Прочие платы:
      STEMTera (Black) - 2800руб
      Mbed v014.1 - 4000руб
      Mbed v005.1 - 3600руб
      Стартовый набор SparkFun Qwiic для Onion Omega - 9000руб
      LattePanda Alpha 864 – 20000р
      Automic Pi – 2500руб
      Pine H64 “Model B” 3Gb – 2800руб
      Rock64-1G – 1600руб
      Odroid XU4Q – 3000руб
      Adafruit Metro 328 Starter Pack - 2800руб
      Adafruit Trinket M0, for use with CircuitPython & Arduino IDE - 600руб
      Adafruit GEMMA M0, Miniature wearable electronic platform - 650руб
      SparkFun gator:bit v2.0, micro:bit Carrier Board - 1200py6
      micro:bit Board - 900руб
      HackRF One - 19500руб
      LimeSDR Mini - 12500руб
      LimeSDR - 22500руб
      bladeRF 2.0 micro xA4 - 31000руб
      SparkFun PicoBoard - 3000руб
      SparkFun Stepoko - 10000руб

      Лидары и камеры:
      Raspberry Pi Camera module v2 - 1500руб
      Pixy2 CMUcam5 - 3600руб
      CMOS Camera Module - 2000руб
      OpenMV m7 - 4500руб
      IR Array Breakout, 55 Degree FOV, MLX90640 (Qwiic) - 4500руб
       
      Набор FLIR Радиометрический Lepton Dev - 13000руб
      +PureThermal 2 интеллектуальная плата ввода / вывода FLIR Lepton Smart - 6000руб
       
      RPLidar A2M8 360градусов Laser Range Scanner – 20000руб
      RPLidar A3M1 360градусов Laser Range Scanner – 38000руб
      TFMini – Micro Lidar Module – 2500руб

       
      Расширители:
      Thing Plus ESP32 WROOM - 1400руб
      ESP8266 Thing Dev Board - 1100руб
      WiFi Module ESP8266 - 450руб
      Adafruit Feather HUZZAH with ESP8266 Loose Headers - 1100руб
       
      SparkFun GPS Logger Shield – 3300руб
      GPS Mouse GP-808G (72 Channel) – 2500руб
      SparkFun Venus GPS with SMA Connector – 3300руб
      SparkFun GPS-RTK Board, NEO-M8P-2 (Qwiic) - 13000руб
      Adafruit Ultimate GPS Breakout - 66 channel w/10 Hz updates Version 3 - 2600руб      
       
      CAN-BUS Shield – 1700руб
      Bus Pirate v3.6 1700руб, с кабелем – 2000руб
      Wireless Motor Driver Shield - 1800руб
      microSD Shield - 1000руб
      Vernier Interface Shield - 1600руб
      MP3 Player Shield - 1800руб
      Weather Shield - 2600руб
      Monster Moto Shield - 4700руб
      EasyVR Shield 3.0 Для распознавания голоса – 3300руб
      XBee Shield — 1000руб
      OpenLog - 1000руб
      Sound Detector (с ножками) — 750руб
      EasyDriver - Stepper Motor Driver – 1000руб
      Big Easy Driver — 1300руб
      URM37 V5.0 Ультразвуковой датчик для Arduino/RaspberryPi - 950руб
      URM04 Ультразвуковой датчик (RS485) - 1700руб
      2x1A моторный щит постоянного тока для Arduino 650руб
      Винтовой щит для Arduino - 500руб
      Набор беспроводных джойстиков  - 2500руб
      Усилитель тензодатчика SparkFun HX711 - 650руб
      SparkFun Simultaneous RFID Reader, M6E Nano  - 13000p
      SparkFun RS232 Shifter SMD - 1000руб
      Pro nRF52840 Mini, Bluetooth Development Board - 2000руб
      THAT 1646 OutSmarts Breakout - 1000руб
      RedBoard Turbo, SAMD21 Development Board - 1650руб
      SparkFun Barometric Pressure Sensor Breakout, MPL115A1  - 900руб
      Little Soundie Audio Player - 1000руб
      XBee Explorer Serial - 1300руб
      Music Instrument Shield - 2100руб
      SparkFun Environmental Combo Breakout, CCS811/BME280 (Qwiic) - 2300руб
      PN532 NFC/RFID controller breakout board v1.6 - 2400руб
      Adafruit Motor/Stepper/Servo Shield for Arduino v2 Kit – v2.3 - 1300руб
      Adafruit 9-DOF Absolute Orientation IMU Fusion Breakout, BNO055 - 2300руб




  • Сообщения

    • Собрал Маску на одной из плат,начала заводиться на 18 частоте,на 8-й все хорошо.Стал щупом после С1,осцил на 8кгц все нормально,но переключив на 18кгц,начал показывать частоту то 4,то 2 с копейками,ставлю щуп прямо на вход приемной катушки-все хокей,две частоты в наличии,меняю С1 на другую пленку 47нан и все заработало,как надо.До этого стояла емкость 47нан голубого цвета,может быть такой попался или именно этого типа ,но на высокой частоте он не работал.Написал чтобы имели ввиду,это одна из причин так называемой "заводки" прибора. 
    • Достойный отход!..Это виртуальный мир! Здесь не надо некому и нечего доказывать! Здесь каждый человек остаётся при своём мнении!
    • DB25  -  150р за все IDC10 на шлейф - 150р за все DIN41612R - 90р за все SL62  - 50р за оба ELTRA - 499р за шт NC4FAH-0 (пластик монтаж на печ плату 4 контакта "мама")  https://www.neutrik.com/en/product/nc4fah-0   -  10 шт по 178р  NC4MD-L-1 (метал монтаж на панель 4 контакта "папа")  https://www.neutrik.com/en/product/nc4md-l-1  -  9шт  по 219р NC4MD-LX (метал монтаж на панель 4 контакта "папа")  https://www.neutrik.com/en/product/nc4md-lx  - 2ш по 267р NC4FD-L-1 (метал монтаж на панель 4 контакта "мама") https://www.neutrik.com/en/product/nc4fd-l-1  - 2ш по 368р Два кабельных разъема 4 контакта "папа"  (производителя не знаю)  - 2шт по 188р PBD-80R  более 100шт - по 5р PLD-80  - 100шт по 10р
    • я работаю в бизнесе - и мой опыт и сфера - дает понимание - что - мы все в одной подводной лодке ) и от того насколько заполнены карманы у всех - насколько и мне хорошо - сам по себе - это старое совковское отношение - которое давно пора забыть - этого просто нет и быть не может - в силу рыночной экономики , меня поражает иной раз это мышление ,извините - но это савок и отсутствие своего - я - или по другому - гражданского общества - суть сегодняшних проблем , потому меня это волнует - я зависим от рынка)
    • Если я правильно понял что ты хочешь то 1й и самый правильный вариант это сделать по проводке и запрограммировать в самой  ардуинке, при подаче на аналоговый вход будет меняться сопротивление и срабатывать определённый пин. (хотя если я не ошибаюсь то с подрулевых кнопок и так по двум каналам (проводам) должен выходить цифровой код) Если хочеться именно по радио каналу то я думаю подойдёт вот такой комплект можно использовать как с ардуинкой так и без https://aliexpress.ru/item/32961129775.html?spm=a2g0o.productlist.0.0.3f444615d9zQW0&algo_pvid=cac49995-bf02-4116-b544-0fa7ae44f2fb&algo_expid=cac49995-bf02-4116-b544-0fa7ae44f2fb-5&btsid=0b0a0ad815822216046035846e5acc&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_
    • @malenich Вот у нас тоже были недовольные что карантин устроили под Тюменью.  Народ боится эпидемии, на самом деле если-бы народ узнал чуть раньше было-бы тоже самое, а сейчас уже всё прошло. Губернатор назвал причины протеста против карантинных центров на Южном Урале, которые пришлось закрыть Губернатор Челябинской области Алексей Текслер назвал основные причины конфликта в Варненском и Сосновском районах, где после протестов жителей были закрыты карантинные пункты, передает корреспондент Накануне.RU. Напомним, после протестов жителей сначала был закрыт карантинный пункт в профилактории "Тополек" Варненского района, а на следующий день в деревне Ужевка Сосновского По словам главы области, к этому привело отсутствие межведомственного взаимодействия. Не все заинтересованные стороны были вовлечены в работу. Кроме того, он указал на не информированность населения, отсутствие официальных заявлений, комментариев экспертов. Жителям не объясняли, что это здоровые люди, которые лишь помещаются под карантинное наблюдение. Также Текслер указал на неочевидность выбранных объектов для пунктов. "Подход нужно изменить. Сейчас размещение лиц осуществляется в профильные медицинские учреждения", - подчеркнул губернатор. https://www.nakanune.ru/news/2020/02/10/22565067/ А ты всё об Украине думаешь,  ну что сказать :), LOL. А мне не понятно почему наш @malenich  не отреагировал на аналогичные протесты в Сибири. Это наверное прогрессирующая шизофреническая болезнь "чё там у Хохлов 24 на 7."
×
×
  • Create New...