Step 7 CRC - Prüfsumme in S7 programmieren

kevokamin

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammne,

ich muss unten aufgeführet Code in S7 Programmieren. Ich bin auf die Hilfe angewiesen.

public static class Crc16
{
const ushort polynomial = 0xA001;
static readonly ushort[] table = new ushort[256];
public static ushort ComputeChecksum(byte[] bytes)
{
ushort crc = 0;
for (int i = 0; i < bytes.Length; ++i)
{
byte index = (byte)(crc ^ bytes);
crc = (ushort)((crc >> 8) ^ table[index]);
}
return crc;
}
public static ushort getTableVal(int i){
return table;
}
static Crc16()
{
ushort value;
ushort temp;
for (ushort i = 0; i < table.Length; ++i)
{
value = 0;
temp = i;
for (byte j = 0; j < 8; ++j)
{
if (((value ^ temp) & 0x0001) != 0)
{
value = (ushort)((value >> 1) ^ polynomial);
}
else
{
value >>= 1;
}
temp >>= 1;
}
table = value;
}
}
}




Vielen Dank im Voraus
Gruß an alle
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Und nun?
Sollen wir dir den Code schreiben oder was?

Bemühe mal die Suchfunktion hier im Forum. Da gibt es schon einige Threads zu diesem Thema.

Du kannst dir auch mal die oscat-lib anschauen, da gibt es auch fertige Bausteine für CRC-Berechnung.

Gruß
Dieter
 
Hallo zusammne,

danke für die schnelle Antworten. Eine Suche im Portal hatte ich schon hinter mir.
Jedoch habe ich nicht brauchbares gefunden.

Hier mehr Detail zur meinem Problem.
Wir kommunizieren übergeordnet mit einer Rezepturverwaltung. Dieser sendet je nach Rezeptur REAL-Werte als Parameter runter. Zusätzlich wird ein CRC - Code mit gesendet. Die REAL Daten kommen so wie sollten auf unserer Seite. Anhang der angekommene Daten sollen wir eine CRC-Überprüfung machen und bei identische INT-Werte (empfangen und generiert).

Den S7-Programm zur Bildung ein CRC Code habe ich benutzt um eine 16 Stelligen Code zur erstellen, leider ist die generierte und empfangene CRC Wert nicht identisch. Deshalb kommt nicht zu einem Start der Rezepturen.

DA ich noch nie mit sowas zu tun hatte, bin auf eure Hilfe angewissen.

Vielen Dank für eure Unterstützung.
Gruß
 
Zurück
Oben