Sviluppo4d.it
Sito indipendente di informazioni tecniche per sviluppatori 4th Dimension italiani  

Sviluppatori 4D

Utility 4D

Risorse 4D



4d logo
Naviga: Prev Next

Titolo: Calcolo del checksum per il protocollo MODBUS

Categoria: Codice Ultimo Aggiornamento: 19/09/05


Ecco un metodo utilizzabile per calcolare il CRC per il protocollo industriale MODBUS.

Il CRC è un valore di 16 bit calcolato in base a tutti i byte che compongono il pacchetto (il parametro che riceve il metodo), a partire dal byte alto ed esclusi i byte del CRC. Se il CRC non è corretto la macchina slave ignora il pacchetto.

La procedura usa due array, arrHi e arrLow, dove sono memorizzati i valori necessari al calcolo del CRC.
Viene inoltre utilizzato il metodo u_EsadecimaleToDec il cui testo si trova nella faq Conversione da esadecimale a decimale.


$reg_Hi:=0x00FF
$reg_Low:=0x00FF
$test:=$1
C_STRING(80;$1;$0)
For ($i;1;Length($test);2)
  C_LONGINT($index)
  $deci:=u_EsadecimaleToDec ($test[[$i]]+$test[[$i+1]])
  $index:=$reg_Hi ^| $deci
  $reg_Hi:=$reg_Low ^| arrHi{$index+1}
  $reg_Low:=arrLow{$index+1}
End for
$risultatoA:=$reg_Hi << 8
$risultato:=$risultatoA ^| $reg_Low
$0:=Substring(String($risultato;"&x");3)


Il metodo di calcolo è utilizzabile anche per il calcolo del CRC del protocollo J-Bus.



Inviato da: PierPaolo Sichera Visite: 16567

Se accedi con utente e password, puoi aggiungere dei commenti.


Accesso

User:
Pass: Accedi

Cerca

Se non trovi le informazioni che cerchi scrivi a aiuto@sviluppo4d.it

4D Principali

4D Discussioni

Faq random


Crediti

Dominio registrato da ZetaNet
Sito realizzato da Nexus srl
4D SQL 11.9.0 offerto da 4D & Italsoftware
Icone di FAMFAMFAM
Moderato da Umberto Migliore
318 utenti registrati

Pagina servita il 09/10/24 alle 22:17:56 Valid HTML 4.01! Valid CSS!

Mutuo Facile, iDigitalScout, iDigitalTags e altre app di Nexid srl per iPhone e iPad

Cidroid, distributore italiano lettori barcode per IOS Apple iPhone, iPod, iPad