{"id":336,"date":"2017-09-13T12:21:35","date_gmt":"2017-09-13T11:21:35","guid":{"rendered":"http:\/\/szarp.org\/?p=336"},"modified":"2022-03-08T08:48:27","modified_gmt":"2022-03-08T07:48:27","slug":"rozwijanie-szarpa-ciag-dalszy","status":"publish","type":"post","link":"https:\/\/szarp.org\/pl\/rozwijanie-szarpa-ciag-dalszy\/","title":{"rendered":"Rozwijanie SZARPa ci\u0105g dalszy"},"content":{"rendered":"
W ostatnim czasie bardzo du\u017co dzia\u0142o si\u0119 w naszym projekcie na githubie<\/a>. Zacz\u0119li\u015bmy od generalnego przegl\u0105du kodu w celu pozbycia si\u0119 wszelkiego rodzaju b\u0142\u0119d\u00f3w i ostrze\u017ce\u0144 w czasie kompilacji i budowania paczek z naszym SZARPem. Przy okazji tych prac porzucili\u015bmy wsparcie dla analizy (boilery out!), psetd oraz sporej gamy przedawnionych daemon\u00f3w. P\u00f3\u017aniej wzi\u0119li\u015bmy si\u0119 za przeniesienie naszych aplikacji okienkowych na bardziej aktualn\u0105 wersj\u0119 wxWidgets<\/a> co znacznie usprawni wprowadzenie nowych funkcjonalno\u015bci. W mi\u0119dzyczasie poprawili\u015bmy sterte<\/a> (nie stos<\/a>) b\u0142\u0119d\u00f3w, bardzo cz\u0119sto mylnie oznaczonych jako features<\/a>. W tym roku zesp\u00f3\u0142 contributor\u00f3w wyszed\u0142 z tarcz\u0105. Ba, nawet trzema.<\/p>\n <\/p>\n Podczas tych prac narodzi\u0142a si\u0119 potrzeba wprowadzenia obs\u0142ugi nowego protoko\u0142u FC firmy Danfoss<\/a>. Protok\u00f3\u0142 ten okre\u015bla technik\u0119 dost\u0119pu zgodnie z zasad\u0105 master-slave dla komunikacji szeregowej. Nie b\u0119dziemy si\u0119 tu rozwodzi\u0107 na temat szczeg\u00f3\u0142owej specyfikacji, ale warto zwr\u00f3ci\u0107 uwag\u0119 na jako\u015b\u0107 i ilo\u015b\u0107 dokumentacji. Ostrzegamy – godna polecenia jest tylko angielskoj\u0119zyczna wersja dokumentacji.<\/p>\n Po kr\u00f3tkiej dyskusji na temat czy powinien to by\u0107 osobny program czy mo\u017ce wykorzysta\u0107 ca\u0142e dobro oferowane przez metadaemon, szerzej znany jako borutadmn, odpowied\u017a by\u0142a jasna. Nasza poczciwa boruta dostanie kolejny protok\u00f3\u0142 do obs\u0142ugi.\u00a0Tylko od czego zacz\u0105\u0107?<\/p>\n <\/p>\n My zacz\u0119li\u015bmy od przegl\u0105du dokumentacji (raz kolejny polecamy wersje angielskoj\u0119zyczn\u0105!), gdzie okre\u015blimy newralgiczne momenty tego protoko\u0142u. Mieli\u015bmy nie zag\u0142\u0119bia\u0107 si\u0119 w szczeg\u00f3\u0142ow\u0105 specyfikacj\u0119, ale protok\u00f3\u0142 tego wymaga\u0142. Z dokumentacji dowiedzieli\u015bmy si\u0119, \u017ce w celu uzyskania danych musimy stworzy\u0107 16 bajtowy telegram gdzie:<\/p>\n Databytes w naszym przypadku zawiera 6 pozycji 2 bajtowych – PKE, IND,\u00a0PWEHIGH<\/sub>, PWELOW<\/sub>, PCD1<\/sub>, PCD2<\/sub>. W PKE znajduje si\u0119 numer parametru oraz funkcja o jak\u0105 prosimy \u017ceby falownik wykona\u0142 z danym parametrem. IND wykorzystywany jest do odpytania parametr\u00f3w typu array. Pozosta\u0142e pozycje wykorzystane s\u0105 przez slave w celu przekazania informacji.<\/p>\n <\/p>\n Wracaj\u0105c do borutydmn, jest to metadaemon zawieraj\u0105cy ju\u017c w sobie wtyczki do obs\u0142ugi takich protoko\u0142\u00f3w jak modbus (tcp i serial, client i server), zet (tcp i serial, client), fp210 (serial, client), lumel (serial, client), wmtp (tcp, client). Oparty jest na obs\u0142udze zdarze\u0144 z biblioteki libevent, kt\u00f3ra zapewnia ci\u0105g\u0142o\u015b\u0107 wykonywanych zada\u0144 na wielu urz\u0105dzeniach. Zapewnia to wydajn\u0105 prac\u0119 przy jak najmniejszym nak\u0142adzie pracy sprz\u0119tu. Pisz\u0105c nowy modu\u0142 do naszego metadaemona starali\u015bmy si\u0119 trzyma\u0107 standardu C++11, co nie zawsze by\u0142o zgodne z duchem naszej boruty.<\/p>\n Po kilku dniach nier\u00f3wnej walki borutadmn zosta\u0142 okie\u0142znany i nasz contributor otrzyma\u0142 pierwsze dane z falownika Danfoss VLT 6000. Nast\u0105pi\u0142a faza test\u00f3w tak zwanych na stole, kt\u00f3re wykry\u0142y szereg nieprawid\u0142owo\u015bci w utrzymaniu stabilno\u015bci komunikacji. B\u0142\u0119dy te zosta\u0142y jak najszybciej zlokalizowane i poprawione.<\/p>\n Konfiguracja odczytu z falownik\u00f3w Danfoss za pomoc\u0105 protoko\u0142u FC jest bardzo zbli\u017cona do konfiguracji daemona dla innych protoko\u0142\u00f3w. Na potrzeby naszego nowego modu\u0142u musieli\u015bmy wprowadzi\u0107 nowy atrybut do elementu\u00a0param<\/em> zwany\u00a0parameter-number <\/em>znajduj\u0105cy si\u0119 w przestrzeni nazw ipk-extra. Odpowiada on numerowi parametru, kt\u00f3ry chcemy odczyta\u0107. Po szczeg\u00f3\u0142y konfiguracji zapraszamy do naszej sekcji\u00a0Dokumentacja<\/a><\/em>.<\/p>\n<\/p>\n
\n