Vai al contenuto
PLC Forum


Script Trasferimento valore di un tag in una tabella sql server


treemezzo

Messaggi consigliati

Buongiorno a Tutti

 

volevo chiedere cortesemente un piccolo aiuto su un esempio di  scrittura di un valore float in una tabella di un database in Sql Server 2014 che sto realizzando su WinCC 7.4 sp1. 

In pratica ho creato il database e la tabella in sql server, ho creato il collegamento ODBC, ho preso dal manuale di WinCC l'esempio dello script in VBS che serve ad effettuare questa scrittura.

 

In pratica quando invio il comando di esecuzione dello script, la variabile che deve essere scritta che è una variabile interna "Numero in virgola mobile a 32 bit IEEE 754"  se ha dei valori dopo la virgola non viene scritta nella tabella di sql, Al contrario, se inserisco solo un valore intero ( xx,000 gli zeri vengono inseriti dal campo I/O di wincc automaticamente) allora il comando viene eseguito ed infatti nella tabella viene scritto il valore intero senza virgola.

 

La colonna creata nella tabella sql è di tipo float, infatti se provo a modificare i valori della tabella con Managment Studio, posso inserire valori con la virgola senza avere alcun problema. Sembrerebbe che ci sia qualcosa nello script ma onestamente non so cosa sia. 

 

Di seguito lo script utilizzato:

 

Sub OnClick(ByVal Item) 

'VBS108
Dim objConnection
Dim strConnectionString
Dim lngValue
Dim strSQL
Dim objCommand
strConnectionString = "Provider=MSDASQL;DSN=datatransfer;UID=nomeutente;PWD=xxxxxx;"
lngValue = HMIRuntime.Tags("DATO_REAL_TEST").Read
strSQL = "INSERT INTO tabella1 (DATO) VALUES (" & lngValue & ");"
Set objConnection = CreateObject("ADODB.Connection")
objConnection.ConnectionString = strConnectionString
objConnection.Open
Set objCommand = CreateObject("ADODB.Command")
With objCommand
.ActiveConnection = objConnection
.CommandText = strSQL
End With
objCommand.Execute
Set objCommand = Nothing
objConnection.Close
Set objConnection = Nothing

End Sub

 

Qualche idea su cosa potrebbe essere?  grazie in anticipo

 

ciao

 

wincc.thumb.PNG.7f45bf9601a27131ee0fcdb6f81ee585.PNG

 

mod.jpg.f450aa675596383f30f47020817ba229.jpg

 

tabella.PNG.a8fe5877d39458b7e427a322b4d5552f.PNG

odbc.PNG.b6e886a8f3a2af5e2d4d92a01622a5da.PNG

5aa00cdf0d07a_odbc2.PNG.bf2dd36f62b35584dec6981b54eb571a.PNG

 

 

 

Link al commento
Condividi su altri siti


Mattia Spoldi

premessa che di wincc ne so poco e nioente ma me ne intendo abbastanza di sql

prova a stampare da qualche parte la variabile strSQL sia quando inserisci un intero, sia quando inserisci un float, probabilmente ci saranno delle differenze nella query.

Link al commento
Condividi su altri siti

  • 1 year later...
Ospite
Questa discussione è chiusa alle risposte.
×
×
  • Crea nuovo/a...