Softwarehandbuch PCMatic__STEP-7-Real Time SPS (PCM)

Transcription

Softwarehandbuch PCMatic__STEP-7-Real Time SPS (PCM)
PC based Automation
Ä.1n_ä
LDCDP-11037
.1n_
Softwarehandbuch
PCMatic Control
STEP-7 Real Time SPS
Steuerungssoftware Slot-Controller PCM 210/310
‚
© 2006 Lenze Digitec Controls GmbH, Grünstr. 36, D-40667 Meerbusch
Ohne besondere schriftliche Genehmigung von Lenze Digitec Controls GmbH darf kein Teil dieser Dokumentation vervielfältigt
oder Dritten zugänglich gemacht werden.
Wir haben alle Angaben in dieser Dokumentation mit größter Sorgfalt zusammengestellt und auf Übereinstimmung mit der
beschriebenen Hard- und Software geprüft. Trotzdem können wir Abweichungen nicht ganz ausschließen. Wir übernehmen
keine juristische Verantwortung oder Haftung für Schäden, die dadurch eventuell entstehen. Notwendige Korrekturen werden
wir in die nachfolgenden Auflagen einarbeiten.
‚
INHALTSVERZEICHNIS
1
Einführung Real Time SPS .................................................................................4
2
PCMatic im Vergleich..........................................................................................4
2.1 Unterschiede zur Hardware-SPS S7-416 .......................................................................................4
2.2 Nicht vorhandene Funktionen in der PCMatic® .............................................................................4
3
Operationsvorrat .................................................................................................5
3.1 Binäre Verknüpfungsoperationen ...................................................................................................5
3.2 Sonstige Verknüpfungen.................................................................................................................5
3.3 Master Control Relay ......................................................................................................................6
3.4 Lade / Transferoperationen ............................................................................................................6
3.5 Peripheriezugriffe............................................................................................................................7
3.6 Akkumulatorbefehle ........................................................................................................................7
3.7 Schiebe- und Rotieroperationen .....................................................................................................7
3.8 Zeitoperationen ...............................................................................................................................8
3.9 Zähloperationen ..............................................................................................................................8
3.10 Wortoperationen ...........................................................................................................................8
3.11 Arithmetische Operationen ...........................................................................................................8
3.12 Umwandlungsfunktionen ..............................................................................................................9
3.13 Sprungoperationen .....................................................................................................................10
3.14 Aufruf-Operationen .....................................................................................................................10
3.15 Indirekte Adressierung ................................................................................................................10
3.16 Sonstige Operationen .................................................................................................................11
4. Aufbau des SPS-Speichers der PCMatic® .......................................................12
®
4.1 Aufbau der Systemdaten PCMatic ..............................................................................................12
4.2 Integrierte Organisationsbausteine...............................................................................................12
4.3 Integrierte Systemfunktionen ........................................................................................................12
4.4 Integrierte Systembausteine .........................................................................................................13
4.5 Remanenz (PCM-210/310) ...........................................................................................................13
5. PC-Kommunikation ...........................................................................................14
5.1 Low Level Funktionen ...................................................................................................................14
5.2 Übersicht der Funktionalität ..........................................................................................................15
5.2.1 Installation ..............................................................................................................................16
5.2.2 Funktionen der DLL................................................................................................................16
1
‚
6. Betrieb der PCmatic Karte................................................................................19
6.1 Funktionsbausteine.......................................................................................................................19
6.1.1 Abfrage Feldbus-Status .........................................................................................................19
6.1.2 Steuer-SFB.............................................................................................................................19
6.1.3 Übersicht der Steuer-SFB Funktionen ...................................................................................20
6.1.3.1 Fkt 102 Anzahl der digitalen Ein-/Ausgänge einstellen.............................................. 20
6.1.3.2 Fkt 125 Prozesseingänge lesen ................................................................................. 21
6.1.3.3 Fkt 126 Prozessausgänge schreiben ......................................................................... 21
6.1.3.4 Fkt 130 Lese globale Diagnosebits ............................................................................ 22
6.1.3.5 Fkt 131 Lese Busstatus.............................................................................................. 22
6.1.3.6 Fkt 132 Lese fehlerhafte Busadresse ........................................................................ 23
6.1.3.7 Fkt 133 Lese Fehlernummer ...................................................................................... 23
6.1.3.8 Fkt 134 Lese Statusbits.............................................................................................. 27
6.1.3.9 Fkt 135 Lese Diagnosebits......................................................................................... 27
6.1.3.10 Fkt 136 Dualportmemory lesen ................................................................................ 27
6.1.3.11 Fkt 137 Dualportmemory schreiben ......................................................................... 28
6.1.3.12 Fkt 139 Unterdrücken Watchdog.............................................................................. 28
6.1.3.13 Fkt 140 Watchdog triggern ....................................................................................... 29
6.1.3.14 Fkt 141 Hostflags lesen............................................................................................ 29
6.1.3.15 Fkt 142 DevFlags lesen............................................................................................ 29
6.1.3.16 Fkt 143 DevFlags schreiben..................................................................................... 30
6.2 Konfiguration des Feldbusmoduls mit dem Systemkonfigurator PCMCon...................................30
7. ANHANG: PCM Dual-Port-Memory ..................................................................31
7.1 Dual-Port-Memory Step5/Step7....................................................................................................31
7.1.1 Aufbau für Step5/Step7..........................................................................................................31
7.1.2 Kommunikationsbereich für Step5/Step7...............................................................................32
8. Technische Daten .............................................................................................36
2
‚
ÄNDERUNGEN / ERGÄNZUNGEN
NR
Datum
Ausgabe
Änderung
Hardware
1. 18.09.2001
PCM_S7.DOC
Erstausgabe
#6108-03
#6195-02
2. 22.09.2006
PCM_S7.DOC
Redaktionell überarbeitet
#6108-03
#6195-02
3.
3
‚
1
Einführung Real Time SPS
Die Real Time SPS ist eine Software SPS, die als Interpreter ausgelegt ist. Das SPS Programm wird
in kompilierter Form (wie bei einer Hardware SPS) abgearbeitet. Dies bietet den Vorteil, dass der
Programmdurchlauf beschleunigt wird.
Der Befehlssatz und der Speicherausbau der Real Time SPS gleicht im wesentlichen dem Befehlssatz
und dem Speicherausbau der CPU 416 der Simatic-S7 Baureihe. Um den Besonderheiten einer
Software SPS gerecht zu werden, wurde der Befehlssatz entsprechend angepasst.
In der Real Time SPS ist ein MPI-Treiber enthalten. Es kann über ein Nullmodemkabel von einem
Bedienfeld aus auf die Real Time SPS zugegriffen werden. Dabei wird eine Baudrate von 38400 Baud
benutzt. Für den Anschluß eines Programmiergerätes (PG) mit serieller Schnittstelle muss im PG
"MPI Umsetzer" bzw. "MPI Adapter" eingestellt werden.
2
PCMatic im Vergleich
2.1 Unterschiede zur Hardware-SPS S7-416
2.2 Nicht vorhandene Funktionen in der PCMatic®
Da es physikalische Unterschiede zwischen einer Hardware-SPS und einem Windows-Rechner gibt,
können nicht alle Funktionen der CPU S7-416-1 in der PCMatic realisiert werden. Es sollten jedoch
Ihre vorhandenen Programme mit geringen Änderungen auf der PCMatic funktionieren. Die folgenden
Organisationsbausteine werden z. Zt. noch nicht unterstützt:
" OB60: Mehrprozessoralarm
" OB40 - OB47: Prozessalarm 0 – 7
Die folgenden integrierten Funktionsbausteine (SFB, SFC) sind z. Z. noch nicht integriert:
" SFB44: Ersatzwert eintragen
" SFB46: In den Zustand Stop wechseln
" SFB33 – 37: Bausteinbezogene Meldungen erzeugen
4
‚
3
Operationsvorrat
Die PCMatic besitzt den kompletten Befehlsvorrat der Simatic S7-416 CPU.
®
3.1 Binäre Verknüpfungsoperationen
Operation
U
UN
O
ON
X
XN
Operand
E
A
M
L
T
Z
DBX
DIX
==0
<>0
>0
>=0
<0
<=0
UO
OV
OS
BIE
Funktionsbeschreibung
UND mit Abfrage auf "1"
UND mit Abfrage auf "0"
ODER mit Abfrage auf "1"
ODER mit Abfrage nach " 0"
Exklusiv-ODER mit Abfrage auf "1"
Exklusiv-ODER mit Abfrage auf "0"
eines Eingangs
eines Ausgangs
eines Merkers
eines Lokaldatenbits
einer Zeitfunktion
einer Zählfunktion
eines Globaldatenbits
eines Instanzdatenbits
Ergebnis gleich Null
Ergebnis ungleich Null
Ergebnis größer Null
Ergebnis größer-gleich Null
Ergebnis kleiner Null
Ergebnis kleiner-gleich Null
ungültiges Ergebnis
Overflow
Überlauf (speichernd)
Binärergebnis
3.2 Sonstige Verknüpfungen
Operation
U(
UN(
O(
ON(
X(
XN(
)
O
NOT
SET
CLR
SAVE
Operand
Funktionsbeschreibung
UND Klammer auf
UND-NICHT Klammer auf
ODER Klammer auf
ODER-NICHT Klammer auf
Exklusiv-ODER Klammer auf
Exklusiv-ODER-NICHT Klammer auf
Klammer zu
ODER-Verknüpfung von UND
VKE negieren
VKE setzen
VKE rücksetzen
VKE ins BIE retten
5
‚
Operation
=
S
R
FP
FN
Operand
E
A
M
L
DBX
DIX
Funktionsbeschreibung
Zuweisung
Setze
Rücksetze
Positive Flanke
Negative Flanke
eines Eingangsbits
eines Ausgangsbits
eines Merkerbits
eines Lokaldatenbits
eines Datenbits
eines Instanz-Datenbits
3.3 Master Control Relay
Operation
MCRA
MCRD
MCR(
)MCR
Operand
Funktionsbeschreibung
MCR-Bereich aktivieren
MCR-Bereich deaktivieren
MCR-Zone öffnen
MCR-Zone schließen
3.4 Lade / Transferoperationen
Operation
L
T
L
L
L
LC
L
Operand
EB
EW
ED
AB
AW
AD
MB
MW
MD
LB
LW
LD
DBB
DBW
DBD
DIB
DIW
DID
STW
konst
#Pointer
T
T
Z
Funktionsbeschreibung
Operand laden
Operand transferieren
Eingangsbyte
Eingangswort
Eingangsdoppelwort
Ausgangsbyte
Ausgangswort
Ausgangsdoppelwort
Merkerbyte
Merkerwort
Merkerdoppelwort
Lokaldatenbyte
Lokaldatenwort
Lokaldatendoppelwort
Datenbausteinbyte
Datenbausteinwort
Datenbausteindoppelwort
Instanz-Datenbausteinbyte
Instanz-Datenbausteinwort
Instanz-Datenbausteindoppelwort
Statuswort
Laden einer Konstanten
Laden eines Zeigers
Zeitwert
Zeitwert (BCD codiert)
Zähler
6
‚
Operation
LC
L
L
L
L
Operand
Z
DBNO
DBLG
DINO
DILG
Funktionsbeschreibung
Zähler (BCD codiert)
Lade Datenbausteinnummer
Lade Datenbausteinlänge
Lade Datenbausteinnummer (Instanz-DB)
Lade Datenbausteinlänge (Instanz-DB)
3.5 Peripheriezugriffe
Operation
L
L
L
T
T
T
Operand
PEB
PEW
PED
PAB
PAW
PAD
Funktionsbeschreibung
Peripherieeingangsbyte
Peripherieeingangswort
Peripherieeingangsdoppelwort
Peripherieausgangsbyte
Peripherieausgangswort
Peripherieausgangsdoppelwort
3.6 Akkumulatorbefehle
Operation
PUSH
POP
ENT
LEAVE
TAK
TAW
TAD
Operand
Funktionsbeschreibung
Akkus ,,nach oben" schieben
Akkus ,,nach unten" schieben
Akkus schieben (ohne Al) A2->A3, A3->A4
Akkus schieben (ohne Al) A4->A3, A3->A2
Akku 1 und Akku 2 tauschen
Akku 1 Bytes 0 und 1 tauschen
Akku 1 alle Bytes tauschen
3.7 Schiebe- und Rotieroperationen
Operation
SLW
SLD
SRW
SRD
SSI
SSD
RLD
RLDA
RRDA
RRD
Operand
konst
-
Funktionsbeschreibung
Schieben links wortweise
Schieben links doppelwortweise
Schieben rechts wortweise
Schieben rechts doppelwortweise
Schieben mit Vorzeichen wortweise
Schieben mit Vorzeichen doppelwortweise
Rotieren links doppelwortweise
Rotieren links durch Al
Rotieren rechts durch Al
Rotieren rechts doppelwortweise
um feste Anzahl von Bits
Schiebezahl im Akku 2
7
‚
3.8 Zeitoperationen
Operation
SI
SV
SE
SS
SA
R
FR
Operand
T
T
T
T
T
T
T
Funktionsbeschreibung
Starten als Impuls
Starten als verlängerter Impuls
Starten als Einschaltverzögerung
Starten als speichernde Einschaltverzögerung
Starten als Ausschaltverzögerung
Zeitfunktion rücksetzen
Zeitfunktion freigeben
3.9 Zähloperationen
Operation
Operand
ZV
ZR
S
R
FR
Z
Z
Z
Z
Z
Funktionsbeschreibung
Zählfunktion vorwärtszählen
Zählfunktion rückwärtszählen
Zählfunktion setzen
Zählfunktion rücksetzen
Zählfunktion freigeben
3.10 Wortoperationen
Operation
UW
UD
0W
OD
XOW
XOD
Operand
konst
-
Funktionsbeschreibung
UND wortweise
UND doppelwortweise
ODER wortweise
ODER doppelwortweise
Exklusiv-ODER wortweise
Exklusiv-ODER doppelwortweise
Mit einer Wort- bzw. Doppelwortkonstanten
mit dem Inhalt von Akku 2
3.11 Arithmetische Operationen
Operation
==I
<>I
>I
>=I
<I
<=I
==D
<>D
>D
>=D
<D
<=D
==R
<>R
>R
>=R
Operand
Funktionsbeschreibung
Integervergleich GLEICH
Integervergleich UNGLEICH
Integervergleich GRÖSSER
Integervergleich GRÖSSER GLEICH
Integervergleich KLEINER
Integervergleich KLEINER GLEICH
Doppel-Integervergleich GLEICH
Doppel-Integervergleich UNGLEICH
Doppel-Integervergleich GRÖSSER
Doppel-Integervergleich GRÖSSER GLEICH
Doppel-Integervergleich KLEINER
Doppel-Integervergleich KLEINER GLEICH
REAL-Zahl Vergleich GLEICH
REAL-Zahl Vergleich UNGLEICH
REAL-Zahl Vergleich GRÖSSER
REAL-Zahl Vergleich GRÖSSER GLEICH
8
‚
Operation
<R
<=R
SIN
COS
TAN
ASIN
ACOS
ATAN
SQR
SQRT
EXP
LN
+I
-I
*I
/I
+D
-D
*D
/D
+R
-R
*R
/R
MOD
+
+P#
DEC
INC
Operand
konst
konst
Funktionsbeschreibung
REAL-Zahl Vergleich KLEINER
REAL-Zahl Vergleich KLEINER GLEICH
Sinus
Cosinus
Tangens
Arcussinus
Arcuscosinus
Arcustangens
Quadrieren
Wurzel (Radizieren)
Exponent zur Basis e
Natürlicher Logarithmus
Integer Addition
Integer Subtraktion
Integer Multiplikation
Integer Division
Doppel-Integer Addition
Doppel-Integer Subtraktion
Doppel-Integer Multiplikation
Doppel-Integer Division
Realzahl Addition
Realzahl Subtraktion
Realzahl Multiplikation
Realzahl Division
Doppel-Integer Division (Rest)
Addieren einer Konstante
Addieren eines Zeigers
Dekrementieren
Inkrementieren
3.12 Umwandlungsfunktionen
Operation
ITD
ITB
DTB
DTR
BTI
BTD
RND
RND*
RND
TRUNC
INV1
INVD
NEGI
NEGD
NEOR
ABS
Operand
Funktionsbeschreibung
Wandlung NT nach DNT
Wandlung NT nach BCD
Wandlung DNT nach BCD
Wandlung DNT nach REAL
Wandlung BCD nach NT
Wandlung BCD nach DINT
Rundung zur nächsten ganzen Zahl
Rundung zur nächstgrößeren Zahl
Rundung zur nächstkleineren Zahl
ohne Rundung
INT-Einerkomplement
DINT-Einerkomplement
INT-Negation
DINT-Negation
REAL-Negation
REAL-Betragsbildung
9
‚
3.13 Sprungoperationen
Operation
SPA
SPB
SPBB
SPBN
SPBNB
SPBI
SPBIN
SPZ
SPN
SPP
SPPZ
SPM
SPMZ
SPU
SPO
SPS
SPL
LOOP
Operand
Ziel
Ziel
Ziel
Ziel
Ziel
Ziel
Ziel
Ziel
Ziel
Ziel
Ziel
Ziel
Ziel
Ziel
Ziel
Ziel
Ziel
Ziel
Funktionsbeschreibung
Sprung absolut (unbedingt)
Sprung wenn VKE = 1
Sprung wenn VKE = 1 (VKE speichern)
Sprung wenn VKE = 0
Sprung wenn VKE = 0 (VKE speichern)
Sprung wenn BIE = 1
Sprung wenn BIE = 0
Sprung bei Vergleichsergebnis = 0
Sprung bei Vergleichsergebnis != 0
Sprung bei Vergleichsergebnis > 0
Sprung bei Vergleichsergebnis >= 0
Sprung bei Vergleichsergebnis < 0
Sprung bei Vergleichsergebnis <= 0
Sprung bei Vergleichsergebnis ungültig
Sprung bei Overflow
Sprung bei speicherndem Overflow
Sprungverteiler
Schleife
3.14 Aufruf-Operationen
Operation
CALL FB
CALL FC
CALL SFB
CALL SFC
UC FB
CC FB
UC FC
CC FC
BEA
BEB
BE
AUF
Operand
DB
DI
TDB
Funktionsbeschreibung
Sprung zum Funktionsbaustein
Sprung zur Funktion
Sprung zum System-Funktionsbaustein
Sprung zur System-Funktion
Funktionsbaustein absolut aufrufen
Funktionsbaustein bedingt aufrufen
Funktion absolut aufrufen
Funktion bedingt aufrufen
Bausteinende absolut
Bausteinende bedingt
Bausteinende
Datenbaustein öffnen
Instanz-Datenbaustein öffnen
Datenbausteinregister tauschen
3.15 Indirekte Adressierung
Operation
LAR1
LAR2
LAR1
Operand
MD
LD
DBD
DID
-
Funktionsbeschreibung
AR1 laden
AR2 laden
mit Merkerdoppelwort
mit Lokaldatendoppelwort
mit Datenbausteindoppelwort
mit Instanz-Datenbausteindoppelwort
AR1 laden mit Inhalt aus AKKU1
10
‚
Operation
LAR2
LAR1
LAR1
LAR2
TAR1
TAR2
Operand
AR2
P#
P#
MD
LD
DBD
DID
TAR1
TAR2
TAR1
TAR
+AR1
+AR2
+AR1
+AR2
AR2
P#
P#
P#
Funktionsbeschreibung
AR2 laden mit Inhalt aus AKKU1
AR1 laden mit Inhalt aus A2
AR1 laden mit Zeiger
AR2 laden mit Zeiger
Schreibe AR1
Schreibe AR2
in Merkerdoppelwort
in Lokaldatendoppelwort
in Datenbausteindoppelwort
in Instanz-Datenbausteindoppelwort
Schreibe AR1 in AKKU1
Schreibe AR2 in AKKU1
AR1 nach AR2 transferieren
AR1 mit AR2 tauschen
Addiere AKKU1 zu AR1
Addiere AKKU1 zu AR2
Addiere Pointer zu AR1
Addiere Pointer zu AR2
3.16 Sonstige Operationen
Operation
NOP
NOP
BLD
Operand
0
1
konst
Funktionsbeschreibung
Nulloperation
Bildaufbau
11
‚
4.
Aufbau des SPS-Speichers der PCMatic®
®
Der Speicher der PCMatic PLC416 gleicht im Wesentlichen dem Speicher der Siemens-Steuerung
S7-416.
Beachten Sie, dass bei einem Zugriff von Windows-Programmen auf diesen Speicher das
niederwertige mit dem höherwertigen Byte getauscht werden muss.
4.1 Aufbau der Systemdaten PCMatic®
Der Aufbau der Systemdaten in den Systemdatenbausteinen gleicht im Wesentlichen dem Aufbau der
Systemdaten in der Siemens-Steuerung S7-416.
4.2 Integrierte Organisationsbausteine
Die in der folgenden Tabelle aufgeführten Organisationsbausteine werden ausgeführt, sofern sie
programmiert sind:
OB1
Hauptprogramm
OB10 – OB17
Uhrzeitalarm
OB20 – OB23
Verzögerungsalarm
OB30 – OB38
Zeitbausteine (zyklischer Aufruf)
OB80 – OB87
Fehlerbausteine
OB90
Hintergrundbearbeitung
OB100/OB101
Neustart bzw. Wiederanlauf
OB121/OB122
Programmierfehler
4.3 Integrierte Systemfunktionen
®
In der PCMatic sind die für eine Software-SPS relevanten Systemfunktionen (SFC) integriert.
Die folgende Tabelle zeigt (in numerischer Aufzählung) die vorhandenen SFC's.
SFC-Nr
SFC-Name
Kurzbeschreibung
SFC0
SET_CLK
Setzen der Systemzeit
SFC1
READ_CLK
Lesen der Systemzeit
SFC20
BLKMOV
SPS-Variable in Zielbereich kopieren
SFC21
FILL
SPS-Variable in Zielbereich vorbesetzen
SFC22
CREAT_DB
Anlegen von Datenbausteinen
SFC23
DEL_DB
Datenbaustein löschen
SFC24
TEST_DB
Attribute eines Datenbausteins testen
SFC25
COMPRESS
Ladespeicher komprimieren
SFC28
SET_TINT
Stellen eines Uhrzeitalarms
SFC29
CAN_TINT
Uhrzeitalarm anhalten (nicht ausführen)
12
‚
SFC-Nr
SFC-Name
Kurzbeschreibung
SFC30
ACT_TINT
Uhrzeitalarm freigeben
SFC31
QRY_TINT
Status des Uhrzeitalarms
SFC32
SRT_DINT
Starte Verzögerungsalarm
SFC33
CAN_DINT
Unterbreche Verzögerungsalarm
SFC34
QRY_DINT
Statusabfrage des Verzögerungsalarms
SFC39
DIS_IRT
Sperren der Asynchron- und Alarmfehlerbearbeitung
SFC40
EN_IRT
Freigeben der Asynchron- und Alarmfehlerbearbeitung
SFC41
DIS_AIRT
Verzögerung höherpriorer Asynchron- und Alarmfehlerbearbeitung
SFC42
EN_AIRT
Freigabe höherpriorer Asynchron- und Alarmfehlerbearbeitung
SFC43
RE_TRIGR
Nachtriggern des Watchdogs
SFC51
RDSYST
Systemzustand über SZL auslesen
SFC64
TIME_TCK
Timer Tick
4.4 Integrierte Systembausteine
®
In der PCMatic sind die für eine Software-SPS relevanten Systembausteine (SFB) integriert.
Folgende Systembausteine werden unterstützt:
SFB-Nr
SFB-Name
Kurzbeschreibung
SFB0
CTU
Vorwärtszähler (Counter Up)
SFB1
CTD
Rückwärtszähler (Counter Down)
SFB2
CTUD
Vorwärts- und Rückwärtszähler
SFB3
TP
Zeitimpuls
SFB4
TON
Einschaltverzögerung
SFB5
TOF
Ausschaltverzögerung
SFB32
DRUM
Schaltwerk zur Steuerung von Schrittketten
4.5 Remanenz (PCM-210/310)
Bei der PCM-210 und 310 erfolgt die Remanenz über eine integrierte USV. Wenn die
Spannungsversorgung zusammenbricht wird sofort der Akku eingeschaltet. Alle nicht notwendigen
Systeme, wie Feldbusmodul und Statusanzeigen werden abgeschaltet. Ein Spannungsausfall wird
durch die blinkende ‘Fail’-LED angezeigt. In dieser Zeit wird der aktuelle SPS-Zustand (kompletter
SPS-Speicher) auf der Flash-Disk abgelegt. Anschließend schaltet sich die PCMatic selbsttätig ab. Bei
Spannungswiederkehr wird der abgelegte SPS-Speicher wieder ins RAM geladen.
13
‚
5.
PC-Kommunikation
In diesem Kapitel werden die Grundfunktionen erläutert, die es
erlauben, unter dem WINDOS-Betriebssystem des PC in die
PCmatic zu schreiben bzw. von der PCmatic zu lesen.
5.1 Low Level Funktionen
Für die Kommunikation unter Windows steht eine 32-Bit Dynamic Link Library PCM200.DLL
zur Verfügung, die die Funktionen für die Kommunikation mit der PCmatic enthält:
‹ Die Funktionen PEEK/POKE lesen und schreiben die Daten sofort, ohne auf
die Konsistenz der Daten zu achten. Insbesondere funktionieren
PEEK/POKE DB auch, wenn der DB im Moment bearbeitet wird
(aufgeschlagen ist). Falls die Daten unbedingt konsistent bleiben müssen,
muss der Anwender selber einen passenden Verriegelungs-Mechanismus
einbauen.
14
‚
5.2 Übersicht der Funktionalität
FUNKTION
BESCHREIBUNG
Einmalige Übertragung
PEEK BS
Lesen von 1 bis 256 Byte aus den Systemdatenbereich der
PCmatic
POKE BS
Schreiben von 1 bis 256 Byte aus dem Systemdatenbereich der
PCmatic
PEEK DB
Lesen von 1 bis 256 Worte aus einem beliebigen Bereich eines
wählbaren Datenbausteins der SPS.
POKE DB
Schreiben von 1 bis 256 Worte in einen beliebigen Bereich eines
wählbaren Datenbausteins der SPS.
PEEK MERKER
Lesen von 1 bis 256 Merker aus einem beliebigen Merkerbereich.
POKE MERKER
Schreiben von
Merkerbereich.
PEEK PAE
Lesen von 1 bis 512 Byte aus dem Prozessabbild der Eingänge.
POKE PAA
Schreiben von 1 bis 512 Byte in das Prozessabbild der Ausgänge.
SETSTATE
Setzt SPS in RUN/STOP.
GETSTATE
Lesen SPS Zustand RUN/STOP.
RESET
RESET Feldbus.
15
1
bis
256
Merker
in
einen
beliebigen
‚
5.2.1 Installation
Zu der PCM200.DLL gehören folgende Dateien:
KIAT4.DLL
KITHARA.REG
KKRNL.SYS
KKRNL.VXD
Dll für I/O und Speicherzugriffe unter W95/98 und NT
Einträge in Registrierungsdatenbank (über Doppelklick
ausführen)
Systemtreiber für I/O und Speicherzugriffe für NT
muß in das WINNT\SYSTEM32 Verzeichnis
Systemtreiber für I/O und Speicherzugriffe für W95/98
muß in das WINNT\SYSTEM Verzeichnis
5.2.2 Funktionen der DLL
InitPCM(int nPCMNo, DWORD PCM_ADRESS)
Initialisiert den Zugriff auf eine Karte.
nPCMNo
Nummer der PCM Karte (0 bis 3)
PCM_ADRESS
Basisadresse der PCM z. B.D0000
ClosePCM(int nPCMNo)
Lößt die Verbindung zu einer Karte.
nPCMNo
Nummer der PCM Karte (0 bis 3)
SetState(int nPCMNo, short int State, BYTE bKanal)
Setzt den Status einer Karte.
nPCMNo
Nummer der PCM Karte (0 bis 3)
State
Status der Karte 0=Stop, 1=RUN
bKanal
Kanalnummer 1 oder 2
GetState(int nPCMNo, BYTE bKanal)
Gibt den Status einer Karte zurück.
nPCMNo
Nummer der PCM Karte (0 bis 3)
State
Status der Karte 0 = Stop, 1=RUN
bKanal
Kanalnummer 1 oder 2
ResetSPS(int nPCMNo, BYTE bKanal)
Resetet eine Karte.
nPCMNo
Nummer der PCM Karte (0 bis 3)
bKanal
Kanalnummer 1 oder 2
16
‚
PokeDB(int nPCMNo, unsigned short dbNo, unsigned short startWord, unsigned short nofWords,
unsigned short *buffer, BYTE bKanal)
Schreibt Daten in einen Datenbaustein
nPCMNo
Nummer der PCM Karte (0 bis 3)
dbNo
Nummer des Datenbausteins
startWord
Offset in Worten (16Bit) ab dem geschrieben wird
nofWords
Anzahl der Worte, die geschrieben werden
buffer
Zeiger auf den Buffer mit den zu schreibenden Daten
bKanal
Kanalnummer 1 oder 2
PeekDB(int nPCMNo, unsigned short dbNo, unsigned short startWord, unsigned short nofWords,
unsigned short *buffer, BYTE bKanal)
Ließt Daten aus einem Datenbaustein
nPCMNo
Nummer der PCM Karte (0 bis 3)
dbNo
Nummer des Datenbausteins
startWord
Offset in Worten (16Bit) ab dem gelesen wird
nofWords
Anzahl der Worte, die gelesen werden
buffer
Zeiger auf den Buffer in dem die Daten abgelegt werden (IntelFormat)
bKanal
Kanalnummer 1 oder 2
PokePAAByte(int nPCMNo, unsigned short startByte, unsigned short nofBytes, char *buffer, BYTE
bKanal)
Schreibt Daten in den Ausgangsdatenbereich
nPCMNo
Nummer der PCM Karte (0 bis 3)
startByte
Offset in Bytes ab dem geschrieben wird
nofBytes
Anzahl der Bytes, die geschrieben werden
buffer
Zeiger auf den Buffer mit den zu schreibenden Daten
bKanal
Kanalnummer 1 oder 2
PeekPAEByte(int nPCMNo, unsigned short startByte, unsigned short nofBytes, char *buffer, BYTE
bKanal)
Ließt Daten aus dem Eingangsdatenbereich
nPCMNo
Nummer der PCM Karte (0 bis 3)
startByte
Offset in Bytes ab dem gelesen wird
nofBytes
Anzahl der Bytes, die gelesen werden
buffer
Zeiger auf den Buffer in dem die Daten abgelegt werden (IntelFormat)
bKanal
Kanalnummer 1 oder 2
PokeMrkByte(int nPCMNo, unsigned short startByte, unsigned short nofBytes, char *buffer, BYTE
bKanal)
Schreibt Daten in den Merkerdatenbereich
nPCMNo
Nummer der PCM Karte (0 bis 3)
startByte
Offset in Bytes ab dem geschrieben wird
nofBytes
Anzahl der Bytes, die geschrieben werden
buffer
Zeiger auf den Buffer mit den zu schreibenden Daten
bKanal
Kanalnummer 1 oder 2
PeekMrkByte(int nPCMNo, unsigned short startByte, unsigned short nofBytes, char *buffer, BYTE
bKanal)
Ließt Daten aus dem Merkerdatenbereich
nPCMNo
Nummer der PCM Karte (0 bis 3)
startByte
Offset in Bytes ab dem gelesen wird
nofBytes
Anzahl der Bytes, die gelesen werden
buffer
Zeiger auf den Buffer in dem die Daten abgelegt werden (IntelFormat)
bKanal
Kanalnummer 1 oder 2
17
‚
PokeBS(int nPCMNo, unsigned short startByte, unsigned short nofWords, char *buffer, BYTE bKanal)
Schreibt Daten in den Systemdatenbereich
nPCMNo
Nummer der PCM Karte (0 bis 3)
startByte
Offset in Bytes ab dem geschrieben wird
nofWords
Anzahl der Worte (16Bit), die geschrieben werden
buffer
Zeiger auf den Buffer mit den zu schreibenden Daten
bKanal
Kanalnummer 1 oder 2
PeekBS(int nPCMNo, unsigned short startByte, unsigned short nofWords, char *buffer, BYTE bKanal)
Ließt Daten aus dem Systemdatenbereich
nPCMNo
Nummer der PCM Karte (0 bis 3)
startByte
Offset in Bytes ab dem gelesen wird
nofWords
Anzahl der Worte(16Bit), die gelesen werden
buffer
Zeiger auf den Buffer in dem die Daten abgelegt werden (IntelFormat)
bKanal
Kanalnummer 1 oder 2
Alle Funktionen geben einen short int (16Bit) Wert zurück.
Folgende Rückgabewerte sind definiert:
0
1
5
10
15
20
25
SPS in Stop (nur bei GetState())
Kein Fehler bzw. (SPS im RUN bei GetState())
Falsche PCM Nummer (nicht 0 bis 3)
Falsche Parameter (Funktion unterstützt die Parameter nicht)
Checksummenfehler bei der Datenübertragung
TimeOut (Karte antwortet nicht)
Kanalnummer falsch (nicht 1 oder 2)
Über jeden Kanal (1 oder 2) kann mit der Karte kommuniziert werden.
18
‚
6.
Betrieb der PCmatic Karte
6.1 Funktionsbausteine
Nach
der
Installation
Funktionsbausteine:
erscheinen
im
SPS-Bausteinverzeichnis
folgende
zusätzliche
SFB 252 : Abfrage Feldbus-Status
SFB 210 : Steuer-SFB
6.1.1 Abfrage Feldbus-Status
Zur Abfrage des Feldbus Status muss regelmäßig der SFB252 aufgerufen werden (z. B. aus dem
OB1).
Der SFB besitzt folgende Parameter :
Name
Art
Typ
Funktion
RDY
OUT
BOOL
Feldbusmodul ist bereit
RUN
OUT
BOOL
Kommunikation läuft
Der Status-SFB muss mit einem Instanz-Datenbaustein aufgerufen werden:
CALL SFB252, DB252
OUT0:=M10.0
//RDY
OUT1:=M10.1
//RUN
6.1.2 Steuer-SFB
Zum Ausführen von speziellen Funktionen der Feldbusmoduls dient der Steuer-Funktionsbaustein.
Der Steuerbaustein wird folgendermaßen aufgerufen:
AUF
L
L
CALL
DB <Steuerbaustein>
<Parameter>
<Funktionsnummer>
SFB 210
// Wird nicht bei allen Funktionen benötigt
// ACCU2, wird nicht bei allen Funktionen benötigt
// ACCU1, siehe nachfolgende Abschnitte
// Steuerbaustein aufrufen
// ACCU 1 enthält Rückgabeparameter
// ACCU 2 enthält Fehlercode
// VKE ist gesetzt, wenn die Funktion erfolgreich abgeschlossen
// wurde
Der Steuer-SFB benötigt keinen Instanz-Datenbaustein, die Parameterübergabe erfolgt lediglich über
die Register ACCU 1 und ACCU 2.
19
‚
6.1.3 Übersicht der Steuer-SFB Funktionen
Fkt-Nr.
102
125
126
130
131
132
133
134
135
136
137
139
140
141
142
143
Funktionsbeschreibung
Anzahl der digitalen Ein/Ausgänge einstellen
Prozesseingänge lesen
Prozessausgänge schreiben
Lese globale Diagnose-Bits
Lese Busstatus
Lese fehlerhafte Busadresse
Lese Fehlernummer
Lese Status-Bits
Lese Diagnose-Bits
Dualportmemory lesen
Dualportmemory schreiben
Unterdrücken Watchdog
Watchdog triggern
HostFlags lesen
DevFlags lesen
DevFlags schreiben
6.1.3.1 Fkt 102 Anzahl der digitalen Ein-/Ausgänge einstellen
Mit dieser Funktion können Sie die Anzahl der digitalen Ein/Ausgänge einstellen. Voreingestellt sind
®
bei der PCMatic 512 Byte digitale Ein/Ausgänge. Sie können mit dieser Funktion die Anzahl der
digitalen Ein- und Ausgänge auf die erforderliche Anzahl reduzieren. Dies bewirkt eine
®
Beschleunigung der PCMatic .
Falls die Funktion nicht erfolgreich abgeschlossen wurde, ist das VKE nicht gesetzt. Im Accu 2 steht
der Fehlercode:
1 = Anzahl zu groß
Beispiel:
L
50
// Es sind nur 50 digitale E/A’s erforderlich
L
102
// Anzahl der digitalen E/A’s einstellen
CALL
SFB 210
20
‚
6.1.3.2 Fkt 125 Prozesseingänge lesen
Mit dieser Funktion können die Prozesseingänge in einen Datenbaustein geschrieben werden. Hiermit
können alle verfügbaren Peripheriebytes verwaltet werden.
Diese Funktion schreibt asynchron. Bei wortorientierten Eingängen besteht keine Datenkonsistenz
und darf daher nur mit byteorientierten Eingängen benutzt werden.
Beispiel:
AUF
DB70
// Datenbaustein mit den Eingabedaten
L
W#16#0100
// Anfangsadresse der Prozesseingänge
L
125
// Lese Prozesseingänge
CALL
SFB 210
Nach erfolgreichem Abschluss der Funktion steht im Accu 1 und Accu 2 eine 0 und das VKE ist
gesetzt.
Falls die Funktion nicht erfolgreich abgeschlossen wurde, ist das VKE nicht gesetzt. Im Accu 2 steht
der Fehlercode:
1 = Datenbaustein nicht vorhanden
2 = Datenbausteingröße ungleich der Datenbereichsgröße
6.1.3.3 Fkt 126 Prozessausgänge schreiben
Mit dieser Funktion kann ein Datenbaustein in die Prozessausgänge geschrieben werden. Hiermit
können alle verfügbaren Peripheriebytes verwaltet werden.
Diese Funktion schreibt asynchron: Bei wortorientierten Ausgängen besteht keine Datenkonsistenz
und die Funktion darf daher nur byteorientiert benutzt werden.
Beispiel:
AUF
DB70
// Datenbaustein mit den Ausgabedaten
L
W#16#0100
// Anfangsadresse im Prozessausgangsbereich
L
126
// Prozessausgänge schreiben
CALL
SFB 210
Nach erfolgreichem Abschluss der Funktion steht im Accu 1 und Accu 2 eine 0 und das VKE ist
gesetzt. Falls die Funktion nicht erfolgreich abgeschlossen wurde, ist das VKE nicht gesetzt. Im
Accu 2 steht der Fehlercode:
1 = Datenbaustein nicht vorhanden
2 = Datenbaustein passt nicht in den Prozessausgangsbereich
21
‚
6.1.3.4 Fkt 130 Lese globale Diagnosebits
Mit dieser Funktion können die globalen Diagnosebits ausgelesen werden.
Aufbau für ein Profibus-Feldbusmodul:
Bit
0
1
2
3
4
5
6
7
Profibusmeldung
Parameterfehler
Baugruppe wegen Busfehler in Auto_Clear_Modus verzweigt
Mindestens ein Slave ist nicht in der Datentransferphase oder meldet schweren Fehler
Schwerer Busfehler, es ist kein weiterer Datentransfer möglich
Kurzschluss auf dem Bus
Host ist nicht bereit
Reserviert
Reserviert
Aufbau für ein Interbus-Feldbusmodul:
Bit
0
1
2
3
4
5
6
7
Interbusmeldung
Parameterfehler
Systemfehler aufgetreten
mindestens ein Slave meldet Modulfehler
mindestens eine defekte W1-Schnittstelle
mindestens eine defekte W2-Schnittstelle
Reserviert
Reserviert
Reserviert
Beispiel:
L
CALL
T
130
SFB 210
MB 0
// Lese globale Diagnosebits
// Diagnosebits
6.1.3.5 Fkt 131 Lese Busstatus
Mit dieser Funktion kann der Busstatus ausgelesen werden.
Aufbau für ein Interbus-Feldbusmodul:
Bit
Interbusmeldung
0
Bussegmente sind abgeschaltet
1
Reserviert
2
Reserviert
3
Reserviert
4
Reserviert
5
Reserviert
6
Reserviert
7
Reserviert
22
‚
Beispiel:
L
CALL
T
131
SFB 210
MB 2
// Lese Bus-Status
// Bus-Status
6.1.3.6 Fkt 132 Lese fehlerhafte Busadresse
Mit dieser Funktion kann die fehlerhafte Busadresse ausgelesen werden.
Beispiel:
L
CALL
T
132
SFB 210
MB 4
// Lese fehlerhafte Busadresse
// Fehlerhafte Busadresse
6.1.3.7 Fkt 133 Lese Fehlernummer
Mit dieser Funktion kann die Fehlernummer ausgelesen werden.
Beispiel:
L
CALL
T
133
SFB 210
MB 5
// Lese Fehlernummer
// Fehlernummer
Fehlernummern bei InterBus-S wenn Busadresse = 255:
Fehler- Beschreibung
nummer
0
no mistakes appear
Fehlerort
Abhilfe
check warmstart
parameters
DEVICE is not
configured via
PCMCon
contact technical
support
reduce connected
device number
wait until DEVICE
does next ID-Scan
automatically
contact technical
support
wait until DEVICE
does next ID-Scan
automatically
wait until DEVICE
does next ID-Scan
automatically
52
Unknown process data handshake
warmstart
56
no device table found
DEVICE
57
IBS controller is defective and do not respond
DEVICE
102
too many devices are connected to the DEVICE
network
103
configuration has changed during the ID-Scan
network
104
network
105
set up the actual network configuration after the ID-Scan
failed
device which was just scanned produce timeout now
106
Expected device is missing, while setting up the configuration network
23
network
‚
Fehlernummern bei InterBus-S wenn Busadresse = 255:
Fehler- Beschreibung
nummer
107
configuration has changed during runtime, a
running device is not responding any more
108
no connection to the Interbus
Fehlerort
Abhilfe
network
check your network and wait for
the next automatic ID-Scan
check the connection between
DEVICE and first network device
network
220
HOST watchdog failed, timeout occured
HOST
check the HOST program if it is
running and triggering the soft
watchdog
221
HOST program does not acknowledge the
process data indication in time when process
data handshake mode 0 is used
error in iBS controller communication
HOST
check if the HOSt isprogram is fast
enough to acknowledge fast bus
cycles in synchronous mode
contact technical support
224
DEVICE
Fehlernummern bei InterBus-S wenn Busadresse <> 255:
Fehler- Beschreibung
nummer
0
no error event
30
device was missing in the last activated
network scan cycle
Fehlerort
Abhilfe
device /
configuration
check if the configured module is
present in the network or check
wiring
31
device reports other identification code than the device /
configured value
configuration
compare configured identification
code of the module with the real
present one
32
device reports other length code than the
configured value
device /
configuration
33
further device at outgoing interface 1 detected
which are not configured
further device at outgoing interface 2detected
which are not configured
device was missing in the last activated
network scan cycle
device /
configuration
device /
configuration
device /
configuration
36
device reports peripheral error
device
37
device reports reconfiguration request
device
38
device has detected a checksum error while
data transmission
device
40
defective outgoing interface 1 ( local bus
branch or installation branch)
defective outgoing interface 2( remote bus)
device
compare configured length code of
the module with the real present
one
check the real configuration for
these non configured devices
check the real configuration for
these non configured devices
search the whole branch where the
device is located for other
configuration faults
check if the power of the external
pheriphery of this module is
connected or if outputs producing
short circuits
reset the master DEVICE and the
Interbus will be reconfigurated
check surrounding of the device if
some other electrical disturbing
devices can be found
check the wiring of the
corresponding IB interface
check the wiring of the
corresponding IB interface
check surrounding of the device if
some other electrical disturbing
devices can be found
34
35
41
42
device
device has not reported ist ident and length cod network
right in the last made network scan cycle
24
‚
Fehlernummern bei InterBus-S wenn Busadresse <> 255:
Fehler- Beschreibung
nummer
43
device missed during runtime, because of
interrupted Interbus connection
44
45
46
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
the contact to this module was lost, because of
an interrupted network connection in an local
bus branch
in the last made network scan cycle during
runtime, this device was the physically last one
to which the DEVICE could establish the
Interbus scan
the connection was force stopped
double address configured
Fehlerort
Abhilfe
network
check the network wiring between
this device and the physically
present device before
check the network wiring between
this device and the physically
present device before
check the network wiring between
this device and the physically
present device behind
local bus branch
network
HOST program
DEVICE
configuration
device data length faulty
DEVICE
configuration
process data configuration length faulty
DEVICE
configuration
additional table length faulty
DEVICE
configuration
PCP data length faulty
DEVICE
configuration
size of whole data set inconsistent
DEVICE
configuration
additional table inconsistent
DEVICE
configuration
maximum output process data offset
DEVICE
overstepped
configuration
maximum input process data offset
DEVICE
overstepped
configuration
maximum offset adresses overstepped > 255 DEVICE
configuration
module count in comparison to the offsets
DEVICE
inconsistent
configuration
output module number unequal output offset
DEVICE
number
configuration
input module number unequal input offset
DEVICE
number
configuration
real output length unequal to configured
DEVICE
modules length
configuration
real input length unequal to configured modules DEVICE
length
configuration
overlapped output data configured
DEVICE
configuration
overlapped input data configured
DEVICE
configuration
output device has also defined input modules DEVICE
configuration
input device has also defined output modules DEVICE
configuration
output device has also defined input modules DEVICE
configuration
input device has also defined output modules DEVICE
configuration
device is configured to impossible installation DEVICE
depth
configuration
configured ident code not supported by the
DEVICE
DEVICE
configuration
25
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
contact technical support
‚
Fehlernummern bei PROFIBUS-DP:
Fehler- Beschreibung
nummer
0
no mistakes appear
Fehlerort
Abhilfe
contact
technical support
contact
technical support
contact
technical support
contact
technical support
execute download of data base
again
contact
technical support
execute download of data base
again
contact
technical support
check projected addresses
check projected addresses
50
USR_INTF-Task not found
device
51
no global data-field
device
52
FDL-Task not found
device
53
PLC-Task not found
device
54
non existing master parameters
device
55
faulty parameter-value in the master
parameters
non existing slave parameters
project planning
56
57
project planning
63
64
faulty parameter-value in a slave parameters project planning
datafile
double slave address
project planning
projected send process data offset address of a project planning
participant outside the allowable border of 0255
projected receive process data offset address project planning
of a participant outside the allowable border of
0- 255
Data-areas of slaves are overlapping in the
project planning
send process data
Data-areas of slaves are overlapping in the
project planning
receive process data
unknown process data handshake
warm start
free RAM exeeded
device
65
faulty slave parameter data sets
202
no segment for the treatment free
project
planning
device
212
faulty reading of a data base
device
213
structure-surrender to operating system faulty
device
2
station reports overflow
master telegram
3
request function of master is not activated in
the station
no answer-data, although the slave must
reponse with data
master
telegram
slave
17
no response of the station
slave
18
master not into the logical token ring
device
58
59
60
61
62
9
26
check projected addresses
check projected addresses
check projected addresses
check warm start parameters
contact
technical support
contact
technical support
contact
technical support
execute download of data base
again
contact
technical support
check length of configured slave
configuration or parameter data.
check slave if PROFIBUS-DP norm
compatible
check configuration data of the
station and compare it with the
physical I/O data length
check bus cable, check bus
address of slave
check FDL-Address of master or
highest-station-Address of other
master systems. examine bus
cableing to bus short circuits.
‚
6.1.3.8 Fkt 134 Lese Statusbits
Mit dieser Funktion können die Statusbits ausgelesen werden. Im Accu 2 steht vor dem Aufruf die
Bytenummer (0...15). Nach dem Aufruf der Funktion befindet sich im niederwertigen Byte des Accu 1
der Inhalt des angewählten Statusbytes. Wenn ein Bit im Statusbyte ‘1’ ist, ist der entsprechende
Slave aktiv, bei ‘0’ inaktiv.
Beispiel:
L
L
CALL
T
W#16#03
134
SFB 210
MB 6
// Byte Nummer 3
// Lese Statusbyte
// Statusbyte
6.1.3.9 Fkt 135 Lese Diagnosebits
Mit dieser Funktion können die Diagnosebits ausgelesen werden. Im Accu 1 steht vor dem Aufruf die
Bytenummer (0...15). Nach dem Aufruf der Funktion befindet sich im niederwertigen Byte des Accu 1
der Inhalt des angewählten Diagnosebytes. Wenn ein Bit im Statusbyte ‘1’ ist, hat sich der Zustand
des entsprechenden Slaves geändert (von aktiv auf inaktiv oder umgekehrt).
Beispiel:
L
L
CALL
T
W#16#03
135
SFB 210
MB 7
// Byte Nummer 3
// Lese Diagnosebyte
// Diagnosebyte
6.1.3.10 Fkt 136 Dualportmemory lesen
Mit dieser Funktion kann ein Bereich aus dem Dualportmemory der Feldbusmodulsin einen
Datenbaustein geschrieben werden. Es wird grundsätzlich mit dem 1. Byte im Datenbaustein
begonnen. Die Länge des Bereiches steht im Accu 2-L und die relative Adresse im Dualportmemory
im Accu 2-H.
Beispiel:
AUF
L
L
CALL
DB 60
D#16#0100000A
136
SFB 210
// Datenbaustein mit den Eingabedaten
// 10 Bytes von der relativen Adresse 100H kopieren
// Lese Diagnosebyte
// Es werden 10 Bytes von der relativen Adresse 0x100H // in
den Datenbaustein geschrieben.
Nach erfolgreichem Abschluss der Funktion steht im Accu 1 und Accu 2 eine 0 und das VKE ist
gesetzt.
27
‚
Falls die Funktion nicht erfolgreich abgeschlossen wurde, ist das VKE nicht gesetzt. Im Accu 2 steht
der Fehlercode:
1 = Datenbaustein nicht vorhanden
2 = Länge ist zu groß. (Passt nicht ins Dualportmemory)
3 = Länge ist zu groß. (Datenbaustein zu klein)
6.1.3.11 Fkt 137 Dualportmemory schreiben
Mit dieser Funktion kann ein Bereich aus einem Datenbaustein in das Dualportmemory der
Feldbusmodulsgeschrieben werden. Es wird grundsätzlich mit dem 1. Byte im Datenbaustein
begonnen. Die Länge des Bereiches steht im Accu 2-L und die relative Adresse im Dualportmemory
im Accu 2-H.
Beispiel:
AUF
L
L
CALL
DB 60
D#16#0100000A
137
SFB 210
// Datenbaustein mit den Ausgabedaten
// 10 Bytes auf die relativen Adresse 100H kopieren
// Schreibe Dualportmemory
// Es werden 10 Bytes auf die relativen Adresse 0x100H
// im Dualportmemory geschrieben
Nach erfolgreichem Abschluss der Funktion steht im Accu 1 und Accu 2 eine 0 und das VKE ist
gesetzt.
Falls die Funktion nicht erfolgreich abgeschlossen wurde, ist das VKE nicht gesetzt. Im Accu 2 steht
der Fehlercode:
1 = Datenbaustein nicht vorhanden
2 = Länge ist zu groß. (Passt nicht ins Dualportmemory)
6.1.3.12 Fkt 139 Unterdrücken Watchdog
Diese Funktion unterdrückt die komplette Ablaufsteuerung auf der CIF-Karte.
Beispiel:
L
CALL
T
139
SFB 210
MB 5
// Funktionsnummer
// Fehlernummer
28
‚
6.1.3.13 Fkt 140 Watchdog triggern
Diese Funktion ist erforderlich, wenn die Ablaufsteuerung mit der Funktion 139 unterdrückt wurde.
Beispiel:
L
CALL
T
140
SFB 210
MB 5
// Funktionsnummer
// Fehlernummer
6.1.3.14 Fkt 141 Hostflags lesen
Mit dieser Funktion können die Hostflags ausgelesen werden.
Aufbau :
Bit
0
1
2
3
4
5
6
7
Hostflag - Meldung
HostCom: Auftragsbit für HostMailbox
DevAck: Quittungsbit für DevMailbox
PdAck: E/A-Datensynchronisationsbit Host
reserviert
reserviert
Com: Nutzdatentransferphase für mindestens ein Modul aktiv
Run: Parameterdaten gültig, CIF zur Kommunikation bereit
Ready: Gerät läuft, kein Basis-Initialisierungsfehler
Beispiel:
L
CALL
T
141
SFB 210
MB 8
// Lese Host-Flags
// Host-Flags
6.1.3.15 Fkt 142 DevFlags lesen
Mit dieser Funktion können die DevFlags ausgelesen werden.
Aufbau :
Bit
0
1
2
3
4
5
6
7
Deviceflag - Meldung
HostAck: Quittungsbit für HostMailbox
DevCom: Auftragssbit für DevMailbox
PdCom: E/A-Datensynchronisationsbit Dev
reserviert
reserviert
NotReady: Busbetrieb anhalten (Module im Reset) oder freigeben
Init: Zurücksetzen des CIF mit Übernahme der Parameter aus dem DPM
Reset: Zurücksetzen des CIF
29
‚
Beispiel:
L
CALL
T
142
SFB 210
MB 8
// Lese Host-Flags
// Host-Flags
6.1.3.16 Fkt 143 DevFlags schreiben
Mit dieser Funktion können die Deviceflags beschrieben werden.
Aufbau :
Bit
0
1
2
3
4
5
6
7
Deviceflag - Meldung
HostAck: Quittungsbit für HostMailbox
DevCom: Auftragssbit für DeviceMailbox
PdCom: E/A-Datensynchronisationsbit Dev
reserviert
reserviert
NotReady: Busbetrieb anhalten (Module im Reset) oder freigeben
Init: Zurücksetzen des CIF mit Übernahme der Parameter aus dem DPM
Reset: Zurücksetzen des CIF
6.2 Konfiguration des Feldbusmoduls mit dem Systemkonfigurator PCMCon
®
Bevor Sie die Feldbuskomponenten mit der PCMatic ansprechen können, müssen Sie die FeldbusKonfiguration mit dem mitgelieferten Systemkonfigurator PCMCon einstellen. Falls Sie die
voreingestellten Startadressen nicht über die Sondereinstellungen verändert haben, gelten die
nachfolgenden Zuordnungen.
Die Adressen der digitalen Peripherie legen Sie in den Adressbereich von 0..511.
30
‚
7.
ANHANG: PCM Dual-Port-Memory
7.1 Dual-Port-Memory Step5/Step7
7.1.1 Aufbau für Step5/Step7
Basisadresse PCM-Seite B000:0
ISA-Bus (PCM-210): Basisadresse Host-Seite einstellbar C000:0 - DC00:0
PCI-Bus (PCM-310): BAR3 (Änderungen für PCM-310 sind kursiv)
Offset
0 - FA0
FB0
FB1
FB2-FB3
FC0
FA2
FA3
FA4
FA5
FA6
FA7
Funktion
Videospeicher monochrom
Keyboardübertragung ASCII-Zeichen
Keyboardübertragung Scan-Code
Tastaturstatus
Kennung: "PCM200 #6108-02 V1.0 Lenze Digitec Controls GmbH 11.08.1998"
Cursorspalte
Cursorzeile
Laufwerksbuchstabe des gespiegelten Laufwerks (z. B. E, F)
‘R’ = RTTarget; ‘M’ = MS-DOS
´5´ = STEP-5, ´7´ = STEP-7
0-3 für Schalter auf PCM-310
Festplattenspiegelung:
FFA
Anzahl Sektoren (Byte)
FFB-FFE
Start-Sektor Nummer (DWord)
FFF
Status für INT13
(FD=fertig, 0=Input, 1=Output, FE=1 Sek. fertig, aber noch nicht alle)
1000-11FF
0,5 KB Puffer für Sektoren
Visualisierung:
Genaue Beschreibung in DPM_DLL_STEP7.DOC
1200
1201-1202
1203-1204
1205-1206
1207
1208-2207
1. Kanal:
Checksumme (Addition 1201-2207)
DB-Nummer
Start-Wort
Anzahl der Worte
Statusbyte
4096 Byte Puffer
2208
2209-220A
220B-220C
220D-220E
220F
2210-320F
2. Kanal:
Checksumme (Addition 2209-320F)
DB-Nummer
Start-Wort
Anzahl der Worte
Statusbyte
4096 Byte Puffer
3210-3241
3242-36FF
Firmwarename und Pfad z. B. "C:\HOST2.EXE",0
frei (1213 Byte)
3700-3EFF
3800-3FFF
3F00
3FFE
2 KB DPM vom Feldbusmodul (PCM-210)
2 KB DPM vom Feldbusmodul (PCM-310)
Statusregister der PCM-200
Interrupt für Keyboard (FF=Zeichen vorhanden)
31
‚
7.1.2 Kommunikationsbereich für Step5/Step7
Basisadresse ISA: (z. B.) D000:0
Basisadresse PCI wird automatisch vergeben
Einmalige Übertragung Kanal 1
Statusbyte : Offset 1207
Werte: FD-Fertig (OK)
F0-Checksummenfehler
0-Peek DB
2-Peek Systemdaten (nur STEP-5)
4-Peek Merker
6-Peek PAE
8-SetState
0x14-Peek S-Merker
0x0A-Reset Feldbus
0x14-Peek S-Merker (nur STEP-5)
0x0F-SPS-Program beenden
FE-Error (ungültige Parameter)
1-Poke DB
3-Poke Systemdaten (nur STEP-5)
5-Poke Merker
7-Poke PAA
9-GetState
0x15-Poke S-Merker
0x17-Peek PAA
0x15-Poke S-Merker (nur STEP-5)
Peek DB / Poke DB
Offset (Hex)
1200
1201
1203
1205
1207
1208-2207
Bezeichnung
Checksumme (Addition 1201-2207)
DB-Nummer (Wort: 0-4095) (Intel-Format: Lo-Hi)
Start-Wort (Wort: 0-32767) (Intel-Format: Lo-Hi)
Anzahl der Worte - 1 (Wort: 0-2047) (Intel-Format: Lo-Hi)
Statusbyte
4096 Byte Puffer (immer Hi-Lo)
Peek Systemdaten / Poke Systemdaten (nur STEP-5)
Offset (Hex)
1200
1203
1205
1207
1208-2207
Bezeichnung
Checksumme (Addition 1201-2207)
Start-Wort (Byte: 0-255)
Anzahl der Worte - 1 (Byte: 0-127)
Statusbyte
4096 Byte Puffer (immer Hi-Lo)
Peek Merker / Poke Merker
Offset (Hex)
1200
1203
1205
1207
1208-2207
Bezeichnung
Checksumme (Addition 1201-2207)
Start-Merker (Wort: 0-4095)
Anzahl der Bytes - 1 (Wort: 0-4095)
Statusbyte
4096 Byte Puffer (immer Lo-Hi)
32
‚
Peek PAE / Poke PAA / Peek PAA
Offset (Hex)
1200
1203
1205
1207
1208-2207
Bezeichnung
Checksumme (Addition 1201-2207)
Start-Byte (Wort:0-1FFF) (Intel-Format: Lo-Hi)
Anzahl der Bytes - 1 (Wort: 0-3583)
Statusbyte
4096 Byte Puffer (immer Lo-Hi)
SetState / GetState
Offset (Hex)
1205
1207
Bezeichnung
0=Stop
1=Run
Statusbyte (FC – Schalter ist auf Stop)
Reset Feldbus
Offset (Hex)
1207
Bezeichnung
Statusbyte
Peek S-Merker / Poke S-Merker (nur STEP-5)
Offset (Hex)
1200
1203
1205
1207
1208-2207
Bezeichnung
Checksumme (Addition 1201-2207)
Start-Merker (Wort: 0-4095)
Anzahl der Bytes - 1 (Wort: 0-4095)
Statusbyte
4096 Byte Puffer (immer Lo-Hi)
Einmalige Übertragung Kanal 2
Statusbyte : Offset 220F
Werte: FD-Fertig (OK)
F0-Checksummenfehler
0-Peek DB
2-Peek Systemdaten (nur STEP-5)
4-Peek Merker
6-Peek PAE
8-SetState
0x14-Peek S-Merker (nur STEP-5)
0x0A-Reset Feldbus
0x0F-SPS-Program beenden
FE-Error (ungültige Parameter)
1-Poke DB
3-Poke Systemdaten (nur STEP-5)
5-Poke Merker
7-Poke PAA
9-GetState
0x15-Poke S-Merker (nur STEP-5)
0x17-Peek PAA
33
‚
Peek DB / Poke DB
Offset (Hex)
2208
2209
220B
220D
220F
2210-320F
Bezeichnung
Checksumme (Addition 2209-320F)
DB-Nummer (Wort: 0-4095) (Intel-Format: Lo-Hi)
Start-Wort (Wort: 0-32767) (Intel-Format: Lo-Hi)
Anzahl der Worte - 1 (Wort: 0-2047) (Intel-Format: Lo-Hi)
Statusbyte
4096 Byte Puffer (immer Hi-Lo)
Peek Systemdaten / Poke Systemdaten (nur STEP-5)
Offset (Hex)
2208
220B
220D
220F
2210-320F
Bezeichnung
Checksumme (Addition 2209-320F)
Start-Wort (Byte: 0-255)
Anzahl der Worte - 1 (Byte: 0-127)
Statusbyte
4096 Byte Puffer (immer Hi-Lo)
Peek Merker / Poke Merker
Offset (Hex)
2208
220B
220D
220F
2210-320F
Bezeichnung
Checksumme (Addition 2209-320F)
Start-Merker (Wort: 0-4095)
Anzahl der Bytes - 1 (Wort: 0-4095)
Statusbyte
4096 Byte Puffer (immer Lo-Hi)
Peek PAE / Poke PAA / Peek PAA
Offset (Hex)
2208
220B
220D
220F
2210-320F
Bezeichnung
Checksumme (Addition 2209-320F)
Start-Byte (Wort:0-1FFF) (Intel-Format: Lo-Hi)
Anzahl der Bytes - 1 (Wort: 0-3583)
Statusbyte
4096 Byte Puffer (immer Lo-Hi)
SetState / GetState
Offset (Hex)
220D
220F
Bezeichnung
0=Stop
1=Run
Statusbyte (FC – Schalter ist auf Stop)
34
‚
Reset Feldbus
Offset (Hex)
220F
Bezeichnung
Statusbyte
Peek S-Merker / Poke S-Merker (nur STEP-5)
Offset (Hex)
1200
1203
1205
1207
1208-2207
Bezeichnung
Checksumme (Addition 1201-2207)
Start-Merker (Wort: 0-4095)
Anzahl der Bytes - 1 (Wort: 0-4095)
Statusbyte
4096 Byte Puffer (immer Lo-Hi)
35
‚
8.
Technische Daten
Ladespeichergröße
Schnittstellen
Baudrate
Operandenbereich
Datenbausteine
Datenbausteinlänge
SFC
SFB
Remanenz
Netzwerkanbindung
512 KByte
1x MPI (PG-Schnittstelle)
38400 Baud
Eingänge: 0.0 .. 511.7
Ausgänge: 0.0 .. 511.7
M: 0.0 .. 16383.7
T 0..511
Z 0..511
0 ... 4095
65534 Bytes
integriert, siehe Kapitel Operationsvorrat
integriert, siehe Kapitel Operationsvorrat
einstellbar für M, T, Z in der Hardwarekonfiguration
Optional über TCP/IP-Treiber
36

Lenze Digitec Controls GmbH
Grünstr. 36
D-40667 Meerbusch
Germany
Service
¬ Service
+49 (0) 2132 72190
E-Mail
Internet
[email protected]
www.Lenze-Digitec.de
LDCDP-11037
DE 2.0
© 10/2006
TD29 - ID11037
+49 (0) 2132 9904-0
+49 (0) 2132 9904-67
10
9
8
7
6
5
4
3
2
1