Sunday, 5 July 2015

Auto Run Services

- 0 komentar
Auto Run Services is a little application to keep some services Running.
We create this application because of our WinCC problem. Our WinCC Client suddenly “hang”, not connected to the server. After do some analyze, the Sharing services on the server is Stop, and also other services. We assume this problem is caused by virus. We have try to cleaning up but still can not kill the virus.
So, to fight against the virus, we make an application to force Run the services.
This is not a good long term solution, but temporary can keep the system running well.

The view of application:


To change the list of services, you can click on Open File button, then change/add/remove services name, then save it. You must re-open (close-open) application to update the list of services.
Every 5 seconds, the application checks the state of the services, if it not Running, then the application will force it to be Running.
The changes status will be logged on file. To see it you can click on Open Log button.


Download the project HERE


Thank you..!
[Continue reading...]

Wednesday, 1 July 2015

Send SMS for WinCC Alarm

- 1 komentar
Dear All,
here is our answer, when a friend ask about: How to send SMS automatically when Alarm is active in WinCC?

Alarm Control Center (ACC) from Siemens is the best tool for this purpose, and many other functionalities for Alarm handling (escalation).

But, if you want to use another application (more cheap/simple), we create a little application called Send_SMS.
Please make sure that you already have a GSM modem for sending SMS and make sure this modem is working. Remember the serial (COM) port which is  used by the modem.

There are 3 kind of work we will do:
1) download the file
2) edit Alarm Logging
3) edit Global Script

1. DOWNLOAD FILES
Please follow these steps:
> download the .JPG file here. *please use Right-click > Save as.
> rename the file extension from .JPG to .ZIP, then extract the file.
> there are 2 application, send_sms_w.exe is Windows application and send_sms_c.exe is Console.
> test sending SMS using send_sms_w.exe

> edit Settings of Port number, Baud rate, destination Phone number, SMS center.
> click Connect button.
> write some text, then click SEND button.
> check incomming SMS on destination phone.
> if the test above is success, then put send_sms_c.exe to the specified location, like on C:\ drive

2. EDIT ALARM LOGGING
> open Alarm Logging from WinCC Explorer.
> select the alarm messages which is you want to send SMS.
> check the Trigger Action option.

3. EDIT SCRIPT
> open Global Script C.
> select Standard functions > Alarm > GMsgFunction
> open the script and edit, to be like this:



#include "apdefap.h"

BOOL GMsgFunction( char* pszMsgData)
{
char s_sms [200];

MSG_RTDATA_STRUCT mRT;
  memset( &mRT, 0, sizeof( MSG_RTDATA_STRUCT ) );

  if( pszMsgData != NULL )
  {
     printf( "Meldung : %s \r\n", pszMsgData );

    // Meldungsdaten einlesen
     sscanf( pszMsgData,  "%ld,%ld,%04d.%02d.%02d,%02d:%02d:%02d:%03d,%ld, %ld, %ld, %d,%d",
&mRT.dwMsgNr,  // Meldungsnummer
&mRT.dwMsgState,   // Status MSG_STATE_COME, .._GO, .._QUIT, .._QUIT_SYSTEM
&mRT.stMsgTime.wYear,  // Jahr
&mRT.stMsgTime.wMonth,  // Monat
&mRT.stMsgTime.wDay, // Tag
&mRT.stMsgTime.wHour,  // Stunde
&mRT.stMsgTime.wMinute, // Minute
&mRT.stMsgTime.wSecond,  // Sekunde
&mRT.stMsgTime.wMilliseconds, // Millisekunde
&mRT.dwTimeDiff, // Zeitdauer der anstehenden Meldung
&mRT.dwCounter, // Interner Meldungszähler
&mRT.dwFlags, // Flags( intern )
&mRT.wPValueUsed,
&mRT.wTextValueUsed );

      // Prozesswerte lesen, falls gewünscht
    } 

  printf("Nr : %d, St: %x, %d-%d-%d %d:%d:%d.%d, Dur: %d, Cnt %d, Fl %d\r\n" , 
  mRT.dwMsgNr, mRT.dwMsgState, mRT.stMsgTime.wDay, mRT.stMsgTime.wMonth, mRT.stMsgTime.wYear, 
  mRT.stMsgTime.wHour, mRT.stMsgTime.wMinute, mRT.stMsgTime.wSecond, mRT.stMsgTime.wMilliseconds, mRT.dwTimeDiff,
  mRT.dwCounter, mRT.dwFlags ) ;

if (mRT.dwMsgState == 1)
{
printf ("send sms..");
sprintf(s_sms, "C:\\send_sms_c.exe 1 9600 +6281234567890 +628100000 \"Test Alarm %d\"", mRT.dwMsgNr);
ProgramExecute(s_sms);
}

   return( TRUE );
}

* the red one is the additional script.
* edit path of file, port number, baud rate, phone number, SMS center

> you can modify the content of message, on the example above, we just send a message number of alarm.
> save and go test runtime WinCC.


Thank you. 
[Continue reading...]
 
Copyright © . HadiSCADA - Posts · Comments
Theme Template by BTDesigner · Powered by Blogger