logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Bascom] [Bascom][Tiny85] - Przykład Modbus slave z DS18B20 i MAX485

RAPELC 15 Sty 2015 20:39 1992 0
REKLAMA
  • #1 14334193
    RAPELC
    Poziom 17  
    Potrzebuję działający przykład programu Modbus slave napisany w BascomAVR współpracujący z DS18B20. Są przykłady dla Arduino, lecz to C, muszę mieć koniecznie w Bascomie.

    Zmierzona temperatura jest przechowywana (już po przeliczeniu) w zmiennych Temperatura_x. Procesor ma ją wysłać poprzez MAX485 na magistralę Modbus RTU. Zmienna Temperatura_x jest typu single (4 bajty) aby zapisać liczbę zmiennoprzecinkową ze znakiem. W ostateczności mogę zrezygnować z wysyłania temperatur ujemnych z dokładnością do 0,1stC i ograniczyć się tylko do dodatnich z dokładnością 1stC, wystarczyła więc by zmienna 2-bajtowa (typowa dla modbusa). Numer urządzenia modbus slave ma być wpisany do programu jako stała, do magistrali będzie podpiętych kilka urządzeń. Numery rejestrów będą wpisane na stałe do programu:
    40001 ... 40005 (tylko odczyt) - zmierzona temperatura
    40010 ... 40015 (zapis i odczyt) - nastawiona temperatura
    w przyszłości w innych rejestrach będą jeszcze kody błędów i dane czujników DS18B20.

    Masterem jest już oprogramowany komputer PC.

    W przykładach Bascoma jest program dla modbus master wykorzystujący bibliotekę modbus.lbx (jest ona w katalogu LIB Bascoma) która ma instrukcję makemodbus współpracującą z instruncją print.
    http://avrhelp.mcselec.com/index.html?makemodbus.htm
    Spotkałem kilka innych bibliotek o tej samej nazwie lecz obliczających jedynie CRC.
    Nie udało mi się znależć przykładu i podobnej biblioteki na modbus slave aby można było łatwo napisać program. Nie ma być żadnych wyświetlaczy ani przycisków, tylko transmisja zmiennych po otrzymaniu polecenia z mastera (komputera PC). Poza tym musi być uniemożliwiona próba zapisu do zmiennych przechowujących zmierzona temperaturę.
    Skonfigurowanie transmisji z procesora przez UART to nie problem bo jest w wymienionym przykładzie.
  • REKLAMA
REKLAMA