Suabrina Inserito: 2 maggio 2008 Segnala Inserito: 2 maggio 2008 (modificato) Salve a tutti,ho un problema abbastanza strano con wincc e in particolare con gli script VB, non riesco a scrivere i valori delle variabili sul plc.Le stesse variabili le riesco a leggerle ma no riesco a scriverle.. per esempio una variabile booleana:If HMIRuntimes.Tags("NomeTagBool").read thenMsgbox("Prova")HMIRuntimes.Tags("NomeTagBool").write 0End ifLa msgbox si apre ma la variabile non viene resettata...lo stesso vale se uso HMIRuntimes.Tags(NomeTagBool).write false 0 Set HMIRuntimes.Tags(NomeTagBool).write false 0...Lo stesso problema l'ho se voglio scrivere su delle variabili interne.. gli altri script utilizzati nell'applicazione sono stati realizzati in C ma sinceramente quel linguaggio non lo conosco proprio minimamentequalcuno ha idea di cosa può essere?Grazie Modificato: 2 maggio 2008 da Suabrina
Gianmario Pedrani Inserita: 3 maggio 2008 Segnala Inserita: 3 maggio 2008 io per scrivere dei vaori s delle variabili in vbscrip per wincc flex utilizzavo l'assehnazione es smarttag(nome_variabile)= valore mentre se volevo leggerle variabile interna= smarttag(nome_variabile) prrova e poi fammi sapere ciao ps sono andato a memoria e non so se è corretto smarttag magari lo scritto sbagliato
Suabrina Inserita: 3 maggio 2008 Autore Segnala Inserita: 3 maggio 2008 mea culpa... il problema l'ho con winCC 6.2!!
Savino Inserita: 3 maggio 2008 Segnala Inserita: 3 maggio 2008 (modificato) 'VB Dim my_object Dim objTag Dim objTag1 Set my_object = ScreenItems("Control2") // Control2 is an OCX component Set objTag = HMIRuntime.Tags("m_Time1") // m_Time1 is an internal Tag defined objTag.Read objTag.Value = my_object.Time50 // write Tag with the value from OCX Time50 objTag.Write() Set objTag1 = HMIRuntime.Tags("m_Time3") // m_Time1 is an internal Tag defined objTag1.Read objTag1.Value = my_object.Time39 // write Tag with the value from OCX Time39 objTag1.Write() -------------------------------------------------------------------------------------------------------- // ANSI C #define M_Var2 "Trigger1" // Trigger1 is an internal Tag defined #define M_Var3 "Trigger" // Trigger is an internal Tag defined SetTagBit(M_Var2,1); //Set Tag to 1 SetTagBit(M_Var2,GetTagBit( M_Var3)); //Get Tag Value Modificato: 3 maggio 2008 da Savino
Suabrina Inserita: 5 maggio 2008 Autore Segnala Inserita: 5 maggio 2008 Savino ho seguito il tuo esempio ma.. non funziona..ti riporto il codice che ho scrittoDim objtagSet objtag = HMIRuntime.Tags("VRC_STRB") objTag.ReadobjTag.Value = falseobjTag.Write()ma la variabile non si scrive mai...
Suabrina Inserita: 6 maggio 2008 Autore Segnala Inserita: 6 maggio 2008 La cosa strana è che se anche provo a scrivere su una variabile interna ottengo sempre lo stesso risultato.. cioè nulla cambia..
Savino Inserita: 7 maggio 2008 Segnala Inserita: 7 maggio 2008 Savino ho seguito il tuo esempio ma.. non funziona..ti riporto il codice che ho scrittoDim objtagSet objtag = HMIRuntime.Tags("VRC_STRB") objTag.ReadobjTag.Value = falseobjTag.Write()strano! a me funziona... scusa sesono pignolo ma prova a scrivere objtag (come dichiarato) su tutte le statements al posto di objTagPoi, controlla che il tag "VRC_STRB" sia stato definito come internal Tag
Suabrina Inserita: 8 maggio 2008 Autore Segnala Inserita: 8 maggio 2008 Savino scusami ma con WinCC sono veramente una schiappa... per internal Tag intendi come tag interna a cui non è associato un indirizzo fisico sul plc?Se si, come faccio poi a scriverla sul plc?Grazie e scusami ancora
Suabrina Inserita: 8 maggio 2008 Autore Segnala Inserita: 8 maggio 2008 Riporto il codice da me scritto:Sub LogPesature On Error Resume Next Dim objConn, strquery Dim data Dim objtag If HMIRuntime.Tags("PLC1/40AR01/43AP01/S7$Program/VRC_STRBHMI") Then 'MsgBox("Sono in ciclo") ' Apertura connessione con database Set objConn = CreateObject("ADODB.Connection") objConn.Open "DSN=ConnLAMSRV" If objConn.State <> 1 Then 'MsgBox ("Impossibile connettersi") ' Connessione non riuscita Set objConn = Nothing Exit Sub End If data = Date ' Preparazione query scrittura SQL strquery = "INSERT INTO Forno (Anno, Mese, Giorno, Ora, Minuti, Peso)"_ & " VALUES (" & Year(data) &", " & Month(data) &", " & Day(data) &", " & Hour(Now) &", " & Minute(Now) & ", " & CDbl(HMIRuntime.Tags("PLC1/40AR01/43AP01/S7$Program/VRC_MSPSBILHMI").read) &")" objConn.Execute strquery Set objConn = Nothing Set objtag = HMIRuntime.Tags("PLC1/40AR01/43AP01/S7$Program/VRC_STRBHMI") objtag.Read objtag.Value = 0 objtag.Write() End IfEnd SubSe tolgo i commenti ai popup vedo che entro nel ciclo, ma la variabile non mi scrive..Lo stesso mi succede se voglio scrivere un valore di una variabile residente su plc su di una variabile interna :Sub Aggiorna_FSDim objtag'AGGIORNO FONDOSCALA CORRENTI VARIABILI INTERNESet LAM_Bargraph_G01_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G01FSRZIAR") Set LAM_Bargraph_G02_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G02FSRZIAR")Set LAM_Bargraph_G03_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G03FSRZIAR")Set LAM_Bargraph_G04_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G04FSRZIAR")Set LAM_Bargraph_G05_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G05FSRZIAR")Set LAM_Bargraph_G06_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G06FSRZIAR")Set LAM_Bargraph_G07_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G07FSRZIAR")Set LAM_Bargraph_G08_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G08FSRZIAR")Set LAM_Bargraph_G09_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G09FSRZIAR")Set LAM_Bargraph_G10_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G10FSRZIAR")Set LAM_Bargraph_G11_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G11FSRZIAR")Set LAM_Bargraph_G12_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G12FSRZIAR")Set LAM_Bargraph_G13_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G13FSRZIAR")Set LAM_Bargraph_G14_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G14FSRZIAR")Set LAM_Bargraph_G15_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G15FSRZIAR")Set LAM_Bargraph_G16_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G16FSRZIAR")Set LAM_Bargraph_M17_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_M17FSRZIAR")Set LAM_Bargraph_TR31_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_TR31FSRZIAR")Set LAM_Bargraph_TR32_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_TR32FSRZIAR")Set LAM_Bargraph_CV31_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_CV31FSRZIAR")Set LAM_Bargraph_CV32_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_CV32FSRZIAR")Set LAM_Bargraph_TR41_FS_A = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_TR41FSRZIAR")Set LAM_Bargraph_TR42_FS_A = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_TR42FSRZIAR")Set LAM_Bargraph_TR51_FS_A = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_TR51FSRZIAR")Set LAM_Bargraph_TR52_FS_A = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_TR52FSRZIAR")Set LAM_Bargraph_CV41_FS_A = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_CV41FSRZIAR")Set LAM_Bargraph_CV42_FS_A = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_CV42FSRZIAR")Set LAM_Bargraph_FC11_FS_A = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_FC11FSRZIAR")Set LAM_Bargraph_FC12_FS_A = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_FC12FSRZIAR")Set LAM_Bargraph_FC21_FS_A = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_FC21FSRZIAR")Set LAM_Bargraph_FC22_FS_A = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_FC22FSRZIAR")Set LAM_Bargraph_TR7_FS_A = HMIRuntime.Tags("PLC4/40AR01/45AP01/S7$Program/BAR_CM/BAR_TR7FSRZIAR")Set LAM_Bargraph_CS5_FS_A = HMIRuntime.Tags("PLC4/40AR01/45AP01/S7$Program/BAR_CM/BAR_CS5FSRZIAR")Set LAM_Bargraph_PLA_FS_A = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_PLAFSRZIAR")'AGGIORNO FONDOSCALA GIRI MOTORE VARIABILI INTERNESet LAM_Bargraph_G01_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G01FSRZVEL")Set LAM_Bargraph_G02_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G02FSRZVEL")Set LAM_Bargraph_G03_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G03FSRZVEL")Set LAM_Bargraph_G04_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G04FSRZVEL")Set LAM_Bargraph_G05_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G05FSRZVEL")Set LAM_Bargraph_G06_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G06FSRZVEL")Set LAM_Bargraph_G07_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G07FSRZVEL")Set LAM_Bargraph_G08_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G08FSRZVEL")Set LAM_Bargraph_G09_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G09FSRZVEL")Set LAM_Bargraph_G10_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G10FSRZVEL")Set LAM_Bargraph_G11_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G11FSRZVEL")Set LAM_Bargraph_G12_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G12FSRZVEL")Set LAM_Bargraph_G13_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G13FSRZVEL")Set LAM_Bargraph_G14_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G14FSRZVEL")Set LAM_Bargraph_G15_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G15FSRZVEL")Set LAM_Bargraph_G16_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_G16FSRZVEL")Set LAM_Bargraph_M17_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_M17FSRZVEL")Set LAM_Bargraph_TR31_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_TR31FSRZVEL")Set LAM_Bargraph_TR32_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_TR32FSRZVEL")Set LAM_Bargraph_CV31_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_CV31FSRZVEL")Set LAM_Bargraph_CV32_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_CV32FSRZVEL")Set LAM_Bargraph_TR41_FS_rpm = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_TR41FSRZVEL")Set LAM_Bargraph_TR42_FS_rpm = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_TR42FSRZVEL")Set LAM_Bargraph_TR51_FS_rpm = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_TR51FSRZVEL")Set LAM_Bargraph_TR52_FS_rpm = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_TR52FSRZVEL")Set LAM_Bargraph_CV41_FS_rpm = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_CV41FSRZVEL")Set LAM_Bargraph_CV42_FS_rpm = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_CV42FSRZVEL")Set LAM_Bargraph_FC11_FS_rpm = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_FC11FSRZVEL")Set LAM_Bargraph_FC12_FS_rpm = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_FC12FSRZVEL")Set LAM_Bargraph_FC21_FS_rpm = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_FC21FSRZVEL")Set LAM_Bargraph_FC22_FS_rpm = HMIRuntime.Tags("PLC3/40AR01/45AP01/S7$Program/BAR_CM/BAR_FC22FSRZVEL")Set LAM_Bargraph_TR7_FS_rpm = HMIRuntime.Tags("PLC4/40AR01/45AP01/S7$Program/BAR_CM/BAR_TR7FSRZVEL")Set LAM_Bargraph_CS5_FS_rpm = HMIRuntime.Tags("PLC4/40AR01/45AP01/S7$Program/BAR_CM/BAR_CS5FSRZVEL")Set LAM_Bargraph_PLA_FS_rpm = HMIRuntime.Tags("PLC2/40AR01/45AP01/S7$Program/BAR_CM/BAR_PLAFSRZVEL")End SubOvviamente nel secondo esempio non ho implementato il tuo esempio, o meglio l'ho provato ma ho visto che non funzionava e allora ho cancellato..
Suabrina Inserita: 8 maggio 2008 Autore Segnala Inserita: 8 maggio 2008 Potrebbe creare problemi il fatto che sia un applicazione con un server e pù client?
Suabrina Inserita: 14 maggio 2008 Autore Segnala Inserita: 14 maggio 2008 Ora funziona!!!! On Error Resume Next Dim objConn, strquery Dim data Dim objtag Set objtag = HMIRuntime.Tags("PLC1/40AR01/43AP01/S7$Program/VRC_STRBHMI") ' Associo la variabile all'oggetto objtag.Read ' Leggo la variabile If objtag.value Then 'MsgBox("Sono in ciclo") 'MsgBox(objtag.value) ' Apertura connessione con database Set objConn = CreateObject("ADODB.Connection") objConn.Open "DSN=ConnLAMSRV" If objConn.State <> 1 Then 'MsgBox ("Impossibile connettersi") ' Connessione non riuscita Set objConn = Nothing Exit Sub End If data = Date ' Preparazione query scrittura SQL strquery = "INSERT INTO Forno (Anno, Mese, Giorno, Ora, Minuti, Peso)"_ & " VALUES (" & Year(data) &", " & Month(data) &", " & Day(data) &", " & Hour(Now) &", " & Minute(Now) & ", " & CDbl(HMIRuntime.Tags("PLC1/40AR01/43AP01/S7$Program/VRC_MSPSBILHMI").read) &")" objConn.Execute strquery Set objConn = Nothing objtag.Value = 0 ' Resetto il valore dell'oggetto 'MsgBox (objtag.Value) objtag.Write() ' Scrivo il valore nella variabile 'MsgBox (objtag.Value) End IfEnd Sub
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora