Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Invio seriale
Forum - Visual Basic 6 - Invio seriale

Avatar
giusy_m86 (Normal User)
Pro


Messaggi: 143
Iscritto: 09/07/2008

Segnala al moderatore
Postato alle 12:37
Martedì, 19/01/2010
Salve, ho un plc collegato tramite porta seriale al mio pc, fino ad ora inviavo messaggi del tipo:
Codice sorgente - presumibilmente Plain Text

  1. invio = Chr$(&H2) + Chr$(&H0) + Chr$(&H0) + Chr$(&H0) + Chr$(&H0) + Chr$(&H3)


ed era tutto ok. Ora, invece, ho necessità di inviare valori non costanti del tipo:
Codice sorgente - presumibilmente Plain Text

  1. invio=Chr$(&H(var1)) + Chr$(&H(var2)) + Chr$(&H(var3)) + Chr$(&H(var4)) + Chr$(&H(var5))



Ovviamente non va bene come ho scritto io, quindi come dovrei fare?

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 14:58
Martedì, 19/01/2010
La butto lì:

invio = Chr$(clng(Hex(var1))) + ....

sappimi dire.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 18:52
Martedì, 19/01/2010
Se var1 e le altre sono variabili numeriche intere, allora basta

invio=Chr$(var1) + Chr$(var2) + Chr$(var3) + Chr$(var4) + Chr$(var5)


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
giusy_m86 (Normal User)
Pro


Messaggi: 143
Iscritto: 09/07/2008

Segnala al moderatore
Postato alle 9:48
Mercoledì, 20/01/2010
Testo quotato

Postato originariamente da nessuno:

Se var1 e le altre sono variabili numeriche intere, allora basta

invio=Chr$(var1) + Chr$(var2) + Chr$(var3) + Chr$(var4) + Chr$(var5)  



Il problema è che, in questo modo, la variabile viene considerata come valore decimale.
Io, invece, ho la necessità di considerarla in esadecimale.
Ad esempio:
Codice sorgente - presumibilmente Plain Text

  1. [i]Chr$(33)=! '33 è consirato come valore decimale
  2.  
  3. invece mi aspetto: Chr$(33)= 3 '33 deve essere considerato come valore esadecimale



PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:23
Mercoledì, 20/01/2010
Attenzione ... se il valore sta all'interno di una variabile numerica (come penso che sia) allora il valore è numerico e basta (non ha senso parlare di esadecimale).

Se la variabile è di tipo stringa, la cosa è diversa.

Perchè non mostri la dichiarazione delle variabili ?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
giusy_m86 (Normal User)
Pro


Messaggi: 143
Iscritto: 09/07/2008

Segnala al moderatore
Postato alle 12:29
Mercoledì, 20/01/2010
Le dichiarazioni sono:
Dim linea as string
Dim var
linea="Rosso;70;Verde;50" 'è variabile
var= Split(linea, ";")

In questo modo ottengo:
var(0)=Rosso
var(1)=70
var(2)=Verde
var(3)=50


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:57
Mercoledì, 20/01/2010
Ok ... quindi la scrittura

Chr$(var(1))

che, in questo caso, equivale a scrivere

Chr$(70)

o in esadecimale

Chr$(&H46)

va benissimo. Ovviamente non potrai fare altrettanto con il primo valore (che è una stringa "Rosso" o la terza che è un'altra stringa "Verde").

Quindi, adesso spiegati meglio sulla faccenda dell'esadecimale, perchè ancora non ho capito il problema ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote