MODBUS protokolli tõlgendus

Collapse
X
 
  • Kellaaeg
  • Show
Clear All
new posts
  • Cass
    Liige
    • 05/2002
    • 125

    #1

    MODBUS protokolli tõlgendus

    Mure sai alguse kokkuhoiu soovist ....
    Teemaks on päiksepaneelide inverter ja erldiseisva arvesti ( EM340 3F2T 65A MID MODBUS ) omavaheline suhtlus Modbus RTU kaudu.
    Ideaalis on olemas Froniusel oma Smart Meter aga seda ei raatsinud soetada kuna maksab veidi rohkem kui alternatiivid. Eelpool mainitud arvesti aga on füüsiliselt kui ka seal oleva menüü poolest identsed kuid Inverter ei taha seda sellegi poolest kuidagi ära tunda.
    Panin arvuti järgi ja kuulasin modbusi liiklust pealt, et mida ta välja saadab
    Kood:
    Rx:000000-17:42:12.968-FD F9 F9 FF FF FD F7 AC 00 7F 3E BF 74
    Rx:000001-17:42:13.031-FD F9 F9 FF FF FD F7 AC 00 7F 3E BF 74
    Rx:000002-17:42:13.093-FD F9 F9 FF FF FD F7 AC 00 7F 3E BF 74
    Rx:000003-17:42:13.156-FD F9 F3 AB FD B7 97 00 7F 3E BF 74
    Rx:000004-17:42:13.218-FD F9 F3 AB FD B7 97 00 7F 3E BF 74
    Rx:000005-17:42:13.280-FD F9 F3 AB FD B7 97 00 7F 3E BF 74
    Rx:000006-17:42:13.341-FD F9 F3 AB FD B7 97 00 7F 3E BF 74
    Rx:000007-17:42:13.405-FD F9 F3 AB FD B7 97 00 7F 3E BF 74
    Rx:000008-17:42:13.468-FD F9 79 F5 FB 0F A8 00 7F 3E BF 74
    Rx:000009-17:42:13.515-FD F9 C7 FD FB 29 38
    Rx:000010-17:42:13.655-00 7F 3E BF 74
    Rx:000011-17:42:13.717-FD F9 FF FF FF FB 77 7A 00 7F 7E 5F 2F FB FF 6D B7
    Rx:000012-17:42:13.779-FD F9 FF E9 FF FD 15 E3 00 7F 7E BF 55 0D 29
    Rx:000013-17:42:13.841-FD F9 FF E9 FF FD 15 E3 00 7F 7E BF 55 0D 29
    Rx:000014-17:42:13.904-FD F9 FF E9 FF FD 15 E3 00 7F 7E BF 55 0D 29
    See antud suhtlus aga ei näe kuidagi välja modbus rtu protokollina
    Kui proovisin arvestilt ise andmeid küsida siis see suhtlus on veidi teistsugune (kellaajad on puudu):
    Kood:
    Tx:000034-01 03 00 00 00 0A C5 CD
    Rx:000035-01 03 14 09 1B 00 00 09 44 00 00 09 31 00 00 0F D4 00 00 0F FB 00 00 DE 34
    Tx:000036-01 03 00 00 00 0A C5 CD
    Rx:000037-01 03 14 09 1A 00 00 09 44 00 00 09 33 00 00 0F D3 00 00 0F FD 00 00 7E B1
    Tx:000038-01 03 00 00 00 0A C5 CD
    Rx:000039-01 03 14 09 1A 00 00 09 43 00 00 09 32 00 00 0F D2 00 00 0F FB 00 00 CD 8E
    Tx:000040-01 03 00 00 00 0A C5 CD
    ....
    Siit loeb ilusti välja aadressi ja funktsiooni koodi jms.

    Küsimus on, et kas leidub siit mõni kes aitaks selle esimese sõnumi lahti mõtestada või millele selline teistsugune sõnum viitab?
  • moi
    Liige
    • 01/2003
    • 7726

    #2
    See viitab sellele, et füüsiliselt kasutatakse Modbus RTU-d aga tarkvaraline suhtlus käib mingi muu protokolliga (sisuliselt sama mis User Defined Function code) või füüsiline RTU on teistmoodi seadistatud kui sinu lugemise puhul.
    Oled seda infot mõne Modbus decooderi peal dekodeerinud, ei anna midagi mõistlikku?

    Comment

    • Cass
      Liige
      • 05/2002
      • 125

      #3
      Senised otsingud dekooderi osas ei ole tulemust andnud.
      Üks rakendus millega liiklust salvestasin andis sellise tulemuse:
      Click image for larger version  Name:	modbus.jpg Views:	0 Size:	319,5 KB ID:	1112079



      Originaal Smart Meteri andmed:


      Ja selle alternatiivse mõõtja andmed:
      Lisatud failid
      viimati muutis kasutaja Cass; 25 March 2021, 11:14.

      Comment

      • moi
        Liige
        • 01/2003
        • 7726

        #4
        Stop bit ja data bit seadetega oled katsetanud? Checksum xxx BAD nagu viitaks, et seal võib midagi valesti olla.

        Comment

        • Cass
          Liige
          • 05/2002
          • 125

          #5
          Seda eraldi ei katsetanud kuid kui lähtuda Smart Meteri andmelehe andmetest siis vaikimisi on:
          Number of bits 8
          Stop bit 1
          Ja ma kahtlen, et paigaldamisel midagi ekstra muudetakse seadetes.

          See nüanss on mu pealtkuulamise usb rs485 konverteril, et see on 2 juhtmega kuid inverteri ja arvesti vahel käib 3 juhet (D+,D- ja GND) + varjestus mida ei ole mu CAT6 kaablil.

          Comment

          • moi
            Liige
            • 01/2003
            • 7726

            #6
            Kui ise arvestilt andmeid küsisid oli Checksum OK või ka BAD?

            Comment

            • Cass
              Liige
              • 05/2002
              • 125

              #7
              Esimeses postituses olev teine koodilõik on need andmed mis liikusid kui küsisin otse arvestilt:

              Tx: 01 03 00 00 00 0A C5 CD
              Rx: 01 03 14 09 1B 00 00 09 44 00 00 09 31 00 00 0F D4 00 00 0F FB 00 00 DE 34

              Ja need on modbus rtu decoderi jaoks loetavad andmed. Ehk siis CRC on OK

              Comment

              • moi
                Liige
                • 01/2003
                • 7726

                #8
                Ma küsisin seda ka selle mõttega, et äkki see Port Monitor, mida sa kasutasid on vähe vildakas, või mingi muu seal ahelas, millest CRC viga tekkib. Millest on need ???? seal piltidel?

                Comment

                Working...