admin

Circa admin

Questo autore non ha riempito alcun dettaglio.
Finora admin ha creato 317 post nel blog.

Inviare email da WinCC

Di seguito un frammento di esempio per inviare email da WinCC

Dim strFrom
Dim strTo
Dim strSub
Dim strBody
Dim strSMTP
Dim objEmail
strFrom = “mittente@dominio1.it”
strTo = “destinatario@dominio2.it”
strSub = “Oggetto del messaggio”
strBody = “Testo del messaggio”

‘Inserisci l’indirizzo IP o il nome del server SMTP
strSMTP = “192.192.192.192”

Set objEmail = CreateObject(“CDO.Message”)
objEmail.From = strFrom
objEmail.To = strTo
objEmail.Subject = strSub
objEmail.Textbody = strBody
objEmail.Configuration.Fields.Item(“http://schemas.microsoft.com/cdo/configuration/sendusing”) = 2
objEmail.Configuration.Fields.Item(“http://schemas.microsoft.com/cdo/configuration/smtpserver”) = strSMTP

‘Per modificare la porta usare la riga seguente, normalmente non necessaria con valori default
‘objEmail.Configuration.Fields.Item(“http://schemas.microsoft.com/cdo/configuration/smtpserverport”) = 25
objEmail.Configuration.Fields.Update

Le applicazioni sono molteplici sia per l’assistenza (per esempio inviare una email in caso di riavvio del sistema) sia per l’operatore.

Di |2008-10-23T00:00:06+02:00Ottobre 23rd, 2008|BasicScript, Esempi WinCC|0 Commenti

WorkShop WinCC 7.0

Workshop introduttivi a winCC V7.0

Date

  • 15 Ottobre 2008
  • 19 Novembre 2008
  • 17 Dicembre 2008
  • 21 Gennaio 2009
  • 18 Febbraio 2009
  • 18 Marzo 2009
  • 15 Aprile 2009
  • 17 Aprile 2009 (filiale di Padova)
  • 20 Maggio 2009
  • 17 Giugno 2009
  • 15 Luglio 2009
  • 16 Settembre 2009

Mattina:

  • Panoramica WinCC
  • Creazione di un progetto, interfacciamento con PLC, tag interne e esterne
  • Editor grafico
  • User administrator (gestione accessi)
  • Gestione allarmi
  • Varie ed eventuali

Pomeriggio:

  • Gestione trend storici
  • Global script (utilizzo base)
  • Cenni ai pacchetti opzionali e add-ons di WinCC
  • Cenni allo scambio dati fra WinCC e altre applicazioni in ambiente Windows
  • Varie ed eventuali

Orario

  • Dalle 9.00 alle 17.00 circa 

Sede
Siemens SpA Viale Piero e Alberto Pirelli, 10
20126 Milano.

Informazioni

Per iscrizioni o per ottenere informazioni scrivere una mail direttamente a Siemens.

Info dettagliate qui

Di |2008-10-13T11:24:52+02:00Ottobre 13th, 2008|Comunicati|1 Commento

Novità su WinCC.it

Sono state aggiunte alcune funzionalità richieste dai navigatori.

  • Finestra di chat per dialogare con noi
  • NewsLetter con invio automatico dei nuovi articoli pubblicati
  • Conversione dell’articolo in PDF ed invio tramite Email
  • RSS per gli articoli
  • RSS per i commenti
  • Gestione TAG

Speriamo che queste nuove utility del sito siano di vostro gradimento.

Di |2008-09-05T14:23:10+02:00Settembre 5th, 2008|Comunicati|0 Commenti

VB-Script e C-Script

Per prima cosa desideriamo ringraziare alcuni di Voi, che ci hanno segnalato questo argomento come articolo da pubblicare sul nostro Blog. Naturalmente Vi incoraggiamo a scriverci anche solo per esprimere le vostre opinioni.
Come avete letto dal titolo, in questo articolo cercheremo di confrontare il C-script e VB-Script per le versioni di WinCC 6.x in poi, compresa la nuova e tanto attesa versione 7.

Cominciamo con il precisare la differenza tra “azioni” e “funzioni”; in quanto ad alcuni non è ancora ben chiara…

Innanzitutto le azioni vengono utilizzate per attività di background, quali p. es. stampe giornaliere di protocolli, il monitoraggio di variabili o l’esecuzione di calcoli.

Le funzioni sono porzioni di codice che possono venire utilizzate in più punti, la cui definizione però si effettua in un punto solo. WinCC mette a disposizione numerose funzioni, liberamente utilizzabili e visibili direttamente nel riquadro a sinistra dell’editor della funzione. Inoltre è possibile scrivere funzioni ed azioni proprie, utilizzando l’ambiente Global Script e selezionando uno dei 2 ambienti che WinCC mette a disposizione: C-Script e VB-Sscript.

In WinCC è possibile utilizzare parallelamente VBScript e C-Script, ma non intersecare i due tipi di script:

  • all’interno di una pagina e di un progetto si possono progettare sia script VBS che script C: cioè posso associare ad un specifico evento un’azione C mentre per un altro tipo di evento un’altra funzione VBS
  • gli script C non si possono richiamare negli script VBS e viceversa.
  • in VBS sono a disposizione interfacce interne per variabili e oggetti di pagina, mentre nell’ambiente C è anche possibile accedere ad altri sottosistemi di WinCC (per es. i protocolli).

Inoltre da tenere presente che il tipo di dati delle variabili VBS è sempre VARIANT, mentre in C-Script si possono decidere il tipo di dati opportuno (char, double,ecc…)

In VBS di WinCC, contrariamente a C, non viene fatta alcuna differenziazione fra azioni locali (valide per tutto il progetto) e azioni globali (valide per tutto il computer). Un’azione progettata è sempre valida globalmente. Tenere presente che le lunghezze dei nomi degli oggetti dinamizzati in Graphics Designer  è spesso fonte di errori!!! Infatti tali lunghezze sono limitate a circa 200 caratteri, e che nei file script ogni carattere speciale utilizzato nel nome di un oggetto viene trasformato in 5 caratteri.

Dietro un X iniziale, il carattere speciale viene rappresentato in codice esadecimale a 4 cifre.

Se con un’azione VBS si dinamizza una proprietà dell’oggetto attraverso il valore di ritorno di uno script, il valore della proprietà dell’oggetto viene scritto soltanto se è cambiato rispetto all’ultima esecuzione script. In tal caso, non viene considerato se il valore è stato modificato da un’altra posizione.

Fate quindi attenzione quando dinamizzate una proprietà tramite valore di ritorno, in quanto non dovranno essere modificate in altri punti da C-Script o VB-Script

Per quanto rigurada le funzioni e le variabili globali in C, c’è solo da dire che la capacità di memoria massima disponibile di 64 KByte.
Inoltre tenere a mente che non è ammesso definire una variabile C in più posizioni. Per maggior chiarezza e per evitare definizioni doppie, è opportuno quindi definire le variabili C globali solo
in una posizione. Per definirla in una sola posizione basta fare così:

extern int a; //La variabile a viene dichiarata esterna

Oltretutto, con C-Script, a differenza di VBS, ho la possibilità di usare delle DLL proprie (Dynamic Link Libraries). Le funzioni comprese in DLL esistenti possono essere rese utilizzabili per funzioni ed azioni integrando la funzione o l’azione interessata.

Per utilizzare una DLL basta inserire all’inizio della funzione o dell’azione il seguente codice:

#pragma code(“<Nome>.dll”)
<Tipo di valore di retorno> <Nome di funzione 1>(…);
<Tipo di valore di ritorno> <Nome di funzione 2>(…);
.
.
.
<Tipo di valore di ritorno> <Nome di funzione n>(…);
#pragma code()

Per chi vuole sviluppare DLL ad hoc, ricordiamo che la struttura della DLL deve essere creata con allineamento a 1 byte. Inoltre la DLL deve trovarsi in una directory bin o in un percorso definito nelle variabili del sistema PATH.

Tale variabile viene definita tramite le proprietà di sistema del sistema operativo.

Un’ ultimo confronto possiamo farlo in termini di prestazioni tra VB-Script e C-Script: tale confronto viene anche riportato nella guida in linea di WinCC e sono test fatti direttemente da Siemens.

Nella guida in linea di WinCC è dedicato un capitolo “Prestazioni” dove sono comparati i tempi di esecuzione per ogni singola azione nei due ambienti.

Quello che subito salta all’occhio è che C-Script è preferibile in buona parte dei casi. Ma un attento programmatore potrebbe ottimizzare il tempo di esecuzione dei script scegliendo di volta in volta l’ambiente più appropriato.

Per adesso, mi fermo qui con questa carrellata su questi ambienti Script. Purtroppo l’argomento è molto vasto e il tempo per scrivere poco.

(MB)

Di |2008-08-12T00:00:25+02:00Agosto 12th, 2008|BasicScript, cScript, Documentazione|0 Commenti

GetTag e SetTag in BasicScript

Può essere comodo per migliorare la lettura del codice utilizzare due semplici funzioni per leggere o scrivere una tag in BasicScript

Di seguito il codice per leggere

Function GetTag(TagName)
Dim objTag
Set objTag = HMIRuntime.Tags(TagName)
GetTag=objTag.Read
End Function

E il codice per scrivere

Sub SetTag(TagName, TagValue)
Dim objTag
Dim iRit
Set objTag = HMIRuntime.Tags(TagName)
iRit=objTag.Write(TagValue)
End Sub

Niente di nuovo o sofisticato, ma solo la possibilità di utilizzare la vecchia sintassi del cScript per chi passa frequentemente da un ambiente all’altro risulterà piu’ ordinato il codice BasiScript.

Di |2008-07-26T00:00:38+02:00Luglio 26th, 2008|BasicScript|0 Commenti

SetTagByteBit e GetTagByteBit in cScript

Spesso è utile estrarre un bit da un byte per diminuire il numero di tag in scambio con il PLC

Di seguito il codice necessario per settare un bit all’interno di un byte

BOOL SetTagByteBit(char* pszTagDest, int iNumBit, short int iValue)
{
int iRit=TRUE;
char szTagDest[NC]; //contiene nome tag
int iAgg;

iAgg=iNumBit;

//Crea nome destinazione
sprintf(szTagDest,”%s”,pszTagDest);

if(iValue)
{
//Setta il bit
SetTagByteWait(szTagDest,GetTagByte(szTagDest) | (1<<iAgg));
}
else
{
//Resetta il bit
SetTagByteWait(szTagDest,GetTagByte(szTagDest) &~ (1<<iAgg));
}
return(iRit);

}

Di seguito il codice necessario per ottenere lo stato di un bit all’interno di un byte.

BOOL GetTagByteBit(char* pszTagSource, int iNumBit)
{

int iRit;
int iAgg;
char szTagSource[NC]; //contiene nome tag

//Crea nome sorgente
sprintf(szTagSource,”%s”,pszTagSource);

iAgg=iNumBit;

//Leggi valore
if(GetTagByte(szTagSource) & (1<<iAgg))
{
iRit=TRUE;
}
else
{
iRit=FALSE;
}
return(iRit);

}

Le funzioni servono di esempio ma sono facilmente estendibili per la stessa operazione su una word o una doppiaword.

Di |2008-07-24T00:00:00+02:00Luglio 24th, 2008|cScript, Esempi WinCC|0 Commenti

WinCC 6.x e Windows XP SP3

Se si tenta di installare WinCC 6.x su un Windows XP aggiornato alla SP3 normalmente basta rimuovere il SP3 installare WinCC e poi reistallare eventualmente il SP3.

Ma questo non è possibile se si dispone di un Windows XP “nativo” con il SP3.

Per far aggirare questo problema modificare il registro inserendo questa chiave:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB319740]

Successivamente ricordarsi di riavviare.

Il setup verrà eseguito normalmente.

Ricordiamo che WinCC 6.x alla data di questo articolo non è dichiarato compatibile con il SP3 di XP ma sembra che il SP3 sia la raccolta ordinata di tutti gli aggiornamenti rilasciati dopo la SP2

Seguire attentamente sempre la lista delle compatibilità ufficiale Siemens come fonte di numerosi problemi.

Di |2008-07-23T00:00:12+02:00Luglio 23rd, 2008|Documentazione|4 Commenti

Rilasciato WinCC 7.0

E’ disponibile da fine Giugno la tanto attesa versione di WinCC 7.0 per il momento in consegna automatica a chi dispone del contratto SIP di aggiornamento software.

Lo stiamo installando e lo testeremo un pò prima di darvi le nostre impressioni sul campo ed eventuali indicazioni.

Di seguito una panoramica delle innovazioni riportate nella guida.

Panoramica

La funzionalità del sistema è stata ampliata ulteriormente con l’evoluzione delle opzioni
WinCC esistenti, nonché con l’aggiunta di nuove opzioni:

  • Progetti a stazione singola e progetti client adesso sono eseguibili anche su computer
    che usano il sistema operativo Windows Vista.
  • Installazione semplificata del sistema base WinCC nonché delle opzioni WinCC grazie ad
    un nuovo setup generico.
  • I nuovi Control consentono una rappresentazione comoda di segnalazioni, valori di
    processo e valori di archivio in forma di tabelle e curve.
  • Revisione ed estensione dell’interfaccia runtime.
  • Revisione ed armonizzazione dei WinCC Control.
  • Supporto migliorato per progetti multilingue.
  • Documentazione di runtime con layout specifico della lingua.
  • Engineering orientato all’oggetto grazie ad oggetti di grafica modificabili in modo centrale.
  • Possibilità di comunicazione avanzate di WinCC con i sistemi di automazione di offerenti
    terzi.
  • WinCC può essere utilizzato come Windows Service nel modo di servizio WinCC.
  • Funzionalità estesa per le opzioni WinCC/WebNavigator e WinCC/DataMonitor.

Altre novità nella versione 7.0 di WinCC
Accanto alle novità descritte il WinCC V7.0 offre altre funzioni ed estensioni.

Richiesta di variabili senza prefisso

Con nuove estensioni alle variabili possono essere richieste variabili senza prefisso.
Le estensioni alle variabili hanno il seguente significato:

  • “@NOTP” disattiva il prefisso della variabile.
  • “@NOSP” disattiva il prefisso del server.
  • “@NOP” disattiva il prefisso della variabile ed il prefisso del server.

Persistenza per variabili interne

Le variabili interne presentano adesso inoltre la caratteristica “Persistenza Runtime”.
Con la nuova proprietà l’utente determina se il valore delle variabili interne viene mantenuto
all’uscita da runtime. Al successivo riavvio di runtime il valore salvato viene utilizzato come
valore iniziale.

Installazione di WinCC Client senza SQL Server

Si ha la possibilità di configurare un WinCC Client anche senza installazione di SQL Server
su un computer. In tal modo può essere utilizzato anche un hardware più “debole” come
stazione operativa WinCC.

Generazione di una segnalazione di servizio personalizzata

Per l’utilizzo di oggetti WinCC grafici qualsiasi può essere progettata una propria
segnalazione di servizio come azione C oppure come azione VBS.

  • Progettare la segnalazione di servizio come azione C con la funzione standard
    “GCreateMyOperationMsg” dal gruppo funzionale “Allarme”.
  • Progettare la segnalazione di servizio con l’oggetto VBS “HMIRuntime.Alarms”.

Trigger di animazione (trigger 125 ms)

Per la dinamizzazione di oggetti con VBS è disponibile il nuovo tipo di trigger “Ciclo di
animazione”. Il ciclo di animazione consente di attivare e disattivare azioni in runtime. Inoltre
può essere modificato il tempo in cui un trigger viene eseguito. Il trigger viene usato,
scrivendo un’azione ed utilizzando il tipo di trigger “Ciclo di animazione”.

SIMATIC Logon come parte integrante del sistema base

Adesso l’opzione “SIMATIC Logon” è parte integrante di WinCC V7.0 ed è contenuta sul
DVD fornito.

Più WinCC allo stesso prezzo

Due licenze Power Tag sono state sostituite a costo zero da licenze più ampie. Si tratta di
licenze per le seguenti prestazioni:

  • Licenza per 256 variabili viene sostituita da una licenza per 512 variabili.
  • Licenza per 1024 variabili viene sostituita da una licenza con 2048 variabili.
Di |2008-06-28T00:00:27+02:00Giugno 28th, 2008|Documentazione|0 Commenti

Funzioni del nuovo WinCC 7.0 (anteprima)

Dovrebbe essere imminente il rilascio di WinCC 7.0 (giugno 2008 secondo i piani di sviluppo)

Di seguito alcune delle novità che saranno incluse nella nuova versione

  • Runtime eseguibile in Windows Vista
  • Nuovi oggetti allarmi, trend e user Archive
  • Eseguibile come servizio

Altre novità che dovrebbero essere presenti nella nuova versione

  • Nuove possibilità grafiche come trasparenze, sfumature di colore e ombreggiature
  • Gestione centralizzata della palette dei colori
  • Gestione centralizzata dei temi degli oggetti
  • Nuovi oggetti grafici (combo box, list box, testi multilinea, controlli multimediali, ecc.)
  • Oggetto allarmi visualizza un numero illimitato di allarmi
  • Filtro allarmi orientato all’utente
  • Nuovo editor per import export testi gestione multilingua
  • Filtri in textlibrary
  • Webclient possibile senzal’uso di internet explorer
  • Trigger veloce per animazioni fluide
  • Tag interne persistenti
  • Controllo container controlli .NET

E ancora:

  • Simatic Logon incluso “di serie”
  • Driver Ethernet IP (Allen-Bradley)
  • Driver Modbus TCP/IP (Schneider)

Ovvio che non vediamo l’ora di mettere le mani su una versione demo.

A presto

Di |2008-05-31T00:00:07+02:00Maggio 31st, 2008|Documentazione|1 Commento

Security rischi e pericoli

Sappiamo benissimo che le macchine a controllo numerico sono una realtà da anni.
Tuttavia, se da una parte c’è un ovvio beneficio, dall’altra nascono problemi che prima non esistevano e che ora se ne ignora l’esistenza.

Per essere più chiari: un esempio di problema che può nascere è la Cyber Security.

E’ oramai noto che un PC possa essere violato per scopi di spionaggio industriale o per il semplice motivo di monitorare la navigazione WEB. Ora, visto e considerato che, la maggior parte dei supervisori lavorano su PC a stretto contatto con il WEB, la domanda è: siamo sicuri  che il nostro impianto sia al sicuro?

Bene: a questa domanda troverete qui parte della risposta, che vi dico subito essere NO!
In questo Blog, noi ci occupiamo di WinCC, e quindi abbiamo provveduto a fare dei test in laboratorio, provando più tipi di attacco per verificare la sicurezza del noto supervisore, sia in versione 6.x sia il Flexible.

Premetto alcune considerazioni: buon parte degli SCADA e così pure WinCC usano come PROTOCOLLI ModBus/TCP, ETHERNET/IP, DNP3 e OPC per comunicare con PLC, servizi di sistema o sw applicativi. Per ognuno di questi protocolli si potrebbe scrivere tutti i pregi e i difetti, ma son già stati affrontati in molti siti. Qui noi tratteremo solo le vulnerabilità e le falle sulla sicurezza.

Cominciamo con il sottolineare che in WinCC non viene usata:

  1. Nessuna Autenticazione
  2. Nessuna Firma
  3. Nessuna Cifratura

Un’altra vulnerabiltià è che le comunicazioni sono regolate da protocolli (alcuni documentati) da Siemens o da standard come l’OPC: questo per abbattere i costi e per una maggiore interoperabilità di prodotti.

WinCC mette a disposizione interfacce WEB: per la famiglia WinCC 6.x il WEB-Navigator.
Spesso queste utility sono usate con troppa leggerezza in quanto possono essere vittime di backdoor o accessi non autorizzati.
Oltre ad attacchi via OPC (nel caso sia attivato il server OPC), son possibili attacchi direttamente all’SQL Server Microsoft.
L’autenticazione è banale e si può accedere in remoto per modificare tutti i dati e le tabelle contenute nel database con query replicabili. Inoltre i server SQL sono raggiungibili facilmente grazie e dei tool per il WEB che attraverso dei semplici ping (ad sempio SQLPing) possono trovare nella rete il motore di database e accedere facilmente in quanto il metodo di autenticazione è sempre lo stesso !

La sicurezza viene di solito data dal sistema operativo del PC e dai software applicativi installati, nel nostro caso Windows, SQL  Server e applicazioni DCOM e OPC dipendenti. Ma come ben sapete tutti questi sw sono vulnerabili se non vengono in qualche modo protettti.

Riassumiamo qui alcuni punti che si dovrebbero tenere a mente quando si installa una rete PLC-SCADA:

  1. Il PC di gestione con lo SCADA sia possibilmente l’unico ad avere accesso al PLC
  2. Tenere il sistema operativo e lo SCADA aggiornato con i Service Pack e gli aggiornamenti che vengono rilasciati dalla casa madre
  3. Possibilmente il PC con lo SCADA sia facente parte di una rete diversa da quella aziendale collegata alla rete internet.
  4. Installare i migliori Firewall e Antivirus in commercio: nelle riviste specializzate vengono sempre stilate le classifiche dei migliori antivirus.
  5. Accertarsi che periodicamente venga fatta la manutenzione al PC, per controllare lo stato dei dischi, dell’ HW e dello stesso software . Sul sito della Siemens è disponibile una sezione per il download di tutte le nuove patch.
  6. La fase di organizzazione della security dovrebbe essere studiata all’inizio, ovvero nella fase di progettazione.
  7. E’ molto utile l’opzione per WinCC che attiva la ridondanza.

Inoltre il fattore umano ha la sua importanza. Spesso il PC di gestione viene usato come un semplice Personal computer.

Non è una novità che alcuni operatori utilizzano il computer di gestione per guardare DVD, giocare o effettuare altre attività che possono compromettere la stabilità e l’efficenza del sistema.

A questo punto ricordiamo una cosa, per ogni rischio VIRTUALE corrisponde un rischio REALE, spesso il rischio reale ha conseguenze e rischi ben più gravi di un PC mal funzionante.

Vale proprio la pena di rischiare?

(MB)

Di |2008-04-29T00:00:21+02:00Aprile 29th, 2008|Security|0 Commenti
Torna in cima