background image

Vorwort, 
Inhaltsverzeichnis 

 
Einführung 

 
Beschreibung 

 
Bedienung 

Funktionen von 
PRODAVE MPI V6.0 

 
Demonstrationsprogramme 

 
Anhang 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

 

 

 

 

 
 

 

 
 

 

 
 

 

 
 

 

 
 

 

SIMATIC 

PRODAVE MPI V6.0 
 

 
 

Handbuch 

 
 

 

 
 

 

Ausgabe 05/2005 

A5E00417149-01 

 

 

 

 

background image

 

Copyright Siemens AG 2005 All rights reserved 

Weitergabe sowie Vervielfältigung dieser Unterlage, 
Verwertung und Mitteilung ihres Inhalts ist nicht gestattet, 
soweit nicht ausdrücklich zugestanden. Zuwiderhandlungen 
verpflichten zu Schadenersatz. Alle Rechte vorbehalten, 
insbesondere für den Fall der Patenterteilung oder GM-
Eintragung 
 
 
Siemens AG 
Bereich Automation and Drives  
Geschäftsgebiet Industrial Automation Systems  
Postfach 4848, D- 90327 Nürnberg 

Haftungsausschluss 

Wir haben den Inhalt der Druckschrift auf Übereinstimmung mit der 
beschriebenen Hard- und Software geprüft. Dennoch können 
Abweichungen nicht ausgeschlossen werden, so dass wir für die 
vollständige Übereinstimmung keine Gewähr übernehmen. Die Angaben 
in dieser Druckschrift werden regelmäßig überprüft, und notwendige 
Korrekturen sind in den nachfolgenden Auflagen enthalten. Für 
Verbesserungsvorschläge sind wir dankbar. 
 
 
 
Siemens AG 2005 
Technische Änderungen bleiben vorbehalten 

Siemens Aktiengesellschaft 

 

A5E00417149-01 

 

 

Sicherheitstechnische Hinweise 

Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie zur Vermeidung von 

Sachschäden beachten müssen. Die Hinweise sind durch ein Warndreieck hervorgehoben und je nach 

Gefährdungsgrad folgendermaßen dargestellt: 

 

!

 

Gefahr 

bedeutet, dass Tod, schwere Körperverletzung oder erheblicher Sachschaden eintreten werden
wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden. 

 

!

 

Warnung 

bedeutet, dass Tod, schwere Körperverletzung oder erheblicher Sachschaden eintreten können
wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden.

 

 

!

 

Vorsicht 

bedeutet, dass eine leichte Körperverletzung oder ein Sachschaden eintreten können, wenn die 
entsprechenden Vorsichtsmaßnahmen nicht getroffen werden. 

 

 

Vorsicht 

bedeutet, dass ein Sachschaden eintreten kann, wenn die entsprechenden Vorsichtsmaßnahmen 
nicht getroffen werden. 

 

 

Achtung 

ist eine wichtige Information über das Produkt, die Handhabung des Produktes oder den jeweiligen 
Teil der Dokumentation, auf den besonders aufmerksam gemacht werden soll. 

 

Qualifiziertes Personal 

Inbetriebsetzung und Betrieb eines Gerätes dürfen nur von qualifiziertem Personal vorgenommen 
werden. Qualifiziertes Personal im Sinne der sicherheitstechnischen Hinweise dieses Handbuchs sind 
Personen, die Berechtigung haben, Geräte, Systeme und Stromkreise gemäß den Standards der 
Sicherheitstechnik in Betrieb zu nehmen, zu erden und zu kennzeichnen. 

Bestimmungsgemäßer Gebrauch 

Beachten Sie Folgendes: 

 

!

 

Warnung 

Das Gerät darf nur für die im Katalog und in der technischen Beschreibung vorgesehenen Einsatzfälle 
und nur in Verbindung mit von Siemens empfohlenen bzw. zugelassenen Fremdgeräten und -
komponenten verwendet werden. 

Der einwandfreie und sichere Betrieb des Produktes setzt sachgemäßen Transport, sachgemäße 
Lagerung, Aufstellung und Montage sowie sorgfältige Bedienung und Instandhaltung voraus. 

Marken 

SIMATIC®, SIMATIC HMI® und SIMATIC NET® sind Marken der Siemens AG. 

Die übrigen Bezeichnungen in dieser Schrift können Marken sein, deren Benutzung durch Dritte für 

deren Zwecke die Rechte der Inhaber verletzen kann.

 

 

background image

 

PRODAVE MPI V6.0 
A5E00417149-01 

iii 

Vorwort 

Zweck des Handbuchs 

Dieses Handbuch gibt Ihnen einen vollständigen Überblick über die Funktionen 
von PRODAVE MPI V6.0.  

Es richtet sich an Personen, die in den Bereichen Projektierung, Inbetriebsetzung 
und Service von Automatisierungssystemen tätig sind.  

Erforderliche Grundkenntnisse 

Zum Verständnis des Handbuchs sind allgemeine Kenntnisse auf dem Gebiet der 
Automatisierungstechnik erforderlich.  

Außerdem werden Kenntnisse über die Verwendung von Computern oder PC-
ähnlichen Arbeitsmitteln (z. B. Programmiergeräten) unter dem Betriebssystem 
Windows 2000 bzw. XP vorausgesetzt.  

Gültigkeitsbereich des Handbuchs 

Das Handbuch ist gültig für das Softwarepaket PRODAVE MPI V6.0. 

background image

Vorwort 

 

PRODAVE MPI V6.0 

iv 

A5E00417149-01 

Weitere Unterstützung 

Bei Fragen zur Nutzung der im Handbuch beschriebenen Produkte, die Sie hier 
nicht beantwortet finden, wenden Sie sich bitte an Ihren Siemens-Ansprechpartner 
in den für Sie zuständigen Vertretungen und Geschäftsstellen. 

Ihren Ansprechpartner finden Sie unter: 

http://www.siemens.com/automation/partner

 

Den Wegweiser zum Angebot an technischen Dokumentationen für die einzelnen 
SIMATIC Produkte und Systeme finden Sie unter: 

http://www.siemens.de/simatic-tech-doku-portal

 

Den Online-Katalog und das Online-Bestellsystem finden Sie unter: 

http://mall.automation.siemens.com/

 

Trainingscenter  

Um Ihnen den Einstieg in das Automatisierungssytem S7 zu erleichtern, bieten wir 
entsprechende Kurse an. Wenden Sie sich bitte an Ihr regionales Trainingscenter 
oder an das zentrale Trainingscenter in D 90327 Nürnberg.  

Telefon: 

 +49 (911) 895-3200.  

Internet: 

http://www.sitrain.com

 

background image

 

Vorwort 

PRODAVE MPI V6.0 
A5E00417149-01 

A&D Technical Support 

 

Sie erreichen den Technical Support für alle A&D-Produkte 

• 

Über das Web-Formular für den Support Request 

http://www.siemens.de/automation/support-request

 

• 

Telefon:   + 49 180 5050 222 

• 

Fax: 

+ 49 180 5050 223 

Weitere Informationen zu unserem Technical Support finden Sie im Internet unter 

http://www.siemens.com/automation/service

 

 

background image

Vorwort 

 

PRODAVE MPI V6.0 

vi 

A5E00417149-01 

Service & Support im Internet 

Zusätzlich zu unserem Dokumentations-Angebot bieten wir Ihnen im Internet unser 
komplettes Wissen online an. 

http://www.siemens.com/automation/service&support

 

Dort finden Sie: 

• 

den Newsletter, der Sie ständig mit den aktuellsten Informationen zu Ihren 
Produkten versorgt. 

• 

die für Sie richtigen Dokumente über unsere Suche in Service & Support. 

• 

ein Forum in welchem Anwender und Spezialisten weltweit Erfahrungen 
austauschen. 

• 

Ihren Ansprechpartner für Automation & Drives vor Ort. 

• 

Informationen über Vor-Ort Service, Reparaturen, Ersatzteile. Vieles mehr 
steht für Sie unter dem Begriff "Leistungen“ bereit. 

background image

 

PRODAVE MPI V6.0 
A5E00417149-01 

vii 

Inhaltsverzeichnis 

1

 

Einführung 

1-1

 

1.1

 

Grundfunktionen................................................................................................1-2

 

1.1.1

 

Funktionen zum Datentransfer zur S7 300/400 ................................................1-2

 

1.1.2

 

Funktionen zum Datentransfer zur S7 200 .......................................................1-3

 

1.2

 

Funktionen zum Datenhandling im PG/PC .......................................................1-4

 

2

 

Beschreibung 2-1

 

2.1

 

Arbeitsweise von PRODAVE ............................................................................2-1

 

2.2

 

Benutzung des Hochsprachenadapters............................................................2-1

 

2.3

 

Voraussetzungen ..............................................................................................2-1

 

2.4

 

Verbindung von PG/PC zum jeweiligen AG......................................................2-2

 

2.4.1

 

Treiber unter Windows 95/98/NT ......................................................................2-2

 

3

 

Bedienung 

3-1

 

3.1

 

Installation von PRODAVE MPI V6.0................................................................3-1

 

3.1.1

 

Installation von PRODAVE MPI V6.0 unter Windows 95/98/NT/ME/2000/XP .3-1

 

3.2

 

Lieferumfang PRODAVE MPI V6.0...................................................................3-2

 

3.2.1

 

PRODAVE MPI V6.0 für Windows 95/98/NT/ME/2000/XP...............................3-2

 

3.2.2

 

PRODAVE MPI V6.0 Mini für Windows 95/98/NT/ME/2000/XP .......................3-3

 

3.3

 

Arbeiten mit PRODAVE ....................................................................................3-4

 

3.3.1

 

Anmerkung zur S7-200 .....................................................................................3-4

 

3.3.2

 

Anmerkung zur S7-300/400 ..............................................................................3-4

 

3.4

 

Unterschiede zwischen S5 und S7 ...................................................................3-5

 

3.5

 

Anbindung an Standardtools.............................................................................3-7

 

3.5.1

 

PRODAVE unter Delphi (32-Bit) Beispiel..........................................................3-7

 

3.5.2

 

PRODAVE unter Access (32-Bit) Beispiel ........................................................3-8

 

3.5.3

 

PRODAVE unter Visual Basic (32-Bit) Beispiel ................................................3-8

 

4

 

Funktionen von PRODAVE MPI V6.0 

4-1

 

4.1

 

Grundfunktionen................................................................................................4-3

 

4.1.1

 

load_tool............................................................................................................4-3

 

4.1.2

 

unload_tool........................................................................................................4-5

 

4.1.3

 

new_ss ..............................................................................................................4-6

 

4.2

 

Funktionen zum Datenverkehr zur S7 300/400 ................................................4-7

 

4.2.1

 

ag_info...............................................................................................................4-7

 

4.2.2

 

ag_zustand........................................................................................................4-9

 

4.2.3

 

db_buch...........................................................................................................4-10

 

4.2.4

 

db_read ...........................................................................................................4-11

 

4.2.5

 

d_field_read ....................................................................................................4-13

 

4.2.6

 

e|a|m_field_read..............................................................................................4-14

 

4.2.7

 

t|z_field_read...................................................................................................4-16

 

4.2.8

 

mix_read..........................................................................................................4-17

 

4.2.9

 

db_write...........................................................................................................4-21

 

4.2.10

 

d_field_write ....................................................................................................4-23

 

4.2.11

 

a|m_field_write ................................................................................................4-24

 

4.2.12

 

z_field_write ....................................................................................................4-25

 

background image

Inhaltsverzeichnis 

 

PRODAVE MPI V6.0 

viii 

A5E00417149-01 

4.2.13

 

mix_write .........................................................................................................4-26

 

4.2.14

 

mb_setbit.........................................................................................................4-30

 

4.2.15

 

mb_resetbit......................................................................................................4-31

 

4.2.16

 

mb_bittest........................................................................................................4-32

 

4.3

 

Funktionen Datenverkehr zur S7 200 .............................................................4-33

 

4.3.1

 

as200_ag_info.................................................................................................4-33

 

4.3.2

 

as200_ag_zustand ..........................................................................................4-34

 

4.3.3

 

as200_e|a|m|sm|vs_field_read .......................................................................4-35

 

4.3.4

 

as200_t_field_read..........................................................................................4-37

 

4.3.5

 

as200_z_field_read.........................................................................................4-39

 

4.3.6

 

as200_mix_read..............................................................................................4-41

 

4.3.7

 

as200_a|m|sm|vs_field_write ..........................................................................4-44

 

4.3.8

 

as200_z_field_write ........................................................................................4-46

 

4.3.9

 

as200_mix_write .............................................................................................4-47

 

4.3.10

 

as200_mb_setbit .............................................................................................4-50

 

4.3.11

 

as200_mb_resetbit..........................................................................................4-51

 

4.3.12

 

as200_mb_bittest ............................................................................................4-52

 

4.4

 

Komfortfunktionen ...........................................................................................4-53

 

4.4.1

 

error_message ................................................................................................4-53

 

4.4.2

 

kg_to_float.......................................................................................................4-55

 

4.4.3

 

float_to_kg.......................................................................................................4-56

 

4.4.4

 

gp_to_float.......................................................................................................4-57

 

4.4.5

 

float_to_gp.......................................................................................................4-58

 

4.4.6

 

testbit...............................................................................................................4-59

 

4.4.7

 

byte_boolean...................................................................................................4-60

 

4.4.8

 

boolean_byte...................................................................................................4-61

 

4.4.9

 

kf_integer.........................................................................................................4-62

 

4.4.10

 

swab_buffer.....................................................................................................4-63

 

4.4.11

 

copy_buffer......................................................................................................4-64

 

4.4.12

 

USHORT_2_bcd .............................................................................................4-65

 

4.4.13

 

bcd_2_USHORT .............................................................................................4-66

 

4.5

 

Teleservice Funktionen ...................................................................................4-67

 

4.5.1

 

ts_dial ..............................................................................................................4-67

 

4.5.2

 

ts_hang_up_dial..............................................................................................4-69

 

4.5.3

 

ts_set_ringindicator .........................................................................................4-70

 

4.5.4

 

ts_read_info ....................................................................................................4-72

 

4.5.5

 

ts_hang_up_ring .............................................................................................4-73

 

4.5.6

 

ts_get_modem_name .....................................................................................4-74

 

5

 

Demonstrationsprogramme 5-1

 

5.1

 

Demonstrationsprogramme für den PC ............................................................5-1

 

A

 

Anhang 

A-1

 

A.1

 

Fehlertexte ....................................................................................................... A-1

 

A.2

 

Verwendete Abkürzungen................................................................................ A-4

 

 

 

 

background image

 

PRODAVE MPI V6.0 
A5E00417149-01 

1-1 

1 Einführung 

Neben den Programmiergeräten dringt der Personal-Computer immer mehr in die 
Fabrikhallen ein, weil er ständig leistungsfähiger wird und weil es vor allem ein 
riesiges Angebot an Applikationen für die Fertigung gibt. Dabei stellt sich Ihnen als 
Anwender jedoch meist das Problem, dass zwar eine Vielzahl von Programmen 
zur Nachbearbeitung von Prozessdaten zur Verfügung stehen (z. B. Datenbanken, 
statistische Auswertung u. a.), dass Sie aber Ihre Daten im Automatisierungsgerät 
nur schwer für diese Applikationen verfügbar machen können. Denn dafür 
brauchen Sie eine funktionierende und kostengünstige Kopplung zwischen AG und 
PG/PC.  

Hier hilft Ihnen das Softwarepaket PRODAVE MPI V6.0. PRODAVE MPI V6.0 stellt 
in einer DLL (Dynamic Link Library) bzw. LIB (Library) ausgetestete Funktionen 
(Tools) zur Verfügung, die Sie für jede Ihrer Anwendungen neu kombinieren. Die 
Kombination der Tools erfolgt in den Programmiersprachen, mit denen Sie 
Windows 95/98/ME und Windows NT/2000/XP Applikationen erstellen können.  

Über diese kombinierten Funktionen baut PRODAVE MPI V6.0 den 
Prozessdatenverkehr über die MPI-Anschaltung des AG zwischen AG und PG/PC 
auf. Die nun verfügbaren Daten können in ein PC-gerechtes Format gewandelt und 
von Ihrer eigenen Applikation oder von gängigen Applikationen verarbeitet werden. 
Sie können damit ohne Detailkenntnisse eine Datenkopplung zwischen AG und 
PG/PC errichten und Ihre Entwicklungsaktivitäten auf die spezifische Verarbeitung 
Ihrer Daten konzentrieren.  

Mit PRODAVE MPI V6.0 können Sie Ihren Prozess nicht nur auswerten und be-
obachten, sondern auch beeinflussen, denn Sie haben verschiedene Funktionen, 
um vom PG/PC aus Daten ins AG zu schreiben.  

Um Einstieg und Umgang mit PRODAVE MPI V6.0 zu erleichtern, liefern wir Ihnen 
als Beispiel mehrere Demonstrationsprogramme. Diese Programme sind voll 
funktionsfähig und stehen Ihnen im Quellcode zur Verfügung (siehe Kapitel 
"Demonstrationsprogramme").  

PRODAVE MPI V6.0 läuft unter Windows 95/98/NT/ME/2000/XP auf PG 7xx und 
auf PCs, die kompatibel zum Industriestandard sind in Verbindung mit einer MPI-
Anschaltung (CP5511, CP5611) oder PC/MPI-Kabel.  

Die PRODAVE Funktionen lassen sich in 3 grundsätzliche Arten unterteilen:  

background image

Einführung 

 

PRODAVE MPI V6.0 

1-2 

A5E00417149-01 

1.1 Grundfunktionen 

 

• 

System initialisieren und deinitialisieren (load_tool, unload_tool).  

• 

Aktivieren der Verbindung (new_ss).  

1.1.1 

Funktionen zum Datentransfer zur S7 300/400  

• 

Ausgangsbytes aus dem AG lesen (a_field_read).  

• 

Ausgangsbytes schreiben (a_field_write).  

• 

Eingangsbytes aus dem AG lesen (e_field_read).  

• 

Datenbytes aus einem Baustein DB lesen (d_field_read).  

• 

Datenbytes in einen Baustein DB schreiben (d_field_write).  

• 

Merkerbytes aus dem AG lesen (m_field_read).  

• 

Merkerbytes im AG beschreiben (m_field_write).  

• 

Zustandsprüfung eines Merkers (mb_bittest).  

• 

Merker setzen und rücksetzen (mb_setbit, mb_resetbit).  

• 

Zeitworte aus dem AG lesen (t_field_read).  

• 

Zählerworte aus dem AG lesen (z_field_read).  

• 

Zählerwort im AG überschreiben (z_field_write).  

• 

Lesen von gemischten Daten (mix_read).  

• 

Schreiben von gemischten Daten (mix_write).  

background image

 

Einführung 

PRODAVE MPI V6.0 
A5E00417149-01 

1-3 

1.1.2 

Funktionen zum Datentransfer zur S7 200  

• 

Ausgangsbytes aus dem AG lesen (as200_a_field_read).  

• 

Ausgangsbytes schreiben (as200_a_field_write).  

• 

Eingangsbytes aus dem AG lesen (as200_e_field_read).  

• 

Datenbytes aus Variablenspeicher lesen (as200_vs_field_read).  

• 

Datenbytes in Variablenspeicher schreiben (as200_vs_field_write).  

• 

Merkerbytes aus dem AG lesen (as200_m_field_read).  

• 

Merkerbytes im AG beschreiben (as200_m_field_write).  

• 

Sondermerkerbytes aus dem AG lesen (as200_sm_field_read).  

• 

Sondermerkerbytes im AG beschreiben (as200_sm_field_write).  

• 

Zustandsprüfung eines Merkers (as200_mb_bittest).  

• 

Merker setzen und rücksetzen (as200_mb_setbit, as200_mb_resetbit).  

• 

Zeitworte aus dem AG lesen (as200_t_field_read).  

• 

Zählerworte aus dem AG lesen (as200_z_field_read).  

• 

Zählerwort im AG überschreiben (as200_z_field_write).  

• 

Lesen von gemischten Daten (as200_mix_read).  

• 

Schreiben von gemischten Daten (as200_mix_write).  

background image

Einführung 

 

PRODAVE MPI V6.0 

1-4 

A5E00417149-01 

1.2 

Funktionen zum Datenhandling im PG/PC  

• 

Fehlertextausgabe zur Fehlernummer (error_message).  

• 

Formatwandlung von S7-Daten (gp_to_float, float_to_gp).  

• 

Formatwandlung von S5-Daten (kg_to_float, float_to_kg).  

• 

Bytewandlung von einem Byte in acht logische Werte und umgekehrt 
(boolean_byte, byte_boolean).  

1.3 TeleService-Funktionen  

Bei den TeleService-Funktionen handelt es sich um eine Erweiterung der 
PRODAVE Funktionalität, die es ermöglicht, einen Verbindungsaufbau von bzw. zu 
einer S7-Steuerung über das öffentliche Telefonnetz herzustellen. Die 
Vorraussetzung hierfür ist die Installation von SIMATIC TeleService (= SW-
Optionspaket zu STEP 7) zur Anbindung von SIMATIC S7-Steuerungen (PLC) 
über das öffentliche Telefonnetz.  

• 

Anwahl einer Station bzw. eines TS-Adapters (ts_dial).  

• 

Beenden einer TeleService-Verbindung (ts_hang_up_dial).  

• 

Initialisierung des Systems für Anruferkennung (ts_set_ringindicator).  

• 

Informationen der Alarmauslösenden Station auslesen (ts_read_info).  

• 

Beenden einer TeleService-Verbindung (ts_hang_up_ring).  

 

background image

 

PRODAVE MPI V6.0 
A5E00417149-01 

2-1 

2 Beschreibung 

 

2.1 

Arbeitsweise von PRODAVE  

Mit dem Programmpaket PRODAVE MPI V6.0 können Sie unter Windows 
95/98/NT/ME/2000/XP über verschiedene CPUs der S7-Reihe Daten aus einem 
Automatisierungsgerät (AG) lesen und Daten in ein AG schreiben.  

PRODAVE MPI V6.0 besteht im wesentlichen aus zwei Teilen:  

• 

Treiber für Windows 95/98/ME und Windows NT/2000/XP  
und  

• 

Hochsprachenadapter  

PRODAVE MPI V6.0 bietet Ihnen den Adapter für Windows 95/98/NT/ME/2000/XP 
in Form einer 32-Bit-DLL (Dynamic Link Library) erstellt mit VC++ Version 6.0 an.  

Wollen Sie mit einer Hochsprache aus dem AG Daten lesen oder in das AG Daten 
schreiben, so bedienen Sie ausschließlich den Adapter und dessen Funktionen.  

2.2 

Benutzung des Hochsprachenadapters  

Die zur Verfügung stehenden Funktionen finden Sie im Kapitel "Funktionen von 
PRODAVE MPI V6.0" für die verschiedenen Programmiersprachen des 
vorliegenden Handbuchs ausführlich beschrieben.  

2.3 Voraussetzungen 

 

PRODAVE MPI V6.0 arbeitet mit den AGs S7-200, S7-300, S7-400, M7 und C7 
der S7-Reihe.  

Software-Voraussetzung:  

Betriebsystem Windows 95/98/ME oder Windows NT V4.x/2000/XP.  

Hardware-Voraussetzung:  

PRODAVE MPI V6.0  
PRODAVE MPI V6.0 mini  
Ein Simatic PG oder ein AT kompatibler Industrie-PC mit 64MB Hauptspeicher und 
MPI-ISA-Anschaltung, CP5511,CP 5512, CP5611 oder PC-Adapter.  

background image

Beschreibung 

 

PRODAVE MPI V6.0 

2-2 

A5E00417149-01 

2.4 

Verbindung von PG/PC zum jeweiligen AG  

2.4.1 

Treiber unter Windows 95/98/NT  

Der PG/PC-AG-Anschluss kann über folgende Komponenten erfolgen:  

• 

CP 5611 PCI-Card  

• 

CP 5511/CP 5512 PCMCIA-Card  

• 

MPI-ISA-Card oder MPI-ISA on Board (Simatic PG, PC RI45,25,FI25)  

• 

COM 1/2 via PC-Adapter  

PC S7-300/400/M7/C7  

MPI-ISA MPI-Schnittstelle CP5511/5512/5611 S7-200 PPI-Schnittstelle  

 

 

 

Die Installation und Einstellungen der verwendeten Hardware erfolgt über das 
STEP7-Tool PG/PC-Schnittstelle parametrieren, das nach erfolgreicher 
Installation in der Systemsteuerung zur Verfügung steht.  

background image

 

PRODAVE MPI V6.0 
A5E00417149-01 

3-1 

3 Bedienung 

 

3.1 

Installation von PRODAVE MPI V6.0  

3.1.1 

Installation von PRODAVE MPI V6.0 unter Windows 
95/98/NT/ME/2000/XP  

Die Installation von PRODAVE MPI V6.0 erfolgt über ein Windows-Installations-
Programm (SETUP.EXE), das vom Dateimanager unter Windows aktiviert werden 
muss. Nach dem Start von SETUP.EXE wird Ihnen ein Zielpfad für die Installation 
angeboten, den Sie durch Neueingabe oder über BROWSE ändern können. Nach 
der Zielpfadangabe werden Ihnen die Auswahl folgender Installationskomponenten 
angeboten:  

• 

PRODAVE MPI V6.0 for Windows 95/98/NT/ME/2000/XPPRODAVE DLL und 
Demonstrationsprogramm für Windows95/98/NT/ME/2000/XP.STEP7 Driver 
for Windows 95/98/NT/ME/2000/XP  

• 

Dokumentation.  

Das Setup generiert automatisch einen Eintrag in der Systemsteuerung zum 
Einstellen der verwendeten Schnittstelle unter Windows 95/98/NT/ME/2000/XP.  

Die zu verwendeten Treiber können mit Hilfe des STEP7-Tools PG/PC-
Schnittstelle einstellen 
(S7EPATSX.EXE) geladen, parametriert und in das 
System eingebunden werden. Nach der korrekten Installation werden die Treiber 
automatisch bei Neustart von Windows 95/98/NT/ME/2000/XP aktiviert.  

background image

Bedienung 

 

PRODAVE MPI V6.0 

3-2 

A5E00417149-01 

3.2 

Lieferumfang PRODAVE MPI V6.0  

3.2.1 

PRODAVE MPI V6.0 für Windows 95/98/NT/ME/2000/XP  

Nach erfolgreicher Installation sind folgende PRODAVE Komponenten verfügbar:  

SIEMENS\PRODAVE_S7\INCLUDE\  

W95_S7 .H = Headerfile für PRODAVE-DLL  

KOMFORT .H = Headerfile für Komfort-DLL  

W95_S7 .DEF = Definitionfile für PRODAVE-DLL  

KOMFORT .DEF = Definitionfile für Komfort-DLL  

SIEMENS\PRODAVE_S7\LIB\  

W95_S7 .LIB = Importlibrary für PRODAVE-DLL  

KOMFORT .LIB = Importlibrary für Komfort-DLL  

SIEMENS\PRODAVE_S7\SAMPLE_VC\  

DEMO .EXE = Demoprogramm  

DEMO .DSP = Visual C Projektdatei  

DEMO .C = Quellcode Demoprogramm  

ICON1 .ICO = 32 x 32 icon  

DEMO .RC = Resource Code Demoprogramm  

ERROR .DAT = Datei mit deutschen Fehlertexten  

RESOURCE.H = Headerfile Demoprogramm  

SIEMENS\PRODAVE_S7\SAMPLE_VB\  

VBDEMO .VBP = Visual Basic Projetdatei   

ERROR .DAT = Fehlertextdatei  

VBDEMO .EXE = Ablauffähiges Demoprogramm  

VBDEMO .BAS = Funktionsdeklarationen für VB  

VBDEMO .FRM = Forms  

DBBUCH_FRM .FRM  

ERROR .FRM FLAG .FRM  

INFO .FRM  

LOAD .FRM  

READ_FRM .FRM  

STATUS .FRM  

TS_FRM .FRM  

TSINFO_FRM . 

background image

 

Bedienung 

PRODAVE MPI V6.0 
A5E00417149-01 

3-3 

FRM WRITE_FRM .FRM  

\WINDOWS\SYSTEM32\  

W95_S7 .DLL = PRODAVE-DLL  

KOMFORT .DLL = Komfort -DLL  

3.2.2 

PRODAVE MPI V6.0 Mini für Windows 95/98/NT/ME/2000/XP  

Nach erfolgreicher Installation sind folgende PRODAVE Komponenten verfügbar:  

SIEMENS\PRODAVE_S7_MINI\INCLUDE\  

W95_S7M .H = Headerfile für PRODAVE-DLL  

KOMFORT .H = Headerfile für Komfort-DLL  

W95_S7M .DEF = Definitionfile für PRODAVE-DLL  

KOMFORT .DEF = Definitionfile für Komfort-DLL  

SIEMENS\PRODAVE_S7_MINI\LIB\  

W95_S7M .LIB = Importlibrary für PRODAVE-DLL  

KOMFORT .LIB = Importlibrary für Komfort-DLL  

SIEMENS\PRODAVE_S7_MINI\SAMPLE_VC_MINI\  

DEMO .EXE = Demoprogramm  

DEMO .DSP = Visual C Projektdatei  

DEMO .C = Quellcode Demoprogramm  

ICON1 .ICO = 32 x 32 icon  

DEMO .RC = Resource Code Demoprogramm  

ERROR .DAT = Datei mit deutschen Fehlertexten  

RESOURCE.H = Headerfile Demoprogramm  

SIEMENS\PRODAVE_S7_MINI\SAMPLE_VB_MINI\  

VBDEMO .VBP = visual basic projectfile  

ERROR .DAT = Fehlertextdatei  

VBDEMO .EXE = Ablauffähiges Demoprogramm  

VBDEMO .BAS = Funktionsdeklarationen für VB  

VBDEMO .FRM = Forms  

ERROR .FRM  

INFO .FRM  
LOAD .FRM  
READ_FRM .FRM  
STATUS .FRM  
WRITE_FRM .FRM  

\WINDOWS\SYSTEM32  

background image

Bedienung 

 

PRODAVE MPI V6.0 

3-4 

A5E00417149-01 

W95_S7M .DLL = PRODAVE-DLL  

KOMFORT .DLL = Komfort -DLL  

3.3 

Arbeiten mit PRODAVE  

Sie schreiben Ihr Anwenderprogramm in einer Hochsprache und verwenden die 
Funktionsaufrufe in der Form, wie sie im Kapitel "Funktionen von PRODAVE MPI 
V6.0" aufgelistet sind.  

3.3.1 

Anmerkung zur S7-200  

Bei Kopplung zur S7-200 darf nur 1 Verbindung in der Funktion load_tool 
parametriert werden.  

Das Initialisieren der Verbindung erfolgt mit dem Aufruf der Funktion load_tool
Dann folgt der anwenderspezifische Teil, in dem Sie ausschließlich as200_...... 
Funktionen (siehe auch Kapitel "Grundfunktionen zum Datentransfer S7-200") aus 
dem Adapter aufrufen dürfen. Schließen Sie Ihr Programm ab, müssen Sie die 
Verbindungen mit der Funktion unload_tool wieder deinitialisieren.  

3.3.2 

Anmerkung zur S7-300/400  

Obligatorischer Anfang jedes Anwenderprogramms ist das Initialisieren der 
Verbindungen mit dem Aufruf der Funktion load_tool. Dann folgt der 
anwenderspezifische Teil, in dem Sie beliebig viele PRODAVE-Funktionen (mit 
Ausnahme der as200_....-Funktionen) aus dem Adapter aufrufen können. 
Schließen Sie Ihr Programm ab, müssen Sie die Verbindungen mit der Funktion 
unload_tool wieder deinitialisieren.  

Achten Sie bei der Entwicklung Ihres Programm immer auf folgende Punkte, 
um Datenverluste oder einen Systemabsturz zu vermeiden: 
 

• 

-Vor Verlassen des Programms müssen die Verbindungen durch Aufruf der 
Adapter-Funktion unload_tool deinitialisiert werden!  

• 

-Wenn Sie Daten aus dem AG lesen, müssen die Felder, in welche die Daten 
übertragen werden, auch groß genug sein, um diese Daten aufzunehmen, da 
der Adapter keine Feldprüfung vornimmt!  

• 

-Die Fehlertextdatei muss im gleichen Katalog wie das entwickelte Programm 
stehen, da sonst der Adapter die Fehlertexte nicht laden kann!  

• 

-Um eine wiederholte "Prüfung auf Vorhandensein" der Fehlertextdatei zu ver-
meiden, können Sie am Programmanfang die Funktion error_message auf-
rufen, um bei Fehlern eine entsprechende Meldung ausgeben zu können. 
Beim ersten Aufruf dieser Funktion wird die Fehlertextdatei geladen.  

background image

 

Bedienung 

PRODAVE MPI V6.0 
A5E00417149-01 

3-5 

3.4 

Unterschiede zwischen S5 und S7  

Ein wesentlicher Unterschied zwischen S5-AG und S7-AG besteht in der 
Verwaltung der Datenbausteine. Während die S5 Datenbausteine wortweise 
verwaltet, bearbeitet die S7 Datenbausteine byteweise.  

 

 

         S5 
bit 15 .. bit 0

 

              S7 
bit 7 ..0      bit 7 ..0

 

DW 0 

DW 1 

DW 2 

DW 3 

... 

DW 0 

DW 1 

DW 2 

DW 3 

DW 4 

DW 5 

DW 6 

DW 7 

... 

... 

= DW 0 

= DW 2 

= DW 4 

= DW 6 

... 

 

 

Bei Verwendung der Funktion d_field_read wird auf den Datenbaustein wie z. B. 
auf den Merkerbereich byteweise zugegriffen.  

Wenn Sie mit der Funktion db_read 3 Datenworte lesen, werden aus AG-Sicht 
DBW0 bis DBW5 übertragen. D.h. im PG/PC liegen drei 16bit-Worte zur 
Bearbeitung frei, die im AG über DBW0, DBW2 und DBW4, PG/PC-seitig jedoch 
über DW0, DW1 und DW2 adressiert werden.  

Um Verwechslungen bei der Datenverwaltung zu vermeiden empfielt es sich, AG-
seitig den Datenbaustein symbolisch, über eine Typzuweisung in folgender Form 
zu bearbeiten:  

background image

Bedienung 

 

PRODAVE MPI V6.0 

3-6 

A5E00417149-01 

Typdeklaration in der Symbolliste:  

Baustein: DB10 DB_10  

Adresse  

Variable  

Datentyp  

Anfangswert  

Kommentar  

 

 

STRUCT  

 

 

 

DW  

ARRAY[0 .. 255]  

 

 

 

 

WORD  

 

 

 

 

  END STRUCT  

 

 

 

Beispiel für den Zugriff auf Variable im AG:  

L "DB_10".DW[2]  

T MW10  

oder  

L MW10  

T "DB_10".DW[2]  

background image

 

Bedienung 

PRODAVE MPI V6.0 
A5E00417149-01 

3-7 

3.5 

Anbindung an Standardtools  

3.5.1 

PRODAVE unter Delphi (32-Bit) Beispiel  

Um PRODAVE-Funktionen unter Delphi nutzen zu können, müssen Sie diese wie 
folgt deklarieren:  

function Load_tool ( no:Byte;   

name: {pointer} PChar;  
adr:{pointer} PChar): longint;  
 

stdcall;  
external ´w95_s7.dll´ name ´load_tool´;  
 

function DB_read ( dbno: longint;   

dwno: longint;  
var amount: longint;  
var buffer): longint  
 

stdcall;  
external ´ w95_s7.dll´ name ´db_read´;  
 

function Unload_tool: longint;  
stdcall;  
external ´ w95_s7.dll´ name ´unload_tool´;  
 

Beispiel:  

var  

plc_adr_table : array [0..15] of byte;  
name:array[0..255] of char;  
res ,amount: longint;  
buffer : array[0..255] of word;  
 

plc_adr_table[0] := 2; {adresse}  
plc_adr_table[1] := 0; {segment id}  
plc_adr_table[2] := 2; {slot nr}  
plc_adr_table[3] := 0; {rack nr}  
plc_adr_table[4] := 0;  
strcopy(name,'S7ONLINE');  
res := Load_tool(1,addr(name),addr(plc_adr_table[0]));  
res := DB_read(10,0,amount,buffer);  
res := Unload_tool; 
 

background image

Bedienung 

 

PRODAVE MPI V6.0 

3-8 

A5E00417149-01 

3.5.2 

PRODAVE unter Access (32-Bit) Beispiel  

Um PRODAVE-Funktionen unter Access nutzen zu können, müssen Sie diese wie 
folgt deklarieren:  

Declare Function load_tool Lib " w95_s7" ( ByVal no As Byte,  ByVal name As 
String, ByVal adr As String) As Long  

Declare Function db_read Lib " w95_s7" ( ByVal dbno As Long,  ByVal dwno As 
Long, amount As Long, buffer As Integer) As Long  

Declare Function unload_tool Lib " w95_s7" () As Long  

Beispiel:  

Dim dbno As Long, dwno As Long, amount As Long Dim buffer(50) As Integer Dim 
plc_adr_table As String  

res = load_tool 1, "S7ONLINE", plc_adr_table res = db_read dbno, dwno, amount, 
buffer(0) res = unload_tool  

3.5.3 

PRODAVE unter Visual Basic (32-Bit) Beispiel  

Um PRODAVE-Funktionen unter Visual-Basic nutzen zu können, müssen Sie 
diese wie folgt deklarieren:  

Declare Function load_tool Lib " w95_s7.dll" (ByVal nr As Byte, ByVal dev As 
String, adr As plcadrtype) As Long  

Declare Function db_read Lib " w95_s7.dll" ( ByVal dbno As Long, ByVal dwno As 
Long, amount As Long, buffer%) As Long  

Declare Function unload_tool Lib " w95_s7.dll" () As Long  

Beispiel:  

Dim dbno As Long, dwno As Long, amount As Long Dim buffer(50) As Integer  

Type plcadrtype adr As Byte SEGMENTID As Byte SLOTNO As Byte RACKNO As 
Byte  

End Type  

Dim plcadr (5) As plcadrtype  

plcadr(0).adr = 2 plcadr(0).SEGMENTID = 0 plcadr(0).SLOTNO = 2 
plcadr(0).RACKNO = 0 plcadr(1).adr = 0  

res = load_tool (1, "S7ONLINE", plcadr) res = db_read (dbno, dwno, amount, 
buffer(0)) res = unload_tool()  

background image

 

PRODAVE MPI V6.0 
A5E00417149-01 

4-1 

Funktionen von PRODAVE MPI V6.0  

 

PRODAVE MPI 
V6.0 

PRODAVE MPI 
V6.0 Mini 

neue Abbildung in V6.0 

Version 

bis V5.6 

bis V5.6 

 

W95_S7. DLL  

W95_S7M.DLL  

Library 

KOMFORT.DLL  

KOMFORT.DLL  

 

W95_S7. H  

W95_S7M.H  

Header 

KOMFORT.H  

KOMFORT.H  

 

Grundfunktionen 

load_tool: MPI/Profibus 

LoadConnection_ex6 

unload_tool: MPI/Profibus oder ISO-
Protokoll 

x x 

UnloadConnection_ex6 

new_ss: MPI/Profibus oder ISO-
Protokoll 

x x 

SetActiveConnection_ex6 

Funktionen Datenverkehr zur S7 300/400 

ag_info x 

as_info_ex6 

ag_zustand x 

 

as_zustand_ex6 

db_buch x 

 

 

db_buch_ex6 

db_read x 

db_read_ex6 

d_field_read x 

 

 

e_field_read x 

 

 

a_field_read x 

 

 

m_field_read x 

 

 

t_field_read x 

 

 

z_field_read x 

 

 

mix_read x 

 

 

field_read_ex6 

db_write x 

db_write_ex6 

d_field_write x 

 

 

a_field_write x 

 

 

m_field_write x 

 

 

z_field_write x 

 

 

mix_write x 

 

 

field_write_ex6 

mb_setbit x 

 

 

mb_resetbit x 

 

 

mb_setbit_ex6 

mb_bittest x 

 

 

mb_bittest_ex6 

Funktionen Datenverkehr zur S7 200 

as200_ag_info x 

as200_as_info_ex6 

as200_ag_zustand x 

 

 

as200_as_zustand_ex6 

as200_e_field_read x 

 

 

as200_field_read_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-2 

A5E00417149-01 

as200_a_field_read x 

 

 

as200_m_field_read x 

 

 

as200_sm_field_read x  

 

as200_vs_field_read x x 

as200_t_field_read x 

 

 

as200_z_field_read x 

 

 

as200_mix_read  

  

 

as200_a_field_write x 

 

 

as200_m_field_write x 

 

 

as200_sm_field_write x  

 

as200_vs_field_write x x 

as200_z_field_write x 

 

 

as200_mix_write x 

 

 

as200_field_write_ex6 

as200_mb_setbit x 

 

 

as200_mb_resetbit x 

 

 

as200_mb_setbit_ex6 

as200_mb_bittest x 

 

 

as200_mb_bittest_ex6 

Komfortfunktionen 

error_message x 

GetErrorMessage_ex6 

