Mjukvara till PC, modbus master och slav
-
- Inlägg: 6104
- Blev medlem: 27 februari 2006, 14:59:36
- Ort: Tranås (Jönköping)
Mjukvara till PC, modbus master och slav
Söker nåt som låter mig ansluta en del energimätare via ett par olika seriella gränssnitt till en PC, och sen att PCn i sig blir en slav att läsa från.
Svårt att beskriva på annat vis, men det kanske är tydligt nog eller ger sig med trådens utveckling.
Helst gratis såklart!
Svårt att beskriva på annat vis, men det kanske är tydligt nog eller ger sig med trådens utveckling.
Helst gratis såklart!
Re: Mjukvara till PC, modbus master och slav
Kan libmodbus vara en start?
/PiThe most popular Open Source library to communicate with Modbus devices.
• RTU (serial) and TCP (Ethernet) support
• available for Linux (packaged), FreeBSD, Mac OS and Windows
• written in C
• great test coverage and documentation
• security audits
• no dependencies
-
- Inlägg: 6104
- Blev medlem: 27 februari 2006, 14:59:36
- Ort: Tranås (Jönköping)
Re: Mjukvara till PC, modbus master och slav
Gratis är alltid svårt, men går det så är det bättre för plånboken såklart.
Men skulle en licens vara <500kr så är det kanske inget att orda om, dock brukar det ju vara gratis, eller ett mindre lands BNP för en licens..
Libmodbus låter ganska bra i en första anblick!
Men på 2min skumning av sidan så är jag nog inte med på vad exakt det är, av namnet att döma och "written in C" så antar jag att det ett lib jag använda till egen kod, typ om jag skriver nåt i VB.Net eller liknande?
Men skulle en licens vara <500kr så är det kanske inget att orda om, dock brukar det ju vara gratis, eller ett mindre lands BNP för en licens..
Libmodbus låter ganska bra i en första anblick!
Men på 2min skumning av sidan så är jag nog inte med på vad exakt det är, av namnet att döma och "written in C" så antar jag att det ett lib jag använda till egen kod, typ om jag skriver nåt i VB.Net eller liknande?
Re: Mjukvara till PC, modbus master och slav
Edit: Jag glömde länkarna innan...pi314 skrev: ↑7 augusti 2023, 12:40:28 Kan libmodbus vara en start?
/PiThe most popular Open Source library to communicate with Modbus devices.
• RTU (serial) and TCP (Ethernet) support
• available for Linux (packaged), FreeBSD, Mac OS and Windows
• written in C
• great test coverage and documentation
• security audits
• no dependencies
https://libmodbus.org
Github:
https://github.com/stephane/libmodbus
Senast redigerad av pi314 7 augusti 2023, 13:58:07, redigerad totalt 1 gång.
Re: Mjukvara till PC, modbus master och slav
Jag gjorde ett system som läste en MODBUS via RS485. Det var ganska enkelt då det bara var seriell kommunikation.
Att läsa data lite varstans ifrån o samla i en central enhet är inget problem.
At göra en t.ex. seriell länk för att andra kan hämta de värden via MODBUS protokoll är enkelt.
Jag använde ingen lib eller annat färdigt.
Att läsa data lite varstans ifrån o samla i en central enhet är inget problem.
At göra en t.ex. seriell länk för att andra kan hämta de värden via MODBUS protokoll är enkelt.
Jag använde ingen lib eller annat färdigt.
Re: Mjukvara till PC, modbus master och slav
Jag spanade in Modbus för ett drygt halvår sedan när jag insåg att jag troligen behöver det för ett projekt en bit ner på projektlistan.
Jag uppfattar det som ett bibliotek med funktioner för att kommunicera med något som har Modbus. Seriellt eller via TCP/IP.
FormerMazda: Det är ju inte helt uppenbart vad det är som du vill göra.
Här finns 15 exempel.
https://github.com/topics/libmodbus
Ett av exemplen är detta.
/Pi
Jag uppfattar det som ett bibliotek med funktioner för att kommunicera med något som har Modbus. Seriellt eller via TCP/IP.
FormerMazda: Det är ju inte helt uppenbart vad det är som du vill göra.
Här finns 15 exempel.
https://github.com/topics/libmodbus
Ett av exemplen är detta.
https://github.com/asura22nov/modbus-testingModbus Client C Program with libmodbus-3.0.6 for Energy Meters
/Pi
-
- Inlägg: 6104
- Blev medlem: 27 februari 2006, 14:59:36
- Ort: Tranås (Jönköping)
Re: Mjukvara till PC, modbus master och slav
Jag beskrev inte supertydligt, men i sin grund är inte mycket att beskriva.
Men mer exakt är det 3st elmätare av ett fabrikat, i en RS485-slinga med unika IDn.
I en annan slinga sitter två andra mätare, också med unika IDn förstås.
Två slingor för det är olika kommunikationshastigheter och paritet och så.
Alla dessa mätare vill jag läsa värden ur, och göra dom tillgängliga för läsning på en tredje seriell port.
PCn har jag, gränssnitten löser sig, det är mjukvaran då.
Kommer ju behöva konfas för att läsa på en knippe register från olika IDn på slingorna.
Sen som sagt så får man sätta upp en knippe register som håller alla värden för läsning från PCn.
Men mer exakt är det 3st elmätare av ett fabrikat, i en RS485-slinga med unika IDn.
I en annan slinga sitter två andra mätare, också med unika IDn förstås.
Två slingor för det är olika kommunikationshastigheter och paritet och så.
Alla dessa mätare vill jag läsa värden ur, och göra dom tillgängliga för läsning på en tredje seriell port.
PCn har jag, gränssnitten löser sig, det är mjukvaran då.
Kommer ju behöva konfas för att läsa på en knippe register från olika IDn på slingorna.
Sen som sagt så får man sätta upp en knippe register som håller alla värden för läsning från PCn.
Re: Mjukvara till PC, modbus master och slav
En enkel PLC som sköter Modbus trafiken och sedan gör data tillgängligt (kan vara annan gränssnitt/protokoll än Modbus).
-
- Inlägg: 6104
- Blev medlem: 27 februari 2006, 14:59:36
- Ort: Tranås (Jönköping)
Re: Mjukvara till PC, modbus master och slav
Faktum är att det är en PLC som ska få mätvärdena i slutänden, men då jag inte är så vass på att sätta upp modbuskommunikation i den tänkte jag försöka åtminstone bara behöva läsa över ett gränssnitt med den.
Och dessutom läsa data formaterad som jag själv satt upp på register jag vet om.
Men, det kommer kanske inte förenkla massor i vilket fall. Annat än att loggning av mätarställning kan ju bli enklare via PCn mot via PLCn.
Och dessutom läsa data formaterad som jag själv satt upp på register jag vet om.
Men, det kommer kanske inte förenkla massor i vilket fall. Annat än att loggning av mätarställning kan ju bli enklare via PCn mot via PLCn.
Re: Mjukvara till PC, modbus master och slav
Om det finns något färdigt som gör det du vill vet jag inte men jag använder Python med PyModbus för att läsa ett antal (7 tror jag det är) slavar via MODBUS RTU samt göra en del av denna data tillgänglig via MODBUS TCP. PyModbus kan alltså vara båda server och klient.
-
- Inlägg: 6104
- Blev medlem: 27 februari 2006, 14:59:36
- Ort: Tranås (Jönköping)
Re: Mjukvara till PC, modbus master och slav
Verkar som att det är som jag trodde, man får kompilera ihop sitt egna program för detta.
Inte helt säker på att jag är så sugen på det, men jag kanske tänker för mycket på framtidskompatibilitet.
Jag tror väl jag löser programmeringen, men det är ju en tröskel att sätta upp miljön och komma igång.
Nåväl, terrängen är sonderad, bara att väga för och nackdelar och ta beslut på det.
Inte helt säker på att jag är så sugen på det, men jag kanske tänker för mycket på framtidskompatibilitet.
Jag tror väl jag löser programmeringen, men det är ju en tröskel att sätta upp miljön och komma igång.
Nåväl, terrängen är sonderad, bara att väga för och nackdelar och ta beslut på det.
Re: Mjukvara till PC, modbus master och slav
Jag måste rätta mig själv lite...
Jag använder (tydligen) minimalmodbus som RTU-klient och pyModbusTCP (inte att förväxla med pyModbus....) som TCP-server. I mitt fall så tillkom TCP-servern senare i ett tillstånd av featurecreep
Hur som helst, med de två Python-biblioteken så kan det i sin enklaste form se ut så här.
Här läses två värden från en Carlo Gavazzi EM111 via MODBUS RTU och görs tillgängliga i register 0 respektive 1 på MODBUS TCP servern. För test körde jag HMI Droid för att läsa och presentera värdena från TCP-servern:
Jag använder (tydligen) minimalmodbus som RTU-klient och pyModbusTCP (inte att förväxla med pyModbus....) som TCP-server. I mitt fall så tillkom TCP-servern senare i ett tillstånd av featurecreep
Hur som helst, med de två Python-biblioteken så kan det i sin enklaste form se ut så här.
Här läses två värden från en Carlo Gavazzi EM111 via MODBUS RTU och görs tillgängliga i register 0 respektive 1 på MODBUS TCP servern. För test körde jag HMI Droid för att läsa och presentera värdena från TCP-servern:
Kod: Markera allt
from time import sleep
import minimalmodbus
from pyModbusTCP.server import ModbusServer, DataBank
# Create the RTU connection for the EM111
meter = minimalmodbus.Instrument('COM1', 1) # Meter connected at COM1 and has save address 1
meter.serial.baudrate = 9600
meter.serial.timeout = 0.5
# Create the MODBUS TCP server
server = ModbusServer("192.168.10.198", 5003, no_block=True)
try:
server.start()
print("MODBUS TCP Server started")
except:
server.stop()
print("Could not start MODBUS TCP Server")
while True:
try:
Frequency = meter.read_register(0x000F, 0, 3, False)
Voltage = meter.read_register(0x0000, 0, 3, False)
print("F:", Frequency/10, " V:", Voltage/10)
DataBank.set_words(0,[Voltage])
DataBank.set_words(1,[Frequency])
except IOError:
print("Failed to read from meter")
except ValueError:
print("Value error")
except TypeError:
print("Type Error")
except KeyboardInterrupt:
print("Abort, stopping server")
server.stop()
raise
except:
print("Something else went wrong")
sleep(1.0)
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
-
- Inlägg: 6104
- Blev medlem: 27 februari 2006, 14:59:36
- Ort: Tranås (Jönköping)
Re: Mjukvara till PC, modbus master och slav
Såg ju onekligen enkelt ut!
Ska nog kika lite på det ändå kanske..
Ska nog kika lite på det ändå kanske..
Re: Mjukvara till PC, modbus master och slav
Jag är ganska säker på att jag använt ett modbus lib till pyton för lite tester... då behöver du ju inte kompileraFormerMazda skrev: ↑8 augusti 2023, 08:07:58 Verkar som att det är som jag trodde, man får kompilera ihop sitt egna program för detta.
Inte helt säker på att jag är så sugen på det, men jag kanske tänker för mycket på framtidskompatibilitet.
Jag tror väl jag löser programmeringen, men det är ju en tröskel att sätta upp miljön och komma igång.
Nåväl, terrängen är sonderad, bara att väga för och nackdelar och ta beslut på det.
Körde även libmodbus för ett c program, finns med Ubuntu så makefilen blev inte alls komplicerad!
Sen är ju inte modbus protokollet för serieport överdrivet komplicerat, så man kan ju enkelt slänga ihop de funktioner man behöver..