LinkedIn YouTube Facebook
Szukaj

Wstecz
Artykuły

[PROJEKT] Termometr z sygnalizacją przedziałów temperatur na sterowniku S7-1200 i zestawie symulacyjnym KA-S71200-IO-Simulator

Prezentujemy kolejny już projekt na sterownik PLC SIMATIC S7-1200 i zestaw symulacyjny KA-S71200-IO-Simulator. Projekt mierzy temperaturę za pomocą wbudowanego w moduł czujnikowi MCP9700. Zawiera także sygnalizację temperatury przez wyjścia cyfrowe sterownika.

Sterownik SIMATIC S7-1200

Produkty Siemens z serii SIMATIC S7-1200 to programowalne sterowniki logiczne (PLC) przeznaczone do małych i średnich aplikacji. Wraz z urządzeniami towarzyszącymi stanowią kompletny system sterowania dla automatyki. Seria, oprócz jednostek centralnych, obejmuje również moduły wejść oraz wyjść cyfrowych i analogowych, moduły komunikacyjne, a także panele HMI. Dzięki implementacji standardowych protokołów komunikacyjnych możliwa jest łatwa integracja sterowników z istniejącymi systemami.

Używany w projekcie sterownik 6ES7211-1AE40-0XB0 cechuje się następującymi właściwościami:

  • 6 wejść cyfrowych 24 V DC,
  • 4 wyjścia cyfrowe 24 V DC,
  • 2 wejścia analogowe od 0 do 10 V DC, rozdzielczość 10 bitów,
  • Pamięć: 50 kB,
  • Regulator PID z auto tuningiem,
  • Zintegrowany ETHERNET – PROFINET,
  • Montaż na szynie DIN,
  • Zasilanie: 24 V DC,
  • Wymiary: 90 x 100 x 75 mm,
  • Waga: 370 g.

Rys. 1. Sterownik PLC SIMATIC S7-1200

Zestaw symulacyjny KA-S71200-IO-Simulator

KA-S71200-IO-Simulator z oferty sklepu Kamami.pl to kompletny zestaw symulujący typowe otoczenie sterownika PLC. Umożliwia on podanie na wejścia cyfrowe i analogowe odpowiednich sygnałów – zarówno z przełączników, jak i wbudowanych czujników, a także zewnętrznych sensorów. Z kolei stan wyjść można odczytać za pomocą diod LED.

Rys. 2. Zestaw KA-S71200-IO-Simulator

Kompletny opis zestawu symulacyjnego KA-S71200-IO-Simulator znajdziesz w artykule KA-S71200-IO-Simulator – zestaw symulacyjny dla sterowników SIMATIC S7-1200

Jako czujnik mierzący temperaturę w projekcie wykorzystamy wbudowany w symulator sensor MCP9700 firmy Microchip. Jest to sensor analogowy mierzący temperaturę w zakresie od -40°C do +125°C, o czułości 10 mV/°C oraz dokładności do ±2°C (w zakresie od 0°C do +70°C). Czujnik jest podłączony do wzmacniacza, który wzmacnia sygnał dziesięciokrotnie i dopasowuje go w taki sposób, że zakres wejściowy sterownika PLC (0-10 V) jest wyskalowany do temperatur z przedziału od 5°C do 105°C. Czułość wzmocnionego pomiaru wynosi wtedy ok. 100 mV/°C.

Jako, że wszystkie elementy projektu są zawarte na płytce wejściowej KA-S71200-IO-Simulator, to wystarczy umieścić płytki w złączach wejścia i wyjścia, a także podłączyć sieć PROFINET (przez Ethernet) i zasilacz. Aby doprowadzić sygnał z sensora temperatury do wejścia analogowego AI.0, należy przełączyć przełącznik SEL.AI0 w pozycję Tensometer/t, a także wybrać źródło wewnętrzne na czujnik temperatury ustawiając przełącznik Tensometer/t w pozycję t. Zaprezentowano to na poniższym rysunku.

Rys. 3. Ustawienie przełączników na module wejściowym KA-S71200-IO-Simulator

Kod przykładu

Przykład ma za zadanie obliczyć zmierzoną temperaturę na podstawie odebranej wartości analogowej. Obliczona wartość będzie wyświetlana na stronie www. Ponadto przekraczanie progów spowoduje włączanie kolejnych wyjść cyfrowych sterownika. Progi ustalono na 10°C, 20°C, 30°C oraz 40°C. Da nam to efekt prostej linijki, która wydłuża się wraz ze wzrostem temperatury.

