P. 1
GFK1503-GE

GFK1503-GE

|Views: 8|Likes:

More info:

Published by: Анѓелковска Марија on Jul 02, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

01/25/2014

pdf

text

original

GE Fanuc Automation

Speicherprogrammierbare Steuerungen

VersaMax SPS

Anwenderhandbuch
GFK-1503-GE Oktober 1998

GFL-002

Die Begriffe Vorsicht, Achtung und Hinweis, wie sie in dieser Publikation verwendet werden
Vorsicht
In dieser Veröffentlichung zeigen VORSICHT-Hinweise an, daß in den beschriebenen Geräten Spannungen, Ströme, Temperaturen oder andere Bedingungen, die körperliche Schäden hervorrufen können, vorkommen. Wo Unaufmerksamkeit körperliche Schäden oder eine Beschädigung des Geräts verursachen können, werden VORSICHT-Hinweise verwendet.

Achtung
ACHTUNG-Hinweise werden dort verwendet, wo das Gerät bei unsachgemäßer Vorgehensweise beschädigt werden könnte.

Hinweis
HINWEISE sollen nur die Aufmerksamkeit des Lesers auf Informationen lenken, die besonders wichtig für Verständnis und Bedienung des Geräts sind. Dieses Dokument stützt sich auf Informationen, die zum Zeitpunkt seiner Veröffentlichung verfügbar waren. Obwohl alle Anstrengungen unternommen wurden, den Inhalt so genau wie möglich zu gestalten, können die hier enthaltenen Informationen nicht den Anspruch erheben, alle Details oder Veränderungen von Software und Hardware abzudecken, oder jede Möglichkeit im Zusammenhang mit Installation, Betrieb oder Wartung zu berücksichtigen. In diesem Dokument können Merkmale beschrieben sein, die nicht in allen Hard- und Softwaresystemen vorhanden sind. GE Fanuc Automation übernimmt keine Verpflichtung, Besitzer dieses Dokuments über nachträglich durchgeführte Änderungen zu informieren. GE Fanuc Automation übernimmt keine Verantwortung für Genauigkeit, Vollständigkeit oder Nützlichkeit der in diesem Dokument enthaltenen Informationen. Folgende Bezeichnungen sind Warenzeichen von GE Fanuc Automation North America, Inc.
Alarm Master CIMPLICITY CIMPLICITY Control CIMPLICITY 90–ADS CIMPLICITY PowerTRAC Field Control Genet Genius Genius PowerTRAC Helpmate Logicmaster Modelmaster Motion Mate PowerMotion ProLoop PROMACRO Series Five Series 90 Series One Series Six Series Three VuMaster VersaMax Workmaster

© Copyright 1998 GE Fanuc Automation North America, Inc. Alle Rechte vorbehalten.

Inhalt

Kapitel 1

Einleitung
Die VersaMax™ SPS CPU-Eigenschaften

1-1
1-3 1-4

Kapitel 2 Kapitel 3

CPU-Module Installation
Installation der CPU Installation der Stromversorgung Installation zusätzlicher Module Pufferbatterie aktivieren oder auswechseln Serielle Schnittstellenanschlüsse für CPU001 Installationsanforderungen für CE-Zeichen

2-1 3-1
3-2 3-5 3-6 3-7 3-8 3-14

Kapitel 4 Kapitel 5

Konfiguration CPU-Arbeitsweise
Komponenten des CPU-Zyklus Standardzyklusbetrieb der CPU Betrieb mit konstanter Zyklusdauer CPU STOP-Betriebsarten Programmausführung steuern Privilegebenen und Passworte Arbeitsweise des RUN/STOP-Betriebsartenumschalters

4-1 5-1
5-2 5-4 5-5 5-6 5-7 5-8 5-9

Kapitel 6

Elemente eines Anwenderprogramms
Struktur eines Anwenderprogramms Unterprogramme Programmsprachen Der Befehlssatz

6-1
6-2 6-3 6-5 6-7

Kapitel 7

Programmdaten
Datenspeicheradressen Datenremanenz Verwendung symbolischer Adressen und Beschreibungen für Programmreferenzen System-Statusreferenzen Wie Programmfunktionen numerische Daten behandeln Zeitkontakte

7-1
7-2 7-5 7-6 7-7 7-11 7-14
iii

GFK-1503-GE

Inhalt

Kapitel 8

Die Bedienanforderungsfunktion

8-1

SVCREQ Funktionsnummern 8-2 Format der SVCREQ-Funktion 8-3 SVCREQ 1: Timer für konstante Zyklusdauer verändern/lesen 8-5 SVCREQ 2: Fensterzeiten lesen 8-7 SVCREQ 3: Betriebsart des Programmiergeräte-Kommunikationsfenster wechseln 8-8 SVCREQ 4: Betriebsart des System-Kommunikationsfensters wechseln 8-9 SVCREQ 6: Anzahl der Worte für Prüfsumme verändern/lesen 8-10 SVCREQ 7: Zeituhr lesen oder einstellen 8-12 SVCREQ 8: Watchdog-Zeitgeber rücksetzen 8-16 SVCREQ 9: Zyklusdauer seit Zyklusbeginn lesen 8-17 SVCREQ 10: Ordnername lesen 8-18 SVCREQ 11: SPS ID lesen 8-19 SVCREQ 13: SPS abschalten (Stop) 8-20 SVCREQ 14: Fehler löschen 8-21 SVCREQ 15: Zuletzt eingetragenen Fehlertabelleneintrag lesen 8-22 SVCREQ 16: Betriebszeituhr lesen 8-24 SVCREQ 18: E/A-OVERRIDE-Zustand lesen 8-25 SVCREQ 23: Hauptprüfsumme lesen 8-26 SVCREQ 26/30: E/A abfragen 8-27 SVCREQ 29: Verstrichene Stromausfallzeit lesen 8-28

Kapitel 9

Serielles E/A / SNP / RTU Protokolls

9-1

Format der Kommunikationsanforderungsfunktion 9-2 Konfiguration der seriellen Schnittstellen mit der COMMREQ-Funktion 9-4 Aufruf serieller E/A COMMREQs aus dem SPS-Zyklus 9-10 COMMREQ-Befehle für serielle E/A 9-13

Kapitel 10

Die PID-Funktion
Format der PID-Funktion Arbeitsweise der PID-Funktion Parameterblock für die PID-Funktion Einstellung von PID-Algorithmen (PIDISA oder PIDIND) und Verstärkungen Festlegen der Prozesseigenschaften Einstellen der Parameter und Abgleich der Schleifenverstärkungen Beispiel eines PID-Aufrufs

10-1
10-2 10-4 10-6 10-10 10-14 10-15 10-17

Anhang A

Befehlsausführungszeiten

A-1

iv

VersaMax SPS Anwenderhandbuch–Oktober 1998

GFK-1503-GE

Kapitel

Einleitung

1
Führer durch die VersaMax Dokumentation
Dieses Handbuch enthält allgemeine Informationen zur Arbeitsweise der CPU und zum Programminhalt. Es liefert auch ausführliche Beschreibungen spezifischer Anforderungen an die Programmierung. CPU-Module werden ausführlich in Kapitel 2 beschrieben. CPU-Installationsprozeduren werden in Kapitel 3 beschrieben. Dieses Kapitel erläutert auch Ausbau und Austausch der Batterie und den seriellen Schnittstellenanschluß. Die Konfiguration wird in Kapitel 4 beschrieben. Mit der Konfiguration werden bestimmte Eigenschaften der Modul-Arbeitsweise bestimmt und auch die von den einzelnen Modulen im System benutzten Programmreferenzen festgelegt. Die restlichen Kapitel erläutern die Arbeitsweise der CPU und die Programmiereigenschaften. n CPU-Zyklus: Kapitel 5 n Elemente eines Anwenderprogramms: Kapitel 6 n Programmdaten: Kapitel 7 n Die Service Request-Funktion: Kapitel 8 n Serielle E/A / SNP / RTU: Kapitel 9 n Die PID-Funktion: Kapitel 10 Die Anhänge zu diesem Handbuch enthalten ausführliche Referenzinformationen.

GFK-1503-GE

1-1

1 Weitere VersaMax Handbücher
VersaMax Module, Stromversorgungen und Träger, Anwenderhandbuch (Bestellnummer GFK-1504) VersaMax Profibus NIU Anwenderhandbuch (Bestellnummer GFK-1534) VersaMax Genius NIU Anwenderhandbuch (Bestellnummer GFK-1535) Beschreibt die zahlreichen VersaMax E/A- und Zusatzmodule, Stromversorgungen und Baugruppenträger. Jedes Kapitel beschreibt die Module eines bestimmten Typs. Darüber hinaus enthält dieses Handbuch ausführliche Installationsanleitungen. Beschreibt Installation und Arbeitsweise der Profibus NIU. Es beschreibt auch die Arbeitsweise von Modulen, die es nur in einem NIU-System gibt. Beschreibt Installation und Arbeitsweise der Genius NIU. Es beschreibt auch die Arbeitsweise von Modulen, die es nur in einem NIU-System gibt.

1-2

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

1

Die VersaMax™ SPS
Die VersaMax™ SPS ist eine kompakt aufgebaute SPS zur Montage ohne Chassis auf einer Profilschiene. Die mit einem leistungsfähigen Befehlssatz und erweiterten Funktionen ausgestattete CPU kann bis zu 8 E/A- und Zusatzmodule bedienen, wodurch sich insgesamt 256 lokale E/A-Punkte ergeben. Das lokale System kann bis zu 8 Module enthalten, die über eine auf der CPU angebrachte Stromversorgung gespeist werden. Für Module mit hohem Stromverbrauch können weitere Stromversorgungen in das System eingebracht werden. Die E/A-Module werden auf einzelne “Träger“ montiert. Diese Träger werden dann auf die Profilschiene aufgesetzt und liefern dem Modul Rückwandplatinen-Kommunikation und Anschlußklemmen. Eine Vielfalt von Trägertypen erlaubt Flexibilität bei Montage und Prozeßanschluß. Die Abbildung unten zeigt ein lokales System mit 6 E/A-Modulen. Wie die Abbildung zeigt, können diese Module auf eine beliebige Kombination von Trägertypen montiert werden. Bei Trägern mit Steckverbindern werden die Module senkrecht zur Profilschiene montiert. Träger mit Steckverbindern besitzen einen 32-poligen Steckverbinder zum Anschluß eines E/A-Kabels. Die eigentlichen Anschlußklemmen für diese Träger befinden sich auf speziellen Koppelklemmenelementen (nicht dargestellt). Bei Trägern mit Anschlußklemmen werden die Module parallel zur Profilschiene montiert. Träger mit Anschlußklemmen besitzen 32 Schraubklemmen zum direkten Anschluß der Prozeßverdrahtung. Werden zusätzliche Klemmen benötigt, können weitere E/A-Zusatzklemmen hinzugefügt werden. Die nachstehende Abbildung zeigt eines dieser Zusatzklemmenelemente.
CPU-Modul mit Stromversorgung Zusatz-Stromversorgung (Option)

VersaMax ist für industrielle und kommerzielle Automatisierung ausgelegt und erfüllt die Forderungen von UL, CUL, CE, Class1 Zone 2 und Class I Division 2. Die automatische Konfiguration beim Einschalten legt die Adressierung der Module im System automatisch fest. Die Module besitzen einen StandardFunktionssatz, der für einen weiten Anwendungsbereich geeignet ist.
GFK-1503-GE Kapitel 1 Einleitung 1-3

1

CPU-Eigenschaften
Die VersaMax CPU bietet einen umfangreichen Befehlssatz, der die Programmierung im Kontaktplan- und Ablaufsprachenformat (SFC) gestattet. Die Programme können Gleitpunktfunktionen (REAL) enthalten. Die CPU mit zwei seriellen Schnittstellen (IC200CPU001) bietet eine leistungsfähige SPS-Funktionalität in einem kleinen und vielseitigen System. Die CPU001 arbeitet als Systemsteuerung für bis zu 8 Module mit maximal 256 E/A-Punkten. Die CPU besitzt zwei serielle Schnittstellen für RS232und RS485-Kommunikation. Beide Schnittstellen können über die Software für den Betrieb als SNP-Slave oder RTU-Slave konfiguriert werden. 2-Drahtund 4-Draht-RTU wird unterstützt. Darüberhinaus gestatten es die seriellen E/A-Funktionen der CPU, daß ein Anwenderprogramm die Lese/SchreibAktivitäten einer Schnittstelle steuern kann, so daß die meisten seriellen Protokolle implementiert werden können.

Programmspeicher
Anwenderprogramme werden mit der Programmiersoftware erstellt und zur SPS übertragen. Programme werden im batteriegepufferten Speicher der CPU abgelegt. Die CPU001 besitzt 12 kB zur Speicherung der Anwenderprogramme.

Unterprogramm
Das Programm kann entweder aus einem Hauptprogramm bestehen, das bei jedem CPU-Zyklus vollständig bearbeitet wird, oder aber in Unterprogramme aufgeteilt sein. Bei der CPU001 ist die maximale Größe eines Hauptprogramms oder eines Unterprogrammblocks auf 12kB beschränkt. Unterprogramme können die Programmierung vereinfachen und die Menge der insgesamt benötigten Logik verringern. Die einzelnen Unterprogramme können entsprechend den Anforderungen aufgerufen werden. Unterprogrammblöcke können von der Programmiersoftware zur Erstellung unterschiedlicher Programmsicherheitsebenen gesperrt oder freigegeben werden. Es gibt vier verschiedene Sperrebenen.

System-Statusreferenzen
Die VersaMax CPU bietet einen vollständigen Satz System-Statusreferenzen. Die CPU aktualisiert diese vordefinierten und benannten Speicherplätze automatisch mit Statusinformationen. Die Programmlogik kann bei Bedarf darauf zugreifen, um Zustandsänderungen des Systems abzuprüfen und darauf zu reagieren. Zu den speziellen Statusreferenzen gehören die Zeitreferenzen T_10MS, T_100MS, T_SEC und T_MIN, sowie Funktionsreferenzen wie FST_SCN (erster Zyklus), ALW_ON (immer EIN) oder ALW_OFF (immer AUS).
1-4 VersaMax SPS Anwenderhandbuch – Oktober 1998 GFK-1503-GE

1 Befehlssatz
Der Befehlssatz der VersaMax CPU beinhaltet alle von den anderen SPSSystemen von GE Fanuc (wie Series 90-30 und Series 90-70) bekannten Funktionen. Vollständige Referenzinformationen finden Sie in der Dokumentation und Online-Hilfe zur Programmiersoftware.
Kontakte Schließer Öffner Spulen Schließer Negierte positive & negative Transition SET / RESET SET remanent / RESET remanent Negiert remanent / remanent Arithmetische Funktionen Addition / Subtraktion / Multiplikation / Division Modulo Division Trigonometrische Funktionen: Sinus, Kosinus, Tangens, Arkussinus, Arkuskosinus, Arkustangens Umwandlung in Grad / Umwandlung in Radiant Quadratwurzel dekadischer Logarithmus /natürlicher Logarithmus natürliche Exponentialfunktion Bitoperationen Logisch UND / ODER / Antivalenz / NICHT Nach links verschieben / nach rechts verschieben Nach links rotieren / nach rechts rotieren Bit testen / Bit auf 1 setzen / Bit auf 0 setzen / Bitposition Vergleich mit Maske

Timer und Zähler Einschaltverzögerung Stoppuhr Abschaltverzögerung Einschaltverzögerung Aufwärtszähler Abwärtszähler

Relationale Funktionen Gleich Ungleich Größer als Größer als oder gleich Kleiner als Kleiner als oder gleich Bereich Datenkopierfunktionen Kopieren Block kopieren Block löschen Schieberegister Bitfolgesteuerung Kommunikationsanforderung Umwandlungsfunktionen Wandle ganze Zahl in BCD-4 Wandle reelle Zahl in Wort Wandle BCD-4 oder reelle Zahl in ganze Zahl Wandle BCD-4 oder reelle Zahl in doppeltgenaue ganze Zahl Wandle ganze Zahl, doppeltgenaue ganze Zahl, BCD-4 oder Wort in reelle Zahl Reelle Zahl auf ganze Zahl abschneiden Reelle Zahl auf doppeltgenaue ganze Zahl abschneiden

Tabellenfunktionen Feld kopieren Suchen: gleich / ungleich / größer als / größer als oder gleich /kleiner als /kleiner als oder gleich

Steuerfunktionen Unterprogrammaufruf E/A aktualisieren Unabhängiger PID-Algorithmus ISA-PID-Algorithmus Programmende Kommentar Bedienanforderung Geschachteltes Hauptsteuerrelais Sprung

GFK-1503-GE

Kapitel 1 Einleitung

1-5

1 SVCREQ- Funktionen
Die Service Request-Funktion des VersaMax-Befehlssatzes ist ein mächtiges Kommunikationswerkzeug, mit dem aus dem Anwenderprogramm heraus spezielle Daten zum Systembetrieb gelesen oder bestimmte Operationen verändert werden können. Mit Bedienanforderungen kann das Anwenderprogramm: n Timer für konstante Zyklusdauer verändern/lesen. n Fensterzeiten lesen. n Betriebsart und Zeit des ProgrammiergeräteKommunikationsfensters verändern. n Betriebsart und Zeit des System-Kommunikationsfensters verändern. n Zustand und Anzahl der eingeschlossenen Worte der Prüfsummenfunktion lesen/verändern. n Uhrzeit verändern/lesen. n Watchdog rücksetzen. n Seit Zyklusbeginn verstrichene Zykluszeit lesen. n Ordnernamen lesen. n SPS-Kennung lesen. n RUN-Zustand der SPS lesen. n SPS abschalten. n Fehlertabellen löschen. n Zuletzt eingetragenen Fehlertabelleneintrag lesen. n Betriebszeituhr lesen. n E/A-OVERRIDE-Status lesen. n Hauptprüfsumme lesen. n E/A abfragen. n Verstrichene Stromausfallzeit lesen.

1-6

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

1 Serielle E/A
Die serielle E/A ist eine weitere leistungsfähige Funktion, die in einem Anwenderprogramm zur direkten Steuerung der Schreib-/Leseaktivitäten eines CPU-Schnittstellen aus dem Anwenderprogramm heraus verwendet werden kann. Mit dieser Funktion können die meisten seriellen Protokolle implementiert werden. Die serielle E/A kann zu folgenden Zwecken verwendet werden: n Schnittstelle initialisieren. n Größe des Empfangsdatenpuffers einstellen. n Empfangsdatenpuffer leeren. n Schnittstellenstatus lesen. n RTS an serieller Schnittstelle aktivieren / deaktivieren n Eine Operation abbrechen. n Automatische Modemwahl und Absenden einer festgelegten Bytefolge. n Bis zu 250 Zeichen aus dem Wortspeicher zu einem dezentralen Gerät über den angegebenen Schnittstelle senden. n Ein oder mehrere empfangene Zeichen aus einem internen Eingangspuffer lesen.

GFK-1503-GE

Kapitel 1 Einleitung

1-7

Kapitel

CPU-Module

2
Dieses Kapitel beschreibt Erscheinungsbild, Eigenschaften und Funktionalität der CPU-Module der VersaMax SPS.

n

IC200CPU001 CPU mit zwei seriellen Schnittstellen

GFK-1503-GE

2-1

2
IC200CPU001 CPU mit zwei seriellen Schnittstellen
Die CPU mit zwei seriellen Schnittstellen (IC200CPU001) bietet leistungsstarke SPS-Funktionalität in einem kleinen und vielseitigen System. CPU001 arbeitet als Systemsteuerung für bis zu 8 Module mit maximal 256 lokalen E/A-Punkten. Die CPU besitzt zwei serielle Schnittstellen (Schnittstelle 1 (RS-232) und Schnittstelle 2 (RS-485)).
CPU001
PWR OK RUN FAULT FORCE PORT 1 PORT 2

IC200CPU001
PORT 1

RS232 PORT 2

CPU 12K BYTES USER PROG

IND CONT EQ FOR HAZ LOC CLASS I DIV 2 GROUPS ABCD Temp Code T4A Ambient 60C CLASS I ZONE 2 GROUP IIC T4A CLASS I ZONE 2 Ex nA IIC T4A 0C Ta 60C Ex nV II T4 Demko MADE IN USA RS485

Eigenschaften
n n n

n n n n n

12 k batteriegepufferter RAM für Anwenderprogramme Nichtflüchtige Flash Memory zur Programmspeicherung Programmierung in Kontaktplanprogramm, Ablaufsprache (SFC) oder Anweisungsliste Batteriepufferung für Programm, Daten und Zeituhr RUN/STOP-Schalter Gleitpunkt-Arithmetikfunktionen (reelle Zahlen) Integrierte RS-232- und RS-485-Kommunikation. 70 mm Montagehöhe auf Profilschiene mit Stromversorgung

2-2

VersaMax SPS Anwenderhandbuch Oktober 1998

GFK-1503-GE

2
IC200CPU001 CPU mit zwei seriellen Schnittstellen

Moduldaten
Größe Programmspeicherung Gleitpunktarithmetik Kommunikation Umgebungsbedingungen Boolesche Bearbeitungsgeschwindigkeit Genauigkeit der Echtzeituhr (für Timerfunktionen) Uhrzeitgenauigkeit 66,8 mm (2,63”) x 128 mm (5,04”) System-Flash, batteriegepufferter RAM Ja RS-232, RS-485 Siehe VersaMax Module, Stromversorgungen und Träger, Anwenderhandbuch (GFK-1504). 1,8 ms/k (typisch) 100 ppm (0,01%) oder +/- 9 s/Tag

23 ppm (0,0023%) oder +/- 2 s/Tag bei 30°C. 100 ppm (0.01%) oder +/- 9 s/Tag bei vollem Temperaturbereich

Betriebsartenschalter
Die CPU-Module besitzen einen Schalter, über den die SPS in den STOPoder RUN-Modus geschaltet werden kann. Über den gleichen Schalter kann auch ein unbeabsichtigtes Schreiben in den CPU-Speicher sowie Fixieren oder Überspeichern von diskreten Daten gesperrt werden. Der Einsatz dieser Eigenschaft ist konfigurierbar. In der Standardkonfiguration sind die Einstellung von RUN/STOP-Modus freigegeben und der Speicherschutz deaktiviert.

RUN/ON

STOP/OFF

GFK-1503-GE

Kapitel 2 CPU-Module

2-3

2
IC200CPU001 CPU mit zwei seriellen Schnittstellen

LEDs
Sieben durch die Modulklappe sichtbare LEDs geben an, ob Spannung anliegt und zeigen Betriebsart und Diagnosezustand der CPU, Fehler, Fixierungen und Kommunikation an den beiden Modulschnittstellen an.
PWR OK RUN FAULT FORCE PORT 1 PORT 2

POWER

OK

RUN

FAULT

FORCE PORT 1 PORT 2

EIN, wenn die CPU von der Stromversorgung mit 5 V versorgt wird. Diese LED zeigt nicht den Zustand des 3,3-V-Spannungsausgangs an. EIN: Die CPU hat die Einschalt-Diagnoseroutine fehlerfrei durchlaufen und arbeitet ordnungsgemäß. AUS: Es liegt ein CPUProblem vor. Schnelles Blinken: Die CPU durchläuft die EinschaltDiagnoseroutine. Langsames Blinken: Die CPU konfiguriert die E/A-Module. Gleichzeitiges Blinken dieser LED und der grünen RUN-LED: Die CPU ist im Bootmodus und wartet auf die Firmwareaktualisierung über Schnittstelle 1. Grün: Die CPU ist im RUN-Modus. Gelb: Die CPU ist im Modus "STOP mit E/A-Aktualisierung". Diese LED ist AUS, die LED OK ist EIN: Die CPU ist im Modus "STOP ohne E/A-Aktualisierung". LED blinkt grün und LED FAULT ist EIN: Modulschalter wurde von STOP auf RUN umgeschaltet, während ein fataler Fehler bestand. Beim Umschalten wird RUN-Modus fortgesetzt. EIN: Die CPU ist im Modus STOP/Störung, da ein fataler Fehler aufgetreten ist. Zum Löschen dieser LED müssen E/A-Fehlertabelle und SPS-Fehlertabelle gelöscht werden. Diese LED blinkt und die LED OK ist AUS: Bei der SPS-Einschalt-Diagnoseroutine wurde ein fataler Fehler erkannt. Mit SPS-Vor-Ort-Service Kontakt aufnehmen. EIN: Bei einer Bitadresse ist ein OVERRIDE-Zustand aktiv. Blinken: An der betreffenden Schnittstelle laufen Aktivitäten.

2-4

VersaMax SPS Anwenderhandbuch Oktober 1998

GFK-1503-GE

2
IC200CPU001 CPU mit zwei seriellen Schnittstellen

Serielle CPU-Schnittstellen
PORT 1

1 5
RS232 PORT 2

Die beiden seriellen Schnittstellen der CPU können über die Software für den Betrieb als SNP-Slave oder RTUSlave konfiguriert werden. Es wird 2-Draht- und 4-DrahtRTU unterstützt. Eine für RTU benutzte Schnittstelle schaltet bei Bedarf automatisch auf SNP-Slavemodus um. Beide Schnittstellen stellen sich in der Standardeinstellung auf SNP-Slave ein und beide Schnittstellen gehen automatisch auf SNP-Slave zurück, wenn sich die CPU im STOP-Modus befindet und serielle E/A konfiguriert ist. Jede Schnittstelle kann über die Software so konfiguriert werden, daß er den Datenverkehr zwischen der CPU und unterschiedlichen seriellen Geräten aufbaut. Ein externes Gerät kann über Schnittstelle 2 mit Spannung versorgt werden (max. 100 mA bei 5 VDC).

1

8
RS485

Leitungslängen und Übertragungsgeschwindigkeiten
Die maximalen Leitungslängen zwischen CPU und letztem angeschlossenen Gerät betragen: Schnittstelle 1 (RS-232) = 15 m

Schnittstelle 2 (RS-485) = 1200 m Beide Schnittstellen unterstützen konfigurierbare Übertragungsgeschwindigkeiten zwischen 4,8 und 38,4 kBd.

GFK-1503-GE

Kapitel 2 CPU-Module

2-5

2
IC200CPU001 CPU mit zwei seriellen Schnittstellen

Schnittstelle 1
Schnittstelle 1 ist eine RS-232-Schnittstelle mit einer 9-poligen Sub DBuchse. Er wird als Bootlader zum Hochrüsten der CPU-Firmware verwendet. Der Kabelschirm ist am Steckergehäuse aufgelegt. Durch die Anschlußbelegung von Schnittstelle 1 kann der Anschluß an eine StandardAT-RS-232-Schnittstelle über ein 1:1-durchverbundenes Kabel erfolgen.
Pin 1 2 3 4 5 6 7 8 9 Gehäuse Signal offen TXD RXD offen GND offen CTS RTS offen SHLD -Anschluß Kabelschirmdraht / Schirmanschluß bei 100% (durchgängig) geschirmtem Kabel Eingang Ausgang Clear to Send-Eingang Request to Send-Ausgang -0 V/Massebezugspunkt Ausgang Eingang Transmit Data-Ausgang Receive Data-Eingang Richtung Funktion

2-6

VersaMax SPS Anwenderhandbuch Oktober 1998

GFK-1503-GE

2 Schnittstelle 2
Schnittstelle 2 ist eine RS-485-Schnittstelle mit einer 15-poligen Sub DBuchse. Er kann direkt an einen Schnittstellenwandler RS-485/RS-232 (IC690ACC901) angeschlossen werden.
Pin 1 2, 3, 4 5 6 7 8 9 10 11 12 13 14 15 Gehäuse Signal SHLD offen P5V RTSA GND CTSB' RT RDA' RDB' SDA SDB RTSB CTSA' SHLD Richtung -Ausgang Ausgang -Eingang -Eingang Eingang Ausgang Ausgang Ausgang Eingang -Funktion Anschluß Schirm-Erdungsdraht +5,1 VDC zur Versorgung externer Geräte (max. 100 mA) Request to Send (A) -Ausgang Massebezugssignal Clear to Send (B) -Eingang Widerstandsabschluß (120 Ohm) für RDA' Receive Data (A) -Eingang Receive Data (B) -Eingang Transmit Data (A) -Ausgang Transmit Data (B) -Ausgang Request to Send (B) -Ausgang Clear to Send (A) -Eingang Anschluß Kabelschirmdraht / Schirmanschluß bei 100% (durchgängig) geschirmtem Kabel

GFK-1503-GE

Kapitel 2 CPU-Module

2-7

Kapitel

Installation

3
In diesem Kapitel wird die Installation der CPU erläutert. Installation der CPU n Installation der Stromversorgung n Installation zusätzlicher Module n Pufferbatterie aktivieren oder auswechseln n Serielle Schnittstellenanschlüsse für CPU001 n Installationsanforderungen für CE-Zeichen n System-Installationsanleitungen mit Richtlinien zur Installation von Träger, Stromversorgung und Modulen sowie Angaben zu Prozeßverdrahtung und Erdung finden Sie in VersaMax Module, Stromversorgungen und Träger, Anwenderhandbuch, GFK-1504.

GFK-1503-GE

3-1

3

Installation der CPU
Über und unter den Geräten ist ein Freiraum von 5,1 cm, nach links ein Freiraum von 2,5 cm erforderlich. Weitere erforderliche Abstände zeigt die nachstehende Abbildung. Die Module müssen auf eine horizontal verlegte Profilschiene montiert werden.

1

2
133,35 mm (5.25 in)

66,80 mm (2.63 in)

3
1 2 3 Ausreichend Freiraum für Finger zum Öffnen der CPU-Klappe berücksichtigen. Ausreichend Freiraum für den Anschluß der seriellen Schnittstellenkabel berücksichtigen. Ausreichend Platz für Stromversorgungsanschlüsse berücksichtigen.

3-2

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

3 Installation der CPU auf der Profilschiene
Die CPU und alle Träger müssen auf einem einzigen Abschnitt einer Profilschiene mit den Abmessungen 7,5 mm x 35 mm befestigt werden. Um den EMV-Schutz zu gewährleisten, muß die Profilschiene elektrisch geerdet sein. Die Profilschiene muß eine leitende (unlackierte) korrosionsbeständige Oberfläche aufweisen. Es sollten vorzugsweise Profilschiene eingesetzt werden, die DIN EN50032 entsprechen. Um Vibrationen widerstehen zu können, sollte die Profilschiene auf einer Schalttafel mit Schrauben befestigt werden, die im Abstand von jeweils etwa 5 cm gesetzt werden. An den beiden Enden der Profilschiene können auch Profilschienenklammern (Bestellnummer IC200ACC313) angebracht werden, die die Module in ihrer Lage fixieren. Bei Anwendungen, bei denen höchste Widerstandsfähigkeit gegen mechanische Schwingungen und Stöße gefordert wird, sollten die CPU und die auf der Profilschiene montierten Träger ebenfalls an der Schalttafel befestigt werden. Zum Anreißen der Montagelöcher auf der Schalttafel können entweder der Träger als Schablone benutzt oder die in VersaMax Module, Stromversorgungen und Träger, Anwenderhandbuch (GFK-1504) enthaltenen Maßangaben befolgt werden. Befestigungslöcher vorbohren und CPU und Träger mit Schrauben M3,5 befestigen. Die Basis rastet einfach in die Profilschiene ein. Zur Montage oder Erdung an der Profilschiene werden keine Werkzeuge benötigt.

CPU von Profilschiene abnehmen
1. Spannungszufuhr zur Stromversorgung abschalten. 2. (Prüfen, ob die CPU an der Schalttafel angeschraubt ist) Stromversorgungsmodul entfernen. Befestigungsschraube entfernen. 3. CPU von den anderen Modulen auf der Profilschiene wegschieben, bis sich die Steckverbindung gelöst hat. 4. Mit einem kleinen Klingen-Schraubendreher die Verriegelungsfahne nach außen ziehen und dabei das andere Ende des Moduls nach unten kippen, um das Modul aus der Profilschiene zu lösen.

GFK-1503-GE

Kapitel 3 Installation

3-3

3

Schalttafelmontage
Um höchste Widerstandsfähigkeit gegen mechanische Schwingungen und Stöße zu erzielen, müssen die auf der Profilschiene montierten Module ebenfalls an der Schalttafel befestigt werden. Mit dem Modul als Schablone die Lage des Befestigungslochs auf der Schalttafel anreißen. Loch in die Schalttafel bohren und das Modul mit einer Schraube M3,5 befestigen.

Anm. 1: Anm. 2:

Bei allen Abmessungen betragen die Toleranzen +/- 0,13 mm (keine Summentoleranz). Die Stahlschrauben M3,5 sollten mit einem Drehmoment von 1,1-1,4 Nm in Material mit Innengewinde und einer Materialstärke von mindestens 2,4 mm eingedreht werden.
siehe Anm. 2.

4,3 mm (0.170 in)

