Problem z odczytem licznika en. el.

Muszę zrobić sobie do pewnych celów odczyt danych pomiarowych z licznika używając swoj customowy czytnik. Dla celów testowych znajomy elektryk pożyczył mi jakiś używany ale sprawny licznik. Po kilku próbach udało się z nim połączyć na 4800 bps i tylko tą prędkość licznik proponuje przy inicjalizacji. Skoro norma mówi, że inicjalizacja powinna być na 300 bps (po tym można ewentalnie zwiększyć prędkość), to dlaczego on jest zafiksowany na 4800 bps? Ale mniejsza o to. Przetestowaszy komunikację z testowym licznikiem podpiąłem się do tego docelowego i kiszka. Spróbowałem wszystkie bps od 300 do 19200 (taką max. prędkość deklaruje producent). Licznik nie odpowiada na /?!\r\n. Upewniłem się w tabeli kodów modeli czy mój na pewno ma rs485 (są też wersje z rs232), wg kodu ma. W desperacji zamieniłem miejscami linie A z B (może jest błąd w opisie zacisków) i przeskanowałem jeszcze raz po wszystkich możliwych prędkościach i nic. Skończyły mi się już pomysły, ale zanim zadzwonię do producenta w poniedziałek - może jednak coś przeoczyłem? Licznik to model AS1440 firmy Elmess.

Reply to
Marek
Loading thread data ...

Może Twój licznik jest w wersji z interfejsem MBUS?

jp

Reply to
jacek pozniak

Ten model w zależności od wyposażenia może mieć interfejs CL0, rs232 lub rs485. Wg tabeli oznaczeń modelu ten ma mieć rs485. Na pokrywie zacisków jest legenda z ich opisem, jest para zacisków oznaczona rs485. Albo interfejs jest uwalony albo programowo zablokowany....

Reply to
Marek

Tylko zasugerowałem ponieważ widywałem już liczniki (ciepła) z interfejsem RS232 i protokołem MBUS na nim, tzn fizyczny interfejs to jedno a protokół jaki na nim siedzi to może być inny.

jp

>
Reply to
jacek pozniak

Wcześniej pisałeś interfejs mbus a nie protokół stąd myślałem, że masz na myśli interfejs (sprzętowy). Od producenta dostałem dokument opisujący komunikację z tym licznikiem, jedst zgodny z EN 62056-21 (61107), protokół ten sam co ten licznik testowy.

Reply to
Marek

W dniu 2015-08-29 17:58, Marek pisze:

Magistrali RS485 używa się w ten sposób by można było podpiąć do niej wiele liczników... jeśli próbujesz zainicjować transmisję na tym interfejsie przy pomocy sekwencji /?!\r\n to który z wielu liczników miałby dawać odpowiedź? Jeśli odpowiedziałyby wszystkie zrobiłby się bałagan na magistrali. Licznik trzeba wskazać poprzez podanie jego adresu (np. numeru seryjnego licznika lub jego fragmentu) np. /?[numer licznika]!\r\n, ale szczegółów szukaj w opisie protokołu transmisji licznika.

pzdr mk

Reply to
mk

liczników

szczegółów

Licznik testowy, który leży w warsztacie odpowiada na sekwencję inicjującą bez podania id. Producent tego drugiego licznika z którym mam problem też twierdził, że sekwencja bez id jest prawidłowa (i tak jest w dokumentacji, która dostałem od niego, nawet jest zrzut sekwencji z terminala). Ale pomimo to Twoja sugestia może być słuszna, sprawdzę to. Dzięki.

Reply to
Marek

Sekwencja bez id jest typowa dla połączenia bezpośredniego z licznikiem tj. np. przy użyciu głowicy optycznej. Więc zwróć na to uwagę czy owe zrzuty nie są z takiej właśnie sesji.

Przy połączeniu RS485 już nie jest typowa (raczej jest wyjątkowa i wymaga by na magistrali był tylko jeden licznik).

pzdr mk

Reply to
mk

