Piszę sobie poprawki do kodu protokołu OPC UA, nic specjalnego. Ale udało mi się doprowadzić Wireshark (narzędzie wspomagające analizy ruchu sieciowego) do płaczu. Dowód na obrazku. Wystarczyło, że Wireshark zobaczył wygenerowany przeze mnie pakiet.


Jak patrzę ile tam jest poziomów abstrakcji to też mam chęć płakać. Niby zlecenie na 100h, a już widzę, że mi się zejdzie dłużej. Jakieś 50-100%. Teoretycznie mogę zostawić to po skończonym limicie, ale głupio porzucić rozwalony kod, jak już się zaczęło i wlazło tak głęboko.

8959adfb-b00e-4bc9-84c8-1eaead8067ff
db0b200b-5f23-449c-8a7d-dbe0f4317805

Komentarze (9)

@koszotorobur Mogę tylko spekulować, ale najczęściej będzie to C lub Python. Pierwszy język ponieważ ów kod można próbować skompilować pod mikrokontroler, z obsługą stosu sieciowego. Drugi, ponieważ sporo ludzi siedzących w automatyce ogarnia programowanie PLC i radzi sobie dobrze z językami skryptowymi - subiektywnie częściej z Pythonem niż JS.


A poprawki obejmują obsługę zdarzeń. Na poziomie protokołu jest coś takiego jak subskrypcja, tj. urządzenie/serwer wysyła powiadomienia o zmianie stanu rejestrów (wartości). Tylko że jest tych powiadomień parę rodzajów 1) Zmiana wartości (DataChange) 2) zmiana statusu (StatusChange) 3) zdarzenie (event notification). Obecnie biblioteka obsługuje tylko pierwszy tryb, drugi jest istotny ponieważ pozwala szybciej reagować na utratę łączności a trzeci na tzw. alarmy, czyli informacje o przekroczeniach progów alarmowych różnych rejestrów (i ich wartości).

@kodyak W zeszłym roku uparłem się i zrobiłem do końca, inny element protokołu. Skończyło się na tym, że zarobiłem mniej, ale klient wrócił w tym roku. Niestety z mniejszym budżetem.

Zaloguj się aby komentować