W ostatnim czasie musiałem przygotować aplikację, która jest w stanie zbierać dane z czujników analogowych i wysyłać je do Excela, gdzie później zostaną obrobione.
Po krótkim rekonesansie, postanowiłem zakupić przekaźnik programowalny LOGO! (6ED1052-2MD08-0AB0), z którego Excel będzie pobierał dane. LOGO! posiada możliwość wykorzystania kilku „pokładowych” wejść cyfrowych jako wejść analogowych 0-10V, także bez żadnych dodatkowych modułów rozszerzających mogłem sprostać postawionemu mi zadaniu, którego rozwiązaniem chciałem się z Wami podzielić. W artykule omówię bardzo prosty program napisany w LOGO!Soft Comfort, na przykładzie którego będziemy mogli przetestować działanie arkusza. Ale o tym później.
Startujemy
Do osiągnięcia celu oprócz wcześniej wspomnianego LOGO! będzie jeszcze potrzebny komputer z zainstalowanym Excelem, ale to nie wszystko. Do Excela należy zaimportować LOGO!AccessTool (do pobrania ze strony supportu Siemensa).
Po pobraniu pliku oraz rozpakowaniu dodatek należy zaimportować. W tym celu uruchamiamy Excel, następnie wybieramy: Plik-> Opcje->Dodatki-> Dodatki programu Excel->Przejdź->Przeglądaj. Wskazujemy lokalizację na naszym dysku, gdzie znajduje się rozpakowany dodatek LOGO!AccessTool.
Zatwierdzamy wybór klawiszem OK, upewniając się że zaznaczony mamy dodatek na którym nam zależy.
Po poprawnym zaimportowaniu pliku, na wstążce powinna nam wyskoczyć zakładka Dodatki zawierająca LOGO!AccessTool.
Lecimy dalej
Przejdźmy do konfiguracji dodatku. Klikamy na rozwijaną listę. Następnie wybieramy „Configure”.
W oknie możemy wybrać co ile czasu dane mają być zapisane (1, 10, 30, 60 sekund) oraz ilość zmiennych historycznych (od 1 do 100). Zostawmy domyślne 1 s i 5 zmiennych.
Do odczytywania danych w Excelu wykorzystamy polecenia, które po zainstalowaniu dodatku LOGO!Access Tool, są zrozumiałe dla Excela.
Komenda =LOGOVAR(„ID”) odczytuje w czasie rzeczywistym stan zmiennej, w miejsce ID możemy wpisać np.: I1, Q2, M1, AQ1, VW0, VB, a także tajemnicze słowo STATUS. =LOGOVAR(„STATUS”), które zwraca status połączenia ze sterownikiem: Offline, Connecting, Stop, Running, Recovering, Invalid.
Uzupełnijmy zatem w arkuszu kalkulacyjnym następujące dane:
Pobawmy się w sznurowanie
Odetchnijmy chwilę od komputera przed pisaniem programu dla LOGO! Wersja sterownika którą posiadam może zostać skonfigurowana w taki sposób, że I7 i I8 to odpowiednio AI1 i AI2. Zatem pod I7 podłączmy czujnik analogowy 0-10 V np. zawartości tlenu w powietrzu. Żeby nasz program nie był zbyt ubogi, to pod I1 podłączmy czujnik z wyjściem PNP np. jakiś czujnik laserowy, a pod Q1 lampkę którą będziemy mogli zaświecić.
W ramach relaksu wykonajmy następujące połączenia kablowe:
Wróćmy teraz do komputera. Włączamy LOGO Soft Comfort.
Wcześniej użyłem słów “Startujemy”, “Lecimy” to teraz…
Podchodzimy do lądowania…
Skoro poruszamy się w nieco kosmicznej tematyce napiszmy jakiś bardzo prosty program np. do sterowania łazikiem marsjańskim (temat na czasie…). Mierzmy zatem zawartość tlenu w atmosferze oraz wykrywajmy czujnikiem przeszkody.
Po utworzeniu nowego projektu w LOGO!Soft Comfort, przejdźmy do zakładki Tools -> Hardware Select -> Offline Settings -> General, tutaj sprawdzamy jaki adres ma nasz sterownik. Następnie Hardware Select -> Offline Settings -> I/O Settings i upewnijmy się, że wejście I7 ustawione jest jako analogowe.
Aby umożliwić zdalny dostęp do sterownika, musimy aktywować opcję Hardware Select -> Online Settings -> Access control settings. Zaznaczamy Allow Web Server Access, dla celów testowych zostawiamy domyślne hasło i zatwierdzamy wybór poprzez Apply.
Napiszmy, a właściwie wklikajmy fragment programu:
Bloczki B001 i B003 konfigurujemy tak, aby jeden z nich wykrywał wartość maksymalną, drugi wartość minimalną.
Wgrywamy nasz projekt do sterownika i wracamy do excela.
Wylądowaliśmy
„To mały krok dla człowieka…” Przechodzimy do testu oprogramowania. W Excelu wchodzimy w zakładkę Dodatki -> Logo!AccessTool -> Log In. W wyskakującym oknie wpisujemy adres IP naszego sterownika oraz jak każdy szanujący się naukowiec z NASA, domyślne hasło 😉 czyli „LOGO”.
W tej chwili status, który przed chwilą był Offline, zmienił się na Running i widzimy aktualne wartości ze sterownika.
Widzimy, że zawartość tlenu zmienia się, także wartości min i max przyjmują odpowiednie wartości.
Jedna rzecz nie daje mi spokoju. Dlaczego znacząco wzrosła zawartość tlenu i wartość z czujnika laserowego zmieniła stan z 0 na 1?
Zerknijmy co się tam dzieje.
Wszystko jasne…
Żeby moim łazikiem marsjańskim nie rozpętać gwiezdnych wojen przejdę do zakończenia.
Podsumowanie
Mam nadzieję, że w ten dość obrazowy sposób udało mi się przedstawić jedną z możliwości wykorzystania małego przekaźnika programowalnego jakim jest LOGO! Skoro w lotach na księżyc wystarczał komputer o wydajności kalkulatora, to LOGO! spokojnie wystarczy w lotach na Marsa.
Jeśli chodzi o minusy zbierania danych poprzez Excel, to szkoda tylko, że nie ma możliwości kontrolowania sterownika poprzez Excel, ale do tego służą inne rozwiązania. Czyżbym wpadł właśnie na pomysł kolejnego artykułu?
Tak na marginesie moim czujnikiem zawartości tlenu był lekko zmodyfikowany zadajnik 4-20 mA z jednego z artykułów na iAutomatyka.pl. Dodałem do niego dzielnik napięcia, dzięki czemu na drugim wyjściu otrzymuję napięcie 0-10V.
Artykuł został nagrodzony w Konkursie iAutomatyka w edycji Grudzień 2018 Nagrodę Makita DF 331 DWAX2 Wiertarko Wkrętarka akumulatorowa 10,8 V +2 aku 2,0Ah + ładowarka + walizka dostarcza firma Allektro.plWięcej o konkursie: https://iautomatyka.pl/konkurs-iautomatyka/ |