Aby obliczyć wartość temperatury należy najpierw uśrednić pomiar, aby otrzymać stabilny wynik. Następnie z danych uzyskanych z przetwornika ADC trzeba obliczyć wynik napięcia w miliwoltach. Uzyskaną wartość dzielimy przez czułość układu ze wzmacniaczem, tj. wartość 100 mV/°C. Na koniec trzeba dodać do pomiaru 5 stopni – to wartość, przy której układ osiąga napięcie 0 V. Obliczona temperatura jest przechowywana w zmiennej Temperatura.

Rys. 4. Fragment kodu odpowiadający za obliczenie zmierzonej temperatury

Poszczególne wyjścia sterownika będą włączać się, gdy wartość temperatury przekroczy wartość progową przypisaną do danego wyjścia. Warto zauważyć, że im wyższa temperatura, tym więcej włączonych wyjść, co dla zamontowanej płytki wyjściowej symulatora KA-S71200-IO-Simulator oznacza większą liczbę diod włączających kolejno się od lewej strony.

Warto zwrócić uwagę, że jest to uproszczona wersja projektu i nie zawiera żadnych mechanizmów zapobiegającym drganiom styków. Jeśli chcesz wykorzystać przykład w zastosowaniu praktycznym, powinieneś je dodać. Możesz zainspirować się jednym z moich poprzednich projektów: [PROJEKT] Monitor natężenia prądu z dwoma progami alarmowymi na sterowniku SIMATIC S7-1200.

Rys. 5. Fragment kodu odpowiadający za sygnalizację przedziałów temperatur na wyjściach sterownika

Ostatnia sekcja kodu zawiera blok WWW umożliwiający uruchomienie i komunikację z własną stroną. Obejmuje także blok Calculate, który ma za zadanie zaokrąglić temperaturę do dwóch miejsc po przecinku. Te dane są zapisywane do zmiennej wynikTZaokr i potem będą wyświetlane na stronie. Zaokrąglenie wyniku sprzyja zachowaniu przejrzystości odczytu temperatury.

Rys. 6. Bloki programu do współpracy ze stroną www

Kod strony www

W projekcie stosuję odświeżanie strony www za pomocą skryptu JavaScript z krótkim czasem odświeżania rzędu 20 ms. Ten sposób wyświetlania danych jest zaadaptowaniem jednego z przykładów dostępnych na stronie Siemens. Podobnie sposób ten wykorzystałem w jednym z poprzednich artykułów pt. [PROJEKT] Waga elektroniczna na sterowniku SIMATIC S7-1200, gdzie znajduje się również jego szerszy opis.

Listing 1. Kod pliku index.html strony wyświetlającej dane z czujnika MCP9700

<html>
<!-- AWP_In_Variable Name='"Data_block_1".wynikTZaokr' -->

  <head>
    <meta charset="UTF-8">
    <title>Termometr na SIMATIC S7-1200</title>
  </head>

  <body>
    <h3>Wartość temperatury: <span id="VarId1">VALUE</span>&deg;C
    <iframe src="Update_Page.html" style="display:none;"/></h3>
  </body>
</html>

Na początku kodu znajduje się linia AWP określająca zmienne, które można wykorzystać do odczytu lub zapisu przez stronę WWW. Następnie wyświetla wartość zmiennej VarId1, którą pobiera z pliku Update_Page.html zawierającego skrypt odświeżający stronę.

Plik Update_Page.html to zmodyfikowana wersja z przytoczonego przykładu ze strony Siemens. Zawiera on tabelę, w której można przypisać zmienną z projektu w TIA Portal do nazw używanych w kodzie strony, a także zdefiniować czas odświeżania strony. W tym przykładzie kod będzie co 20 ms odświeżać zmienną wynikTZaokr zawierającą zaokrągloną wartość prądu.

Listing 2. Modyfikacja pliku Update_Page.html

<table border="1">
  <tr>
    <td>
      Update time in milliseconds
    </td>
  </tr>
  <tr>
    <td id="updateInterval">
      20
    </td>
  </tr>
</table>
<br/>

<table id="singleVariablesTable" border="1">
  <tr>
    <td>
      AWP-Command to read variable
    </td>
    <td>
      ID of the element of the main page which should be updated
    </td>
  </tr>
  <tr>
    <td>
      :="Data_block_1".wynikTZaokr:
    </td>
    <td>
      VarId1
    </td>
  </tr>
</table>

Po kompilacji i wgraniu projektu na płytkę można już odczytać dane z panelu www.

Rys. 7. Strona odczytująca dane z czujnika prądu

Rys. 8. Projekt uruchomiony na S7-1200 i KA-S71200-IO-Simulator – odczytywana temperatura jest w przedziale od 30°C do 40°C

Pełny kod projektu można znaleźć w sekcji Do pobrania.

Do pobrania