Modpoll – komplett guide for testing og feilsøking (RTU & TCP/IP)
ModPolling Tool
DOWNLOAD
En moderne Windows GUI for rask polling av Modbus-enheter via
modpoll. Verktøyet forenkler RTU/TCP-polling, tilbyr forhåndsinnstilte
utstyrsprofiler, viser en live kommandoforhåndsvisning, fargekoder svar,
og kan hente metadata fra en lokal IWMAC MySQL-database.
Høydepunkter 🚀
- ⚡ Ett-klikks polling over RTU eller TCP
- 🔧 Utstyrsprofiler autofyller baudrate, paritet, data/stopbiter
- 🧪 Live kommandovisning med redigeringsmuligheter
- 🟢🟡🔴 Statusindikator med grønn/gul/rød feedback
- 🧠 Smart logganalyse: undertrykker støy, teller forsøk, fremhever feil
- 🔎 Oppdagelse av COM-porter via pySerial og Windows-register
- 🗃️ Egen fane for enheter (IWMAC) – henter innstillinger fra MySQL
-
🔢 Støtte for COM10+ via
\\.\COMn-format
Førstegangs oppstart
-
Appen sjekker at
modpoll.exefinnes. -
Lastes ned til
C:\iwmac\bin\modpoll.exeom den mangler. - Kan også lastes ned manuelt: Download modpoll.exe
Quick Start ⚡
📥 Nedlasting
Last ned siste kjørbare fil fra GitHub:
- Filstørrelse: ~10.6 MB
- Avhengigheter: Ingen (standalone)
🚀 Installasjon
-
Last ned
ModPollingTool.exe - Plasser filen i ønsket mappe
- Kjør ved å dobbeltklikke på filen
- Ingen installasjon kreves – programmet er portabelt
Bruk av verktøyet 🧭
Serial (RTU) 🔌
-
Velg COM-port (COM10+ støttes via
\\.\COMn) - Sett adresse, baudrate, paritet og evt. avanserte parametre
- Klikk «Start Polling» for å starte, «Stop Polling» for å avslutte
Modbus TCP 🌐
-
Skriv
host[:port]i feltet «Modbus TCP/IP (-m tcp)» - Sett adresse og registerparametre som for RTU
- Klikk «Start Polling»
Utstyrsprofiler 🧩
- Velg enhet fra listen, så fylles typiske innstillinger automatisk
- Alle felter kan manuelt overstyres
Kommando og egendefinerte flagg 🧪
-
Kommandofeltet viser nøyaktig hva som kjøres i
modpoll - Kan redigeres direkte for avanserte scenarioer
Statusindikator 🟢🟡🔴
- Grønn: gyldige svar eller ufarlige Modbus-feil
- Gul: sjekksum-feil
- Rød: timeout eller kommunikasjonsfeil
Enheter (IWMAC) 🗃️
- Hent enhetsdata fra lokal database
- Auto-populer tabell med ID, navn, driver, adresse, IP/COM, baudrate, paritet
- Kan filtrere på «Modbus-støttede enheter»
Før du starter: dette må du vite
Ha disse parameterne klare før du tester:
- Hvilken COM-port (for Modbus RTU) utstyret er koblet til.
- Slaveadresse (adresse/node-ID) på utstyret.
- Baudrate.
- Databiter (7 eller 8).
- Paritet (none/even/odd).
- Stoppbiter (1 eller 2).
| Parameter | Typiske verdier |
|---|---|
| Adresse / Slaveadresse / Node-ID | 1–255 |
| Baudrate | 2400, 4800, 9600, 19200, 38400, … |
| Databiter | 7 eller 8 |
| Stoppbiter | 1 eller 2 |
| Paritet | None, Even, Odd |
Tips
Standarder som ofte fungerer er 9600/8N1 og 19200/8N1. Sjekk alltid leverandørens dokumentasjon for korrekt oppsett.
Modpoll: grunnleggende kommandostruktur
Grunnformatet for Modpoll-kommandolinjen er:
modpoll -a <adresse> -r <startregister> -c <antall> -t <datatype/func> [tilkobling]
-
-a: Modbus slaveadresse (1–255). -
-r: Startadresse for register. -
-c: Antall registre/coil som skal leses/skrives. -
-t: Datatype/funksjon (se tabell under). -
Tilkobling:
COM#(RTU) eller<ip/host>(TCP). For TCP kan port settes med-p(standard 502).
Hjelp
Kjør modpoll -h for full hjelp og parameteroversikt.
Eksempel (Modbus RTU / COM)
modpoll -a1 -r1 -c1 -t3 COM6 -b4800 -d8 -s1 -p none
-
-t3= «READ INPUT REGISTER» (16-bit). - Baudrate 4800, 8 databiter, 1 stoppbit, ingen paritet.
Eksempel (Modbus TCP/IP)
-
Du trenger IP-adresse, eventuelt slaveadresse (hvis brukt), og TCP-port
(standard
502).
modpoll -m tcp -a1 -r1 -c10 -t4 192.168.1.50 -p 502
Modbus‑funksjoner i Modpoll
Modpoll støtter de vanligste funksjonene. Tabellen viser sammenhengen mellom Modbus-funksjon og Modpoll-type:
| Funksjonsnavn | Modbus kode |
Modpoll -t
|
|---|---|---|
| READ COILS | 1 |
-t0
|
| READ DISCRETE INPUTS (STATUS INPUTS) | 2 |
-t1
|
| READ HOLDING REGISTER | 3 |
-t4 (16‑bit)
|
| READ INPUT REGISTER | 4 |
-t3 (16‑bit)
|
Lese spesifikke registerverdier
Finn ønsket datapunkt i leverandørens registerliste og les verdien direkte:
modpoll -a1 -r2 -c1 -t4 COM6 -b4800 -d8 -s1 -p none
Hvis dokumentasjonen sier at verdien skal skaleres (f.eks. deles på 10),
må dette gjøres i etterkant. Eksempel: råverdi 681 ⇒ visning
68,1.
Viktig
-
Registeradressering: Enkelte manualer starter på
0, mens Modpoll starter på1. Hvis manualen viser adresse0, les1i Modpoll. -
16‑ vs 32‑bit: Hopper adressene «2 og 2» i manualen,
er det ofte 32‑bit verdier. Bruk
-t3:inteller-t4:intfor 32‑bit heltall, eller-t3:float/-t4:floatfor 32‑bit float. -
Endianness: For big‑endian 32‑bit: bruk
-0(int) eller-1(float).
Vanlige resultater og feilmeldinger
| Feilmelding | Betyr | Tiltak |
|---|---|---|
| Illegal Function exception response | Utstyret støtter ikke funksjonen du bruker. | Kontroller manualen for gyldige Modbus‑funksjoner. |
| Illegal Data Address exception response | Registeret du leser finnes ikke/er ikke i bruk. | Verifiser at du bruker korrekt registeradresse. |
| Illegal Data Value exception response | Korrekt funksjon, men feil i adressering (f.eks. leser to 16‑bit i én operasjon der bare ett er gyldig). |
Sjekk om registeret er 16‑ eller 32‑bit. Bruk riktig -t-type.
|
| Checksum error | Pakken er ikke Modbus, eller støy/annet utstyr på bussen. | Sjekk at Modbus er aktivert og at annen trafikk ikke forstyrrer. |
| Reply time-out | Ingen svar fra enhet. |
|
Praktiske eksempler
Windows terminal – hurtigoversikt
Bruk: modpoll [options] serialport|host
-
RTU/ASCII (COM):
COM1,COM2, … (Windows) -
TCP: bruk IP/vertsnavn og evt.
-pfor port. -
Nyige nyttige flagg:
-b(baud),-d(databiter),-s(stoppbiter),-p(paritet none/even/odd),-t(datatype),-m(modus rtu/tcp).
Eksempel: AHT plugin disks
modpoll COM4 -b19200 -p even -a110
Merk
Stopp IWMAC‑Escape før du starter Modpoll for å frigjøre COM‑porten.