Powiadomienia email. Skrypt, dzięki któremu poprawisz przepływ informacji [SCADA]

Zużycie materiałów towarzyszy podczas pracy każdej maszyn. Lekiem na zapobieganie usterkom przyczyniającym się do bezproduktywnych przestojów jest wykonywanie regularnych przeglądów oraz konserwacji urządzeń.

W ramach prawidłowego planowania akcji serwisowych rekomenduję zaimplementowanie skryptu realizującego opcję powiadomienia użytkownika drogą mejlową w chwili ostrzeżenia wynikającego ze zbliżającej się obsługi serwisowej lub aktywnego stanu awarii.

  1. W pierwszym kroku należy uruchomić program ArchestraA, a następnie otworzyć obiekt, z którego zamierzamy uzyskiwać informację na skrzynkę pocztową.
  2. Następnie należy przejść na zakładkę UDAs w celu utworzenia poniższych zmiennych. Listę adresów email warto przechowywać w zmiennych email_lista_DO oraz email_lista_DW, ponieważ optymalizujemy czas pracy w momencie potrzeby modyfikacji listy mejlowej.Dobrą praktyką jest utworzenie zmiennej Nazwa, która przechowuje informacje dotyczące urządzenia. Ułatwia to identyfikację obiektu w sytuacji, gdy aplikacja systemu nadrzędnego składa się z wielu obiektów.

    CIEKAWOSTKA
    Symbolika zaworów

  3. W chwili utworzenia zmiennych należy przejść na zakładkę Scripts. Następnie należy utworzyć skrypt i wypełnić pole Expression oraz Trigger type:. W pole Expression należy wpisać warunek me.Serwis definiujący, kiedy skrypt ma zostać wykonany. Pole Trigger type: służy do zadeklarowania w jaki sposób będzie wykonywany skrypt i w ramach tej opcji należy ustawić OnTrue.
  4. W kolejnym kroku należy zaimplementować poniższy skrypt w obszarze instrukcji jakie mają zostać wykonywane w chwili spełnienia warunku. Skrypt został sparametryzowany w taki sposób, aby wysyłanie powiadomień było możliwe za pośrednictwem skrzynki pocztowej gmail. W momencie korzystania z innej skrzynki należy zmodyfikować wartość smtp. Host oraz smtp.Port.
  5. dim smtp as System.Net.Mail.SmtpClient;
    smtp = new System.Net.Mail.SmtpClient();
    smtp.Host = "smtp.gmail.com";
    smtp.Port = 587;
    smtp.EnableSsl = true;
    smtp.UseDefaultCredentials = true;
    smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
    smtp.Credentials = new System.Net.NetworkCredential("automatykablog@gmail.com",  "W TYM CUDZYSŁOWIE NALEŻY WPISAĆ HASŁO DO SWOJEJ SKRZYNKI POCZTOWEJ");
    
    ' NADAWCA email
    dim email_from as System.Net.Mail.MailAddress;
    email_from = new System.Net.Mail.MailAddress("automatykablog@gmail.com", "Dział UR");
    
    ' WIADOMOŚĆ
    dim emailMsg as System.Net.Mail.MailMessage;
    emailMsg = new System.Net.Mail.MailMessage();
    
    ' ADRESAT
    dim i as integer;
    for i = 1 to 10
    if StringLen(Me.email_lista_DO[i]) > 0 then
    emailMsg.To.Add(Me.email_lista_DO[i]);
    else
    exit for;
    endif;
    next;
    
     ' ADRESAT DW
    for i = 1 to 10
    if StringLen(Me.email_lista_DW[i]) > 0 then
    emailMsg.CC.Add(Me.email_lista_DW[i]);
    else
    exit for;
    endif;
    next;
    
    
    emailMsg.From = email_from;
    emailMsg.Subject = "Wymagana obsługa serwisowa zaworu " + "" + me.Nazwa ;
    emailMsg.Body = " Liczba zmian pozycji położenia między konserwacjami zaworu " + "<b>" + me.Nazwa + "</b></br>" + " przekroczyła wartość zadaną. <br/><br/><font size=4 color=#FF0000><b>Konieczność przeprowadzenia konserwacji</font></b>.<br/>Aktualny rejestr licznika zaworu: <b>" + me.Licznik_Pracy;
    
    emailMsg.IsBodyHtml = true;
    smtp.SendMailAsync(emailMsg);

    Kliknij aby pobrać skrypt –>  skrypt_email

  6. Powyższy skrypt jest realizowany w oparciu o zmienną Serwis, której wartość system nadrzędny uzyskuje w ramach komunikacji ze sterownikiem PLC. (Tworzenie komunikacji między sterownikiem a wizualizacją opisałem w poprzednim poście). Zmienna Serwis jest aktywna w momencie, gdy bieżąca wartość licznika (CV) przekroczy wartość zadaną, która jest zdefiniowana na wejściu PV.
  7. Jeżeli pragniesz wykorzystywać skrzynkę gmail to w ramach prawidłowego działania skryptu należy zezwolić mniej bezpiecznym aplikacjom na dostęp do skrzynki. W tym celu należy zalogować się skrzynkę pocztową a następnie przejść na poniższy link i włączyć wyżej wymienioną opcję. W innym przypadku opcja powiadomienia email nie będzie realizowana.

    https://myaccount.google.com/lesssecureapps

  8. Ponadto warto zaktualizować .NET Framework do najnowszej wersji co zapewni gwarancję poprawności działania skryptu.
  9. W chwili zastosowania powyższego skryptu oraz zastosowania się do wszystkich wskazówek powinniśmy uzyskać poniższy efekt.

W momencie pojawienia się problemów lub zastrzeżeń zapraszam do dyskusji w komentarzach lub drogą mejlową na adres:

automatykablog@gmail.com

0 0 vote
Article Rating
Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
View all comments