| 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); |