kg_to_float x 

kg_2_float_ex6 

float_to_kg x 

float_2_kg_ex6 

gp_to_float x 

gp_2_float_ex6 

float_to_gp x 

float_2_gp_ex6 

testbit x 

testbit_ex6 

byte_boolean x 

byte_2_bool_ex6 

boolean_byte x 

bool_2_byte_ex6 

kf_integer x 

kf_2_integer_ex6 

swab_buffer *

2

 x 

swab_buffer_ex6 

copy_buffer *

2

 x 

copy_buffer_ex6 

USHORT_2_bcd *

2

 x 

ushort_2_bcd_ex6 

bcd_2_USHORT *

2

 x 

bcd_2_ushort_ex6 

Teleservice Funktionen 

ts_dial x 

 

 

ts_dial_ex6 

ts_hang_up_dial x 

 

 

ts_hang_up_dial_ex6 

ts_set_ringindicator x 

 

 

ts_set_ringindicator_ex6 

ts_read_info x 

 

 

ts_read_info_ex6 

ts_hang_up_ring x 

 

 

ts_hang_up_ring_ex6 

ts_get_modem_name

 *

2

 x 

 

  ts_get_modem_name

_ex6

 

*

2

 

 Diese Funktionen sind in der Anwenderdokumentation von PRODAVE S7 V5.6 nicht 

dokumentiert!  

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-3 

4.1 Grundfunktionen 

4.1.1 load_tool 

Die Grundfunktion load_tool initialisiert den Adapter, prüfen ob der Treiber 
geladen ist, initialisieren die parametrierten Adressen und schalten die angewählte 
Schnittstelle aktiv. 

Mit load_tool werden Transportverbindung via MPI/PB-Adressen aufgebaut. 

int load_tool (char chConNo, char* pstrAccessPoint, char* pConTable); 

Parameter 

chConNo 

[in] Nummer der Verbindung. 

pstrAccessPoint 

[in] Zugangspunkt (nullterminiert) des verwendeten Treibers z.B. "S7ONLINE" für 
den MPI-Treiber oder 0 (default). 

pConTable 

[in] Zeiger auf Adressliste der angeschlossenen Teilnehmer. cAdr == 0 wird als 
Endekennung der Liste gewertet. 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-4 

A5E00417149-01 

Aufrufbeispiel 

Mit der AS300/400 können maximal 32 Verbindungen eingerichtet werden. 

Mit der AS200 darf maximal eine Verbindung eingerichtet werden. 

 

Aufbau Adresslisten: 

#pragma pack(1)  

 

typedef struct { 

 

unsigned char 

cAdr; // 

Stationsadresse 

unsigned char 

cSegmentId; 

// Segment-ID  

unsigned char 

cSlotNo; 

// Steckplatznummer 

unsigned char 

cRackNo; // 

Baugruppenträgernummer 

} adr_table_type; 

 

#pragma pack()  

 

 

Jeder Teilnehmer wird durch den Eintrag in der Adressliste beschrieben: 

 

cAdr 

Stationsadresse des Teilnehmers, default: 2 

cSegmentId 

Segment ID des Teilnehmers, default: 0 (reserviert für spätere 
Erweiterungen) 

cSlotNo 

Steckplatznummer des Teilnehmers, default: 1 

cRackNo 

Baugruppenträgernummer des Teilnehmers, default: 0 

 

Voraussetzungen 

 

 

 V5.6 

load_tool, 

load_tool_ex 

V6.0 LoadConnection_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

unload_tool, new_ss, LoadConnection_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-5 

4.1.2 unload_tool 

Die Grundfunktion unload_tool deinitialisiert die Verbindungen und den Adapter 
und muss vor dem Beenden der Applikation aufgerufen werden. 

Mit unload_tool werden Verbindungen deinitialisiert, die mit load_tool initialisiert 
wurden. 

int unload_tool (void); 

Parameter 

Keine 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 V5.6 

unload_tool 

V6.0 
UnloadConnection_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

load_toolnew_ss, UnloadConnection_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-6 

A5E00417149-01 

4.1.3 new_ss 

Die Grundfunktion new_ss schaltet die Verbindung des PG/PC aktiv, über die der 
weitere Datenaustausch stattfinden soll. 

Die Beschreibung der Verbindungen bzw. Teilnehmer für new_ss wird bei den 
Funktionen load_tool übergeben. 

int new_ss (char chConNo); 

Parameter 

chConNo 

[in] Nummer der Verbindung, die aktiviert werden soll. 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 V5.6 

new_ss 

V6.0 
SetActiveConnection_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

load_toolunload_tool, SetActiveConnection_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-7 

4.2 

Funktionen zum Datenverkehr zur S7 300/400 

4.2.1 ag_info 

Die Funktion ag_info liest den Ausgabestand der AG-Software und der PG-
Anschaltung, sowie die MLFB-Nummer des AG aus und legt diese als ASCII-String 
nullterminiert im Übergabepuffer des PG/PC ab. 

int ag_info (void * 

Buffer); 

Parameter 

Buffer 

[out] Übergabepuffer mit den zu liefernden AG-Informationen 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

 

char  

Buffer[MAX_BUFFER]; 

unsigned short * wBuffer = (unsigned short * 
)Buffer; 

// wortweiser Zugriff 

 

Die Ausgabestände müssen als Integerwerte, die MLFB als ASCII-Werte interpretiert 
werden. 

wBuffer[0] Integerwert 

Ausgabestand 

PLC 

wBuffer[2] Integerwert 

Ausgabestand 

PGAS 

Buffer[4] ...Buffer[24] 

ASCII-Wert MLFB des angeschlossenen 
AGs 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-8 

A5E00417149-01 

Voraussetzungen 

 

 

 V5.6 

ag_info 

V6.0 

as_info_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

ag_zustand, as_info_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-9 

4.2.2 ag_zustand 

Die Funktion ag_zustand liest den AG-Zustand (RUN oder STOP) aus dem AG 
aus und legt die Daten in einem Speicherbereich des PG/PC ab. 

int ag_zustand (void * Buffer); 

Parameter 

Buffer 

[out] Übergabepuffer mit den zu liefernden AG-Zuständen 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

char  

Buffer[MAX_BUFFER]; 

unsigned char * cBuffer = (unsigned char *)Buffer;   // byteweiser vorzeichenloser  

   Zugriff 

 

cBuffer[0] 

 == 

 AG 

ist 

im 

Zustand 

RUN 

cBuffer[0]   

!= 0  

 

AG ist im Zustand STOP oder im Zustand 

ANLAUF 

Voraussetzungen 

 

 

 V5.6 

ag_zustand 

V6.0 

as_zustand_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

ag_info, as_zustand_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-10 

A5E00417149-01 

4.2.3 db_buch 

Die Funktion db_buch prüft, welche Datenbausteine im AG vorhanden sind. 
Hierbei muss ein 512 Worte großer Übergabepuffer bereitgestellt werden, für jeden 
Baustein ein Wort. Ist der Wert im indizierten Pufferwort == 0, so ist der 
zugeordnete Baustein nicht vorhanden. 

int db_buch (void * Buffer); 

Parameter 

Buffer 

[out] Übergabepuffer mit der zu liefernden DB-Liste 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

char  

Buffer[MAX_BUFFER]; 

unsigned short * wBuffer = (unsigned short * )Buffer;  

// wortweiser Zugriff 

 

wBuffer[0] 

 != 

 DB0 

ist 

vorhanden 

wBuffer[24]  

== 0  

 

DB24 ist nicht vorhanden  

wBuffer[511] 

!= 0  

 

DB511 ist vorhanden 

Voraussetzungen 

 

 

 

V5.6 db_buch 

V6.0 db_buch_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

db_buch_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-11 

4.2.4 db_read 

Die Funktion db_read liest eine Anzahl Datenworte aus einem Datenbaustein im 
AG aus und transferiert diese in einen Übergabepuffer des PG/PC. 

Mit db_read können Datenworte wortweise (pnAnzahl = 1) oder blockweise 
(pnAnzahl > 1) ausgelesen werden. 

int db_read (int nBstNo, int nStartNo, int * pnAnzahl, void * Buffer); 

Parameter 

nBstNo 

[in] Nummer des Datenbausteins 

nStartNo 

[in] Startnummer des ersten zu lesenden Datenwortes 

pnAnzahl 

[in/out] Anzahl der zu lesenden Datenworte 

Buffer 

[out] Übergabepuffer für die gelesenen Datenworte 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Existiert der Datenbaustein nicht, so wird dies durch einen Rückgabewert = 
Fehlernummer angegeben. 

Sollen mehr Daten gelesen werden als im Datenbaustein vorhanden sind, so wird 
der Inhalt von 

pnAnzahl korrigiert und eine Fehlermeldung 303 Hex 

zurückgegeben. 

Aufrufbeispiel 

char  

Buffer[MAX_BUFFER]; 

unsigned short * wBuffer = (unsigned short *)Buffer;  

//wortweiser Zugriff 

 

Achtung: Beim Zugriff auf einen Datenbaustein sind die Datenworte in Buffer nicht 
nach Intel-Notation (low Byte - high Byte), sondern in STEP5-Notation (high Byte - 
low Byte) abgelegt. Bei einer Weiterverarbeitung der Daten muss dies beachtet 
werden. Zum Tauschen von Bytes stehen die Funktionen kf_integer und 
swab_buffer zur Verfügung. 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-12 

A5E00417149-01 

Voraussetzungen 

 

 

 

V5.6 db_read 

V6.0 db_read_ex6  

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

db_write, kf_integer, swab_buffer, db_read_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-13 

4.2.5 d_field_read 

Die Funktion d_field_read liest eine Anzahl Datenbytes aus einem Datenbaustein 
im AG aus und transferiert diese in einen Übergabepuffer des PG/PC. 

int d_field_read (int 

nBstNo, int nStartNo, int * pnAnzahl, void * Buffer); 

Parameter 

nBstNo 

[in] Nummer des Datenbausteins 

nStartNo 

[in] Startnummer des ersten zu lesenden Datenbytes 

pnAnzahl 

[in] Anzahl der zu lesenden Datenbytes 

Buffer 

[out] Übergabepuffer für die gelesenen Datenbytes 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

char  

Buffer[MAX_BUFFER]; 

unsigned char * cBuffer = (unsigned char *)Buffer;   // byteweiser vorzeichenloser  

   Zugriff 

Voraussetzungen 

 

 

 

V5.6 d_field_read 

V6.0 field_read_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

e|a|m_field_read, t|z_field_read, field_read_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-14 

A5E00417149-01 

4.2.6 e|a|m_field_read 

Die Funktionen lesen eine Anzahl Bytes aus dem AG aus und transferieren diese 
in einen Übergabepuffer des PG/PC. 

Mit e_field_read werden Eingangsbytes gelesen. 

Mit a_field_read werden Ausgangsbytes gelesen. 

Mit m_field_read werden Merkerbytes gelesen. 

int e_field_read (int nStartNo, int * pnAnzahl, void * Buffer); 

int a_field_read (int nStartNo, int * pnAnzahl, void * Buffer); 

int m_field_read (int nStartNo, int * pnAnzahl, void * Buffer); 

Parameter 

nStartNo 

[in] Startnummer des ersten zu lesenden Bytes 

pnAnzahl 

[in] Anzahl der zu lesenden Bytes 

Buffer 

[out] Übergabepuffer für die gelesenen Bytes 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

char  

Buffer[MAX_BUFFER]; 

unsigned char * cBuffer = (unsigned char *)Buffer;   // byteweiser vorzeichenloser  

   Zugriff 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-15 

Voraussetzungen 

 

 

 

V5.6 e_field_read, … 

V6.0 field_read_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

d_field_read, t|z_field_read,  field_read_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-16 

A5E00417149-01 

4.2.7 t|z_field_read 

Die Funktionen lesen eine Anzahl Worte aus dem AG aus und transferieren diese 
in einen Übergabepuffer des PG/PC. 

Mit t_field_read werden Timerworte gelesen. 

Mit z_field_read werden Zählerworte gelesen. 

int t_field_read (int nStartNo, int * pnAnzahl, void * Buffer); 

int z_field_read (int nStartNo, int * pnAnzahl, void * Buffer); 

Parameter 

nStartNo 

[in] Startnummer des ersten zu lesenden Wortes 

pnAnzahl 

[in] Anzahl der zu lesenden Worte 

Buffer 

[out] Übergabepuffer für die gelesenen Worte 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

char  

Buffer[MAX_BUFFER]; 

unsigned short * wBuffer = (unsigned short *)Buffer;  

//wortweiser Zugriff 

Voraussetzungen 

 

 

 

V5.6 t_field_read 

V6.0 field_read_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

d|e|a|m_field_read, field_read_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-17 

4.2.8 mix_read 

Die Funktion mix_read liest die durch "data" parametrierten Daten aus einem 
Datenbaustein im AG aus und transferiert diese in einen Übergabepuffer des 
PG/PC. 

Mit mix_read kann Size ein Byte oder ein Wort sein. 

int mix_read (char * pData, void * Buffer); 

Parameter 

pData 

[in] Zeiger auf Typliste. Typelementinhalt == 0 wird als Endekennung der Liste 
gewertet. 

Buffer 

[out] Übergabepuffer für die gelesenen Datenbytes/-worte/-doppelworte 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Die Funktion ermöglicht das Lesen von gemischten Daten. Es können maximal 20 
Listenelemente angelegt werden! Auf die Typliste kann mit Hilfe einer Struktur 
zugegriffen werden: 

#pragma pack(1) 

 typedef 

struct 

 unsigned 

char 

Typ

 unsigned 

char 

Size

 unsigned 

short 

nBstNo

 unsigned 

short 

nDatNo

 } 

mix_tab_type; 

#pragma pack() 

 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-18 

A5E00417149-01 

Typ 

Folgende Daten können gelesen werden (ASCII-Zeichen klein oder groß): 

e  

Eingangsbytes 

a  

Ausgangsbytes 

m  

Merkerbytes 

t  

Timerworte 

z  

Zählerworte 

d  

Daten 

aus 

DB 

Size 

Die zu lesenden Daten können folgende Datentypen haben (ASCII-Zeichen klein 
oder groß): 

b,w  Byte 

oder 

Wort 

  bei 

den 

Eingangsbytes 

b,w  Byte 

oder 

Wort 

  bei 

den 

Ausgangsbytes 

b,w  Byte 

oder 

Wort 

  bei 

den 

Merkerbytes 

  Wort 

   bei 

den 

Timerworten 

  Wort 

   bei 

den 

Zählerworte 

nBstNo 

Nummer des Datenbausteins 

nDatNo 

Nummer des zu lesenden Datenbytes/-wortes/-doppelwortes 

Bei Typ m, t und z   

0 ... 255 

Bei 

Typ 

    0 

... 

4090 

 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-19 

"data" muss folgenden Aufbau haben: 

 

Size = ’b’   

Byte lesen und im Puffer eintragen 

Size = ’w’   

Wort lesen und im Puffer eintragen 

Die gelesenen Werte werden im Puffer sequenziell eingetragen. D.h. der 
Anwender muss selber das mit den gelesenen Werten belegte Feld strukturiert 
bearbeiten:  

char  

Buffer[MAX_BUFFER]; 

unsigned char * cBuffer = (unsigned char *)Buffer;   // byteweiser vorzeichenloser  

   Zugriff 

unsigned short * wBuffer = (unsigned short *)Buffer; // wortweiser Zugriff 

 

Achtung: Beim Zugriff auf einen Datenbaustein sind die Datenworte in Buffer nicht 
nach Intel-Notation (low Byte - high Byte), sondern in STEP5-Notation (high Byte - 
low Byte) abgelegt. Bei einer Weiterverarbeitung der Daten muss dies beachtet 
werden. Zum Tauschen von Bytes stehen die Funktionen kf_integer und 
swab_buffer zur Verfügung. 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-20 

A5E00417149-01 

Voraussetzungen 

 

 

 

V5.6 mix_read 

V6.0 field_read_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

mix_write, kf_integerswab_buffer, field_read_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-21 

4.2.9 db_write 

Die Funktion db_write schreibt eine Anzahl Datenworte aus einen Übergabepuffer 
des PG/PC in einen Datenbaustein des AG. 

Mit db_write können Datenworte wortweise (pnAnzahl = 1) oder blockweise 
(pnAnzahl > 1) geschrieben werden. 

int db_ write (int nBstNo, int nStartNo, int * pnAnzahl, void * Buffer); 

Parameter 

nBstNo 

[in] Nummer des Datenbausteins 

nStartNo 

[in] Startnummer des ersten zu schreibenden Datenwortes 

pnAnzahl 

[in/out] Anzahl der zu schreibenden Datenworte 

Buffer 

[in] Übergabepuffer für die zu schreibenden Datenworte 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Existiert der Datenbaustein nicht, so wird dies durch einen Rückgabewert = 
Fehlernummer angegeben. 

Aufrufbeispiel 

char  

Buffer[MAX_BUFFER]; 

unsigned short * wBuffer = (unsigned short *)Buffer; // wortweiser Zugriff 

 

Achtung: Beim Schreiben in einen Datenbaustein müssen die Datenworte in Buffer 
nicht nach Intel-Notation (low Byte - high Byte), sondern in STEP5-Notation (high 
Byte - low Byte) abgelegt werden. Zum Tauschen von Bytes stehen die Funktionen 
kf_integer und swab_buffer zur Verfügung. 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-22 

A5E00417149-01 

Voraussetzungen 

 

 

 

V5.6 db_write 

V6.0 db_write_ex6  

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

db_read, kf_integerswab_buffer, db_write_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-23 

4.2.10 d_field_write 

Die Funktion d_field_write schreibt eine Anzahl Datenbytes aus einen 
Übergabepuffer des PG/PC in einen Datenbaustein des AG. 

int d_field_write (int 

nBstNo, int nStartNo, int * pnAnzahl, void * Buffer); 

Parameter 

nBstNo 

[in] Nummer des Datenbausteins 

nStartNo 

[in] Startnummer des ersten zu schreibenden Datenbytes 

pnAnzahl 

[in] Anzahl der zu schreibenden Datenbytes 

Buffer 

[in] Übergabepuffer für die zu schreibenden Datenbytes 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

char  

Buffer[MAX_BUFFER]; 

unsigned char * cBuffer = (unsigned char *)Buffer;   // byteweiser vorzeichenloser  

   Zugriff 

Voraussetzungen 

 

 

 

V5.6 d_field_write 

V6.0 field_write_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

e|a|m_field_write, z_field_write, field_write_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-24 

A5E00417149-01 

4.2.11 a|m_field_write 

Die Funktionen schreiben eine Anzahl Bytes aus einem Übergabepuffer des 
PG/PC in das AG. 

Mit a_field_write werden Ausgangsbytes geschrieben. 

Mit m_field_write werden Merkerbytes geschrieben. 

 

int a_field_ write (int nStartNo, int * pnAnzahl, void * Buffer); 

int m_field_ write (int nStartNo, int * pnAnzahl, void * Buffer); 

Parameter 

nStartNo 

[in] Startnummer des ersten zu schreibenden Bytes 

pnAnzahl 

[in] Anzahl der zu schreibenden Bytes 

Buffer 

[out] Übergabepuffer für die zu schreibenden Bytes 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

char  

Buffer[MAX_BUFFER]; 

unsigned char * cBuffer = (unsigned char *)Buffer;   // byteweiser vorzeichenloser  

   Zugriff 

Voraussetzungen 

 

 

 

V5.6 a_field_write, … 

V6.0 field_write_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

d_field_write, z_field_write, field_write_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-25 

4.2.12 z_field_write 

Die Funktion z_field_write schreibt eine Anzahl Zählerworte aus einem 
Übergabepuffer des PG/PC in das AG. 

int z_field_ write (int nStartNo, int * pnAnzahl, void * Buffer); 

Parameter 

nStartNo 

[in] Startnummer des ersten zu schreibenden Zählerwortes 

pnAnzahl 

[in] Anzahl der zu schreibenden Zählerworte 

Buffer 

[out] Übergabepuffer für die zu schreibenden Zählerworte 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

char  

Buffer[MAX_BUFFER]; 

unsigned short * wBuffer = (unsigned short *)Buffer; // wortweiser Zugriff 

Voraussetzungen 

 

 

 

V5.6 z_field_write 

V6.0 field_write_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

d|a|m_field_write, field_write_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-26 

A5E00417149-01 

4.2.13 mix_write 

Die Funktion mix_write schreibt die durch "data" parametrierten Daten aus einem 
Übergabepuffer des PG/PC in einen Datenbaustein des AG. 

Mit mix_write kann Size ein Byte oder ein Wort sein. 

int mix_ write (char * 

pData, void * Buffer); 

Parameter 

pData 

[in] Zeiger auf Typliste. Typelementinhalt == 0 wird als Endekennung der Liste 
gewertet. 

Buffer 

[out] Übergabepuffer für die zu schreibenden Datenbytes/-worte/-doppelworte 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Die Funktion ermöglicht das Schreiben von gemischten Daten. Es können maximal 
20 Listenelemente angelegt werden

.

 Auf die Typliste kann mit Hilfe einer Struktur 

zugegriffen werden: 

#pragma pack(1) 

typedef struct { 

unsigned char 

Typ

unsigned char 

Size

unsigned short 

nBstNo

unsigned short 

nDatNo

 } 

mix_tab_type; 

#pragma pack() 

 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-27 

Typ 

Folgende Daten können geschrieben werden (ASCII-Zeichen klein oder groß): 

e/E  

Eingangsbytes 

a/A  

Ausgangsbytes 

m/M Merkerbytes 

t/T  

Timerworte 

z/Z  

Zählerworte 

d/D Daten 

in 

DB 

Size 

Die zu schreibenden Daten können folgende Datentypen haben (ASCII-Zeichen 
klein oder groß): 

b,w  Byte 

oder 

Wort 

  bei 

den 

Eingangsbytes 

b,w  Byte 

oder 

Wort 

  bei 

den 

Ausgangsbytes 

b,w  Byte 

oder 

Wort 

  bei 

den 

Merkerbytes 

  Wort 

   bei 

den 

Timerworten 

  Wort 

   bei 

den 

Zählerworte 

nBstNo 

Nummer des Datenbausteins 

nDatNo 

Nummer des zu schreibenden Datenbytes/-wortes/-doppelwortes 

Bei Typ m, t und z   

0 ... 255 

Bei 

Typ 

    0 

... 

4090 

 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-28 

A5E00417149-01 

"data" muss folgenden Aufbau haben: 

 

Size = ’b’   

Byte im Puffer eintragen 

Size = ’w’   

Wort im Puffer eintragen 

Die zu schreibenden Werte müssen im Puffer sequenziell eingetragen werden:  

char  

Buffer[MAX_BUFFER]; 

unsigned char * cBuffer = (unsigned char *)Buffer;   // byteweiser vorzeichenloser  

   Zugriff 

unsigned short * wBuffer = (unsigned short *)Buffer; // wortweiser Zugriff 

unsigned long * dwBuffer = (unsigned long *)Buffer; // doppelwortweiser Zugriff 

 

Achtung: Beim Schreiben in einen Datenbaustein müssen die Datenworte in Buffer 
nicht nach Intel-Notation (low Byte - high Byte), sondern in STEP5-Notation (high 
Byte - low Byte) abgelegt werden. Zum Tauschen von Bytes stehen die Funktionen 
kf_integer und swab_buffer zur Verfügung. 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-29 

Voraussetzungen 

 

 

 

V5.6 mix_write 

V6.0 field_write_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

mix_read, kf_integerswab_buffer, field_write_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-30 

A5E00417149-01 

4.2.14 mb_setbit 

Die Funktion mb_setbit setzt einen Merker im AG auf 1. Es erfolgt keine 
Abprüfung, ob das Merkerbit in dem verwendeten AG vorhanden ist. 

int mb_setbit (int nMbNo, int nBitNo); 

Parameter 

nMbNo 

[in] Nummer des Merkerbytes 

nBitNo 

[in] Bitnummer im Merkerbyte 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 

V5.6 mb_setbit 

V6.0 mb_setbit_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

mb_resetbitmb_bittest, mb_setbit_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-31 

4.2.15 mb_resetbit 

Die Funktion mb_resetbit setzt einen Merker im AG auf 0. Es erfolgt keine 
Abprüfung, ob das Merkerbit in dem verwendeten AG vorhanden ist. 

int mb_resetbit (int nMbNo, int nBitNo); 

Parameter 

nMbNo 

[in] Nummer des Merkerbytes 

nBitNo 

[in] Bitnummer im Merkerbyte 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 

V5.6 mb_resetbit 

V6.0 mb_setbit_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

mb_setbitmb_bittest, mb_setbit_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-32 

A5E00417149-01 

4.2.16 mb_bittest 

Die Funktion mb_bittest prüft ein Bit in einem angegebenen Merkerbyte und liefert 
im *bitwert den Zustand des angegebenen Bits. 

int mb_bittest (int nMbNo, int nBitNo, char * bitwert); 

Parameter 

nMbNo 

[in] Nummer des Merkerbytes 

nBitNo 

[in] Bitnummer im Merkerbyte 

bitwert 

[out] Übergabepuffer mit dem getesteten Bitwert 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 

V5.6 mb_bittest 

V6.0 mb_bittest_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

mb_setbitmb_resetbit, mb_bittest_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-33 

4.3 

Funktionen Datenverkehr zur S7 200 

4.3.1 as200_ag_info 

Die Funktion as200_ag_info liest den Ausgabestand der AG-Software und der 
PG-Anschaltung, sowie den PLC-Typ des AG aus und legt diese als ASCII-String 
nullterminiert im Übergabepuffer des PG/PC ab. 

int as200_ag_info (void * Buffer); 

Parameter 

Buffer 

[out] Übergabepuffer mit den zu liefernden AG-Informationen 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

char  

Buffer[MAX_BUFFER]; 

unsigned short * wBuffer = (unsigned short * )Buffer; 

// wortweiser Zugriff 

 

Die Ausgabestände müssen als Integerwerte, die MLFB als ASCII-Werte 
interpretiert werden. 

wBuffer[0] 

  Integerwert 

Ausgabestand 

PLC 

wBuffer[2] 

  Integerwert 

Ausgabestand 

PGAS 

Buffer[4] ...Buffer[24] 

ASCII-Wert PLC-Typ des angeschlossenen AG 

Voraussetzungen 

 

 

 V5.6 

as200_ag_info 

V6.0 

as200_as_info_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

as200_ag_zustand, as200_as_info_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-34 

A5E00417149-01 

4.3.2 as200_ag_zustand 

Die Funktion as200_ag_zustand liest den AG-Zustand (RUN oder STOP) aus 
dem AG aus und legt die Daten in einem Speicherbereich des PG/PC ab. 

int as200_ag_zustand (void * Buffer); 

Parameter 

Buffer 

[out] Übergabepuffer mit den zu liefernden AG-Zuständen 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

char  

Buffer[MAX_BUFFER]; 

unsigned char * cBuffer = (unsigned char *)Buffer;   // byteweiser vorzeichenloser  

   Zugriff 

 

cBuffer[0]   

== 0 

AG ist im Zustand RUN 

cBuffer[0]   

!= 0  

AG ist im Zustand STOP oder im Zustand ANLAUF 

Voraussetzungen 

 

 

 V5.6 

as200_ag_zustand 

V6.0 
as200_as_zustand_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

as200_ag_info, as200_as_zustand_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-35 

4.3.3 as200_e|a|m|sm|vs_field_read 

Die Funktionen lesen eine Anzahl Bytes aus dem Datenbereich des AG aus und 
transferieren diese in einen Übergabepuffer des PG/PC. 

Mit as200_e_field_read werden Eingangsbytes gelesen. 

Mit as200_a_field_read werden Ausgangsbytes gelesen. 

Mit as200_m_field_read werden Merkerbytes gelesen. 

Mit as200_sm_field_read werden Sondermerkerbytes gelesen. 

Mit as200_vs_field_read werden Variablenspeicherbytes gelesen. 

 

int as200_e_field_read (int nStartNo, int * pnAnzahl, void * Buffer); 

int as200_a_field_read (int nStartNo, int * pnAnzahl, void * Buffer); 

int as200_m_field_read (int nStartNo, int * pnAnzahl, void * Buffer); 

int as200_sm_field_read (int nStartNo, int * pnAnzahl, void * Buffer); 

int as200_vs_field_read (int nStartNo, int * pnAnzahl, void * Buffer); 

Parameter 

nStartNo 

[in] Startnummer des ersten zu lesenden Bytes 

pnAnzahl 

[in] Anzahl der zu lesenden Bytes 

Buffer 

[out] Übergabepuffer für die gelesenen Bytes 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

char  

Buffer[MAX_BUFFER]; 

unsigned char * cBuffer = (unsigned char *)Buffer;   // byteweiser vorzeichenloser  

   Zugriff 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-36 

A5E00417149-01 

Voraussetzungen 

 

 

 V5.6 

as200_e_field_read, 

… 

V6.0 as200_field_read_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

as200_t|z_field_read, as200_mix_read, as200_field_read_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-37 

4.3.4 as200_t_field_read 

Die Funktion as200_t_field_read liest eine Anzahl Timerwerte aus dem AG aus 
und transferiert diese in einen Übergabepuffer des PG/PC. 

int as200_t_field_read (int nStartNo, int * pnAnzahl, void * Buffer); 

Parameter 

nStartNo 

[in] Startnummer des ersten zu lesenden Timerwertes 

pnAnzahl 

[in] Anzahl der zu lesenden Timerwertes 

Buffer 

[out] Übergabepuffer für die gelesenen Timerwertes 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Pro Timerwert werden 5 Bytes empfangen, von denen nur 2 Bytes den 
angeforderten Timerwert enthalten. 

 

In folgendem Beispiel werden die Timerwerte 0 und 1 gelesen: 
 

char  

Buffer[MAX_BUFFER]; 

unsigned short T0, T1; 

// Timerwort 

int error; 

 

error = as200_t_field_read((int)0, (int)2, Buffer); 

 

T0 = (unsigned short)Buffer[4] | (unsigned 
short)Buffer[3] << 8; 

 

T1 = (unsigned short)Buffer[9] | (unsigned 
short)Buffer[8] << 8; 

 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-38 

A5E00417149-01 

Voraussetzungen 

 

 

 V5.6 

as200_t_field_read 

V6.0 

as200_field_read_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

as200_e|a|m|sm|vs_field_read, as200_z_field_read, as200_mix_read, 
as200_field_read_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-39 

4.3.5 as200_z_field_read 

Die Funktion as200z_field_read liest eine Anzahl Zählerwerte aus dem AG aus 
und transferiert diese in einen Übergabepuffer des PG/PC. 

int z_field_read (int nStartNo, int * pnAnzahl, void * Buffer); 

Parameter 

nStartNo 

[in] Startnummer des ersten zu lesenden Zählerwertes 

pnAnzahl 

[in] Anzahl der zu lesenden Zählerwerte 

Buffer 

[out] Übergabepuffer für die gelesenen Zählerwerte 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Pro Zählerwert werden 3 Bytes empfangen, von denen nur 2 Bytes den 
angeforderten Zählerwert enthalten. 

 

In folgendem Beispiel werden die Zählerwerte 3 und 4 gelesen: 
 

char  

Buffer[MAX_BUFFER]; 

unsigned short Z3, Z4; 

// Zählerwort 

int error; 

 

error = as200_z_field_read((int)3, (int)2, Buffer); 

 

Z3 = (unsigned short)Buffer[2] | (unsigned 
short)Buffer[1] << 8; 

 

Z4 = (unsigned short)Buffer[5] | (unsigned 
short)Buffer[4] << 8; 

 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-40 

A5E00417149-01 

Voraussetzungen 

 

 

 V5.6 

as200_z_field_read 

V6.0 

as200_field_read_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

as200_e|a|m|sm|vs_field_read, as200_t_field_read, as200_mix_read, 
as200_field_read_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-41 

4.3.6 as200_mix_read 

Die Funktion as200_mix_read liest die durch "data" parametrierten Daten aus 
einem Datenbaustein im AG aus und transferiert diese in einen Übergabepuffer 
des PG/PC. 

int as200_mix_read (char * pData, void * Buffer); 

Parameter 

pData 

[in] Zeiger auf Typliste. Typelementinhalt == 0 wird als Endekennung der Liste 
gewertet. 

Buffer 

[out] Übergabepuffer für die gelesenen Datenbytes 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Die Funktion ermöglicht das Lesen von gemischten Daten. Es können maximal 20 
Listenelemente angelegt werden. Auf die Typliste kann mit Hilfe einer Struktur 
zugegriffen werden: 

#pragma pack(1) 

typedef struct { 

unsigned char 

Typ

unsigned char 

Size

unsigned short 

nBstNo

unsigned short 

nDatNo

 } 

mix_tab_type; 

#pragma pack() 

 

Typ 

Folgende Daten können gelesen werden (ASCII-Zeichen klein oder groß): 

e  

Eingangsbytes 

a  

Ausgangsbytes 

m  

Merkerbytes 

v  

Variablenspeicherworte 

s  

Sondermerkerbytes 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-42 

A5E00417149-01 

Size 

Für alle zu lesenden Daten muss der Datentypen Byte sein (ASCII-Zeichen klein 
oder groß): 

 Byte 

 bei 

allen 

Daten 

nBstNo 

Nummer des Datenbausteins 

nDatNo 

Nummer des zu lesenden Datenbytes 

 

"data" muss folgenden Aufbau haben: 

 

 

Size = ’b’   

Byte lesen und im Puffer eintragen 

Die gelesenen Werte werden im Puffer sequenziell eingetragen. D.h. der 
Anwender muss selber das mit den gelesenen Werten belegte Feld strukturiert 
bearbeiten:  

char  

Buffer[MAX_BUFFER]; 

unsigned char * cBuffer = (unsigned char *)Buffer;   // byteweiser vorzeichenloser  

   Zugriff 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-43 

Achtung: Beim Zugriff auf einen Datenbaustein sind die Datenworte in Buffer nicht 
nach Intel-Notation (low Byte - high Byte), sondern in STEP5-Notation (high Byte - 
low Byte) abgelegt. Bei einer Weiterverarbeitung der Daten muss dies beachtet 
werden. Zum Tauschen von Bytes stehen die Funktionen kf_integer und 
swab_buffer zur Verfügung. 

Voraussetzungen 

 

 

 V5.6 

as200_mix_read 

V6.0 

as200_field_read_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

as200_mix_write, kf_integerswab_buffer, as200_field_read_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-44 

A5E00417149-01 

4.3.7 as200_a|m|sm|vs_field_write 

Die Funktionen schreiben eine Anzahl Bytes aus dem Übergabepuffer des PG/PC 
in den Datenbereich des AG. 

Mit as200_a_field_write werden Ausgangsbytes geschrieben. 

Mit as200_m_field_write werden Merkerbytes geschrieben. 

Mit as200_sm_field_write werden Sondermerkerbytes geschrieben. 

Mit as200_vs_field_write werden Variablenspeicherbytes geschrieben. 

 

int as200_a_field_write (int nStartNo, int * pnAnzahl, void * Buffer); 

int as200_m_field_write (int nStartNo, int * pnAnzahl, void * Buffer); 

int as200_sm_field_write (int nStartNo, int * pnAnzahl, void * Buffer); 

int as200_vs_field_write (int nStartNo, int * pnAnzahl, void * Buffer); 

Parameter 

nStartNo 

[in] Startnummer des ersten zu schreibenden Bytes 

pnAnzahl 

[in] Anzahl der zu schreibenden Bytes 

Buffer 

[out] Übergabepuffer für die zu schreibenden Bytes 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

char  

Buffer[MAX_BUFFER]; 

unsigned char * cBuffer = (unsigned char *)Buffer;   // byteweiser vorzeichenloser  

   Zugriff 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-45 

Voraussetzungen 

 

 

 V5.6 

as200_e_field_write, 

… 

V6.0 as200_field_write_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

as200_z_field_write, as200_mix_write, as200_field_write_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-46 

A5E00417149-01 

4.3.8 as200_z_field_write 

Die Funktion as200_z_field_write schreibt eine Anzahl Zählerwerte aus einem 
Übergabepuffer des PG/PC in das AG. 

int as200_z_field_write (int nStartNo, int * pnAnzahl, void * Buffer); 

Parameter 

nStartNo 

[in] Startnummer des ersten zu schreibenden Zählerwertes 

pnAnzahl 

[in] Anzahl der zu schreibenden Zählerwerte 

Buffer 

[out] Übergabepuffer für die zu schreibenden Zählerwerte 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Pro Zählerwert werden 3 Bytes gesendet, von denen nur 2 Bytes den 
angegebenen Zählerwert beinhalten. 

Voraussetzungen 

 

 

 V5.6 

as200_z_field_write 

V6.0 

as200_field_write 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

as200_a|m|sm|vs_field_write, as200_mix_write, as200_field_write_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-47 

4.3.9 as200_mix_write 

Die Funktion as200_mix_write schreibt die durch "data" parametrierten Daten aus 
einem Übergabepuffer des PG/PC in einen Datenbaustein im AG. 

int as200_mix_write (char * pData, void * Buffer); 

Parameter 

pData 

[in] Zeiger auf Typliste. Typelementinhalt == 0 wird als Endekennung der Liste 
gewertet. 

Buffer 

[out] Übergabepuffer für die zu schreibenden Datenbytes 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Die Funktion ermöglicht das Schreiben von gemischten Daten. Es können maximal 
20 Listenelemente angelegt werden. Auf die Typliste kann mit Hilfe einer Struktur 
zugegriffen werden: 

#pragma pack(1) 

typedef struct { 

unsigned char 

Typ

unsigned char 

Size

unsigned short 

nBstNo

unsigned short 

nDatNo

 } 

mix_tab_type; 

#pragma pack() 

 

Typ 

Folgende Daten können geschrieben werden (ASCII-Zeichen klein oder groß): 

e  

Eingangsbytes 

a  

Ausgangsbytes 

m  

Merkerbytes 

v  

Variablenspeicherworte 

s  

Sondermerkerbytes 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-48 

A5E00417149-01 

Size 

Für alle zu schreibenden Daten muss der Datentyp Byte sein (ASCII-Zeichen klein 
oder groß): 

 Byte 

 bei 

allen 

Daten 

nBstNo 

Nummer des Datenbausteins 

nDatNo 

Nummer des zu schreibenden Datenbytes 

 

"data" muss folgenden Aufbau haben: 

 

 

Size = ’b’   

Byte schreiben 

Die zu schreibenden Werte müssen im Puffer sequenziell eingetragen werden.  

char  

Buffer[MAX_BUFFER]; 

unsigned char * cBuffer = (unsigned char *)Buffer;   // byteweiser vorzeichenloser  

   Zugriff 

 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-49 

Achtung: Beim Zugriff auf einen Datenbaustein sind die Datenworte in Buffer nicht 
nach Intel-Notation (low Byte - high Byte), sondern in STEP5-Notation (high Byte - 
low Byte) abgelegt. Bei einer Weiterverarbeitung der Daten muss dies beachtet 
werden. Zum Tauschen von Bytes stehen die Funktionen kf_integer und 
swab_buffer zur Verfügung. 

Voraussetzungen 

 

 

 V5.6 

as200_mix_write 

V6.0 

as200_field_write_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

as200_mix_read, kf_integerswab_buffer, as200_field_write_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-50 

A5E00417149-01 

4.3.10 as200_mb_setbit 

Die Funktion as200_mb_setbit setzt einen Merker im AG auf 1. Es erfolgt keine 
Abprüfung, ob das Merkerbit in dem verwendeten AG vorhanden ist. 

int as200_mb_setbit (int nMbNo, int nBitNo); 

Parameter 

nMbNo 

[in] Nummer des Merkerbytes 

nBitNo 

[in] Bitnummer im Merkerbyte 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 V5.6 

as200_mb_setbit 

V6.0 

as200_mb_setbit_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

as200_mb_resetbitas200_mb_bittest, as200_mb_setbit_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-51 

4.3.11 as200_mb_resetbit 

Die Funktion as200_mb_resetbit setzt einen Merker im AG auf 0. Es erfolgt keine 
Abprüfung, ob das Merkerbit in dem verwendeten AG vorhanden ist. 

int as200_mb_resetbit (int nMbNo, int nBitNo); 

Parameter 

nMbNo 

[in] Nummer des Merkerbytes 

nBitNo 

[in] Bitnummer im Merkerbyte 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 V5.6 

as200_mb_resetbit 

V6.0 

as200_mb_setbit_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

as200_mb_setbitas200_mb_bittest, as200_mb_setbit_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-52 

A5E00417149-01 

4.3.12 as200_mb_bittest 

Die Funktion as200_mb_bittest prüft ein Bit in einem angegebenen Merkerbyte 
und liefert im * bitwert den Zustand des angegebenen Bits. 

int as200_mb_bittest (int nMbNo, int nBitNo, char * bitwert); 

Parameter 

nMbNo 

[in] Nummer des Merkerbytes 

nBitNo 

[in] Bitnummer im Merkerbyte 

bitwert 

[out] Übergabepuffer mit dem getesteten Bitwert 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

 

Voraussetzungen 

 

 

 V5.6 

as200_mb_bittest 

V6.0 

as200_mb_bittest_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

as200_mb_setbitas200_mb_resetbit, as200_mb_bittest_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-53 

4.4 Komfortfunktionen 

4.4.1 error_message 

Die Funktion error_message liefert zu einer Fehlernummer den zugehörigen 
Fehlertext als nullterminierten Character-String.  

int error_message (int nErrorNnr, char * Buffer); 

Parameter 

nErrorNnr 

[in] Fehlernummer 

Buffer 

[out] Übergabepuffer mit den Fehlertexten 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0. 
Bei Fehler liefert die Funktion folgende Werte: 

• 

Datei ERROR.DAT ist nicht vorhanden oder kann nicht geöffnet werden 

• 

Fehler beim Lesen von ERROR.DAT 

• 

Falscher Aufbau der Datei ERROR.DAT 

• 

Zu dieser Fehlernummer existiert kein Fehlertext 

• 

Zu viele Fehlertexte in ERROR.DAT 

Aufrufbeispiel 

In ERROR.DAT dürfen maximal 100 Fehlertexte gespeichert werden. 

Bei Übergabe der Fehlernummer 0 kann in "Buffer" der Dateiname der zu 
ladenden Fehlertextdatei übergeben werden (z. B. eine englische oder eine 
deutsche Fehlertextdatei). Wurde kein gültiger Dateiname oder ein NULL-Pointer 
übergeben, wird die Datei ERROR.DAT im aktuellen Verzeichnis gelesen. Deshalb 
sollte sichergestellt sein, dass die Datei ERROR.DAT vorhanden ist und im 
gleichen Verzeichnis wie das Programm liegt. 

Die Datei ERROR.DAT wird beim ersten Aufruf der Funktion error_message 
gelesen, und die Texte werden in einem Feld gespeichert. 

Es ist empfehlenswert, kurz nach Programmbeginn die Funktion error_message 
mit error_no = 0 aufzurufen, um die Datei ERROR.DAT zu laden. Somit ist bei 
weiteren Aufrufen dieser Funktion die Ausführungszeit nahezu konstant. 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-54 

A5E00417149-01 

Aufbau der Fehlertext-Datei 

[Fehlernummer als ASCII-Hex]: [Fehlertext] 

Die Fehlertexte finden Sie iom Anhang. 

Voraussetzungen 

 

 

 

V5.6 error_message 

V6.0 GetErrorMessage_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: KOMFORT.H 

 

Library: KOMFORT.DLL 

 

 

Siehe auch: 

GetErrorMessage_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-55 

4.4.2 kg_to_float 

Die Funktion kg_to_float wandelt einen S5-Gleitpunktwert in einen Wert vom Typ 
float (IEEE-Format) um. 

int kg_to_float (void * kg, void * ieee); 

Parameter 

kg 

[in] S5-Gleitpunktwert 

ieee 

[out] Floatwert 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine 1. 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 V5.6 

kg_to_float 

V6.0 

kg_2_float_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: KOMFORT.H 

 

Library: KOMFORT.DLL 

 

 

Siehe auch: 

float_to_kg, kg_2_float_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-56 

A5E00417149-01 

4.4.3 float_to_kg 

Die Funktion float_to_kg wandelt einen Wert vom Typ float (IEEE-Format) in einen 
S5-Gleitpunktwert um. 

int float_to_kg (void * ieee, void * kg); 

Parameter 

ieee 

[in] Floatwert 

kg 

[out] S5-Gleitpunktwert  

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine 1. 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 

V5.6 float_to_kg 

V6.0 float_2_kg_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: KOMFORT.H 

 

Library: KOMFORT.DLL 

 

 

Siehe auch: 

kg_to_float, float_2_kg_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-57 

4.4.4 gp_to_float 

Die Funktion gp_to_float wandelt einen S7-Gleitpunktwert in einen Wert vom Typ 
float (IEEE-Format) um. 

void gp_to_float (void * gp, void * ieee); 

Parameter 

gp 

[in] S7-Gleitpunktwert 

ieee 

[out] Floatwert 

Rückgabewerte 

Keine 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 

V5.6 gp_to_float 

V6.0 gp_2_float_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: KOMFORT.H 

 

Library: KOMFORT.DLL 

 

 

 

Siehe auch: 

float_to_gp, gp_2_float_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-58 

A5E00417149-01 

4.4.5 float_to_gp 

Die Funktion float_to_gp wandelt einen Wert vom Typ float (IEEE-Format) in 
einen S7-Gleitpunktwert um. 

void float_to_gp (void * ieee, void * gp); 

Parameter 

ieee 

[in] Floatwert 

gp 

[out] S7-Gleitpunktwert  

Rückgabewerte 

Keine 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 

V5.6 float_to_gp 

V6.0 float_2_gp_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: KOMFORT.H 

 

Library: KOMFORT.DLL 

 

 

 

Siehe auch: 

gp_to_float, float_2_gp_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-59 

4.4.6 testbit 

Die Funktion testbit prüft, ob ein angegebenes Bit in einer Bytevariablen gesetzt 
ist. Die Bytevariable und die Bitnummer werden der Funktion als Parameter 
übergeben. 

char testbit (char Wert, char BitNo); 

Parameter 

Wert 

[in] Wert der Bytevariablen 

BitNo 

[in] zu testendes Bit in der Bytevariablen 

Rückgabewerte 

Rückgabewert TRUE (oder 1): 

Bit ist gesetzt (oder 1) 

Rückgabewert FALSE (oder 0): 

Bit ist nicht gesetzt (oder 0) 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 

V5.6 testbit 

V6.0 testbit_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

Siehe auch: 

testbit_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-60 

A5E00417149-01 

4.4.7 byte_boolean 

Die Funktion byte_boolean wandelt ein Byte in acht logische Werte (PC-
Darstellung) um. 

void byte_boolean (char Wert, char * Buffer); 

Parameter 

Wert 

[in] Bytewert 

Buffer 

[out] Zeiger auf Puffer mit acht umgewandelten logischen Werten 

Rückgabewerte 

Keine 

Aufrufbeispiel 

Der übergebene Zeiger sollte auf ein char-Feld mit folgendem Aufbau zeigen: 

 

Buffer[0]  Buffer[1] Buffer[2]  Buffer[3]  Buffer[4]  Buffer[5]  Buffer[6]  Buffer[7] 

bit 0 

bit 1 

bit 2 

bit 3 

bit 4 

bit 5 

bit 6 

bit 7 

 

Voraussetzungen 

 

 

 

V5.6 byte_boolean 

V6.0 byte_2_bool_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: KOMFORT.H 

 

Library: KOMFORT.DLL 

 

 

Siehe auch: 

boolean_byte, byte_2_bool_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-61 

4.4.8 boolean_byte 

Die Funktion boolean_byte wandelt acht logische Werte (PC-Darstellung) in ein 
Byte um. 

char boolean_byte (char * Buffer); 

Parameter 

Buffer 

[in] Zeiger auf Puffer mit acht logischen Werten 

Rückgabewerte 

Umgewandelter Bytewert 

Aufrufbeispiel 

Der übergebene Zeiger sollte auf ein char-Feld mit folgendem Aufbau zeigen: 

 

Buffer[0]  Buffer[1] Buffer[2]  Buffer[3]  Buffer[4]  Buffer[5]  Buffer[6]  Buffer[7] 

bit 0 

bit 1 

bit 2 

bit 3 

bit 4 

bit 5 

bit 6 

bit 7 

 

Voraussetzungen 

 

 

 

V5.6 boolean_byte 

V6.0 bool_2_byte_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: KOMFORT.H 

 

Library: KOMFORT.DLL 

 

 

Siehe auch: 

byte_boolean, bool_2_byte_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-62 

A5E00417149-01 

4.4.9 kf_integer 

Die Funktion vertauscht High- und Low-Byte eines übergebenen Werts. 

Mit kf_integer werden die High- und Low-Bytes eines 16-Bit-Wertes vertauscht. 

unsigned short kf_integer (unsigned short wWert); 

Parameter 

wWert 

[in] 16-Bit-Werte 

Rückgabewerte 

kf_integer liefert einen 16-Bit-Wert mit vertauschten Bytes. 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 V5.6 

kf_integer 

V6.0 

kf_2_integer_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: KOMFORT.H 

 

Library: KOMFORT.DLL 

 

 

Siehe auch: 

swab_buffer, kf_2_integer_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-63 

4.4.10 swab_buffer 

Die Funktion swab_buffer vertauscht High- und Low-Bytes eines übergebenen 
Puffers. 

void swab_buffer (void * Buffer, int nAnzahl); 

Parameter 

Buffer 

[in/out] Zeiger auf Puffer, in dem die Bytes getauscht werden 

nAnzahl 

[in] Anzahl der zu tauschenden Bytes 

Rückgabewerte 

Keine 

Aufrufbeispiel 

Intern wird die Standard C-Funktion void _swab(char * src, char * dest, int n) 
aufgerufen. 

Voraussetzungen 

 

 

 V5.6 

swab_buffer 

V6.0 

swab_buffer_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: KOMFORT.H 

 

Library: KOMFORT.DLL 

 

 

Siehe auch: 

kf_integer, copy_buffer, swab_buffer_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-64 

A5E00417149-01 

4.4.11 copy_buffer 

Die Funktion copy_buffer kopiert eine Anzahl Bytes von einem Puffer in einen 
anderen. 

void copy_buffer (void * ZielBuffer, void * QuellBuffer, int nAnzahl); 

Parameter 

ZielBuffer 

[out] Zeiger auf Puffer, in den die Bytes kopiert werden 

QuellBuffer 

[in] Zeiger auf Puffer, aus dem die Bytes geholt werden 

nAnzahl 

[in] Anzahl der zu kopierenden Bytes 

Rückgabewerte 

Keine 

Aufrufbeispiel 

Intern wird die Standard C-Funktion void *memcpy(char * dest, char * src, size_t 
count) aufgerufen. 

Voraussetzungen 

 

 

 V5.6 

copy_buffer 

V6.0 

copy_buffer_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: KOMFORT.H 

 

Library: KOMFORT.DLL 

 

 

Siehe auch: 

swab_buffer, copy_buffer_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-65 

4.4.12 USHORT_2_bcd 

Die Funktionen sind Wandelroutinen, die eine Anzahl von Dualwerten in BCD-
Werte umwandeln. 

Mit USHORT_2_bcd werden 16-Bit-Werte (Worte) gewandelt. 

void USHORT_2_bcd (unsigned short * pwWerte, unsigned short wAnzahl, 
char InBytechange, char OutBytechange); 

Parameter 

pwWerte 

[in/out] Zeiger auf 16-Bit-Dualwerte 

wAnzahl 

[in] Anzahl Werte 

InBytechange 

[in] Boolscher Ausdruck TRUE oder FALSE 

OutBytechange 

[in] Boolscher Ausdruck TRUE oder FALSE 

Rückgabewerte 

Ist InBytechange gesetzt (1), so werden vor dem Wandeln in einen BCD-Wert die 
High und Low Bytes vertauscht. Wird statt dessen OutBytechange gesetzt, so 
werden die High und Low Bytes erst nach der Wandlung vertauscht. 

Wird keines der beiden Bytechange-Argumente gesetzt, so wird keine High-Low-
Byte-Vertauschung durchgeführt. 

Nach Aufruf der Funktion zeigt 

pwWerte auf 16-Bit BCD-Werte. 

Aufrufbeispiel 

Mit der Funktion kann man z. B. Zähler setzen oder Zeitfunktionen versorgen. 

Der verfügbare Zahlenbereich für 16-Bit BCD-Werte ist +999 bis –999. 

Voraussetzungen 

 

 

 

V5.6 USHORT_2_bcd 

V6.0 ushort_2_bcd_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: KOMFORT.H 

 

Library: KOMFORT.DLL 

 

 

Siehe auch: 

bcd_2_USHORT, ushort_2_bcd_ex6 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-66 

A5E00417149-01 

4.4.13 bcd_2_USHORT 

Die Funktionen sind Wandelroutinen, die eine Anzahl von BCD-Werten in 
Dualwerte umwandeln. 

Mit bcd_2_USHORT werden 16-Bit-Werte (Worte) gewandelt. 

void bcd_2_ USHORT (unsigned short * pwWerte, unsigned short wAnzahl, 
char InBytechange, char OutBytechange); 

Parameter 

pwWerte 

[in/out] Zeiger auf 16-bit BCD-Werte 

wAnzahl 

[in] Anzahl Werte 

InBytechange 

[in] Boolscher Ausdruck TRUE oder FALSE 

OutBytechange 

[in] Boolscher Ausdruck TRUE oder FALSE 

Rückgabewerte 

Nach Aufruf der Funktion zeigt 

pwWerte auf 16-Bit Dualwerte. 

Aufrufbeispiel 

Mit der Funktion kann man z. B. Zähler setzen oder Zeitfunktionen versorgen. 

Der verfügbare Zahlenbereich für 16-Bit BCD-Werte ist +999 bis –999. 

Voraussetzungen 

 

 

 

V5.6 bcd_2_USHORT 

V6.0 bcd_2_ushort_ex6 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: KOMFORT.H 

 

Library: KOMFORT.DLL 

 

 

Siehe auch: 

USHORT_2_bcd, bcd_2_ushort_ex6 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-67 

4.5 Teleservice 

Funktionen 

4.5.1 ts_dial 

Die Funktion ts_dial wählt eine entfernte Station über Modem an und baut die 
Verbindung zum TS-Adapter auf. 

int ts_dial (char * cModemName, char * cStandort, char * cTelNo, char * 
cUserName
, char * cPassword, HANDLE WindowHandle,  unsigned int 
Message
, WPARAM wParam, char * Res1); 

Parameter 

cModemName 

[in] Name des zu verwendenden Modems, einstellbar in Systemsteuerung / 
Modems / Wahlparameter. 

cStandort 

[in] Name des zu Modem Standortes, einstellbar in Systemsteuerung / Modems / 
Wahlparameter. 

cTelNo 

[in] Telefonnummer, die vom angeschlossenen Modem angewählt wird. 

cUserName 

[in] Hier wird der Benutzername angegeben, der im anzuwählenden TS-Adapter 
parametriert wurde. 

cPassword 

[in] Hier wird das Passwort angegeben, welches im anzuwählenden TS-Adapter 
parametriert wurde. 

WindowHandle 

[in] Hier kann ein Fenster-Handle übergeben werden. 

Message 

[in] Nachricht, die an das Fenster geschickt wird, wenn die Verbindung aufgebaut 
oder der Timeout abgelaufen ist. 

wParam 

[in] Parameter für die Nachricht. 

Res1 

[in] Reserviert für spätere Erweiterungen, muss jetzt mit NULL vorbelegt werden. 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-68 

A5E00417149-01 

 

 

Hinweis 

Wenn die Funktion ts_dial asynchron aufgerufen wird, wird im Fehlerfall keine 
Fehlernummer ausgegeben. Informieren Sie in diesem Fall den Bediener und 
lassen Sie ihn entscheiden, ob der die Funktion nochmals ausführen möchte, oder 
ob er detaillierte Fehlerinformationen benötigt. Für detaillierte Informationen 
verwenden Sie den Synchronaufruf. 

 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 V5.6 

ts_dial 

 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-69 

4.5.2 ts_hang_up_dial 

Die Funktion ts_hang_up_dial bricht die momentan stehende Verbindung oder 
einen momentan laufenden asynchronen Wählvorgang ab. 

int ts_hang_up_dial (void); 

Parameter 

Keine 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 V5.6 

ts_hang_up_dial 

 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-70 

A5E00417149-01 

4.5.3 ts_set_ringindicator 

Die Funktion ts_set_ringindicator initialisiert das unterlagerte System für 
Anrufannahme, Verbindungsaufbau und Benachrichtigung (Ringindication). 

int ts_set_ringindicator (char * cModemName, char * cNumberOfRings
HANDLE WindowHandle
,  unsigned int Message, WPARAM wParam, char * 
Res1
); 

Parameter 

cModemName 

[in] Name des für die Ringindication zu verwendenden Modems, einstellbar in 
Systemsteuerung / Modems. 

cNumberOfRings 

[in] Anzahl Klingelzeichen, bis das Modem abnehmen soll. 

WindowHandle 

[in] Hier kann ein Fenster-Handle übergeben werden. 

Message 

[in] Nachricht, die an das Fenster geschickt wird, wenn die Verbindung aufgebaut 
oder der Timeout abgelaufen ist. 

wParam 

[in] Parameter für die Nachricht. 

Res1 

[in] Reserviert für spätere Erweiterungen, muss jetzt mit NULL vorbelegt werden. 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Keines 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-71 

Voraussetzungen 

 

 

 V5.6 

ts_set_ringindicator 

 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-72 

A5E00417149-01 

4.5.4 ts_read_info 

Die Funktion ts_read_info liefert Informationen über die alarmauslösende Station. 

int ts_read_info (void * IventId, unsigned char * MpiAdr); 

Parameter 

IventId 

[in] Zeiger auf ein 16 Byte langes Feld. Hier werden Informationen der 
alarmauslösenden Station eingetragen. 

MpiAdr 

[in] Zeiger auf ein Byte. Hier wird die MPI-Adresse der alarmauslösenden Station 
eingetragen. 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 V5.6 

ts_read_info 

 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-73 

4.5.5 ts_hang_up_ring 

Die Funktion ts_hang_up_ring bricht die vom TS-Adapter aufgebaute Verbindung 
ab. 

int ts_hang_up_ring (void); 

Parameter 

Keine 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 V5.6 

ts_hang_up_ring 

 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

background image

Funktionen von PRODAVE MPI V6.0 

 

PRODAVE MPI V6.0 

4-74 

A5E00417149-01 

4.5.6 ts_get_modem_name 

Die Funktion ts_get_modem_name liefert alle Namen der dem System bekannten 
Modems. 

int ts_get_modem_name (int ModemId, char * Buffer, int * BufferLen); 

Parameter 

ModemId 

[in] Modem-ID  

0 ... n 

Buffer 

[out] Zeiger auf Puffer für Modemname 

BufferLen 

[in/out] Zeiger auf die Länge des Puffers; enthält nach dem Aufruf die tatsächliche 
Länge des Strings mit dem Modemnamen. Achtung: BufferLen muss vor dem 
Aufruf der Funktion ausreichend groß für den zu erwartenden Modemnamen 
gewählt werden! 

Rückgabewerte 

Wenn keine Fehler aufgetreten sind, liefert die Funktion als Rückgabewert eine 0, 
andernfalls eine Fehlernummer, die anhand der Fehlertabelle ausgewertet werden 
kann (siehe error_message). 

Aufrufbeispiel 

Keines 

Voraussetzungen 

 

 

 V5.6 

ts_get_modem_name 

 

Windows: 

95, ME, NT4, 2000, XP 

 

Header: W95_S7.H, 

W95_S7M.H 

 

Library: W95_S7.DLL, 

W95_S7M.DLL 

 

 

background image

 

Funktionen von PRODAVE MPI V6.0 

PRODAVE MPI V6.0 
A5E00417149-01 

4-75 

 

background image
background image

 

PRODAVE MPI V6.0 
A5E00417149-01 

5-1 

5 Demonstrationsprogramme 

5.1 

Demonstrationsprogramme für den PC 

Demonstrationsprogramme für den PC finden Sie nach erfolgreicher Installation 
unter dem Pfad : 

• 

..\SIEMENS\PRODAVE_S7\..  

• 

..\SIEMENS\PRODAVE_S7_MINI\..  

Anhand dieser Beispielprogramme zeigen wir Ihnen in überschaubarer Form, wie 
Sie die PRODAVE Funktionen benutzen. Damit diese Beispiele nicht überfrachtet 
werden, haben wir nur wenige Funktionen realisiert. 

Daher erheben diese beiden Programme keinen Anspruch auf Vollständigkeit, 
sondern sie bieten eine Hilfestellung bei der Programmierung Ihrer Anwendung. 

Die Demonstrationsprogramme bauen grundsätzlich den Prozessdatenverkehr zu 
einer PLC mit Adresse = 2 und Slotno = 2 auf !  

Bei Anschluss einer S7-400 mit doppelt breiter Stromversorgungsbaugruppe muss 
Slotno = 3 gesetzt werden. 

Aufrufen der Demonstrationsprogramme für Windows 95/98/NT/ME/2000/XP: 

• 

Stecken Sie das entsprechende Kopplungskabel AG - PG/PC auf die PG-
Schnittstelle am AG und auf die MPI-Anschaltung (bzw. COM-Port bei 
Verwendung des PC-Adapter-Kabels) des PG/PC. 

• 

Konfigurieren Sie die verwendete PG/PC-Schnittstelle mit Hilfe des STEP 7-
Tools (S7EPATSX.EXE). 
Der Zugangspunkt der Applikation "S7ONLINE" muss mit der verwendeten 
Baugruppenparametrierung verbunden werden. 

• 

Bei Kopplung zu einer S7-200 muss die entsprechende 
Baugruppenparametrierung mit dem Zusatz (PPI) angewählt werden. 

• 

Starten Sie Windows 95/98/NT/ME/2000/XP neu, damit die Konfiguration 
übernommen wird. 

• 

Starten Sie das Demonstrationsprogramm in der PRODAVE-Programmgruppe. 

• 

Wählen Sie das Menü load_tool und geben darin die Parameter (Adresse, 
Steckplatznummer, Segment-ID und Baugruppenträgernummer) des 
Zielsystems an. 

background image

Demonstrationsprogramme 

 

PRODAVE MPI V6.0 

5-2 

A5E00417149-01 

 

background image

 

PRODAVE MPI V6.0 
A5E00417149-01 

A-1 

A Anhang 

A.1 Fehlertexte 

Zu diesen Fehlertexten können Sie in der Datei ERROR.DAT eigene hinzufügen. 
Siehe Funktion "error_message". 

Fehlermeldungen 

 

0000  

** ERROR.DAT = Fehlertextdatei für PRODAVE MPI  ** 

00CA : 

Keine 

Ressourcen 

verfügbar 

00CE : 

Baugruppe 

nicht 

gefunden 

00CF 

Treiber nicht geladen 

00E1 

Zu viele offene Kanäle 

00E9 : 

sin_serv.exe 

nicht 

gestartet 

00F1 

Kein globaler DOS-Speicher verfügbar 

0101 

Verbindung nicht aufgebaut / parametriert 

010A 

Negative Quittung empfangen / Timeout-Fehler 

010C 

Daten nicht vorhanden oder gesperrt 

0201 : 

Falsche 

Schnittstelle 

angegeben 

0202 : 

Maximalanzahl 

Schnittstellen 

überschritten 

0203 

Toolbox schon installiert 

0204 

Toolbox schon mit anderen Verbindungen installiert 

0205 : 

Toolbox 

nicht 

installiert 

0206 

Handle kann nicht gesetzt werden 

0207 

Datensegment kann nicht gesperrt werden 

0209 : 

Datenfeld 

fehlerhaft 

0302 

Baustein zu klein, DW ist nicht vorhanden 

0303 

Bausteingrenze überschritten, Anzahl korrigieren 

0310 : 

Baugruppe 

nicht 

gefunden 

0311 : 

Hardwarefehler 

0312 : 

Falsche 

Konfigurationsparameter 

0313 : 

Falsche 

Baudrate/interruptvector 

0314 : 

Falsche 

HSA 

0315 : 

MPI-Addressfehler 

0316 

HW-Gerät schon vergeben 

0317 : 

Interrupt 

nicht 

verfügbar 

0318 : 

Interrupt 

belegt 

031A : 

Verbindungsfehler 

background image

Anhang 

 

PRODAVE MPI V6.0 

A-2 

A5E00417149-01 

0320 : 

Hardwarefehler 

0330 : 

Versionskonflikt 

0331 : 

COM-Fehler 

0332 : 

keine 

Rückmeldung 

0333 : 

COM-Fehler 

0334 : 

COM-Fehler 

0336 

Keine Modemverbindung aufgebaut 

0337 : 

Legitimierung 

fehlt 

0381 

Gerät nicht vorhanden 

0382 

Kein Treiber oder Gerät gefunden 

0384 

Kein Treiber oder Gerät gefunden 

03FF : 

Systemfehler 

4001 

Verbindung nicht bekannt 

4002 

Verbindung nicht aufgebaut 

4003 

Verbindung wird gerade aufgebaut 

4004 

Verbindung ist zusammengebrochen 

800 : 

Toolbox 

belegt 

8001 

In diesem Betriebszustand nicht erlaubt 

8101 : 

Hardwarefehler 

8103 

Objektzugriff nicht erlaubt 

8104 : 

Kontext 

wird 

nicht 

unterstützt 

8105 : 

Ungültige 

Adresse 

8106 

Typ (Datenart) nicht unterstützt 

8107 

Typ (Datenart) nicht konsistent 

810A 

Objekt nicht existent 

8301 

Speicherplatz auf CPU nicht ausreichend 

8404 : 

Gravierender 

Fehler 

8500 : 

Falsche 

PDU-Größe 

8702 : 

Adresse 

ungültig 

D201 : 

Syntaxfehler 

Bausteinname 

D202 : 

Syntaxfehler 

Funktionsparameter 

D203 : 

Syntaxfehler 

Bausteintyp 

D204 

Kein eingeketteter Baustein im Speichermedium 

D205 : 

Objekt 

bereits 

vorhanden 

D206 : 

Objekt 

bereits 

vorhanden 

D207 

Baustein im EPROM vorhanden 

D209 : 

Baustein 

nicht 

vorhanden 

D20E : 

Kein 

Baustein 

vorhanden 

D210 : 

Bausteinnummer 

zu 

groß 

D241 

Schutzstufe der Funktion nicht ausreichend 

D406 : 

Information 

nicht 

vorhanden 

EF01 : 

Falsche 

ID2 

FFFE 

Unbekannter Fehler FFFE hex 

FFFF 

Timeout-Fehler, Schnittstelle überprüfen 

background image

 

Anhang 

PRODAVE MPI V6.0 
A5E00417149-01 

A-3 

TeleService-Fehlermeldungen 

 

0048 

Fehler beim Verbinden 

4350 : 

Nicht 

implementiert 

4360 : 

Zeitüberschreitung 

(timeout) 

8001 : 

Kein 

Speicher 

8305 

Fehler beim Zugriff auf Registry 

8306 

Adapter im Direktbetrieb 

8FFF 

Interner Fehler  

8305 

Fehler beim Zugriff auf Registry 

4501 

Falscher Parameter, Modem oder Standort-Fehler  

4502 

Keine weiteren Einträge 

4503 : 

Modemfunktion 

nicht 

ausreichend 

 

4504 

Übergebener String zu lang 

4510 : 

Adapter 

im 

Modembetrieb 

4540 

Alarm bereits vergeben 

4541 

Alarm nicht benutzt 

4580 

Login Fehler Username 

4581 

Login Fehler Passwort  

A0CE : Besetzt 

A0CF 

Partner antwortet nicht 

A0D4 : Anschluss 

nicht 

verfügbar 

A0D5 : Kein 

Freizeichen 

background image

Anhang 

 

PRODAVE MPI V6.0 

A-4 

A5E00417149-01 

A.2 Verwendete 

Abkürzungen 

AG 

  Automatisierungsgerät 

CP 

  Kommunikationsprozessor 

CPU   Central-Processing-Unit 

DB 

  Datenbaustein 

DLL 

 

Dynamic Link Library 

MPI   Multi 

Point 

Interface 

PC 

  Personal 

Computer 

PG 

  Programmiergerät 

PPI 

 

Point to Point Interface 

PRODAVE  

Prozess-Daten-Verkehr 

 


Document Outline