Witam.
W zasadzie muszę trochę ponarzekać...
Mam w ręku dwa urządzenia: ARDETEM PECA15 i LUMEL N12. Obydwa to mierniki mocy (panelowe) z komunikacją. PECA potrafi RS232/485, LUMEL tylko 485.
PECE i jej problemy znam dobrze - używam od jakiś 3 lat. Lumel pojawił się niedawno.
Obydwa pomykają w protokole MODBUS.
Prękości małe - 9600. Odległość między urządzeniem a moim układem komunikacyjnym nie większa niż kilkanaście (!) cm. Na wyjściu mojego układu siedzi sobie 75176. A i B podciągnięte gdzie trzeba. Całością steruje mój dedykowany mikrokontroler. To co z niego wyskakuje jest krystalicznie czyste (nie ma żadnych zakłóceń, inny przetwornik firmowy łyka dane bez pomyłek na wiele tysięcy wysłanych bajtów). Stablizacja kwarcem. Ogólnie komunikacja na RS485 jest wzorowa nawet po oglądnięciu oscyloskopem. Timeouty na transmisję RTU z dokładnością do milisekund, ale ustawione znacznie powyżej tych z dokumentacji.
No ale zawsze jest jakieś ale.
Obydwa urządzenia mają wrodzoną wadę olewania moich zapytań. Konkretnie coś wysyłam a tam cisza. Wysyłam ponownie - cisza. Wysyłam 3 raz - łaskawie odpowiada - ze złym CRC. Wysyłam ponownie - odpowiada z dobrym CRC. Sytuacja obserwowana w przypadku jednego i drugiego urządzenia przy czym lumel ignoruje mnie znacznie częściej. Efekty są całkiem randomiczne i kosmiczne włącznie z oddawaniem mi ramki informującej o N bajtach danych ... bez danych ale z prawidłowym crc. Za chwile to samo zapytanie produkuje poprawną ramkę z danymi.
W zasadzie mógłbym powiedzieć - mam zapewne coś nie tak sprzetowo z 485. Tylko że na RS232 PECA zachowuje się identycznie - ignorująć niektóre zapytania bądź odsyłając głupoty. W akcie desperacji podłaczyłem w prost do komputera i objawy podobne - nie każde zapytanie kończy się odpowiedzią a niektóre kończą się błednym CRC lub całkowitą bzdurą w budowie ramki.
W zasadzie mam podstawowe pytanie:
Czy niektóre urządzenia przemysłowe z magistralą RS485 zachowują się w taki sposób i jest to spotykane zachowanie? Nie chce popadać w paranoje (2 przykłady to za mało aby ocenić statystycznie) ale mam nieodparte wrażenie że komunikacja nie jest testowana i projektowana pod kątem odpowiadania na każde zapytanie (zakładając pomiar raz na godzinę zawsze można ramkę powtórzyć). Ja muszę czytać "co sekundę" i troche mnie boli takie olewanie.
PS. Mam tu trzeci czujnik z MODBUS i 485. Nie znam firmy ani typu (brak oznaczeń). Na szczęscie znam jego adres i parametry. Odpowiada _zawsze_ i _zawsze_ prawidłowo (na tej samej magistrali). Nie wiem czy to świadczy o jego lepszym wykonaniu czy moim pechu...