VB VB Script - Gestione Ricette

LucertolaVerde

Utente Electrum
8 Gennaio 2012
215
10
46
109
Ultima modifica:
Salve a tutti utenti di Inforge. net,
ieri stavo lavorando ad uno Script per un HMI su WinCC TIA Portal V13,
questo software permette di automatizzare un impianto andando a scrivere dei blocchi in awl o kop
su un PLC.
Ci sarebbe qualcuno del settore o che ci ha messo mano disposto a darmi qualche dritta/delucidazione?
Lo script e' il seguente:


Codice:
Sub Assegna_Nome_Set_Dati_Ricetta() //Nome della funzione
If SmartTags("NomeRicette") = SmartTags("Dati_FASE") then //Verifico se la variabile "NomeRicette" (tipo WString) e' uguale alla variabile "Dati_FASE" (tipo String)
    SmartTags("FASE") = SmartTags("RicetteCommessaSetDati") //In caso la prima condizione e' rispettata la variabile "FASE" (tipo String) acquisira' il valore della Variabile "RicettaCommessaSetDiDati" (tipo WString)
Else
    SmartTags("NomeRicette") = SmartTags("Dati_FASE") //Imposto il valore della variabile "NomeRicetta" uguale al valore della variabile "Dati_FASE"
End If
End Sub

In sostanza dovrei far si che attraverso un Pulsante (con lo Script trascritto negli eventi) io possa caricare le Ricette nel PLC (e per quest'azione e' presente una Funzione di Sistema), ma non mi va a trascrivere il "RicetteCommessaSetDati" anche se lo sostituisco al posto di "NomeRIcette" e viceversa, ovvero:
Forzo la Variabile "Dati_FASE" dalle tabelle di controllo del PLC e come valore le scrivo: "TESTRICETTA" mi aspetto che premendo sul pulsante la prima condizione non e' rispettata quindi mi vada ad assegnare il valore "TESTRICETTA" alla variabile "NomeRIcette" oppure "RicetteCommessaSetDati", ma cosi non avviene.
Avviene pero' se io vado a creare una nuova ricetta e la chiamo "TESTRICETTA", ed ottengo il risultato desiderato, ma non del tutto, siccome la variaible "Dati_FASE" viene scritta dal PLC e avrei bisogno che in base al valore di questa variabile viene reso lo stesso valore nel Set di Dati delle Ricette.

Grazie in anticipo.


EDIT: Risolto

C:
Sub Function()
    
Dim VariabileRicetta /Definisco la variabile
Dim ValoreRicetta   
Dim Variabile
Set VariabileRicetta = HMIRuntime.Tags("Nome_Variabile_Ricetta")     /Imposto la variabile
Set ValoreRicetta = HMIRuntime.Tags("Variabile_Valore_Ricetta")
Set Variabile = HMIRuntime.Tags("+1A.Valore")
If ValoreRicetta.Read = 1 Or ValoreRicetta.Read = 2 Then
    Variabile.Write = VariabileRicetta
Else
    Variabile.Write = Null
End If
End Sub()