M3.5 (#6) Schraube Sprengring Unterlegscheibe

4,3 mm (0.170 in) 5,1 mm (0.200 in)

15,9 mm (0.62 in)

Gewindeloch in Schalttafel

CPU

3-4

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

3

Installation der Stromversorgung
1. Das Stromversorgungsmodul wird direkt auf der CPU installiert. Der Verriegelungshebel auf der Stromversorgung muß offen sein. 2. Steckverbinder und Einraststift ausrichten und Stromversorgung fest nach unten drücken, bis die beiden Fahnen unten an der Stromversorgung eingerastet sind. Darauf achten, daß die Fahnen vollständig in den Löchern an der unteren Kante der CPU sitzen. 3. Hebel in Verriegelungsstellung drehen, um die Stromversorgung auf dem CPUModul zu sichern.

Stromversorgung abnehmen
Bei allen Arbeiten mit Geräten, die in Betrieb sind, Vorsicht walten lassen. Die Geräte können sehr heiß werden und Verletzungen hervorrufen. 1. Spannungszuführung abschalten. 2. Hebel entriegeln (siehe Abbildung). 3. Die flexible Platte unten an der Stromversorgung eindrücken, um die Fahnen an der Stromversorgung aus den Löchern im Träger zu lösen. 4. Stromversorgung gerade herausziehen.

GFK-1503-GE

Kapitel 3 Installation

3-5

3

Installation zusätzlicher Module
Die CPU kann bis zu 8 zusätzliche E/A- und Zusatzmodule bedienen. Vor dem Anschluß von Trägern an der CPU die Steckverbinder-Abdeckung auf der rechten Seite der CPU entfernen. Diese Abdeckung jedoch nicht wegwerfen, sie muß am letzten Träger wieder angebracht werden. Die Abdeckung schützt die Steckerstifte vor Beschädigungen und statischer Elektrizität. Die Steckverbinder-Abdeckung auf der linken Seite nicht entfernen.
Steckerabdeckung Steckerabdeckung

Zusätzliche Module werden installiert, indem sie auf ihre Träger aufgesetzt und die Profilschiene entlanggeschoben werden, bis die seitlichen Steckverbinder fest miteinander verbunden sind.

Die CPU versorgt die nachgeschalteten Module über den passenden Stecker mit +5 V und +3,3 V. Die Anzahl der Module, die unterstützt werden kann, hängt vom Strombedarf der Module ab. Zur Versorgung der Module können bei Bedarf Zusatzstromversorgungen eingesetzt werden. Die Konfigurationssoftware ermöglicht die Leistungsberechnung bei zulässiger Hardwarekonfiguration.

3-6

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

3

Pufferbatterie aktivieren oder auswechseln
Bei Auslieferung ist die Batterie des CPU-Moduls bereits eingebaut. Die Batteriehalterung befindet sich oben am CPU-Modul. Vor dem ersten Gebrauch muß die Batterie aktiviert werden, indem der Isolierstreifen herausgezogen und entfernt wird.

Lithiumbatterie auswechseln
Zum Auswechseln der Batterie mit einem kleinen Schraubendreher vorsichtig die Batteriehalterung aufhebeln. Die Batterie nur durch einen der folgenden Typen ersetzen: GE Fanuc Panasonic IC200ACC001 BR2032

Die Verwendung anderer Batterien kann zu Brand oder Explosion führen.

Achtung
Eine falsch behandelte Batterie kann explodieren. Niemals eine Batterie aufladen, zerlegen, Temperaturen über 100 Grad Celsius aussetzen oder ins Feuer werfen.

GFK-1503-GE

Kapitel 3 Installation

3-7

3

Serielle Schnittstellenanschlüsse für CPU001
PORT 1

1 5
RS232 PORT 2

1

8
RS485

Spannungsversorgung eines externen Gerätes über Schnittstelle 2
Wird einer der Schnittstellens für den Datenaustausch mit einem seriellen Gerät eingestellt, das maximal 100 mA bei 5 VDC benötigt, dann kann dieses Gerät über Schnittstelle 2 gespeist werden.

Leitungslängen und Übertragungsgeschwindigkeiten
Die maximalen Leitungslängen zwischen CPU und letztem angeschlossenen Gerät betragen: Schnittstelle 1 (RS-232) = 15 m Schnittstelle 2 (RS-485) = 1200 m Beide Schnittstellens unterstützen konfigurierbare Übertragungsgeschwindigkeiten zwischen 4,8 und 38,4 kBd.

3-8

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

3 CPU001 Schnittstelle 1: RS-232
Steckerbelegung für Schnittstelle 1
Schnittstelle 1 ist eine RS-232-Schnittstelle mit einer 9-poligen Sub DBuchse. Diese wird auch zum Übertragen der CPU-Firmware verwendet. Durch die Anschlußbelegung von Schnittstelle 1 kann der Anschluß an einen Standard-AT-RS-232-Schnittstelle über ein 1:1-durchverbundenes Kabel erfolgen. Der Kabelschirm ist am Steckergehäuse aufgelegt.
Pin 1 2 3 4 5 6 7 8 9 Gehäuse Signal offen TXD RXD offen GND offen CTS RTS offen SHLD -Anschluß Kabelschirmdraht / Schirmanschluß bei 100% (durchgängig) geschirmtem Kabel Eingang Ausgang Clear to Send-Eingang Request to Send-Ausgang -0 V/Massebezugspunkt Ausgang Eingang Transmit Data-Ausgang Receive Data-Eingang Richtung Funktion

RS-232 Punkt-zu-Punkt-Verbindung
Bei einer Punkt-zu-Punkt-Verbindung werden zwei Geräte an der gleichen Datenübertragungsleitung angeschlossen. Bei RS-232 beträgt die maximale Leitungslänge 15 Meter.

1 6 2 7 3 8 4 9 5

1 2 3 4 5 9 6 7 8

PC 9-poliger CPU serieller Port Port 1 9-p. Stecker 9-p. Buchse

(2) RXD (3) TXD (5) GND (7) RTS (8) CTS

(2) TXD (3) RXD (5) GND (7) CTS (8) RTS

Der Schirm muß an beiden Kabelenden am Gehäuse aufgelegt werden.

GFK-1503-GE

Kapitel 3 Installation

3-9

3
CPU001: Technische Daten der Steckverbinder und Kabel für Schnittstelle 1
Die nachstehend aufgeführten Bestellnummern der Hersteller sind nur als Hinweis gedacht. Es können auch andere Komponenten verwendet werden, die die genannten technischen Daten einhalten.
Kabel: Belden 9610 9-poliger Stecker: Computerkabel, vollständig geschirmt mit Geflecht über Folie 5-adrig † 30 Volt / 80°C (176°F) 0,2 mm2 verzinntes Kupfer, Litze 7x32 Hersteller: Typ: Buchse: Stift: ITT/Cannon Crimp DEA9PK87F0 030-2487-017 AMP 205204-1 66506-9 LötanITT/Cannon ZDE9P -schluß AMP 747904-2 -Satz *– ITT Cannon DE121073-54 [9-poliger Gehäusebausatz]: metallbeschichtetes Plastik (Plastik mit Nickel auf Kupfer) † Kabelerdungsschelle (enthalten) 40° Kabelaustritt für flache Installation Plus – ITT Cannon 250-8501-010 [verlängerte Schraube]: Gewinde #4-40 für sichere Befestigung am Schnittstelle von CPU001 † Für jedes Gehäuse 2 Stück mitbestellen

Gehäuse:

† *

Kritische Daten – andere Teile müssen mindestens diese Werte einhalten. Mit diesem Satz wird die Einbautiefe von 70 mm beibehalten.

3-10

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

3 CPU001 Schnittstelle 2: RS-485
Steckerbelegung für Schnittstelle 2
Schnittstelle 2 ist eine RS-485-Schnittstelle mit einer 15-poligen Sub DBuchse. Sie kann direkt an einen Schnittstellenwandler RS-485/RS-232 angeschlossen werden.
Pin 1 2, 3, 4 5 6 7 8 9 10 11 12 13 14 15 Gehäuse Signal SHLD offen P5V RTSA GND CTSB' RT RDA' RDB' SDA SDB RTSB CTSA' SHLD Ausgang Ausgang -Eingang -Eingang Eingang Ausgang Ausgang Ausgang Eingang -+5,1 VDC zur Versorgung externer Geräte (max. 100 mA) Request to Send (A) -Ausgang 0 V/Massebezugspunkt Clear to Send (B) -Eingang Widerstandsabschluß (120 Ohm) für RDA' Receive Data (A) -Eingang Receive Data (B) -Eingang Transmit Data (A) -Ausgang Transmit Data (B) -Ausgang Request to Send (B) -Ausgang Clear to Send (A) -Eingang Anschluß Kabelschirmdraht / Schirmanschluß bei 100% (durchgängig) geschirmtem Kabel Richtung -Funktion Anschluß Schirm-Erdungsdraht

Technische Daten der Steckverbinder und Kabel für Schnittstelle 2
Die nachstehend aufgeführten Bestellnummern der Hersteller sind nur als Hinweis gedacht. Es können auch andere Komponenten verwendet werden, die die genannten technischen Daten einhalten.
Kabel: Belden 8105 Kapazitätsarmes Computerkabel, vollständig geschirmt mit Geflecht über Folie 5 verdrillte Paare † Schirm-Erdungsdraht † 30 Volt / 80°C (176°F) 2 0,2 mm , Kupfer verzinnt, Litze 7x32 Ausbreitungsgeschwindigkeit = 78% Nennimpedanz = 100Ω † Typ: Hersteller: Buchse: Stift: Crimp ITT/Cannon DAA15PK87F0 030-2487-017 AMP 205206-1 66506-9 LötanITT/Cannon ZDA15P -schluß AMP 747908-2 -Satz* – ITT Cannon DA121073-50 [15-poliger Gehäusebausatz]: metallbeschichtetes Plastik (Plastik mit Nickel auf Kupfer) † Kabelerdungsschelle (enthalten) 40° Kabelaustritt für flache Installation Plus – ITT Cannon 250-8501-009 [verlängerte Schraube]: Gewinde M3x0,5 für sichere Befestigung † Für jedes Gehäuse 2 Stück mitbestellen

15-poliger Stecker:

Gehäuse:

Kritische Daten – andere Teile müssen mindestens diese Werte einhalten.

GFK-1503-GE

Kapitel 3 Installation

3-11

3
CPU001: RS-485 Punkt-zu-Punkt-Verbindung mit Handshaking
Bei einer Punkt-zu-Punkt-Konfiguration werden zwei Geräte an der gleichen Datenübertragungsleitung angeschlossen. Bei RS-485 beträgt die maximale Leitungslänge 1200 Meter. Bei größeren Entfernungen können Modems eingesetzt werden.
Computer PIN RD ( A' ) RD ( B' ) SD ( A ) SD ( B ) CTS ( A' ) CTS ( B' ) RTS ( B ') RTS ( A ) GND SHLD bis zu 15,2 m (50 ft) ohne Potentialtrennung

geschirmte verdrillte Paare
PIN 12 13 10 11 9 6 14 8 15 3 2 7 1

CPU Port 2 SD ( A ) SD ( B ) RD ( A' ) RD ( B ' ) RT RTS ( A ) RTS ( B ) CTS ( B' ) CTS ( A' )

GND SHLD

3-12

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

3 CPU001: Serielle RS-485-Mehrpunktverbindungen
Bei einer Mehrpunktverbindung werden der Host als Master und eine oder mehrere SPS als Slave konfiguriert. Die maximale Entfernung zwischen dem Master und einem beliebigen Slave beträge 1200 Meter. Bei diesem Wert werden qualitativ hochwertige Kabel und eine relative ungestörte Umgebung vorausgesetzt. Bei RS-485 in einer verketteten oder Mehrpunktverbindung können bis zu 8 Slaves zusammengeschaltet werden. Die RS-485-Leitung muß Handshaking beinhalten und die weiter oben spezifizierten Leitungstypen verwenden.
Master Slave-Station letzte Station

Beim Anschluß der RS-485-Mehrpunktleitungen können Reflexionen auf der Übertragungsleitung verringert werden, wenn die Verkettung der Kabel entsprechend nachstehender Abbildung durchgeführt wird. Verbindungen in den an der SPS angeschlossenen Steckverbindern durchführen. Auf der Übertragungsstrecke möglichst keine Klemmenleisten zu anderen Steckverbindertypen verwenden.
Computer RS-232 Port
9-poliger Stecker 9-polige Buchse auf 25-pol. Stecker RS232 gesch. Kabel
PIN 3 2 5 20 (NC) 8 7

RS-232/RS-485 Konverter IC690ACC900
PIN DCD(A) 2 DCD(B) 3 RD(A’) 10 RD(B’) 11 SD(A) 12 SD(B) 13 RT 9 CTS(A’) 15 CTS(B’) 8 RTS(A) 6 RTS(B) 14 +5V 5 0V 7 SHLD 1 25-pol. Buchse RS-232 PORT 15-pol. Buchse RS-485 PORT 15-pol. Stecker 5V 0V

RS-485 Kabel Verbindung in Sub DStecker herstellen
PIN 2 3 12 13 10 11 9 6 14 15 8 5 7 1

CPU RS-485 Port
15-polige Buchse

PIN RD 2 TD 3 RTS 7 CTS 8 DCD 1 DTR 4 GND 5

RD TD CTS DTR DCD GND

*

1

SHLD

SD(A) SD(B) RD(A’) RD(B’) RT RTS(A) RTS(B) CTS(A’) CTS(B’) +5V 0V SHLD

Stromquelle für Konverter. Mindestabstand 3 m vom Konverter.

zu anderen SPS

Der Abschlußwiderstand für das Signal Receive Data (RD) darf nur an die Geräte an den Leitungsenden angeschlossen werden. Bei der CPU wird dieser Abschluß erreicht, indem zwischen die Stifte 9 und 10 im Sub DSteckergehäuse eine Brücke gelegt wird. Erdpotential: Damit das System ordnungsgemäß funktionieren kann, müssen Geräte, die nicht an der selben Stromquelle angeschlossen sind, erdfrei oder an einem gemeinsamen Erdpotential angeschlossen sein.
GFK-1503-GE Kapitel 3 Installation 3-13

3

Installationsanforderungen für CE-Zeichen
Anwendungen, die das CE-Zeichen benötigen, müssen die folgenden Anforderungen bezüglich des Schutzes gegen Überspannung. elektrostatische Entladungen und schnelle Spannungsstöße erfüllen: Die VersaMax SPS wird als offenes Gerät betrachtet und sollte daher in n einem Gehäuse (IP54) eingebaut sein. Dieses Gerät ist für den Einsatz in typischer Industrieumgebung n vorgesehen, bei der antistatische Materialien wie Beton- oder Holzfußböden verwendet werden. Werden die Geräte in einer Umgebung eingesetzt, in der elektrostatisch anfällige Materialien (z.B. Teppichboden) verwendet werden, muß sich das Personal vor dem Zugriff auf die Geräte durch Berührung einer sicher geerdeten Oberfläche elektrostatisch entladen. Wird die E/A über das Wechselspannungsnetz gespeist, dann müssen n diese Leitungen vor der Verteilung zur E/A so entstört werden, daß die Störgrenzen für die E/A nicht überschritten werden. Die Entstörung der E/A-Wechselspannung kann über MOVs durchgeführt werden, die für die Netzspannung ausgelegt und zwischen den Leitungen und von Leitung zu Erde geschaltet werden. Zu den Leitungs-Erde-MOVs muß eine gute Hochfrequenz-Erdverbindung hergestellt werden. Bei Gleich- oder Wechselspannungsquellen von weniger als 50 V wird n angenommen, daß sie vor Ort vom Wechselspannungsnetz abgeleitet werden. Die Leitungen zwischen diesen Spannungsquellen und der SPS sollten nicht länger als ca. 10 Meter sein. Die Installationen müssen im Innenbereich liegen, die eingehenden n Wechselspannungsleitungen müssen mit PrimäreinrichtungsÜberspannungschutz versehen sein. Bei Störungseinstreuungen kann die serielle Datenübertragung n unterbrochen werden.

3-14

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

Kapitel

Konfiguration

4
In diesem Kapitel wird beschrieben, wie die VersaMax CPU und die von ihr bedienten Module konfiguriert werden. Mit der Konfiguration werden bestimmte Eigenschaften der Modul-Arbeitsweise bestimmt und auch die von den einzelnen Modulen im System benutzten Programmreferenzen festgelegt. Die CPU unterstützt sowohl Autokonfiguration als auch das Herunterladen einer Konfiguration von einem Programmiergerät.

Herunterladen einer Konfiguration von einem Programmiergerät
Eine Konfiguration kann über den CPU-Schnittstelle von einem Programmiergerät heruntergeladen werden. Durch das Herunterladen einer Konfiguration wird die Autokonfiguration gesperrt. Hinweis: Wird eine Hardwarekonfiguration in die CPU heruntergeladen, so wird diese Konfiguration für die serielle Schnittstelle, an die das Programmiergerät angeschlossen ist, erst nach Entfernung des Programmiergerätes aktiv. Die Übernahme des neuen Protokolls erfolgt mit einer Verzögerung, die der konfigurierten Zeit T3' entspricht. Wird eine vom Programmiergerät heruntergeladene Konfiguration gelöscht, so wird eine neue Autokonfiguration erzeugt. Autokonfiguration wird solange freigegeben, bis wieder eine Konfiguration vom Programmiergerät heruntergeladen wird.

GFK-1503-GE

4-1

4 Autokonfiguration
Ist Autokonfiguration freigegeben und gibt es keine frühere Autokonfiguration, liest die CPU beim Einschalten automatisch die Konfiguration der im System installierten Module und erstellt eine GesamtSystemkonfiguration. Gibt es beim Einschalten eine frühere Autokonfiguration, erfolgt die Konfiguration entsprechend der Beschreibung im Abschnitt Autokonfiguration-Diagnosefunktionen. Module mit softwarekonfigurierbaren Eigenschaften verwenden bei der Autokonfiguration ihre Standardeinstellungen. Diese Eigenschaften werden im VersaMax Module, Stromversorgungen und Träger, Anwenderhandbuch (GFK-1504) beschrieben.

"Steckplätze”
Jedes E/A- oder Zusatzmodul belegt im System einen "Steckplatz”. Das Modul neben der CPU belegt Steckplatz 1. Erweiterungsstromversorgungen zählen bei der Steckplatzbelegung nicht mit.
CPU ErweiterungsStromversorgung

1

2

3

4

5

Beim Einschalten erzeugt die CPU standardmäßig eine bei Steckplatz 1 beginnende Konfiguration, die alle physikalisch im System vorhandenen Module enthält. Die Autokonfiguration hält bei dem ersten leeren oder fehlerhaften Modul an. Beispiel: Sind Module in den Steckplätzen 1, 2, 3, 5 und 6 eingebaut, dann werden die Module in den Steckplätzen 5 und 6 nicht automatisch konfiguriert. Auf der nächsten Seite wird beschrieben, wie die Autokonfiguration hinzugefügte, entfernte oder fehlerhafte Module behandelt.

Autokonfiguration weist Referenzadressen zu
Den Modulen werden automatisch Referenzadressen in aufsteigender Reihenfolge zugewiesen. Beispiel: Enthält das System ein Eingangsmodul mit 16 Punkten, ein Eingangsmodul mit 8 Punkten, ein Ausgangsmodul mit 16 Punkten und ein Eingangsmodul mit 16 Punkten (in dieser Reihenfolge), erhalten die Eingangsmodule die Referenzadressen %I0001, %I0017 und %I0025 zugewiesen. Bei Modulen, die unterschiedliche Datentypen verwenden (z.B. gemischte E/A-Module) werden jedem Datentyp die Referenzadressen einzeln zugewiesen.
4-2 VersaMax SPS Anwenderhandbuch –– Oktober 1998 GFK-1503-GE

4
Autokonfiguration-Diagnosefunktionen
Modul vorhanden, aber während der Autokonfiguration nicht aktiv: Ist ein Modul während der Autokonfiguration zwar physikalisch vorhanden, arbeitet aber nicht, dann wird das Modul nicht konfiguriert und die CPU erzeugt eine Diagnose Zusätzliches Modul. Leerer Steckplatz bei Autokonfiguration: Die Autokonfiguration hält beim ersten leeren Steckplatz an. Die Module hinter diesem leeren Steckplatz werden nicht mehr automatisch konfiguriert. Für jedes dieser Module erzeugt die CPU eine Diagnose Zusätzliches Modul. Zuvor konfigurierte Module bei Autokonfiguration vorhanden: Zuvor konfigurierte Module werden bei der Autokonfiguration nicht aus der Konfiguration entfernt. Eine Ausnahme ist,wenn im System keine Module vorhanden sind. Beispiel: Es werden zunächst Module in den Steckplätzen 1, 2 und 3 konfiguriert. Dann wird die Versorgungsspannung abgeschaltet und das Modul aus Steckplatz 1 entfernt. Wird die Spannung wieder eingeschaltet, werden die Module in den Steckplätzen 2 und 3 normal automatisch konfiguriert. Das ursprünglich in Steckplatz 1 gesteckte Modul wird nicht aus der Konfiguration entfernt. Die CPU erzeugt für Steckplatz 1 eine Diagnose Verlorenes Modul. Bei Autokonfiguration unterschiedliches Modul vorhanden: Wurde in einem zuvor für einen bestimmten Modultyp konfigurierten Steckplatz während der Autokonfiguration ein anderes Modul eingebaut, erzeugt die CPU eine Diagnose Diskrepanz bei Konfiguration. Der Steckplatz bleibt für den ursprünglichen Modultyp konfiguriert. Nach der Autokonfiguration werden unkonfigurierte Module eingebaut: Wird nach dem Einschalten ein zuvor nicht konfiguriertes Modul eingebaut, erzeugt die CPU eine Diagnose Zusätzliches Modul und das Modul wird der Konfiguration nicht hinzugefügt. Zuvor konfiguriertes Modul nach Autokonfiguration installiert: Wird ein zuvor konfiguriertes Module, das beim Einschalten fehlte, nach dem Einschalten installiert, erzeugt die CPU eine Diagnose Modul hinzugefügt und das Modul wird dem E/A-Zyklus wieder zugeführt. Alle Module nach Autokonfiguration entfernt: Fehlen nach dem Einschalten alle Module, löscht die CPU die Konfiguration. Hierdurch können Module beim nächsten Einschalten gesteckt und zur Konfiguration hinzugefügt werden.

GFK-1503-GE

Kapitel 4 Konfiguration

4-3

4 Zusammenfassung der Autokonfiguration-Diagnosemeldungen
Modul hinzugefügt 1. Ein Modul ist beim Einschalten vorhanden, aber nicht konfiguriert. 2. Autokonfiguration ist freigegeben und das Modul kann automatisch konfiguriert werden. Modul hinzugefügt Nach dem Einschalten wird ein zuvor fehlendes Modul gesteckt. War das Modul zuvor konfiguriert, nimmt die CPU die Bearbeitung dieses Moduls wieder auf. War dies nicht der Fall, wird das Modul nicht zur Konfiguration hinzugefügt und nicht bearbeitet. Beim oder nach dem Einschalten wurde ein Modul erkannt, das nicht der Konfiguration des entsprechenden Steckplatzes entspricht. 1. Ein Modul ist beim Einschalten vorhanden, aber nicht konfiguriert. 2. Autokonfiguration ist nicht freigegeben. Verlorenes Modul Nicht unterstützte Funktion Ein konfiguriertes Modul fehlt beim Einschalten oder im Normalbetrieb. Ein Modul ist vorhanden, das von der CPU nicht unterstützt wird.

Diskrepanz bei Konfiguration Zusätzliches Modul

4-4

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

Kapitel

CPU-Arbeitsweise

5
Dieses Kapitel beschreibt die Betriebsarten der SPS CPU und zeigt die Beziehungen zwischen der Ausführung des Anwenderprogramms und den anderen von der CPU ausgeführten Aufgaben auf.

CPU-Betriebsarten
Das Anwenderprogramm in einer SPS wird wiederholt abgearbeitet. Zusätzlich zur Abarbeitung des Anwenderprogramms erhält die SPS CPU regelmäßig Daten von Eingabegeräten, schickt Daten an Ausgabegeräte, erledigt die interne Organisation und führt Kommunikationsaufgaben durch. Diese Abfolge von Operationen wird Zyklus genannt.
n

Die Grundbetriebsart des SPS ist der Standardzyklus. In dieser Betriebsart führt die CPU alle Zyklusteile normal aus. Jeder Zyklus wird so schnell wie möglich ausgeführt, wobei sich die benötigte Bearbeitungszeit bei jedem Zyklus ändert. Statt dessen kann die SPS auch in einer Betriebsart mit konstanter Zyklusdauer arbeiten. In dieser Betriebsart führt die CPU zwar die gleichen Aktionen aus, die einzelnen Zyklen belegen aber immer genau die gleiche Zeit. Die SPS kann auch eine von zwei STOP-Betriebsarten annehmen:
o o

n

n

STOP mit gesperrter E/A STOP mit freigegebener E/A

GFK-1503-GE

5-1

5

Komponenten des CPU-Zyklus
Zyklusbeginn Organisation

Organisation

E/A freigegeben ? Ja Eingangszyklus

Nein

Dateneingabe

RUNModus ? Ja LogikBearbeitung

Nein

Programmausführung

CPUZyklusdauer

E/A freigegeben ? Ja Ausgabezyklus

Nein

Datenausgabe

ProgrammiergeräteKommunikation

Programmiergerätedienst

SystemKommunikation

SystemKommunikation

Anwenderprogramm Prüfsummenberechnung Beginn nächster Zyklus

Diagnose

5-2

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

5 Komponenten des CPU-Zyklus
ZyklusbeginnOrganisation Zur Organisation gehören die zur Vorbereitung des Zyklusstarts erforderlichen Aufgaben. Ehe der eigentliche Zyklus gestartet wird, muß die CPU die Zyklusdauer berechnen den Beginn des nächsten Zyklus planen die Betriebsart des nächsten Zyklus bestimmen die Fehlerreferenztabellen aktualisieren den Watchdog-Zeitgeber rücksetzen. Ist die SPS im Modus "konstante Zyklusdauer", wird der Zyklus am Ende solange verzögert, bis die erforderliche Zykluszeit abgelaufen ist. Ist diese Zykluszeit am Ende bereits abgelaufen, wird der Kontakt OV_SWP %SA0002 gesetzt und der Zyklus wird unverzüglich fortgesetzt. Als nächstes aktualisiert die CPU die Timerwerte (1/100 s, 1/10 s und Sekunden). Am Anfang des Zyklus fragt die CPU zunächst die Eingänge der Eingangsmodule und der Zusatzmodule ab, die Eingangsdaten liefern. Die Module werden in der Reihenfolge aufsteigender Referenzadressen abgefragt. Diskrete Eingangsmodule werden vor analogen Eingangsmodulen abgefragt. Die CPU speichert diese neuen Eingangsdaten in den entsprechenden diskreten Speichern. Wurde die CPU so konfiguriert, daß sie die E/A im STOP-Modus nicht aktualisiert, wird der Eingabezyklus übersprungen, wenn die CPU im STOP-Modus ist. Als nächstes bearbeitet die CPU die Logik des Anwenderprogramms. Sie beginnt immer bei der ersten Anweisung im Programm. Die Bearbeitung endet, wenn die Anweisung END ausgeführt wird. Die Bearbeitung der Logik erzeugt einen neuen Satz Ausgangsdaten. Unmittelbar nach der Programmbearbeitung bearbeitet die CPU alle Ausgangsmodule in der Reihenfolge aufsteigender Referenzadressen. Der Ausgabezyklus ist beendet, wenn alle Ausgangsdaten gesendet wurden. Wurde die CPU so konfiguriert, daß sie die E/A im STOP-Modus nicht aktualisiert, wird der Ausgabezyklus ebenfalls übersprungen. Ist ein Programmiergerät angeschlossen, bearbeitet die CPU als nächstes das Programmiergeräte-Kommunikationsfenster. Dieses Fenster wird nicht bearbeitet, wenn kein Programmiergerät angeschlossen ist und im System kein Modul zu konfigurieren ist. Pro Zyklus wird jeweils nur ein Modul konfiguriert. Im eingeschränkten Fenstermodus (Standardeinstellung) berücksichtigt die CPU in jedem Zyklus eine Bedienanforderung. Das Zeitlimit für Programmiergerätekommunikation beträgt 6 Millisekunden. Stellt das Programmiergerät eine Anforderung, deren Bearbeitung mehr als 6 ms benötigt, dann wird die Bearbeitung über mehrere Zyklen verteilt. Als nächstes bearbeitet die CPU Kommunikationsanforderungen von intelligenten Zusatzmodulen. Die Module werden nacheinander abgefragt (Round-Robin-Verfahren), so daß kein Modul bevorzugt wird. Im Standardmodus ("vollständige Bearbeitung”) ist die Länge des SystemKommunikationsfensters auf 400 ms beschränkt. Stellt ein Modul eine Anforderung, deren Bearbeitung mehr als 400 ms benötigt, dann wird die Anforderung über mehrere Zyklen verteilt. Im zeitbegrenzten Modus haben Zusatzmodule, die mit der SPS über das Systemfenster verkehren, weniger Einfluß auf die Zyklusdauer. Die Reaktion auf ihre Anforderungen wird aber langsamer. Am Ende jedes Zyklus wird für das Anwenderprogramm eine Prüfsummenberechnung durchgeführt. Die Anzahl der in der Prüfsumme einbezogenen Worte (0 bis 32) ist einstellbar. Stimmt die berechnete Prüfsumme nicht mit der Referenzprüfsumme überein, wird der Programmprüfsummen-Ausnahmemerker gesetzt. Dies bewirkt, daß ein Fehlereintrag in die SPS-Fehlertabelle geschrieben und die SPS in STOP-Modus versetzt wird. Das Programmiergeräte-Kommunikationsfenster ist von einem Prüfsummenfehler nicht betroffen.
Kapitel 5 CPU-Arbeitsweise 5-3

Eingabezyklus

Anwenderprogrammzyklus Ausgabezyklus

ProgrammiergeräteKommunikationsfenster

SystemKommunikationsfenster

Berechnung der ProgrammPrüfsumme

GFK-1503-GE

5

Standardzyklusbetrieb der CPU
Der Standardzyklusbetrieb ist die normal Betriebsart der SPS CPU. Im Standardzyklusbetrieb bearbeitet die CPU das Anwenderprogramm, aktualisiert die E/A und führt die in dem Bild dargestellten Kommunikationsund sonstige Aufgaben durch: 1. Die CPU führt die Zyklusanfangs-Organisationsaufgaben aus. 2. Sie liest Eingänge. 3. Sie bearbeitet das Anwenderprogramm. 4. Sie aktualisiert die Ausgänge. 5. Ist ein Programmiergerät vorhanden, tauscht die CPU mit ihm Daten aus. 6. Sie kommuniziert mit anderen Geräten. 7. Sie führt Diagnosefunktionen durch. Mit Ausnahme des Datenaustauschs mit dem Programmiergerät werden alle diese Schritte in jedem Zyklus durchgeführt. Der Datenaustausch mit dem Programmiergerät findet nur bei Bedarf statt. In dieser Betriebsart führt die CPU alle Zyklusteile normal aus. Jeder Zyklus wird so schnell wie möglich ausgeführt, wobei sich die benötigte Bearbeitungszeit bei jedem Zyklus ändert.

Die Zyklusfenster
Programmiergeräte-Kommunikationsfenster und SystemKommunikationsfenster kennen zwei Betriebsarten:
Zeitbegrenzter Modus Vollständige Bearbeitung Die Bearbeitungsdauer des Fensters beträgt 6 ms. Das Fenster ist beendet, wenn es keine Aufgaben mehr gibt oder wenn die 6 ms abgelaufen sind. Unabhängig von der einem bestimmten Fenster zugewiesenen Zeit ist das Fenster solange offen, bis alle innerhalb dieses Fensters zu erledigenden Arbeiten abgeschlossen sind (maximal 400 ms).

Die aktuellen Zeiten der einzelnen Fenster können mit SVCREQ 2 aus dem Anwenderprogramm heraus abgefragt werden.

Der Watchdog-Zeitgeber
Wenn die CPU in der Betriebsart Standardzyklus arbeitet, erkennt der Watchdog-Zeitgeber Fehlerzustände, die zu einem ungewöhnlich langen Zyklus führen können. Der Watchdog-Zeitgeber ist auf 500 ms eingestellt. Zu Beginn jedes Zyklus läuft er wieder von Null aus an. Dauert ein Zyklus länger als 500 ms, erlischt die OK-LED am CPU-Modul. Die CPU wird rückgesetzt, führt ihr Anlaufprogramm aus, erzeugt einen Überwachungszeitfehler und geht in den STOP-Modus. Der Datenverkehr wird vorübergehend unterbrochen.

5-4

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

5

Betrieb mit konstanter Zyklusdauer
Verlangt die Anwendung, daß jeder CPU-Zyklus gleich lang dauert, kann die CPU für den Betrieb mit konstanter Zyklusdauer konfiguriert werden. Dies stellt sicher, daß die Eingänge und Ausgänge im System in konstanten Zeitabständen aktualisiert werden. Mit dieser Betriebsart kann auch eine längere Zyklusdauer realisiert werden, mit der sichergestellt wird, daß die Eingänge nach dem Empfang von Ausgangsdaten vom Programm Zeit zum Stabilisieren haben.

Konfigurierten Standardwert für Betriebsart "konstante Zyklusdauer" ändern
Die konfigurierte Betriebsart "konstante Zyklusdauer" kann bearbeitet werden, wenn die SPS im STOP-Modus ist. Damit die neue Konfiguration wirksam werden kann, muß sie in der CPU gespeichert werden. Nach dem Speichern wird die Betriebsart "konstante Zyklusdauer" zur StandardZyklusbetriebsart.

Der Timer für konstante Zyklusdauer
Während des Betriebs in der Betriebsart "konstante Zyklusdauer" kontrolliert der Timer für konstante Zyklusdauer der CPU die Länge des Zyklus. Der Timer kann auf Werte zwischen 5 und 500 Millisekunden eingestellt werden. Um eine Häufung von Zykluszeitüberschreitungs-Fehlern zu vermeiden, sollte in der Betriebsart "Standardzyklus" die eingestellte Zeit mindestens 10 ms länger als die CPU-Zyklusdauer sein. Läuft der Timer für konstante Zyklusdauer vor Zyklusende ab, führt die CPU trotzdem den gesamten Zyklus einschließlich der Fenster aus. Außerdem meldet sie automatisch, daß ein zu langer Zyklus aufgetreten ist. In dem auf die Zykluszeitüberschreitung folgenden Zyklus trägt die CPU einen Zykluszeitüberschreitungsalarm in die SPS-Fehlertabelle ein. Zu Beginn des nachfolgenden Zyklus setzt die CPU den Fehlerkontakt OV_SWP (%SA0002). Die CPU setzt den Kontakt OV_SWP automatisch zurück, sobald die Zyklusdauer nicht mehr die eingestellte Zeit überschreitet. Die CPU setzt den Kontakt OV_SWP auch zurück, wenn sie nicht in der Betriebsart "konstante Zyklusdauer" ist. Wie bei den anderen Fehlerkontakten kann das Anwenderprogramm diesen Kontakt überwachen, um sich über das Auftreten von Zykluszeitüberschreitungen zu informieren.

GFK-1503-GE

Kapitel 5 CPU-Arbeitsweise

5-5

5 Konstante Zyklusdauer aktivieren/deaktivieren, Timerwert lesen oder einstellen
Sie können SVCREQ 1 in das Anwenderprogramm einbauen, um die Betriebsart "konstante Zyklusdauer" zu aktivieren/deaktivieren, die Länge der konstanten Zyklusdauer zu verändern, auszulesen, ob die konstante Zyklusdauer momentan aktiviert ist, oder die Länge der konstanten Zyklusdauer auszulesen.

CPU STOP-Betriebsarten
Die SPS kann auch eine von zwei STOP-Betriebsarten annehmen: STOP mit gesperrter E/A n STOP mit freigegebener E/A n Ist die SPS im STOP-Modus, dann führt die CPU das Anwenderprogramm nicht aus. Sie können über die Konfiguration festlegen, ob die E/A im STOPModus aktualisiert werden. Die Kommunikation mit dem Programmiergerät und intelligenten Zusatzmodulen wird im STOP-Modus nicht unterbrochen. Ebenfalls wird die Abfrage fehlerhafter Module und die Ausführung der Modulkonfiguration im STOP-Modus fortgesetzt. Mit SVCREQ 13 im Anwenderprogramm kann die SPS am Ende des nächsten Zyklus angehalten werden. Die gesamten E/A gehen auf die konfigurierten Standardzustände und in der SPS-Fehlertabelle wird eine Diagnosemeldung eingetragen.

5-6

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

5

Programmausführung steuern
Der Befehlssatz der VersaMax CPU enthält einige mächtige Steuerfunktionen, die in das Anwenderprogramm eingebracht werden können, um die Art und Weise, wie die CPU das Programm bearbeitet und die E/A aktualisiert, einzuschränken oder zu verändern.

Aufruf eines Unterprogrammblocks
Mit der Funktion CALL kann die Programmausführung zu einem bestimmten Unterprogramm umgelenkt werden. Bedingungslogik vor dem Unterprogrammaufruf steuert die Umstände, unter denen die CPU die Logik des Unterprogramms bearbeitet. Nachdem das Unterprogramm fertig bearbeitet ist, kehrt die Programmausführung wieder an den Punkt im Programm zurück, der unmittelbar auf die Anweisung CALL folgt.

Erstellen eines temporären Programmendes
Mit der Funktion END kann ein temporäres Programmende erreicht werden. Dieser Befehl kann an jeder Stelle im Programm verwendet werden. Nach dem Befehl END wird keine Logik mehr bearbeitet und die Programmausführung geht direkt zurück an den Anfang. Diese Fähigkeit macht die Funktion END zum wertvollen Hilfsmittel beim Austesten eines Programms. Die Funktion END sollte nicht zusätzlich in einer Logik eingesetzt werden, die mit einer SFC-Steuerungsstruktur verknüpft ist oder davon aufgerufen wird. In diesem Falle würde die SPS am Ende des aktuellen Zyklus in die Betriebsart STOP/FAULT versetzt werden und ein Fehler SFC_END würde eingetragen.

Strompfade ohne logischen Stromfluß ausführen
Mit dem Hauptsteuerrelais können Teile der Programmlogik bearbeitet werden, ohne daß dort logischer Stromfluß anliegt. Spulen in diesem Programmteil werden mit negativem Stromfluß bearbeitet. Für die Hauptsteuerrelaisfunktionen sind in einem Programm bis zu 8 Schachtelungsebenen zulässig.

Sprung zu einem anderen Programmteil
Im Gegensatz zum Hauptsteuerrelais, das nur eine Vorwärtsbewegung durch das Programm gestattet, kann mit der Sprungfunktion die Programmausführung in der Logik nach vorne oder nach hinten verschoben werden. Ein weiterer Unterschied liegt darin, daß bei einer aktiven Sprungfunktion die Spulen in dem übersprungenen Programmteil in ihrem vorherigen Zustand belassen werden (und nicht wie bei der Hauptsteuerrelaisfunktion mit negativem Stromfluß ausgeführt). Sprungfunktionen können auch geschachtelt werden.
GFK-1503-GE Kapitel 5 CPU-Arbeitsweise 5-7

5
Mit Sprüngen können keine Blöcke, SFC-Aktionen, SCF-Transitionen oder vor- oder nachbearbeitende SFC-Logik segmentiert werden.

5-8

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

5

Privilegebenen und Passworte
Bei der VersaMax SPS können vier Systemsicherheitebenen eingestellt werden. Die erste Ebene, die immer verfügbar ist, gestattet nur Lesen von SPS-Daten. Die Anwendung kann nicht verändert werden. Bei den anderen drei Ebenen sind die Zugriffe jeweils über Passworte geschützt. In jeder höheren Ebene sind mehr Änderungsmöglichkeiten als in den jeweils niedrigeren Ebenen vorhanden.
Ebene Beschreibung

1

2 3 4

Lesen aller Datenspeicher (%I, %Q, %AQ, %R, etc.), Fehlertabellen und aller Programmblocktypen (Daten, Werte und Konstanten). Kein Lesen von Passworten Keine Änderung von Werten in der SPS. "Alles löschen" vom Programmiergerät aus möglich. Schreiben in alle Datenspeicher (%I, %R, usw.). "Alles löschen" vom Programmiergerät aus möglich. Schreiben zum Anwenderprogramm nur in STOP-Modus. "Alles löschen" vom Programmiergerät aus möglich. Lesen und Schreiben aller Speicher und Passworte in den Betriebsarten RUN und STOP möglich. (Konfigurationsdaten können nicht in RUN verändert werden.) "Alles löschen" vom Programmiergerät aus möglich.

Ebene 4 ist die Standardebene, wenn kein Passwort eingestellt wurde. Wurden Passworte eingestellt, ist die höchste ungeschützte Ebene die Standardebene. Privilegebene und Passwort können über das Programmiergerät verändert werden. Die CPU gestattet nur dann eine Änderung, wenn zuvor das aktuelle Ebenenpasswort eingegeben wurde. Die Änderung der Privilegebene bleibt solange wirksam, wie die Datenverbindung zwischen CPU und Programmiergerät besteht. Gibt es 15 Minuten lang keine Datenverbindung, dann kehrt das System auf die höchste ungeschützte Ebene zurück.

Passworte
Den Ebenen 2, 3 und 4 kann ein schützendes Paßwort zugewiesen werden. Passworte werden mit der Programmiersoftware eingegeben. Jedes Passwort kann für seine Ebene einmalig sein, oder es kann das gleiche Passwort für mehrere Ebenen verwendet werden.

Den gesamten Speicher löschen
In jeder Privilegebene der CPU kann der gesamte Speicherhinhalt vom Programmiergerät aus gelöscht werden. Hiermit kann ein Techniker den CPU-Speicher löschen und ein neues Anwenderprogramm in die CPU laden, ohne das Passwort zu kennen.
GFK-1503-GE Kapitel 5 CPU-Arbeitsweise 5-9

5

Arbeitsweise des RUN/STOP-Betriebsartenumschalters
Der CPU RUN/STOP-Betriebsartenumschalter der CPU kann für das Umschalten der CPU auf RUN oder STOP konfiguriert werden. Er kann auch so konfiguriert werden, daß er verhindert, daß zum Programm- oder Konfigurationsspeicher geschrieben oder diskrete Daten überspeichert oder fixiert werden. In der Standardkonfiguration sind die Einstellung von RUN/STOP-Modus freigegeben und der Speicherschutz deaktiviert.

Konfigurierbarer RUN/STOP-Betrieb
Wurde der Betrieb mit dem RUN/STOP-Betriebsartenumschalter freigegeben, kann die CPU über diesen Schalter in RUN-Modus versetzt werden.
n

Liegen in der CPU nur nicht-fatale Fehler vor und ist sie nicht in der Betriebsart STOP/Fehler, dann geht sie in den RUN-Modus, wenn dieser Schalter auf RUN geschaltet wird. Fehler werden NICHT gelöscht. Liegen in der CPU fatale Fehler vor und ist sie in der Betriebsart STOP/Fehler, dann blinkt die RUN-LED 5 Sekunden lang, wenn dieser Schalter auf RUN geschaltet wird. Solange die RUN-LED blinkt, können über den CPU-Schalter die Fehlertabelle gelöscht und die CPU in RUNModus versetzt werden. Lassen Sie den Schalter mindestens ½ Sekunde lang auf RUN stehen, ehe Sie ihn mindestens ½ Sekunde lang auf STOP schalten. Nach dieser Zeit schalten Sie wieder zurück auf RUN. Die Fehler sind gelöscht und die CPU geht in den RUN-Modus. Die LED leuchtet kontinuierlich. Falls erforderlich, können diese Schritte wiederholt werden. Wird der Schalter nicht wie beschrieben umgeschaltet, dann erlischt die RUN LED nach 5 Sekunden und die CPU bleibt im STOP/FEHLERModus. Die Fehler bleiben in der Fehlertabelle.

n

n

Konfigurierbarer Speicherschutz
Der Schalter kann so konfiguriert werden, daß er verhindert, daß zum Programm- oder Konfigurationsspeicher geschrieben oder diskrete Daten überspeichert oder fixiert werden.

5-10

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

5 Zusammenfassung der Arbeitsweise des RUN/STOP-Schalters der CPU
Konfiguration RUN/STOPModus Konfiguration E/A-Zyklus STOP Schalterstellung CPU-Betrieb

AUS EIN EIN AUS

ohne Wirkung ohne Wirkung ohne Wirkung ohne Wirkung

ohne Wirkung RUN/EIN STOP/AUS von STOP auf RUN umschalten

EIN

NEIN

EIN

JA

von RUN auf STOP umschalten von RUN auf STOP umschalten

Alle Betriebsarten möglich. Alle Betriebsarten möglich. CPU kann nicht in RUN gehen CPU geht nach RUN, wenn keine fatalen Fehler vorliegen. Andernfalls blinkt die RUN-LED 5 Sekunden lang. SPS geht auf STOP–NO IO

SPS geht auf STOP–IO

GFK-1503-GE

Kapitel 5 CPU-Arbeitsweise

5-11

Kapitel

Elemente eines Anwenderprogramms

6
In diesem Kapitel finden Sie grundlegende Informationen zum Anwenderprogramm.
n n n n

Struktur eines Anwenderprogramms Unterprogramme Programmsprachen Befehlssatz

GFK-1503-GE

6-1

6

Struktur eines Anwenderprogramms
Das Anwenderprogramm besteht aus der gesamten Logik, die benötigt wird, um die Operationen der SPS CPU und der Module im System zu steuern. Anwenderprogramme werden mit der Programmiersoftware erstellt und zur SPS übertragen. Programme werden im nichtflüchtigen Speicher der CPU abgelegt. In der SPS stehen für die Speicherung des Anwenderprogramms 12 kB Speicher zur Verfügung. Während des CPU-Zyklus (beschrieben im vorherigen Kapitel) liest die CPU die Eingangsdaten von den Modulen im System und legt diese Daten in ihren konfigurierten Eingangsspeicheradressen ab. Anschließend bearbeitet die CPU das gesamte Anwenderprogramm einmal und benutzt dabei diese neuen Eingangsdaten. Durch die Bearbeitung des Anwenderprogramm entstehen neue Ausgangsdaten, die dann in die konfigurierten Ausgangsspeicheradressen eingetragen werden. Nachdem das Ende des Anwenderprogramms abgeschlossen wurde, schickt die CPU die Ausgangsdaten zu den Modulen im System.
Eing. lesen

Anwenderprogramm bearbeiten Ausg. schreiben

6-2

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

6

Unterprogramme
Das Programm kann aus einem Hauptprogramm bestehen, das bei jedem CPUZyklus vollständig bearbeitet wird.
Hauptprogramm

Oder ein Programm kann in Unterprogramme aufgeteilt werden. Die maximale Größe eines Hauptprogramms oder Unterprogrammblocks beträgt 12 kB. Unterprogramme können die Programmierung vereinfachen und die Menge der insgesamt benötigten Logik verringern. Die einzelnen Unterprogramme können entsprechend den Anforderungen aufgerufen werden. Das Hauptprogramm kann hauptsächlich dazu verwendet werden, den Ablauf der Unterprogrammbearbeitung zu steuern.
Unterprog. 2
Programm

Unterprog. 3 Unterprog. 4

Während der Programmbearbeitung kann ein Unterprogrammblock beliebig oft aufgerufen werden. Logik, die wiederholt werden soll, kann in einen Unterprogrammblock gelegt werden, wodurch sich die insgesamt benötigte Programmgröße verringert.

Programm

Unterprog. 2

Unterprogrammblöcke können sowohl vom Hauptprogramm als auch von anderen Unterprogrammblöcken aufgerufen werden. Ein Unterprogrammblock kann sich sogar selbst aufrufen.
Unterprog. 2 Unterprog. 3

Hauptprogramm

Unterprog. 4

Das Hauptprogramm bildet Ebene 1. Das Programm kann bis zu acht zusätzlich geschachtelte Aufrufebenen enthalten.
GFK-1503-GE Kapitel 6 Elemente eines Anwenderprogramms 6-3

6 Unterprogrammvereinbarung
Ein Unterprogramm muß über den Blockdeklarationseditor der Programmiersoftware vereinbart werden.

Unterprogrammaufruf
Ein im Programm aufgerufenes Unterprogramm verwendet eine CALLAnweisung. Für jeden Block im Programm sind bis zu 64 Unterprogrammblockdeklarationen und 64 CALL-Anweisungen erlaubt.
%I0004 %Q0001

%I0006

Unterprog.-Aufruf %I0010 %Q0010

%I0003

Unterprogramme sperren/entsperren
Unterprogrammblöcke können von der Programmiersoftware aus gesperrt und entsperrt werden. Es gibt vier verschiedene Sperrebenen.
Art der Sperre
View Edit Perm View Perm Edit

Beschreibung
Bei dieser Sperre kann das Unterprogramm nicht angezeigt werden. Bei dieser Sperre können die Daten im Unterprogramm nicht verändert werden. Hier ist das Unterprogramm dauernd gesperrt und kann nicht entsperrt werden. Hier ist das Unterprogramm dauernd gesperrt und kann nicht entsperrt werden.

Permanent gesperrte Unterprogramme können nicht entsperrt werden, selbst wenn das Programm kopiert, gesichert oder wiederhergestellt wird. Ein Unterprogramm kann entriegelt werden, wenn es gegen Anzeige oder Editieren verriegelt ist.

6-4

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

6

Programmsprachen
Die grundlegende Sprache des Anwenderprogramms ist der Kontaktplan. Das Hauptprogramm oder die Unterprogramme innerhalb des Programms können auch im SFC-Format (Ablaufsprache) erstellt werden. Mit der SPSProgrammiersoftware können beide Programmarten erstellt werden.

Ablaufsprache
Die Ablaufsprache (SFC) ist eine graphische Methode, mit der die Funktionen eines sequentiell ablaufenden automatisierten Systems als Folge von Schritten und Übergängen dargestellt werden können. Jeder Schritt stellt Befehle oder Aktionen dar, die entweder aktiv oder inaktiv sind. Die Ablaufsteuerung geht von einem Schritt zum nächsten, über eine bedingte Transition, die entweder wahr (1) oder falsch (0) ist. Ist die Transitionsbedingung wahr (1), geht die Steuerung vom aktuellen Schritt (der inaktiv wird) zum nächsten Schritt über, der dann aktiv wird. Die mit einem Schritt verknüpfte Logik wird bearbeitet, wenn der Schritt aktiv wird. Diese Logik ist im Kontaktplanformat programmiert. Die Transitionen zwischen den Schritten werden ebenfalls als Kontaktplanlogik programmiert.
Schritt 1 Trans1

Transition 1
Schritt 2
Trans2

Transition 2
Schritt 3

GFK-1503-GE

Kapitel 6 Elemente eines Anwenderprogramms

6-5

6 Kontaktplan
Diese traditionelle SPS-Programmiersprache mit ihrer Netzwerkstruktur wird von oben nach unten abgearbeitet. Die Programmbearbeitung wird gedanklich als "Stromfluß” dargestellt, der entlang der linken "Stromschiene" der Leiter und in den einzelnen Strompfaden nacheinander von links nach rechts fließt.
Kontakt
Stromschiene %I0001 MUL_ INT

Stromfluß in Funktion

Stromfluß aus Funktion
%Q0001

%R0123 CONST 00002

I1 I2

Q

%R0124 Multiplikationsfunktion Spule

Der logische Stromfluß durch die einzelnen Strompfade wird von einer Reihe einfacher Programmfunktionen gesteuert, die wie mechanische Kontakte und Ausgangsspulen arbeiten. Ob ein Kontakt nun den logischen Stromfluß entlang eines Strompfads weitergibt ist abhängig vom Inhalt einer Speicheradresse, mit der der Kontakt im Programm verknüpft wurde. Ein Kontakt kann zum Beispiel Stromfluß weitergeben, wenn seine Speicheradresse den Wert 1 enthält. Der gleiche Kontakt würde den Stromfluß nicht weitergeben, wenn die Speicheradresse den Wert 0 enthalten würde. Gibt ein Kontakt oder eine andere Funktion in einem Strompfad den logischen Stromfluß nicht weiter, dann wird der Rest dieses Strompfads nicht bearbeitet. Der Stromfluß geht dann entlang der linken Stromschiene zum nächsten Strompfad. Innerhalb eines Strompfads sind zahlreiche komplexe Funktionen möglich, die es zum Beispiel ermöglichen, im Speicher abgelegte Daten zu kopieren, arithmetische Operationen auszuführen oder den Datenverkehr zwischen der CPU und anderen Teilnehmern im System zu steuern. Einige Programmfunktionen, wie zum Beispiel die Sprungfunktion oder das Hauptsteuerrelais, können zur Steuerung des Programmablaufs selbst benutzt werden. Insgesamt wird diese große Gruppe von Kontaktplanrelaisspulen und Kontaktplanfunktionen als "Befehlssatz” der CPU bezeichnet.

6-6

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

6

Der Befehlssatz
Die CPU der VersaMax SPS stellt für den Aufbau von Anwenderprogrammen einen leistungsfähigen Befehlssatz zur Verfügung. Um einen Überblick über die Programmiermöglichkeiten der VersaMax SPS zu geben, wurden auf den folgenden Seiten alle Kontakte, Spulen, Funktionen und sonstigen Elemente des Befehlssatzes zusammengefaßt. Vollständige Angaben finden Sie in der Dokumentation und Online-Hilfe zur Programmiersoftware.

Kontakte
–| |– –|/|– <+>––– Spulenkontakt Öffnerkontakt Dauerkontakt Gibt den Stromfluß weiter, wenn die zugehörige Referenz EIN ist. Gibt den Stromfluß weiter, wenn die zugehörige Referenz AUS ist. Gibt Stromfluß nach rechts weiter, wenn die vorhergehende Dauerspule durchgeschaltet ist.

Spulen
–( )– –(/)– –(↑ )– Spule Negierte Spule Positive Flanke Negative Flanke SET RESET SET remanent Schaltet die zugehörige Referenz EIN, wenn die Spule Stromfluß empfängt. Andernfalls AUS. Schaltet die zugehörige Referenz EIN, wenn die Spule keinen Stromfluß empfängt. Andernfalls AUS. Die Spule wird durchgeschaltet, wenn der Stromfluß zu dieser Spule bei ihrer letzten Bearbeitung AUS war und bei der aktuellen Bearbeitung EIN ist. Andernfalls wird die Spule abgeschaltet. Die Spule wird durchgeschaltet, wenn der Stromfluß zu dieser Spule bei ihrer letzten Bearbeitung EIN war und bei der aktuellen Bearbeitung AUS ist. Andernfalls wird die Spule abgeschaltet. Schaltet die zugehörige Referenz EIN, wenn die Spule Stromfluß empfängt. Sie bleibt solange eingeschaltet, bis sie durch –(R)– rückgesetzt wird. Schaltet die zugehörige Referenz AUS, wenn die Spule Stromfluß empfängt. Sie bleibt solange ausgeschaltet, bis sie durch –(S)– rückgesetzt wird. Schaltet die zugehörige Referenz EIN, wenn die Spule Stromfluß empfängt. Die Referenz bleibt solange gesetzt, bis sie durch –(RM)– rückgesetzt wird. Ihr Zustand wird über einen Spannungsausfall und einen STOP-TO-RUNÜbergang hinweg erhalten. Schaltet die zugehörige Referenz AUS, wenn die Spule Stromfluß empfängt. Die Referenz bleibt solange gesetzt, bis sie durch –(SM)– rückgesetzt wird. Ihr Zustand wird über einen Spannungsausfall und einen STOP-TO-RUNÜbergang hinweg erhalten. Schaltet die zugehörige Referenz EIN, wenn die Spule keinen Stromfluß empfängt. Ihr Zustand wird über einen Spannungsausfall und einen STOP-TO-RUN -Übergang hinweg erhalten. Andernfalls AUS. Schaltet die zugehörige Referenz EIN, wenn die Spule Stromfluß empfängt. Ihr Zustand wird über einen Spannungsausfall und einen STOP-TO-RUN Übergang hinweg erhalten. Andernfalls AUS. Ist der Stromfluß zu der Spule durchgeschaltet, schaltet die Dauerspule den nächsten Dauerkontakt EIN. Ist der Stromfluß abgeschaltet, schaltet die Dauerspule den nächsten Dauerkontakt AUS.

–(↓ )–

–(S)– –(R)– –(SM)–

–(RM)–

RESET remanent

–(/M)–

Negiert remanent Remanent

–(M)–

–––<+>

Dauerspule

GFK-1503-GE

Kapitel 6 Elemente eines Anwenderprogramms

6-7

6
Timer und Zähler
ondtr Einschaltverzögerung Stoppuhr Abschaltverzögerung Einschaltverzögerung Aufwärtszähler Abwärtszähler Summiert die Zeit auf, solange Stromfluß anliegt. Der aktuelle Wert wird auf Null rückgesetzt, wenn der Rücksetzeingang Stromfluß empfängt. Summiert die Zeit auf, in der kein Stromfluß anliegt. Summiert die Zeit auf, solange Stromfluß anliegt. Der aktuelle Wert wird auf Null rückgesetzt, wenn kein Stromfluß anliegt. Wird jedesmal um 1 erhöht, wenn die Funktion einen Stromflußimpuls erhält. Zählt von einem Vorgabewert abwärts, wenn die Funktion einen Stromflußimpuls erhält.

oftd tmr upctr dnctr

Arithmetische Funktionen
add sub mul div mod expt sin cos tan asin acos atan deg rad sqroot Log ln exp Addition Subtraktion Multiplikation Division Modulo-Division Potenz von X Sinus Kosinus Tangens Arkussinus Arkuskosinus Arkustangens Umwandlung in Grad Umwandlung in Radiant Quadratwurzel Dekadischer Logarithmus Natürlicher Logarithmus Natürliche Exponentialfunktion Addiert zwei Zahlen. Subtrahiert eine Zahl von einer anderen. Multipliziert zwei Zahlen miteinander. Dividiert eine Zahl durch eine andere; ergibt einen Quotienten. Dividiert eine Zahl durch eine andere; ergibt einen Rest. Erhebt X zu der durch IN spezifizierten Potenz und legt das Ergebnis in Q ab. Ermittelt den trigonometrischen Sinuswert einer Zahl. Ermittelt den trigonometrischen Kosinuswert einer Zahl. Ermittelt den trigonometrischen Tangenswert einer Zahl. Ermittelt den Arkussinuswert einer reellen Zahl. Ermittelt den Arkuskosinuswert einer reellen Zahl. Ermittelt den Arkustangenswert einer reellen Zahl. Führt eine Umwandlung RAD_TO_DEG eines reellen Radiantwertes durch. Führt eine Umwandlung DEG_TO_RAD eines reellen Gradwertes durch. Zieht die Quadratwurzel aus einem ganzzahligen oder reellen Wert. Ermittelt den dekadischen Logarithmus eines reellen Wertes. Ermittelt den natürlichen Logarithmus eines reellen Wertes. Erhebt die Basis des natürlichen Logarithmus zu der durch den Eingang festgelegten Potenz.

6-8

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

6
Relationale Funktionen
eq ne gt Gleich Ungleich Größer als Prüft, ob zwei Zahlen gleich sind. Prüft, ob zwei Zahlen ungleich sind. Prüft, ob eine Zahl größer als eine andere ist. Schaltet den Stromfluß nach rechts, wenn die erste Zahl größer ist als die zweite. Prüft, ob eine Zahl größer als eine andere oder gleich ist. Prüft, ob eine Zahl kleiner als eine andere ist. Prüft, ob eine Zahl kleiner als eine andere oder gleich ist. Prüft, ob der Eingabewert zwischen zwei Zahlen liegt.

ge lt le Bereich

Größer als oder gleich Kleiner als Kleiner als oder gleich Bereich

Bitoperationen
and or xor not shl shr rol ror bittst bitset bitclr bitpos mskcmp Logisch UND Logisch ODER Logisches ExklusivODER Logische Invertierung Nach links schieben Nach rechts schieben Nach links rotieren Führt eine logische UND-Verknüpfung zweier Bitfolgen durch. Führt eine logische ODER-Verknüpfung zweier Bitfolgen durch. Führt eine logische EXOR-Verknüpfung zweier Bitfolgen durch. Führt eine logische Invertierung einer Bitfolge durch. Verschiebt eine Bitfolge nach links. Verschiebt eine Bitfolge nach rechts. Dreht eine Bitfolge nach links.

Nach rechts rotieren Dreht eine Bitfolge nach rechts. Bit testen Bit auf 1 setzen Bit auf 0 setzen Bitposition Prüft ein Bit in einer Bitfolge. Setzt ein Bit in einer Bitfolge auf TRUE. Setzt ein Bit in einer Bitfolge auf FALSE. Sucht in einer Bitfolge ein auf TRUE gesetztes Bit.

Vergleich mit Maske Führt einen maskierten Vergleich zweier Felder durch.

GFK-1503-GE

Kapitel 6 Elemente eines Anwenderprogramms

6-9

6
Datenkopierfunktionen
move blkmov blkclr shfreg bitseq comreq Kopieren Block kopieren Block löschen Schieberegister Bitfolgesteuerung Kommunikationsanforderung Kopiert ein oder mehrere Datenbits an eine andere Stelle. Kopiert einen Block mit bis zu 7 Konstanten. Setzt ein oder mehrere Bytes/Worte im Speicher auf Null. Schiebt ein oder mehrere Worte oder Bits durch einen Speicherblock. Schiebt eine 1 durch eine Gruppe von Bits im SPS-Speicher. Sendet eine Kommunikationsanforderung.

Tabellenfunktionen
arrmov srh eq srh ne srh gt srh ge srh lt srh le Feld kopieren Suche gleiche Suche ungleiche Suche größer als Suche größer als/gleich Suche kleiner als Suche kleiner als/gleich Kopiert eine vorgegebenen Anzahl von Datenelementen aus einem Quellfeld in ein Zielfeld. Durchsucht ein Feld nach Werten, die gleich dem angegebenen Wert sind. Durchsucht ein Feld nach Werten, die nicht gleich dem angegebenen Wert sind. Durchsucht ein Feld nach Werten, die größer als der angegebene Wert sind. Durchsucht ein Feld nach Werten, die größer als ein angegebener Wert oder gleich sind. Durchsucht ein Feld nach Werten, die kleiner als der angegebene Wert sind. Durchsucht ein Feld nach Werten, die kleiner als ein angegebener Wert oder gleich sind.

Umwandlungsfunktionen
→ bcd-4 → word → int → tdint → real Umwandeln in BCD-4 (aus INT) Umwandeln in Wort (aus REAL) Umwandeln in INT (aus BCD-4 oder REAL) Umwandeln in DINT (aus BCD-4 oder REAL) Umwandeln in REAL (aus INT, DINT, BCD-4 oder WORD) Abschneiden auf INT (aus REAL) Abschneiden auf doppelt genaue INT (aus REAL) Wandelt eine Zahl in 4-stelliges BCD-Format um. Wandelt eine reelle Zahl in Wortformat um. Wandelt eine Zahl in vorzeichenbehaftetes ganzahliges Format um. Wandelt eine Zahl ins doppeltgenaue ganzzahlige Format um. Wandelt einen Wert in einen reellen Wert um.

→→ int →→ dint

Schneidet auf 16-Bit-Zahl mit Vorzeichen ab. Zulässiger Bereich: –32.768 bis +32.767. Schneidet auf 32-Bit-Zahl mit Vorzeichen ab. Zulässiger Bereich:-2.147.483.648 bis +2.147.483.647.

6-10

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

6
Steuerfunktionen
call do io Unterprogrammaufruf E/A-Aktualisierung Veranlaßt, daß die Programmbearbeitung in dem angegebenen Unterprogrammblock fortgesetzt wird. Bedient den angegebenen Bereich Ein- oder Ausgänge unmittelbar (alle Ein- oder Ausgänge eines Moduls werden bedient, wenn die Funktion eine beliebige Adresse des Moduls enthält – es findet keine partielle E/A-Aktualisierung eines Moduls statt). Wählt den rückwirkungsfreien unabhängigen PID-Algorithmus. Wählt den ISA-PID-Algorithmus. Das Programm wird bearbeitet vom ersten Strompfad bis zum letzten Strompfad oder der END-Anweisung (was immer zuerst kommt). Diese Anweisung ist hilfreich beim Austesten. Eine Erläuterung zum Strompfad. Eine spezielle SPS-Dienstfunktion. Beginnt einen Hauptsteuerrelaisbereich. Eine MCR-Funktion veranlaßt, daß alle Strompfade zwischen MCR und dem darauffolgenden ENDMCR ohne Stromfluß ausgeführt werden. Es können bis zu 8 MCR-Funktionen geschachtelt werden. Beendet einen Hauptsteuerrelaisbereich. Springt zu einer bestimmten Adresse, die durch eine MARKE im Programm angegeben wird. Die Zieladresse einer JUMP-Anweisung. Mehrere Sprunganweisungen können die selbe Marke anspringen.

pidind pidisa end

Unabhängiger PIDAlgorithmus ISA-PIDAlgorithmus Temporäres Programmende Kommentar Bedienanforderung Hauptsteuerrelais

commnt svcreq mcr

endmcr jump label

HauptsteuerrelaisEnde Sprung Marke

GFK-1503-GE

Kapitel 6 Elemente eines Anwenderprogramms

6-11

Kapitel

Programmdaten

7
Dieses Kapitel beschreibt die Datentypen, die in einem Anwenderprogramm verwendet werden können, und erläutert, wie diese Daten im Speicher der SPS abgelegt werden.

n n n n n n

Datenspeicheradressen Datenremanenz Verwendung symbolischer Adressen und Beschreibungen für Programmreferenzen System-Statusreferenzen Zeitkontakte Wie Programmfunktionen numerische Daten behandeln

GFK-1503-GE

7-1

7

Datenspeicheradressen
Die SPS speichert Programmdaten im Bitspeicher und im Wortspeicher. Bitund Wortspeicher sind wiederum jeweils in unterschiedliche Typen mit spezifischen Eigenschaften unterteilt.

Speicherbelegung
Die folgende Tabelle zeigt die Typen und Größen der verfügbaren Speicher.
Programmspeicher Register (%R) Diskrete Eingänge (%I) Diskrete Ausgänge (%Q) Analogeingänge (%AI) Analogausgänge (%AQ) Diskrete interne Merker (%M) Diskrete temporäre Merker (%T) Globale diskrete Genius-Merker (%G) 12288 Bytes 2048 Worte 2048 Punkte 2048 Punkte 128 Worte 128 Worte 1024 Punkte 256 Punkte 1280 Punkte

Per Vereinbarung wird jeder Speichertyp normalerweise für einen speziellen Datentyp verwendet (siehe Tabelle). Die tatsächliche Speicherbelegung erlaubt jedoch eine große Flexibilität. Die einzelnen Speicherplätze werden mit alphanumerischen Bezeichnern, den "Referenzen", indiziert. Buchstaben im Präfix der Referenz geben den Speicherbereich an. Der numerische Wert ist der Offset in diesem Speicherbereich.

Wortspeicher-Referenzen
Die einzelnen Wortspeicheradressen (Referenzen) liegen in einem 16-BitWortraster. Die SPS verwendet drei unterschiedliche Referenztypen zur Datenspeicherung im Wortspeicher.
%AI %AQ %R Normalerweise verwendet für Analogeingänge. Normalerweise verwendet für Analogausgänge. Register werden normalerweise zur Speicherung von Programmdaten im Wortformat benutzt.

Der Wortspeicher wird nachstehend dargestellt. Das Beispiel zeigt zehn Adressen. Jede Adresse umfaßt 16 Bits, die zusammen einen Wert enthalten. Die SPS kann im Wortspeicher keine einzelnen Bits ansprechen.

7-2

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

7
Adressen 1 2 3 4 5 6 7 8 9 10 12467 12004 231 359 14 882 24 771 735 0000

Bitspeicherreferenzen
Die einzelnen Bitspeicheradressen (Referenz) liegen in einem Bitraster. Die Speicherung der Daten im Bitspeicher wird nachstehend dargestellt. Die Abbildung zeigt 160 einzeln adressierbare Bits (Adresse 1 ist links oben, Adresse 160 rechts unten).
Adressen 1 2 3 0 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 4 5 1 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 6 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 ... 160

GFK-1503-GE

Kapitel 7 Programmdaten

7-3

7
Die SPS verwendet sechs unterschiedliche Referenztypen zur Datenspeicherung im Bitspeicher.
%I %Q Normalerweise verwendet für diskrete Eingänge; anzeigbar in Eingangsstatustabelle. Normalerweise verwendet für physikalische Ausgangseferenzen; anzeigbar in Ausgangsstatustabelle. Je nach ihrer Verwendung im Programm kann eine %Q-Referenz remanent oder nicht remanent sein. Normalerweise verwendet zur Darstellung interner Referenzen. Je nach ihrer Verwendung im Programm kann eine bestimmte %M-Referenz remanent oder nicht remanent sein. Verwendet für temporäre Referenzen, die im Programm wiederholt verwendet werden können. Daten mit %T-Referenzen werden bei einem Spannungsausfall oder einem Übergang RUN-STOP-RUN nicht erhalten. %T-Referenzen können nicht mit remanenten Spulen verwendet werden.
Spezifisch vordefinierte System-Statusreferenzen.

%M %T

%S

n n n n

%S, %SA, %SB und %SC können für beliebige logische Kontakte verwendet werden. %SA, %SB und %SC können für nullspannungssichere Merker verwendet werden. %S können als Eingänge zu Funktionen oder Funktionsblöcken verwendet werden. %SA, %SB und %SC können als Eingänge oder Ausgänge von Funktionen und Funktionsblöcken verwendet werden.

%G

Verwendet für Globaldaten. Die Daten in den %G-Referenz sind nullspannungssicher. %GReferenzen können mit Kontakten und remanenten Spulen, aber nicht mit nicht remanenten Spulen verwendet werden.

Transitionsbits und Overridebits
Transitionsbits sind von der CPU intern verwendete Bits, um Flanken zu erkennen. Overridebits werden benutzt, um bestimmte Referenzen feste vorgegebene Werte vom Programmiergerät zuzuweisen (z.B. für Simulation). %I-, %Q-, %M- und %G-Referenzen sind mit Transitions- und Overridebits verknüpft. %T-, %S-, %SA-, %SB- und %SC-Referenzen sind nur mit Transitionsbits verknüpft. Die CPU verwendet Transitionsbits für flankengesteuerte Spulen. Wird ein Overridebit gesetzt, kann die zugehörige Referenz nur vom Programmiergerät aus verändert werden.

7-4

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

7

Datenremanenz
Daten sind remanent (nullspannungssicher), wenn sie beim Stoppen der SPS oder einem Spannungsausfall automatisch gerettet werden. Die folgenden Daten sind remanent:

n n n n n n n

Programmlogik Fehlertabellen und Diagnosefunktionen OVERRIDE-Zustände Wortdaten (%R, %AI, %AQ) Bitdaten (%I, %SC, %G, Fehlerbits und reservierte Bits) In %Q und %M gespeicherte Wortdaten. Daten in %Q oder %M Referenzen, die als Funktionsblockausgänge oder zusammen mit remanenten Spulen verwendet werden: -(M)- remanente Spule -(/M)- negiert remanent Spulen -(SM)- remanente SET-Spulen -(RM)- remanente RESET-Spulen Bei der letzen Verwendung einer %Q- oder %M-Referenz zusammen mit einer Spule wird durch den Spulentyp festgelegt, ob die Daten remanent oder nicht remanent sind. Wurde zum Beispiel %Q0001 zuletzt als Referenz einer remanenten Spule programmiert, bleiben die Daten von %Q0001 remanent. Wurde jedoch %Q0001 zuletzt als Referenz einer nicht remanenten Spule programmiert, sind die Daten von %Q0001 nicht remanent.

n

%Q- oder %M-Referenzen, die remanent gemacht wurden, indem sie spezifisch als remanent vereinbart wurden. Die Standardeinstellung der %Q- und %M-Referenzen ist nicht remanent.

Die folgenden Daten sind nicht remanent:

n n n n n

Die Zustände von Transitionsmerkern. %T-Daten %S-, %SA- und %SB-Daten (ABER: %SC-Bitdaten sind remanent). %Q- und %M-Referenzen, die nicht als remanent vereinbart wurden. %Q- und %M-Referenzen, die mit nicht remanenten Spulen verwendet werden: -( )Spule, -(/)negierte Spulen -(S)- SET-Spulen -(R)- RESET-Spulen

GFK-1503-GE

Kapitel 7 Programmdaten

7-5

7

Verwendung symbolischer Adressen und Beschreibungen für Programmreferenzen
Um die Programmlogik übersichtlicher zu gestalten, werden in vielen Programmen beschreibende symbolische Adressen für Referenzen verwendet.

Symbolische Adresse
Eine symbolische Adresse kann zwischen 1 und 7 Zeichen enthalten. Zulässige Zeichen sind: A bis Z, 0 bis 9, Unterstrich und die Sonderzeichen +, -, %, #, @, <, >, = und &. Das erste Zeichen muß immer ein Buchstabe sein. Jeder Programmreferenz kann eine symbolische Adresse zugewiesen werden. Die symbolischen Adressen werden in der Variablendeklarationstabelle zugeordnet. Die Verwendung symbolischer Adressen erfolgt wahlweise.
%Q0004
Referenz

----( )---Light_3
symbolische Adresse

----( )---Bei einer symbolischen Adresse wird nur zwischen Groß- und Kleinbuchstaben unterschieden, wenn eine globale symbolische Adresse im Unterprogramm erneut zugewiesen wurde. In diesem Fall ist die lokale Verwendung der symbolischen Adresse in Groß- und die globale Verwendung in Kleinbuchstaben.

Lokale symbolische Adressen in Unterprogrammen
Jeder Unterprogrammblock kann seine eigenen symbolischen Adressen lokal einsetzen. Eine Referenz kann unterschiedliche lokale symbolische Adressen in unterschiedlichen Unterprogrammblöcken besitzen:
BLOCK A BLOCK B %R0001 %R0001 Light_1 Light_2

Sofern sie als lokale Variable deklariert wurde, können zwei Unterprogrammblöcke die gleiche symbolische Adresse für unterschiedliche Referenzen benutzen:
BLOCK A BLOCK B %R0001 %R0002 RESET RESET

Referenzbeschreibungen
Eine Referenzbeschreibung ist ein Zusatztext, der bis zu 32 Zeichen enthalten kann. Referenzbeschreibungen können mit Maschinenreferenzen oder impliziten Bezeichnern (z.B. Programmnamen, Unterprogrammblock oder JUMP/LABEL/MCR/ENDMCR) verknüpft werden. Eine Referenzbeschreibung kann mit oder ohne symbolische Adresse verwendet werden.
7-6 VersaMax SPS Anwenderhandbuch – Oktober 1998 GFK-1503-GE

7

System-Statusreferenzen
Die SPS speichert System-Statusdaten in vordefinierten Referenzen im %S-, %SA-, %SB- oder %SC-Speicher. Jede System-Statusreferenz kann eine beschreibende symbolische Adresse besitzen. Zeitreferenzen heißen zum Beispiel T_10MS, T_100MS, T_SEC und T_MIN. Beispiele von Funktionsreferenzen sind FST_SCN, ALW_ON und ALW_OFF.

Benutzung der System-Statusreferenzen
System-Statusreferenzen können entsprechend den Erfordernissen in den Anwenderprogrammen eingesetzt werden. Der folgende Funktionsblock benutzt zum Beispiel die Statusreferenz FST_SCN (erster Zyklus) zum steuern des Stromflusses zu einer Funktion "Block löschen". In diesem Beispiel werden beim Einschalten ab der Adresse %Q0001 32 Worte im %Q-Speicher (512 Punkte) mit Nullen gefüllt.
FST_SCN | |

BLK_ CLR WORD IN LEN 00032

%Q0001

GFK-1503-GE

Kapitel 7 Programmdaten

7-7

7 %S-Referenzen
Referenzen im %S-Speicher können nur gelesen werden.
Referenz
%S0001 %S0002 %S0003 %S0004 %S0005 %S0006 %S0007 %S0008 %S0009

Symbolische Adresse
FST_SCN LST_SCN T_10MS T_100MS T_SEC T_MIN ALW_ON ALW_OFF SY_FULL

Definition
Auf 1 gesetzt, wenn aktueller Zyklus erster Zyklus ist. Wird von 1 auf 0 rückgesetzt, wenn der aktuelle Zyklus der letzte Zyklus ist. Timerkontakt, 0,01 s Timerkontakt, 0,1 s Timerkontakt, 1 s Timerkontakt, 1 Minute Immer EIN Immer AUS Wird gesetzt, wenn die SPS-Fehlertabelle voll wird. Wird gelöscht, wenn ein Eintrag entfernt wird oder die SPSFehlertabelle gelöscht wird. Wird gesetzt, wenn die E/A-Fehlertabelle voll wird. Wird gelöscht, wenn ein Eintrag aus der E/A-Fehlertabelle entfernt wird oder die E/A-Fehlertabelle gelöscht wird. Wird gesetzt, wenn im %I-, %Q-, %M- oder %G-Speicher ein OVERRIDE-Zustand besteht. Reserviert

%S0010

IO_FULL

%S0011 %S0012 %S0013 %S0014 %S0015, 16 %S0017

OVR_PRE

PRG_CHK PLC_BAT

Wird gesetzt, wenn die Hintergrundprogrammüberprüfung aktiv ist. Wird gesetzt, um eine fehlerhafte Batterie in der CPU anzuzeigen. Die Kontaktreferenz wird einmal pro Zyklus aktualisiert. Reserviert

SNPXACT

Der SNP-X Host ist aktiv and CPU-Schnittstelle 1 angeschlossen. (Schnittstelle 2 ist in der Standardeinstellung inaktiv und muß mit einem CRQ aktiviert werden). Der SNP-X Host hat Daten vom CPU-Schnittstelle 1 gelesen. Der SNP-X Host hat Daten zum CPU-Schnittstelle 1 geschrieben. Wird gesetzt, wenn eine Vergleichsfunktion, die REAL-Daten verwendet, erfolgreich ausgeführt wird. Wird gelöscht, wenn einer der Eingänge keine Zahl ist.

%S0018 %S0019 %S0020

SNPX_RD SNPX_WT

%S0021 %S0022

FF_OVR USR_SW

Wird gesetzt, um fatalen OVERRIDE-Fehler zu melden. Wird gesetzt, um den Zustand des CPUBetriebsartenschalters wiederzugeben. 1 = RUN/EIN 0 = STOP/AUS Reserviert

%S0023-32

7-8

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

7 %SA-, %SB- und %SC-Referenzen
Referenzen im %SA-, %SB- oder %SC-Speicher können sowohl gelesen als auch beschrieben werden.
Referenz %SA0001 Symbolische Adresse PB_SUM Definition Wird gesetzt, wenn die für das Programm berechnete Prüfsumme nicht mit der Referenzprüfsumme übereinstimmt. Wurde der Fehler durch eine vorübergehende Störung verursacht, kann das diskrete Bit gelöscht werden, indem das Programm nochmals in die CPU geladen wird. Wurde der Fehler durch einen RAM-Defekt verursacht, muß die CPU ausgewechselt werden. Wird gesetzt, wenn die SPS in der Betriebsart "konstante Zyklusdauer" erkennt, daß der vorhergehende Zyklus länger als die angegebene Zeit dauerte. Wird gelöscht, wenn die SPS erkennt, daß der vorhergehende Zyklus nicht länger als die angegebene Zeit dauerte. Wird auch gelöscht beim Übergang von STOP auf RUN. Wird gesetzt, wenn ein Anwendungsfehler auftritt. Wird gelöscht, wenn die SPS von STOP auf RUN wechselt. Reserviert CFG_MM Wird gesetzt, wenn beim Einschalten oder einem Speichern der Konfiguration eine Diskrepanz bei der Konfiguration erkannt wird. Wird gelöscht, wenn die SPS nach der Korrektur dieses Zustands wieder eingeschaltet wird. Wird gesetzt, wenn die Diagnosefunktionen ein Problem mit der CPU-Hardware erkennen. Wird gelöscht, wenn das CPU-Modul ausgewechselt wird. Wird gesetzt, wenn ein Batteriefehler auftritt. Wird gelöscht, wenn die Batterie ausgewechselt und die SPS danach wieder eingeschaltet wird. Reserviert LOS_IOM Wird gesetzt, wenn der Datenverkehr zwischen einem E/AModul und der CPU unterbrochen wird. Wird gelöscht, wenn das Modul ausgewechselt und die Spannung ausund wieder eingeschaltet wird. Wird gesetzt, wenn der Datenverkehr zwischen einem Zusatzmodul und der CPU unterbrochen wird. Wird gelöscht, wenn das Modul ausgewechselt und die Spannung zum Hauptchassis aus- und wieder eingeschaltet wird. Reserviert ADD_IOM Wird gesetzt, wenn ein E/A-Modul hinzugefügt wird. Wird gelöscht, wenn die Spannung zur SPS aus- und wieder eingeschaltet wird und die Konfiguration nach einem Speichern mit der Hardware übereinstimmt. Wird gesetzt, wenn ein Zusatzmodul hinzugefügt wird. Wird gelöscht, wenn die Spannung zur SPS aus- und wieder eingeschaltet wird und die Konfiguration nach einem Speichern mit der Hardware übereinstimmt.

%SA0002

OV_SWP

%SA0003 %SA0004-8 %SA0009

APL_FLT

%SA0010

HRD_CPU

%SA0011

LOW_BAT

%SA0012,13 %SA0014

%SA0015

LOS_SIO

%SA0016-18 %SA0019

%SA0020

ADD_SIO

GFK-1503-GE

Kapitel 7 Programmdaten

7-9

7

Referenz %SA0021-26 %SA0027

Symbolische Adresse Reserviert HRD_SIO

Definition

Wird gesetzt, wenn in einem Zusatzmodul ein Hardwarefehler erkannt wird. Wird gelöscht, wenn das Modul ausgewechselt und die Spannung zur SPS aus- und wieder eingeschaltet wird. Reserviert Wird gesetzt, wenn in einem Zusatzmodul ein nicht behebbarer Softwarefehler erkannt wird. Wird gelöscht, wenn die Spannung zur SPS aus- und wieder eingeschaltet wird und die Konfiguration mit der Hardware übereinstimmt. Reserviert Wird gesetzt,wenn die CPU einen nicht behebbaren Fehler in der Software erkennt. Wird gelöscht, wenn die SPS-Fehlertabelle gelöscht wird. Wird gesetzt, wenn bei einer Programmiergeräte-Speicherung ein Fehler auftritt. Wird gelöscht, wenn ein Speichervorgang erfolgreich beendet wurde. Reserviert Wird gesetzt, wenn ein beliebiger Fehler auftritt. Wird gelöscht, wenn beide Fehlertabellen leer sind. Wird gesetzt, wenn ein Fehler auftritt, der einen Eintrag in die SPS-Fehlertabelle verursacht. Wird gelöscht, wenn die SPSFehlertabelle leer ist. Wird gesetzt, wenn ein Fehler auftritt, der einen Eintrag in die E/A-Fehlertabelle verursacht. Wird gelöscht, wenn die E/AFehlertabelle leer ist. Wird gesetzt, solange die SPS-Fehlertabelle noch mindestens einen Eintrag enthält. Wird gelöscht, wenn die SPS-Fehlertabelle leer ist. Wird gesetzt, solange die E/A-Fehlertabelle noch mindestens einen Eintrag enthält. Wird gelöscht, wenn die E/A-Fehlertabelle leer ist. Wird gesetzt, wenn ein Hardwarefehler auftritt. Wird gelöscht, wenn beide Fehlertabellen leer sind. Wird gesetzt, wenn ein Softwarefehler auftritt. Wird gelöscht, wenn beide Fehlertabellen leer sind.

%SA0028-30 %SA0031

SFT_SIO

%SB0012 %SB0013 SFT_CPU

%SB0014

STOR_ER

%SC0001-8 %SC0009 %SC0010 ANY_FLT SY_FLT

%SC0011

IO_FLT

%SC0012

SY_PRES

%SC0013

IO_PRES

%SC0014 %SC0015

HRD_FLT SFT_FLT

7-10

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

7

Wie Programmfunktionen numerische Daten behandeln
Unabhängig von der Stelle, an der Daten im Speicher abgelegt werden — in einem der bitstrukturierten Speicher oder in einem der wortstrukturierten Speicher - kann das Anwenderprogramm diese Daten als unterschiedliche Datentypen behandeln.
Typ BIT Bezeichnung Bit Beschreibung Der Datentyp "Bit" ist die kleinste Einheit im Speicher. Er kennt zwei Zustände: 1 oder 0. Der Datentyp "Byte" hat einen 8-Bit-Wert. Zulässiger Bereich: 0 bis 255 (0 bis FF hexadezimal). Der Datentyp "Wort" benutzt im Speicher 16 aufeinanderfolgende Datenbits. Im Gegensatz zu den Bits in der Datenadresse, die eine Zahl darstellen, sind diese Bits voneinander unabhängig. Jedes Bit stellt seinen eigenen binären Zustand (1 oder 0) dar. Der zulässige Bereich von Wortwerten ist 0 bis +65.535 (FFFF). 4-stellige BCD-Zahl 4-stellige BCD-Zahlen belegen 16-BitDatenspeicheradressen. Jede BCD-Stelle belegt vier Bits und kann Zahlen zwischen 0 und 9 darstellen. Diese BCD-Codierung der 16 Bits ergibt einen Wertebereich von 0 bis 9999. Reelle Zahlen belegen zwei aufeinanderfolgende 16-Bit-Speicheradressen. Der Zahlenbereich, der in diesem Format gespeichert werden kann, ist: ± 1,401298E-45 bis ± 3,402823E+38. Weitere Informationen finden Sie auf der nächsten Seite.
Word 1 16 bit positions 16 1

Datenformat

BYTE

Byte

WORD

BCD-4

Word 1 4 3 2 9 5 1 4 BCD Stellen 1 Bit Position

16 13

REAL

Gleitpunkt

Word 1 Word 2 +/17 16 32 8 Bit Exponent 23 Bit Mantisse Zweierkomplementwerte

1

INT

Ganze Zahl Ganze Zahlen mit Vorzeichen belegen 16mit Vorzei- Bit-Speicheradressen. Ganze Zahl mit Vorzeichen werden im Zweierkomplement chen dargestellt. Bit 16 ist das Vorzeichenbit, (0 = positiv, 1 = negativ). Der Bereich ist 32.768 bis +32.767.

Word 1 +/16 1 16 Bitpositionen

GFK-1503-GE

Kapitel 7 Programmdaten

7-11

7

Typ DINT

Bezeichnung Doppeltgenaue ganze Zahl mit Vorzeichen

Beschreibung Doppeltgenaue ganze Zahlen mit Vorzeichen belegen zwei aufeinanderfolgende 16-Bit-Speicheradressen. Sie werden im Zweierkomplement dargestellt. Bit 32 ist das Vorzeichenbit, (0 = positiv, 1 = negativ). Ihr Bereich ist -2.147.483.648 bis +2.147.483.867.

Datenformat

Word 2 +/32

Word 1 17 16 1

Zweierkomplementwerte

Reelle Zahlen
Der Datentyp "REAL", der für einige arithmetische und numerische Funktionen eingesetzt werden kann, entspricht im Prinzip den Gleitpunktdaten. Gleitpunktzahlen werden im einfach genauen IEEE-Standardformat abgelegt. Dieses Format benötigt 32 Bits, die zwei (nebeneinanderliegende) 16-Bit-SPSWörter belegen.
höherwertiges Register Bits 17-32 32 17 16 23-Bit Mantisse 8-Bit Exponent 1-Bit Vorzeichen (Bit 32) niederwertiges Register Bits 1-16 1

Belegt die Gleitpunktzahl zum Beispiel die Register %R0005 und %R0006, dann ist %R0005 das niederwertige Register und %R0006 ist das höcherwertige Register. Der Zahlenbereich, der in diesem Format gespeichert werden kann, ist ± 1,401298E–45 bis ± 3,402823E+38, sowie der Zahl Null.

7-12

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

7 Fehler in reellen Zahlen und Operationen
Ein Überlauf findet statt, wenn von einer REAL-Funktion eine Zahl erzeugt wird, die größer als 3,402823E+38 oder kleiner als -3,402823E+38 ist. Der Ausgang OK der Funktion wird abgeschaltet und das Ergebnis auf plus unendlich (bei einer Zahl größer als 3,402823E+38) bzw. minus unendlich (bei einer Zahl kleiner als –3,402823E+38) gesetzt. Durch eine Abfrage des Ausgangs OK können Sie feststellen, wo dies stattfindet.
POS_INF NEG_INF = 7F800000h – IEEE-Hexadezimaldarstellung von "plus unendlich" = FF800000h – IEEE-Hexadezimaldarstellung von "minus unendlich"

Werden die durch Überlauf erzeugten Unendlichwerte als Operanden für andere REAL-Funktionen verwenden, kann es dadurch zu einem undefinierten Ergebnis kommen. Dieses Ergebnis wird "keine Zahl" (NaN = Not a Number) genannt . Das Ergebnis der Addition von plus unendlich und minus unendlich ist zum Beispiel undefiniert. Wird die Funktion ADD_REAL aufgerufen mit den Operanden plus unendlich und minus unendlich, dann ist das Ergebnis "NaN". Wird ein NaN-Ergebnis in eine andere Funktion eingegeben, gibt sie das Ergebnis weiter. Beispiel: Ist NaN_ADD der erste Operand der Funktion SUB_REAL, dann ist NaN_ADD das Ergebnis von SUB_REAL. Sind beide Operatoren einer Funktion NaNs, dann geht der erste durch. Über diese Eigenschaft, die NaNs durch Funktionen weiterzugeben, können Sie feststellen, wo das NaN herstammt. Jede REAL-Funktion, die ein NaN erzeugen kann, besitzt ein spezielles NaN, über das sie identifiziert werden kann.
NaN_ADD. NaN_SUB NaN_MUL NaN_DIV NaN_SQRT NaN_LOG NaN_POW0 NaN_SIN NaN_COS NaN_TAN NaN_ASIN NaN_ACOS NaN_BCD REAL_INDEF = = = = = = = = = = = = = = 7F81FFFFh 7F81FFFFh 7F82FFFFh 7F83FFFFh 7F84FFFFh 7F85FFFFh 7F86FFFFh 7F87FFFFh 7F88FFFFh 7F89FFFFh 7F8AFFFFh 7F8BFFFFh 7F8CFFFFh FFC00000h – – – – – – – – – – – – – – Reeller Additionsfehlerwert in Hex Reeller Subtraktionsfehlerwert in Hex Reeller Multiplikationsfehlerwert in Hex Reeller Divisionsfehlerwert in Hex Reeller Quadratwurzelfehlerwert in Hex Reeller Logarithmusfehlerwert in Hex Reeller Exponentfehlerwert in Hex Reeller Sinusfehlerwert in Hex Reeller Kosinusfehlerwert in Hex Reeller Tangensfehlerwert in Hex Reeller Arkussinusfehlerwert in Hex Reeller Arkuskosinusfehlerwert in Hex Fehler BCD-4 in reelle Zahl reell undefiniert, Fehler Division durch Null

GFK-1503-GE

Kapitel 7 Programmdaten

7-13

7

Zeitkontakte
Es gibt vier Zeitkontakte. Mit ihnen können in regelmäßigen Abständen andere Programmfunktionen mit Stromflußimpulsen versorgt werden. Die Zeitwerte der vier Zeitkontakte sind 0,01 s, 0,1 s,, 1 s und 1 Minute. Der Zustand dieser Kontakte ändert sich während der Zyklusausführung nicht. Die von den Kontakten gelieferten Impulse haben ein 1:1-Taktverhältnis. Die Kontakte werden als T_10MS (0,01 s), T_100MS (0,1 s), T_SEC (1 s), und T_MIN (1 min) angesprochen. Das nachstehende Taktdiagramm zeigt das Schaltverhalten dieser Kontakte.
T XXXXX X SEC

X/2 SEC

X/2 SEC

Diese Zeitkontakte stellen bestimmte Adressen im %S-Speicher dar.

7-14

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

Kapitel

Die Service Request Funktion

8
In diesem Kapitel wird die Bedienanforderungsfunktion (SVCREQ) erläutert, mit der ein spezieller SPS-Dienst angefordert wird. Es werden die SVCREQParameter für die VersaMax CPU beschrieben.
n n n n n

SVCREQ-Funktionsnummern Format der SVCREQ-Funktion SVCREQ 1: Timer für konstante Zyklusdauer verändern/lesen SVCREQ 2: Fensterzeiten lesen SVCREQ 3: Betriebsart des ProgrammiergeräteKommunikationsfenster wechseln SVCREQ 4: Betriebsart des System-Kommunikationsfensters wechseln SVCREQ 6: Anzahl der Worte für Prüfsumme verändern/lesen SVCREQ 7: Zeituhr lesen oder einstellen SVCREQ 8: Watchdog-Zeitgeber rücksetzen SVCREQ 9: Zyklusdauer seit Zyklusbeginn lesen SVCREQ 10: Ordnername lesen SVCREQ 11: SPS ID lesen SVCREQ 13: SPS abschalten (Stop) SVCREQ 14: Fehler löschen SVCREQ 15: Zuletzt eingetragenen Fehlertabelleneintrag lesen SVCREQ 16: Betriebszeituhr lesen SVCREQ 18: E/A-OVERRIDE-Zustand lesen SVCREQ 23: Hauptprüfsumme lesen SVCREQ 26/30: E/A abfragen

n

n n n n n n n n n n n n n

GFK-1503-GE

8-1

8

SVCREQ Funktionsnummern
Jede Bedienanforderung hat ihre eigene Funktionsnummer. Diese Funktionsnummern sind in der nachstehenden Tabelle zusammengefaßt.
Funktion #
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19-22 23 26, 30 27, 28 29 31-255 Fensterzeiten lesen Betriebsart und Zeit des ProgrammiergeräteKommunikationsfenster verändern Betriebsart und Zeit des System-Kommunikationsfensters ändern Reserviert Anzahl der Worte für Prüfsumme verändern/lesen Zeituhr einstellen/lesen Watchdog-Zeitgeber rücksetzen Zyklusdauer seit Zyklusbeginn lesen Ordnername lesen SPS ID lesen Reserviert SPS abschalten Fehlertabellen löschen Zuletzt eingetragenen Fehlertabelleneintrag lesen Betriebszeituhr lesen Reserviert E/A-OVERRIDE-Zustand lesen Reserviert Hauptprüfsumme lesen E/A abfragen Reserviert Verstrichene Stromausfallzeit lesen Reserviert

Beschreibung
Timer für konstante Zyklusdauer verändern/lesen

8-2

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

8

Format der SVCREQ-Funktion
Die SVCREQ-Funktion besitzt drei Eingänge und einen Ausgang.
Freigabe Funktionsnummer Anfangsadresse SVC_ REQ FNC PARM OK

Erhält die SVCREQ Stromfluß, wird die SPS aufgefordert, die an FNC angegebene Funktionsnummer auszuführen. Die Parameter für die Funktion liegen ab der für PARM angegebenen Referenz. Dies ist der Anfang des "Parameterblocks" für die Funktion. Die Nummer der benötigten 16-BitAdressen hängt von der verwendeten SVCREQ-Funktion ab. Parameterblöcke können als Eingänge für die Funktion sowie als Adresse benutzt werden, bei der die Daten nach der Bearbeitung der Funktion ausgegeben werden können. Auf die von der Funktion zurückgegebenen Daten wird daher auf die gleiche Adresse zugegriffen, die auch für PARM spezifiziert wurde. Die SVCREQ-Funktion gibt den Stromfluß weiter, solange keine falsche Funktionsnummer, falsche Parameter, oder außerhalb des zulässigen Bereichs liegenden Adressen angegeben wurden. Bei bestimmten SVCREQ-Funktionen gibt es noch andere Fehlerursachen.

Parameter der SVCREQ-Funktion
Eingang/ Ausgang Freigabe FNC PARM ok Wahlmöglichkeiten Stromfluß Beschreibung Bedienanforderung wird ausgeführt, wenn Freigabe stromführend ist.

I, Q M, T, G, R, Enthält die Konstante oder Referenz für den angeforderten Dienst. AI, AQ, Konstante I, Q M, T, G, R, AI, AQ Stromfluß, kein Stromfluß Enthält die Anfangsadresse des Parameterblocks für den angeforderten Dienst. OK wird durchgeschaltet, wenn die Funktion fehlerfrei ausgeführt wurde.

GFK-1503-GE

Kapitel 8 Die Service Request Funktion

8-3

8 Beispiel der SVCREQ-Funktion
Ist in dem Beispiel der Freigabeeingang %I0001 EIN, dann wird die SVCREQFunktion Nummer 7 mit dem bei der Adresse %R0001 beginnenden Parameterblock aufgerufen. Ausgangsspule %Q0001 wird durchgeschaltet, wenn die Operation erfolgreich war.
%I0001 SVC_ REQ CONST 00007 %R0001 FNC PARM %Q0001

8-4

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

8

SVCREQ 1: Timer für konstante Zyklusdauer verändern/lesen
Sie können mit SVCREQ 1 die Betriebsart "konstante Zyklusdauer" aktivieren/deaktivieren, die Länge der konstanten Zyklusdauer verändern, auslesen, ob die konstante Zyklusdauer momentan aktiviert ist, oder die Länge der konstante Zyklusdauer auslesen.

Eingangsparameterblock für SVCREQ 1
Bei dieser Funktion ist der Parameterblock zwei Worte lang.

Betriebsart "konstante Zyklusdauer" deaktivieren
Um die Betriebsart "konstante Zyklusdauer" zu deaktivieren geben Sie die SVCREQ-Funktion #1 mit diesem Parameterblock ein:
Adresse Adresse + 1 0 wird ignoriert

Betriebsart "konstante Zyklusdauer" aktivieren
Um die Betriebsart "konstante Zyklusdauer" zu aktivieren geben Sie die SVCREQ-Funktion #1 mit diesem Parameterblock ein:
Adresse Adresse + 1 1 0 oder Timerwert

Hinweis: Soll der Timer einen neuen Wert benutzen, geben Sie diesen in das zweite Wort ein. Soll der Timerwert nicht verändert werden, geben Sie 0 in das zweite Wort ein. Wurde zuvor noch kein Timerwert eingestellt, schaltet die Funktion den Ausgang OK ab, wenn 0 eingegeben wird.

Konstante Zyklusdauer ändern
Um den Timerwert zu verändern ohne die Einstellung des Zyklusmodus zu verändern, geben Sie die SVCREQ-Funktion #1 mit diesem Parameterblock ein:
Adresse Adresse + 1 2 neuer Timerwert

GFK-1503-GE

Kapitel 8 Die Service Request Funktion

8-5

8
Zustand und Zeit von konstantem Zyklus lesen
Um den aktuellen Wert und Zustand des Timers zu lesen ohne dabei etwas zu verändern, geben Sie die SVCREQ-Funktion #1 mit diesem Parameterblock ein:
Adresse Adresse + 1 3 wird ignoriert

Die Funktion wird erfolgreich ausgeführt, wenn nicht 1. als angeforderte Operation eine von 0, 1, 2 oder 3 verschiedene Zahl eingegeben wird. 2. der Wert der Zyluszeit größer ist als 500 ms (0,5 s). 3. die konstante Zyklusdauer aktiviert ist, ohne daß ein Timerwert programmiert wurde, oder ein alter Wert von 0 für den Timer eingestellt wurde. Nach der Ausführung der Funktion gibt sie den Timerstatus und -wert unter den gleichen Parameterblockadressen zurück.
0 = inaktiv Adresse Adresse + 1 1 = aktiv aktueller Timerwert

Beispiel für SVCREQ 1
Wird in diesem Beispiel Kontakt OV_SWP gesetzt, dann wird der Timer für konstante Zyklusdauer gelesen, um zwei Millisekunden erhöht und der neue Timerwert zur SPS zurückgeschickt. Der Parameterblock liegt im lokalen Speicher unter de Adresse %R0050. Da die Funktionen MOVE und ADD drei horizontale Kontaktpositionen benötigen, wird in dem Programmbeispiel der diskrete interne Merker %M00001 als temporäre Adresse verwendet, um das erfolgreiche Ergebnis der ersten Strompfadzeile zu halten. Bei jedem Zyklus, bei dem OV_SWP nicht gesetzt wird, wird %M00001 abgeschaltet.
OV_SWP MOVE WORD CONST 00003 IN Q CONST 00001 %R0050 SVC_ REQ FNC PARM %R0051 CONST 00002 ADD_ INT I1 I2 Q %R00051 %M00001 ( )

%M00001 MOVE WORD CONST 00001 IN Q %R00050 CONST 00001 %R00050 SVC_ REQ FNC PARM

8-6

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

8

SVCREQ 2: Fensterzeiten lesen
Mit SVCREQ 2 können die Zeitwerte von ProgrammiergeräteKommunikationsfenster und System-Kommunikationsfenster gelesen werden. Diese Fenster können im zeitbegrenzten Modus oder im Modus "vollständige Bearbeitung" betrieben werden.
Modus
Zeitbegrenzter Modus

Wert
0

Beschreibung
Die Bearbeitungszeit des Fensters ist auf 6 ms begrenzt. Das Fenster ist beendet, wenn es keine Aufgaben mehr gibt oder wenn die 6 ms abgelaufen sind. Unabhängig von der einem Fenster zugewiesenen Zeit ist das Fenster solange offen, bis alle innerhalb dieses Fensters zu erledigenden Arbeiten abgeschlossen sind (maximal 400 ms).

Vollständige Bearbeitung

2

Ein Fenster wird deaktiviert, wenn der Zeitwert Null ist.

Ausgangsparameterblock für SVCREQ 2
Der Parameterblock ist drei Worte lang:
Oberes Byte Adresse Adresse + 1 Adresse + 2 Modus Modus Unteres Byte Wert in ms Wert in ms Programmiergerätefenster SystemKommunikationsfenster

muß Null sein muß Null sein Reserviert

Alle Parameter sind Ausgangsparameter. Zur Programmierung dieser Funktion brauchen keine Werte in den Parameterblock eingegeben zu werden.

Beispiel für SVCREQ 2
Wird im nachstehenden Beispiel der Freigabeausgang %Q00102 gesetzt, schreibt die CPU den aktuellen Zeitwert des Fensters ab der Adresse %R0010 in den Parameterblock.
%Q00102 SVC_ REQ CONST 00002 %R0010 FNC PARM

GFK-1503-GE

Kapitel 8 Die Service Request Funktion

8-7

8

SVCREQ 3: Betriebsart des ProgrammiergeräteKommunikationsfensters wechseln
Mit SVCREQ 3 stellen Sie den Modus des ProgrammiergeräteKommunikationsfensters (zeitbegrenzter Modus oder vollständige Bearbeitung) ein. Der Wechsel erfolgt in dem auf den Funktionsaufruf folgenden nächsten CPU-Zyklus. Die Dauer des Fensters kann nicht verändert werden, sie beträgt immer 6 ms. SVCREQ 3 gibt Stromfluß nach rechts weiter, sofern der Wert 0 (zeitbegrenzter Modus) oder 2 (vollständige Bearbeitung) eingegeben wurde. Der Parameterblock ist ein Wort lang:

Betriebsart des Programmiergeräte-Kommunikationsfensters wechseln
Zum Verändern des Programmiergerätefensters geben Sie SVCREQ 3 mit diesem Parameterblock ein:
Oberes Byte Adresse Modus Unteres Byte 6

Beispiel für SVCREQ 3
Wird im folgenden Beispiel der Freigabeeingang %I006 stromführende dann wird das Programmiergeräte-Kommunikationsfenster aktiviert und erhält einen Wert von 6 ms zugewiesen. Der Parameterblock steht in der ReferenzSpeicheradresse %R0051.
%I0006 MOVE WORD CONST 0006 IN Q %R0051 CONST 00003 %R0051 SVC_ REQ FNC PARM

8-8

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

8

SVCREQ 4: Betriebsart des SystemKommunikationsfensters wechseln
Mit SVCREQ 4 stellen Sie den Modus des System-Kommunikationsfensters (zeitbegrenzter Modus oder vollständige Bearbeitung) ein. Der Wechsel erfolgt in dem auf den Funktionsaufruf folgenden nächsten CPU-Zyklus. Die Dauer des Fensters kann nicht verändert werden, sie beträgt immer 6 ms. SVCREQ 4 gibt Stromfluß nach rechts weiter, sofern der Wert 0 (zeitbegrenzter Modus) oder 2 (vollständige Bearbeitung) eingegeben wurde. Der Parameterblock ist ein Wort lang:

Betriebsart des System-Kommunikationsfensters wechseln.
Zum Verändern des Programmiergerätefensters geben Sie SVCREQ 4 mit diesem Parameterblock ein:
Oberes Byte Adresse Modus Unteres Byte 6

Beispiel für SVCREQ 4
Wird im folgenden Beispiel der Freigabeeingang %I0003 stromführend, wechselt das System-Kommunikationsfenster in die Betriebsart "vollständige Bearbeitung". Der Parameterblock steht beider Adresse %R0025.
%I0003 MOVE_ WORD CONST 0200 IN Q %R0025 CONST 0004 %R0025 SVC_ REQ FNC PARM

GFK-1503-GE

Kapitel 8 Die Service Request Funktion

8-9

8

SVCREQ 6: Anzahl der Worte für Prüfsumme verändern/lesen
Mit SVCREQ 6 können Sie die Anzahl der Worte lesen oder einstellen, die im Programm zur Bildung der Prüfsumme verwendet werden. Die Funktion wird ausgeführt, solange als geforderte Operation keine von 0 oder 1 verschiedene Zahl eingegeben wird.

Parameterblockformate für SVCREQ 6
Der Parameterblock ist zwei Worte lang: Zum Lesen der Anzahl der Worte muß das erste Wort im Parameterblock eine Null enthalten:
Adresse Adresse + 1 0 (Anzahl Worte lesen) wird ignoriert

Im zweiten Wort des Parameterblocks gibt die Funktion die aktuelle Anzahl Worte zurück.
Adresse Adresse + 1 0 Aktuelle Anzahl Worte

Zum Verändern der Anzahl Worte muß das erste Wort im Parameterblock eine Eins enthalten:
Adresse Adresse + 1 1 (Anzahl Worte verändern) neue Anzahl Worte (0 oder 32)

Die SPS stellt die Anzahl der in der Prüfsumme verwendeten Worte auf den neuen Wert ein.

8-10

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

8 Beispiel für SVCREQ 6
Wird in dem Beispiel der Freigabekontakt FST_SCN durchgeschaltet, dann werden die Parameterblöcke für die Prüfsummenfunktion aufgebaut. Wird weiter hinten im Programm der Eingang %I0137 stromführend, dann liest die SVCREQ-Funktion die Anzahl der in der Prüfsummenbildung berücksichtigten Wörter. Der Parameterblock für die Lesefunktion steht in %R0150-151. Die Funktion ADD addiert 32 zu der aktuellen Anzahl Worte in %R0151 und trägt das Ergebnis in %R0153 ein. Der Parameterblock für die Änderungsfunktion steht in %R00152-153. Die zweite SVCREQ wechselt dann auf die neue Anzahl Worte, die in %R0153 spezifiziert ist.
FST_SCN XOR_ INT %R0150 %R0150 I1 I2 Q %R0150 CONST 00001 MOVE INT IN Q %R0152

%I0137 SVC_ REQ CONST 00006 %R0150 FNC PARM %R0151 CONST 00032 ADD_ INT I1 I2 Q %R0153 CONST 00006 %R0152 SVC_ REQ FNC PARM

GFK-1503-GE

Kapitel 8 Die Service Request Funktion

8-11

8

SVCREQ 7: Zeituhr lesen oder einstellen
Mit SVCREQ 7 können Sie die Zeituhr in der SPS lesen oder einstellen. Die Daten können in BCD oder ASCII sein. Die Jahreszahl kann mit zwei oder vier Stellen angegeben werden. Die Funktion wird erfolgreich ausgeführt, sofern bei der geforderten Operation nicht eine von 0 (lesen) oder 1 (ändern) verschiedene Zahl eingegeben oder ein ungültiges Datenformat angegeben oder die Daten in einem hier nicht erlaubten Format zur Verfügung gestellt werden.

Parameterblockformat für SVCREQ 7
Bei den Datum/Zeitfunktionen ist die Länge des Parameterblocks vom Datenformat abhängig. Der Datenblock kann in BCD oder ASCII sein. Das BCD-Format belegt 6 Worte, gepacktes ASCII-Format benötigt 12 Worte (13 Worte bei 4-stelliger Jahreszahl). Für beide Datentypen gilt: n Die Stunden werden im 24-Stunden-Format gespeichert. n Der Wochentag ist eine Zahl zwischen 1 (Sonntag) und 7 (Samstag).
2-stellige Jahreszahl Adresse 0 = Zeit und Datum lesen 1 = Zeit und Datum einstellen 1 = BCD-Format 3 = gepacktes ASCIIFormat Daten 4-stellige Jahreszahl 0 = Zeit und Datum lesen 1 = Zeit und Datum einstellen 81h = BCD-Format 83h = gepacktes ASCIIFormat Daten

Adresse + 1

Adresse + 2 bis Ende

Die Worte ab Wort 3 bis zum Ende des Parameterblocks enthalten Ausgangsdaten, die von einer Lesefunktion zurückgegeben wurden, oder neue Daten, die von einer Änderungsfunktion geliefert wurden. In beiden Fällen ist das Format dieser Datenworte das gleiche. Beim Lesen von Datum und Zeit werden die Worte zwischen (Adresse + 2) und dem Ende des Parameterblocks bei der Eingabe ignoriert.

8-12

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

8 SVCREQ 7 Parameterblockinhalt: BCD-Format
Im BCD-Format belegt jedes Datum- und Zeitelement ein Byte. Der Parameterblock ist somit sechs Worte lang.

2-stellige Jahreszahl
Das letzte Byte des sechsten Wortes wird nicht verwendet. Beim Einstellen von Datum und Uhrzeit wird dieses Byte ignoriert. Beim Lesen von Datum und Uhrzeit gibt die Funktion 00 zurück.
Parameterblockformat: Oberes Byte Unteres Byte Beispiel: Datum und Uhrzeit im BCD-Format lesen (Sonntag, 3. Juli 1998, 14:45:30 Uhr)

1 = einstellen oder

0 = lesen Adresse Adresse + 1 Adresse + 2 Adresse + 3 Adresse + 4 Adresse + 5

0 (lesen) 1 (BCD-Format) 07 (Juli) 14 (Stunden) 30 (Sekunden) 00 98 (Jahr) 03 (Tag) 45 (Minuten) 06 (Freitag)

1 (BCD-Format) Monat Stunden Sekunden (Null) Jahr Tag Minuten Wochentag

4-stellige Jahreszahl
Der Parameterblock ist sechs Worte lang. Alle Bytes werden verwendet.
Parameterblockformat: Oberes Byte Unteres Byte Beispiel: Datum und Uhrzeit im BCD-Format lesen (Sonntag, 3. Juli 1998, 14:45:30 Uhr)

1 = einstellen oder

0 = lesen Adresse Adresse + 1 Adresse + 2 Adresse + 3 Adresse + 4 Adresse + 5

00 00 19 (Jahr) 03 (Tag) 45 (Minuten) 06 (Freitag)

00 (lesen) 81h (BCD, 4stellig) 98 (Jahr) 07 (Juli) 14 (Stunden) 30 (Sekunden)

81h (BCD-Format, 4-stellig) Jahr Tag Minuten Wochentag Jahr Monat Stunden Sekunden

GFK-1503-GE

Kapitel 8 Die Service Request Funktion

8-13

8 SVCREQ 7 Parameterblockinhalt: Gepacktes ASCII-Format
Im gepackten ASCII-Format ist jede Stelle der Zeit- und Datumelemente ein Byte im ASCII-Format. Zur Formatierung von Ausdruck oder Anzeige sind Leerzeichen und Doppelpunkte in den Daten eingebettet. Das ASCII-Format benötigt 12 Worte im Parameterblock (13 Worte für 4-stellige Jahreszahl).

2-stellige Jahreszahl
Parameterblockformat: Oberes Byte Unteres Byte 1 = einstellen oder 0 = lesen Beispiel: Daten und Zeit im gepackten ASCII-Format lesen (Montag, 5. Okt. 1998, 23:13:00 Uhr)

Adresse Adresse + 1 Adresse + 2 Adresse + 3 Adresse + 4 Adresse + 5 Adresse + 6 Adresse + 7 Adresse + 8 Adresse + 9 Adresse + 10 Adresse + 11
38 (8) 31 (1) 20 (Leerzeichen) 35 (5) 31 (1) 3A ( : ) 33 (3) 30 (0) 20 (Leerzeichen) 32 (2: Mon.)

0 (lesen) 3 (ASCII-Format) 39 (9) 20 (Leerzeichen) 30 (0) 30 (führende 0) 20 (Leerzeichen) 31 (1) 31 (1) 3A ( : ) 30 (0) 30 (führende 0)

3 (ASCII-Format) Jahr Monat (Leerzeichen) Tag Stunden : Minuten Sekunden (Leerzeichen) Wochentag Jahr (Leerzeichen) Monat Tag (Leerzeichen) Stunden Minuten : Sekunden Wochentag

4-stellige Jahreszahl
Parameterblockformat: Oberes Byte Unteres Byte 1 = einstellen oder 0 = lesen Beispiel: Daten und Zeit im gepackten ASCII-Format lesen (Montag, 5. Okt. 1998, 23:13:00 Uhr)

Adresse Adresse + 1 Adresse + 2 Adresse + 3 Adresse + 4 Adresse + 5 Adresse + 6 Adresse + 7 Adresse + 8 Adresse + 9 Adresse + 10 Adresse + 11 Adresse + 12
39 (9) 38 (8) 31 (1) 20 (Leerzeichen) 35 (5) 31 (1) 3A ( : ) 33 (3) 30 (0) 20 (Leerzeichen) 32 (2: Mon.)

0 (lesen) 83h (ASCII 4-stellig) 31 (1) 39 (9) 20 (Leerzeichen) 30 (0) 30 (führende 0) 20 (Leerzeichen) 31 (1) 31 (1) 3A ( : ) 30 (0) 30 (führende 0)

83h (ASCII 4-stellig) Jahr (Hunderter) Jahr (Einer) Monat (Zehner) (Leerzeichen) Tagesdatum (Einer) Stunden (Zehner) : (Doppelpunkt) Minuten (Einer) Sekunden (Zehner) (Leerzeichen) Wochentag (Einer) Jahr (Tausender) Jahr (Zehner) (Leerzeichen) Monat (Einer) Tagesdatum (Zehner) (Leerzeichen) Stunden (Einer) Minuten (Zehner) : (Doppelpunkt) Sekunde (Einer) Wochentag (Zehner)

8-14

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

8 Beispiel für SVCREQ 7
Wird das Beispiel von der vorausgehenden Logik aufgerufen, dann wird ein Parameterblock für die Zeituhr aufgebaut. Es fordert die aktuellen Werte von Datum und Uhrzeit an und stellt dann die Uhr im BCD-Format auf 12 Uhr mittags ein. Der Parameterblock liegt bei der Adresse %R0300. Das Feld NOON wurde an anderer Stelle im Programm so eingerichtet, daß es die Werte 12, 0 und 0 enthält. (Das Feld NOON muß auch die Daten an der Stelle %R0300 enthalten.) Das BCD-Format macht sechs zusammenhängende Speicherplätze für den Parameterblock erforderlich.
FST_SCN MOVE INT CONST +04608 %I0016 MOVE INT CONST +00000 IN Q %R0300 CONST +00001 MOVE INT IN Q %R0301 CONST +00007 %R0300 SVC_ REQ FNC PARM IN Q NOON CONST +00000 MOVE INT IN Q MIN_SEC

%T0001

%T0001

%I0017 AND_ WOR %R0303 CONST 00FF I1 I2 Q %R0303 %R0303 NOON ADD_ INT I1 I2 Q %R0303

%T0001

%I0017 MOVE INT MIN_SEC IN Q %R0304 CONST +00001 MOVE INT IN Q %R0300 CONST +00007 %R0300 SVC_ REQ FNC PARM

GFK-1503-GE

Kapitel 8 Die Service Request Funktion

8-15

8

SVCREQ 8: Watchdog-Zeitgeber rücksetzen
Mit SVCREQ 8 wird der Watchdog-Zeitgeber während eines Zyklus rückgesetzt. Normalerweise wird bei Ablauf des Watchdog-Zeitgebers die SPS ohne Warnung abgeschaltet. Mit SVCREQ 8 kann der Timer bei einer zeitaufwendigen Aufgabe (z.B. beim Warten auf die Antwort einer Kommunikationsstrecke) am Laufen gehalten werden.

Achtung
Stellen Sie sicher, daß das Rücksetzen des WatchdogZeitgebers keine negativen Auswirkungen auf den gesteuerten Prozeß hat.

Parameterblockformat für SVCREQ 8
Diese Funktion besitzt keinen zugehörigen Parameterblock.

Beispiel für SVCREQ 8
In diesem Beispiel veranlaßt Stromfluß über Freigabeausgang %Q0027 oder Eingang %I1476 oder internen Merker %M00010, daß der WatchdogZeitgeber rückgesetzt wird.
%Q0127 %I1476 SVC_ REQ FNC PARM

CONST 0008

%M0010

8-16

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

8

SVCREQ 9: Zyklusdauer seit Zyklusbeginn lesen
Mit SVCREQ 9 können Sie die Zeit (in Millisekunden) lesen, die seit Beginn des Zyklus verstrichen ist. Das Datenformat ist eine 16-Bit-Zahl ohne Vorzeichen.

Ausgangs Parameterblockformat für SVCREQ 9
Der Parameterblock besitzt nur Ausgangswerte und ist ein Wort lang.
Adresse Zeit seit Zyklusbeginn

Beispiel für SVCREQ 9
Im folgenden Beispiel wird die seit dem Anfang des Zyklus verstrichene Zeit immer in die Adresse %R0200 eingetragen. Der interne Merker %M0200 wird durchgeschaltet, wenn der Wert größer als 100 ms ist.
SVC_ REQ CONST 00009 %R0200 FNC PARM %R0200 CONST 0100 GT_ INT I1 I2 Q

%M0200

GFK-1503-GE

Kapitel 8 Die Service Request Funktion

8-17

8

SVCREQ 10: Ordnername lesen
Verwenden Sie SVCREQ 10, um den Namen des Ordners zu lesen, der gerade bearbeitet wird.

Ausgangs-Parameterblockformat für SVCREQ 10
Der Ausgangsparameterblock ist vier Worte lang. Er gibt acht ASCII-Zeichen zurück. Das letzte dieser Zeichen ist ein Nullzeichen (00h). Hat der Programmname weniger als sieben Zeichen, werden am Ende Nullzeichen hinzugefügt.
Unteres Byte Adresse Adresse + 1 Adresse + 2 Adresse + 3 Zeichen 1 Zeichen 3 Zeichen 5 Zeichen 7 Oberes Byte Zeichen 2 Zeichen 4 Zeichen 6 00

Beispiel für SVCREQ 10
Wird in diesem Beispiel der Freigabeeingang %I0301 abgeschaltet, dann wird ein Wert 10 (dem Funktionscode von "Ordnername lesen") in die Registeradresse %R0099 geladen. Der Programmblock READ_ID wird dann aufgerufen, um den Ordnernamen abzufragen. Der Parameterblock liegt unter der Adresse %R0100.
%I0301 MOVE UINT CONST 0010 IN Q %R0099 READ_ID

Program Block READ_ID

SVC_ REQ %R0099 %R0100 FNC PARM

8-18

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

8

SVCREQ 11: SPS ID lesen
Verwenden Sie SVCREQ 11, um den Namen des SPS zu lesen, die gerade das Programm bearbeitet.

Ausgangs-Parameterblockformat für SVCREQ 11
Der Ausgangsparameterblock ist vier Worte lang. Er gibt acht ASCII-Zeichen zurück. Das letzte dieser Zeichen ist ein Nullzeichen (00h). Hat die SPSKennung weniger als sieben Zeichen, werden am Ende Nullzeichen hinzugefügt.
Unteres Byte Adresse Adresse + 1 Adresse + 2 Adresse + 3 Zeichen 1 Zeichen 3 Zeichen 5 Zeichen 7 Oberes Byte Zeichen 2 Zeichen 4 Zeichen 6 00

Beispiel für SVCREQ 11
Wird in diesem Beispiel der Freigabeeingang %I0302 abgeschaltet, dann wird ein Wert 11 (dem Funktionscode von "SPS ID lesen") in die Registeradresse %R0099 geladen. Der Programmblock READ_ID wird dann aufgerufen, um die Kennung abzufragen. Der Parameterblock liegt unter der Adresse %R0100.
%I0303 MOVE UINT CONST 0011 IN Q %R0099 READ_ID

Programmblock READ_ID

SVC_ REQ %R0099 %R0100 FNC PARM

GFK-1503-GE

Kapitel 8 Die Service Request Funktion

8-19

8

SVCREQ 13: SPS abschalten (Stop)
Mit SVCREQ 13 wird die SPS am Ende des nächsten Zyklus abgeschaltet. Zu Beginn des nächsten SPS-Zyklus nehmen alle Ausgänge ihre vorgegebenen Standardzustände an. Ein informatorischer "SPS abgeschaltet" Fehler wird in der SPS-Fehlertabelle eingetragen. Der E/A-Zyklus wird entsprechend der Konfiguration fortgesetzt.

Parameterblock für SVCREQ 13
Diese Funktion besitzt keinen Parameterblock.

Beispiel für SVCREQ 13
In dem Beispiel wird SVCREQ 13 ausgeführt, wenn ein Fehler "Verlust des E/A-Moduls" auftritt. Der Eingang PARM wird nicht verwendet. Dieses Beispiel benutzt eine JUMP-Funktion zum Programmende, um ein Abschalten zu erzwingen, wenn die Funktion "SPS abschalten" erfolgreich ausgeführt wird. Die Funktionen JUMP und LABEL sind erforderlich, da der Übergang in den STOP-Modus erst am Ende des Zyklus stattfindet, in dem die Funktion ausgeführt wird.
LOS_MD %T0001

%T0001 SVC_ REQ CONST 00013 FNC PARM >> END_PRG

END_PRG

8-20

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

8

SVCREQ 14: Fehler löschen
Mit SVCREQ 14 können Sie entweder die SPS-Fehlertabelle oder die E/AFehlertabelle löschen. Der SVCREQ-Ausgang wird durchgeschaltet, solange als geforderte Operation keine von 0 oder 1 verschiedene Zahl eingegeben wird.

Eingangsparameterblock für SVCREQ 14
Bei dieser Funktion ist der Parameterblock ein Wort lang. Der Parameterblock hat nur Eingänge. Es gibt keinen Ausgangsparameterblock.
0 = SPS-Fehlertabelle löschen. 1 = E/A-Fehlertabelle löschen.

Beispiel für SVCREQ 14
In diesem Beispiel wird die SPS-Fehlertabelle gelöscht, wenn die Eingänge %I0346 und %I0349 beide stromführend sind. Die E/A-Fehlertabelle wird gelöscht, wenn die Eingänge %I0347 und %I0349 beide stromführend sind. Beide Fehlertabellen werden gelöscht, wenn die Eingänge %I0348 und %I0349 stromführend sind. Der Parameterblock für die SPS-Fehlertabelle steht in %R0500, der für die E/A-Fehlertabelle in %R0550. Beide Parameterblöcke werden an anderer Stelle im Programm eingerichtet.
%I0349 %I0346 SVC_ REQ %I0348 CONST 00014 %R0500 %I0349 %I0347 SVC_ REQ %I0348 CONST 00014 %R0550 FNC PARM FNC PARM

GFK-1503-GE

Kapitel 8 Die Service Request Funktion

8-21

8

SVCREQ 15: Zuletzt eingetragenen Fehlertabelleneintrag lesen
Mit SVCREQ 15 können Sie den zuletzt gemachten Eintrag in der SPSFehlertabelle oder der E/A-Fehlertabelle lesen. Der SVCREQ-Ausgang wird durchgeschaltet, sofern nicht eine von 0 oder 1 verschiedene Zahl als gewünschte Operation eingegeben wird oder die Fehlertabelle leer ist.

Eingangsparameterblock für SVCREQ 15
Bei dieser Funktion ist der Parameterblock 22 Worte lang. Der Eingangsparameterblock besitzt folgendes Format:
2-stellige Jahreszahl Adresse 1 = E/A-Fehlertabelle lesen. 4-stellige Jahreszahl 9 = E/A-Fehlertabelle lesen. 0 = SPS-Fehlertabelle lesen. 8 = SPS-Fehlertabelle lesen.

Das Format des Ausgangsparameterblocks hängt davon ab, ob die Funktion die Daten aus der SPS-Fehlertabelle oder der E/A-Fehlertabelle liest.
Ausgabeformat für SPS-Fehlertabelle
Oberes Byte Reserve Reserve Steckplatz Fehleraktion Unteres Byte 0 lang/kurz Reserve Chassis Task Fehlergruppe Fehlercode fehlerspezifische Daten

Ausgabeformat für E/A-Fehlertabelle
Oberes Byte Adresse + 1 Adresse + 2 Adresse + 3 Adresse + 4 Adresse + 5 Adresse + 6 Adresse + 7 Adresse + 8 bis Adresse + 18 Speichertyp Unteres Byte 1 lang/kurz

Steckplatz
Block Fehleraktion Fehlertyp fehlerspezifische Daten

Offset Chassis
Bus

Punkt
Fehlergruppe Fehlerkategorie Fehlerbeschreibung

Minuten Tag

Sekunden Stunde Monat

Adresse + 19 Adresse + 20 Adresse + 21

Minuten Tag Jahr

Sekunden Stunde Monat

2-stellige Jahr Jahreszahl oder 4-stellige Reserve Jahreszahl Format
8-22

Monat Jahr

Adresse + 21 Adresse + 22

Reserve

Monat Jahr
GFK-1503-GE

VersaMax SPS Anwenderhandbuch – Oktober 1998

8
Langer/kurzer Wert
Das erste Byte von Wortadresse +1 enthält eine Zahl, die die Länge der fehlerspezifischen Daten im Fehlereintrag angibt. Mögliche Werte sind:
SPS-Fehlertabelle. E/A-Fehlertabelle. 00 = 8 Bytes (kurz) 01 = 24 Bytes (lang) 02 = 5 Bytes (kurz) 03 = 21 Bytes (lang)

Beispiel für SVCREQ 15
Sind beide Eingänge %I0250 und %I0251 stromführend, dann schreibt die erste MOVE-Funktion eine Null (SPS-Fehlertabelle lesen) in den Parameterblock für SVCREQ 15. Ist der Eingang %I0250 stromführend und der Eingang %I0251 abgeschaltet, schreibt die MOVE-Anweisung stattdessen eine Eins (E/AFehlertabelle lesen) in den SVCREQ-Parameterblock. Der Parameterblock liegt unter der Adresse %R0600.
%I0250 %I0251 MOVE INT CONST 00000 %I0250 %I0251 MOVE INT CONST 00001 ALW_ON SVC_ REQ CONST 00015 %R0600 FNC PARM IN Q LEN 00001 %R0600 IN Q LEN 00001 %R0600

GFK-1503-GE

Kapitel 8 Die Service Request Funktion

8-23

8

SVCREQ 16: Betriebszeituhr lesen
Mit SVCREQ 16 können Sie die Betriebszeituhr des Systems lesen. Die Betriebszeituhr mißt die Zeit (in Sekunden), die seit dem Einschalten der SPS verstrichen ist.

Ausgangsparameterblock für SVCREQ 16
Diese Funktion besitzt nur einen Ausgangsparameterblock mit einer Länge von drei Worten.
Adresse Adresse + 1 Adresse + 2 Sekunden seit Einschalten (niederwertig) Sekunden seit Einschalten (höherwertig) 100-Mikrosekunden-Zeitimpulse

Die ersten beiden Worte geben die verstrichene Zeit in Sekunden an. Das letzte Wort ist die Anzahl der 100-Mikrosekunden-Zeitimpulse der aktuellen Sekunde.

Beispiel für SVCREQ 16
Ist in dem Beispiel der interne Merker %M0233 durchgeschaltet, liest die SVCREQ mit einem Parameterblock bei %R0127 die System-Betriebszeituhr und setzt den internen Merker %M0234 auf Eins. Ist der Merker %M0233 abgeschaltet, liest die SVCREQ mit einem Parameterblock bei %R0131 die Betriebszeituhr erneut. Mit der Subtraktionsfunktion wird die Differenz zwischen den beiden in den SVCREQ-Parameterblöcken gespeicherten Werten ermittelt. Bei der Subtraktion werden die 100-Mikrosekunden-Zeitimpulse ignoriert. Die ermittelte Differenz wird in die Speicheradresse %R0250 eingetragen.
%M0223 SVC_ REQ CONST 00016 %R0127 %M0233 FNC PARM %M0234 SVC_ REQ CONST 00016 %R0131 FNC PARM %R0131 %R0127 SUB_ D INT I1 I2 Q %R0250 %M0234 R %M0234 S

8-24

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

8

SVCREQ 18: E/A-OVERRIDE-Zustand lesen
Mit der SVCREQ 18 können Sie die %I- und %Q-Speicher der CPU auf OVERRIDE-Zustände überprüfen.

Ausgangsparameterblock für SVCREQ 18
Diese Funktion besitzt nur einen Ausgangsparameterblock mit einer Länge von einem Wort.
Adresse 0 = Kein OVERRIDE-Zustand eingestellt. 1 = OVERRIDE-Zustände eingestellt.

Beispiel für SVCREQ 18
Die folgende SVCREQ liest den Status des E/A-Overridespeichers in die Adresse %R1003 ein. Mit der Gleichheitsfunktion wird %R1003 überprüft um herauszufinden, ob es gleich (der Konstanten) 1 ist. Ist dies der Fall, schaltet die Gleichheitsfunktion den Ausgang %T0001 durch.
%I0001 SVC_ REQ CONST 00018 %R1003 FNC PARM CONST 00001 %R1003 EQ_ INT I1 I2 Q %T0001

GFK-1503-GE

Kapitel 8 Die Service Request Funktion

8-25

8

SVCREQ 23: Hauptprüfsumme lesen
Mit SVCREQ 23 können Sie die Hauptprüfsumme von Anwenderprogramm und Konfiguration lesen. Der SVCREQ-Ausgang ist immer durchgeschaltet, wenn die Funktion freigegeben ist.

Ausgangsparameterblock für SVCREQ 23
Der Ausgangsparameterblock für diese Funktion ist 12 Worte lang und hat folgendes Format: Die ersten beiden Elemente im Ausgangsparameterblock geben an, ob die Prüfsummen von Programm und Konfiguration in Ordnung sind. (ProgrammPrüfsummen können bei einem Speichern im RUN-Modus ungültig sein.)
Adresse Adresse + 1 Adresse + 2 Adresse + 3 Adresse + 5 Adresse + 6 Adresse + 8 Adresse + 9 Adresse + 10 Haupt-Programmprüfsumme gültig (0 = nicht gültig, 1 = gültig) Haupt-Konfigurationsprüfsumme gültig (0 = nicht gültig, 1 = gültig) Anzahl Programmblöcke (including _MAIN) Anwenderprogrammgröße in Bytes (Datentyp DWORD) Additive Prüfsumme von Programm CRC-Prüfsumme von Programm (Datentyp DWORD) Länge der Konfigurationsdaten in Bytes Additive Prüfsumme der Konfiguration CRC-Prüfsumme von Konfiguration (Datentyp DWORD)

Beispiel für SVCREQ 23
Wird in dem Beispiel der Eingang %I0251 stromführend, wird die Hauptprüfsumme in den Parameterblock bei %R0050 eingetragen und die Ausgangsspule (%Q0001) durchgeschaltet.
%I0251 SVC_ REQ CONST 00023 %R0050 FNC PARM %Q0001

8-26

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

8

SVCREQ 26/30: E/A abfragen
Mit den SVCREQs 26 und 30 können Sie überprüfen, ob die eingebauten Module mit der Softwarekonfiguration übereinstimmen. Ist dies nicht der Fall, tragen diese SVCREQs entsprechende Fehler (hinzugefügt, verloren, Diskrepanz) in die SPS- oder E/A-Fehlertabelle ein. Die SVCREQs 26 und 30 führen beide die gleiche Funktion aus. Die von diesen SVCREQs benötigte Bearbeitungszeit wächst mit der Anzahl der Konfigurationsfehler. Diese SVCREQs besitzen keinen Parameterblock. Sie geben immer Stromfluß aus.

Beispiel für SVCREQ 26
Ist in diesem Beispiel der Eingang %I0251 stromführend, überprüft die SVCREQ die installierten Module und vergleicht sie mit der Softwarekonfiguration. Der Ausgang %Q0001 wird durchgeschaltet, nachdem die SVCREQ abgeschlossen ist.
%I0251 SVC_ REQ CONST 00026 %R0050 FNC PARM %Q0001

GFK-1503-GE

Kapitel 8 Die Service Request Funktion

8-27

8

SVCREQ 29: Verstrichene Stromausfallzeit lesen
Mit SVCREQ 29 können Sie die zwischen dem letzten Netzausfall und dem letzten Einschalten verstrichene Zeit lesen. Läuft der Watchdog-Zeitgeber vor dem Abschalten ab, kann die SPS die während des Stromausfalls verstrichene Zeit nicht berechnen und diese Zeit wird auf 0 gesetzt. Der SVCREQ-Ausgang ist immer durchgeschaltet.

Ausgangsparameterblock für SVCREQ 29
Diese Funktion besitzt nur einen Ausgangsparameterblock Der Parameterblock ist drei Worte lang.
Adresse Adresse + 1 Adresse + 2 Netzausfallzeit in Sekunden (niederwertig) Netzausfallzeit in Sekunden (höherwertig) Null

Die ersten beiden Worte geben die Netzausfallzeit in Sekunden an. Das letzte Wort ist immer 0.

Beispiel für SVCREQ 29
Wird in dem Beispiel der Eingang %I0251 stromführend, wird die Stromausfallzeit in den bei %R0050 beginnende Parameterblock eingetragen und die Ausgangsspule (%Q0001) durchgeschaltet.
%I0251 SVC_ REQ CONST 00029 %R0050 FNC PARM %Q0001

8-28

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

Kapitel

Serielles E/A / SNP / RTU-Protokoll

9
Dieses Kapitel beschreibt die serielle E/A-Funktion der VersaMax CPU, mit der die Schreib-/Leseaktivitäten einer der CPU-Schnittstellen direkt aus dem Anwenderprogramm heraus gesteuert werden können. Dieses Kapitel enthält auch Anweisungen für den Einsatz von COMMREQs zur Konfiguration der seriellen CPU-Schnittstellen für das SNP-, RTU- oder serielle E/A-Protokoll.
n n

Format der COMMREQ-Funktion Konfiguration der seriellen Schnittstellen mit der COMMREQ-Funktion RTU-Slave-/SNP-Slave-Betrieb mit angeschlossenem Programmiergerät o COMMREQ-Befehlsblock zur Konfiguration des SNP-Protokolls o COMMREQ-Datenblock zur Konfiguration des RTU-Protokolls o COMMREQ-Datenblock zur Konfiguration der seriellen E/A COMMREQ-Befehle für serielle E/A
o o o o o o o o o o o

n

Schnittstelle initialisieren Eingangspuffer einrichten Eingangspuffer leeren Schnittstellenstatus lesen Schnittstellensteuerung schreiben Operation abbrechen Automatische Einwahl Bytes schreiben Bytes lesen

Zeichenfolge lesen Eine ausführliche Beschreibung der RTU- und SNP-Protokolle finden Sie in Serielle Kommunikation, Anwenderhandbuch (GFK-0582).

GFK-1503-GE

9-1

9

Format der Kommunikationsanforderungsfunktion
Die serielle E/A wird durch Verwendung der Kommunikationsanforderungsfunktionen (COMMREQ) implementiert. Die Operationen des Protokolls, wie die Übertragung eines Zeichens über die serielle Schnittstellen oder das Warten auf ein Eingangszeichen, werden über den COMMREQ-Funktionsblock implementiert. Vor der Ausführung der COMMREQ müssen alle Befehlsdaten in der richtigen Reihenfolge (in einem Befehlsblock) im CPU-Speicher eingetragen sein. Um ein wiederholtes Senden der Daten zu vermeiden, sollte die COMMREQ dann durch den Wischerkontakt ausgeführt werden. Zum Erstellen eines Befehlsblocks in den Registertabellen werden die Worte mit einer Reihe von BLKMV-Befehlen (Block kopieren) kopiert. Die COMMREQ-Funktion besitzt drei Eingänge und einen Ausgang. Empfängt die Funktion Stromfluß, wird ein Befehlsblock mit Daten zu dem angegebenen Modul geschickt.
Freigabe 1. Wort von Befehlsblock Adresse Taskkennung COMM_ REQ IN FT SYSID TASK

Parameter der COMMREQ-Funktion
Eingang/ Ausgang
Freigabe IN SYSID

Wahlmöglichkeiten
Stromfluß R, AI, AQ

Beschreibung
Die Kommunikationsanforderung wird ausgeführt, wenn die Funktion stromführend ist. IN enthält das erste Wort des Befehlsblocks.

I, Q, M, T, G, SYSID enthält Chassisnummer (höherwertiges Byte) und Steckplatznummer (niederwertiges Byte) des Zielgerätes. Für die R, AI, AQ, CPU muß SYSID Chassis/Steckplatz 0 angeben. Konstante R AI, AQ, Konstante Stromfluß, kein Stromfluß TASK gibt die Schnittstelle an, für die die Operation gedacht ist: Task 19 für Schnittstelle 1 Task 20 für Schnittstelle 2 FT wird durchgeschaltet, wenn bei der Bearbeitung der COMMREQ ein Fehler erkannt wird: • Die angegebene Zieladresse ist nicht vorhanden (SYSID). • Die angegebene Task ist für das Gerät nicht zulässig (TASK). • Die Datenlänge ist 0. • Die Statuspointeradresse (im Befehlsblock) des Geräts existiert nicht.

TASK

FT

9-2

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

9
Befehlsblock für die COMMREQ-Funktion
Der Befehlsblock beginnt bei der im COMMREQ-Parameter IN angegebenen Referenz. Die Länge des Befehlsblocks ist von der zu dem Gerät geschickten Datenmenge abhängig. Der Befehlsblock enthält die Daten, die zu dem anderen Gerät übertragen werden sollen, sowie Informationen bezüglich der Ausführung des COMMREQ. Der Befehlsblock besitzt folgende Struktur:
Adresse Adresse + 1 Adresse + 2 Adresse + 3 Adresse + 4 Adresse + 5 Adresse + 6 bis Adresse + 133 Länge (in Worten) Merker "WAIT/NO WAIT" Statuspointerspeicher Statuspointeroffset Pausenüberwachungswert Maximale Kommunikationszeit Datenblock

Beispiel der COMMREQ-Funktion
Ist in dem Beispiel %M0021 stromführend, wird ein Befehlsblock, der bei %R0032 beginnt, zur CPU-Schnittstelle 2 (Chassis 0, Steckplatz 0) gesendet (Kommunikationstask 20). Tritt bei der Bearbeitung des COMMREQ ein Fehler auf, wird %Q0110 gesetzt.
%M0021 | | %R0032 CONST 0000 CONST 00020 COMM_ REQ IN FT SYSID TASK

%Q0110 ( )

GFK-1503-GE

Kapitel 9 Serielles E/A / SNP / RTU-Protokoll

9-3

9

Konfiguration der seriellen Schnittstellen mit der COMMREQ-Funktion
Die nachstehenden Tabellen geben die zum Einstellen einer seriellen Schnittstelle für SNP, RTU und serielle E/A benötigten Befehlsblockwerte an. Sofern nicht anders angegeben, sind alle Werte in Hexadezimaldarstellung. Die zur Erstellung des Befehlsblocks verwendeten BLKMV-Befehle werden in dem Beispiel beschrieben.

Zeitablauf
Wird eine Schnittstellenkonfigurations-COMMREQ zu einer seriellen Schnittstelle geschickt, an den gerade ein SNP/SNPX-Master (zum Beispiel das Programmiergerät) angeschlossen ist, dann wird die von der COMMREQ spezifizierte Konfiguration der seriellen Schnittstelle erst wirksam, nachdem die CPU einen Verlust des SNP/SNPX-Masters erkannt hat. Dies geschieht, nachdem die konfigurierte Zeit T3' nach dem Abschalten des Masters verstrichen ist. Das COMMREQ-Statuswort für die Schnittstellenkonfigurations-COMMREQ wird aktualisiert, sobald die CPU erkennt, daß die angegebene Konfiguration gültig ist. Das heißt, daß die Schnittstellenkonfigurations-COMMREQ einen Wert "COMMREQ erfolgreich" zurückgeben kann, ehe die angegebene Konfiguration tatsächlich installiert wird.

Eine weitere COMMREQ zur gleichen Schnittstelle schicken
Nachdem ein neues serielles Schnittstellenprotokoll installiert wurde, muß das Anwenderprogramm mindestens 2 Sekunden lang warten, ehe es eine weitere auf dieses Protokoll bezogene COMMREQ zur Schnittstelle schicken kann. Dies gilt für ein neues Protokoll, das durch das Speichern einer neuen Hardwarekonfiguration oder eine Schnittstellenkonfigurations-COMMREQ installiert wurde. Wurde die Schnittstelle für serielle E/A konfiguriert, muß diese Wartezeit auch nach allen STOP-RUN-Übergängen der CPU eingehalten werden.

Unzulässige Kombinationen bei der Schnittstellenkonfiguration
Die Konfigurationen beider Schnittstellen müssen kompatibel sein. Die CPU lehnt folgende Kombinationen ab:
Schnittstelle 1 inaktiv inaktiv Serielle E/A (CPU RUN/STOP-Schalter inaktiv) Serielle E/A (CPU RUN/STOP-Schalter inaktiv) Schnittstelle 2 inaktiv Serielle E/A (CPU RUN/STOP-Schalter inaktiv) inaktiv Serielle E/A (CPU RUN/STOP-Schalter inaktiv)

9-4

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

9 RTU-Slave/SNP-Slave-Betrieb mit angeschlossenem Programmiergerät
An Schnittstelle 1 oder Schnittstelle 2 kann ein Programmiergerät (Computer) angeschlossen werden, während an dieser Schnittstelle RTU-Slavemodus aktiv ist. Bei Mehrpunktverbindungen muß die CPU zur Nutzung einer entsprechenden SPS IS = konfiguriert worden sein. Beachten Sie, daß bei einer Mehrpunkt-SNPVerbindung mit der aktuell für RTU konfigurierten Schnittstelle die mit den CPUEinstellungen verknüpfte SNP ID mit der Mehrpunkt-ID übereinstimmen muß. Damit das Programmiergerät erkannt werden kann, muß es die gleichen seriellen Kommunikationsparameter (Übertragungsgeschwindigkeit, Parität, Stoppbits, usw.) wie das momentan aktive RTU Slave-Protokoll verwenden. Erkennt die CPU das Programmiergerät, entfernt sie das RTU Slave-Protokoll aus der Schnittstelle und installiert SNP Slave als momentan aktives Protokoll. SNP ID, Modem-Durchlaufzeit und Standard-Pausenzeit für diese neue SNP SlaveSitzung kommen von den konfigurierten CPU-Einstellungen, nicht von den Konfigurationen von Schnittstelle 1 und Schnittstelle 2. Die Verbindung muß innerhalb von 12 Sekunden aufgebaut sein. Nachdem der Programmieranschluß aktiviert wurde, kann der normale Datenverkehr mit dem Programmiergerät aufgenommen werden. (Nimmt das Programmiergerät den Datenverkehr nicht innerhalb von 12 Sekunden auf, wird dies als ein Verlust der Programmiergeräteverbindung betrachtet). Das Programmiergerät kann über Konfiguration oder eine COMMREQ "serielle Schnittstelle einstellen" ein neues Protokoll schicken (vom SNP Slave-Protokoll nicht unterstützte COMMREQs werden abgewiesen). Ein neues Protokoll wird erst wirksam, nachdem das Programmiergerät abgeklemmt wurde. Nachdem das Programmiergerät entfernt wurde, gibt es eine leichte Verzögerung (entsprechend der konfigurierten SNP-Zeitsperre T3'), ehe die CPU sein Fehlen bemerkt. Während dieser Zeit bearbeitet die Schnittstelle keine Nachrichten. Die CPU erkennt das Abklemmen des Programmiergerätes als eine Zeitüberschreitung im SNP Slave-Protokoll. Gehen Sie daher bei einer Deaktivierung der vom SNP Slave-Protokoll benutzten Zeitüberwachungen sehr sorgfältig vor. Erkennt die CPU das Abklemmen, installiert sie wieder das RTU Slave-Protokoll (sofern kein neues Protokoll empfangen wurde). Wurde ein neues Protokoll empfangen, installiert die CPU dieses neue Protokoll anstelle des RTU SlaveProtokolls.

GFK-1503-GE

Kapitel 9 Serielles E/A / SNP / RTU-Protokoll

9-5

9

Beispiel
1. Schnittstelle 1 benutzt das RTU Slave-Protokoll mit 9600 Baud. 2. An Schnittstelle 1 ist ein Programmiergerät angeschlossen. Das Programmiergerät verwendet 9600 Baud. 3. Die CPU installiert SNP Slave in Schnittstelle 1 und das Programmiergerät kommuniziert normal. 4. Das Programmiergerät speichert eine neue Konfiguration in Schnittstelle 1. Die neue Konfiguration stellt die Schnittstelle für SNP Slave auf 4800 Baud ein (wird erst wirksam, nachdem die Schnittstelle die Datenverbindung mit dem Programmiergerät verloren hat). 5. Die neue Konfiguration wird wirksam, nachdem die Schnittstelle die Datenverbindung mit dem Programmiergerät verloren hat.

9-6

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

9 COMMREQ-Befehlsblock zur Konfiguration des SNP-Protokolls
Werte Adresse Adresse + 1 Adresse + 2 Adresse + 3 10H 0 = NO WAIT 0008 = %R, Registerspeicher Zahl, die die Adresse des COMMREQStatuswortes ab Null angibt (zum Beispiel gibt ein Wert 99 eine Statuswort-Adresse 100 an). 0 (nur im Modus WAIT/NO WAIT verwendet) 0 (nur im Modus WAIT/NO WAIT verwendet) FFF0H 0001 0000=Slave 7=38400, 6=19200, 5=9600, 4=4800 0 = keine, 1 = ungerade, 2 = gerade 1 = keine 0 = keine, 1 = 10 ms, 2 = 100 ms, 3 = 500 ms 0 = lang, 1 = mittel, 2 = kurz, 3 = keine 1 = 8 Bits 0 = 1 Stoppbit, 1 = 2 Stoppbits nicht benutzt nicht benutzt anwenderspezifisch* anwenderspezifisch* anwenderspezifisch* anwenderspezifisch* Bedeutung Datenblocklänge Merker WAIT/NO WAIT Statuswortpointer-Speichertyp Statuswortpointer-Offset

Adresse + 4 Adresse + 5 Adresse + 6 Adresse + 7 Adresse + 8 Adresse + 9 Adresse + 10 Adresse + 11 Adresse + 12 Adresse + 13 Adresse + 14 Adresse + 15 Adresse + 16 Adresse + 17 Adresse + 18 Adresse + 19 Adresse + 20 Adresse + 21

Pausenüberwachungswert Maximale Kommunikationszeit Befehlswort (serielle Schnittstelle einstellen) Protokoll: 1=SNP Schnittstellenmodus Übertragungsgeschwindigkeit Parität Ablaufsteuerung Durchlaufverzögerung Zeitüberwachung Bits pro Zeichen Stoppbits Schnittstelle Duplexmodus Teilnehmerkennung Bytes 1 und 2 Teilnehmerkennung Bytes 3 und 4 Teilnehmerkennung Bytes 5 und 6 Teilnehmerkennung Bytes 7 und 8

*

Die Teilnehmerkennung für SNP Slave-Schnittstellen ist in Worte gepackt, wobei das niederwertige Zeichen im niederwertigen Byte des Wortes steht. Sind zum Beispiel die ersten beiden Zeichen "A” und "B,” dann enthält Adresse + 18 den Hexadezimalwert 4241.

GFK-1503-GE

Kapitel 9 Serielles E/A / SNP / RTU-Protokoll

9-7

9 COMMREQ-Datenblock zur Konfiguration des RTU-Protokolls
Werte
Erste 6 Worte Adresse + 6 Adresse + 7 Adresse + 8 Adresse + 9 Adresse + 10 Adresse + 11 Adresse + 12 Adresse + 13 Adresse + 14 Adresse + 15 Adresse + 16 Adresse + 17 Adresse + 18 Adresse + 19—21 FFF0H 0003 0000 6=19200, 5=9600, 4=4800 0 = keine, 1 = ungerade, 2 = gerade 0 = Hardware, 1 = keine nicht benutzt nicht benutzt nicht benutzt nicht benutzt nicht benutzt 0 = 2-Draht, 1 = 4-Draht Stationsadresse (1-247) nicht benutzt Befehl Protokoll: 0003=RTU Schnittstellenmodus 0000=Slave Übertragungsgeschwindigkeit Parität Ablaufsteuerung Durchlaufverzögerung Zeitüberwachung Bits pro Zeichen Stoppbits Schnittstelle Duplexmodus Teilnehmerkennung Teilnehmerkennung

Bedeutung
Reserviert für COMMREQ-Verwendung.

9-8

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

9 COMMREQ Datenblock zur Konfiguration des seriellen E/A-Protokolls
Werte
Erste 6 Worte Adresse + 6 Adresse + 7 Adresse + 8 Adresse + 9 Adresse + 10 Adresse + 11 Adresse + 12 Adresse + 13 Adresse + 14 Adresse + 15 Adresse + 16 Adresse + 17 Adresse + 18—21 FFF0H 0005 0 = Slave 6=19200, 5=9600, 4=4800 0 = keine, 1 = ungerade, 2 = gerade 0 = Hardware, 1 = keine 0 = keine 0 = Lang 0=7 Bits, 1=8 Bits 0 = 1 Stoppbit, 1 = 2 Stoppbits nicht benutzt 0 = 2-Draht, 1 = 4-Draht nicht benutzt Befehl Protokoll: 0005=Serielle E/A Schnittstellenmodus Übertragungsgeschwindigkeit Parität Ablaufsteuerung Durchlaufverzögerung Zeitüberwachung Bits pro Zeichen Stoppbits Schnittstelle Duplexmodus Teilnehmerkennung

Bedeutung
Reserviert für COMMREQ-Verwendung.

GFK-1503-GE

Kapitel 9 Serielles E/A / SNP / RTU-Protokoll

9-9

9

Aufruf serieller E/A COMMREQs aus dem SPS-Zyklus
Die Implementation eines seriellen Protokolls mittels COMMREQs "serielle E/A" kann durch die SPS-Zykluszeit eingeschränkt werden. Beispiel: Verlangt das Protokoll, daß die Antwort auf eine bestimmte Meldung vom entfernten Teilnehmer innerhalb von 5 ms nach dem Empfang der Meldung erfolgt, dann kann diese Methode nicht erfolgreich sein, wenn der SPS-Zyklus 5 ms oder mehr dauert und dadurch keine Antwort innerhalb der geforderten Zeit ermöglicht. Da die serielle E/A vollständig vom Anwenderprogramm betrieben wird, geht eine als serielle E/A konfigurierte Schnittstelle im STOP-Modus automatisch auf SNP Slave, um den Datenverkehr mit dem Programmiergerät zu ermöglichen. Im STOPModus ist daher das serielle E/A-Protokoll nicht aktiv. Es ist nur aktiv, wenn die SPS im RUN-Modus ist.

Kompatibilität
Die von der seriellen E/A unterstützten COMMREQ-Funktionsblöcke werden nicht von anderen momentan bestehenden Protokollen (z.B. SNP Slave, SNP Master oder RTU Slave) unterstützt. Bei einem Versuch, sie für eine mit diesen Protokollen konfigurierte Schnittstelle zu benutzen, wird eine Fehlermeldung zurückgegeben.

9-10

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

9 Statuswort für COMMREQs "serielle E/A"
Nachdem die COMMREQ erfolgreich beendet wurde, wird im COMMREQStatuswort eine 1 zurückgegeben. Jeder andere Rückgabewert stellt einen Fehlercode dar, bei dem das untere Byte einen Hauptfehlercode und das obere Byte einen Nebenfehlercode darstellt.
Hauptfehlercode
1 (01h) 12 (0Ch)

Beschreibung
Erfolgreicher Abschluß (dies ist der erwartete Abschlußwert im COMMREQ-Statuswort). Lokaler Fehler —Fehler beim Bearbeiten eines lokalen Befehls. Der Nebenfehlercode kennzeichnet den spezifischen Fehler. 1 (01h) Befehl vom Wartetyp ist nicht erlaubt. Befehl ohne Warten benutzen. 2 (02h) COMMREQ-Befehl ist nicht unterstützt. 5 (05h) Fehler beim Schreiben von COMMREQ-Statuswort in den SPS-Speicher. 6 (06h) Unzulässiger SPS-Speichertyp angegeben. 7 (07h) Unzulässiger SPS-Speicheroffset angegeben. 8 (08h) Kein Zugriff auf SPS-Speicher möglich. 9 (09h) Datenlänge überschritten. 12 (0Ch) COMMREQ-Datenblocklänge ist zu groß. 14 (0Eh) COMMREQ-Daten ungültig. 15 (0Fh) Zuordnung von System-Betriebsmitteln zur Ausführung von COMMREQ nicht möglich. Abgesetzter Fehler — Fehler beim Bearbeiten eines abgesetzten Befehls. Der Nebenfehlercode kennzeichnet den spezifischen Fehler. 2 (02h) Länge der Zeichenfolge geht über Ende vom Referenzspeichertyp hinaus. 3 (03h) COMMREQ-Datenblocklänge ist zu klein. Zeichenfolgendaten fehlen oder sind unvollständig. 4 (04h) Empfangs-Zeitüberschreitung beim Warten auf serielle Daten. 48 (30h) Serielle Ausgangs-Zeitüberschreitung. Die serielle Schnittstelle konnte die Zeichenfolge nicht übertragen (möglicherweise wegen fehlendem CTS-Signal, wenn die serielle Schnittstelle für Hardware-Ablaufsteuerung konfiguriert ist). 50 (32h) COMMREQ-Zeitüberschreitung. Die COMMREQ wurde nicht innerhalb einer 20-SekundenZeitbegrenzung beendet. Fehler bei automatischer Einwahl — Während des Versuchs, einen Befehlsfolge an ein angeschlossenes externes Modem zu senden, ist ein Fehler aufgetreten. Der Nebenfehlercode kennzeichnet den spezifischen Fehler. 1 (01h) nicht benutzt. 2 (02h) Die Länge der Modem-Befehlsfolge geht über das Ende des Referenzspeichertyps hinaus. 3 (03h) COMMREQ-Datenblocklänge ist zu klein. Fehlende oder unvollständige AusgangsBefehlsfolgedaten. 4 (04h) Serielle Ausgangs-Zeitüberschreitung. Die serielle Schnittstelle konnte die automatische Einwahlausgabe des Modems nicht übertragen. 5 (05h) Vom Modem kam keine Antwort. Modem und Kabel überprüfen. 6 (06h) Modem hat mit BUSY [besetzt] geantwortet. Modem kann die geforderte Verbindung nicht aufbauen. Das entfernte Modem ist bereits in Gebrauch. Anschlußanforderung später nochmals versuchen. 7 (07h) Modem hat mit NO CARRIER [kein Trägersignal] geantwortet. Modem kann die geforderte Verbindung nicht aufbauen. Lokales und entferntes Modem und Telefonleitung überprüfen. 8 (08h) Modem hat mit NO DIALTONE [kein Wählsignal] geantwortet. Modem kann die geforderte Verbindung nicht aufbauen. Modemanschlüsse und Telefonleitung überprüfen. 9 (09h) Modem hat mit ERROR [Fehler] geantwortet. Modem kann die geforderte Verbindung nicht aufbauen. Modem-Befehlsfolge und Modem überprüfen. 10 (0Ah) Modem hat mit RING [Anruf] geantwortet. Dies zeigt an, daß das Modem von einem anderen Modem gerufen wird. Modem kann die geforderte Verbindung nicht aufbauen. Modembefehl später erneut versuchen. 11 (0Bh) Vom Modem wurde eine unbekannte Antwort empfangen. Modem kann die geforderte Verbindung nicht aufbauen. Modem-Befehlsfolge und Modem überprüfen. Die Antwort muß CONNECT
Kapitel 9 Serielles E/A / SNP / RTU-Protokoll 9-11

13 (0Dh)

14 (0Eh)

GFK-1503-GE

9
Hauptfehlercode
50 (32h)

Beschreibung
[verbunden] oder OK sein. COMMREQ-Zeitüberschreitung. Die COMMREQ wurde nicht innerhalb einer 20-SekundenZeitbegrenzung beendet.

9-12

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

9

COMMREQ-Befehle für serielle E/A
Zur Implementierung der seriellen E/A werden folgende COMMREQs verwendet:
n

Lokale COMMREQs - Daten werden über die serielle Schnittstelle weder empfangen noch gesendet.
o o o o o o

Schnittstelle initialisieren (4300) Eingangspuffer einrichten (4301) Eingangspuffer leeren (4302) Schnittstellenstatus lesen (4303) Schnittstellensteuerung schreiben (4304) Operation abbrechen (4399)

n

Abgesetzte COMMREQs - Daten werden über die serielle Schnittstelle empfangen und/oder gesendet.
o o o o

Automatische Einwahl (4400) Bytes schreiben (4401) Bytes lesen (4402) Zeichenfolge lesen (4403)

GFK-1503-GE

Kapitel 9 Serielles E/A / SNP / RTU-Protokoll

9-13

9
Überlappende COMMREQs
Während einige der seriellen E/A COMMREQs vollständig bearbeitet sein müssen, ehe eine andere COMMREQ bearbeitet werden kann, können andere in Wartestellung belassen werden, solange eine andere COMMREQ bearbeitet wird.

COMMREQs, die abgeschlossen sein müssen
n n n n n n n n

Automatische Einwahl (4400) Schnittstelle initialisieren (4300) Eingangspuffer einrichten (4301) Eingangspuffer leeren (4302) Schnittstellenstatus lesen (4303) Schnittstellensteuerung schreiben (4304) Operation abbrechen (4399) Serielle Schnittstelle einstellen (FFF0)

COMMREQs, die warten können, während andere ausgeführt werden
Die nachstehende Tabelle zeigt, ob eine der COMMREQs "Bytes schreiben", "Bytes lesen" und "Zeichenfolge lesen" warten kann, während eine andere COMMREQ ausgeführt wird.
NEUE COMMREQ Aktuell Automatisc Bytes Schnittstell Eingangsp Eingangsp Schnittstell Schnittstell wartende he Einwahl schreiben e initialisie- uffer uffer enstatus ensteueCOMMREQs (4400) (4401) ren (4300) einrichten entleeren lesen rung (4301) (4302) (4303) schreiben (4304 Bytes schreiben (4401) Bytes lesen (4402) Zeichenfolge lesen (4403) Nein Nein Nein Nein Ja Ja Ja Ja Ja Ja Nein Nein Ja Nein Nein Ja Ja Ja Ja Ja Ja Bytes Zeichenfol Operation Serielle lesen ge lesen abbre- Schnittstell (4402) (4403) chen e (4399) einstellen (FFF0) Ja Nein Nein Ja Nein Nein Ja Ja Ja Nein Nein Nein

9-14

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

9 Funktion "Schnittstelle initialisieren" (4300)
Diese Funktion veranlaßt, daß zu der angegebenen Schnittstelle ein Rücksetzbefehl geschickt wird. Sie hebt auch alle COMMREQs auf, die aktuell bearbeitet werden und leert den internen Eingangspuffer. RTS wird inaktiv geschaltet.

Beispiel eines Befehlsblocks für die Funktion "Schnittstelle initialisieren"
WERT (dezimal) Adresse Adresse +1 Adresse +2 Adresse +3 Adresse +4 Adresse +5 Adresse +6 0001 0000 0008 0000 0000 0000 4300 WERT (hexadezimal) 0001 0000 0008 0000 0000 0000 10CC BEDEUTUNG Datenblocklänge NOWAIT-Modus Statuswort-Speichertyp (%R) Statuswortadresse minus 1 (%R0001) nicht benutzt nicht benutzt Befehl "Schnittstelle initialisieren"

Betriebshinweise
Hinweis: Bei COMMREQs, die durch die Ausführung dieses Befehls abgebrochen wurden, wurden die entsprechenden COMMREQ-Statusworte nicht aktualisiert. Achtung: Wird diese COMMREQ gesendet, während eine COMMREQ "Bytes schreiben" (4401) eine Zeichenfolge von einer seriellen Schnittstelle aus sendet, wird die Übertragung angehalten. Die Stelle in der Zeichenfolge, an der die Übertragung angehalten wurde, ist unbestimmt. Darüberhinaus ist das Abschlußzeichen, das das Gerät von der CPU empfängt, ebenfalls unbestimmt.

GFK-1503-GE

Kapitel 9 Serielles E/A / SNP / RTU-Protokoll

9-15

9 Funktion "Eingangspuffer einrichten" (4301)
Mit dieser Funktion kann die Länge des internen Pufferspeichers verändert werden, in dem die Eingangsdaten beim Empfang abgelegt werden. In der Standardeinstellung ist dieser Puffer für maximal 2 kB eingerichtet.

Daten aus dem Puffer abrufen
Mit den Funktionen "Zeichenfolge lesen" oder "Bytes lesen" können Daten aus dem Buffer abgerufen werden. Die Daten sind vom Anwenderprogramm aus nicht direkt zugänglich. Werden die Daten nicht rechtzeitig aus dem Puffer abgerufen, können einige Zeichen verloren gehen.

Beispiel eines Befehlsblocks für die Funktion "Eingangspuffer einrichten"
Wert (dezimal) Adresse Adresse +1 Adresse +2 Adresse +3 Adresse +4 Adresse +5 Adresse +6 Adresse +7 0002 0000 0008 0000 0000 0000 4301 0064 Wert (hexadezimal) 0002 0000 0008 0000 0000 0000 10CD 0040 Bedeutung Datenblocklänge NOWAIT-Modus Statuswort-Speichertyp (%R) Statuswortadresse minus 1 (%R0001) nicht benutzt nicht benutzt Befehl "Eingangspuffer einrichten" Pufferlänge (in Worten)

Betriebshinweise
Die Pufferlänge kann nicht auf Null eingestellt werden. Wird Null als Pufferlänge eingegeben, dann wird die Pufferlänge auf den Standardwert 2 kB eingestellt. Ein Fehler wird erzeugt, wenn ein Wert von mehr als 2 kB eingestellt wird.

9-16

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

9 Funktion "Eingangspuffer leeren" (4302)
Diese Operation leert den Eingangspuffer von allen Zeichen, die über die serielle Schnittstelle empfangen, aber noch nicht mit einem Lesebefehl abgerufen wurden. Alle davon betroffenen Zeichen gehen verloren.

Beispiel eines Befehlsblocks für die Funktion "Eingangspuffer leeren"
WERT (dezimal) Adresse Adresse +1 Adresse +2 Adresse +3 Adresse +4 Adresse +5 Adresse +6 0001 0000 0008 0000 0000 0000 4302 WERT (hexadezimal) 0001 0000 0008 0000 0000 0000 10CE Bedeutung Datenblocklänge NOWAIT-Modus Statuswort-Speichertyp (%R) Statuswortadresse minus 1 (%R0001) nicht benutzt nicht benutzt Befehl "Eingangspuffer leeren"

GFK-1503-GE

Kapitel 9 Serielles E/A / SNP / RTU-Protokoll

9-17

9 Funktion "Schnittstellenstatus lesen" (4303)
Diese Funktion gibt den aktuellen Status der Schnittstelle zurück. Es können folgende Ereignisse erkannt werden: 1. Es wurde zuvor eine Leseanforderung angestoßen und die erforderliche Anzahl Zeichen wurde jetzt empfangen, oder die angegebenen Überwachungszeit ist abgelaufen. 2. Es wurde zuvor eine Schreibanforderung angestoßen und die erforderliche Anzahl Zeichen wurde jetzt gesendet, oder eine Überwachungszeit ist abgelaufen. Der von der Funktion zurückgegebene Status zeigt die beendeten Ereignisse an. Es können mehrere Zustände gleichzeitig auftreten, wenn zuvor sowohl ein Lese- als auch ein Schreibvorgang angestoßen wurden.

Beispiel eines Befehlsblocks für die Funktion "Schnittstellenstatus lesen"
WERT (dezimal) Adresse Adresse +1 Adresse +2 Adresse +3 Adresse +4 Adresse +5 Adresse +6 Adresse +7 Adresse +8 0003 0000 0008 0000 0000 0000 4303 0070 0000 WERT (hexadezimal) 0003 0000 0008 0000 0000 0000 10CF 0046 0000 Bedeutung Datenblocklänge NOWAIT-Modus Statuswort-Speichertyp (%R) Statuswortadresse minus 1 (%R0001) nicht benutzt nicht benutzt Befehl "Schnittstellenstatus lesen" Schnittstellenstatus-Speichertyp (%I) Schnittstellenstatus-Speicheroffset (%I0001)

9-18

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

9
Schnittstellenstatus
Der Schnittstellenstatus besteht aus einem Statuswort und der Anzahl Zeichen im Eingangspuffer, die von der Anwendung noch nicht abgeholt wurden (Zeichen, die empfangen wurden und verfügbar sind).
Wort 1 Wort 2 Schnittstellen-Statuswort (siehe unten) Im Eingangspuffer vorhandene Zeichen

Das Schnittstellen-Statuswort kann sein:
Bit 15 Bezeichnung RI Definition Lesevorgang läuft Bedeutung "1" "0" 14 13 RS RT Lesen erfolgreich Zeitüberschreitung beim Lesen Schreibvorgang läuft Schreiben erfolgreich Zeitüberschreitung beim Schreiben Zeichen vorhanden Überlauffehler Rahmenfehler Paritätsfehler CTS ist aktiv "1" "0" "1" "0" 12 11 10 WI WS WT "1" "0" "1" "0" "1" "0" 9 8 7 6 5 CA OF FE PE CT "1" "0" "1" "0" "1" "0" "1" "0" "1" "0" 4-0 U nicht benutzt, muß 0 sein "Bytes lesen" oder "Zeichenfolge lesen" aufgerufen Letzter Befehl "Bytes lesen" oder "Zeichenfolge lesen": Zeitüberlauf, Abbruch oder Ende "Bytes lesen" oder "Zeichenfolge lesen" erfolgreich beendet Neuer"Bytes lesen" oder "Zeichenfolge lesen" aufgerufen Zeitüberschreitung beim Empfang während "Bytes lesen" oder "Zeichenfolge lesen" Neue "Bytes lesen" oder "Zeichenfolge lesen" aufgerufen Neues "Bytes schreiben" aufgerufen Letzter Befehl "Bytes schreiben": Zeitüberlauf, Abbruch oder Ende. Letzter "Bytes schreiben" erfolgreich beendet Neues "Bytes schreiben" aufgerufen Zeitüberschreitung beim Senden während "Bytes schreiben" Neues "Bytes schreiben" aufgerufen Ungelesene Zeichen im Puffer Keine ungelesenen Zeichen im Puffer Überlauffehler an der seriellen Schnittstelle oder im internen Puffer "Schnittstellenstatus lesen" aufgerufen Rahmenfehler an serieller Schnittstelle aufgetreten "Schnittstellenstatus lesen" aufgerufen Paritätsfehler an serieller Schnittstelle aufgetreten "Schnittstellenstatus lesen" aufgerufen Die CTS-Leitung an serieller Schnittstelle ist aktiv oder die serielle Schnittstelle hat keine CTS-Leitung Die CTS-Leitung an serieller Schnittstelle ist nicht aktiv

GFK-1503-GE

Kapitel 9 Serielles E/A / SNP / RTU-Protokoll

9-19

9 Funktion "Schnittstellensteuerung schreiben" (4304)
Diese Funktion erzwingt RTS für die angegebene Schnittstelle:

Beispiel eines Befehlsblocks für die Funktion "Schnittstellensteuerung schreiben"
WERT (dezimal) Adresse Adresse +1 Adresse +2 Adresse +3 Adresse +4 Adresse +5 Adresse +6 Adresse +7 0002 0000 0008 0000 0000 0000 4304 xxxx WERT (hexadezimal) 0002 0000 0008 0000 0000 0000 10D0 xxxx Bedeutung Datenblocklänge NOWAIT-Modus Statuswort-Speichertyp (%R) Statuswortadresse minus 1 (%R0001) nicht benutzt nicht benutzt Befehl "Schnittstellensteuerung schreiben" Schnittstellen-Steuerwort

Schnittstellen-Steuerwort
15 RTS 14 U 13 U 12 U 11 U 10 U 9 U 8 U 7 U 6 U 5 U 4 U 3 U 2 U 1 U 0 U

Das Schnittstellen-Steuerwort kann sein:
15 RTS Befohlener Zustand des RTS-Ausgangs 1 = aktiviert RTS 0 = deaktiviert RTS nicht benutzt (muß Null sein)

0-14

U

Betriebshinweis
Bei der CPU-Schnittstelle 2 (RS-485) ist das RTS-Signal mit dem Sendetreiber gekoppelt. Die RTS-Steuerung hängt daher vom aktuellen Status des Sendetreibers ab. Ist der Sendetreiber nicht aktiviert, wird durch ein Erzwingen von RTS mit der COMMREQ "Schnittstellensteuerung schreiben" kein RTS auf der seriellen Leitung erzwungen. Der Zustand des Sendetreibers wird durch das Protokoll gesteuert und hängt vom aktuellen Duplexmodus der Schnittstelle ab. Im 2-Drahtund 4-Draht-Duplexmodus wird der Sendetreiber nur während des Sendens freigegeben. Daher wird auf der seriellen Leitung RTS nur dann an Schnittstelle 2 aktiv (für 2-Draht- oder 4-Draht-Duplexmodus konfiguriert), wenn Daten gesendet werden. Bei Punkt-zu-Punkt-Duplexmodus ist der Sendetreiber immer freigegeben. In Punkt-zu-Punkt-Duplexmodus gibt daher RTS auf der seriellen Leitung wieder, was mit der COMMREQ "Schnittstellensteuerung schreiben" ausgewählt wurde.

9-20

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

9

Funktion "COMMREQ abbrechen" (4399)
Diese Funktion bricht die aktuell bearbeiteten Operationen ab. Mit ihr können alle Operationen, Leseoperationen oder Schreiboperationen abgebrochen werden. Wird eine Leseoperation gerade ausgeführt und enthält der Eingangspuffer dabei nicht bearbeitete Zeichen, dann bleiben diese Zeichen im Eingangspuffer erhalten und sind für zukünftige Lesevorgänge verfügbar. Die serielle Schnittstelle wird nicht rückgesetzt.

Beispiel eines Befehlsblocks für die Funktion "Operation abbrechen"
WERT (dezimal) Adresse Adresse +1 Adresse +2 Adresse +3 Adresse +4 Adresse +5 Adresse +6 Adresse +7 0001 0000 0008 0000 0000 0000 4399 0001 WERT (hexadezimal) 0001 0000 0008 0000 0000 0000 112F 0001 Bedeutung Datenblocklänge NOWAIT-Modus Statuswort-Speichertyp (%R) Statuswortadresse minus 1 (%R0001) nicht benutzt nicht benutzt Befehl "Operation abbrechen" Transaktionstyp, der abgebrochen werden soll 1 2 3 Alle Operationen Leseoperationen Schreiboperationen

Betriebshinweise
Diese Funktion aktualisiert nicht den Status von Worten der abgebrochenen COMMREQs. Achtung: Die Stelle in der Zeichenfolge, an der die Übertragung angehalten wurde, ist unbestimmt. Darüberhinaus ist das Abschlußzeichen, das das Gerät von der CPU empfängt, ebenfalls unbestimmt.

GFK-1503-GE

Kapitel 9 Serielles E/A / SNP / RTU-Protokoll

9-21

9 Funktion "Automatische Einwahl" (4400)
Mit dieser Funktion kann die VersaMax CPU automatisch eine Modemwahl durchführen und eine vorgegebene Bytefolge senden. Um diese Funktion implementieren zu können, muß die Schnittstelle für serielle E/A konfiguriert sein. Personenrufausgabe kann zum Beispiel über drei Befehle realisiert werden, wobei drei COMMREQ-Befehlsblöcke benötigt werden: Automatische Einwahl: 04400 (1130h) Modemwahl.

Bytes schreiben: 04401 (1131h) Gibt eine ASCII-Zeichenfolge mit einer Länge zwischen 1 und 250 Bytes an, die von der seriellen Schnittstelle aus gesendet werden soll. Automatische Einwahl: 04400 (1130h) Die Unterbrechung der Telefonverbindung liegt in der Verantwortung des SPSAnwenderprogramms. Dies wird bewirkt, indem der Befehl "Automatische Einwahl" erneut ausgegeben und die Befehlsfolge zum Einhängen gesendet wird.

Befehlsblock "Automatische Einwahl"
Der Befehl "Automatische Einwahl" sendet automatisch eine Umschaltzeichenfolge gemäß der Hayes-Konvention. Wenn Sie ein Modem verwenden, das die HayesKonvention nicht unterstützt, können Sie zur Modemwahl eventuell den Befehl "Bytes schreiben" verwenden. Die nachstehende Tabelle zeigt Beispiele häufig benutzter Befehlsfolgen für Hayes-kompatible Modems:
Befehlsfolge ATDP15035559999<CR> ATDT15035559999<CR> ATDT9,15035559999<CR> ATH0<CR> ATZ <CR> Länge 16 (10h) 16 (10h) 18 (12h) 5 (05h) 4 (04h) Funktion Impulswahl der Nummer 1-503-555-9999 Mehrfrequenzwahl der Nummer 1-503555-9999 Mehrfrequenzwahl über Außenleitung mit Pause Hörer auflegen Modemkonfiguration mit intern gespeicherten Werte wiederherstellen

9-22

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

9
Beispiel eines Befehlsblocks "Automatische Einwahl"
Der COMMREQ-Befehlsblock in diesem Beispiel wählt die Nummer 234-5678 über ein Hayes-kompatibles Modem.
Wort 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Definition 0009h 0000h 0008h 0000h 0000h 0000h 04400 (1130h) 00030 (001Eh) 0012 (000Ch) 5441h 5444h 3332h 3534h 3736h 0D38h Werte Kundenspezifische Datenblocklänge (einschließlich Befehlsfolge) NOWAIT-Modus Statuswort-Speichertyp (%R) Statuswortadresse minus 1 (Register 1) nicht benutzt nicht benutzt Befehlsnummer "Automatische Einwahl" Modemantwort-Überwachungszeit (30 Sekunden) Anzahl Bytes in Befehlsfolge A (41h), T (54h) D (44h), T (54h) Telefonnummer: 2 (32h), 3 (33h) 4 (34h), 5 (35h) 6 (36h), 7 (37h) 8 (38h) <CR> (0Dh)

GFK-1503-GE

Kapitel 9 Serielles E/A / SNP / RTU-Protokoll

9-23

9 Funktion "Bytes schreiben" (4401)
Mit dieser Operation können ein oder mehrere Zeichen über die angegebene serielle Schnittstelle zum fernen Teilnehmer geschickt werden. Die zu sendenden Zeichen müssen in einem Wortspeicher stehen. Sie dürfen erst verändert werden, nachdem die Operation beendet ist. Mit einem einzigen Aufruf dieser Funktion können bis zu 250 Zeichen gesendet werden. Der Status der Operation ist erst abgeschlossen, nachdem alle Zeichen übertragen wurden oder wenn eine Zeitüberschreitung auftritt (wenn zum Beispiel Hardware-Ablaufsteuerung benutzt wird und der abgesetzte Teilnehmer die Sendung nicht freigibt).

Beispiel eines Befehlsblocks für die Funktion "Bytes schreiben"
WERT (dezimal) Adresse Adresse +1 Adresse +2 Adresse +3 Adresse +4 Adresse +5 Adresse +6 Adresse +7 Adresse +8 Adresse +9 Adresse +10 Adresse +11 0006 0000 0008 0000 0000 0000 4401 0030 0005 25960 27756 0111 WERT (hexadezimal) 0006 0000 0008 0000 0000 0000 1131 001E 0005 6568 6C6C 006F Bedeutung Datenblocklänge (einschließlich zu sendende Zeichen) NOWAIT-Modus Statuswort-Speichertyp (%R) Statuswortadresse minus 1 (%R0001) nicht benutzt nicht benutzt Befehl "Bytes schreiben" Sende-Überwachungszeit (30 Sekunden). Siehe Hinweis unten. Anzahl zu schreibende Bytes 'h' (68h), 'e' (65h) 'l' (6Ch), 'l' (6Ch) 'o' (6Fh)

In diesem Beispiel werden zwar druckbare ASCII-Zeichen verwendet, es gibt aber keine Einschränkungen bezüglich der Werte der übertragbaren Zeichen.

Betriebshinweise
Hinweis: Wird bei der Sende-Überwachungszeit Null eingegeben, dann wird der Überwachungszeitwert auf die Zeit eingestellt, die tatsächlich zur Übertragung der Daten benötigt wird, plus 4 Sekunden. Achtung: Wird eine COMMREQ "Schnittstelle initialisieren" (4300) oder eine COMMREQ "Operation abbrechen" (4399) im Modus "Alle abbrechen" oder "Schreiben abbrechen" gesendet, während diese COMMREQ eine Zeichenfolge von einer seriellen Schnittstelle aus sendet, dann wird der Sendevorgang angehalten. Die Stelle in der Zeichenfolge, an der die Übertragung angehalten wurde, ist unbestimmt. Darüberhinaus ist das Abschlußzeichen, das das Gerät von der CPU empfängt, ebenfalls unbestimmt.

9-24

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

9 Funktion "Bytes lesen" (4402)
Diese Funktion bewirkt, daß ein oder mehrere Zeichen von der angegebenen Schnittstelle gelesen werden. Die Zeichen werden aus einem internen Eingangspuffer gelesen. Die Funktion gibt sowohl die Anzahl abgerufener Zeichen als auch die Anzahl der im Eingangspuffer noch verbliebenen unbearbeiteten Zeichen zurück. Wurden Null-Eingangszeichen angefordert, dann wird nur die Anzahl der unbearbeiteten Zeichen im Eingangspuffer zurückgegeben. Sind nicht genügend Zeichen vorhanden, um die Forderung zu erfüllen und wurde als Anzahl der zu lesenden Zeichen ein von Null verschiedener Wert angegeben, dann ist der Status der Operation erst abgeschlossen, nachdem entweder eine ausreichende Anzahl Zeichen empfangen wurde oder die Überwachungszeit abgelaufen ist. In beiden Fällen gibt der Schnittstellenstatus den Grund für den Abschluß der Leseoperation an. Das Statuswort wird erst aktualisiert, nachdem die Leseoperation abgeschlossen ist (entweder wegen Zeitüberschreitung oder weil alle Daten empfangen wurden). Wird die Überwachungszeit auf Null eingestellt, bleibt die COMMREQ solange unerledigt, bis sie die geforderte Datenmenge empfangen hat oder bis sie abgebrochen wird. Ist diese COMMREQ aus irgendeinem Grund fehlerhaft, werden keine Daten in den Puffer geschrieben. Alle im Puffer bereits vorhandenen Daten bleiben erhalten und können mit der nächsten Leseanforderung abgerufen werden.

Beispiel eines Befehlsblocks für die Funktion "Bytes lesen"
WERT (dezimal) Adresse Adresse +1 Adresse +2 Adresse +3 Adresse +4 Adresse +5 Adresse +6 Adresse +7 Adresse +8 Adresse +9 Adresse +10 0005 0000 0008 0000 0000 0000 4402 0030 0005 0008 0000 WERT (hexadezimal) 0005 0000 0008 0000 0000 0000 1132 001E 0005 0008 0000 Bedeutung Datenblocklänge NOWAIT-Modus Statuswort-Speichertyp (%R) Statuswortadresse minus 1 (%R0001) nicht benutzt nicht benutzt Befehl "Bytes lesen" Lese-Überwachungszeit (30 Sekunden). Anzahl zu lesende Bytes Eingangsdatenspeichertyp (%R). Eingangsdaten-Speicheradresse (%R0001)

GFK-1503-GE

Kapitel 9 Serielles E/A / SNP / RTU-Protokoll

9-25

9
Format der Rückgabedaten für die Funktion "Bytes lesen"
Die Rückgabedaten bestehen aus der Anzahl der momentan bereits gelesenen Zeichen, der Anzahl Zeichen, die nach dem Lesevorgang im Eingangspuffer eventuell noch vorhanden sind, und den eigentlichen Eingangszeichen.
Adresse Adresse + 1 Adresse + 2 Adresse + 3 Adresse + n Anzahl gelesener Zeichen Anzahl im Eingangspuffer eventuell noch vorhandener Zeichen Die ersten beiden Zeichen (erstes Zeichen ist im unteren Byte) Drittes und viertes Zeichen (drittes Zeichen ist im unteren Byte) Nächste Zeichen

Betriebshinweis
Wird der Eingangsdatenspeicher als wortorientierter Speicher angegeben, dann wird beim Empfang einer ungeraden Anzahl Bytes das obere Byte des zuletzt geschriebenen Wortes auf Null gesetzt.

9-26

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

9 Funktion "Zeichenfolge lesen" (4403)
Mit dieser Funktion werden Zeichen solange aus der angegebenen Schnittstelle gelesen, bis ein bestimmtes Endezeichen empfangen wird. Die Funktion gibt sowohl die Anzahl abgerufener Zeichen als auch die Anzahl der im Eingangspuffer noch verbliebenen unbearbeiteten Zeichen zurück. Wurden Null Eingangszeichen angefordert, dann wird nur die Anzahl der unbearbeiteten Zeichen im Eingangspuffer zurückgegeben. Steht das Endezeichen nicht im Eingangspuffer, ist der Status der Operation erst dann abgeschlossen, wenn entweder das Endezeichen empfangen wird oder die Überwachungszeit abgelaufen ist. In beiden Fällen gibt der Schnittstellenstatus den Grund für den Abschluß der Leseoperation an. Wird die Überwachungszeit auf Null eingestellt, bleibt die COMMREQ solange unerledigt, bis sie die mit dem angegebenen Endezeichen abgeschlossene geforderte Zeichenfolge empfangen hat. Ist diese COMMREQ aus irgendeinem Grund fehlerhaft, werden keine Daten in den Puffer geschrieben. Alle im Puffer bereits vorhandenen Daten bleiben erhalten und können mit der nächsten Leseanforderung abgerufen werden.

Beispiel eines Befehlsblocks für die Funktion "Zeichenfolge lesen"
WERT (dezimal) 0005 0000 0008 0000 0000 0000 4403 0030 0013 0008 0000 WERT (hexadezimal) 0005 0000 0008 0000 0000 0000 1133 001E 000D 0008 0000 Bedeutung Datenblocklänge NOWAIT-Modus Statuswort-Speichertyp (%R) Statuswortadresse minus 1 (%R0001) nicht benutzt nicht benutzt Befehl "Zeichenfolge lesen" Lese-Überwachungszeit (30 Sekunden). Endezeichen (Wagenrücklauf): Muß zwischen 0 und 255 (0xFF) liegen Eingangsdatenspeichertyp (%R) Eingangsdaten-Speicheradresse (%R0001)

Adresse Adresse +1 Adresse +2 Adresse +3 Adresse +4 Adresse +5 Adresse +6 Adresse +7 Adresse +8 Adresse +9 Adresse +10

GFK-1503-GE

Kapitel 9 Serielles E/A / SNP / RTU-Protokoll

9-27

9
Format der Rückgabedaten für die Funktion "Zeichenfolge lesen"
Die Rückgabedaten bestehen aus der Anzahl der momentan bereits gelesenen Zeichen, der Anzahl Zeichen, die nach dem Lesevorgang im Eingangspuffer eventuell noch vorhanden sind, und den eigentlichen Eingangszeichen:
Adresse Adresse + 1 Adresse + 2 Adresse + 3 Adresse + n Anzahl gelesener Zeichen Anzahl im Eingangspuffer eventuell noch vorhandener Zeichen Die ersten beiden Zeichen (erstes Zeichen ist im unteren Byte) Drittes und viertes Zeichen (drittes Zeichen ist im unteren Byte) Nächste Zeichen

Betriebshinweis
Wird der Eingangsdatenspeicher als wortorientierter Speicher angegeben, dann wird beim Empfang einer ungeraden Anzahl Bytes das obere Byte des letzten geschriebenen Wortes auf Null gesetzt.

9-28

VersaMax SPS Anwenderhandbuch – Oktober 1998

GFK-1503-GE

Kapitel

Die PID-Funktion

10
Dieses Kapitel beschreibt die PID-Funktion (Proportional-Integral-Differential), die bei Regelungsprozessen eingesetzt wird. Die PID-Funktion vergleicht den Rückführungswert von einer Prozessvariablen mit dem gewünschten ProzessSollwert und aktualisiert eine Steuervariable auf der Grundlage der Abweichung.
n n n n n n n

Format der PID-Funktion Arbeitsweise der PID-Funktion Parameterblock für die PID-Funktion Auswahl des PID-Algorithmus Festlegen der Prozesseigenschaften Einstellen der Parameter und Abgleich der Schleifenverstärkung Beispiel eines PID-Aufrufs

GFK-1503-GE

10-1

10

Format der PID-Funktion
Zur Lösung des PID-Algorithmus im gewünschten Zeitabschnitt, verwendet die PID-Funktion die PID-Schleifenverstärkung und weitere Parameter, die in einem Feld von 40 16-Bit-Worten stehen. Alle Parameter sind ganzzahlige 16-Bit-Worte. Hierdurch kann der %AI-Speicher zur Eingabe von Prozessvariablen und der %AQ-Speicher zur Ausgabe von Regelgrößen verwendet werden.
Freigabe Sollwert Prozessvariable (Logik) (Logik) (Logik) PID_ IND SP CV PV MAN UP DN OK Regelgröße

Referenzfeldadresse

Die PID-Funktion gibt keinen Stromfluß weiter, wenn die konfigurierbaren Parameter fehlerhaft sind. Beim Ändern von Daten kann die Funktion mit einem temporären Merker überwacht werden.

Parameter der PID-Funktion
Eingang/ Ausgang
Freigabe SP

Wahlmöglichkeiten
Stromfluß

Beschreibung
Bei Freigabe über Kontakt wird PID-Algorithmus ausgeführt.

I, Q, M, T, G, R, Dies ist der Regelsollwert. Wird er mit Prozessvariablen-Zählwerten AI, AQ, Konstante eingestellt, paßt die PID-Funktion die Ausgangsregelgröße so an, daß die Prozessvariable dem Sollwert entspricht (Nullfehler). I, Q, M, T, G, R, AI, AQ Stromfluß Prozessvariableneingang vom geregelten Prozess (häufig ein %AIEingang). Ist MAN stromführend (über einen Kontakt), ist der PID-Block im Handbetrieb. Ist Handbetrieb abgeschaltet, ist der PID-Block im Automatikbetrieb. Der CV-Ausgang wird bei jeder Ausführung um 1 Zählwert erhöht, wenn dieser Eingang und MAN stromführend sind.* Der CV-Ausgang wird bei jeder Ausführung um 1 Zählwert erniedrigt, wenn dieser Eingang und MAN stromführend sind.* Adresse der PID-Steuerblockinformation (Anwenderparameter und interne Parameter). Benutzt 40 %R-Worte, die nicht gemeinsam genutzt werden können. OK wird durchgeschaltet, wenn die Funktion fehlerfrei ausgeführt wurde. Abgeschaltet, wenn Fehler vorliegt. Ausgang der Regelgröße zum Prozess (häufig ein %AQ-Ausgang).

PV MAN

UP DN Adresse

Stromfluß Stromfluß R

ok CV *

Stromfluß, kein Stromfluß I, Q, M, T, G, R, AI, AQ

Wird pro Zugriff auf die PID-Funktion um 1 erhöht (UP-Parameter) oder erniedrigt (DNParameter).

10-2

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

10

Als skalierte ganzzahlige 16-Bit-Zahlen müssen zahlreiche Parameter in Prozessvariablen-Zählwerten (PV) oder in Regelgrößen-Zählwerten (CV) oder Einheiten definiert werden. Der Sollwerteingang (SP) muß zum Beispiel über den gleichen Bereich wie die Prozessvariable skaliert werden, da der PID-Block die Abweichung durch eine Subtraktion dieser beiden Eingänge berechnet. In Übereinstimmung mit der Analogskalierung können die PV- und CV-Zählwerte – 32000 oder 0 bis 32000 sein oder, zur Anzeige von Variablen als 0,00% bis 100,00%, von 0 bis 10000 reichen. Die Prozessvariablen- und RegelgrößenZählwerte brauchen nicht die gleiche Skalierung zu besitzen. In diesem Fall werden die Skalierungsfaktoren in den PID-Verstärkungen eingerechnet.

GFK-1503-GE

GFK-1503-GEKapitel 10 Die PID-Funktion

10-3

10

Arbeitsweise der PID-Funktion
Automatikbetrieb
Die PID-Funktion kann in jedem Zyklus aufgerufen werden. Hierzu muß am Freigabeeingang (enable) Stromfluß anliegen und die Eingabekontakte für Handbetrieb müssen stromfrei sein. Der Block vergleicht den aktuellen Wert der SPS-Betriebszeituhr mit der im internen RefArray gespeicherten Zeit, zu der der PID-Block zuletzt bearbeitet wurde. Ist diese Zeitdifferenz größer als das im dritten Wort (%Ref+2) von RefArray definierte Ausführungsintervall, wird der PIDAlgorithmus mit der Zeitdifferenz bearbeitet. Hierbei werden die letzte Ausführungszeit und der Regelgrößen-Ausgangswert aktualisiert. Im Automatikbetrieb wird der Regelgrößen-Ausgangswert im Handbefehlparameter %Ref+13 eingetragen.

Handbetrieb
Der PID-Block wird in Handbetrieb versetzt, indem Stromfluß an die beiden Eingangskontakte enable und MAN gelegt wird. Der Regelgrößen-Ausgangswert wird aus dem Handbefehlparameter %Ref+13 heraus eingestellt. Liegt an den Eingängen UP bzw. DN Stromfluß, wird bei jeder Bearbeitung des PID-Blocks das Handbetriebs-Befehlswort um einen CV-Zählwert erhöht bzw. erniedrigt. Um schnellere manuelle Änderungen der Regelgröße zu erzielen, kann auch jeder beliebige CV-Zählwert direkt zum Handbetriebs-Befehlswort addiert bzw. von ihm abgezogen werden. Mit der oberen und unteren CV-Begrenzung grenzt der PID-Block den CVAusgangswert ein. Wird eine positive Nachführgrenze definiert, beschränkt dies die Geschwindigkeit, mit der sich der CV-Ausgangswert ändern kann. Werden entweder die CV-Amplitude oder die Änderungsgeschwindigkeit überschritten, wird der im Integrator gespeicherte Wert so eingestellt, daß CV an der Grenze liegt. Dieser Überschwingschutz bedeutet, daß sich der CV-Ausgangswert von der Begrenzung wegbewegt, sobald sich das Vorzeichen der Störgröße ändert, selbst wenn die Störgröße über einen längeren Zeitraum versucht hat, CV über (oder unter) die Begrenzung zu zwingen. Durch diese Arbeitsweise, zusammen mit der Handbefehl-Nachführung von CV im Automatikbetrieb und der Einstellung von CV im Handbetrieb, wird ein stoßfreier Übergang zwischen Hand- und Automatikbetrieb gewährleistet. Die obere und untere CV-Begrenzung sowie die Nachführgrenze gelten für den CV auch im Handbetrieb, und der im Integrator gespeicherte interne Wert wird aktualisiert. Das heißt, daß bei einer Änderung des Handbefehls im Handbetrieb die CV-Ausgabe sich maximal mit der in der Nachführgrenze angegebenen Geschwindigkeit ändert und die obere bzw. untere Begrenzung nicht über- oder unterschreitet.

10-4

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

10 Zeitintervall für PID-Funktion
Die PID-Funktion kann höchstens einmal alle 10 Millisekunden ausgeführt werden. Ist die PID-Funktion so eingestellt, daß sie in jedem Zyklus ausgeführt werden soll, und ist die Zyklusdauer kürzer als 10 Millisekunden, dann wird die PID-Funktion erst ausgeführt, wenn genügend Zyklen durchlaufen wurden, daß eine Zeit von 10 Millisekunden aufgelaufen ist. . Beträgt die Zyklusdauer zum Beispiel 9 Millisekunden, dann wird die PID-Funktion in jedem zweiten Zyklus mit einer Zeit von 18 Millisekunden zwischen zwei Ausführungen bearbeitet. Eine bestimmte PID-Funktion darf nicht mehr als einmal pro Zyklus aufgerufen werden. Die längste Zeitspanne zwischen zwei aufeinanderfolgenden Ausführungen sind 10,9 Minuten. Die PID-Funktion gleicht die seit der letzten Ausführung verstrichene Zeit mit einer Genauigkeit von 100 Mikrosekunden aus. Der PID-Algorithmus wird nur bearbeitet, wenn sich der Wert der SPSBetriebszeituhr seit der letzten Bearbeitung mindestens um das Ausführungsintervall geändert hat. Wird das Ausführungsintervall auf 0 gesetzt, wird die Funktion jedesmal ausgeführt, wenn sie freigegeben wird. Die weiter oben erwähnte 10-Millisekunden-Grenze gilt aber auch hier.

Skalierung der Ein- und Ausgänge
Um kompatibel zu den 16-Bit-Analog-Prozessvariablen zu sein, sind alle Parameter ganzzahlige 16-Bit-Worte. Einige Parameter müssen entweder in Prozessvariablen-Zählwerten (PV) oder -Einheiten oder in RegelgrößenZählwerten (CV) oder -Einheiten definiert werden. Der Sollwerteingang muß über den gleichen Bereich wie die Prozessvariable skaliert werden, da die PID-Funktion die Abweichung durch eine Subtraktion dieser beiden Eingänge berechnet. Die Zählwerte für Prozessvariable und Regelgröße brauchen nicht die gleiche Skalierung zu verwenden. In Übereinstimmung mit der Analogskalierung können diese Werte -32000 oder 0 bis 32000 sein oder, zur Anzeige von Variablen als 0,00% bis 100,00%, von 0 bis 10000 gehen. Verwenden Prozessvariablen- und Regelgrößen-Zählwerte nicht die gleiche Skalierung, werden die Skalierungsfaktoren in den PID-Verstärkungen eingerechnet.

Beispiel der PID-Funktion
Das nachstehende Beispiel zeigt mögliche Eingangsbelegungen.

GFK-1503-GE

GFK-1503-GEKapitel 10 Die PID-Funktion

10-5

10
%S0007

Freigabe Sollwert Prozessvariable
%R00010 +21000 %AI0001 +20950 %M0001 %M0002

PID_ IND SP CV PV MAN UP
%M0002

Stromflußausgabe wenn OK

%AQ0001 +25000

Regelgröße

DN RefArray ist 40 Worte lang

%R00100

Parameterblock für die PID-Funktion
Der Parameterblock für die PID-Funktion belegt 40 Worte im %R-Speicher. Viele dieser 40 Worte werden von der SPS benutzt und können nicht konfiguriert werden. Jeder Aufruf der PID-Funktion muß einen anderen Speicherbereich von 40 Worten verwenden, selbst wenn alle 13 konfigurierbaren Parameter gleich sind. Vor Ausführung der PID-Funktion müssen die ersten 13 Worte des Parameterblocks spezifiziert werden. Für die meisten Standardwerte kann Null verwendet werden. Nachdem geeignete PID-Werte ausgewählt wurden, können Sie in einem BLKMOV als Konstanten definiert werden, so daß sie vom Programm nach Bedarf verändert werden können.

Interne Parameter im Adreßfeld (RefArray)
Die PID-Funktion liest 13 Anwendungsparameter und verwendet den Rest des 40Wort-Adreßfeldes zur internen PID-Speicherung. Normalerweise brauchen Sie diese Werte nicht zu verändern. Wenn Sie den PID-Block nach einer langen Verzögerung im Automatikbetrieb aufrufen, können Sie mit SVC_REQ 16 die aktuelle SPS-Betriebszeit in %Ref+23 laden, um die letzte Bearbeitungszeit zu aktualisieren und damit einen Schrittwechsel am Integrator zu vermeiden. Haben Sie das Overridebit im Steuerwort (%Ref+14) auf 1 gesetzt, müssen die nächsten vier Bits des Steuerwortes zur Steuerung der Eingangskontakte des PID-Blocks gesetzt werden. Die internen SP und PV müssen eingestellt werden, da sie die Kontrolle über den PID-Block vom Kontaktplanprogramm weggenommen haben.
Parameter Adresse Kreisnummer Algorithmus Ausführungsintervall 10 ms Einheiten unteres Bit Ganze Zahl Bereich 0 bis 255. Beschreibung Wahlfreie Nummer des PID-Blocks. Die über eine Bedienerschnittstelle definierte Kreisnummer ermöglicht eine gemeinsame Identifizierung in der SPS. 1 = ISA-Algorithmus 2 = unabhängiger Algorithmus

Adresse +1 Adresse+2

-

Von SPS eingestellt

0 (jeder Die Mindestzeit (in 10-ms-Schritten) zwischen zwei Zyklus) bis Ausführungen des PID-Algorithmus. Beispiel: Eingabe 10 für ein 65535 (10,9 100-ms-Intervall. min); mind. 10 ms.

10-6

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

10
Parameter Adresse+3 Adresse+4 Totzone + und Totzone Einheiten unteres Bit PVZählwerte Bereich 0 bis 32000 (+ nie negativ) (- nie positiv) Beschreibung INT-Werte, die die obere (+) und untere (-) Grenze der Totzone in PV-Zählwerten festlegen. Wird keine Totzone benötigt, müssen diese Werte 0 sein. Liegt die PID-Regelabweichung (SP - PV) bzw. (PV - SP) zwischen den Werten (-) und (+) der Totzone, wird die PID-Berechnung mit dem Fehlerwert 0 gelöst. Ist der Wert von Null verschieden, muß der Wert (+) größer als 0 und der Wert (-) kleiner als Null sein, damit der PID-Block funktioniert. Lassen Sie diese Werte auf 0, bis die PID-Regelverstärkung eingestellt oder verändert wird. Danach kann eine Totzone erforderlich werden, um kleine Änderungen der CV-Ausgabe zu verhindern, die durch Schwankungen der Regelabweichung verursacht werden. Adresse+5 P-Verstärkung Kp (Steuerungs verstärkung, Kc, in ISAVersion) D-Verstärkung Kd 0,01 CV%/PV% 0 bis 327,67% Änderung der Regelgröße CV in CV-Zählwerten bei einer Änderung von 100 PV-Zählwerten in der Regelabweichung. Wird für Kp ein Wert 450 eingegeben, wird dieser Wert als 4,50 angezeigt und ergibt einen Beitrag zur PID-Ausgabe von Kp*Fehler/100 oder 450*Fehler/100. Bei der Einstellung eines PID-Regelkreises wird immer zuerst Kp eingestellt. 0 bis 327,67 s Änderung der Regelgröße CV in CV-Zählwerten bei einer Änderung von 1 PV-Zählwert pro 10 ms in Fehler oder Prozessvariable. Eingabe als Zeitwert, bei dem das untere Bit 10 ms angibt. Beispiel: Wird für Kd ein Wert 120 eingegeben, wird dieser Wert als 1,20 s angezeigt und ergibt einen Beitrag zur PID-Ausgabe von Kd * Fehlerdelta / Zeitdelta bzw., wenn sich der Fehler alle 30 ms um 4 PV-Zählwerte ändert, um 120*4/3. Mit Kd kann eine langsame Reaktion des Regelkreises beschleunigt werden; es ist allerdings sehr anfällig gegenüber Störungen des PV-Eingangssignals.

Adresse+6

0,01 s

Adresse+7

I-Zeit Ki

Wiederholungen/ 1000 s

0 bis 32.767 Änderung der Regelgröße CV in CV-Zählwerten, wenn die Wiederholunge Regelabweichung konstant 1 PV-Zählwert wäre. Anzeige als n/s 0,000 Wiederholungen/s mit implizit 3 Dezimalstellen. Beispiel: Wird für Ki ein Wert von 1400 eingegeben, wird dieser Wert als 1,400 Wiederholungen/s angezeigt und ergibt einen Beitrag zur PID-Ausgabe von Ki * Fehler *dt oder, bei einem Fehler von 20 Zählwerten und einer SPS-Zykluszeit von 50 ms (Ausführungsintervall 0), 1400 * 20 * 50/1000. Ki ist normalerweise nach Kp der zweite Verstärkungsparameter, der eingestellt wird. -32000 bis 32000 (zum Integratorausg ang) Anzahl CV-Zählwerte, die vor Geschwindigkeits- und Amplitudenbegrenzung zum PID-Ausgang addiert werden. Kann zum Einstellen von CV-Werten ungleich Null verwendet werden, wenn nur Kp-Proportionalverstärkungen benutzt werden, bzw. zur Vorwärtsregelung dieses PID-Regelkreises von einem anderen Regelkreis aus. Anzahl CV-Zählwerte, die die höchsten und niedrigsten Werte von CV festlegen. Diese Werte müssen eingegeben werden. Die obere Begrenzung muß positiver als die untere Begrenzung sein, sonst funktioniert der PID-Block nicht. Mit diesen Werten werden normalerweise die auf physikalischen Grenzen beruhenden Grenzwerte des CV-Ausgangs festgelegt. Mit ihnen wird auch die Balkenanzeige von CV festgelegt. Der Block besitzt einen Überschwingschutz, mit dem der Integratorwert verändert werden kann, wenn eine CV-Begrenzung erreicht ist.

Adresse+8

CVAnhebung/A usgangsoffset Obere und untere CVBegrenzung

CVZählwerte

Adresse+9 Adresse+10

CVZählwerte

-32000 bis 32000 (>%Ref+10)

GFK-1503-GE

GFK-1503-GEKapitel 10 Die PID-Funktion

10-7

10
Parameter Adresse+11 Nachführgrenze Einheiten unteres Bit Sekunde/ Vollausschlag Bereich 0 (keine) bis 32000 s bis zu 32000 CV Beschreibung Mindestzeit, die der CV-Ausgang braucht, um von 0 auf Vollausschlag von 100% oder 32000 CV-Zählwerten zu kommen. Dies ist die umgekehrte Grenzgeschwindigkeit, mit der sich der CV-Ausgangswert ändern kann. Ist der Wert positiv, kann CV nicht schneller als mit 32000 CVZählwerten * Zeitdelta (s) / Nachführgrenze verändert werden. Beispiel: Bei einem Ausführungsintervall von 2,5 s und einer Nachführgrenze von 500 s kann CV sich pro PID-Bearbeitung um maximal 32000*2,5/500 oder 160 CV-Zählwerte ändern. Der Integratorwert wird eingestellt, wenn die CVGrenzgeschwindigkeit überschritten wird. Bei einer Nachführgrenze von 0 gibt es keine CV-Grenzgeschwindigkeit. Beim Einstellen der PID-Schleifenverstärkung müssen Sie die Nachführgrenze auf 0 einstellen.

10-8

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

10
Parameter Adresse+12 Konfigurationswort Einheiten unteres Bit Untersten 5 Bits benutzt Bereich Bit 0 bis 2 für Fehler +/-, Ausgangspolarität, Diff. Beschreibung Mit den untersten 5 Bits dieses Wortes werden drei PIDStandardeinstellungen verändert. Die übrigen Bits müssen auf 0 gesetzt werden. Setzen Sie das unterste Bit auf 1, um die Standard-PID-Regelabweichung von normalerweise (SP – PV) auf (PV – SP) abzuändern und dadurch das Vorzeichen der Rückführungsgröße zu ändern. Diese Funktion benötigen Sie für Abwärtsregelungen, bei denen CV mit ansteigendem PV reduziert werden muß. Setzen Sie das zweite Bit auf 1, um die Ausgangspolarität zu verändern, so daß CV am PID-Ausgang negativ und nicht wie normal positiv ist. Setzen Sie das vierte Bit auf 1, um den Differenzanteil so zu verändern, daß er die Änderung in der PV-Rückführungsgröße und nicht die normale Änderung in der Regelabweichung benutzt. Die unteren 5 Bits im Konfigurationswort werden nachstehend detailliert beschrieben: Bit 0: Regelabweichung. Ist dieses Bit 0, dann ist die Regelabweichung SP - PV. Ist dieses Bit 1, dann ist die Regelabweichung PV - SP. Bit 1: Ausgangspolarität. Ist dieses Bit 0, dann wird der CVAusgang auf den Ausgangswert der PID-Berechnung eingestellt. Ist dieses Bit 1, dann wird der CV-Ausgang auf den negativen Ausgangswert der PID-Berechnung eingestellt. Bit 2: Differentialwirkung auf PV. Ist dieses Bit 0, dann wirkt das Differentialverhalten auf die Regelabweichung. Ist dieses Bit 1, dann wirkt das Differentialverhalten auf PV. Alle anderen Bits müssen 0 sein. Bit 3: Wirkung der Totzone. Wird das Totzonenbit auf Null gesetzt, ist die Totzone ohne Wirkung. Liegt die Regelabweichung innerhalb der Grenzen der Totzone, wird sie auf Null gesetzt. Im anderen Fall wird die Regelabweichung von den Grenzen der Totzone nicht beeinflußt. Wird das Totzonenbit auf 1 gesetzt, zeigt die Totzone Wirkung. Liegt die Regelabweichung innerhalb der Grenzen der Totzone, wird sie zwangsweise auf Null gesetzt. Liegt die Regelabweichung außerhalb dieser Grenzen, wird sie um die Totzonen-Grenzen reduziert (Regelabweichung = Regelabweichung – Totzonengrenze). Bit 4: Überschwingschutz. Ist dieses Bit 0, verwendet der Überschwingschutz eine Rückwärtsberechnung. Ist der Ausgang begrenzt, ersetzt dieses den akkumulativen Restwert von Y mit dem zur exakten Erzeugung des begrenzten Ausgangs erforderlichen Wert. Ist das Bit auf Null gesetzt, wird der akkumulative Y-Wert mit dem Wert ersetzt, den Y zu Beginn der Berechnung hatte. In diesem Fall wird der Y-Wert vor der Begrenzung solange gehalten, wie der Ausgang begrenzt ist. Denken Sie daran, daß die Bits in Potenzen von 2 gesetzt werden. Beispiel: Um das Konfigurationswort für die StandardPID-Konfiguration auf 0 einzustellen, addieren Sie 1, um die Regelabweichung von SP–PV auf PV–SP zu verändern, oder Sie addieren 2, um die Ausgangspolarität von CV = PID auf CV = – PID abzuändern, oder Sie addieren 4, um die Differentialwirkung von Änderung Regelabweichung auf PVÄnderung umzuschalten, usw. Adresse+13 Handbefehl CVZählwerte CVNachführung in Auto oder CVEinstellung in Hand Wird im Automatikbetrieb auf den aktuellen CV-Ausgang gesetzt. Wird der Block auf Handbetrieb umgeschaltet, werden mit diesem Wert der CV-Wert und der interne Wert des Integrators innerhalb der oberen und unteren Begrenzung und der Nachführgrenzen eingestellt.

GFK-1503-GE

GFK-1503-GEKapitel 10 Die PID-Funktion

10-9

10
Parameter Adresse+14 Steuerwort Einheiten unteres Bit Von SPS unterhalten, außer wenn Bit 1 gesetzt ist. Bereich Sofern nicht anders eingestellt, von SPS unterhalten: Unteres Bit setzt Override, wenn 1. Beschreibung Wird das Overridebit auf 1 gesetzt, müssen dieses Wort und die anderen internen SP-, PV- und CV-Parameter für dezentralen Betrieb dieses PID-Blocks verwendet werden (siehe unten). Hierdurch können dezentrale Bedienerschnittstellen, wie zum Beispiel Computer, die Kontrolle vom SPS-Programm wegnehmen. Achtung: Wollen Sie dies verhindern, müssen Sie das Steuerwort auf 0 setzen. Ist das untere Bit 0, können die nächsten 4 Bits gelesen werden, um die Zustände der PIDEingangskontakte solange zu verfolgen, wie am PIDFreigabeeingang Stromfluß anliegt. Diskrete Datenstruktur mit den ersten fünf Bitstellen im folgenden Format:
Bit: 0 1 2 3 4 Wortwer t: 1 2 4 8 16 Funktion: Override Manuell /Automatik Freigabe UP /höher DN /niedrig Status oder externe Aktion wenn Overridebit = 1: 0: Blockkontakte überwachen. 1: Blockkontakte extern einstellen 1: Block ist in Handbetrieb; andere Werte: Block ist in Automatikbetrieb. Muß normalerweise 1 sein, sonst wird Block nie aufgerufen. 1 und Handbetrieb (Bit 1 = 1): CV wird bei jedem Durchlauf erhöht. 1 und Handbetrieb (Bit 1 = 1): CV wird bei jedem Durchlauf erniedrigt.

Adresse+15

Interner Sollwert

Von SPS eingestellt und unterhalten " "

Nicht konfigurierbar

Verfolgt SP-Eingang; muß extern gesetzt werden, wenn Override = 1.

Adresse+16 Adresse+17 Adresse+18

Interner CV Interner PV

" " "

Verfolgt CV-Ausgang. Verfolgt PV-Eingang; muß extern gesetzt werden, wenn Overridebit = 1. Wortwert mit Vorzeichen, das den Ausgang des Funktionsblocks vor wahlweiser Invertierung darstellt. Wurde keine Invertierung konfiguriert und wurde das Ausgangspolaritätsbit im Steuerwort auf 0 gesetzt, ist dieser Wert gleich dem CV-Ausgang. Wurde Invertierung konfiguriert und wurde das Ausgangspolaritätsbit im Steuerwort auf 1 gesetzt, ist dieser Wert gleich dem negierten CV-Ausgang.

Ausgangswe " rt

Adresse+19 Adresse+20 Adresse+21 Adresse+22

Speicherung D-Größe Speicherung I-Größe Speicherung Änderungsgr öße Uhr Interne Speicherung der Betriebszeit (letzte Ausführung des PID-Blocks). Diese Adressen nicht beschreiben. Enthält den Rest von Integrator-Teilungsskalierung für stationäre Regelabweichung = 0. PVZählwerte -32000 bis 32000 Wahlfreie INT-Werte in PV-Zählwerten, die den kleinsten und größten Anzeigewert definieren. (Ref +27 muß kleiner als Ref+28 sein) 29-34 sind für interne Benutzung reserviert. 35-39 sind für externe Benutzung reserviert. Sie dürfen nicht für andere Zwecke benutzt werden. Intern zur Speicherung von Zwischenwerten verwendet. Diese Adressen nicht beschreiben.

Adresse+23 bis Adresse+25 Adresse+26 Adresse+27 Adresse+28

Speicherung Y-Rest Unterer und oberer SPund PVBereich Reserviert

Adresse+29 bis Adresse+39

--

Nicht konfigurierbar

10-10

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

10

Einstellung von PID-Algorithmen (PIDISA oder PIDIND) und Verstärkungen
Bei der Programmierung des PID-Blocks kann entweder die unabhängige (PID_IND) oder die Standardversion des PID-Algorithmus gewählt werden. Der einzige Unterschied zwischen diesen Algorithmen besteht in der Art, in der die Iund D-Verstärkungen definiert sind. Beide PID-Typen berechnen die Regelabweichung als SP - PV bzw. bei Rückwärtsregelung als PV - SP, indem sie die Regelabweichung (unteres Bit 0 im Konfigurationswort %Ref+12) auf 1 setzen. Rückwärtsregelung kann eingesetzt werden, wenn sich die Änderungen des CVAusgangssignals im Gegensatz zum Normalbetrieb (CV steigt, wenn PV steigt) in unterschiedliche Richtungen bewegen sollen (CV fällt bei steigendem PV).
Regelabweichung = (SP - PV) oder (PV - SP) wenn das untere Bit des Konfigurationswortes 1 ist.

Die Differentiation basiert normalerweise auf der Änderung der Regelabweichung seit der letzten PID-Bearbeitung. Hierdurch kann sich bei einer Änderung des SPWertes eine große Änderung der Ausgangsgröße ergeben. Ist dies nicht erwünscht, können Sie das dritte Bit des Konfigurationswortes auf 1 setzen, um den auf PV basierenden Differentialanteil zu berechnen. Das dt (Zeitdifferenz) wird bestimmt, indem der Zeitwert der letzten PID-Bearbeitung dieses Blocks von der aktuellen SPS-Betriebszeit abgezogen wird.
dt = aktuelle SPS-Betriebszeit - SPS-Betriebszeit bei der letzten PID-Bearbeitung Differentialanteil = (Regelabweichung - vorherige Regelabweichung)/dt oder (PV - vorheriger PV)/dt wenn 3. Bit des Konfigurationswortes = 1

Der unabhängige PID-Algorithmus (PID_IND) berechnet die Ausgangsgröße als:
PID-Ausgang = Kp * Regelabweichung + Ki * Regelabweichung * dt + Kd * Differentialanteil + CV-Anhebung

Der Standard-ISA-Algorithmus (PID_ISA) sieht anders aus:
PID-Ausgang = Kc * (Regelabweichung + Regelabweichung * dt/Ti + Td * Differentialanteil) + CV-Anhebung

mit: Kc = Verstärkungsfaktor der Steuerung, Ti = Nachstellzeit, Td = Vorhaltezeit. Der Vorteil von ISA liegt darin, daß eine Veränderung von Kc den Anteil der I-, Dund P-Größen verändert, wodurch der Regelkreisabgleich einfacher wird. Haben Sie PID-Verstärkungen als Ausdrücke von Ti und Td, verwenden Sie
Kp = Kc Ki = Kc/Ti undKd = Kc/Td

um sie für die Verwendung als PID-Anwenderparametereingabe umzuwandeln. Der Ausdruck CV-Anhebung ist eine additive Größe, die von den PIDKomponenten getrennt ist. Diese Größe kann benötigt werden, wenn Sie nur die Proportionalverstärkung Kp verwenden und wünschen, daß CV bei PV = SP und Regelabweichung = 0 von Null verschieden ist. In diesem Fall setzen Sie die CVAnhebung auf den gewünschten CV-Wert, wenn PV am SP ist. CV-Anhebung

GFK-1503-GE

GFK-1503-GEKapitel 10 Die PID-Funktion

10-11

10
können Sie auch zur Vorwärtsregelung einsetzen, wenn der CV-Ausgang dieses PID-Kreises über einen anderen PID-Kreis oder Steueralgorithmus eingestellt wird. Wird eine Integrationsverstärkung Ki verwendet, wäre CV-Anhebung normalerweise 0, da der Integrator als automatische Anhebung arbeitet. Starten Sie im Handbetrieb, stellen Sie den Integrator über das Hand-Befehlswort (%Ref+13) auf den gewünschten CV ein, und schalten Sie dann um auf Automatikbetrieb. Dies funktioniert auch, wenn Ki = 0, nur wird hierbei nach dem Umschalten in Automatikbetrieb der Integrator nicht auf die Basis der Regelabweichung eingestellt.

Unabhängiger PID-Algorithmus (PIDIND)
Die nachstehende Abbildung zeigt die Funktionsweise des PID-Algorithmus:
PROPORTIONAL - Kp BIAS

SP

Störg.-Vz.

Totzone

INTEGRAL - Ki TIME

Nachf. grenz e

obere/untere Begrzg.

Polarität

CV

PV

Diff. Aktion Wert Zeit DIFFERENT. - Kd

Der ISA-Algorithmus (PIDISA) ist ähnlich. Lediglich der Verstärkungsfaktor Kp hängt mit Ki und Kd zusammen, so daß sich die Integralverstärkung zu Kp * Ki und die Differentialverstärkung zu Kp * Kd ergibt. Regelabweichungs-Vorzeichen, Differentialwirkung, Polarität werden über Bits im Anwenderparameter "Konfigurationswort" eingestellt.

10-12

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

10 CV-Amplitude und Grenzgeschwindigkeiten
Der Block sendet den berechneten PID-Ausgangswert nicht direkt an CV. Beide PID-Algorithmen können der Ausgangs-Regelgröße Grenzen bezüglich Amplitude und Änderungsgeschwindigkeit auferlegen. Die maximale Änderungsgeschwindigkeit wird bestimmt, indem der maximale 100% CV-Wert (32000) durch die minimale Nachführzeit (falls >0 angegeben wurde) dividiert wird. Beispiel: Die Nachführgrenze beträgt 100 Sekunden, die Grenzgeschwindigkeit ist dann 320 CV-Zählwerte/Sekunde. Mit einer dtBearbeitungszeit von 50 ms darf sich der neue CV-Ausgangswert um nicht mehr als 320*50/1000 oder 16 CV-Zählwerte vom vorherigen CV-Ausgangswert unterscheiden. Der CV-Ausgangswert wird dann mit den oberen und unteren CV-Begrenzungen verglichen. Wird eine dieser Grenzen über- oder unterschritten, dann wird der CVAusgang auf den begrenzten Wert gesetzt. Werden bei der Veränderung von CV entweder Änderungs- oder Amplitudengrenzwert überschritten, dann wird der interne Integratorwert so angepaßt, daß er dem Grenzwert entspricht, wodurch Überschwingen vermieden wird. Zuletzt überprüft der Block die Ausgangsparität (2. Bit des Konfigurationswortes %Ref+12) und ändert das Vorzeichen des Ausgangs, wenn das Bit 1 ist. CV = begrenzter PID-Ausgang oder - begrenzter PID-Ausgang, wenn das Ausgangs-Polaritätsbit gesetzt ist Ist der Block im Automatikmodus, wird der letzte CV im Handbefehl %Ref+13 eingetragen. Ist der Block im Handmodus, wird die PID-Gleichung übersprungen, da CV durch den Handbefehl eingestellt wird. Es werden jedoch alle Grenzwerte für Änderungsgeschwindigkeit und Amplitude überprüft. Das bedeutet, daß mit dem Handbefehl der Ausgangswert nicht über den oberen Grenzwert bzw. unter den unteren Grenzwert hinaus verändert werden kann. Außerdem kann sich der Ausgangswert nur mit der maximalen Änderungsgeschwindigkeit ändern.

GFK-1503-GE

GFK-1503-GEKapitel 10 Die PID-Funktion

10-13

10 Ausführungsintervall und zeitlicher Ablauf der PID-Blöcke
Der PID-Block ist eine digitale Realisierung einer analogen Steuerungsfunktion. Aus diesem Grund ist die Abtastzeit dt in der PID-Ausgangsgleichung nicht die bei Analogsteuerungen verfügbare unendlich kleine Zeitspanne. Die meisten der geregelten Prozesse können als eine Verstärkung mit einer Verzögerung erster oder zweiter Ordnung angenähert werden, möglicherweise mit einer reinen Zeitverzögerung. Der PID-Block stellt einen CV-Ausgangswert zum Prozess ein und benutzt den Rückkopplungs-PV vom Prozess, um den Fehler zu bestimmen, mit dem die nächste CV-Ausgabe angepaßt wird. Die Gesamtzeitkonstante ist ein Schlüssel-Prozessparameter, der festlegt, wie schnell der PV reagiert, wenn sich der CV ändert. Wie im Abschnitt "Schleifenverstärkungs-Einstellung" weiter unten besprochen wird, ist die Gesamtzeitkonstante Tp+Tc bei einem System erster Ordnung die von PV benötigte Zeit, um bei einer sprunghaften Änderung von CV 63% des Endwertes zu erreichen. Der PID-Block kann einen Prozess nur steuern, wenn das Ausführungsintervall deutlich unter der halben Gesamtzeitkonstanten liegt. Größere Ausführungsintervalle machen den Vorgang instabil. Das Ausführungsintervall sollte nicht größer sein als die Gesamtzeitkonstante geteilt durch 10 (oder, im schlimmsten Fall, herunter bis 5). Beispiel: Erreicht PV 2/3 seines Endwertes in 2 Sekunden, sollte das Ausführungsintervall kleiner als 0,2 Sekunden (oder maximal 0,4 Sekunden) sein. Auf der anderen Seite sollte das Ausführungsintervall nicht zu klein sein (wie zum Beispiel kleiner als die Gesamtzeitkonstante dividiert durch 1000), da sonst der Ausdruck Ki * Regelabweichung * dt für den PID-Integrator auf Null gerundet wird. Beispiel: Bei einem sehr langsamen Prozess, der 10 Stunden bzw. 36000 Sekunden benötigt, um den 63%-Wert zu erreichen, sollte das Ausführungsintervall auf 40 Sekunden oder mehr eingestellt werden. Sofern der Prozess nicht gerade sehr schnell abläuft, braucht man kein Ausführungsintervall von 0 einzustellen, bei dem der PID-Algorithmus in jedem PID-Zyklus gelöst wird. Werden viele PID-Kreise verwendet, bei denen das Ausführungsintervall größer als die Zykluszeit ist, können sich bei der SPSZykluszeit große Schwankungen ergeben, wenn viele Kreise den Algorithmus gleichzeitig lösen. Eine einfache Lösung besteht darin, ein oder mehrere auf 1 gesetzte Bits durch ein Bitfeld von Nullen zu schicken, so daß dadurch Stromfluß zu einzelnen PID-Blöcken durchgeschaltet wird.

10-14

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

10

Festlegen der Prozesseigenschaften
Die PID-Schleifenverstärkungen Kp, Ki und Kd werden von den Daten des gesteuerten Prozesses bestimmt. Beim Einstellen einer PID-Schleife stellen sich zwei Fragen: 1. Wie groß ist die Änderung von PV, wenn wir CV um einen festen Betrag ändern, bzw. wie groß ist die Leerlaufverstärkung? 2. Wie schnell reagiert das System, oder wie schnell ändert sich PV nach einer sprunghaften Änderung von CV? Zahlreiche Prozesse können durch eine Prozessverstärkung, eine Verzögerung erster oder zweiter Ordnung, und eine reine Zeitverzögerung angenähert werden. Im Frequenzbereich ist die Übertragungsfunktion eines Verzögerungssystems zweiter Ordnung mit reiner Zeitverzögerung gegeben durch: PV(s)/CV(s) = G(s) = K * e **(-Tp s)/(1 + Tc s) Mit einer sprunghaften Änderung zum Zeitpunkt t0 im Zeitbereich ergibt sich folgende Änderung der Regelgröße:
1 CV-Einheitsschrittausgabe zu Prozess K 0.632K PV-Reaktion vom Prozess

t0

t0 Tp

Tc

Aus der PV-Übergangsfunktion können folgende Prozessmodellparameter bestimmt werden:
K Tp Tc Leerlaufverstärkung = letzte Änderung von PV / Änderung von CV zum Zeitpunkt t0 (beachten Sie, daß K keinen Index hat). Prozess- oder Pipeline-Zeitverzögerung oder Totzeit nach t0, bis sich der Prozessausgang PV anfängt zu bewegen. Prozesszeitkonstante erster Ordnung; nach Tp von PV benötigte Zeit, um 63,2% des PV-Endwerts zu erreichen.

Normalerweise können Sie diese Parameter am schnellsten messen, indem Sie den PID-Block in Handmodus schalten und den CV-Ausgang um einen kleinen Schritt verändern. Hierzu verändern Sie den Handbefehl %Ref+13 und zeigen die PVAntwort als Funktion der Zeit an. Bei langsamen Prozessen kann dies von Hand durchgeführt werden; bei schnelleren Prozessen sollten Sie einen Schreiber oder ein Computergraphik-Datenerfassungspaket verwenden. Die Sprunghöhe von CV sollte zwar groß genug sein, um eine merkliche Änderung von PV zu bewirken, aber nicht so groß, daß sie den gemessenen Prozess unterbrechen würde. Als Richtwert können Sie 2 bis 10% des Unterschieds zwischen oberer und unterer Begrenzung annehmen.

GFK-1503-GE

GFK-1503-GEKapitel 10 Die PID-Funktion

10-15

10

Einstellen der Parameter und Abgleich der Schleifenverstärkungen
Da alle PID-Parameter vollständig vom geregelten Prozess abhängen, gibt es keine funktionierenden Standardwerte. Eine brauchbare Schleifenverstärkung können Sie mit schrittweiser Annäherung an die exakte Lösung wie nachfolgend beschrieben ermitteln: 1. Setzen Sie zunächst alle Anwenderparameter auf 0. Setzen Sie dann die obere und untere CV-Begrenzung auf den höchsten bzw. niedrigsten CVWert, der zu erwarten ist. Stellen Sie das Ausführungsintervall auf die geschätzte Prozesszeitkonstante (oben) /10 bis 100. 2. Schalten Sie den Block auf Handbetrieb und stellen Sie Handbefehl (%Ref+13) auf unterschiedliche Werte ein. Prüfen Sie dabei, ob CV dadurch auf die obere oder untere Begrenzung gebracht werden kann. Schreiben Sie den PV an einem PV-Punkt auf und laden Sie diesen Wert in SP. 3. Stellen Sie Kp auf eine kleine Verstärkung (z.B. 100 * max. CV / max. PV) ein und schalten Sie den Handmodus ab. Verändern Sie SP sprunghaft auf 2 bis 10% des maximalen PV-Bereichs und beobachten Sie die Reaktion von PV. Erhöhen Sie Kp, wenn die PV-Sprungantwort zu langsam ausfällt bzw. verkleinern Sie Kp, wenn PV überschwingt und oszilliert, ohne einen stationären Wert anzunehmen. 4. Haben Sie Kp ermittelt, erhöhen Sie Ki so, daß ein Überschwingen auftritt, welches in 2 oder 3 Zyklen auf einen stationären Wert gedämpft wird. Es kann dabei erforderlich werden, Kp zu reduzieren. Probieren Sie es auch mit unterschiedlichen Sprunghöhen und CV-Arbeitspunkten. 5. Nachdem Sie passende Werte für Kp und Ki gefunden haben, addieren Sie versuchsweise Kd, um eine schnelle Reaktion auf Eingangsänderungen zu erhalten (vorausgesetzt, das System beginnt nicht zu schwingen). Kd wird häufig nicht benötigt und funktioniert nicht bei verrauschtem PV. 6. Überprüfen Sie die Verstärkungswerte über verschiedenen SPArbeitspunkten. Stellen Sie bei Bedarf zusätzlich Totzone und Nachführgrenze ein. Bei einigen Prozessen mit umgekehrter Wirkungsrichtung kann es erforderlich sein, die Vorzeichen- oder Polaritätsbits im Konfigurationswort zu setzen.

10-16

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

10 Abgleich nach Ziegler und Nichols
Nachdem Sie die drei Parameter K, Tp und Tc des Prozessmodells ermittelt haben, können Sie sie zur Abschätzung der PID-Anfangsschleifenverstärkungen benutzen. Mit dem folgenden Verfahren kann eine gute Antwort auf Systemstörungen mit Verstärkungsfaktoren erzielt werden, die ein Amplitudenverhältnis von 1/4 erzeugen. Das Amplitudenverhältnis ist das Verhältnis des zweiten zum ersten Maximum im Regelkreis-Übertragungsverhalten. 1. Berechnen Sie die Reaktionsgeschwindigkeit: R = K/Tc 2. Berechnen Sie bei Proportionalregelung die Proportionalverstärkung Kp: Kp = 1/(R * Tp) = Tc/(K * Tp) Berechnen Sie bei PI-Regelung: Kp = 0,9/(R * Tp) = 0,9 * Tc/(K * Tp) Ki = 0,3 * Kp/Tp Berechnen Sie bei PID-Regelung: Kp = G/(R * Tp) mit G von 1,2 bis 2,0 Ki = 0,5 * Kp/Tp Kd = 0,5 * Kp * Tp 3. Überprüfen Sie, ob das Ausführungsintervall in diesem Bereich liegt: (Tp + Tc)/10 bis (Tp + Tc)/1000

Die ideale Abstimmungsmethode
Bei der "idealen Abstimmungsmethode" erzielen Sie die besten Reaktionen auf Änderungen von SP, die nur von der Prozessverzögerung Tp oder der Totzeit verzögert werden. Kp = 2 * Tc/(3 * K * Tp) Ki = Tc Kd = Ki/4 wenn der Differentialanteil verwendet wird. Nachdem die Anfangsverstärkungsfaktoren ermittelt wurden, müssen sie in ganze Zahlen umgewandelt werden. Berechnen Sie die Prozessverstärkung K als eine Änderung der Eingangs-PV-Zählwerte dividiert durch die sprunghafte Ausgangsänderung in CV-Zählwerten und nicht in technischen Prozess-PV- oder CV-Einheiten. Geben Sie alle Werte in Sekunden an. Nachdem Kp, Ki und Kd bestimmt wurden, können Kp und Kd mit 100 multipliziert und als ganze Zahlen eingegeben werden. Ki kann mit 1000 multipliziert werden und in den Anwenderparameter %RefArray eingetragen werden.

GFK-1503-GE

GFK-1503-GEKapitel 10 Die PID-Funktion

10-17

10

Beispiel eines PID-Aufrufs
Das nachstehende Beispiel hat ein Ausführungsintervall von 100 ms, eine KpVerstärkung von 4,00 und eine Ki-Verstärkung von 1,500. Der Sollwert SP wird in %R0001 gespeichert, während die Regelgröße CV in %AQ0002 ausgegeben und die Prozessvariable in %AI0003 zurückgeführt wird. Die oberen und unteren Begrenzungen müssen in diesem Fall auf 20000 und 4000 eingestellt werden; eine schmale Totzone von +5 und -5 wurde wahlweise eingesetzt. Das aus 40 Worten bestehende Adreßfeld beginnt bei %R0100. Normalerweise werden die Anwenderparameter im Adreßfeld eingestellt. Es kann jedoch auch %M0006 gesetzt werden, um die 14 Worte ab %R0102 (%Ref+2) aus den im Programm gespeicherten Konstanten neu zu initialisieren (eine nützliche Technik).
%M0006 BLK_ CLR WORD %R0100 IN LEN 00035 BLKMV INT IN1 Q IN2 IN3 IN4 IN5 IN6 IN7 BLKMV INT IN1 Q IN2 IN3 IN4 IN5 IN6 IN7 %T0001 PID_ IND %R0001 %AI0003 %M0001 %M0004 UP %M0004 DN %M0002 ADD_ INT %R0113 %R0002 %M0003 SUB_ INT %R0113 %R0002 I1 I2 Q %R0113 I1 I2 Q %R0113 %R0100 SP CV PV MAN %AQ0002

CONST +00010 CONST +00005 CONST +00005 CONST +00400 CONST +00000 CONST +01500 CONST +00000

%R00102

CONST +20000 CONST +00400 CONST +00000 CONST +00000 CONST +00000 CONST +00000 CONST +00000

%R00109

ALW_ON

Der Block kann mit %M1 auf Handmodus umgeschaltet werden, so daß der Handbefehl %R113 eingestellt werden kann. Mit den Bits %M4 und %M5 können %R113, PID CV und Integrator in jeder 100-ms-Bearbeitung um 1 erhöht oder erniedrigt werden. Für schnelleren Handbetrieb kann mit den Bits %M2 und %M3 in jedem SPS-Zyklus der Wert aus %R2 zu %R113 addiert bzw. davon abgezogen werden. Der Ausgang %T1 ist durchgeschaltet, wenn die PID-Funktion in Ordnung ist.

10-18

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

Anhang

Befehlsausführungszeiten

A
Dieser Anhang enthält die CPU-Befehlsausführungszeiten der einzelnen im CPU-Befehlssatz verfügbaren Funktionen. Die unter "Freigegeben" angezeigte Zeit gilt für Einheiten einfacher Länge vom Typ %R.

Erforderliche Zeitangaben.
Für die Tabellenfunktionen sind die Inkremente in Längeneinheiten angegeben; für Bitoperationen in Mikrosekunden/Bit; für Datenkopierfunktionen in Mikrosekunden/Anzahl Bits oder Worte. Die freigegebene Zeit ist für Einheiten einfacher Länge vom Typ %R, %AI oder %AQ. DOIO ist die Zeit zur Ausgabe von Werten an diskrete Ausgangsmodule. Wo mehrere Fälle möglich sind, wird der Wert des ungünstigsten Falles angegeben. Bei Anweisungen mit Inkrementalwert wird das Inkrement mit (Länge –1) multipliziert. Dieser Wert ist dann zur Grundzeit hinzuzuzählen.

Ausführungszeiten
Für jede Funktion werden zwei Ausführungszeiten angegeben:
Freigegeben Von einer Funktion oder einem Funktionsblock benötigte Zeit, wenn Stromfluß in die Funktion hinein und aus der Funktion heraus möglich ist. Die kürzesten Zeiten treten normalerweise auf, wenn der Block im Anwender-RAM steht (wortstrukturierter Speicher) und nicht im ISCP-Cache (bitstrukturierter Speicher). Für die Ausführung einer Funktion benötigte Zeit, wenn zwar Stromfluß in die Funktion bzw. den Funktionsblock möglich ist, diese aber in einem Gesperrten Zustand ist (z.B. ein Timer, der im Rücksetzzustand gehalten wird).

Gesperrt

Hinweis
Timer und Zähler werden immer aktualisiert, wenn sie in der Logik angetroffen werden; Timer um den seit dem letzten Zyklus aufgelaufenen Zeitwert und Zähler um einen Zählwert.

GFK-1503-GE

A-1

A Timer, Zähler, arithmetische Funktionen, trigonometrische Funktionen, Logarithmusfunktionen
Gruppe Timer Funktion Einschaltverzögerung Timer Abschaltverzögerung Zähler Aufwärtszähler Abwärtszähler Arithmetikfunktio Addition (INT) nen Addition (DINT) Addition (REAL) Subtraktion (INT) Subtraktion (DINT) Subtraktion (REAL) Multiplikation (INT) Multiplikation (DINT) Multiplikation (REAL), Division (INT) Division (DINT), Division (REAL) Modulo Division (INT) Modulo Division (DINT) Quadratwurzel (INT) Quadratwurzel (DINT) Quadratwurzel (REAL) Trigonometrische SIN (REAL) Funktionen COS (REAL) TAN (REAL) ASIN (REAL) ACOS (REAL) ATAN (REAL) Logarithmische Funktionen LOG (REAL) LN (REAL) Freigegeb en – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Gesperrt – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Inkrement – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Größe 15 15 15 13 13 13 19 17 13 19 17 13 19 17 13 19 17 13 19 10 13 11 11 11 11 11 11 11 11 11

A-2

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

A Exponentialfunktionen, Radiantumwandlung, relationale Funktionen
Gruppe Exponentialfunktion RadiantUmwandlung Relationale Funktionen EXP, EXPT Umwandeln RAD in DEG Umwandeln DEG in RAD Gleich (INT) Gleich (DINT) Gleich (REAL) Ungleich (INT) Ungleich (DINT) Ungleich (REAL) Größer als (INT) Größer als (DINT) Größer als (REAL) Größer als/gleich (INT) Größer als/gleich (DINT) Größer als/gleich (REAL) Kleiner als (INT) Kleiner als (DINT) Kleiner als (REAL) Kleiner als/gleich (INT) Kleiner als/gleich (DINT) Kleiner als/gleich (REAL) Bereich (INT) Bereich (DINT) Bereich (WORD) – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Funktion Freigegeb en – – – Gesperrt – – – Inkrement – – – Größe 11 17 11 11 10 16 14 10 16 14 10 16 14 10 10 14 10 16 14 10 16 14 13 22 13

GFK-1503-GE

Anhang A Befehlsausführungszeiten

A-3

A Bitoperationen, Datenkopierfunktionen
Gruppe Bit Operation Funktion Logisch UND Logisch ODER Logisches Exklusiv-ODER Logisch invertiert, NOT Bit nach links verschieben Bit nach rechts verschieben Bit nach links rotieren Bit nach rechts rotieren Bitposition Bit auf 0 setzen Bit testen Bit auf 1 setzen Vergleich mit Maske (WORD) Vergleich mit Maske (DWORD) Daten kopieren Kopieren (INT) Kopieren (BIT) Kopieren (WORD) Kopieren (REAL) Block kopieren (INT) Block kopieren (WORD) Block kopieren (REAL) Block löschen Schieberegister (BIT) Schieberegister (WORD) Bitfolgesteuerung – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Freigegebe n – – – Gesperrt – – – Inkrement – – – Größe 13 13 13 10 16 16 16 16 13 13 13 13 25 25 10 13 10 13 28 28 13 11 16 16 16

A-4

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

A Tabellenfunktionen
Gruppe Tabelle Funktion Feld kopieren INT DINT BIT BYTE WORD Suche gleiche INT DINT BYTE WORD Suche ungleiche INT DINT BYTE WORD Suche größer als INT DINT BYTE WORD Suche Größer als/gleich INT DINT BYTE WORD Suche kleiner als INT DINT BYTE WORD Suche kleiner als/gleich INT DINT BYTE WORD Freigegeb en – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Gesperrt Inkrement Größe

– – – – – – – – – – – – – – – – – – – – – – – – – – – – –

– – – – – – – – – – – – – – – – – – – – – – – – – – – – –

22 22 22 22 22 19 22 19 19 19 22 19 19 19 22 19 19 19 22 19 19 19 22 19 19 19 22 19 19

GFK-1503-GE

Anhang A Befehlsausführungszeiten

A-5

A Umwandlungs- und Steuerfunktionen
Gruppe Umwandlung Funktion Umwandeln in INT Umwandeln in BCD-4 Umwandeln in REAL Umwandeln in WORD Abschneiden auf INT Abschneiden auf DINT Steuerung Unterprogrammaufruf E/A-Aktualisierung PID – ISA-Algorithmus PID – IND-Algorithmus Ende-Anweisung Bedienanforderung #6 #7 (lesen) #7 (setzen) #14 #15 #16 #18 #23 #26//30 #29 Geschachtelte MCR/ENDMCR Kombiniert COMM_REQ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – Freigegeb en – – – – – – – – – – – Gesperrt – – – – – – – – – – – Inkrement – – – – – – – – – – – Größe – – – – – – – – – – –

A-6

VersaMax SPS Anwenderhandbuch –– Oktober 1998

GFK-1503-GE

Index
A
Ablaufsprache 6-5 Analogausgänge 7-2 Analogeingänge 7-2 Anwenderprogramm 6-1 verfügbarer Speicher 6-2 Arithmetische Funktionen 6-9 Aufrufebenen 6-3 Ausführungszeiten A-1 Ausgabezyklus 5-3 Ausgangsreferenzen 7-2 Ausgangsreferenzen, diskrete 7-4 Autokonfiguration 4-2 Automatische Einwahl 922 Befehlsfolgen für Hayes-kompatible Modems 9-22 Betriebsartenschalter 2-3 Betriebszeituhr, lesen 8-2 Bitoperationen 6-10 Bitspeicher 7-3 Blocksperrung 6-4 Bytes lesen 9-25 Bytes schreiben 9-24

C
CE 1-3 COMMREQ 9-2 4300 9-15 4301 9-16 4302 9-17 4303 9-18 4304 9-20 4399 9-21 4400 9-22 4401 9-24 4402 9-25 4403 9-27 für serielle E/A 9-2 CPU001 2-2 CPU-Größe 2-3 CPU-Zyklus 5-1

B
Batterie auswechseln 3-7 Bedienanforderung Betriebszeituhr lesen 8-24 E/A abfragen 8-27 E/A-OVERRIDE-Zustand lesen 8-25 Fehlertabellen löschen 8-21 Funktionsnummern 8-2 Hauptprüfsumme lesen 8-26 SPS abschalten (Stop) 8-20 Verstrichene Stromausfallzeit lesen 8-28 Zeituhr einstellen/lesen 8-121 Zuletzt eingetragenen Fehlertabelleneintra g lesen 8-22 Bedienanforderungsfunktion 8-3 Befehlssatz 1-6, 6-7 Befestigungslöcher 3-3 Beispiele

CPU-Installation 3-3

D
Datenkopierfunktionen 6-11 Datenremanenz 7-5 Datentypen BCD-4 7-12 BIT 7-12 BYTE 7-12 DINT 7-13 INT 7-12 REAL 7-12 WORD 7-12 Diagnose, Modul hinzugefügt 4-5 Diagnose, nicht unterstütztes Modul 4-5 Diagnose, verlorenes Modul 4-5 Diagnose, zusätzliches Modul 4-5 Diagnosefunktionen 4-4 Diskrete Referenzen 7-4 Dokumentation 1-2
Index-1

GFK-1503-GE

Index E
E/A, abfragen 8-2 E/A-Modul, Installation 3-6 E/A-Punkte 1-3 Eingabeszyklus 5-3 Eingangspuffer einrichten 9-16 Eingangspuffer entleeren 9-17 Eingangsreferenzen 7-2, 7-4 Endefunktion 5-8 Keine Zahl (NaN) 7-14 Kommunikationsanforderungsfunktion 9-2 Kommunikationsfenster 5-3 Konstante Zyklusdauer 5-5 Kontaktplan 6-6

L
LEDs 2-4 Leitungslängen 2-5

M
Mehrpunktverbindungen 3-13 Modem Hayes-kompatibel 9-22 Module pro Station 1-3

F
Fehlertabellen, löschen 8-2 Fensterzeiten lesen 8-2 Freiraum 3-2 Funktion "Schnittstelle initialisieren" 9-15

N
NaN 7-14

G
Genius NIU Anwenderhandbuch 1-2 Gleitpunktzahlen 7-13 Globaldatenreferenzen 7-4 Größe von Hauptprogramm oder Unterprogramm 1-5, 6-3

O
Ordnername, lesen 8-2 Overridebits 7-4 OVERRIDE-Zustand, lesen 8-2

P
Passworte 5-10 PID-Funktion 10-4 Zeitintervall 10-5 Schnittstelle 1 2-6 Schnittstelle 2 2-6 Schnittstellentatus lesen 9-18 Profibus NIU Anwenderhandbuch 1-2 Profilschiene 3-3 ProgrammiergeräteKommunikationsfenster 5-3 Programmiergeräte-Kommunikationsfenster ändern 8-2 Programm-Prüfsumme 5-3 Programmzyklus 5-3 Protokollfehler 9-10 Prüfsumme 5-3, 8-10 Anzahl Worte ändern/lesen 8-2
GFK-1503-GE

H
Handbücher 1-2 Hauptprogramm 6-3

I
IC200CPU001 2-2 Installationsanforderungen für CE-Zeichen 3-14

K
Kabelschirm 2-6
Index-2 VersaMax SPS Anwenderhandbuch–Oktober 1998

Index
Prüfsumme, lesen 8-2 Punkt-zu-Punkt-Verbindung RS-232 3-9 Punkt-zu-Punkt-Verbindungen RS-485 3-12 Funktion "Schnittstellenstatus lesen" 9-18 Funktion "Schnittstellensteuerung schreiben" 9-20 Funktion "Zeichenfolge lesen" 9-27 Serielle Schnittstellen 2-5 Serielle Schnittstelle und Kabel, Mehrpunktverbindungen 3-13 RS-485 Punkt-zu-Punkt-Verbindung 3-9, 3-12 Sicherheit, System Passworte 5-10 SNP 9-5 SNP Master 9-10 Speicher für Anwenderprogramm 6-2 Speicher, Bit 7-4 Speicherbelegung 7-2 SPS ID, lesen 8-2 SPS-Zyklus Aufruf serielle E/A 9-10 Standardzyklusbetrieb 5-4 Statusreferenzen 7-4, 7-6 Steckplätze 4-2 Steuerfunktionen 6-12 CALL 5-8 END 5-8 Stromausfallzeit, lesen 8-2 Strombedarf 3-6 Stromversorgung, Installation 3-5 SVCREQ 8-2 Anzahl der Worte für Prüfsumme verändern/lesen (#6) 8-2 Betriebszeituhr lesen (#16) 8-2 E/A abfragen (#26 oder 30) 8-2 E/A-OVERRIDE-Zustand lesen (#18) 8-2 Fehlertabellen löschen (#14) 8-2 Fehlertabellen, lesen (#15) 8-2 Fensterwerte lesen (#2) 8-2 Fensterzeiten lesen (#2) 8-6 Hauptprüfsumme lesen (#23) 8-2 Ordnername lesen (#10) 8-2, 8-17 ProgrammiergeräteKommunikationsfenster ändern (#3) 8-2 Prüfsumme ändern/lesen (#6) 8-2 SPS abschalten (#13) 8-2 SPS ID lesen (#11) 8-2, 8-19

R
Reelle Zahlen 7-13 Referenzbeschreibung 7-6 Referenzen 7-2 analog 7-2 Registerreferenzen 7-2 Relaisfunktionen 6-7 Relationale Funktionen 6-10 Remanenz, Daten 7-5 RS-232 1-4, 2-2, 3-9 RS-485 2-2, 3-9 RTU 2-5 RTU Slave 9-10

S
Schalttafelmontage 3-4 Schrauben 3-3 Schutz gegen schnelle Spannungsstöße Anforderungen für CEZeichen 3-14 Schutz gegen statische Entladungen Anforderungen für CEZeichen 3-14 Serielle E/A Eingangspufferfunktion 916 Funktion "Bytes lesen" 925 Funktion "Bytes schreiben" 9-22, 9-24 Funktion "Eingangspuffer entleeren" 9-17 Funktion "Operation abbrechen" 9-21 Funktion "Schnittstelle initialisieren" 9-15
GFK-1503-GE Index

Index-3

Index
SystemKommunikationsfen ster ändern (#4) 8-2 Timer für konstante Zyklusdauer verändern/lesen (#1) 8-2, 8-5 Verstrichene Stromausfallzeit lesen (#29) 8-2 Zeituhr einstellen/lesen (#7) 8-2 Zyklusdauer lesen (#9) 8-16 Zykluszeit lesen (#9) 8-2 SVCREQ-Funktionen 1-7 Symbolische Adressen 7-6 System-Kommunikationsfenster 5-3 ändern (#4) 8-2

Ü
Überspannungsschutz 3-14 Übertragungsgeschwindigkeiten 2-5 Watchdog-Zeitgeber 5-4 Umwandlungsfunktion 6-11 Unterprogrammaufruf-Funktion 5-8 Unterprogramme Aufruf 6-4 lokale Bezeichnungen 7-6 sperren/entsperren 6-4

V
Vibrationsfestigkeit 3-3

W
Watch-Zeitgeber rücksetzen 8-2, 8-16

T
Tabellenfunktionen 6-11 Technische Daten 2-3 Temporäre Referenzen 7-4 Timer 6-9 Timer für konstante Zyklusdauer 5-5 verändern/lesen (#1) 8-2 Timer, Watchdog-Zeitgeber 54 Träger 1-3 Transitionsbits 7-4

Wortspeicher Referenzen 7-2

Z
Zähler 6-9 Zeichenfolge lesen 9-27 Zeitkontakte 7-15 Zuweisung Referenzadressen 4-2 Zyklus, CPU 5-1 konstante Zyklusdauer 5-5 Standardzyklus 5-4

Index-4

VersaMax SPS Anwenderhandbuch–Oktober 1998

GFK-1503-GE

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->