Szervusztok!
Az alábbi gondban vagyok: (ASCII CRC-16 Modbus.)
Szeretnék egy Modbus kommunikációt összehozni.
AVR modbus és a 232Analyzer program szépen megy együtt. Vagyis a CRC számítások helyesek. Viszont Vb6 alól képtelen vagyok megoldani hogy menjen a Cheksum számítás.
Az alábbi kód működik nálam, viszont közel sem azt az eredményt kapom, mint amire szükségem lenne. Google-t próbáltam, de nem igazán jutottam eredményre.
E nélkül viszont az egész VB6 program nem sokat ér sajnos.
Amit próbáltam:
Private Sub Command1_Click()
Dim x As Long
Dim mask, i, j, nC, Crc As Integer
Dim c As String
Dim txt As String * 16
txt = Text1
Crc = &HFFFF '65535 crc mit $ffff initalisieren
For nC = 1 To Len(txt) Step 2
j = Val("&H" + Mid(txt, nC, 2)) 'im HEX-Format
Crc = Crc Xor j
For j = 1 To 8
mask = 0
If Crc / 2 <> Int(Crc / 2) Then mask = &HA001
Crc = Int(Crc / 2) And &H7FFF: Crc = Crc Xor mask
Next j
Next nC
txt = Hex$(Crc) 'Checksumme
Text2 = txt
End Sub
Előre is köszönöm!
ASCII CRC-16 Modbus
- nobody_hun
- Bitfaragó
- Hozzászólások: 425
- Csatlakozott: 2005. november 14. hétfő, 7:00
Ha még aktuális, akkor próbáld ki ezzel az osztállyal:
avr.tavir.hu/modules.php?name=Upload&file=download&archivo=clsCRC.zip
Én ezt használom CRC-re.
avr.tavir.hu/modules.php?name=Upload&file=download&archivo=clsCRC.zip
Én ezt használom CRC-re.
"Az IC-k füsttel működnek. Ha kijön belőlük a füst, nem működnek tovább." - ismeretlen szerző
"Az ID:FFFFFF egyenlő az Atmel még nem kiadott processzorával."
"Az ID:FFFFFF egyenlő az Atmel még nem kiadott processzorával."
CRC-16 Modbus
Nagyon szépen köszönöm! Megpróbálom.