CNC-Programm Ent-/ und Verschlüsselung (C12)

1.1 EinleitungPAGEREF _Toc304466849 \h2

1.2 Anwendungsfall 3

1.3 Im Lieferumfang enthaltene Komponenten 3

1.4 Beispiele 3

1.4.1 Visual Basic 6 3

1.4.2 Visual Basic .net 3

Mehr:

button Einleitung

button Anwendungsfall

button Im Lieferumfang enthaltene Komponenten

button Beispiele


Einleitung

Codierte Dateien

Der NC-Kern ab Version 2.60 (TwinCAT 2.11) kann verschlüsselte NC-Programme verarbeiten. Die NC-Programmdateien werden über die Endung .enc (Encrypted NC) erkannt.

Damit ein verschlüsseltes NC-Programm ausgeführt werden kann, muss der CNC das Passwort, mit dem das Programm verschlüsselt wurde, bekannt sein. Dieses Passwort wird der CNC vor Programmstart über einen ADS Schreibzugriff übermittelt:

Name: password
IndexGroup: 0x22301
IndexOffset: 0x1a
Port: 552 (task SDA)


Anwendungsfall

Ablauf
Anwendungsfall

q Ein NC-Programm wird mit einem individuellen Passwort verschlüsselt und unter <Datei>.enc gespeichert.

q Das entsprechende Passwort wird der CNC vor Programmstart übermittelt.

q Das verschlüsselte NC-Programm kann zu Diagnose- bzw. Anzeigezwecken vom Anwender eingesehen werden, sofern das notwendige Passwort bekannt ist.


Im Lieferumfang enthaltene Komponenten

TcISGEncryption.dll

Diese Hilfs-DLL umfaßt die Methoden zum Ver- und Entschlüsseln von NC-Programmen.

Funktion zum Verschlüsseln:

unsigned long encode_cnc_file (char *pIn, char *pOut, char *password);

Funktion zum Entschlüsseln:

unsigned long decode_cnc_file (unsigned char *pDest, char *pName, long offset, long length, char *password);

encode_cnc_file

char *pIn à Name für Eingabedatei

char *pOut à Name für Ausgabedatei

char *password à Passwort für Verschlüsselung

decode_cnc_file

unsigned char *pDest à Puffer für Ausgabe

char *pName à Name für Eingabedatei

long offset à Offset für das Lesen in der Eingabedatei

long length à Leselänge

char *password à Passwort für Entschlüsselung


Beispiele

Beispiele

Im Folgenden ist je ein Beispiel für VB6 und für VB.net angefügt. Beide zeigen in einer kurzen Darstellung den Gebrauch der TCISGEncryption.dll.

Mehr:

button Visual Basic 6

button Visual Basic .net


Visual Basic 6

Beschreibung

Hier eine kurze Beispielanwendung die aufzeigen soll, wie ein NC-Programm ver- und entschlüsselt wird:
Die "Start" Taste startet das NC-Programm in der Textbox.
Die "Stop" Taste hält das NC-Programm an.
Mit der "Encode a file" Taste kann das NC-Programm verschlüsselt werden.
Mit der Taste " activate decode" wird auf die Onlineentschlüsselung des laufenden NC-Programmes umgeschaltet.

Programmierbeispiel

Screenshot

Codebeispiel

Die Zeilen zeigen den Gebrauch der TcISGEncryption.dll mit VB6:

Private Declare Function encode_cnc_file Lib "TcISGEncrypt.dll" _
(ByVal pIn As String, ByVal pOut As String, ByVal password As
String) As Long

Private Declare Function decode_cnc_file Lib "TcISGEncrypt.dll" _
(ByVal pDest As String, ByVal pName As String, ByVal Offset
As Long, ByVal length As Long, ByVal password As String) As
Long

----------------------------------------------------------------------

Dim fileIn As String
Dim fileOut As String
Dim password As String

encode_cnc_file(fileIn, fileOut, password)

----------------------------------------------------------------------

Dim Offset As Long
Dim dest As String * 10
DimpasswordAs String
Dimactive_file_nameAs String

Call decode_cnc_file(dest, active_file_name, Offset, Len(dest), password)


Visual Basic .net

Beschreibung

Unter VB.net arbeitet das Programm auf gleiche Art und Weise wie unter VB6. Details sind daher der vorhergehenden Beschreibung zu entnehmen. Ein kleiner Unterschied liegt im Gebrauch der Entschlüsselungsfunktion. Um den entschlüsselten Programmteil zu erhalten, muß ein "StringBuilder" an Stelle eines "Strings" verwendet werden. Sonst ist die DLL nicht in der Lage, in den Puffer zu schreiben.

Programmierbeispiel

Screenshot

Codebeispiel

Die Zeilen zeigen den Gebrauch der TcISGEncryption.dll mit VB.net:

<DllImport("TcISGEncrypt.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _

Public Shared Function encode_cnc_file(ByVal pIn AsString, ByVal pOut AsString, ByVal password AsString) AsInteger

End Function

<DllImport("TcISGEncrypt.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _

Public Shared Function decode_cnc_file(ByVal pDest As StringBuilder, ByVal pName AsString, ByVal Offset AsInteger, ByVal length AsInteger, ByVal password AsString) AsInteger

End Function

----------------------------------------------------------------------

Dim fileIn As String
Dim fileOut As String
Dim password As String

encode_cnc_file(fileIn, fileOut, password)

----------------------------------------------------------------------

Dim Offset AsInteger
DimpasswordAs String
Dimactive_file_nameAs String
Dim dest = New StringBuilder
dest.Length = 10

decode_cnc_file(dest, active_file_name, Offset, 10, password)