No to zrozumiałe, jak ten licznik testowy wykrył, że jest sam na magistrali i odpowiedział na sekwencję bez id? Czyżbym trafił na nietypowy model (producent JM Tronik), który pracuje tylko w konfiguracji 1-1?

Reply to
Marek

A czy standard niedopuszcza, że jeśli master (czytnik) wysyła sekwencje bez id to wie co robi i oznacza to, że pytanie jest do jedynego slave'a jakim jest ten licznik? Analogicznie do skip rom w

1wire.
Reply to
Marek

Nie wiem jak teraz ale kiedyś jmtronik miał własny protokół. Jp

Reply to
jacek

Już dawno nie miałem tego tekstu owego standardu przed swymi oczami. I tak, jeden z ważniejszych wniosków z jego lektury był taki, że w celu pozyskania konkretnych danych z konkretnego licznika jest i tak potrzebna dokumentacja tego konkretnego licznika. Owy standard jest baaardzo ogólnym zbiorem wytycznych jak taka komunikacja ma wyglądać.

Nie odpowiem Ci na Twoje pytanie jednoznacznie co standard dopuszcza a czego nie bez możliwości starannego przestudiowania tekstu standardu pod danym kątem. Jeśli mógłbym obstawiać to obstawiam, że standard milczy na ten temat, więc w sumie producent mógł sobie zrobić taki "feature" o którym wyżej piszesz jako swego rodzaju rozszerzenie. Ale wiem też, że całkiem sporo liczników wspomnianą sekwencję, jako rozpoczęcie komunikacji, zignoruje (co, obstawiam, też będzie całkowicie zgodne ze standardem).

pzdr mk

Reply to
mk

Okazało sie ze ten "problematyczny" licznik też odpowiada na /?! bez id. To że wcześniej mi nie odpowiadał wynikało z tego, że po prostu ignoruje co kilka prób string inicjujacy połączenie. Gdy np. w petli zaczne go odpytywac co 2 sekundy stringiem /?! to odpowiada kompletnie niedetermistycznie, co drugi raz, co 5, co 7, czasami dwa razy pod rząd. Dokumentacja jego protokołu nie wspomina o ograniczeniu częstości zapytań wręcz mówi że "the time between 2 succeeding signs should be lower than 1.5s" (co jest trochę dziwne, albo co innego rozumiemy przez "signs"). Pierwsze podejrzenia miałem takie, że może to problem z magistralą, może przy przełączaniu nadawanie/odbiór robi się glitch, który zakłóca komunikację i licznik odbiera przekłamany string i ignoruje go. Dodałem rezystory 680 podciągające magistralę do Vcc/GND jak to niektórzy sugerują ale to nic zupełnie nie zmieniło.... Drugie podejrzenie to takie, że być może standard wymaga "wylogowania" się po ówczesnym "zalogowaniu" stąd ignoruje wielokrotne /?! w trakcie aktywnej sesji. Ale dokumentacja wspomina tylko o zamykaniu sesji programowania przez SOH B0 ETX BCC. Z producentem na razie chyba nie ma sensu gadać, bo jak powiem że nieodpowiada za każdym razem to mam problem z magistralą i skieruje mnie na drzewo.

Reply to
Marek

Moze maja na mysli znaki (characters). Moze gdy czas miedzy znakami przekroczy 1.5s, to bufor sie zeruje albo cos.

Moze za maly czas miedzy znakami tez powoduje problemy, spotkalem sie z tym w innym urzadzeniu.

Reply to
Gof

Od producenta wypożyczyłem identyczny model do testów i zachowuje się normalnie. Także to jakaś osobnicza cecha tego konkretnego licznika. Być może to kwestia softu, dziwnie zachowujący się ma v9.32 a ten wypożyczony 9.36. Co ciekawe support producenta na moje oko nie ma bladego pojęcia* skąd takie dziwne zachowanie, jedyne co był w stanie zaproponować to żebym wymienił w szafie ten "dźwiny" na ten wypożyczony.

  • - może dlatego, że soft licznika i dokumentacja ma sygnatury ABB, a oni tylko to składają...
Reply to
Marek

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.