int SoftnetDPSetAccess(int iAccess); |
Die Zugriffsart des SoftnetDP-Masters muß vor der
Initialisierung festgelegt werden. Defaulteinstellung ist 0. |
iAccess |
0: DPN_ROLE_CENTRAL|DPN_SYS_CENTRAL
1: DPN_ROLE_NOT_CENTRAL|DPN_SYS_CENTRAL
2: DPN_ROLE_NOT_CENTRAL|DPN_SYS_NOT_CENTRAL |
Beispiel |
iResult = SoftnetDPSetAccess(0); |
|
int SoftnetDPSetMaster(int iMaster); |
Die Adresse des Masters muß vor der Initialisierung
festgelegt werden. |
iMaster |
1, .., 4: CP5611 Siemens PCI
Interface-Adresse |
Beispiel |
iResult = SoftnetDPSetMaster(1); |
|
int SoftnetDPSetSlave(int iSlave); |
Die Adresse jedes Slaves muß vor der Initialisierung
festgelegt werden. |
iSlave |
0, .., 125: Slave-Adresse (z.B. Siemens
S7-200) |
Beispiel |
iResult = SoftnetDPSetSlave(100); |
|
int SoftnetDPInit(); |
Sollen von den Defaulteinstellungen abweichende Werte
für Access, Master und Slave(s) verwendet werden, sind diese vor der Initialisierung des
SoftnetDPs festzulegen (siehe oben). |
Beispiel |
iResult = SoftnetDPInit(); |
|
int SoftnetDPInput(int iSlave, int iLen, int
iOffset, char[] acBuffer); |
iSlave |
0, .., 125: gültige Slave-Adresse |
iLen |
aktuelle Anzahl empfangener Zeichen |
iOffset |
Startposition |
acBuffer |
empfangene Zeichen |
Beispiel |
char acBuffer[30]; int iLen; int
iOffset;
SoftnetDPInput(100,2,0,acBuffer); |
|
int SoftnetDPOutput(int iSlave, int iLen, int
iOffset, char[] acBuffer); |
iSlave |
0, .., 125: gültige Slave-Adresse |
iLen |
Anzahl zu sendender Zeichen |
iOffset |
Startposition |
acBuffer |
zu sendende Zeichen |
Beispiel |
char acBuffer[30]; int iLen; int
iOffset; int iResult;
iResult = SoftnetDPOutput(100,2,0,"ÿÿ"); |
|
int SoftnetDPExit(); |
SoftnetDP freigeben, Einstellungen rücksetzen. |
Beispiel |
iResult = SoftnetDPExit(); |
|
int SoftnetDPReadSlv(int iSlave, int iLen, int
iOffset, char[] acBuffer); |
Mit dieser Funktion kann eine DP-Applikation die
aktuellen Ausgabedaten auslesen, die in der Datenschnittstelle des DP-Masters hinterlegt
sind.
Befindet sich der DP-Master in der Produktivphase, sendet er diese Daten zyklisch an den
DP-Slave. Die Funktion ist nur lokal wirksam. Aus diesem Grund werden keine zusätzlichen
Telegramme zwischen DP-Master und DP-Slave gesendet.
Die Funktion unterstützt vor allem die Kommunikation zwischen verschiedenen
Windows-Applikationen, wenn diese auf die gleiche Kommunikationsbaugruppe zugreifen. Sie
ermöglicht es, daß eine Applikation "A" ermitteln kann, welche Ausgabedaten
eine andere Applikation "B" an einen DP-Slave sendet. |
iSlave |
0, .., 125: gültige Slave-Adresse |
iLen |
Anzahl empfangener Zeichen |
iOffset |
Startposition |
acBuffer |
empfangene Zeichen |
Beispiel |
char acBuffer[30]; int iLen; int
iResult;
iResult = SoftnetDPReadSlv(100,iLen,0,acBuffer); |
|
int SoftnetDPGetMode(); |
Mit dieser Funktion kann die aktuelle Betriebsart des
DP-Masters ermittelt werden (siehe SoftnetDPSetMode). |
Beispiel |
int iMode = SoftnetDPGetMode(); |
|
int SoftnetDPSetMode(int iMode); |
Mit dieser Funktion kann die Betriebsart des DP-Masters
verändert werden. Die Funktion ist nur für eine übergeordnete Applikation zulässig .
Wichtig: Beim Einstellen einer neuen Betriebsart dürfen keine
Betriebsarten übersprungen werden. Ausgehend von der aktuellen Betriebsart müssen die
Betriebsarten in der vorgegebenen (aufsteigenden oder absteigenden) Reihenfolge OFFLINE /
STOP / CLEAR / OPERATE durchlaufen werden. Der momentane Betriebszustand kann durch den
Aufruf SoftnetDPGetMode() ausgelesen werden. |
iMode |
0=OFFLINE Es erfolgt keine DP-Kommunikation
1=STOP Nur Kommunikation mit DP-Master der
Klasse 2 möglich.
Darüber hinaus erfolgt keine Kommunikation zu den DP-Slaves.
2=CLEAR Parametrierung/Konfiguration der DP-Slaves,
Datentransfer in
Ausgaberichtung. Senden von Null-Bytes an die DP-Slaves.
3=OPERATE Datenaustausch mit den DP-Slaves. |
Beispiel |
int iResult = SoftnetDPSetMode(0); |
|
int SoftnetDPReadSysInfo(char[] acBuffer); |
Die Funktion liefert einen Überblick der in der
Datenbasis eingetragenen DP-Slaves. Zusätzlich wird für jeden DP-Slave angezeigt, ob
Diagnosedaten vorhanden sind. Der Index innerhalb des Arrays acBuffer entspricht der
Adresse eines DP-Slaves. |
acBuffer[i] |
0=Der DP-Slave ist im Offline-Zustand.
1=Der DP-Slave ist nicht aktiviert.
2=Der DP-Slave ist in der Datentransferphase.
3=Der DP-Slave ist in der Datentransferphase, zusätzlich sind
Diagnosedaten vorhanden.
4=Der DP-Slave ist nicht in der Datentransferphase.
5=Der DP-Slave ist nicht in der Datentransferphase, zusätzlich sind
Diagnosedaten vorhanden. |
Beispiel |
char acBuffer[126]; int iResult =
SoftnetDPReadSysInfo(acBuffer); |
|
int SoftnetDPSetGlobalCtrl(int iSlave, int
iFreeze, int iSync, int iGroupSelector); |
Mit dieser Funktion kann eine DP-Applikation
Steuerkommandos an einen einzelnen, eine Gruppe oder an alle DP-Slaves senden. Die
Steuerkommandos werden durch ein Broadcast- oder ein Multicast-Telegramm an die DP-Slaves
gesendet.
Ein Broadcast-Telegramm ist an alle DP-Slaves gerichtet.
Ein Multicast-Telegramm ist an eine Gruppe von DP-Slaves gerichtet. |
iSlave |
0, .., 125: gültige Slave-Adresse |
iFreeze |
0=UNFREEZE (Das Einfrieren der
Eingänge wird aufgehoben)
1=FREEZE (Die Zustände der Eingänge werden eingelesen und eingefroren) |
iSync |
0=UNSYNC (Das Kommando UNSYNC
hebt das Kommando SYNC auf)
1=SYNC (Die Ausgabe wird eingefroren) |
iGroupSelector |
|
Beispiel |
char acBuffer[30]; int iLen; int
iOffset; int iResult;
iResult = SoftnetDPSetGlobalCtrl(100,0,0,0); |
|
int SoftnetDPReadCfg(char[] acBuffer); |
Mit dieser Funktion kann eine DP-Applikation die
Gesamtkonfiguration der DP-Datenbasis ermitteln. Die Funktion gibt Auskunft über die
Anzahl der projektierten DP-Slaves. |
acBuffer[i] |
ff(-1)=kein Slave
00=Norm-Slave
1=Siemens ET 200 U
2=Siemens ET 200 K/B
3=allgemeine SPM-Station |
Beispiel |
char acBuffer[127]; iResult =
SoftnetDPReadCfg(acBuffer); |