|
DOMANDA:
Come si può sostituire la funzione "ReadMultiVariable" con la funzione "ReadVariable"?
RISPOSTA:
Si utilizza la funzione "ReadMultiVariable" insieme a Computing V3.0 (per WinAC V3.0 oppure Computing V3.0 stand alone). Come valore di ritorno si riceve sempre 80010105(hex). Si può ovviare a questo comportamento utilizzando più volte la funzione "ReadVariable". Con la funzione "ReadVariable" si ha, rispetto alla funzione "ReadMultiVariable", la sola limitazione che si può leggere solo una variabile del tipo dati oppure un campo di variabili dello spesso tipo dati. Il seguente esempio mostra come si può sostituire la funzione "ReadMultiVariable" con la funzione "ReadVariable".
a) Richiamo della funzione "ReadMultiVariable":
DIM myNames(2) As String
DIM myValues As Variant
DIM myStates As Variant
DIM lRet As Long
myNames(0)="MB0"
myNames(1)="DB1.DBB30"
myNames(2)="EB1"
lRet = S7Data1.ReadMultiVariable(myNames, myValues, myStates)
b) Esempio della funzione "ReadVariable" con la stessa funzionalità dell'esempio a):
DIM myName0 As String
DIM myName1 As String
DIM myName2 As String
DIM myValue0 As Variant
DIM myValue1 As Variant
DIM myValue2 As Variant
DIM myState0 As Variant
DIM myState1 As Variant
DIM myState2 As Variant
DIM timeout0 As Long
DIM timeout1 As Long
DIM timeout2 As Long
DIM lRet0 As Long
DIM lRet1 As Long
DIM lRet2 As Long
myName0="MB0"
myName1="DB1.DBB30"
myName2="EB1"
lRet0 = S7Data1.ReadVariable(myName0, myValue0, myState0, timeout0)
lRet1 = S7Data1.ReadVariable(myName0, myValue1, myState1, timeout1)
lRet2 = S7Data1.ReadVariable(myName0, myValue2, myState2, timeout2)
Avvertenza:
Nelle nuove versioni di Computing questa "soluzione" non è più necessaria.
|