darioV ha scritto:
Ho riscontrato durante questi giorni di test che a volte, dopo alcune ore senza eseguire nessuna variazione di alcun parametro le schede a volte non rispondono più all'invio dei comandi.
al momento ho risolto richiamando il programma usbrelay.exe all'attivazione di una particolare maschera inviando il comando di apertura e chiusura del relè 1
Shell ("C:\DB_Access\usbrelay.exe -c:4 -r:1#1")
Shell ("C:\DB_Access\usbrelay.exe -c:4 -r:1#0")
oregon ha scritto:
Dato che il tool ha un bug prova da VBA con
Open "COM4:9600,N,8,1" For Binary As #1
Put #1, , Chr(&HFF) & Chr(&H0A) & Chr(&H01)
Close #1
Quanto suggerito da Oregon è possibile renderlo "dinamico"?
intendo riuscire a inviare il comando a n relè il cui numero posso recuperarlo da un recordset tramite un ciclo for - next tipo
Open "COM4:9600,N,8,1" For Binary As #1
Do
For i = 1 To 14
If i = rst(0) Then
Debug.Print rst(0) & " acceso"
Put #1, , Chr(&HFF) & Chr(&H & rst(0)) & Chr(&H1)
rst.MoveNext
Else
Debug.Print i & " spento"
Put #1, , Chr(&HFF) & Chr(&H & rst(0)) & Chr(&H0)
End If
Next i
Loop Until rstRLOFF.EOF
esempio il recordset conterrà 2,7,11 quindi dovrei inviare &H2, &H7 e &H11 ma non trovo il modo per farlo, ho provato con apici e virgolette in vari modi ma senza risultato