Vai al contenuto
PLC Forum


Dividere un dato grezzo in 3 distinte dword


treemezzo

Messaggi consigliati

Ciao a tutti

 

ho un problema con uno script, in pratica vorrei leggere un dato grezzo 12 byte ( in realtà è un array di 3 dword) e splittarlo in 3 TAG interni dword. Ho abbozzato questo script, ma non essendo molto ferrato con VB vorrei capire dove sto sbagliano: Il ciclo di For l'ho visto su un esempio preso dal portale di siemens e si riferiva ad una dword che veniva inserita bit per bit in un array di bit, ho cercato di adattarlo al mio script ma con scarsi risultati. In particolare non ho capito cosa si intende per \ 2  e Mod 2 ....

 

Option Explicit
Function action

Dim ARRAY_DWORD(3)
Dim i
Dim NUM_DWORD_PILOTA
Dim TAG_GREZZO
Dim TAG_DWORD1
Dim TAG_DWORD2
Dim TAG_DWORD3
 

Set TAG_GREZZO = HMIRuntime.Tags ("Variabile_Dato_grezzot")
Set TAG_DWORD1 = HMIRuntime.Tags ("Variabile_interna_DWORD_1")
Set TAG_DWORD2 = HMIRuntime.Tags ("Variabile_interna_DWORD_2")
Set TAG_DWORD3 = HMIRuntime.Tags ("Variabile_interna_DWORD_3")
 
 For i = 0 To 2
  NUM_DWORD_PILOTA = TAG_GREZZO \ 2
  ARRAY_DWORD(i) = TAG_GREZZO Mod 2
  TAG_GREZZO = NUM_DWORD_PILOTA
 Next

ARRAY_DWORD(0).read
TAG_DWORD1.value = ARRAY_DWORD(0).Value
TAG_DWORD1.Write

ARRAY_DWORD(1).read
TAG_DWORD2.value = ARRAY_DWORD(1).Value
TAG_DWORD2.Write

ARRAY_DWORD(2).read
TAG_DWORD3.value = ARRAY_DWORD(2).Value
TAG_DWORD3.Write

Set TAG_GREZZO = HMIRuntime.Tags = Nothing
Set TAG_DWORD1 = HMIRuntime.Tags = Nothing
Set TAG_DWORD2 = HMIRuntime.Tags = Nothing
Set TAG_DWORD3 = HMIRuntime.Tags = Nothing

End Function

 

Grazie mille per qualsiasi aiuto o suggerimento

 

Ciao

Link al commento
Condividi su altri siti


visto che parli di un array che contiene 3 valori io farei così:

 

Variabile_interna_DWORD_1 = "Variabile_Dato_grezzot.[0]"

Variabile_interna_DWORD_2 = "Variabile_Dato_grezzot.[1]"

Variabile_interna_DWORD_3 = "Variabile_Dato_grezzot.[2]"

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...