visualizza l'elenco degli articoli
WinCC -- Progettazione di allarmi e segnalazioni -- Operazioni su allarmi e segnalazioni
Quali possibilità esistono in WinCC per leggere o scrivere gli archivi TagLogging / AlarmLogging?
Come si possono confermare segnalazioni di allarme?
Come mai in SIMATIC WinCC segnalazioni disabilitate non possono essere abilitate, nonostante l'operatore che ha effettuato il login abbia l'autorizzazione ad abilitare segnalazioni?
Come si può, nella conferma di una segnalazione, generare in più una segnalazione di servizio che contenga il testo della segnalazione confermata?
Come si possono creare segnalazioni di servizio definite dall'utente?
Quali possibilità ci sono di resettare nuovamente il bit di conferma?
Come si possono creare segnalazioni di servizio con azioni specifiche utente fino a WinCC V6.0 SP4 compreso ?
OS - WinCC -- Progettazione di allarmi e segnalazioni -- Progettazione di allarmi e segnalazioni
Come si possono creare segnalazioni di servizio con azioni specifiche utente fino a WinCC V6.0 SP4 compreso ?
Come si possono visualizzare segnalazione nella runtime e come si può operare su di esse?
Che cosa si può fare se nella runtime non vengono visualizzati gli allarmi?
Progettazione del blocco di sistema "Numero di PLC/CPU" nella segnalazione
Perché segnalazioni rilevanti per il punto di misura non vengono visualizzate nel faceplate (PCS 7 V4.x / V5.x)?
Le visualizzazioni cumulative nel campo panoramico di WinCC non indicano nulla.
Generazione di una registrazione temporale nonostante segnalazioni operative uguali
Comando della tromba in caso di segnalazioni che sono disabilitate per determinati utenti
Perché in PCS 7 i time stamp vengono rappresentati barrati opp. con un asterisco?
SIMATIC PCS 7 V5/V6 - Segnalazioni non confermabili sulla nuova pagina di allarme
Come sono assegnate le priorità per la rappresentazione di anomalie, avvisi ecc. con una visualizzazione cumulativa?
Come si può visualizzare il commento al blocco in una segnalazione di servizio?
Perché segnalazioni di servizio vengono visualizzate solo sul server OS e non sul client OS?
Perché, dopo all'upgrade da PCS 7 V6.0 SP2 a SP3, l'operatore che deve confermare una segnalazione non è registrato nella segnalazione di servizio?
Perché la richiesta di servizio non viene rappresentata pulsante nella visualizzazione cumulativa?
Modifica del colore di stampa nel report delle segnalazioni
Come si può ottenere che le segnalazioni per un determinato operatore vengano visualizzate nella runtime di WinCC, ma non possano essere confermate?
PCS 7 V6.0 -- OS Alarm Logging - Conferma delle segnalazioni
Perché in un progetto PCS 7 non viene visualizzata la segnalazione di servizio?
Come si possono sopprimere le segnalazioni cumulative della tecnica di guida del processo
Che significato hanno le segnalazioni cumulative di processo create nella compilazione OS?
Quali segnalazioni cumulative di processo vengono create nella compilazione OS?
Come si possono creare segnalazioni di servizio con azioni specifiche utente fino a WinCC V6.0 SP4 compreso ?
Numero di ordinazione:

Istruzioni
Le segnalazioni di servizio in WinCC vengono generate automaticamente in occasione delle operazioni su campi di I/O se durante la progettazione dei campi di I/O è stata impostata la proprietà "Segnalazione di servizio Si".
Viene però spesso espresso il desiderio che le segnalazioni servizio vengano emesse anche in occasione della pressione di un pulsante o di altri oggetti - questo è possibile con l'utilizzo di alcune funzioni del WinCC Open Development Kit (WinCC ODK).

Questo articolo mostra l'impiego delle funzioni ODK "MSRTCreateMsg()" e "MSRTSetComment()", per generare segnalazioni servizio durante la runtime. Queste funzioni possono essere utilizzate sino a WinCC V6.0 SP4 compreso. Da WinCC V6.2 occorre utilizzare la funzione ODK "MSRTCreateMsgInstanceWithComment()" (vedi l'articolo 24325381)!

Attenzione!
Nella migrazione di un vecchio progetto può essere necessario sostituire i richiami delle funzioni "MSRTCreateMsg()" e "MSRTSetComment()" con "MSRTCreateMsgInstanceWithComment()"!

La struttura della segnalazione di servizio per questo esempio è determinata fissa dal sistema. Lo script in questo articolo crea durante la runtime una segnalazione di servizio con il numero di segnalazione 12508141, il vecchio valore ed il nuovo valore in Prozeßwert_2 opp. Prozeßwert_3 ed un commento alla segnalazione.

