Fórum témák

» Több friss téma
Fórum » Modbus
 
Témaindító: mgy, idő: Máj 17, 2008
Témakörök:
Lapozás: OK   1 / 1
(#) mgy hozzászólása Máj 17, 2008 /
 
Hozzám került néhány PM9C PowerLogic fogyasztásmérő.
Egy RS485 környezetbe kell beilleszteni, vagyis soros porton lekezelni.(PIC és ADAM modulok vannak a PC-n)

Az adatlapja elég hiányos.
A forgalmazók szerintem csak eladják, mert a vevőszolgálat csak magyarázkodott, és egy konfiguráló segédprogramot sem adott a közel 100 eFt-jáért.

A Modbus protokol dolgaimba kevés a tapasztalatom.
Nem tudom , hogy szólítsam meg, azt tudom,hogy mit kéne válaszolnia.
Ha valakimár foglalkozott hasonló modbuszos témával, szívesen konzultálnék vele.
Egy kétsoros mintaprogram is elég lenne.
Minden segíséget köszönök.
Üdv Mgy

(#) sebestyen_ferenc válasza mgy hozzászólására (») Máj 17, 2008 /
 
mondjuk nem kapcsolodik a témával, de a mai fogyasztó társadalomban élve nem nagyon törődnek egyes forgalmazok illetve viszont eladók, a fogyasztok igényeivel pedig köteleségük a használati utasitás adni, beüzemeltetni a termékeket.....
Én általában ha nem teszik meg amit meg kellene nem veszem meg a terméket vagy pedig máshol veszem meg! s pláné akkor mikor nagy értékű termékről van szó nem lehet ilyet csinálni!
(#) morfondi válasza mgy hozzászólására (») Máj 17, 2008 /
 
Szia!

Én Omron hőfokszabályzókkal oldottam meg egy feladatot:
- kell egy rs232-rs485 átalakító
- minden eszköznek van egy címe, ami általában 1-127 tartományba esik
- ki kell küldeni az eszköz címét, a meghatározott parancsbájtot, pl. teszt parancsot, egy-két bájtot, adatot, amit a parancs szintaktikája előír, és le kell zárni az üzenetet egy bájttal
-várni kell 20-100 msec-t és be kell olvasni pl. a választ

kb. ennyi dióhéjban
(#) mgy válasza morfondi hozzászólására (») Máj 17, 2008 /
 
Szia !

Köszi amit írtál, de ezt csinálom 3 napja.

ADAM 4520 rs 485-re van rá kötve, a többi eszközömmel egyetembe.Hasonló logikávak kérdezem őket, és válaszaikat feldolgozom.Pickes vezérlések és ADAM modulok vannak rajta.

Ennél a PM9c-nél, a leírásból pont parancsájt és szintaktikája nem egyértelmű.

A MODBUS rendszerre hívatkozik és a saját szoftverjeire, melyet többszázezres nagyságrendért meg is lehet venni.

Nézegettem MODBUS dolgait és már csak a megszólítás utolsó 2 bájtja ( CRC cheksum) képzése a kérdéses.

Ez a MODBUS az általad is leírtak szerint dolgozik, csak az ipari alkalmazások miatt egy kicsit meg van komplikálva.

Még próbálkozok egy kicsit, mert a remény hal meg utoljára.
Egyébként a próbálkozás az élet megrontója.
Segítségedet köszi.

Üdv mgy.

É
(#) kobold válasza mgy hozzászólására (») Máj 17, 2008 / 4
 
Ha még sosem írtál ilyet, akkor röviden: a PC, mint Master megszólít egy Slave eszközt, ami válaszol. A te fogyasztásmérőd, az "adatlapja" szerint teljesen MODBUS-RTU kompatibilis, szerintem nézd meg az alábbi linkeket kiindulásnak, minden le van írva (szerencsére ez egy teljesen nyitott szabvány).
A csatolt file-ban megtalálod, melyik regiszterből mit olvashatsz ki, a protokoll alapján összeállítod a küldendő csomagot (cím, parancs, adat, CRC), kiküldöd, és szintén a protokoll alapján elemezheted a visszaérkezett választ.
Soros MODBUS használata
Részletes protokoll
Lib-ek, egyéb segítség (Wiki)
Nekem is kellett volna ilyet csinálni egy LG frekiváltóhoz, akkor foglalkoztam vele valamennyit, de végül a gyorsabb LG-BUS mellett döntöttem; mindenesetre ha kérdésed volna, szívesen segítek, ha tudok.
Amennyiben cégnek kellene a megoldás, akkor esetleg szét lehetne még nézni egy OPC-szerver után (pénzesek szoktak lenni); ezek a teljes kommunikáció gondját leveszik a válladról, gyakorlatilag csak az eredményekkel kell foglalkozni, amit "tálcán nyújt" a szerver.

Szerk.: most látom, hogy frissült; az első két link közül valamelyikben ott a CRC részletes leírása is

PM9C.pdf
    
(#) morfondi válasza mgy hozzászólására (») Máj 17, 2008 /
 
Én Delphiben dolgoztam ki egy progit, soros komponensekkel.
Stringben összeállítottam az üzenetet, képeztem a crc-t, hozzácsaptam a crc két bájtját és vártam a választ.
Az stringként érkezett, daraboltam és megvoltak az eredmények, regisztertartalmak, adatok.

De kétsoros mintaprogramtól kicsit több lett...
(#) mgy válasza kobold hozzászólására (») Máj 17, 2008 /
 
Szia !

Köszi, bejött a tipped, mert a CRC generálás leírása, benne volt a MODBUS.org -ban.
Egyébként Modbus Simply demo változatával, sikerült a lekérdezésekhez szükséges CRC értékeket is kiszámoltatni.

A kütyü szépen válaszolt.

A parancsbájtokat és a hozzátartozó CRC értékeket egy string tömben szándékozom tárolni.
Igy a lekérdezeés tényleg 2 illetve 3 sor.
1. A port megnyitása
2. Az adot string kiküldése
3. A beérkezet string bájtajainak tárolása.

Az igaz, hogy a feldolgozás már nem pár sor, de nekem a kommunikációval volt bajom.
A többi már kézügyesség kérdése.
A segítségeket köszönöm morfondinak is.

Kösz a felajánlot segítségedet is.Amikor már addig haladtam, hogy tudok kérdezni, valószínüleg kereslek.

Üdv Mészzáros Gyula
(#) kobold válasza mgy hozzászólására (») Máj 17, 2008 /
 
Örülök, hogy sikerült, és én is köszönöm.
(#) mgy válasza kobold hozzászólására (») Máj 20, 2008 /
 
Még sem sikerült igazán.

Szombaton azt hittem,hogy a modul helyesen válaszolt, de mikor kiszámoltam a vett értékeket, kiderült, hogy nem oké !

Mellékelek egy doc fájlt, melyet a forgalmazónak is elküldök.

Talán továbbjutok !

Az ötleteket várom és köszönöm !

modbus.doc
    
(#) kobold válasza mgy hozzászólására (») Máj 20, 2008 /
 
Szerintem ez így nem lesz jó:
Idézet:
„A PRINT #1,”kiküld „ string adott módon megszólítja a hívott egységet.
Az input (bejön,#1) veszi a válaszolt stringet

Ha csak ennyi van a kódban, az azért nem jó, mert ez MODBUS-ASCII, karakteres átvitel, a CRC miatt viszont még az sem (ott LRC van). A PM9C csak az RTU-t "beszéli" (az ASCII protokoll egy opció, amit egy eszköz vagy biztosít, vagy nem), ez pedig bináris átvitel; string-et neki küldeni, illetve tőle fogadni nem lehet. A kimenő adatoknak létre kell hozni egy byte-okból álló tömböt, majd karakterenként (ciklus 1-től szöveghosszig) feltölteni, és azt küldeni. Már persze ha a QBasic támogatja az ilyesmit.
A különbség a két protokoll között ilyesmi: amíg RTU-ban kiküldöd pl. a 0xA8 értéket (a packet egy részlete, ...A8...), az egy byte-on kimegy, míg ASCII-ban ugyanez két byte lesz, 0x41 (= ASCII "A") és 0x38 (= ASCII "8"). Véleményem szerint neked ez utóbbi megy ki, viszont ezt a kütyü nem érti, a válaszát pedig te nem tudod feldolgozni, mert szöveget vársz, bináris adat helyett.
Ha meg az eddigi eszközeid csak az ASCII átvitelt ismerik, akkor egy buszra ne is fűzd őket a PM9C-vel, mert egy busz, egyféle protokoll...
Ja, én azt a levelet így hirtelen nem küldeném el
(#) morfondi válasza mgy hozzászólására (») Máj 20, 2008 /
 
Most korábbi mentésből találtam programrészletet, hátha tudod hasznosítani, a szabványos echo parancsot hajtja végre. Ez egy korábbi próbálkozás volt, de jól működött.
Hátha kihámozol belőle valamit.

Ha ez megy, a többi is menni fog...
(Na meg ha a modul ismeri...)


reszlet.pas
    
(#) mgy válasza morfondi hozzászólására (») Máj 21, 2008 /
 
Kösz Koboldnak is meg neked is a segítségeket !

A mintaprogram jó volt, de a CRC értékeket más módon kell megadni.
Hasonlóakkal próbálkoztam eddig is, de végre bejött.
A megfelelő 8 bytos stringre a modul 9 bájton válaszolt.

A megfelelő string előállítása tényleg nem két sor.
Ez még egy kis matematika, de az algoritmus meg van hozzá.

A modul ugyanazon az RS485 vezetékpáron tud kommunikálni az én dolgaimmal.

Az Azeotech DAQ modbus lekérdező moduljával monitoroztam ki a dolgokat, és a Qbasicbe átültettem az ott képzett RX TX stringeket.

Mégegyszer köszi a segítségeket !
(#) mgy válasza kobold hozzászólására (») Máj 22, 2008 /
 
Köszi a segítséged.
Az első leveleidben megadott linkek próbálkozásai alapján, jöttem rá a megoldásra.

Amit kedd este írtál, hogy több féle protokol egy hálózaton nem működik az szerintem, és tapasztalataim szerint fals.

Az egyik protokol szerint kidott és logikájú stringeket, csak ő tudja értelmezni.
Ha a másik felépítése alapján adom ki az utasításokat, csak a másik tudja értelmezni és válaszolni rá.

Részemről ez a téma köszönettel lezáródott.
Egy Qbasicos programot mellékelek, ha valaki megakadna hasonló témákban, tudjon miből kiindulni.

Ezzel a programmal, ma 8 rákapcsolt modult teszteltem.

És jelentem minden OKÉ !

Sziasztok !

mod1.bas
    
(#) Atielektro hozzászólása Aug 22, 2011 /
 
Sziasztok!

A segítségeteket szeretném kérni. Készítenem kell egy eszközt, ami Modbus-on kommunikál (ez a topik címéből gondolom, nem túl meglepő). Egy mérlegről lenne szó. Két funkciót kell tudnia: a master kérésére elküldi a mért adatot, illetve, hogy fel lehessen venni egy null pontot. Na, ezzel az utóbbival gyűlik meg a bajom már egy jó ideje, ugyanis nem találok olyan Modbus OPC szervert (se sorosat, se TCP/IP-set), ami az 1-2-3-4-es függvényeken kívül mást is ismerne, mondjuk egy 5-ös Force Single Coil-t. Az első négy függvénnyel csak olvasni tudom az eszközömet.A kérdésem az az lenne, hogy ti tudtok olyan OPC szerverről, ami ismer bármi mást ezen a 4-en kívül? Ha nem találkoztál ilyennel, nekem az is segítség, mert akkor nem görcsölök rajta tovább, hanem valami mást próbálok kiagyalni.

Üdv:
Attila
(#) dave77 hozzászólása Nov 1, 2011 /
 
Sziasztok!

Egyszerűen megépíthető Modbus I/O modul kapcsolást keresnék, ami RS-485-ön a szabványos Modbus parancsokkal olvasható/írható, és van pár be illetve kimenete. Valami ilyesmire gondolok:
http://konverter.hu/termek-input-output-rs485-izolalt-modul-modbus-...8.html
Tudnátok ebben segíteni?
(#) Feki hozzászólása Nov 26, 2020 /
 
Sziasztok ! Akadt némi problémám egy Schneider REG48 Modbusos hőmérséklet szabályzóval.
A gyártó oldalán nem található meg az ajánlott Zeliocontrol soft v2.1-es változata az 1.6-ossal pedig nemtudom kiolvastatni a mért értéket. Elvileg a 2.1 képes lenne rá de sehol sem találom meg.
Nos ez a műszer a kazánunk keringető szivattyúját vezérli és ha már tudja a modbust gondoltam távolról is ellenőrizném , beállítanám de ahhoz tudnom kellene a mért értéket is. Hogyan lehetne megoldani ezt a problémát ,hogy legalább a mért értéket esetleg pár egyéb paramétert kiolvassunk a műszerből. Sajnos nemtudok programozni így erősen hátrányos helyzetből indulok.
Adatlapom van amiben leírják ,hogy melyik érték illetve cím melyik paraméter stb.

Válaszotokat előre is köszönöm! Üdv. Dávid !
A hozzászólás módosítva: Nov 26, 2020
(#) synergy válasza Feki hozzászólására (») Nov 26, 2020 /
 
Ha csak időnként kiolvasni szeretnéd, vagy át paraméterezni, akkor Modscan, vagy OMNI megfelelő eszköz lehet.
(#) Feki válasza synergy hozzászólására (») Nov 26, 2020 /
 
Szia ! Köszönöm a válaszod.

Azt szeretném látni időnként ,hogy mennyi a hőmérséklet amit mér a műszer °C-ban. A többit a saját paraméterező programjával megtudnám oldani mert az a beállított értéktől kezdve minden mást tud csak a PV avagy a mért értéket nem.
A hozzászólás módosítva: Nov 26, 2020
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem