Do Projektu iAutomatyka dołączyli:

https://iautomatyka.pl/wp-content/uploads/2019/07/s7-c-1200x628.jpg

Qt C++ do małych wizualizacji danych ze sterowników S7

autor: mateczek.

W tym artykule postaram się przedstawić w sposób interesujący przykład wykorzystania języka wysokiego poziomu, jakim jest C++ w naszej branży. W tym przykładzie razem z Qt zostanie zaprzęgnięty do wizualizacji danych, pobranych ze sterownika Siemensa. Qt to wieloplatformowy zestaw narzędzi i bibliotek do tworzenia aplikacji z graficznym interfejsem użytkownika. Całość przedstawiłem w trzech filmach umieszczonych w dalszej części artykułu.

Na wstępie artykułu podaje dwa linki:

  • Kod źródłowy biblioteki w Qt C++ do komunikacji ze sterownikiem S7plc;
  • Kod źródłowy prostego programu testowego dla wyżej wymienionej biblioteki;

Na bazie tych linków chciałbym zaprezentować mój sposób na małe wizualizacje pisane w C++. Zdjęcie poniżej przedstawia blok danych do zwizualizowania.


1. Objaśnienie kodu źródłowego programu testowego

Program testowy dla biblioteki ma za zadanie odczytywać blok danych ze sterownika PLC i wyświetlić na formatce wartości z poszczególnych jego pól.  W pliku nagłówkowym aplikacji stworzyłem strukturę, która odzwierciedla mapę bloku danych, który to blok będziemy wizualizować.

Konstruktor klasy okna głównego aplikacji:

Funkcja „plcQtLib” (linia nr9) – tworzenie obiektu bibliotecznego PLC. Po odczytaniu danych ze sterownika PLC zgłosi sygnał do aplikacji.

  • „192.168.0.10” –  adres ip sterownika PLC;
  • 1 – numer Bloku danych który chcemy odczytać;
  • sizeof(db) – rozmiar bloku danych;
  • (unsigned char*)&db – przekazanie do biblioteki wskaźnika na strukturę bloku danych;
  • kolejne parametry to Slot (2),  Rak(0). Slot i Rak zależą od sterownika PLC. Parametry te są  do odczytania w konfiguracji hardware (step tiaportal). Dla przykładu S7-300 miało te parametry 2,0 , a S7-1500 1,0. Kolejnym parametrem jest  i odstęp w milisekundach, między kolejnymi zapytaniami do sterownika (w wątku jest funkcja oczekująca „QThread::msleep(sleepTime) „);

Funkcja „connect ” (linijka nr 10):

  • Obiekt biblioteczny „PLC” po prawidłowym odpytaniu sterownika wyemituje sygnał „dataReady”. Ten sygnał łączymy z funkcją „readedData()”.  Funkcja zaktualizuje wizualizacje o nowo pobrane dane. Pamiętać należy, że w S7 bajty są w odwrotnej kolejności niż w PC.  Stąd konieczność wywołania funkcji konwertujących.

Funkcja „connect”  (linijka nr 11):

  • Biblioteka pracuje w wątku, jeśli z jakiegoś powodu zostanie zerwane połączenie, lub wątek się zakończy biblioteka spróbuje ponownie nawiązać połączenie ze sterownikiem.

Funkcja „connect”  (linijka nr12):

  • informacja o zmianie statusu połączenia.  W przypadku braku połączenia z PLC wygasza interface

2. Test biblioteki na Raspberry Pi

Poniżej filmik  pokazujący jak skompilować bibliotekę i program testowy na komputerku Raspberry Pi.


3. Test biblioteki na tablet/telefon z Androidem

Kompilacja biblioteki oraz programu testowego na telefon z Androidem.

4. Test biblioteki na komputerze PC z systemem WINDOWS

Krótki Filmik prezentujący test biblioteki na komputerze z Windows.

5. Czy warto pisać wizualizacje w C++?

Czasami, gdy komputer już jest do dyspozycji a liczba danych do zwizualizowania jest niewielka myślę, że można się pokusić o napisanie programu w C++.  Nie sposób również nie docenić elastyczności jaką daje użycie klasycznego pc i języków wysokiego poziomu do programowania wizualizacji.

Artykuł został nagrodzony w Konkursie iAutomatyka – edycja Lipiec 2019

Nagrodę Zasilacz EPSITRON + klucz do szaf + zestaw gadżetów dostarcza ambasador konkursu, firma WAGO.



Utworzono: / Kategoria: , , ,

Reklama

Newsletter

Zapisz się i jako pierwszy otrzymuj nowości!



PRZECZYTAJ RÓWNIEŻ



NAJNOWSZE PUBLIKACJE OD UŻYTKOWNIKÓW I FIRM

Reklama



POLECANE FIRMY I PRODUKTY
  • Chcieliby Państwo być informowani z wyprzedzeniem o stanie maszyny lub techniki napędowej? Nic prostszego! Aplikacja DriveRadar® oferuje kompleksowe zarządzanie konserwacją w oparciu o cyfrowe rejestrowanie danych, na podstawie których możl...
  • 1,200 PLN
    Szkolenie jest wprowadzeniem do systemu sterowania PSS4000 i środowiska programowania PAS4000. W jego trakcie omówiona zostanie zarówno struktura sprzętowa, jak i programowanie, a także diagnostyka kompletnego systemu sterowania. Poruszane ...
    Czas trwania: 8h
    Link: Terminy
  • Ten kurs zawiera podstawy z dziedziny serwomechanizmów. Składa się z pierwszego modułu wprowadzającego, pełnego kursu o serwomechanizmach. Mini kurs przeprowadzi Cię przez podstawowe zagadnienia związane z serwomechanizmami. Zaczniemy od sa...
  • System MasterIN firmy Finder składa się z przekaźnikowych modułów sprzęgających z terminalami Push-in. Technologia ta reprezentuje najnowsze osiągnięcia w bezśrubowych ‘sprężynowych’ zaciskach, oferujących szybką instalację. W porównaniu do...
  • Szybki i bezpieczny dostęp do maszyn i fabryk Usługa u-link gwarantuje szybki i bezpieczny dostęp do maszyn i fabryk, co ułatwia zdalne utrzymanie ruchu, jednocześnie pozwalając na wydajne zarządzanie zakładami produkcyjnymi i stacjami klie...
  • Pomiar odległości to jedna z podstawowych dziedzin w technologii czujników. Do określania położenia w różnorodnych zastosowaniach wykorzystywana jest szeroka gama procesów. Firma Pepperl+Fuchs już teraz – w odróżnieniu od konkurencji ...