Nella funzione "BedienMeldB" questi richiami API sono stati raccolti e alimentati in modo che sia raggiunta una funzionalità uguale alla segnalazione di servizio del campo di I/O.

1. Alimentazione della funzione "BedienMeldB"

Se la funzione viene richiamata con l'evento "Clic del mouse” su un pulsante o su un altro oggetto, allora essa potrebbe essere alimentata nel modo seguente:

double wert_old=0;
double wert_new=1;
char comment[128]="Pressione del pulsante33";
BedienMeldB(comment,wert_old,wert_new);

oppure
BedienMeldB("Pressione del pulsante10",0,0);

La funzione deve essere alimentata con la stringa di commento, con valore nuovo e vecchio, dove questi valori possono anche essere semplicemente trasferiti con 0, se non è stata scritta alcuna variabile.

Un trasferimento del Variable-ID, come esso viene impiegato nel campo I/O, non è stato previsto, poiché esso non può essere rilevato
Una registrazione nel Logbook non viene eseguita da questa funzione.

2. La funzione "BedienMeldB"

#pragma code ("Kernel32.DLL");
BOOL GetComputerNameA(LPSTR Computername, LPDWORD size);
BOOL GetLocalTime(SYSTEMTIME* stTime);
#pragma code();
#include "M_GLOBAL.H"
#include "msrtapi.h"
// =======================================================
// Function: BedienMeldB()
// =======================================================
// Description: Function to create user specific operator messages
// Call e.g. released by a Button: BedienMeldB(CommentText,W_old,W_new);
// =======================================================
void BedienMeldB(char* CommentText,double doValueOld, double doValueNew)
{
CMN_ERROR g_sErr;
LPCMN_ERROR pError = &g_sErr; /* Global Error Block */
BOOL fRet = TRUE;
DWORD dwBufSize;
static DWORD l_svID = 0;
//Connection ID to Alarmlogging

DWORD dwVarID=0;
// Tag-ID set to 0
MSG_RTCREATE_STRUCT MsgCreate;
MSG_COMMENT_STRUCT MsgComment;
SYSTEMTIME stTime;
GetLocalTime(&stTime);
// Get time/date

MsgCreate.dwMsgNr = MSG_SINGLE_OPERATION;
// Operator Message Number
MsgComment.dwMsgNr = MSG_SINGLE_OPERATION;
// Operator Message Number
MsgCreate.stMsgTime = stTime;
MsgComment.stTime = stTime;
MsgCreate.wPValueUsed = 7;
// 3 Process Tags(0..2)
MsgCreate.dPValue[0] = dwVarID;
// Tag-ID
MsgCreate.dPValue[1] = doValueOld;
// previous value
MsgCreate.dPValue[2] = doValueNew;
// current value
MsgCreate.dwMsgState = MSG_STATE_COME;
// state "COME"

strcpy(MsgComment.szText, CommentText);
strcpy(MsgComment.szUser, GetTagChar("@CurrentUser"));
// assign logged user
// get computer name
dwBufSize = sizeof(MsgComment.szComputerName);
GetComputerNameA(MsgComment.szComputerName, &dwBufSize);
printf("ComputerName: %s \r\n",MsgComment.szComputerName);
do {
if(l_svID==0) {
fRet= MSRTStartMsgService(&l_svID, NULL, NULL, 0, NULL, pError);
// activate service
if(!fRet) break;
printf("Alarm Connected %d \r\n", l_svID);
}
fRet = MSRTCreateMsg(l_svID, &MsgCreate, pError) ;
// create message
// Create comment
if(fRet == FALSE){
printf("MSRTCreateMsg_Error %s \r\n",pError->szErrorText);
}
else {
MSRTSetComment(l_svID, &MsgComment, pError);
}

break;
} while(TRUE);

fRet=MSRTStopMsgService(l_svID,pError);
// cancel service
printf("StopMsgService %d %s \r\n",fRet,pError->szErrorText);
if (fRet==TRUE)
l_svID=0;
}

Avvertenza
In WinCC ODK si trova anche una funzione nella quale si può indicare il server come parametro di richiamo. Nell’esempio in alto si utilizza il server standard.
Informazioni sullo ODK si trovano nell’articolo con ID 9652128.
Tenere conto anche dell’articolo 24325381.


 Articolo con ID:218555   Data:2008-08-14 
Questo articoloè stato utilenon è stato utile                                 
mySupport
My Documentation Manager 
Newsletter 
CAx-Download-Manager 
Support Request
Vai all'articolo
Stampa
Creazione PDF 
Invia l'articolo
QuickLinks
Strumento di compatibilità 
Aiuto
Aiuto on-line
Guided Tour