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.
- W pierwszym kroku należy uruchomić program ArchestraA, a następnie otworzyć obiekt, z którego zamierzamy uzyskiwać informację na skrzynkę pocztową.
- 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 - 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.
- 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.
-
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
- 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.
- 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
- Ponadto warto zaktualizować .NET Framework do najnowszej wersji co zapewni gwarancję poprawności działania skryptu.
- 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