Verwendung von ODK_CLASSIC_DB
Verwendung von ODK_CLASSIC_DB als Parameter
Der Datentyp ODK_CLASSIC_DB darf nur mit dem InOut-Identifier [IN] und [INOUT] benutzt werden. Wird ein Parameter
des der Datentyps ODK_CLASSIC_DB mit dem InOut-Identifier [IN] oder [INOUT] verwendet, darf kein weiterer Parameter,
egal welchen Datentyps, mit dem gleichen InOut-Identifier verwendet werden.
Beispiel
// INTERFACE
...
// OK:
ODK_RESULT MyFunc1([IN] ODK_CLASSIC_DB myDB);
ODK_RESULT MyFunc2([IN] ODK_CLASSIC_DB myDB1, [INOUT] ODK_CLASSIC_DB myDB2);
//
// NOT OK (Code Generator will throw an error):
// ODK_CLASSIC_DB nicht für [OUT] zulässig
ODK_RESULT MyFunc3([OUT] ODK_CLASSIC_DB myDB);
// wenn ODK_CLASSIC_DB für [IN] verwendet, darf kein weiterer [IN] Parameter in dieser
// Funktion definiert werden
ODK_RESULT MyFunc4([IN] ODK_CLASSIC_DB myDB, [IN] ODK_INT32 myint);
Anwendungsbeispiel für C++
#include "ODK_CpuReadData.h"
...
ODK_RESULT MyFunc1 (const ODK_CLASSIC_DB& myDB)
{
CODK_CpuReadData myReader(&myDB);
ODK_INT32 myInt1, myInt2;
myReader.ReadS7DINT(0, myInt1);
myReader.ReadS7DINT(4, myInt2);
return myInt1 + myInt2;
}
Um innerhalb einer Anwenderfunktion auf den Datentyp ODK_CLASSIC_DB zugreifen zu können, stehen Ihnen die Helper-
Funktionen der folgenden Klassen zur Verfügung:
● Klasse "CODK_CpuReadData"
● Klasse "CODK_CpuReadWriteData"
ODK_CLASSIC_DB mit Identifier [IN]
Wenn Sie den ODK-Datentyp "ODK_CLASSIC_DB" in einer ODK-Anwendung für die Echtzeitumgebung mit dem InOut-
Identifier [IN] nutzen, werden die Daten nicht korrekt an die ODK-Anwendung übermittelt.
Verwenden Sie den InOut-Identifier [INOUT] mit dem ODK-Datentyp "ODK_CLASSIC_DB" in einer ODK-Anwendung für die
Echtzeitumgebung.
Hinweis
Nutzung des InOut-Identifier [IN] ab CPU-Version V1.8
Ab der CPU-Version V1.8 können Sie den ODK-Datentyp "ODK_CLASSIC_DB" auch mit dem InOut-Identifier [IN] nutzen.
4
Ergänzungen zu ODK 1500S V1.0
A5E35341074-AB, 06/2015