inhalt systemtechnik der cpus - es.fh- · pdf file5.1.4 diagnose mit den plc-browser des...
TRANSCRIPT
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 1 CPUs AC500 / Stand: 08.2005
Inhalt "Systemtechnik der CPUs"
1 Die Zielsystemeinstellungen (Target Support Package) .................................. 6
1.1 Einleitung ................................................................................................................................................ 6
1.2 Auswahl der Steuerung - Zielsystemeinstellungen ..................................................................... 7
1.3 Parameter einer CPU in den Zielsystemeinstellungen ............................................................... 7
1.3.1 Einstellungen "Zielplattform"................................................................................................................. 7
1.3.2 Einstellungen "Speicheraufteilung"....................................................................................................... 8
1.3.3 Einstellungen "Allgemein"................................................................................................................... 10
1.3.4 Einstellungen "Netzfunktionen" .......................................................................................................... 12
1.3.5 Einstellungen "Visualisierung" ............................................................................................................ 12
2 Eingänge, Ausgänge und Merker in AC500.............................................................. 13
2.1 Schnittstellen für Ein- und Ausgänge in AC500 ......................................................................... 14
2.1.1 Adressschema für Ein- und Ausgänge ............................................................................................... 14
2.1.2 Beispiel für Adressierung in BOOL / BYTE / WORD / DWORD......................................................... 15
2.2 Adressierung der Ein- und Ausgänge ........................................................................................... 16
2.3 Bearbeitung der Ein- und Ausgänge im Multitaskingsystem.................................................. 17
2.4 Der adressierbare Merkerbereich (%M-Bereich) in AC500 ...................................................... 18
2.4.1 Aufteilung des adressierbaren Merkerbereiches in AC500 ................................................................ 18
2.4.2 Zugriff auf den %M-Bereich mit dem Modbus®-Protokoll .................................................................. 19
2.4.3 Zugriff auf die Operanden im adressierbaren Merkerbereich............................................................. 20
2.5 Absolutadressen von Operanden................................................................................................... 21
2.5.1 Der Adressoperator ADR.................................................................................................................... 21
2.5.2 Der Adressoperator für Bits BITADR.................................................................................................. 22
3 Die AC500-Steuerungskonfiguration............................................................................. 23
3.1 Übersicht über die Steuerungskonfiguration .............................................................................. 23
3.1.1 Funktionen der Steuerungskonfiguration............................................................................................ 23
3.1.2 Ex- und Import von Konfigurationsdaten ............................................................................................ 23
3.1.3 Standardeinträge der Steuerungskonfiguration.................................................................................. 24
3.1.4 Parametereingabe in der Steuerungskonfiguration............................................................................ 25
3.2 Konfiguration der CPU-Parameter.................................................................................................. 25
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 2 CPUs AC500 / Stand: 08.2005
3.3 Konfiguration des I/O-Bus ................................................................................................................ 27
3.3.1 Einstellung der allgemeinen Parameter des I/O-Bus ......................................................................... 27
3.3.2 Einfügen der Ein- und Ausgabegeräte ............................................................................................... 27
3.3.3 Konfiguration der Ein- und Ausgabegeräte und der Kanäle............................................................... 29
3.4 Konfiguration der seriellen Schnittstellen (Interfaces / COM1 und COM2) ......................... 30
3.4.1 Einstellen des Protokolls der seriellen Schnittstellen ......................................................................... 30
3.4.2 Die Einstellung ‚COMx - Online access' ............................................................................................. 31
3.4.3 Die Einstellung ‚COMx - ASCII' .......................................................................................................... 31
3.4.4 Die Einstellung 'COMx - Modbus' ....................................................................................................... 33
3.4.5 Einstellung ‚COMx - Decentralized IO expansion'.............................................................................. 34
3.4.6 Die Einstellung 'COM1 - CS31 Bus' ................................................................................................... 35
3.5 Konfiguration der FBP-Slave-Schnittstelle (Interfaces / FBP-Slave) .................................... 37
3.6 Konfiguration der Koppler (Coupler) ...................................................................................................... 39
3.6.1 Konfiguration des internen Kopplers .................................................................................................. 40
3.6.1.1 Der interne Ethernet-Koppler PM5x1-ETH...................................................................................... 40
3.6.1.2 Der interne ARCNET-Koppler PM5x1-ARCNET ............................................................................. 42
3.6.2 Konfiguration der externen Koppler.................................................................................................... 45
4 Steuerungsanlauf / Programmbearbeitung .............................................................. 47
4.1 Begriffe .................................................................................................................................................. 47
4.2 Start des Anwenderprogrammes.................................................................................................... 49
4.3 Initialisierung und Pufferung von Daten....................................................................................... 50
4.3.1 Übersicht zur Initialisierung von Variablen ......................................................................................... 50
4.3.2 Hinweise zur Deklaration von gepufferten Variablen und Konstanten ............................................... 52
4.4 Bearbeitungszeiten......................................................................................................................................... 53
4.4.1 Begriffe................................................................................................................................................ 53
4.4.2 Programmbearbeitungszeit................................................................................................................. 53
4.4.3 Eingestellte Zykluszeit ........................................................................................................................ 53
4.5 Die Taskkonfiguration für die AC500-CPU ........................................................................................... 54
5 Das Diagnosesystem in AC500.......................................................................................... 55
5.1 Übersicht über die Diagnosemöglichkeiten................................................................................. 55
5.1.1 Aufbau des Diagnosesystems ............................................................................................................ 55
5.1.2 Diagnose direkt an der SPS mit LED "ERR", Tastatur und Display ................................................... 56
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 3 CPUs AC500 / Stand: 08.2005
5.1.3 Klartextanzeige der Fehlermeldungen in der Statuszeile des Control Builders im Onlinebetrieb...... 57
5.1.4 Diagnose mit den PLC-Browser des Control Builders........................................................................ 57
5.1.5 Diagnose aus dem Anwenderprogramm............................................................................................ 57
5.2 Aufbau der Fehlernummern ............................................................................................................. 57
5.2.1 Fehlerklassen ..................................................................................................................................... 58
5.2.2 Fehlerkennung.................................................................................................................................... 58
5.2.3 Übersicht über die möglichen Fehlernummern................................................................................... 60
5.3 Die Diagnose-Bausteine der AC500 ............................................................................................... 64
5.4 AC500-spezifische PLC-Browser-Kommandos .......................................................................... 64
6 Die Speicherkarte in AC500 (SD Memory Card) .................................................... 67
6.1 Funktionen der SD-Karte .................................................................................................................. 67
6.1.1 Übersicht über die Funktionen der Speicherkarte .............................................................................. 67
6.1.2 PLC-Browser-Kommandos zur Bedienung der SD-Karte .................................................................. 67
6.2 Das File-System der Speicherkarte................................................................................................ 68
6.2.1 Übersicht über die Dateistruktur der SD-Karte ................................................................................... 68
6.2.2 Die Kommandodatei "SDCARD.INI"................................................................................................... 69
6.2.3 Initialisieren einer SD-Karte ................................................................................................................ 70
6.2.3.1 Initialisieren der SD-Karte mit der AC500........................................................................................ 70
6.2.3.2 Initialisieren der SD-Karte mit einem PC......................................................................................... 70
6.3 Speichern/Laden des Anwenderprogrammes auf SD-Karte.................................................... 71
6.3.1 Speichern des Anwenderprogrammes auf der SD-Karte ................................................................... 71
6.3.2 Laden des Anwenderprogrammes von der SD-Karte in die AC500................................................... 71
6.4 Speichern/Lesen von Anwenderdaten auf/von SD-Karte............................................................... 72
6.4.1 Aufbau der Datenfiles der SD-Karte ................................................................................................... 72
6.4.2 Die Bausteine zum Schreiben/Lesen von Anwenderdaten auf/von der SD-Karte ............................. 73
6.4.3 Löschen eines Datenfiles auf der SD-Karte ....................................................................................... 75
6.4.4 Speichern von Anwenderdaten auf die SD-Karte - Datenfile ohne Sektoren..................................... 75
6.4.5 Speichern von Anwenderdaten auf die SD-Karte - Datenfile mit Sektoren........................................ 76
6.4.6 Laden von Anwenderdaten von der SD-Karte - Datenfile ohne Sektoren.......................................... 76
6.4.7 Laden von Anwenderdaten von der SD-Karte - Datenfile mit Sektoren............................................. 78
6.5 Speichern und Laden von remanenten Daten auf SD-Karte ................................................... 79
6.6 Firmwareupdate mittels SD-Karte .................................................................................................. 79
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 4 CPUs AC500 / Stand: 08.2005
6.6.1 Speichern der Firmware auf die SD-Karte.......................................................................................... 79
6.6.2 Firmwareupdate der AC500 - CPU mit SD-Karte ............................................................................... 80
6.7 Fehlermeldungen der SD-Karte....................................................................................................... 81
7 Datenablage im Flash................................................................................................................ 82
7.1 Die Bausteine zur Datenablage ....................................................................................................... 82
7.2 Beispielprogramm zur Datenablage .............................................................................................. 82
8 Echtzeituhr und Batterie in AC500 .................................................................................. 83
8.1 Allgemeine Hinweise zur Echtzeituhr in AC500.......................................................................... 83
8.2 Stellen und Anzeigen der Echtzeituhr ........................................................................................... 83
8.2.1 Stellen und Anzeigen der Echtzeituhr im PLC-Browser ..................................................................... 83
8.2.2 Stellen und Anzeigen der Echtzeituhr im Anwenderprogramm.......................................................... 84
8.3 Die Batterie der AC500 ...................................................................................................................... 84
9 Die schnellen Zähler in AC500 ........................................................................................... 85
9.1 Aktivierung der schnellen Zähler am I/O-Bus ............................................................................. 85
9.2 Bedienung der schnellen Zähler ..................................................................................................... 85
9.3 Beispiel für einen schnellen Zähler................................................................................................ 85
10 Programmierung und Test.................................................................................................. 86
10.1 Die Programmierzugänge der AC500 für den Control Builder ............................................. 86
10.2 Programmierung über die seriellen Schnittstellen .................................................................. 87
10.2.1 Serieller Treiber "Serial (RS232)" ..................................................................................................... 88
10.2.2 Serieller Treiber "ABB RS232 Route AC"......................................................................................... 89
10.3 Programmierung über ARCNET.................................................................................................... 92
10.3.1 ARCNET-Treiber "ABB Arcnet AC" .................................................................................................. 93
10.4 Programmierung über Ethernet (TCP/IP) ................................................................................... 95
10.4.1 Ethernet-Treiber "Tcp/Ip" .................................................................................................................. 96
10.4.2 Ethernet-Treiber "ABB Tcp/Ip Level 2 AC" ....................................................................................... 97
10.4.3 Ethernet-ARCNET-Routing............................................................................................................. 100
11 Kommunikation mit Modbus RTU ....................................................................................... 102
11.1 Protokollbeschreibung.................................................................................................................. 102
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 5 CPUs AC500 / Stand: 08.2005
11.2 Modbus RTU mit den seriellen Schnittstellen COM1 und COM2 ....................................... 103
11.2.1 Modbus-Betriebsarten der seriellen Schnittstellen ......................................................................... 103
11.2.2 Modbus-Kabel für COM1 und COM2 ............................................................................................. 103
11.3 Modbus on TCP/IP über Ethernet ............................................................................................... 103
11.4 Modbus-Adressen .......................................................................................................................... 104
11.4.1 Adresstabelle für Modbus ............................................................................................................... 104
11.4.2 Besonderheiten für den Zugriff auf die Modbus-Adressen............................................................. 106
11.4.3 Vergleich der Modbus-Adressen für AC500 und AC31/S90 .......................................................... 107
11.5 Modbus-Telegramme ..................................................................................................................... 109
11.6 Funktionsbaustein COM_MOD_MAST ...................................................................................... 116
11.7 Beispielprogramm Modbus.......................................................................................................... 116
12 Index.................................................................................................................................................. 118
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 6 CPUs AC500 / Stand: 08.2005
1 Die Zielsystemeinstellungen (Target Support Package)
1.1 Einleitung
Die Zentraleinheiten der AC500 PM571, PM581 und PM591 werden mit dem AC500 Control Builder ab V1.0 programmiert. Der Control Builder basiert auf CoDeSys ab V2.3 SP4.
Hinweis: Diese Dokumentation gilt für alle Rubriken der Zentraleinheiten PM571, PM581 und PM591. Wenn im Text "PM581" steht, so gilt der Text auch für PM571 und PM591. Gilt er ausschließlich für die PM581, so wird ausdrücklich darauf hingewiesen.
Um die AC500-Steuerungen mit dem Contol Builder programmieren zu können, muss ein so genanntes Target Support Package (TSP) installiert werden. (siehe auch 3S-Doku/TSP). Standardmäßig werden die AC500-TSPs automatisch mit dem Control Builder mitinstalliert.
Standardmäßig gelten folgende Pfade für die Installation:
• Control Builder: ..\%ProgramFiles%\3S Software\CoDeSys V2.3 Die Umgebungsvariable %ProgramFiles% entspricht "Program Files" für englisches Betriebssystem bzw. "Programme" für deutsches Betriebssystem.
• TSP (Target Support Package): ..\%CommonProgramFiles%\CAA-Targets\ABB_AC500 Die Umgebungsvariable %CommonProgramFiles% entspricht "Program Files\Common Files" für englisches Betriebssystem bzw. "Programme\Gemeinsame Dateien" für deutsches Betriebssystem.
Im Kapitel "Installation eines Target Support Package" ist die Installation eines TSP detailliert beschrieben. (siehe auch "Installation eines Target Support Package")
In einem TSP sind alle Konfigurations- und Erweiterungsdateien zusammengefasst, die benötigt werden, um mit einer Applikation eine bestimmte Steuerung (Zielsystem, Target) zu bedienen. Konfiguriert werden:
• der Codegenerator, • das Speicherlayout, • der Funktionsumfang der Steuerung, • die I/O-Module, • die Belegung und Parametrierung der Schnittstellen.
Außerdem werden Bibliotheken, Gateway-Treiber, die zielsystemspezifischen Hilfedateien, die Fehlerbeschreibungsdatei (Errors.ini) und die Hilfedatei für den PLC-Browser (Browser.ini) eingebunden.
Hinweis: Die Zentraleinheiten der AC31 Serie 90 07 KT 95, 07 KT 96, 07 KT 97 und 07 KT 98 werden auch weiterhin mit dem Programmiersystem 907 AC 1131 programmiert.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 7 CPUs AC500 / Stand: 08.2005
1.2 Auswahl der Steuerung - Zielsystemeinstellungen
Die Zuordnung eines Projektes auf eine AC500-CPU erfolgt über die Zielsystemeinstellung im Control Builder.
Wird ein neues AC500-Projekt mit Datei / Neu erstellt, so erscheint zuerst die Abfrage nach dem Zielsystem:
(Zielsystem_1.gif)
Wählen Sie die entsprechende CPU aus und bestätigen Sie mit OK.
Hinweis: Wenn ein bestehendes Projekt auf eine andere AC500-CPU geladen werden soll, so muss in den Zielsystemeinstellungen die andere CPU eingetragen werden. Wählen Sie dafür im Registerblatt "Ressourcen" das Objekt "Zielsystemeinstellungen". Unter "Konfiguration" können Sie die gewünschte CPU auswählen.
1.3 Parameter einer CPU in den Zielsystemeinstellungen
1.3.1 Einstellungen "Zielplattform"
Nach der Auswahl einer AC500-CPU werden die generellen Parameter der CPU angezeigt:
Zielsystem_2.gif
Im Registerblatt "Zielplattform" werden die allgemeinen Einstellungen der CPU angezeigt. Diese Werte sind nicht änderbar.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 8 CPUs AC500 / Stand: 08.2005
Die Parameter bedeuten im einzelnen:
Dialogpunkt Bedeutung
Plattform Typ des Zielsystems - PowerPC
Fließkommaprozessor Fließkommaoperationen werden emuliert
Erstes Parameter-Register (Integer) Register, in dem der erste (Integer-) Parameter von C-Funktionsaufrufen übergeben wird (Bereich betriebssystemabhängig)
Letztes Parameter-Register (Integer) Register, in dem der letzte (Integer-) Parameter von C-Funktionsaufrufen übergeben wird (Bereich betriebssystemabhängig)
Register für Rückgabewert (Integer) Register, in dem Integerwerte von C-Funktionsaufrufen zurückgegeben werden (Bereich betriebssystemabhängig)
Intel byte order Deaktiviert: Motorola Byte Adressschema wird angewendet.
1.3.2 Einstellungen "Speicheraufteilung"
Das Registerblatt "Speicheraufteilung" enthält Angaben über die Speicheraufteilung in der CPU:
Zielsystem_3.gif
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 9 CPUs AC500 / Stand: 08.2005
Die Parameter bedeuten im Einzelnen:
Dialogpunkt Bedeutung
Größe (Code) Größe des Codebereiches (Anwenderprogramm) PM571: 10000 hex = 64 kB PM581: 40000 hex = 256 kB PM591: 400000 hex = 4096 kB = 4 MB
Größe pro Segment (Global) Größe des Datenbereiches (VAR ... END_VAR bzw. VAR_GLOBAL … END_VAR) PM571: 4000 hex = 16 kB PM581: 40000 hex = 256 kB PM591: 200000 hex = 2048 kB = 2 MB
Bereich (Memory) Größe des adressierbaren Merkerbereichs (%M-Bereich) PM571: 1000 hex = 4 kB PM581: 20000 hex = 128 kB PM591: 80000 hex = 512 kB
Bereich (Input) Größe des Inputprozessabbilds (%I-Bereich) PM5x1: 6000 hex = 24 kB
Bereich (Output) Größe des Outputprozessabbildes (%Q-Bereich) PM5x1: 6000 hex = 24 kB
Größe (Retain) Größe des Bereichs für remanente Daten (VAR RETAIN) PM571: 400 hex = 1 kB PM581: 8000 hex = 32 kB PM591: 80000 hex = 512 kB
Eigenes Retain-Segment aktiviert: Remanente Daten werden in eigenem Segment verwaltet
Größe des gesamten Datenspeichers
Ohne Bedeutung, wird in der Firmware verwaltet
Maximale Anzahl von Bausteinen im Projekt - 1024
Es gilt: - pro Funktion - pro Programm - pro Funktionsblock - pro Datentyp
1 Baustein 1 Baustein 2 Bausteine 1 Baustein
Maximale Anzahl von Bausteinen
Bausteine aus Bibliotheken belegen entsprechend dem Typ die gleiche Anzahl Bausteine.
Maximale Anzahl der Segmente globaler Daten
1 = alle globalen Daten werden in einem Segment verwaltet.
Die Nummern für die einzelnen Bereiche werden für die Verwaltung in der Firmware benötigt. Alle Parameter können vom Anwender nicht verändert werden.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 10 CPUs AC500 / Stand: 08.2005
1.3.3 Einstellungen "Allgemein"
Das Registerblatt "Allgemein" enthält allgemeine Angaben zum Zielsystem und den entsprechenden Dialogen im Control Builder.
Zielsystem_4.gif
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 11 CPUs AC500 / Stand: 08.2005
Die Parameter bedeuten im einzelnen:
Dialogpunkt Bedeutung
Konfigurierbar aktiviert: Konfigurierbare I/O-Konfiguration unterstützen und Konfigurationsbeschreibung auf die Steuerung laden
Download als Datei aktiviert: Beim Download wird die I/O-Konfiguration als Datei mit dem Projekt in die Steuerung geladen. Ist das Feld deaktiviert, so wird die I/O-Konfiguration im Downloadformat ohne Fortschrittsanzeige in die Steuerung geladen.
Preemptives Multitasking unterstützen
aktiviert: Taskkonfiguration unterstützen und Taskbeschreibung auf die Steuerung laden
Keine Adressprüfung deaktiviert: Beim Kompilieren des Projekts werden die IEC-Adressen geprüft
Online Change aktiviert: Online Change Funktionalität
Singletask in multitasking
nicht implementiert
Byte-Adressierung deaktiviert: Die Adressierung erfolgt byte-weise
Nullinitialisierung aktiviert: Generelle Initialisierung mit Null
Symboldatei senden deaktiviert: Die beim Download ggf. erzeugte Symboldatei wird nicht in die Steuerung geladen.
Symbolkonfiguration aus INI-Datei
deaktiviert: Die Parameter für die Symbolkonfiguration werden aus dem Dialog in den Projektoptionen gelesen.
SPS-Browser aktiviert: PLC-Browser-Funktionalität wird unterstützt.
Trace-Aufzeichnung aktiviert: Trace-Aufzeichnung ist möglich.
Zyklusunabhängiges Forcen
nicht implementiert
VAR_IN_OUT als Referenz
aktiviert: VAR_IN_OUTs werden beim Funktionsaufruf als Referenz übergeben (Pointer); deshalb keine Zuweisung von Konstanten und kein lesender oder schreibender Zugriff von außen möglich.
Eingänge initialisieren aktiviert: Es wird Initialisierungscode für die mit "AT %IX" deklarierten Eingäng erzeugt.
Bootprojekt automatisch laden
wenn aktiviert: Nach einem Download wird automatisch ein Bootprojekt aus dem neuen Programm erzeugt und zur Steuerung geschickt.
Softmotion deaktiviert: Es wird keine SoftMotion Funktionalität unterstützt
Forcen beibehalten wenn aktiviert: Beim Logout werden geforcte Werte (nach Abfrage) beibehalten.
Speichern Wenn "Forcen beibehalten" und "Speichern" aktiviert sind, wird beim "Bootprojekt erzeugen" die Forceliste mit im Flash abgelegt.
Die grau hinterlegten Parameter können vom Anwender geändert werden.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 12 CPUs AC500 / Stand: 08.2005
1.3.4 Einstellungen "Netzfunktionen"
Das Registerblatt "Netzfunktionen" enthält Einstellungen zu den Netzwerkvariablen. Netzwerkvariablen werden in der vorliegenden Version nicht unterstützt.
Zielsystem_5.gif
1.3.5 Einstellungen "Visualisierung"
Das Registerblatt "Visualisierung" enthält Einstellungen für in die SPS-Firmware integrierte Visualisierung. In der vorliegenden Version werden Target- und WEB-Visualisierung nicht unterstützt.
Zielsystem_6.gif
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 13 CPUs AC500 / Stand: 08.2005
2 Eingänge, Ausgänge und Merker in AC500
In der Dokumentation des Control Builders sind die Operanden, die CoDeSys bereitstellt, beschrieben. In dieser Dokumentation werden nachstehend die in CoDeSys genannten Operanden "Adresse", d. h. %I - für Eingänge und %Q - für Ausgänge detailliert beschrieben.
Im Control Builder können alle adressierbaren Operanden sowohl bitweise (X), byteweise (B), wortweise (W) und doppelwortweise (D) angesprochen werden. Der Zugriff erfolgt mit Motorola-Byteorder.
Deklaration von adressierbaren Operanden:
Die Deklaration der Operanden im adressierbaren Merkerbereich erfolgt in der Form:
Symbol AT Adresse : Typ [:= Initialisierungswert]; (* Kommentar *)
[.] optional
Die Deklaration der Ein- und Ausgänge erfolgt mit der Steuerungskonfiguration. Ein- und Ausgabegeräte, die direkt an die Zentraleinheit angekoppelt sind, werden direkt in der Steuerungskonfiguration deklariert. Ein- und Ausgangsgeräte, die an die Koppler angeschlossen sind, werden mit dem in den Control Builder integrierten Feldbuskonfigurator SYCON.net konfiguriert. (siehe auch Abschnitt Steuerungskonfiguration mit dem Control Builder).
Achtung: Beim Multitasking sind die digitalen Ein- und Ausgänge pro Task byteweise zykluskonsistent, d. h. z. B. die Eingänge %IX0.0-%IX0.7 für Task 1 und %IX1.0-%IX1.7 für Task 2. Hat z. B. Task 1 die höhere Priorität und wird der Eingang %IX0.0 in Task 1 und Task 2 benutzt, so kann sich der Wert innerhalb des Zyklus der Task 2 ändern, da er bei jedem Start der Task 1 aktualisiert wird. In Programmen mit einer Task ist das ohne Bedeutung.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 14 CPUs AC500 / Stand: 08.2005
2.1 Schnittstellen für Ein- / Ausgänge in AC500
In AC500 gibt es folgende Schnittstellen für Ein- und Ausgänge:
Nr. Typ Bezeichnung Anzahl der Ein- und Ausgänge
Konfiguration mit CoDeSys-Steuerungskonfiguration (ConfConf)
1 I/O-Bus Schnittstelle für E/A-Module max. 7 Module mit je max. 32 Kanälen (IX, QX, IW, QW)
CS31-Bus-Master max. 31 Module mit je max. 32 Kanälen, Adresse 0-61 2 COM1
dezentrale E/A-Erweiterung RS-232 / RS-485 (ab V2.0)
3 COM2 dezentrale E/A-Erweiterung RS-232 / RS-485 (ab V2.0)
4 FBP FieldBusPlug - Slave max. 8 Module mit 16 IW + 16 QW + 16 IB + 16 QB mit modularem FBP, abhängig vom Feldbus
5 Int. Koppler Interner Koppler ARCNET,.. (Konfiguration ohne SYCON.net)
Konfiguration mit integriertem SYCON.net
6 Linie 0 Interner Koppler je 4 kB %I0.xx / %Q0.xx
7 Linie 1 Koppler 1 je 4 kB %I1.xx / %Q1.xx
8 Linie 2 Koppler 2 je 4 kB %I2.xx / %Q2.xx
9 Linie 3 Koppler 3 je 4 kB %I3.xx / %Q3.xx
10 Linie 4 Koppler 4 je 4 kB %I4.xx / %Q4.xx
2.1.1 Adressschema für Ein- und Ausgänge
• Die Adressierung der Koppler-E/As erfolgt zweistufig in der Form: %I(Q)BKoppler-Nummer.ByteKoppler Die Konfiguration erfolgt mit SYCON.net
• Die E/As, die an die CPU angeschlossen werden, erhalten keine Kopplernummer und werden mit der internen Control-Builder-Steuerungskonfiguration (ConfConf) konfiguriert.
• Die E/As, die an die Zentrale angeschlossen sind, werden auf folgende Adressbereiche gelegt:
I/O-Bus: %IB0 .. %IB999 und %QB0 .. %QB999
COM1: %IB1000 .. %IB1999 und %QB1000 .. %QB1999
COM2: %IB2000 .. %IB2999 und %QB2000 .. %QB2999
FBP-Slave: %IB3000 .. %IB3999 und %QB3000 .. %QB3999
• Die Adressierung der digitalen Kanäle erfolgt byteorientiert.
• Der Zugriff auf die Ein- und Ausgänge erfolgt mit Motorola-Byteorder.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 15 CPUs AC500 / Stand: 08.2005
2.1.2 Beispiel für Adressierung in BOOL / BYTE / WORD / DWORD
Die Adressierung erfolgt gemäß Motorola Byteorder.
Adr Adr + 1 Adr + 2 Adr + 3 Adresse
16#xxxx x000 16#xxxx x001 16#xxxx x002 16#xxxx x003
BYTE %IB0 %IB1 %IB2 %IB3
7 ... 0 7 ... 0 7 ... 0 7 ... 0 BOOL
%IX0.7 ... %IX0.0 %IX1.7 ... %IX1.0 %IX2.7 ... %IX2.0 %IX3.7 ... %IX3.0
%IW0 %IW1 WORD
15 ... 8 7 ... 0 15 ... 8 7 ... 0
%ID0 DWORD
31 ... 24 23 ... 16 15 ... 8 7 ... 0
Beispiele:
%IX0.0 := TRUE
%IB0 := 1 := 16#01
%IW0 := 256 := 16#0100 (Bit 8 = TRUE)
%ID0 := 16777216 :0 16#01000000 (Bit 24 = TRUE)
%IX3.0 := TRUE
%IB3 := 1 := 16#01
%IW1 := 1 := 16#0001
%ID0 := 1 := 16#00000001
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 16 CPUs AC500 / Stand: 08.2005
2.2 Adressierung der Ein- und Ausgänge
Nr. Gerät Ein- / Ausgang Schnittstelle Bereich Adressen
Konfiguration mit ConfConf (I/Os der CPU) bzw. SYCON.net (Interner Koppler)
Eingänge (4 kB)
I/O-Bus COM1 COM2 FBP
0000..09991000..19992000..29993000..4095
%IB0 ... %IB4095 %IW0 ... %IW2047 %ID0 ... %ID1023 %IX0.0 ... %IX4095.7 E/As der CPU
Und
Ausgänge (4 kB)
CPU I/O-Bus
COM1 COM2 FBP
0000..09991000..19992000..29993000..4095
%QB0 ... %QB4095 %QW0 ... %QW2047 %QD0 ... %QD1023 %QX0.0 ... %QX4095.7
Eingänge (4 kB)
%IB0 ... %IB4095 %IW0 ... %IW2047 %ID0 ... %ID1023 %IX0.0 ... %IX4095.7
0 ... 5
Interner Koppler
Ausgänge (4 kB)
Linie 0 0.0000 ... 0.4095 %QB0 ... %QB4095
%QW0 ... %QW2047 %QD0 ... %QD1023 %QX0.0 ... %QX4095.7
Konfiguration mit SYCON.net
Eingänge (4 kB)
%IB1.0 ... %IB1.4095 %IW1.0 ... %IW1.2047 %ID1.0 ... %ID1.1023 %IX1.0.0 ... %IX1.4095.7
6 Koppler 1
Ausgänge (4 kB)
Linie 1 1.0000 ... 1.4095 %QB1.0 ... %QB1.4095
%QW1.0 ... %QW1.2047 %QD1.0 ... %QD1.1023 %QX1.0.0 ... %QX1.4095.7
...
Eingänge (4 kB)
%IB4.0 ... %IB4.4095 %IW4.0 ... %IW4.2047 %ID4.0 ... %ID4.1023 %IX4.0.0 ... %IX4.4095.7
9 Koppler 4
Ausgänge (4 kB)
Linie 4 4.0000 ... 4.4095 %QB4.0 ... %QB4.4095
%QW4.0 ... %QW4.2047 %QD4.0 ... %QD4.1023 %QX4.0.0 ... %QX4.4095.7
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 17 CPUs AC500 / Stand: 08.2005
2.3 Bearbeitung der Ein- und Ausgänge im Multitaskingsystem
Die nachfolgende Abbildung zeigt, wie die Ein- und Ausgänge im Multitaskingsystem bearbeitet werden.
Interrupt und Task fertig
Ausgänge Ext. coupler Slot 4
Hardware / DPR E/A-Abbild ImageTasks
..
Abarbeitung Anwendertask:Lesen und Schreiben auf dem Image
Interrupt
I/O-Bus
Eingänge
COM1: CS31-Bus
COM2: local I/O expansion
FBP slave interface
Internal coupler – Slot 0
External coupler – Slot 1
External coupler – Slot 4
..
I/O-Bus
Ausgänge
COM1: CS31-Bus
COM2: local I/O expansion
FBP slave interface
Internal coupler – Slot 0
External coupler – Slot 1
External coupler – Slot 4
..
I/O-Bus
COM1: CS31-Bus
COM2: local I/O expansion
FBP slave interface
Internal coupler – Slot 0
External coupler – Slot 1
External coupler – Slot 4
..
I/O-Bus
COM1: CS31-Bus
COM2: local I/O expansion
FBP slave interface
Internal coupler – Slot 0
External coupler – Slot 1
External coupler – Slot 4
..
..
Eingänge am I/O-Bus
Eingänge an COM1
Eingänge an COM2
Eingänge am FBP interface
Eingänge Int. coupler Slot 0
Eingänge Ext. coupler Slot 4
Variablenbereich
Adressbereich (%M-Bereich)
RETAIN-Bereich
Ausgänge am I/O-Bus
Ausgänge an COM1
Ausgänge an COM2
Ausgänge am FBP interface
Ausgänge Int. coupler Slot 0
Ausgänge Ext. coupler Slot 1
..Eingänge Ext. coupler Slot 1
Start einer Task:Byteweises Kopieren derin der Task verwendetenEingänge
..
..
..
Ende einer Task:Byteweises Kopieren derin der Task verwendetenAusgänge
Interrupt und Task fertig
Ausgänge Ext. coupler Slot 4Ausgänge Ext. coupler Slot 4
Hardware / DPR E/A-Abbild ImageTasks
..
Abarbeitung Anwendertask:Lesen und Schreiben auf dem Image
Interrupt
I/O-Bus
Eingänge
COM1: CS31-Bus
COM2: local I/O expansion
FBP slave interface
Internal coupler – Slot 0
External coupler – Slot 1
External coupler – Slot 4
..
I/O-Bus
Eingänge
COM1: CS31-Bus
COM2: local I/O expansion
FBP slave interface
Internal coupler – Slot 0
External coupler – Slot 1
External coupler – Slot 4
..
I/O-Bus
Ausgänge
COM1: CS31-Bus
COM2: local I/O expansion
FBP slave interface
Internal coupler – Slot 0
External coupler – Slot 1
External coupler – Slot 4
..
I/O-Bus
Ausgänge
COM1: CS31-Bus
COM2: local I/O expansion
FBP slave interface
Internal coupler – Slot 0
External coupler – Slot 1
External coupler – Slot 4
..
I/O-Bus
COM1: CS31-Bus
COM2: local I/O expansion
FBP slave interface
Internal coupler – Slot 0
External coupler – Slot 1
External coupler – Slot 4
..
I/O-Bus
COM1: CS31-Bus
COM2: local I/O expansion
FBP slave interface
Internal coupler – Slot 0
External coupler – Slot 1
External coupler – Slot 4
..
..
Eingänge am I/O-BusEingänge am I/O-Bus
Eingänge an COM1Eingänge an COM1
Eingänge an COM2Eingänge an COM2
Eingänge am FBP interfaceEingänge am FBP interface
Eingänge Int. coupler Slot 0Eingänge Int. coupler Slot 0
Eingänge Ext. coupler Slot 4Eingänge Ext. coupler Slot 4
VariablenbereichVariablenbereich
Adressbereich (%M-Bereich)Adressbereich (%M-Bereich)
RETAIN-BereichRETAIN-Bereich
Ausgänge am I/O-BusAusgänge am I/O-Bus
Ausgänge an COM1Ausgänge an COM1
Ausgänge an COM2Ausgänge an COM2
Ausgänge am FBP interfaceAusgänge am FBP interface
Ausgänge Int. coupler Slot 0Ausgänge Int. coupler Slot 0
Ausgänge Ext. coupler Slot 1Ausgänge Ext. coupler Slot 1
..Eingänge Ext. coupler Slot 1Eingänge Ext. coupler Slot 1
Start einer Task:Byteweises Kopieren derin der Task verwendetenEingänge
Start einer Task:Byteweises Kopieren derin der Task verwendetenEingänge
..
..
..
Ende einer Task:Byteweises Kopieren derin der Task verwendetenAusgänge
Ende einer Task:Byteweises Kopieren derin der Task verwendetenAusgänge
Bildung des Eingangsabbildes:
Eingänge am I/O-Bus:
Wenn am I/O-Bus alle E/A-Module bearbeitet wurden, wird beim Verarbeitungsprozessor ein entsprechender Interrupt ausgelöst. In der Interruptserviceroutine (ISR) werden die Eingänge in das Eingangsabbild kopiert. Wenn die Ausgänge durch eine Task aktualisiert wurden, werden die Ausgänge aus dem Ausgangsabbild kopiert.
Eingänge am CS31-Systembus:
Wenn der CS31-Treiber alle E/A-Module bearbeitet hat, wird beim Verarbeitungsprozessor ein entsprechender Interrupt ausgelöst. In der Interruptserviceroutine (ISR) werden die Eingänge in das Eingangsabbild kopiert. Wenn die Ausgänge durch eine Task aktualisiert wurden, werden die Ausgänge aus dem Ausgangsabbild kopiert.
Eingänge der Koppler Linie 0 bis Linie 4:
Wenn ein Koppler neue E/A-Daten hat, wird beim Verarbeitungsprozessor ein entsprechender Interrupt ausgelöst. In der Interruptserviceroutine (ISR) werden die Eingänge aus dem DPR in das Eingangsabbild des Verarbeitungsprozessors kopiert. Wenn die Ausgänge durch eine Task aktualisiert wurden, werden die Ausgänge aus dem Ausgangsabbild in das DPR kopiert.
Vorraussetzung ist, dass der Koppler eine gültige Konfiguration besitzt.
Start einer Task:
Beim Start einer Task werden die in der Task verwendeten Eingänge byteweise aus dem Eingangsabbild in das Image kopiert. Byteweise bedeutet, dass bei Verwendung z. B. des %IX0.0 das Abbild der Eingänge %IX0.0 ... IX0.7 in das Image kopiert werden.
Da nur die in der Task direkt verwendeten Eingänge kopiert werden, kann man die Eingänge nicht indirekt lesen, wenn sie zykluskonsistent sein sollen.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 18 CPUs AC500 / Stand: 08.2005
Bearbeitung einer Task:
Alle Tasks arbeiten auf dem Image, d. h. die Eingänge werden vom Image gelesen und die Ausgänge werden in das Image geschrieben. Im Online-Betrieb werden die Ein-/Ausgänge aus dem Image angezeigt.
Ende einer Task Bearbeitung des Ausgangsabbildes:
Am Ende einer Task werden die in der Task verwendeten Ausgänge byteweise aus dem Image in das Ausgangsabbild kopiert. Byteweise bedeutet, dass bei Verwendung z. B. des %QX0.0 das Abbild der Ausgänge %QX0.0 ... %QX0.7 aus dem Image in das Ausgangsabbild kopiert werden. Es werden die internen Variablen "Ausgangsabbild aktualisiert" für den CS31-Prozessor und die Koppler 0..4 gesetzt.
Schreiben der Ausgänge:
Ausgänge am I/O-Bus:
Beim nächsten Interrupt des I/O-Bus-Treibers werden die Ausgänge aus dem Ausgangsabbild geschrieben und die Variable "Ausgangsabbild aktualisiert" zurückgesetzt.
Ausgänge am CS31-Systembus:
Beim nächsten Interrupt des CS31-Prozessors werden die Ausgänge aus dem Ausgangsabbild geschrieben und die Variable "Ausgangsabbild aktualisiert" zurückgesetzt.
Ausgänge der Koppler in Linie 0 bis Linie 4:
Beim nächsten Interrupt des Kopplers werden die Ausgänge aus dem Ausgangsabbild in das DPR geschrieben und die Variable "Ausgangsabbild aktualisiert" zurückgesetzt.
I/O-Update-Task:
Damit die in den Tasks nicht verwendeten Ein-/Ausgänge ebenfalls aktualisiert werden, werden alle Ein-/Ausgänge im Image in einer niederprioren Task (I/O-Update-Task) aktualisiert. Diese Task wird nur dann abgearbeitet, wenn keine andere Anwendertask läuft.
2.4 Der adressierbare Merkerbereich (%M-Bereich) in AC500
2.4.1 Aufteilung des adressierbaren Merkerbereiches in AC500
Der adressierbare Merkerbereich ist bei AC500 in mehrere Segmente zu je 64 kByte aufgeteilt. Maximal können 8 Segmente adressiert werden. Die Verfügbarkeit der Segmente bzw. Teilsegmente ist von der CPU abhängig. Bitte entnehmen Sie die Größe des %M-Bereiches den Systemdaten der CPUs (siehe auch Technische Daten der CPU) bzw. Kapitel Zielsystemeinstellungen.
Segment Operanden Größe (dez) kumulativ [kB]
Größe (hex) kumulativ 1)
0 %MB0.0 ... %MB0.65535 64 16#10000
1 %MB1.0 ... %MB1.65535 128 16#20000
2 %MB2.0 ... %MB2.65535 192 16#30000
3 %MB3.0 ... %MB3.65535 256 16#40000
4 %MB4.0 ... %MB4.65535 320 16#50000
5 %MB5.0 ... %MB5.65535 384 16#60000
6 %MB6.0 ... %MB6.65535 448 16#70000
7 %MB7.0 ... %MB7.65535 512 16#80000
Anmerkung: 1) In den Zielsystemeinstellungen für die Zentrale ist im Parameter Speichereinstellung / Memory dieser Wert eingetragen.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 19 CPUs AC500 / Stand: 08.2005
2.4.2 Zugriff auf den %M-Bereich mit dem Modbus®-Protokoll
In die AC500 ist das Modbus®RTU-Protokoll integriert. Mit dem Modbus®-Protokoll kann auf die Segmente 0 und 1 des adressierbaren Merkerbereiches zugegriffen werden.
Eine detaillierte Beschreibung des Modbus®-Protokolls und der entsprechenden Adresszuordnung finden Sie im Kapitel Modbus dieser Dokumentation. (siehe auch MODBUS-Protokoll).
Hinweis: Bei der AC500-CPU PM571 stehen 4kB = %MB0.0 .. %MB0.4095 (d. h. kein komplettes Segment) für den adressierbaren Merkerbereich zur Verfügung. Dementsprechend kann nicht auf alle Modbus-Adressen zugegriffen werden.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 20 CPUs AC500 / Stand: 08.2005
2.4.3 Zugriff auf die Operanden im adressierbaren Merkerbereich
Der Zugriff auf die Operanden im %M-Bereich kann bit-, byte-, wort- und doppelwortweise erfolgen.
Byte BYTE
Bit (byteorientiert) BOOL
Wort INT / WORD
Doppelwort DINT / DWORD
Segment 0
%MB0.0 %MX0.0.0 ... MX0.0.7
%MB0.1 %MX0.1.0 ... MX0.1.7 %MW0.0
%MB0.2 %MX0.2.0 ... MX0.2.7
%MB0.3 %MX0.3.0 ... MX0.3.7 %MW0.1
%MD0.0
... ... ... ...
%MB0.65532 %MX0.65532.0 ... %MX0.65532.7
%MB0.65533 %MX0.65533.0 ... %MX0.65533.7 %MW0.32766
%MB0.65534 %MX0.65534.0 ... %MX0.65534.7
%MB0.65535 %MX0.65535.0 ... %MX0.65535.7 %MW0.32767
%MD0.16383
Segment 1
%MB1.0 %MX1.0.0 ... %MX1.0.7
%MB1.1 %MX1.1.0 ... %MX1.1.7 %MW1.0
%MB1.2 %MX1.2.0 ... %MX1.2.7
%MB1.3 %MX1.3.0 ... %MX1.3.7 %MW1.1
%MD1.0
... ... ... ...
%MB1.65532 %MX1.65532.0 ... %MX1.65532.7
%MB1.65533 %MX1.65533.0 ... %MX1.65533.7 %MW1.32766
%MB1.65534 %MX1.65534.0 ... %MX1.65534.7
%MB1.65535 %MX1.65535.0 ... %MX1.65535.7 %MW1.32767
%MD1.16383
Segment 2
%MB2.0 %MX2.0.0 ... %MX2.0.7
%MB2.1 %MX2.1.0 ... %MX2.1.7 %MW2.0
%MB2.2 %MX2.2.0 ... %MX2.2.7
%MB2.3 %MX2.3.0 ... %MX2.3.7 %MW2.1
%MD2.0
... ... ... ...
%MB2.65532 %MX2.65532.0 ... %MX2.65532.7
%MB2.65533 %MX2.65533.0 ... %MX2.65533.7 %MW2.32766
%MB2.65534 %MX2.65534.0 ... %MX2.65534.7
%MB2.65535 %MX2.65535.0 ... %MX2.65535.7 %MW2.32767
%MD2.16383
... ... ... ...
Segment 7
%MB7.0 %MX7.0.0 ... %MX7.0.7
%MB7.1 %MX7.1.0 ... %MX7.1.7 %MW7.0
%MB7.2 %MX7.2.0 ... %MX7.2.7
%MB7.3 %MX7.3.0 ... %MX7.3.7 %MW7.1
%MD7.0
... ... ... ...
%MB7.65532 %MX7.65532.0 ... %MX7.65532.7
%MB7.65533 %MX7.65533.0 ... %MX7.65533.7 %MW7.32766
%MB7.65534 %MX7.65534.0 ... %MX7.65534.7
%MB7.65535 %MX7.65535.0 ... %MX7.65535.7 %MW7.32767
%MD7.16383
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 21 CPUs AC500 / Stand: 08.2005
2.5 Absolutadressen von Operanden
2.5.1 Der Adressoperator ADR
Bei bestimmten Bausteinen bzw. bei Zugriff auf Operanden über Pointer ist es erforderlich, die Absolutadresse eines Operanden zu ermitteln. Der Control Builder stellt dazu den Adressoperator ADR zur Verfügung.
Der Adressoperator ADR ist in der Dokumentation des Control Builders beschrieben (siehe auch ADR-Operator in CoDeSys-Doku). In dieser Dokumentation wird nur auf die Besonderheiten für Bit-Operanden hingewiesen.
Die vom Adressoperator gelieferten Adressen können als Eingänge für die Bausteine, die Absolutadressen fordern (wie xxx_MOD_MAST, COM_SND), dienen. Sollen diese Bausteine auf interne Variablen angewendet werden, so muss sichergestellt sein, dass die Variablen auf aufeinanderfolgenden Adressen liegen. Das wird durch Deklaration von ARRAYS und STRINGS erreicht.
Der Adressoperator ADR stellt die Adresse eines Operanden in einem Doppelwort DWORD, d. h. 32 Bit bereit. Der Adressoperator liefert die Adresse des ersten Bytes einer Variablen (Byte-Adresse). Bei den frei definierbaren Variablen werden Variablen vom Typ BOOL als Byte abgelegt.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 22 CPUs AC500 / Stand: 08.2005
2.5.2 Der Adressoperator für Bits BITADR
Bei Eingängen, Ausgängen und Variablen aus dem adressierbaren Merkerbereich (%M-Bereich) belegen Operanden vom Typ BOOL ein Bit. Die Adresse solcher Variablen kann nicht mit dem ADR-Operator ermittelt werden.
Beim Übersetzen der Anweisung:
dwAdresse := ADR(%MX0.0.0);
erscheint folgende Fehlermeldung:
Fehler 4031: PLC_PRG(xx): Der ADR Operator ist auf Bits nicht erlaubt! Verwenden Sie stattdessen BITADR
BITADR liefert den Bitoffset innerhalb des Bereiches %I, %Q bzw. %M in einem DWORD.
In der nachfolgenden Tabelle ist die Lage der Operanden im Speicher am Beispiel des %MD0.0 und %MD0.1 dargestellt. Es wird gezeigt, welche Adressen mit dem ADR-Operator und welche Offsets mit dem BITADR geliefert werden.
Hinweis: Die Adressen sind Beispiele und müssen nicht zwingend die gleichen Werte haben.
%M
X0.
7.0
48%
MX
0.3.
016
31%
MX
0.7.
149
%M
X0.
3.1
17%
MX
0.7.
250
%M
X0.
3.2
18%
MX
0.7.
351
%M
X0.
3.3
19%
MX
0.7.
452
%M
X0.
3.4
20%
MX
0.7.
553
%M
X0.
3.5
21%
MX
0.7.
654
%M
X0.
3.6
22%
MX
0.7.
755
%M
X0.
3.7
23%
MX
0.6.
056
%M
X0.
2.0
24%
MX
0.6.
157
%M
X0.
2.1
25%
MX
0.6.
258
%M
X0.
2.2
26%
MX
0.6.
359
%M
X0.
2.3
27%
MX
0.6.
460
%M
X0.
2.4
28%
MX
0.6.
561
%M
X0.
2.5
29%
MX
0.6.
662
%M
X0.
2.6
30%
MX
0.6.
763
%M
X0.
2.7
31%
MX
0.5.
032
%M
X0.
1.0
0%
MX
0.5.
133
%M
X0.
1.1
1%
MX
0.5.
234
%M
X0.
1.2
2%
MX
0.5.
335
%M
X0.
1.3
3%
MX
0.5.
436
%M
X0.
1.4
4%
MX
0.5.
537
%M
X0.
1.5
5%
MX
0.5.
638
%M
X0.
1.6
6%
MX
0.5.
739
%M
X0.
1.7
7%
MX
0.4.
040
%M
X0.
0.0
8%
MX
0.4.
141
%M
X0.
0.1
9%
MX
0.4.
242
%M
X0.
0.2
10%
MX
0.4.
343
%M
X0.
0.3
11%
MX
0.4.
444
%M
X0.
0.4
12%
MX
0.4.
545
%M
X0.
0.5
13%
MX
0.4.
646
%M
X0.
0.6
14%
MX
0.4.
747
%M
X0.
0.7
15
Bit-Nr.
DWORDWORD
BYTEADR
BOOL
DWORD
WORDBYTE
ADR
BOOL
BITADR
BITADR
%MD0.0
%MD0.1
%MW0.0
%MW0.2
%MW0.1
%MW0.3
%MB0.016#08000000
%MB0.116#08000001
%MB0.216#08000002
%MB0.316#08000003
%MB0.4
16#08000004
%MB0.5
16#08000005
%MB0.6
16#08000006
%MB0.7
16#08000007
3029282726252423222120191817161514131211109876543210
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 23 CPUs AC500 / Stand: 08.2005
3 Die AC500-Steuerungskonfiguration
3.1 Übersicht über die Steuerungskonfiguration
3.1.1 Funktionen der Steuerungskonfiguration
Die allgemeine Bedienung der Steuerungskonfiguration ist in der Dokumentation des Control Builders (siehe CoDeSys-Doku / Steuerungskonfiguration) detailliert beschrieben. In diesem Abschnitt wird die Konfiguration der AC500 beschrieben.
In der Steuerungskonfiguration wird die Hardware im Projekt abgebildet. Damit können dem Projekt folgende Daten zur Verfügung gestellt werden:
• Allgemeine Parameter der AC500-CPU
• Ein- und Ausgänge aller am I/O-Bus angeschlossenen Geräte
• Eingabe der symbolischen Namen und Kommentare zu den Ein- und Ausgängen
• Parameter der Ein- und Ausgabemodule und ggf. deren E/A-Kanäle
• Einstellung des Mode und der Parameter der seriellen Schnittstellen
• Ein- und Ausgänge aller Ein-/Ausgabemodule, die im CS31-Mode an die serielle Schnittstelle COM1 angeschlossen sind
• Art und allgemeine Parameter und Protokolle der gesteckten Koppler
• Alle notwendigen Systembibliotheken werden beim Übersetzen <F11> automatisch entsprechend der Konfiguration geladen
• Anlegen einer Datenbank zum Ex- und Import von Konfigurationsdaten im XML-Datenformat
Die Steuerungskonfiguration der AC500 ist so gewählt, dass ein Projekt in alle AC500-CPUs (PM571, PM581, PM591, ..) geladen werden kann. Um ein Projekt in eine andere CPU zu laden, wird in den Zielsystemeinstellungen die entsprechende CPU ausgewählt. Die Steuerungskonfiguration muss nur geändert werden, wenn sich der Hardwareaufbau der Steuerung geändert hat, d. h. wenn z.B. andere Koppler gesteckt sind.
Die Steuerungskonfiguration bietet die Möglichkeit, die gesamte Konfiguration oder Teile davon zu exportieren und zu importieren. Damit ist es z. B. möglich, einmal editierte symbolische Namen für die Ein-/Ausgänge eines E/A-Moduls im PC abzulegen und in andere Projekte wieder zu importieren. Auch Einstellungen der Schnittstellen können so abgelegt werden (siehe auch Kapitel "Ex- und Import von Konfiguratiosdaten").
3.1.2 Ex- und Import von Konfigurationsdaten
Um ein Modul, alle Daten einer Schnittstelle oder eine komplette Konfiguration zu exportieren, wählt man den entsprechenden Eintrag in der Steuerungskonfiguration an, öffnet das Kontextmenü mit der rechten Maustaste und aktiviert die Funktion "Modul exportieren". Im sich öffnenden Dialog wird das Modul in der entsprechenden Konfigurationsebene mit dem gewählten Modulnamen im XML-Format abgespeichert.
Der Import der Module erfolgt analog dem Export. Im entsprechend der Konfiguration angewähltem Modul wird per Rechte-Maus-Klick das Kontextmenü aktiviert und mit "Modul importieren" der Import angewählt.
Hinweis: Es ist zu beachten, dass Module nur in der gleichen Konfigurationsebene importiert werden können, wie sie vorher exportiert wurden.
Bei E/A-Modulen (z. B. I/O-Bus, CS31-Bus) ist es egal, an welcher Stelle das Modul steckt. Ein Modul kann also z. B. auf Steckplatz 1 exportiert und später an Steckplatz 5 importiert werden. Die Ein- und Ausgabeadressen werden automatisch angepasst.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 24 CPUs AC500 / Stand: 08.2005
Beispiele für den Ex-/Import:
Beispiel 1:
Das Ein-/Ausgabemodul DC532 am I/O-Bus für Maschinenteil Axx soll als DC532_Axx gespeichert werden und danach in einem anderen Projekt verwendet werden.
1. Fügen Sie ein Modul DC532 mit Cursor auf I/O-Bus, Rechter Maus-Klick, Modul / "Unterelement anhängen" / "DC532 - 16 digital input and 16 digital Inoutput" an den I/O-Bus an.
2. Editieren Sie die symbolischen Namen und Kommentare für die Ein-/Ausgänge
3. Exportieren des Moduls durch Rechte-Maus-Klick / "Modul exportieren" und Eingabe des Modulnamens "DC532_Axx". Das File "DC532_Axx.xml" wird im Compile-Verzeichnis des Control Builders abgelegt.
4. Speichern Sie ggf. das Projekt und öffnen/erzeugen Sie das Projekt, in das das Modul eingefügt werden soll.
5. Fügen Sie an den I/O-Bus dieses Projektes ein Modul DC532 an.
6. Selektieren Sie das Modul DC532 mit dem Cursor und importieren Sie durch Rechte-Maus-Klick / Modul importieren und Auswahl des Files "DC532_Axx" das zuvor exportierte Modul. Das Modul wird eingelesen und die symbolischen Namen und Kommentare stehen zur Verfügung.
Beispiel 2:
Die Einstellung der seriellen Schnittstelle COM1 als Modbus RTU sollen als "COM1_MODBUS_Slave1" gespeichert werden.
1. Stellen Sie die COM1 durch Rechte-Maus-Klick / Element ersetzen auf "COM1 - MODBUS" um.
2. Konfigurieren Sie die Schnittstellenparameter im Dialog "Modulparameter"
3. Exportieren Sie die Einstellungen durch Selektieren der COM1, Rechte-Maus-Klick / "Modul exportieren" und Eingabe des Dateinamens "COM1_MODBUS_Slave1". Das File "COM1_MODBUS_Slave1.xml" wird im Compile-Verzeichnis des Control Builders abgelegt.
3.1.3 Standardeinträge der Steuerungskonfiguration
Nachdem mit den "Zielsystemeinstellungen" eine AC500-CPU ausgewählt wurde, kann diese konfiguriert werden. Wählen Sie dazu im Registerblatt "Ressourcen" das Objekt "Steuerungskonfiguration" aus.
Bei einem neuen AC500-Projekt enthält die Steuerungskonfiguration folgende Standardeinträge:
PLCconf_1.gif
Hinweis: Die gleichen Einstellungen erhalten Sie mit dem Menü "Extras" / "Standardkonfiguration".
Die Einträge stellen die Schnittstellen der AC500-Steuerungen dar. Jede Schnittstelle kann konfiguriert werden.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 25 CPUs AC500 / Stand: 08.2005
Die einzelnen Einträge dienen der Konfiguration von:
Eintrag Konfiguration
CPU parameters der CPU-Parameter
I/O-Bus von Ein-/Ausgabe-Geräten, die direkt an die CPU angeschlossen werden
Interfaces der seriellen Schnittstellen COM1 und COM2 sowie der FBP-Slave-Schnittstelle
Couplers von Parametern und Protokollen des internen und der externen Koppler. Die eigentliche Konfiguration der Koppler (außer ARCNET) und der angeschlossenen Ein-/Ausgangsgeräte erfolgt mit dem integrierten Feldbuskonfigurator SYCON.net (siehe auch Feldbuskonfiguration mit SYCON.net).
Der Steuerungskonfiguration liegen die mit dem TSP installierten Gerätedateien *.cfg zugrunde.
3.1.4 Parametereingabe in der Steuerungskonfiguration
Für alle Parameter-Dialoge gelten folgende Grundregeln:
• Alle sichtbaren Parameter der Gerätedatei werden dargestellt. Nur in der Spalte Wert kann editiert werden.
• Index: Der Index ist eine fortlaufende Zahl (i), welche die Parameter innerhalb des Moduls durchnummeriert.
• Name: Name des Parameters
• Wert: Wert des Parameters, veränderbar. Angezeigt wird zunächst der Defaultwert. Werte können direkt oder über symbolische Namen dargestellt werden. Wenn die Einträge in der Konfigurationsdatei nicht auf 'Read Only' gesetzt sind, können sie editiert werden, indem per Mausklick auf den Wert das Eingabefeld geöffnet wird bzw. über eine Auswahlliste ein anderer Wert ausgewählt wird.
• Default: Defaultwert des Parameters
• Min.: minimaler Wert des Parameters (nur bei direkter Werte-Darstellung)
• Max.: maximaler Wert des Parameters (nur bei direkter Werte-Darstellung)
Ggf. erhält man über einen Tooltip zusätzliche Informationen zum aktuell selektierten Parameter. Diese Informationen werden entsprechend der Spracheinstellung des Control Builders ausgegeben.
3.2 Konfiguration der CPU-Parameter
Wenn Sie auf "CPU parameters" klicken, erscheint folgender Konfigurationsdialog:
PLCconf_2.gif
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 26 CPUs AC500 / Stand: 08.2005
Es können folgende Einstellungen vorgenommen werden:
Parameter Vorein- stellung
Wert Bedeutung
On Befindet sich ein gültiges Projekt im Flash, so wird dieses beim Einschalten der Steuerung in das RAM geladen und gestartet.
Auto run / Start des Anwenderprogramms bei Spannung EIN siehe Anmerkung 1
On
Off Befindet sich ein gültiges Projekt im Flash, so wird dieses beim Einschalten der Steuerung in das RAM geladen, aber nicht gestartet.
On Die Error-LED wird bei Fehlern aller Klassen eingeschaltet.
Off_by_E4 Warnungen (E4) werden nicht mit der Error-LED angezeigt.
Error-LED / Fehler-LED
On
Off_by_E3 Warnungen (E4) und leichte Fehler (E3) werden nicht mit der Error-LED angezeigt.
On Die Batterie wird auf Vorhandensein und Zustand überprüft. Ist keine Batterie enthalten bzw. die Batterie ist leer, so wird eine Warnung (E4) generiert und die LED ERR geht an.
Check battery / Überwachung der Batterie
On
Off Die Batterie wird nicht überwacht. Es wird keine Warnung (E4) generiert. Das gilt auch, wenn eine Batterie gesteckt ist und diese leer ist!
Off in hardware and online
Bei STOP werden alle Ausgänge auf FALSE bzw. 0 auf der Hardware und der Onlineanzeige gesetzt.
Off in hardware and actual state online
Bei STOP werden alle Ausgänge auf FALSE bzw. 0 auf der Hardware gesetzt. In der Onlineanzeige wird der Zustand, wie er sich aus dem letzten Zyklus des Anwenderprogrammes ergibt, angezeigt.
Behaviour of outputs in case of stop / Verhalten der Ausgänge bei STOP
Off in hardware and online
Actual state in hardware and online
Auf der Hardware und der Onlineanzeige bleibt der Zustand des letzten Zyklus des Anwenderprogrammes erhalten.
No effect Bei Auftreten eines Fehlers wird das Anwenderprogramm nicht gestoppt.
E1 Bei Auftreten eines fatalen Fehlers (E1) wird das Anwenderprogramm gestoppt.
E2 Bei Auftreten eines fatalen oder schweren Fehlers (E1-E2) wird das Anwenderprogramm gestoppt.
E3 Bei Auftreten eines fatalen, schweren oder leichten Fehlers (E1-E3) wird das Anwenderprogramm gestoppt.
Stop error class / STOP des SPS-Programmes bei Fehler der Klasse
No effect
E4 Bei Auftreten eines fatalen, schweren, leichten Fehlers oder einer Warnung (E1-E4) wird das Anwenderprogramm gestoppt.
Off Bei einem schweren Fehler (E2) wird kein Warmstart ausgelöst.
Warmstart on E2 Off
On Bei einem schweren Fehler (E2) wird automatisch ein Warmstart ausgelöst. (ab V2.0)
Anmerkung 1: Das Laden und Starten des Anwenderprogrammes ist zusätzlich abhängig von der MOD-Einstellung am Display/Tastenfeld. Dabei hat die Einstellung am Display/Tastenfeld immer Vorrang.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 27 CPUs AC500 / Stand: 08.2005
Es gilt:
MOD 00: Laden und Starten des Anwenderprogrammes entsprechend der Einstellung des CPU-Parameters "Auto run" (Standardeinstellung).
MOD 01: Anwenderprogramm wird nicht geladen/gestartet.
MOD 02: Anwenderprogramm wird geladen und gestartet, unabhängig von der Einstellung des Konfigurationsparameters "Auto run".
Wird beim Hochlaufen der Steuerung die Taste "RUN" im Tastenfeld gedrückt, so wird der MOD 01 automatisch aktiviert, d. h. das Anwenderprogramm wird nicht geladen und gestartet. Somit ist es möglich, die Steuerung zwangsweise im Stop hochzufahren. Das kann z. B. notwendig sein, wenn beide seriellen Schnittstellen auf Modbus eingestellt sind und deshalb kein Zugang mit dem Control Builder über die serielle Schnittstelle möglich ist.
3.3 Konfiguration des I/O-Bus
3.3.1 Einstellung der allgemeinen Parameter des I/O-Bus
Wenn Sie auf "I/O-Bus" klicken, erscheint folgender Konfigurationsdialog:
PLCconf_IO1.gif
Wie bei den CPU-Parametern, können hier die allgemeinen Parameter für den I/O-Bus der CPU eingestellt werden. Folgende Einstellungen sind möglich:
Parameter Vorein- stellung
Wert Bedeutung
No Bei einem Konfigurationsfehler wird das Anwenderprogramm nicht gestartet.
Run config fault No
Yes Das Anwenderprogramm wird auch bei falscher Konfiguration des I/O-Busses gestartet.
3.3.2 Einfügen der Ein- und Ausgabegeräte
Damit die Ein- und/oder Ausgänge der an den I/O-Bus angeschlossenen Ein- und Ausgabegeräte im Projekt zur Verfügung stehen, muss in der Steuerungskonfiguration die Hardware nachgebildet werden.
Ein- und Ausgabegeräte, die am I/O-Bus der CPU angeschlossen sind, belegen den E/A-Bereich:
%IB0 .. %IB999 bzw. %QB0 .. %QB999.
Es besteht keine feste Zuordnung zwischen Modulnummer und Ein-/Ausgangsadressen der Kanäle.
Wenn der Cursor auf "I/O-Bus" steht, erscheint beim Rechte-Maus-Klick das Auswahlmenü zum Ändern des Modus "I/O_Bus". Wählen Sie "Unterelement anhängen". Es werden alle zur Verfügung stehenden Ein- und Ausgabegeräte angezeigt:
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 28 CPUs AC500 / Stand: 08.2005
PLCconf_IO2.gif
Wählen Sie das Modul entsprechend seiner Hardwarekonfiguration aus. Verfahren Sie mit allen Modulen gleichermaßen. Maximal können 7 Ein-/Ausgabegeräte an den I/O-Bus angehängt werden.
Eine Konfiguration im Maximalausbau könnte z. B. folgendermaßen aussehen:
PLCconf_IO3.gif
Sind 7 Geräte angehängt, lässt sich der Eintrag "Unterelement anhängen" nicht mehr anwählen.
Soll die Konfiguration geändert werden, so können Geräte gelöscht und andere eingefügt oder angehängt werden.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 29 CPUs AC500 / Stand: 08.2005
3.3.3 Konfiguration der Ein- / Ausgabegeräte und der Kanäle
Mit dem Einfügen eines Ein-/Ausgabegerätes werden alle Ein- und/oder Ausgänge des Gerätes angelegt. Bei digitalen Geräten werden die Kanäle als WORD, BYTE und BOOL zur Verfügung gestellt.
Beim Aufklappen des Analoggerätes AX522 erhält man z. B. folgende Anzeige:
PLCconf_IO4.gif
Da die Analogeingänge auch als digitale Eingänge konfiguriert werden können, ist das Bit 0 jedes Kanals auch als BOOL vorhanden.
Folgende Einstellungen sind möglich:
1. Wird das Modul angeklickt, so erscheint der Dialog zur Konfiguration der modulbezogenen Parameter. Die Parameter sind je nach Gerät unterschiedlich und sind der Dokumentation der Ein-/Ausgabegeräte (Parametrierung) zu entnehmen. (siehe auch E/A-Gerätebeschreibung / Module). Falls das Ein-/Ausgabegerät kanalbezogene Parameter hat, so wird beim Klicken auf den entsprechenden Kanal der Dialog zur Konfiguration geöffnet:
PLCconf_IO5.gif
Die Parameter sind je nach Gerät unterschiedlich und sind ebenfalls der Dokumentation der Ein-/Ausgabegeräte zu entnehmen.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 30 CPUs AC500 / Stand: 08.2005
2. Vor dem "AT" in der Deklaration der Kanäle kann der symbolische Name eingegeben werden.
Hinweis: Es sollten alle Kanäle mit symbolischen Namen versehen werden und im Programmcode grundsätzlich nur mit symbolischen Namen gearbeitet werden. Wenn sich die Hardwarekonfiguration ändert oder das Projekt in eine Steuerung mit anderer Hardwarekonfiguration geladen werden soll und dementsprechend auch die Steuerungskonfiguration angepasst werden muss, können sich die Adressen der Ein- bzw. Ausgänge ändern. Bei symbolischer Programmierung braucht der Programmcode in diesem Fall nicht geändert zu werden.
Beispiel für die Eingabe des symbolischen Namens:
PLCconf_IO6.gif
3. Im Basisparameter-Konfigurationsdialog kann im Feld "Kommentar" für jeden Kanal ein Kommentar eingegeben werden:
PLCconf_IO7.gif
3.4 Konfiguration der seriellen Schnittstellen (Interfaces COM1 und COM2)
Die AC500-CPU verfügt über zwei serielle Schnittstellen COM1 und COM2, die als RS-232 und RS-485 betrieben werden können.
Hinweis: Damit eine Schnittstelle als RS-485 betrieben werden kann, muss der Parameter "RTS control" auf "telegram" eingestellt werden.
3.4.1 Einstellen des Protokolls der seriellen Schnittstellen
Standardmäßig sind die seriellen Schnittstellen auf 'Online access', d. h. Zugang mit dem Control Builder eingestellt.
PLCconf_COM1.gif
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 31 CPUs AC500 / Stand: 08.2005
Durch Rechte-Maus-Klick auf 'COM1' oder 'COM2' und Anwahl von 'Element ersetzen' kann das Protokoll der seriellen Schnittstellen gewechselt werden.
PLCconf_COM2.gif
Das Schnittstellenprotokoll wird also direkt in der Steuerungskonfiguration eingestellt. Es ist kein Baustein (wie z.B. MODINIT, COMINIT) erforderlich.
3.4.2 Die Einstellung 'COMx - Online access'
Ist die Einstellung 'Online access' gewählt, so wird die Schnittstelle fest auf folgende Parameter eingestellt:
19200 Baud, 1 Stopp-Bit, kein Paritätsbit, Zeichenlänge 8 Bit
Die Parameter werden nur angezeigt. Sie können nicht geändert werden.
Die Einstellung der seriellen Schnittstelle muss mit den Einstellungen für den seriellen Gateway-Treiber im Control Builder übereinstimmen. (siehe auch Programmierung und Test / Serieller Treiber).
3.4.3 Die Einstellung 'COMx - ASCII'
Bei der Einstellung 'ASCII', d. h. beliebige Einstellung der Schnittstelle und Realisierung beliebiger Protokolle mit so genannten 'COM-Bausteinen' erscheint folgender Dialog:
PLCconf_COM3.gif
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 32 CPUs AC500 / Stand: 08.2005
Folgende Einstellungen sind möglich:
Parameter Vorein- stellung
Wert Bedeutung
Disabled Es erfolgt keine Prüfung auf Control Builder-Login-Telegramm.
Enable login Disabled
Enabled Empfangene Telegramme werden auf die Control Builder-Login-Sequenz geprüft. Wird diese erkannt, wird auf 'Online access' umgeschaltet. -> Noch nicht verfügbar
none Keine RTS-Steuerung RTS control none
telegram RTS-Steuerung eingeschaltet
TLS 0 0...65535 Einstellung der Trägervorlaufzeit in ms oder Zeichen (TLS > CDLY)
CDLY 0 0...65535 Einstellen der Trägernachlaufzeit in ms oder Zeichen (CDLY <= TLS)
Character timeout
0 0...65535 Einstellen des Zeichen-Timeouts in ms oder Zeichen (muss 0 sein, wenn Telegramm-Endekennung = Zeichentimeout)
none Keine Telegram-Endekennung
String 2 Zeichen, z. B. <CR><LF> (16#0d, 16#0a -> 16#0d0a)
Telegram length
Telegramm-Endekennung über Telegrammlänge
Duration Telegramm-Endekennung über Zeit
Telegram ending selection
none
Character timeout
Telegramm-Endekennung über Zeichentimeout
Telegram ending character
16#0d 0...255 Telegramm-Endezeichen
Telegram ending value
0 0...65535 Wert für Telegramm-Endekennung bei Einstellung "Duration" und "Character timeout"
None Keine Prüfsumme
CRC8 CRC8-Prüfsumme
CRC16 CRC16-Prüfsumme
Checksum none
LRC Noch nicht verfügbar
None Kein Handshake
RTS/CTS Hardware-Handshake
XON/XOFF Noch nicht verfügbar
3964R master
Noch nicht verfügbar
Handshake none
3964R slave
Noch nicht verfügbar
Baudrate 19200 300120048009600
14400192003840057600
115200125000187500
Zeichenlänge in Bit/s
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 33 CPUs AC500 / Stand: 08.2005
None Keine Paritätsprüfung
Odd Ungerade Parität
Even Gerade Parität
Mark Partätsbit := TRUE
Parity none
Space Paritätsbit := FALSE
Data bits 8 5, 6, 7, 8 Zeichenlänge in Bit/Zeichen
Stop bits 1 1,2 Anzahl Stopp-Bits
3.4.4 Die Einstellung 'COMx - Modbus'
Bei der Einstellung 'MODBUS' erscheint folgender Dialog:
PLCconf_COM4.gif
Folgende Einstellungen sind möglich:
Parameter Vorein- stellung
Wert Bedeutung
Disabled Es erfolgt keine Prüfung auf Control-Builder-Login-Telegramm.
Enable login Disabled
Enabled Empfangene Telegramme werden werden auf die Control-Builder-Login-Sequenz geprüft. Wird diese erkannt, wird auf 'Online access' umgeschaltet. -> Noch nicht verfügbar
None Keine RTS-Steuerung RTS control none
Telegram RTS-Steuerung für das Telegramm ein -> Noch nicht verfügbar
TLS 0 0...65535 Einstellung der Trägervorlaufzeit in ms oder Zeichen (TLS > CDLY) -> Noch nicht verfügbar
CDLY 0 0...65535 Einstellung der Trägernachlaufzeit in ms oder Zeichen (CDLY <= TLS) -> Noch nicht verfügbar
Telegram ending value
3 0...65535 Anzahl Zeichen für Zeichen-Timeout
None Keine Flusskontrolle
RTS/CTS Hardware-Handshake -> Noch nicht verfügbar
Handshake None
XON/XOFF Software-Handshake -> Noch nicht verfügbar
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 34 CPUs AC500 / Stand: 08.2005
Baudrate 19200 300120048009600
14400192003840057600
115200125000187500
Zeichenlänge in Bit/s
None Keine Parität
Odd Ungerade Parität
Even Gerade Parität
Mark Paritätsbit := TRUE
Parity Even
Space Paritätsbit := FALSE
Data bits 8 5, 6, 7, 8 Anzahl Datenbits 5 bis 8
Stop bits 1 1, 2 Anzahl Stopp-Bits, 1 oder 2
None Ohne
Master Master
Operation mode
None
Slave Slave
Address 0 0...255 Adresse bei Modbus-Slave
Disable write to %MB0.x from
0 0...65535 Schreibverbot für Segment 0 ab %MB0.x
Disable write to %MB0.x to
0 0...65535 Schreibverbot für Segment 0 bis %MB0.x
Disable read to %MB0.x from
0 0...65535 Leseverbot für Segment 0 ab %MB0.x
Disable read to %MB0.x to
0 0...65535 Leseverbot für Segment 0 bis %MB0.x
Disable write to %MB1.x from
0 0...65535 Schreibverbot für Segment 1 ab %MB1.x
Disable write to %MB1.x to
0 0...65535 Schreibverbot für Segment 1 bis %MB1.x
Disable read to %MB1.x from
0 0...65535 Leseverbot für Segment 1 ab %MB1.x
Disable read to %MB1.x to
0 0...65535 Leseverbot für Segment 1 bis %MB1.x
Mit der Auswahl "COMx - MODBUS" wird die serielle Schnittstelle x auf das Modbus-RTU-Protokoll eingestellt (siehe Modbus-Protokoll).
Für den Modbus-Slave-Betrieb kann in den Segmenten %M0.x und %M1.x jeweils ein Bereich mit Lese- und/oder Schreibverbot eingestellt werden. Das Lese-/Schreibverbot beginnt jeweils ab der eingestellten Adresse und gilt bis einschließlich der eingestellten Endadresse.
Hinweis: Der Parameter "Data bits" ist für Modbus immer auf 8 zu stellen.
3.4.5 Einstellung 'COMx - Decentralized IO expansion'
Die Einstellung Decentralized IO expansion' (Dezentrale E/A-Erweiterung) dient zum Anschluss von E/A-Erweiterungsmodulen über FBP_Interface-Modul an die serielle Schnittstelle.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 35 CPUs AC500 / Stand: 08.2005
Hinweis: Die Funktion 'Decentralized IO expansion' ist erst ab Version V2.x verfügbar.
3.4.6 Die Einstellung 'COM1 - CS31 Bus'
Wird für die serielle Schnittstelle COM1 das Protokoll 'CS31 Bus' gewählt, so wird die Schnittstelle fest als CS31-Bus-Master eingestellt.
Die serielle Schnittstelle COM2 kann nicht als CS31-Bus-Schnittstelle verwendet werden.
PLCconf_CS31_0.gif
Damit die Ein- und/oder Ausgänge der an die CPU angeschlossenen Ein-/Ausgabegeräte im Projekt zur Verfügung stehen, muss in der Steuerungskonfiguration die Hardware nachgebildet werden.
Wenn der Cursor auf "COM1 - CS31 Bus" steht, erscheint beim Rechte-Maus-Klick das Auswahlmenü zum Ändern des Moduls "COM1". Wählen Sie "Unterelement anhängen". Es werden alle zur Verfügung stehenden Ein-/Ausgabegeräte für den CS31-Bus angezeigt:
PLCconf_CS31_1.gif
Wählen Sie das gewünschte Ein-/Ausgabegerät.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 36 CPUs AC500 / Stand: 08.2005
Es können maximal 31 Geräte (Slaves) an den CS31-Bus angeschlossen werden. Dabei ist zu beachten, dass sich ein kombiniertes Gerät mit digitalen und analogen Erweiterungen als zwei Geräte am CS31-Bus anmeldet.
Die Konfiguration wird am Beispiel des Digitalen Eingabegerätes 07DI92 erklärt. Nach Einfügen des Modules stehen die Ein- und Ausgänge des Gerätes zur Verfügung. Geben Sie bei den 'Modulparametern' unter 'Module address' die Hardwareadresse des Moduls, d. h. die mit DIL-Schaltern am Modul eingestellte Adresse, ein.
Hinweis: In den AC31-CPUs als CS31-Slave wird die Adresse per Software eingestellt.
PLCconf_CS31_2.gif
Die Moduladresse ist bei allen Geräten am CS31-Bus einzugeben.
Achtung: Es besteht kein direkter Zusammenhang zwischen der Moduladresse und den Ein-/Ausgangsadressen der Kanäle. Die Ein-/Ausgangsadressen werden automatisch vergeben und ändern sich beim Einfügen von weiteren Modulen.
Für die Adresseinstellung am Modul sind folgende Regeln zu beachten:
1. Es wird empfohlen, für jedes Modul eine eigene Adresse einzustellen.
2. Eine Moduladresse darf einmal für ein Binärmodul und einmal für ein Analogmodul vergeben werden, wird aber nicht empfohlen.
3. Wird die gleiche Moduladresse für eine digitales Eingabegerät und für ein digitales Ausgabegerät eingestellt, so wird nur das zuerst in der Steuerungskonfiguration eingetragene Gerät erkannt. Das gilt ebenso für Analoggeräte!
4. Der DIL-Schalter 8 (bei Serie 90 zum Belegen der Kanäle 8..15) ist ohne Wirkung, da alle Ein-/Ausgänge byteorientiert sind.
5. Bei erweiterbaren CS31-Modulen sind die Maximalkonfigurationen zu beachten.
Ein-/Ausgabegeräte, die an der COM1 angschlossen sind, belegen den E/A-Bereich:
COM1: %IB1000 .. %IB1999 bzw. %QB1000 .. %QB1999
Weitere Parameter und Einstellungen der CS31-Module sind optional und sind der Beschreibung der einzelnen Module zu entnehmen.
Die Beschreibung der S500-Module finden Sie in dieser Dokumentation. Die AC31-Module sind in der Dokumentation der 907 AC 1131 beschrieben.
An das Basismodul "DC551-CS31" können über die E/A-Schnittstelle weitere S500-Module angekoppelt werden. Wenn der Cursor auf "DC551-CS31" steht, werden beim Rechte-Maus-Klick im Kontextmenü unter "Unterelement anhängen" alle zur Verfügung stehenden Ein-/Ausgangsgeräte angezeigt, die an das Gerät "DC551-CS31" angehängt werden können. Maximal können an das Modul 7 Expansions mit insgesamt 120DI/120DO und 8AI/8AO angehängt werden.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 37 CPUs AC500 / Stand: 08.2005
Eine Konfiguration mit zwei kombinierten Ein-/Ausgabegeräten könnte z. B. wie folgt aussehen:
PLCconf_CS31_3.gif
Hinweis: Die schnellen Zähler der Ein-/Ausgabemodule wie z. B. "DC532" stehen nur beim Anschluss der Geräte an den I/O-Bus der CPUs zur Verfügung.
3.5 Konfiguration der FBP-Slave-Schnittstelle (Interfaces / FBP-Slave)
Die FBP-Slave-Schnittstelle dient zum Anschluss der AC500-Steuerungen als Feldbus-Slave mittels FieldBusPlug (FBP).
In der Standardkonfiguration ist auf der FBP-Schnittstelle kein Protokoll eingestellt "FBP - none". Das Einstellen des Protokolls "FBP - Slave" erfolgt durch "Modul ersetzen".
PLCconf_FBP0.gif
Es ist folgende Einstellung möglich:
Parameter Voreinstellung Wert Bedeutung
Address 0 0...255 Adresse als FBP-Slave
Hinweis: Ist über das Display/Tastenfeld eine Adresse (ADR > 0) für die FBP-Slave-Schnittstelle eingestellt, so hat diese Vorrang vor der Einstellung in der Steuerungskonfiguration.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 38 CPUs AC500 / Stand: 08.2005
Die FBP-Slave-Schnittstelle belegt den E/A-Bereich:
%IB3000 .. %IB3999 bzw. %QB3000 .. %QB3999.
Abhängig vom Feldbus-Master, kann die AC500-CPU eine unterschiedliche Anzahl von Ein-/Ausgabedaten mit dem Master austauschen.
Wenn der Cursor auf "FBP-Slave" steht, erscheint beim Rechte-Maus-Klick das Auswahlmenü zum Ändern des Moduls "FBP". Wählen Sie "Unterelement anhängen". Es werden alle zur Verfügung stehenden Ein-/Ausgangsmodule für die FBP-Slave-Schnittstelle angezeigt:
PLCconf_FBP1.gif
Maximal können über den modularen FieldBusPlug 8 Module mit je 16 Byte und 16 Wort Ein- und Ausgänge mit einem Master ausgetauscht werden. Bei Auswahl des Moduls "16 Byte and 16 Word In/Out" wird diese maximale Anzahl für ein Modul zur Verfügung gestellt. Die Anzahl der möglichen E/A-Daten wird weiterhin durch den gewählten Feldbus bestimmt.
Die Byte-Ein- bzw. -Ausgänge werden als BYTE und BOOL, die Wort-Ein- bzw. -Ausgänge werden als WORD, BYTE und BOOL zur Verfügung gestellt.
Die in der Steuerungskonfiguration eingetragenen E/A-Module und ihre Adresse muss identisch sein mit den Einträgen in der Konfiguration des jeweiligen Feldbus-Masters.
Sollen mit einem Feldbus-Master weniger als die maximale Anzahl an E/A-Daten ausgetauscht werden, so kann eine Konfiguration aus verschiedenen Modulen zusammengestellt werden.
Im folgenden Beispiel soll die AC500-CPU als Feldbus-Slave Nr. 10 z. B. 8 Byte Eingänge, 4 Byte Ausgänge, 4 Wort Eingänge und 16 Wort Ausgänge mit einem Feldbus-Master austauschen:
Mit dem Auswahlmenü werden hintereinander die Module angehängt:
2 x "4 Byte Input" 1 x "4 Byte Output" 1 x "4 Word Input" und 1 x "16 Word Output".
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 39 CPUs AC500 / Stand: 08.2005
Die fertige Konfiguration sieht wie folgt aus:
PLCconf_FBP2.gif
Auch hier werden die Byte-Ein- bzw. -Ausgänge als BYTE und BOOL, die Wort-Ein- bzw. -Ausgänge als WORD, BYTE und BOOL zur Verfügung gestellt.
3.6 Konfiguration der Koppler (Coupler)
In der Standardkonfiguration bei "Datei" / "Neu" bzw. mit "Extras" / "Standardkonfiguration" sind keine Koppler in der Steuerungskonfiguration eingetragen:
PLCconf_Coupler1.gif
Für die Koppler gilt folgende Zuordnung zwischen Koppler-Linie und Steckplatz:
• Linie 0 entspricht dem internen Koppler (im Gehäuse der CPU eingebaut) • Linie 1 ist der Koppler auf dem Steckplatz unmittelbar links neben der CPU • Linie 2 ist der zweite Steckplatz links neben der CPU • Linie 3, 4 sind die weiteren Steckplätze nach links zählend
Die Vergabe der Ein-/Ausgänge für die Koppler ist steckplatzorientiert, unabhängig vom Kopplertyp.
Hinweis: Ist ein Kopplersteckplatz nicht belegt, so ist für diesen ein "External – none" zu konfigurieren. Ist kein externer Koppler gesteckt, so braucht dieser Eintrag nicht zu erfolgen. Beispiel: Interner Ethernet-Koppler und PROFIBUS-Koppler auf Steckplatz 2 1. Element ersetzen: "Internal – none" durch "PM5x1 – Internal Ethernet" 2. Unterelement anhängen: "External none" für leeren Steckplatz 1 3. Unterelement anhängen: "CM572 – External PROFIBUS DP Master" auf Steckplatz 2
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 40 CPUs AC500 / Stand: 08.2005
3.6.1 Konfiguration des internen Kopplers
Bei einer AC500-Steuerung mit internem Koppler muss dieser in die Konfiguration eingetragen werden. Dazu wird der Cursor auf "Internal - none" gesetzt. Beim Rechte-Maus-Klick werden im Kontextmenü unter "Element ersetzen" alle verfügbaren internen Koppler angezeigt:
PLCconf_Coupler2.gif
Wählen Sie den Koppler gemäss der eingesetzten Hardware.
3.6.1.1 Der interne Ethernet-Koppler PM5x1-ETH
Beim internen Ethernet-Koppler "PM5x1-ETH - Internal Ethernet" sind folgende Einstellungen in der Steuerungskonfiguration möglich:
PLCconf_Coupler3.gif
Parameter Voreinstellung Wert Bedeutung
No Bei einem Konfigurationsfehler wird das Anwenderprogramm nicht gestartet.
Run config fault No
Yes Das Anwenderprogramm wird auch bei falscher Konfiguration des internen Ethernet-Kopplers gestartet.
In der Steuerungskonfiguartion wird lediglich das Verhalten der CPU bei einem Konfigurationsfehler des Kopplers und die benötigten Protokolle eingestellt. Die eigentliche Konfiguration des Ethernet-Kopplers, wie z. B. das Einstellen der IP-Adresse, erfolgt mit dem integrierten Feldbuskonfiguratior SYCON.net. (siehe SYCON.net).
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 41 CPUs AC500 / Stand: 08.2005
Standardmäßig ist das Protokoll "MODBUS on TCP/IP" vorhanden. Hier sind folgende Einstellungen möglich:
PLCconf_Coupler3_1.gif
Wie bei Modbus RTU auf den seriellen Schnittstellen COMx können auch hier für den Slave-Betrieb Bereiche für das Schreib- und/oder Leseverbot eingestellt werden. Das Lese-/Schreibverbot beginnt jeweils ab der eingestellten Adresse und gilt bis einschließlich der eingestellten Endadresse.
Parameter Voreinstellung Wert Bedeutung
Disable write to %MB0.x from
0 0...65535 Schreibverbot für Segment 0 ab %MB0.x
Disable write to %MB0.x to
0 0...65535 Schreibverbot für Segment 0 bis %MB0.x
Disable read to %MB0.x from
0 0...65535 Leseverbot für Segment 0 ab %MB0.x
Disable read to %MB0.x to
0 0...65535 Leseverbot für Segment 0 bis %MB0.x
Disable write to %MB1.x from
0 0...65535 Schreibverbot für Segment 1 ab %MB1.x
Disable write to %MB1.x to
0 0...65535 Schreibverbot für Segment 1 bis %MB1.x
Disable read to %MB1.x from
0 0...65535 Leseverbot für Segment 1 ab %MB1.x
Disable read to %MB1.x to
0 0...65535 Leseverbot für Segment 1 bis %MB1.x
Durch Selektieren des internen Ethernet-Kopplers "PM5x1-ETH - Internal Ethernet" und Rechte-Maus-Klick kann das Protokoll "UDP data exchange" angehängt werden.
PLCconf_Coupler3_2.gif
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 42 CPUs AC500 / Stand: 08.2005
Für das Protokoll "UDP data exchange" sind folgende Einstellungen möglich:
PLCconf_Coupler3_3.gif
Parameter Vorein- stellung
Wert Bedeutung
Size of receive buffer
8192 1464..65535 Größe des Empfangspuffers in Byte Die Minimalgröße entspricht der max. Größe eines UDP-Telegrammes
Size of transmit buffer high prio
4096 0..65535 Größe des Sendepuffers für Telegramme hoher Priorität in Byte
Size of transmit buffer low prio
4096 0..65535 Größe des Sendepuffers für Telegramme niedriger Priorität in Byte
Size of timeout buffer
2048 0..65535 Größe des Puffers für Timeout-Datenpakete in Byte
Number of header data
10 0..1464 Anzahl der Kopfdaten, die bei Timeout-Datenpaketen in den Timeout-Puffer kopiert werden in Byte
Disable Empfangssperre für Broadcast-Telegramme (Datenpakete an alle Stationen)
Receive broadcast Disable
Enable Freigabe Empfang von Broadcast-Telegrammen (Datenpakete an alle Stationen)
Overwrite Verhalten bei Überlauf des Empfangspuffers: Die ältesten Datenpakete im Empfangspuffer werden mit den neu ankommenden Datenpaketen überschrieben.
Behavior on receive buffer overflow
Overwrite
Reject Verhalten bei Überlauf des Empfangspuffers: Die neu ankommenden Datenpakete werden verworfen.
3.6.1.2 Der interne ARCNET-Koppler PM5x1-ARCNET
Hinweis: Die Steuerung mit internem ARCNET-Koppler ist erst ab Version V2.x verfügbar.
Beim internen ARCNET-Koppler "PM5x1-ARCNET - Internal ARCNET" sind folgende Einstellungen in der Steuerungskonfiguration möglich:
PLCconf_Coupler4.gif
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 43 CPUs AC500 / Stand: 08.2005
Parameter Vorein- stellung
Wert Bedeutung
No Bei einem Konfigurationsfehler wird das Anwenderprogramm nicht gestartet.
Run config fault No
Yes Das Anwenderprogramm wird auch bei falscher Konfiguration des internen ARCNET-Kopplers gestartet.
Address 1 1...255 Adresse (Node-ID) des ARCNET-Kopplers
Timeout 0 0...3 Einstellung des ARCNET-Timeouts. Es gilt: Bit 0 konfiguriert ET2 des Kopplers Bit 1 konfiguriert ET1 des Kopplers Wert ET1 ET2 Bedeutung ----------------------- 0 1 1 max. Netzausdehnung 2 km 1 1 0 2 0 1 3 1 1 für große Netze
2,5 MBs
1,25 MBs
625 KBs
Baudrate 2,5 Mbs
312,5 KBs
Einstellung der Baudrate des ARCNET-Kopplers
Enable Freigabe von langen Datenpaketen (512 Byte) Long packages Enable
Disable Ankommende lange Datenpakete werden empfangen und verworfen. Am SEND-Baustein wird bei langen Datenpaketen Fehler gemeldet.
Hinweis: Wenn die Baudrate des ARCNET-Kopplers abweichend von der Standardeinstellung (2,5 MBs) eingestellt wird, ist die Programmierung über ARCNET mit den SoHard-ARCNET-PC-Karten nicht mehr möglich. Es müssen alle Teilnehmer im ARCNET-Netz auf die gleiche Baudrate eingestellt sein. Die ARCNET-PC-Karten sind fest auf 2,5 MBs eingestellt.
Standardmäßig ist das Protokoll "ARCNET data exchange" vorhanden. Hier sind folgende Einstellungen möglich:
PLCconf_Coupler4_1.gif
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 44 CPUs AC500 / Stand: 08.2005
Parameter Vorein- stellung
Wert Bedeutung
Size of receive buffer
8192 512...65535 Größe des Empfangspuffers in Byte. Die Minimalgröße entspricht der max. Größe eines UDP-Telegrammes
Size of transmit buffer high prio
4096 0...65535 Größe des Sendepuffers für Telegramme hoher Priorität in Byte
Size of transmit buffer low prio
4096 0...65535 Größe des Sendepuffers für Telegramme niedriger Priorität in Byte
Size of timeout buffer
2048 0...65535 Größe des Puffers für Timeout-Datenpakete in Byte
Number of header data
10 0...1464 Anzahl der Kopfdaten, die bei Timeout-Datenpaketen in den Timeout-Puffer kopiert werden, in Byte
Disable Empfangssperre für Broadcast-Telegramme (Datenpakete an alle Stationen)
Receive broadcast
Disable
Enable Freigabe Empfang von Broadcast-Telegrammen (Datenpakete an alle Stationen)
Overwrite Verhalten bei Überlauf des Empfangspuffers:Die ältesten Datenpakete im Empfangspuffer werden mit den neu ankommenden Datenpaketen überschrieben.
Behavior on receive buffer overflow
Overwrite
Reject Verhalten bei Überlauf des Empfangspuffers:Die neu ankommenden Datenpakete werden verworfen.
Enable Freigabe von langen Datenpaketen (512 Byte) Long packages
Enable
Disable Ankommende lange Datenpakete warden empfangen und verworfen. Am SEND-Baustein wird bei langen Datenpaketen Fehler gemeldet.
Durch Selektieren des internen ARCNET-Kopplers "PM5x1-ARC - Internal ARCNET" und Rechte-Maus-Klick kann das Protokoll "5F_ARC" angehängt werden.
PLCconf_Coupler4_2.gif
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 45 CPUs AC500 / Stand: 08.2005
Für das Protokoll "5F_ARC" sind folgende Einstellungen möglich:
PLCconf_Coupler4_3.gif
Parameter Vorein- stellung
Wert Bedeutung
Slave Betriebsart Slave
Master Betriebsart Master
Master/Slave Betriebsart Master/Slave
Operation mode Slave
None Abschalten 5F_ARC
Disable write to %MB0.x from
0 0...65535 Schreibverbot für Segment 0 ab %MB0.x
Disable write to %MB0.x to
0 0...65535 Schreibverbot für Segment 0 bis %MB0.x
Disable read %MB0.x from
0 0...65535 Leseverbot für Segment 0 ab %MB0.x
Disable read %MB0.x to
0 0...65535 Leseverbot für Segment 0 bis %MB0.x
Disable write to %MB1.x from
0 0...65535 Schreibverbot für Segment 1 ab %MB1.x
Disable write to %MB1.x to
0 0...65535 Schreibverbot für Segment 1 bis %MB1.x
Disable read %MB1.x from
0 0...65535 Leseverbot für Segment 1 ab %MB1.x
Disable read %MB1.x to
0 0...65535 Leseverbot für Segment 1 bis %MB1.x
3.6.2 Konfiguration der externen Koppler
Bei einer AC500-Steuerung mit externen Kopplern müssen diese in die Steuerungskonfiguration in der gleichen Reihenfolge eingetragen werden, wie sie in der Hardware gesteckt sind.
Für die Koppler gilt folgende Zuordnung zwischen Koppler-Linie und Steckplatz:
• Linie 0 entspricht dem internen Koppler (im Gehäuse der CPU eingebaut)
• Linie 1 ist der Koppler auf dem Steckplatz unmittelbar links neben der CPU
• Linie 2 ist der zweite Steckplatz links neben der CPU
• Linien 3, 4 sind die weiteren Steckplätze nach links zählend
Die Vergabe der Ein-/Ausgänge für die Koppler ist steckplatzorientiert, unabhängig vom Kopplertyp.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 46 CPUs AC500 / Stand: 08.2005
Zum Eintragen der Koppler wird der Cursor auf "Couplers" gesetzt. Beim Rechte-Maus-Klick werden im Kontextmenü unter "Element anhängen" alle verfügbaren externen Koppler angezeigt:
PLCconf_Coupler5.gif
Hinweis: Die externen Koppler "CM578 - External CANopen" und "CM575 - External DeviceNet" sind ab Version V1.1 verfügbar.
Wie beim internen Ethernet-Koppler werden auch bei den externen Kopplern in der Steuerungskonfiguration lediglich das Verhalten der CPU bei einem Konfigurationsfehler der Koppler und die benötigten Protokolle eingestellt. Die eigentliche Konfiguration der externen Koppler erfolgt mit dem integrierten Feldbuskonfiguratior SYCON.net. Die Konfiguration ist ausführlich im Kapitel "Systemtechnik Koppler" beschrieben (siehe Systemtechnik Koppler).
Folgende Einstellungen sind möglich:
Parameter Vorein- stellung
Wert Bedeutung
No Bei einem Konfigurationsfehler wird das Anwenderprogramm nicht gestartet.
Run config fault No
Yes Das Anwenderprogramm wird auch bei falscher Konfiguration des jeweiligen externen Kopplers gestartet.
Eine Konfiguration mit einem internen Ethernet-Koppler "PM5x1-ETH - Internal-Ethernet", einem externen Ethernet-Koppler "CM577 - External-Ethernet´" und einem PROFIBUS DP-Master-Koppler "CM572 - External-PROFIBUS DP Master" sieht z. B. wie folgt aus:
PLCconf_Coupler6.gif
Beim externen Ethernet-Koppler "CM577 - External-Ethernet´" gelten die gleichen Möglichkeiten für die Einstellung der Parameter und Protokolle, wie für den internen Ethernet-Koppler "PM5x1 - Internal-Ethernet" (siehe auch Interne Ethernet-Koppler).
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 47 CPUs AC500 / Stand: 08.2005
4 Steuerungsanlauf / Programmbearbeitung
4.1 Begriffe
Kaltstart:
• Ein Kaltstart wird ausgelöst durch Spannung AUS/EIN, wenn keine Batterie angeschlossen ist. • Alle RAM-Speicher werden getestet und gelöscht. • Falls im Flash-EPROM kein Anwenderprogramm vorhanden ist, werden für die Schnittstellen die
Defaultwerte eingestellt (wie im Auslieferungszustand). • Falls im Flash-EPROM ein Anwenderprogramm vorhanden ist, wird dieses ins RAM geladen. • Die durch die Steuerungskonfiguration vorgegebenen Betriebsarten werden eingestellt.
Warmstart:
• Ein Warmstart wird ausgelöst durch Spannung AUS/EIN bei angeschlossener Batterie. • Alle RAM-Speicher mit Ausnahme der gepufferten Operandenbereiche und der RETAIN-Variablen
werden getestet und gelöscht. • Falls im Flash-EPROM ein Anwenderprogramm vorhanden ist, wird dieses ins RAM geladen. • Die durch die Steuerungskonfiguration vorgegebenen Betriebsarten werden eingestellt.
RUN -> STOP:
• Unter RUN -> STOP versteht man das Drücken der RUN-Taste der SPS, wenn sich die Steuerung im RUN-Mode (Displayanzeige "run") befindet.
• Befindet sich ein Anwenderprogramm im RAM, so wird dieses angehalten. • Alle Ausgänge werden auf FALSE bzw. 0 gesetzt. • Die Variablen behalten ihren augenblicklichen Wert, d.h. werden nicht initialisiert. • Die Anzeige im Display wechselt von "run" nach "StoP".
START -> STOP:
• Unter START -> STOP versteht man das Anhalten der Bearbeitung des Anwenderprogrammes im RAM der SPS mit dem Programmiersystem über das Menüpunkt "Online/Stop".
• Alle Ausgänge werden auf FALSE bzw. 0 gesetzt. • Die Variablen behalten ihren augenblicklichen Wert, d. h. werden nicht initialisiert. • Die Anzeige im Display wechselt von "run" nach "StoP".
Reset:
• Auslösen von START -> STOP • Vorbereitung für Neustart des Programmes, d. h. die Variablen (VAR) werden initialisiert. • RETAIN und PERSISTENT-Daten behalten ihre Werte. • Reset wird mit dem Menüpunkt "Online/Reset" des Programmiersystems ausgeführt.
Reset (Kalt):
• Auslösen von START -> STOP • Vorbereitung für Neustart des Programmes, d. h. die Variablen (VAR) werden initialisiert. • Löschen der RETAIN-Variablen • PERSISTENT-Daten behalten ihren Wert. • Reset (Kalt) wird mit dem Menüpunkt "Online/Reset (Kalt)" des Programmiersystems ausgeführt.
Reset (Ursprung):
• Urzustand herstellen (Flash, SRAM (%M, RETAIN, Persistent.dat), Kopplerkonfigurationen und Anwenderprogramm (AWP) löschen!) Beim nachfolgenden Download werden die RETAIN- und PERSISTENT-Daten initialisiert!
• Reset (Ursprung) wird mit dem Menüpunkt "Online/Reset (Ursprung)" des Programmiersystems ausgeführt.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 48 CPUs AC500 / Stand: 08.2005
STOP -> RUN:
• Unter STOP -> RUN versteht man das Drücken der RUN-Taste der SPS, wenn sich die Steuerung im STOP-Mode (Displayanzeige "StoP") befindet.
• Befindet sich ein Anwenderprogramm im RAM, so wird dieses fortgesetzt, d.h. die Variablen werden nicht initialisiert.
• Die Anzeige im Display wechselt von "StoP" nach "run".
STOP -> START:
• Unter STOP -> START versteht man das Fortsetzen des Anwenderprogrammes mit dem Programmiersystem über das Menüpunkt "Online/Start".
• Befindet sich ein Anwenderprogramm im RAM, so wird dieses fortgesetzt, d. h. die Variablen werden nicht initialisiert.
• Die Displayanzeige wechselt von "StoP" nach "run".
Download:
• Unter Download versteht man das Laden des gesamten Anwenderprogrammes in das RAM der SPS mit dem Programmiersystem über das Menüpunkt "Online/Laden" bzw. nach entsprechender Abfrage beim Einloggen (Menüpunkt: "Online/Einloggen").
• Die Abarbeitung des Anwenderprogrammes wird abgebrochen. • Um das Anwenderprogramm im Flash zu sichern, muss nach dem Laden des Programmes der
Menüpunkt "Online/Bootprojekt erzeugen" ausgeführt werden. • Die Variablen werden entsprechend der Initialisierungstabelle initialisiert. • RETAIN-Variablen können falsche Werte annehmen, da sie im neuen Projekt auf anderen
Speicheradressen liegen können! • Ein Download wird erzwungen durch:
- Änderungen in der Steuerungskonfiguration - Änderungen in der Taskkonfiguration - Änderungen in der Bibliotheksverwaltung - Änderung von Compile-relevanten Einstellungen (Segmentgrößen) - Ausführen von "Projekt/Alles bereinigen" und "Projekt/Alles übersetzen"
Online Change:
• Wenn nach Ändern eines Projektes mit <F11> bzw. "Projekt/Übersetzen" übersetzt wird, werden nur die Änderungen übersetzt. Die geänderten Programmteile werden in der Bausteinliste mit einem blauen Pfeil gekennzeichnet.
• Unter Online Change versteht man das Laden von Änderungen des Anwenderprogrammes in das RAM der SPS mit dem Programmiersystem nach entsprechender Abfrage beim Einloggen (Menüpunkt: "Online/Einloggen").
• Die Abarbeitung des Anwenderprogrammes wird dabei nicht unterbrochen. Nach dem Senden der Programmänderungen wird das Programm reorganisiert. Während der Reorganisation darf kein weiterer Online Change ausgeführt werden. Das Sichern des Anwenderprogrammes im Flash darf erst nach Abschluss der Reorganisation mit "Online/Bootprojekt erzeugen" gestartet werden.
• Ein Online Change ist nicht mehr möglich nach: - Änderungen in der Steuerungskonfiguration - Änderungen in der Taskkonfiguration - Änderungen in der Bibliotheksverwaltung - Änderung von Compile-relevanten Einstellungen (Segmentgrössen) - Ausführen von "Projekt/Alles bereinigen" und "Projekt/Alles übersetzen"
Pufferung von Daten:
• Die Pufferung von Daten, d. h. die Erhaltung von Daten nach Spannung AUS/EIN, ist nur mit angeschlossener Batterie möglich. Gepuffert werden können, ganz oder teilweise: - Daten im adressierbaren Merkerbereich (%M-Bereich) - RETAIN-Variable - PERSISTENT-Variable (begrenzte Anzahl, keine strukturierten Variablen)
• Um bestimmte Daten zu puffern, müssen diese von der Initialisierung ausgeschlossen werden.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 49 CPUs AC500 / Stand: 08.2005
4.2 Start des Anwenderprogrammes
Der Start des Anwenderprogrammes (AWP) erfolgt gemäß nachfolgender Tabelle. Dabei wird davon ausgegangen, dass sich ein gültiges Anwenderprogramm im Flash befindet.
Aktion Keine SD-Karte mit AWP 1) gesteckt, Auto run = ON
Keine SD-Karte mit AWP 1) gesteckt, Auto run = OFF
SD-Karte mit AWP 1) gesteckt, Auto run = ON
SD-Karte mit AWP 1) gesteckt, Auto run = OFF
Spannung EIN oder Warmstart oder Kaltstart
AWP wird aus dem Flash in das RAM geladen und aus dem RAM gestartet.
Es wird kein AWP aus dem Flash geladen. Beim LOGIN kommt die Meldung "Kein Programm in der Steuerung ...".
AWP wird von der SD-Karte in das Flash und das RAM geladen und danach aus dem RAM gestartet.
AWP wird von der SD-Karte in das Flash geladen. Das RAM bleibt leer. Beim LOGIN kommt die Meldung "Kein Programm in der Steuerung ...".
STOP -> RUN Das AWP im RAM wird gestartet.
Das AWP im RAM wird gestartet.
Das AWP im RAM wird gestartet.
Das AWP im RAM wird gestartet.
STOP -> START
Das AWP im RAM wird gestartet.
Das AWP im RAM wird gestartet.
Das AWP im RAM wird gestartet.
Das AWP im RAM wird gestartet.
Download 2) Das aktuelle AWP im RAM der SPS wird abgebrochen. Das übersetzte AWP wird aus dem PC in das RAM der SPS geladen.
Das übersetzte AWP wird aus dem PC in das RAM der SPS geladen.
Das aktuelle AWP im RAM der SPS wird abgebrochen. Das übersetzte AWP wird aus dem PC in das RAM der SPS geladen.
Das übersetzte AWP wird aus dem PC in das RAM der SPS geladen.
Online Change 3)
Das aktuelle AWP im RAM der SPS wird weiter abgearbeitet. Die Änderungen des AWP werden aus dem PC in das RAM der SPS geladen. Das AWP wird reorganisiert und abgearbeitet.
Die Änderungen des AWP werden aus dem PC in das RAM der SPS geladen. Das AWP wird reorganisiert.
Das aktuelle AWP im RAM der SPS wird weiter abgearbeitet. Die Änderungen des AWP werden aus dem PC in das RAM der SPS geladen. Das AWP wird reorganisiert und abgearbeitet.
Die Änderungen des AWP werden aus dem PC in das RAM der SPS geladen. Das AWP wird reorganisiert.
Anmerkungen:
1) Die Betriebssystemversion (LZS) der SPS, mit der die SD-Karte erstellt wurde, muss mit der Betriebssystemversion der SPS übereinstimmen, in die das AWP von der SD-Karte geladen werden soll. Bei Nichtübereinstimmung wird die SD-Karte nicht geladen.
2) Nach dem Download wird das Programm nicht automatisch in das Flash gesichert. Dazu ist der Menüpunkt "Online/Bootprojekt erzeugen" auszuführen. Wird das AWP nicht im Flash gesichert, so wird nach Spannung AUS/EIN wieder das AWP aus dem Flash geladen. Der Programmstart erfolgt entweder mit der RUN/STOP-Taste oder mit dem Programmiersystem mit "Online/Start".
3) Nach dem Online Change wird das Programm nicht automatisch in das Flash gesichert. Dazu ist der Menüpunkt "Online/Bootprojekt erzeugen" nach Abschluss der Reorganisation auszuführen. Während der Programm-Reorganisation und dem Flashen darf kein weiterer Online Change durchgeführt werden.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 50 CPUs AC500 / Stand: 08.2005
Wird das AWP nicht im Flash gesichert, so wird nach Spannung AUS/EIN wieder das AWP aus dem Flash geladen.
4.3 Initialisierung und Pufferung von Daten
4.3.1 Übersicht zur Initialisierung von Variablen
Die Initialisierung auf Null bzw. auf den Initialwert findet bei Spannung EIN, Reset und nach dem Download des Anwenderprogrammes statt.
Sollen interne Variablen gepuffert werden, so sind sie bei der Deklaration als "VAR_RETAIN" bzw. VAR_RETAIN PERSISTENT" zu kennzeichnen. Das gilt sowohl für interne Variablen als auch für Variablen aus dem adressierbaren Merkerbereich (%M-Bereich).
Hinweis: Die internen RETAIN-Variablen behalten nur bei einem Online Change ihre Reihenfolge bei. Wird das Programm neu übersetzt, kann sich die Reihenfolge ändern und die gepufferten Werte stimmen nicht mehr. Siehe auch CoDeSys / Remanente Variablen, Kapitel "Verhalten der RETAIN Variablen beim Download".
Nachfolgend eine Übersicht zur Initialisierung der Variablen:
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 51 CPUs AC500 / Stand: 08.2005
Spa
nnun
gE
IN
ST
OP
–>
RU
N (
Tast
e)
Aktion
Variableoh
ne B
atte
rie
ST
OP
–>
STA
RT
(PC
)
Dow
nloa
d
Onl
ine
Cha
nge
Res
et
Res
et (
Kal
t)
Spa
nnun
gA
US
/EIN
nac
h R
eset
(K
alt)
Res
et (
Urs
prun
g),A
uslie
feru
ngsz
ust.
Dow
nloa
d na
ch R
eset
(U
rspr
ung)
mit
Bat
terie
Spa
nnun
gE
IN
ST
OP
–>
RU
N (
Tast
e)
ST
OP
–>
STA
RT
(PC
)
Dow
nloa
d
Onl
ine
Cha
nge
Res
et
Res
et (
Kal
t)
Spa
nnun
gA
US
/EIN
nac
h R
eset
(K
alt)
Res
et (
Urs
prun
g),A
uslie
feru
ngsz
ust.
Dow
nloa
d na
ch R
eset
(U
rspr
ung)
0
blei
bt
blei
bt
blei
bt
0 ??? 0 0
blei
bt
blei
bt
0
blei
bt
0 0 0 ??? 0
:= Wert Wer
t
blei
bt
blei
bt
Wer
t
blei
bt
Wer
t
Wer
t
Wer
t
???
Wer
t
Wer
t
blei
bt
blei
bt
Wer
t
blei
bt
Wer
t
Wer
t
Wer
t
???
Wer
t
0
blei
bt
blei
bt
0
blei
bt
0 0 0 ??? 0 0
blei
bt
blei
bt
0
blei
bt
0 0 0 ??? 0
Wer
t
blei
bt
blei
bt
Wer
t
blei
bt
Wer
t
Wer
t
Wer
t
???
Wer
t
Wer
t
Wer
t
blei
bt
blei
bt
blei
bt
Wer
t
Wer
t
Wer
t
???
Wer
t
VAR
VAR
0
blei
bt
blei
bt
0
blei
bt
blei
bt
0 0 ??? 0
blei
bt
blei
bt
blei
bt
0
blei
bt
blei
bt
0
blei
bt
??? 0
0
blei
bt
blei
bt
Wer
t
blei
bt
blei
bt
Wer
t
0 ???
Wer
t
blei
bt
blei
bt
blei
bt
Wer
t
blei
bt
blei
bt
Wer
t
blei
bt
???
Wer
t
0
blei
bt
blei
bt
0
blei
bt
blei
bt
0 0 ??? 0
blei
bt
blei
bt
blei
bt
0
blei
bt
blei
bt
0
blei
bt
??? 0
0
blei
bt
blei
bt
Wer
t
blei
bt
blei
bt
0
Wer
t
???
Wer
t
Wer
t
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
Wer
t
???
Wer
t
0
blei
bt
blei
bt
blei
bt
blei
bt
0 0 ??? 0 0
blei
bt
blei
bt
blei
bt
blei
bt
0 0 ??? 0
Wer
t
blei
bt
blei
bt
blei
bt
blei
bt
Wer
t
Wer
t
???
Wer
t
Wer
t
blei
bt
blei
bt
blei
bt
blei
bt
Wer
t
Wer
t
???
Wer
t
0
blei
bt
blei
bt
blei
bt
blei
bt
0 0 ??? 0 0
blei
bt
blei
bt
blei
bt
blei
bt
0 0 ??? 0
Wer
t
blei
bt
blei
bt
blei
bt
blei
bt
Wer
t
Wer
t
???
Wer
t
blei
bt
Wer
t
blei
bt
blei
bt
blei
bt
Wer
t
Wer
t
???
Wer
t
0
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
0 ??? 0
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
??? 0
0
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
0 ???
Wer
t
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
???
Wer
t
0
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
0 ??? 0
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
??? 0
0
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
0 ???
Wer
t
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
blei
bt
???
Wer
t
%MDx.xVAR
%MDx.x := WertVAR
:= Wert
VAR_RETAIN
VAR_RETAIN
%MDx.xVAR_RETAIN
%MDx.x := WertVAR_RETAIN
:= Wert
VAR_PERSISTENT
VAR_PERSISTENT
%MDx.xVAR_PERSISTENT
%MDx.x := WertVAR_PERSISTENT
:= Wert
VAR_RETAIN
PERSISTENTVAR_RETAIN
PERSISTENT
%MDx.x
VAR_RETAINPERSISTENT
%MDx.x := Wert
VAR_RETAINPERSISTENT
0 00
0 0
Wer
t
Wer
t
0 0
Wer
t
Wer
t
0 0
Wer
t
Wer
t
0 0
Wer
t
Wer
t
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 52 CPUs AC500 / Stand: 08.2005
4.3.2 Hinweise zur Deklaration von gepufferten Variablen und Konstanten
Damit die Initialisierung bzw. Pufferung von Variablen entsprechend der oben aufgeführten Tabelle funktioniert, sind die nachfolgenden Regeln bei der Deklaration zu beachten.
Deklaration von gepufferten internen Variablen:
Die Variablen sind als VAR_RETAIN bzw. VAR_GLOBAL RETAIN zu deklarieren.
Beispiel:
(* Deklaration in den globalen Variablenlisten *)
VAR_GLOBAL RETAIN byVar : BYTE; wVar : WORD; rVar : REAL;
END_VAR
(* Deklaration im Programm *)
VAR RETAIN byVar1 : BYTE;
END_VAR
Deklaration von gepufferten Variablen im %M-Bereich:
Die Variablen sind als VAR_RETAIN bzw. VAR_GLOBAL RETAIN zu deklarieren.
Deklaration von Konstanten:
Konstanten werden als VAR_GLOBAL CONSTANT bzw. VAR_CONSTANT deklariert.
Beispiel:
(* Deklaration als globale Konstanten *)
VAR_GLOBAL CONSTANT byConst_1 : BYTE := 1;
END_VAR
(* Deklaration im Programm *)
VAR CONSTANT byConst_2 : BYTE := 2;
END_VAR
Hinweis: Im Control Builder kann man unter "Projekt"=>"Optionen"=>"Übersetzungsoptionen"=>"Konstanten ersetzen" einstellen, ob bei der Übersetzung die Konstanten wie Variable (d. h. überschreibbar) behandelt werden oder im Code direkt der Wert eingesetzt wird.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 53 CPUs AC500 / Stand: 08.2005
4.4 Bearbeitungszeiten
4.4.1 Begriffe
Die wichtigsten Zeiten für die Anwendung der AC500-Zentraleinheit mit und ohne angeschlossenen Vor-Ort-Modulen sind:
• Die Reaktionszeit ist die Zeit zwischen einem Signalwechsel an der Eingangsklemme und der Signalantwort an der Ausgangsklemme. Die Reaktionszeit entsteht bei digitalen Signalen aus der Eingangsverzögerung, der Zykluszeit der Programmverarbeitung und - bei Erweiterung mit Vor-Ort-Modulen - der Busübertragungszeit.
• Die Zykluszeit legt fest, in welchen Zeitabständen der Verarbeitungsprozessor die Abarbeitung des Anwenderprogramms neu startet. Die Zykluszeit ist vom Anwender festzulegen. Sie muss größer sein als die Programmbearbeitungszeit des Anwenderprogramms, die Datenübergabezeiten und die damit verbundenen Wartezeiten. Die Zykluszeit ist gleichzeitig Basiszeit für einige zeitgesteuerte Funktionen, wie z. B. für den INTK.
• Die Programmbearbeitungszeit ist die Netto-Zeit zur Bearbeitung des Anwenderprogramms.
4.4.2 Programmbearbeitungszeit
Anweisungen PM571 PM581 PM591
- Binär-Anweisungen folgender Art:
!M /M &M =M !NM /NM &NM =NM Bearbeitungszeit für 1000 Anweisungen: xxx ms xxx ms xxx ms
!M /M &M =SM !NM /NM &NM =RM Bearbeitungszeit für 1000 Anweisungen: xxx ms xxx ms xxx ms
- Wort-Anweisungen folgender Art:
!MW +MW -MW =MW !-MW -MW +MW =-MW Bearbeitungszeit für 1000 Anweisungen: xxx ms xxx ms xxx ms
!MW *MW :MW =MW !-MW *-MW :-MW =-MW Bearbeitungszeit für 1000 Anweisungen: xxx ms xxx ms xxx ms
- Anweisungen gemischt:
- 65 % Binär: !, /, &, = - 20 % Wort: !, +, -, = - 15 % Wort: !, *, :, = Bearbeitungszeit für 1000 Anweisungen: xxx ms xxx ms xxx ms
4.4.3 Eingestellte Zykluszeit
Es wird angenommen, dass der Verarbeitungsprozessor immer zum ungünstigsten Zeitpunkt zugreift.
Die Zykluszeit ist in der Taskkonfiguration abgelegt und kann im 1-ms-Raster gewählt werden. Ist sie zu klein gewählt worden, kann der Verarbeitungsprozessor die pro Zyklus vorgegebenen Aufgaben nicht zeitgerecht erledigen und gerät in Zeitverzug.
Wird dieser Zeitverzug im Verlauf mehrerer Zyklen zu groß, bricht der Verarbeitungsprozessor die Programmbearbeitung ab und meldet Fehler (E2).
Bei einigen Funktionsbausteinen, z. B. dem PID-Regler, hängt die fehlerfreie Abarbeitung von einer genauen Einhaltung des Zeitrasters ab. Hier ist eine größere Zeitreserve vorzusehen.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 54 CPUs AC500 / Stand: 08.2005
Die richtige Einstellung der Zykluszeit soll mit folgendem Vorgehen überprüft werden:
• Laden des Anwenderprogramms in die Zentraleinheit
• Abfrage der Auslastung mit dem Menüpunkt "Online/PLC-Browser/cpuload"
• Änderung der Zykluszeit, bis die Auslastung unter 80 % liegt.
Bei der eingestellten Zykluszeit sind folgende Werte zu berücksichtigen:
• Zeit zum Einlesen und Kopieren der Eingabesignale vom I/O-Treiber zum E/A-Abbild
• Kopierzeit der Eingabesignale der Anwendertask vom E/A-Abbild in das Image-Abbild
• Programmbearbeitungszeit
• Kopierzeit der Ausgabezeit der Anwendertask aus dem Image-Abbild zum E/A-Abbild
• Zeit zum Kopieren der Ausgabesignale vom E/A-Abbild zum I/O-Treiber und Ausgeben der E/As an das E/A-Modul
• Interrupts Koppler-Telegramme empfangen/senden innerhalb der Zykluszeit
• Interrupts serielle Schnittstellen empfangen/senden innerhalb der Zykluszeit
• Taskwechsel
• Laufzeit Watchdogtask
4.5 Die Taskkonfiguration für die AC500-CPU
Die Bedienung der Taskkonfiguration des Control Builders ist im Kapitel "Die Ressourcen / Taskkonfiguration" eingehend erläutert (siehe auch 3S: CoDeSys Programmiersystem / Die Ressourcen / Taskkonfiguration).
In diesem Abschnitt werden die Besonderheiten der Taskkonfiguration für die AC500 beschrieben.
Die Anzahl der möglichen Tasks ist vom CPU-Typ abhängig. Für die PM571 und PM581 können max. 3 Anwendertasks, für die PM591 maximal 16 Anwendertasks angelegt werden.
Wird im Projekt keine Taskkonfiguration eingetragen, so wird automatisch eine Task mit folgenden Eigenschaften angelegt:
Typ = zyklisch Priorität = 10 Zykluszeit = t#10ms Programmaufruf = PLC_PRG.
Für die AC500-CPU sind in der Version V1.0 Tasks vom Typ "zyklisch" und "freilaufend" möglich. Die Typen "ereignisgesteuert" und "Extern ereignisgesteuert" sind nicht möglich.
Für die Anwendertasks können alle 32 Prioritäten gewählt werden. Dabei ist 0 die höchste und 31 die niedrigste Priorität. Die Standardpriorität ist 10.
Prioritäten kleiner 10 sind für hochpriore Prozesse mit sehr kurzer Programmlaufzeit reserviert. Für "normale" Anwendertasks oder Tasks mit grosser Programmlaufzeit sind die Prioritäten 10..31 vorgesehen.
Achtung: Wird z. B. für eine Task mit langer Programmlaufzeit die Priorität < 10 gewählt, so kann das z. B. zum Ausfall des CS31-Busses und/oder des FBP-Interfaces führen.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 55 CPUs AC500 / Stand: 08.2005
5 Das Diagnosesystem in AC500
5.1 Übersicht über die Diagnosemöglichkeiten
5.1.1 Aufbau des Diagnosesystems
In die AC500 ist ein Diagnosesystem integriert, das es erlaubt, bis zu 100 Fehlermeldungen in einem Ringspeicher zu verwalten. Im Laufzeitsystem wird zu jedem dieser Ereignisse ein Zeitstempel mit Datum und Uhrzeit basierend auf der Echtzeituhr (RTC) der Steuerung generiert. Der Zeitstempel besteht aus drei Einträgen:
• Fehler gekommen • Fehler gegangen • Fehler quittiert
Ist keine Batterie in die SPS eingebaut, so wird die Uhr der SPS beim Einschalten der Steuerspannung auf den Wert:
01. Januar 1970, 00:00 Uhr
gesetzt.
Jeder Fehlermeldung ist eine eindeutige Fehlernummer zugeordnet. Die Fehlernummer beinhaltet folgende Angaben:
• Zustand (gekommen, gegangen, quittiert) • Fehlerklasse • Fehlerhafte Komponente • Fehlerhaftes Gerät • Fehlerhaftes Modul • Fehlerhafter Kanal • Fehlerkennung
Die Fehlernummern sind weiter unten im Kapitel (siehe Aufbau der Fehlernummern) beschrieben.
Die Fehlermeldungen sind in folgende Fehlerklassen eingeteilt:
Klasse Typ Beschreibung Beispiel
E1 Fataler Fehler Eine sichere Funktion des Betriebssystems ist nicht mehr gewährleistet.
Checksum-Fehler im System-Flash, RAM-Fehler
E2 Schwerer Fehler Das Betriebssystem arbeitet richtig, aber die fehlerfreie Bearbeitung des Anwenderprogrammes ist nicht gewährleistet.
Checksum-Fehler im Anwender-Flash, Nichteinhaltung der Tasklaufzeiten
E3 Leichter Fehler Es hängt von der Applikation ab, ob das Anwenderprogramm vom Betriebssystem abgebrochen werden muss oder nicht. Der Anwender entscheidet, welche Reaktion einzuleiten ist.
Flash nicht programmierbar, E/A-Modul ist ausgefallen
E4 Warnung Fehler, die in der Peripherie liegen oder sich erst in Zukunft auswirken. Der Anwender entscheidet, welche Reaktionen einzuleiten sind.
Kurzschluss an einem E/A-Modul, Batterie leer/nicht gesteckt
Zum Zugriff auf die Fehlermeldungen gibt es mehrere Möglichkeiten:
• Diagnose direkt an der SPS mit LED "ERR", Tastatur und Display • Klartextanzeige der Fehlermeldungen in der Statuszeile des Control Builders im Onlinebetrieb • Diagnose mit den PLC-Browser des Control Builders • Diagnose aus dem Anwenderprogramm mit den Diagnose-Bausteinen der Bibliothek
SysInt_AC500_Vxx.LIB
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 56 CPUs AC500 / Stand: 08.2005
5.1.2 Diagnose direkt an der SPS mit LED "ERR", Tastatur und Display
Liegt in der SPS ein nicht quittierter Fehler vor, so wird dies durch Leuchten der roten Fehler-LED "ERR" angezeigt.
Hinweis: In der Steuerungskonfiguration kann mit dem CPU-Parameter "Error LED" eingestellt werden, ab welcher Fehlerklasse die LED "ERR" Fehler signalisiert. Die Standardeinstellung ist "On", d. h. es werden alle Fehlerklassen signalisiert. Wird der Parameter z. B. auf "Off_by_E3" eingestellt, so wird bei Auftreten eines Fehlers der Klassen E3 und E4 die LED "ERR" nicht eingeschaltet. Bei einem E2-Fehler wird sie immer eingeschaltet. Siehe auch Kapitel "Konfiguration der CPU-Parameter".
Liegen ein oder mehrere nichtquittierte Fehler vor, so können mit der Taste <DIAG> die Fehler in der Reihenfolge ihres Auftretens angezeigt und quittiert werden. Beim ersten Drücken der <DIAG>-Taste werden die Fehlerklasse und die Fehlerkennung angezeigt. Mit jedem weiteren Drücken der <DIAG>-Taste werden die Detailinfos d1=Komponente, d2=Gerät, d3=Modul und d4=Kanal angezeigt. Nach "d4" wird bei erneutem Drücken der <DIAG>-Taste wieder zur Anzeige von Fehlerklasse/Fehlerkennung gesprungen.
Wird die Diagnoseanzeige mit der Taste <ESC> verlassen, so wird der Fehler nicht quittiert und bei erneutem Drücken der Taste <DIAG> wieder angezeigt.
Wird die Diagnoseanzeige mit der Taste <QUIT> verlassen, so wird der Fehler quittiert.
Sind alle Fehler quittiert, so erlischt die LED "ERR".
Beispiel:
Der Fehler "Batterie leer oder nicht gesteckt" wird z. B. im Display wie folgt angezeigt:
Taste Anzeige Bedeutung
<DIAG> E4 008 E4=Warnung / Kennung = Leer/Nicht vorhanden
<DIAG> d1 009 Detailinfo d1 = 009 -> Komponente=CPU
<DIAG> d2 022 Detailinfo d2 = 022 -> Gerät=Batterie
<DIAG> d3 031 Detailinfo d3 = 031 -> Modul=keine Angabe
<DIAG> d4 031 Detailinfo d4 = 031 -> Kanal=keine Angabe
<DIAG> E4 008 E4=FK4 / Kennung = Leer/Nicht vorhanden
<ESC> run/StoP Diagnoseanzeige wird verlassen, ohne den Fehler zu quittieren.
<DIAG> E4 008 E4=FK4 / Kennung = Leer/Nicht vorhanden
<QUIT> run/StoP Diagnoseanzeige wird verlassen, Fehler wird quittiert. Liegen keine weiteren nichtquittierten Fehler vor, erlischt die LED "ERR".
Der Aufbau der Fehlernummern ist im Kapitel (siehe Aufbau der Fehlernummern) detailliert beschrieben.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 57 CPUs AC500 / Stand: 08.2005
5.1.3 Klartextanzeige der Fehlermeldungen in der Statuszeile des Control Builders im Onlinebetrieb
Im Onlinebetrieb des Control Builders werden einlaufende Fehlermeldungen oder Änderungen des Status einer Fehlermeldung (gekommen, gegangen, quittiert) im Klartext in der Statuszeile angezeigt. Die Quitierung der im vorherigem Kapitel beschriebenen Fehlermeldung "Batterie leer oder nicht gesteckt" wird z. B. Online wie folgt angezeigt:
#152502216: x 1970-01-01 06:33:53 E4 :' Keine oder leere Batterie
Dabei bedeuten:
#152502216 Online-Fehlernummer
x Fehler quittiert (+ = Fehler gekommen, - = Fehler gegangen)
1970-01-01 06:33:53 Zeitstempel (der Quittierung)
E4 : Fehlerklasse 4 = Warnung
Keine oder leere Batterie Fehlertext (entsprechend der Spracheinstellung des Control Builders)
Hinweis: Der Fehlertext wird entsprechend der Online-Fehlernummer aus der Datei Errors.ini gelesen und angezeigt. Die Anzeige erfolgt entsprechend der Spracheinstellung des Control Builders. Fehler ohne Eintrag in die Datei Errors.ini werden entsprechend ohne Fehlertext angezeigt. Die Datei Errors.ini gehört zum Target Support Package (TSP) und befindet sich im Verzeichnis ..\Targets\ABB_AC500.
5.1.4 Diagnose mit den PLC-Browser des Control Builders
Mit dem PLC-Browser des Control Builders können alle oder Fehler einer bestimmen Fehlerklasse angezeigt und/oder quittiert werden. Es kann auch das gesamte Diagnosesystem gelöscht werden.
Die PLC-Browser-Kommandos sind im Kapitel AC500 spezifische PLC-Browser-Kommandos detailliert beschrieben.
5.1.5 Diagnose aus dem Anwenderprogramm
Auf die Einträge des Diagnosesystems kann auch aus dem Anwenderprogramm mit Bausteinen zugegriffen werden. Die Bausteine sind im Kapitel Die Diagnose - Bausteine der AC500 detailliert beschrieben.
5.2 Aufbau der Fehlernummern
Jeder Fehler wird in der Firmware mit einer Fehlernummer abgespeichert. Diese Fehlernummer hat folgende Kodierung:
Zustand Fehler- klasse
Fehlerhafte Komponente
FehlerhaftesGerät
FehlerhaftesModul
Fehlerhafter Kanal
Fehler- kennung
4 Bit 2 Bit 4 Bit 8 Bit 5 Bit 5 Bit 6 Bit
0...3 0...15 0...255 0...31 0...31 0...63
Wert Zustand Bedeutung
Bit 0 Frei
Bit 1 Fehler gekommen
Bit 2 Fehler gegangen
Bit 3 Fehler quittiert
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 58 CPUs AC500 / Stand: 08.2005
Neben der eigentlichen Fehlerinformation enthält eine Diagnosemeldung zusätzlich die Angabe von Zuständen (1 Bit je Zustand). Jeder einzelne Zustand wird durch ein Ereignis hervorgerufen:
• Fehler tritt auf (gekommen) • Fehler wird quittiert (quittiert) • Fehler wird behoben (gegangen)
Eine Diagnosemeldung wird mit dem Auftreten eines Fehlers generiert. Dabei wird das Zustandsbit 1 gesetzt. Wird dieser Fehler nun in der Folge quittiert oder beseitigt, werden die entsprechenden Zustandsbits zusätzlich gesetzt.
Zur Anzeige im Control Builder wird die Online-Fehlernummer genutzt. Diese Nummer wird im Onlinebetrieb an den Control Builder übertragen und dort über die zu den Steuerungsbeschreibungsdateien gehörigen Datei Errors.ini sprachabhängig decodiert. Diese hat folgenden Aufbau:
Fehlerhafte Komponente
Fehlerhaftes Gerät
Fehlerhaftes Modul
Fehlerhafter Kanal
Fehlerkennung
24...27 16...23 11...15 6...10 0...5
4 Bit 8 Bit 5 Bit 5 Bit 6 Bit
0...15 0...255 0...31 0...31 0...63
Der Fehlerstatus (gekommen, gegangen, quittiert) und die Fehlerklasse sind in der Online-Fehlernummer ausgeblendet und werden im Klartext angezeigt.
5.2.1 Fehlerklassen
Die Codierung der Fehlerklassen erfolgt folgendermaßen:
Wert Fehlerklasse Bedeutung
Class
0 E1 Fatale Fehler
1 E2 Schwere Fehler
2 E3 Leichte Fehler
3 E4 Warnungen
5.2.2 Fehlerkennung
Die folgenden Fehlerkennungen sind definiert. Die Fehlerkennungen sind bewusst sehr allgemein gehalten, um eine möglichst hohe Systematik zu erzielen. Die exakte Bedeutung des jeweiligen Fehlers hängt von den weiteren Angaben der Fehlermeldungen ab. So entsprechen die Fehlerkennungen Fehler oberster Grenzwert' und Fehler unterster Grenzwert' bei Analogkanälen der Out of Range'-Meldung.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 59 CPUs AC500 / Stand: 08.2005
Fehlerkennung / Error Identifier
Err Bedeutung Meaning
0 Fehler allgemein General
1 Fehler falscher Wert Wrong value
2 Fehler ungültiger Wert Invalid value
3 Fehler Timeout Timeout
4 Fehler oberster Grenzwert Highest level
5 Fehler oberer Grenzwert High level
6 Fehler unterer Grenzwert Low level
7 Fehler unterster Grenzwert Lowest level
8 Fehler leer/fehlt Empty or missing
9 Fehler voll Full
10 Fehler zu groß Too big
11 Fehler zu klein Too small
12 Fehler beim Lesen Read
13 Fehler beim Schreiben Write
14 Fehler beim Löschen Delete
15 Fehler beim Reservieren von Speicher Alloc memory
16 Fehler beim Freigeben von Speicher Free memory
17 Fehler beim Zugriff Access
18 Fehler beim Testen Test
19 Fehler Checksumme Checksum
20 Fehler Message Message
21 Fehler bei PutMessage Put message
22 Fehler bei GetMessage Get message
23 Fehler Warten auf freie Message Wait message
24 Fehler Message gelöscht Message deleted
25 Fehler Warten auf Antwort Wait answer
26 Fehler Konfiguration Config data
27 Fehler keine Konfiguration No config
28 Fehler Unterschied Soll-/Ist-Konfiguration Different config
29 Fehler beim Schreiben der Konfiguration Write config
30 Fehler beim Lesen der Konfiguration Read config
31 Fehler anderer Typ / anderes Modell Wrong type or model
32 Fehler unbekannter Typ / unbekanntes Modell Unknown type or model
33 Fehler WaitReset Wait reset
34 Fehler WaitReady Wait ready
35 Fehler WaitRun Wait run
36 Fehler WaitCom Wait com
37 Fehler Zykluszeit Cycle time
38 Fehler Exception Exception
39 Fehler unbekannter Baustein Unknown POU
40 Fehler Version Version
41 Fehler Übertragung Transmit
42 Fehler Empfang Receive
43 Fehler intern Internal
44 Fehler keine Abgleichwerte No adjustment values
45 Drahtbruch Cut wire
46 Überlast Overload
47 Kurzschluss Short circuit
48 Überlast / Drahtbruch Overload / Cut wire
49 Kurzschluss / Drahtbruch Short-circuit / Cut wire
50 Überlast / Kurzschluss Overload / Short-circuit
51 Überlast / Kurzschluss / Drahtbruch Overload / Short-circuit / Cut wire
63 (max.) weitere others
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 60 CPUs AC500 / Stand: 08.2005
5.2.3 Übersicht über die möglichen Fehlernummern
In den nachfolgenden Tabellen sind die möglichen Kombinationen der Fehlernummern dargestellt.
Komponente Gerät Modul oder Typ Kanal Anmerkung
Comp Dev Mod Ch <- PLC-Browser No.
d1 No.
d2 No.
d3 No.
d4 <- Display
1 Initialisierungsfehler
2 Laufzeitfehler
3 Projektierungsfehler
1 Betriebssystem
31 Betriebssystem selbst
1 Initialisierungsfehler
2 Laufzeitfehler
3 Projektierungsfehler
2 Laufzeitsystem
31 Laufzeitsystem selbst
1 Initialisierungsfehler
0 CPU selbst
4 IEC-Task Online-Anzeige %s
2 Laufzeitfehler
1 Initialisierung
2 Laufzeitfehler
3 Projektierung 26,
4 Protokoll
1 Koppler extern 1...6 oder intern
31 Koppler selbst
0 frei
1 Initialisierung
2 Laufzeitfehler
3 Projektierung
4 Protokoll
2 Koppler extern 2
31 Koppler selbst
0 frei
1 Initialisierung
2 Laufzeitfehler
3 Projektierung 26,
4 Protokoll
3 Koppler extern 3
31 Koppler selbst
0 frei
1 Initialisierung
2 Laufzeitfehler
3 Projektierung 26,
4 Protokoll
4 Koppler extern 4
31 Koppler selbst
0 frei
1 Initialisierung
2 Laufzeitfehler
3 Projektierung 26,
4 Protokoll
10 Koppler intern
31 Koppler selbst
0 frei
1 Initialisierung
2 Laufzeitfehler
3 Projektierung 26,
4 Protokoll
11 COM1
31 COM selbst
0 frei
1 Initialisierung
2 Laufzeitfehler
3 Projektierung 26,
4 Protokoll
12 COM2
31 COM selbst
0 frei
1 Initialisierung
2 Laufzeitfehler
3 Projektierung 26,
4 Protokoll
9 CPU
13 FBP
31 FBP selbst
0 frei
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 61 CPUs AC500 / Stand: 08.2005
1 Initialisierung 18, 15
2 Laufzeitfehler
3 Projektierung
4 Protokoll
14 I/O-Bus
31 I/O-Bus selbst
0 frei
16 System- EPROM
0...31 0...31
17 RAM 0...31 0...31
18 Flash- EPROM
0...31
Sektor, Block-Nr. o. ä.
0...31
Sektor, Blocknummer o. ä. (%s)
19 HW- Watchdog
31 Watchdog selbst
31 Watchdog selbst
1 Initialisierung 0...31
2 Laufzeitfehler 0...31
3 Projektierung 0...31
4 Protokoll 0...31
20 SD Memory Card
31 SD-Karte selbst 0...31
Sektor, Blocknummer o. ä. (%s)
1 Initialisierung
2 Laufzeitfehler
4 Protokoll
31 Display selbst
21 Display
0 frei
22 Batterie 31 Batterie selbst 31 Batterie selbst 8,
1 Initialisierung
2 Laufzeitfehler
3 Projektierung
4 Protokoll
23 Uhr
31 Uhr selbst
0 frei
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 62 CPUs AC500 / Stand: 08.2005
Komponente Gerät Modul oder Typ Kanal Anmerkung
No. Comp No. Dev No. Mod No. Ch <- PLC- Browser
d1 d2 d3 d4 <- Display
0..29 Modulnummer 0..31 Kanalnummer
30 Modulnummer >29 0..31 Kanalnummer
0..254 Adresse/ Socket: Feldbus: Slave ARCNET: ID Partner - 1 Modbus: Komm-Partner
31 Slavegerät selbst 31 Slavegerät selbst
1
Initialisierung
2 Laufzeitfehler
3 Projektierung
4 Protokoll
5 Betriebssystem Koppler
6 Task 1 Koppler
7 Task 2 Koppler
8 Task 3 Koppler
9 Task 4 Koppler
10 Task 5 Koppler
11 Task 6 Koppler
12 Task 7 Koppler
13 Watchdog Koppler
1..4 10
Koppler extern 1..4 oder intern
255 Koppler selbst
31 Koppler selbst
0 frei
0..29 Modulnummer CS31: Mdultyp: 00 - Digitale Eingabe 01 - Analoge Eingabe 02 - Digitale Ausgabe 03 - Analoge Ausgabe 04 - Digitale Ein-/Ausgabe 05 - Analoge Ein-/Ausgabe
0..31 Kanalnummer 8, 48
30 Modulnummer >29 0..31 Kanalnummer
0..254 Adresse: CS31: Slave Dez. Er- weiterung: Slave Modbus: Komm- Partner
31 Slavegerät selbst 31 Slavegerät selbst
1 Initialisierung
2 Laufzeitfehler
3 Projektierung
4 Protokoll
11 COM1
255 COM selbst
31 COM selbst
0 frei
0..29 Modulnummer 0..31 Kanalnummer
30 Modulnummer >29 0..31 Kanalnummer
0..254 Adresse: CS31: Slave Dez. Er- weiterung: Slave Modbus: Komm- Partner
31 Slavegerät selbst 31 Slavegerät selbst
1 Initialisierung
2 Laufzeitfehler
3 Projektierung
4 Protokoll
12 COM2
255 COM selbst
31 COM selbst
0 frei
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 63 CPUs AC500 / Stand: 08.2005
Komponente Gerät Modul oder Typ Kanal Anmerkung
Comp Dev Mod Ch <- PLC- Browser No.
d1
No.
d2
No.
d3
No.
d4 <- Display
0... 254
Modulnummer Parameter- Nummer
0..30 Slotnummer 0..31 Kanalnummer
1 Initialisierung
2 Laufzeitfehler
3 Projektierung
4 Protokoll
13 FBP
255 FBP selbst
31 FBP selbst
0 frei
0..6 Modultyp: 00 - Digitale Eingabe 01 - Analoge Eingabe02 - Digitale Ausgabe03 - Analoge Ausgabe 04 - Digitale Ein-/Ausgabe 05 - Analoge Ein-/Ausgabe 06 - Sonstige (z. B. Schneller Zähler)
0..31 Kanalnummer %s
1 Initialisierungsfehler
2 Laufzeitfehler
3 Projektierung 26,
4 Protokoll
0... 254
I/O-Bus- Modul
31 Modul selbst
31 Modul selbst
1 Initialisierung
2 Laufzeitfehler
3 Projektierung
4 Protokoll
14 I/O-Bus
255 I/O-Bus selbst
31 I/O-Bus selbst
0 frei
15 User 0... 255
beliebig 0..31 beliebig 0..31 beliebig, Bedeutung projekt-spezifisch
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 64 CPUs AC500 / Stand: 08.2005
5.3 Die Diagnose-Bausteine der AC500
In der AC500-Bibliothek SysInt_AC500_Vxx.LIB gibt es im Order "Diagnosis" folgende Bausteine für die Diagnose:
Baustein Funktion
DIAG_EVENT Generiert einen Fehler im Diagnosesystem
DIAG_GET Liefert detaillierte Informationen und den Fehlercode für den nächsten Fehler der gewählten Fehlerklasse
DIAG_INFO Meldet das Vorliegen eines Fehlers der Klassen 1..4
DIAG_ACK Quittieren eines Fehlers mit Fehlercode
DIAG_ACK_ALL Quittieren aller Fehler einer Fehlerklasse (außer exklusiv zu quittierender Fehler)
Die Diagnose-Bausteine sind in der Dokumentation der Bibliothek SysInt_AC500_Vxx.LIB detailliert beschrieben.
5.4 AC500-spezifische PLC-Browser-Kommandos
Die PLC-Browser-Schnittstelle des Control Builders enthält sowohl CoDeSys-Standard-Kommandos als auch AC500-spezifische Kommandos. Das allgemeine Handling des PLC-Browsers ist im Handbuch beschrieben.
Hier werden nur die AC500-spezifischen Kommandos und die Kommandos beschrieben, die besondere Daten für die AC500 liefern.
Alle Kommandos sind mit einem Online-Hilfetext versehen. Diese wird im Online-Mode bei Eingabe von "?Kommando" sprachabhängig ausgegeben. Wird nur "?" eingegeben, so werden alle verfügbaren Kommandos der Firmware ausgegeben.
Die Online ausgegebene Liste kann von der beim Klicken auf die Schaltfläche [...] ausgegebenen abweichen, da Control Builder- und Firmwareversion voneinander abweichen können. Beim Klicken auf die Schaltfläche [...] werden die Kommandos ausgegeben, die in der zu den Zielsystemeinstellungen (TSP) gehörigen Datei "Browser.ini" eingetragen sind.
Im PLC-Browser gibt es folgende AC500-spezifischen Kommandos:
Kommando Bedeutung Implementierung
? Ausgabe aller implementierten Kommandos Standard
mem Memorydump von bis Standard
memc Memorydump relativ zum Codebereich Standard
memd Memorydump relativ zum Datenbereich Standard
reflect Aktuelle Kommandozeile spiegelt (zum Test) Standard
dpt Ausgabe der Datenzeiger-Tabelle Standard
ppt Ausgabe der Bausteinzeiger-Tabelle Standard
pid Projekt-ID ausgeben Standard
pinf Projektinformationen ausgeben in der Form: pinf Address of Structure: 16#0013CF74 Date: 4213949F Project Name: MODBUS_Test_BB.pro Project Title: Test MODBUS Project Version: V1.0 Project Author: Brigitte Blei Project Description: Test serielle Schnittstellen End of Project-info.
Standard
tsk IEC-Taskliste mit Taskinformationen ausgeben in der Form: tsk
Standard
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 65 CPUs AC500 / Stand: 08.2005
Number of Tasks: 1 Task 0: Hauptprogramm, ID: 1519472 Cycle count: 45402 Cycle time: 1 ms Cycle time (min): 1 ms Cycle time (max): 1 ms Cycle time (avg): 1 ms Status: RUN Mode: CONTINUE ---- Priority: 10 Interval: 5 ms Event: NONE ---- Function pointer: 16#00601584 Function index: 131
startprg Anwenderprogramm starten Standard
stopprg Anwenderprogramm stoppen Standard
resetprg Anwenderprogramm reset Standard
resetprgcold Anwenderprogramm reset kalt Standard
resetprgorg Anwenderprogramm reset Ursprung (origin) Standard
reload Bootprojekt erneut aus Flash laden Standard
getprgprop Programmeigenschaften ausgeben in der Form: getprgprop Name: MODBUS_FBP_Test_BB.pro Title: Test MODBUS Version: V1.0 Author: Brigitte Blei Date: 4213949F
Standard
getprgstat Programmstatus ausgeben in der Form: getprgstat Status: Run Last error: Id 00000000 TimeStamp 000055F3 Parameter 00000000 Text Flags:
Standard
filecopy Dateikommando copy Nein
filerename Dateikommando rename Nein
filedelete Dateikommando delete Nein
filedir Dateikommando dir Nein
saveretain Retainvariablen auf SD-Karte laden Spezifisch
restoreretain Retainvariablen von SD-Karte laden Spezifisch
setpwd Passwort auf der SPS setzen (wird dann beim Login abgefragt!)
Standard
delpwd Passwort auf der SPS löschen Standard
plcload Anzeige der Auslastung der SPS (System+IEC+Tasks+Kommunikation)
Standard
rtsinfo Anzeige der Firmware-Informationen (Version, Treiber) in der Form: rtsinfo rts version: 2.4.0.4 uses IO driver interface rts api version: 2.404 4 driver(s) loaded driver 1: AC500 CPU driver, device interface version: 2.401 driver 2: AC500 I/O-Bus driver, device interface version: 2.401 driver 3: AC500 COM driver, device interface version: 2.401
Spezifisch
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 66 CPUs AC500 / Stand: 08.2005
driver 4: AC500 Coupler driver, device interface version: 2.401 Display driver V10 Bootcode V1.18 April 1 2005 AC500 PM581 V1.0 Feb 14 2005 11:15:39
diagreset Rücksetzen des Diagnosesystems Spezifisch
diagack all Quittieren aller Fehler (aus explizit zu quittierender Fehler) Spezifisch
diagack x Quittieren aller Fehler der Klasse X (X = 1...4) Spezifisch
diagshow all Anzeige aller Fehler in der Form: diagshow all --- All errors --- State Class Comp Dev Mod Ch Err 0152502216 active and quitted 4 9 22 31 31 8 1970-01-01 00:00:08 occurred disappeared 1970-01-01 00:00:15 quitted 0152369165 active not quitted 4 9 20 31 0 13 1970-01-01 01:19:12 occurred - disappeared - quitted --- end ---
Spezifisch
time Anzeige und Setzen der Zeit der Echtzeituhr Spezifisch
date Anzeige und Setzen des Datums der Echtzeituhr Spezifisch
batt Abfragen des Batterie-Status Spezifisch
sdappl Speichern des Bootprojektes auf SD-Karte Spezifisch
sdfunc Anzeigen und Ändern der Funktion der SD-Karte Spezifisch
cpuload Anzeige Auslastung der CPU (Aktuell, min, max, Durchschnitt) Spezifisch
delappl Löschen des Anwenderprogrammes im Flash Spezifisch
io-bus stat Anzeige Statistik des I/O-Bus Spezifisch
io-bus desc Anzeige der Konfiguration des I/O-Bus Spezifisch
com protocols Anzeige der verfügbaren Protokolle für die seriellen Schnittstellen
Spezifisch
com settings Anzeige der Einstellung der seriellen Schnittstellen Spezifisch
coupler desc Anzeige der Bestückung der Kopplerschnittstellen (Typ, Firmware, Seriennummer, Datum)
Spezifisch
reboot Reboot der SPS (CoDeSys loggt bei Wiederanlauf aus) Spezifisch
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 67 CPUs AC500 / Stand: 08.2005
6 Die Speicherkarte in AC500 (SD Memory Card)
6.1 Funktionen der SD-Karte
6.1.1 Übersicht über die Funktionen der Speicherkarte
Die AC500-Steuerung erhält als externes Speichermedium eine FLASH-Speicherkarte des Typs "SD Memory Card" (kurz SD-Karte), die seitens der SPS wie ein Diskettenlaufwerk angesprochen wird. Die SD-Karte dient als Daten-Transfer-Medium zwischen jedem handelsüblichen PC mit SD-Karten-Interface und der AC500-Steuerung.
Die SD-Karte kann in der AC500 für folgende Dienste eingesetzt werden:
• Firmwareupdate für den AC500-CPU-Prozessor
• Firmwareupdate für den Display-Controller (ab V2.0)
• Firmwareupdate für die Koppler (ab V2.0)
• Firmwareupdate für die E/A-Module am IO-Bus (ab V2.0)
• Laden und Speichern von Anwenderprogrammen (Bootprojekt)
• Laden und Speichern des Quellcodes des Anwenderprogrammes
• Laden und Speichern von gepufferten Variablen (RETAIN, %M-Bereich)
• Laden und Speichern von Anwenderdaten (mit Bausteinen)
Zur Bedienung der SD-Karte gibt es folgende Möglichkeiten:
• Beschreiben/Lesen von Files mit einem handelsüblichen PC-Kartenleser mit SD-Karten-Interface
• Bedienung der SD-Karte mit speziellen PLC-Browser-Kommandos
• Lesen und Schreiben von Daten aus dem Anwenderprogramm mit speziellen Bausteinen
6.1.2 PLC-Browser-Kommandos zur Bedienung der SD-Karte
Kommando Funktion
Sdfunc Anzeige und Einstellen der Funktion der SD-Karte "FunctionOfCard": 0 None 1 Anwenderprogramm laden 2 Firmware laden 3 Anwenderprogramm und Firmware laden
Sdappl Anwenderprogramm (Bootprojekt) vom Flash auf SD-Karte laden (Default.prg und Default.chk) und Funktion der SD-Karte auf "Anwenderprogramm laden" FunctionOfCard=+1 (Bit 0=1) setzen
saveretain Speichern der RETAIN-Variablen "RETAIN.BIN" auf SD-Karte
restoreretain Laden der RETAIN-Variablen "RETAIN.BIN" von SD-Karte in das SRAM
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 68 CPUs AC500 / Stand: 08.2005
6.2 Das Filesystem der Speicherkarte
6.2.1 Übersicht über die Dateistruktur der SD-Karte
Die SD-Karte wird in der SPS wie ein Diskettenlaufwerk eines PC angesprochen. Sie wird als FAT-Filesystem (Microsoft-DOS-Format) initialisiert. Files werden im 8.3-Format (keine "langen" Namen) auf der SD-Karte abgelegt.
Für die SD-Karte ist folgende Dateistruktur festgelegt:
IETHxxyy.S19EETHxxyy.S19EDPMxxyy.S19EDNMxxyy.S19ECOMxxyy.S19
Coupler
AVRVxxyy.S19Display
EC500.S19EC500
MIDIBxx.S19MIDIxxyy.S19PM591
MINIBxx.S19MINIxxyy.S19PM581
MICRBxx.S19MICRxxyy.S19PM571
IOModule
Firmware
SDCARD.INIRoot
DEFAULT.CHKDEFAULT.PRGPM571UserData UserPrg
SOURCE.DATUserProj
USRDATxx.DAT00 <= xx <= 99UserDat
RETAIN.BINADRDAT.BINRetDat
DEFAULT.CHKDEFAULT.PRGPM581 UserPrg
SOURCE.DATUserProj
USRDATxx.DAT00 <= xx <= 99UserDat
RETAIN.BINADRDAT.BINRetDat
DEFAULT.CHKDEFAULT.PRGPM591 UserPrg
SOURCE.DATUserProj
USRDATxx.DAT00 <= xx <= 99UserDat
RETAIN.BINADRDAT.BINRetDat
• Die Root-Directory der SD-Karte beinhaltet die Kommandodatei SDCARD.INI. Diese Datei ist weiter unten detailliert beschrieben.
• Das Unterverzeichnis "Firmware ist weiter unterteilt in die Verzeichnisse für: - die CPUs PM571, PM581 und PM591, - das Verzeichnis für den Display-Controller "Display"
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 69 CPUs AC500 / Stand: 08.2005
- und das Verzeichnis für die Koppler "Coupler". In den Verzeichnissen liegt jeweils der Bootcode BOOTxxyy.S19 und die Firmware der CPU ab.
• Unterverzeichnis "UserData" ist weiter unterteilt in die Verzeichnisse: - "UserPrg", Anwenderprogramm - "UserProj", Source-Code des Anwenderprogrammes - "UserDat", Anwenderdaten und - "RetDat", remanente Daten In diesen Verzeichnissen liegen die Anwenderdaten.
• Bei den Dateinamen steht xxyy für die Versionskennung bzw. für die Datenfilenummer.
6.2.2 Die Kommandodatei "SDCARD.INI"
In der Kommandodatei "SDCARD.INI" in der Root-Directory der SD-Karte wird festgelegt, wie sich die AC500 beim Hochfahren mit SD-Karte bzw. beim Stecken der Karte verhält (Firmware-Update, Anwenderprogramm laden, etc...).
Die Datei SDCARD.INI ist im Windows-Ini-Format erstellt und hat folgenden Inhalt:
[Status] FunctionOfCard=0 [FirmwareUpdate] CPUPM5x1=0 CPUEC500=0 Display=0 Coupler_0=0 Coupler_1=0 Coupler_2=0 Coupler_3=0 Coupler_4=0 [UserProg] UserProgram=0 RetainData=0 AddressData=0
Die Einträge haben folgende Bedeutung:
• [Status] FunctionOfCard=0 Der Parameter FunctionOfCard legt fest, welche Funktion beim Stecken der Karte ausgeführt werden soll. Dabei gilt folgende Zuordnung: FunctionOfCard=0 keine Funktion beim Stecken ausführen FunctionOfCard=1 Anwenderprogramm laden gemäß Eintrag in [UserProg] FunctionOfCard=2 Firmwareupdate gemäß Eintrag in [FirmwareUpdate] ausführen FunctionOfCard=4 reserviert für Fabriktest Soll die Firmware und das Anwenderprogramm geladen werden, so ist FunctionOfCard=3 zu setzen.
• [FirmwareUpdate] CPUPM5x1=0 (0 = kein Update, 1 = Update der CPU-Firmware) Display=0 (0 = kein Update, 1 = Update des Display-Controllers) Coupler_0=0 (0 = kein Update, 1 = Update des internen Kopplers) Coupler_1=0 (0 = kein Update, 1 = Update des Kopplers auf Steckplatz 1) Coupler_2=0 (0 = kein Update, 1 = Update des Kopplers auf Steckplatz 2) Coupler_3=0 (0 = kein Update, 1 = Update des Kopplers auf Steckplatz 3) Coupler_4=0 (0 = kein Update, 1 = Update des Kopplers auf Steckplatz 4) Mit den Einträgen unter [FirmwareUpdate] wird eingestellt, welche Firmware geladen werden soll. In der Version V1.0 kann nur die Firmware des CPU-Prozessors geladen werden.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 70 CPUs AC500 / Stand: 08.2005
• [UserProg] UserProgram=0 (0 = kein Update, 1 = Update des Anwenderprogrammes) RetainData=0 (0 = kein Update, 1 = Update der RETAIN-Variablen) AddressData=0 (0 = kein Update, 1 = Update der adressierbaren Merker %M) Mit den Einträgen unter [UserProg] wird eingestellt, welche Anwenderdaten geladen werden sollen. In der Version V1.0 kann nur das Anwenderprogramm geladen werden.
6.2.3 Initialisieren einer SD-Karte
6.2.3.1 Initialisieren der SD-Karte mit der AC500
Wird eine formatierte SD-Karte in die AC500 gesteckt, so wird die oben beschriebene Filestruktur auf der SD-Karte angelegt. Das File SDCARD.INI enthält folgende Einträge:
[Status] FunctionOfCard=0 [FirmwareUpdate] CPUPM5x1=0 Display=0 Coupler_0=0 Coupler_1=0 Coupler_2=0 Coupler_3=0 Coupler_4=0 [UserProg] UserProgram=0 RetainData=0 AddressData=0
Wird eine unformatierte SD-Karte eingesteckt, so wird der Fehler:
152369164 FK4 Warnung SD-Karte kann nicht gelesen werden
gemeldet.
Befinden sich noch andere Files im Rootverzeichnis bzw. andere Unterverzeichnisse auf der SD-Karte, so werden diese nicht verändert.
6.2.3.2 Initialisieren der SD-Karte mit einem PC
Die oben beschriebene Filestruktur kann auch auf einem PC mit SD-Karte-Interface erzeugt werden.
Legen Sie dazu die entsprechenden Verzeichnisse an und erstellen Sie eine ASCII-Datei SDCARD.INI z. B. mit dem Notepad.
Es ist auch möglich, die Struktur von einer initialisierten SD-Karte auf Festplatte zu kopieren und dann von Festplatte auf nicht initialisierte SD-Karten.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 71 CPUs AC500 / Stand: 08.2005
6.3 Speichern / Laden des Anwenderprogrammes auf SD-Karte
6.3.1 Speichern des Anwenderprogrammes auf SD-Karte
Zum Speichern eines Anwenderprogrammes auf die SD-Karte ist wie folgt vorzugehen:
1. Übersetzen des gesamten Projektes mit "Projekt" / "Alles bereinigen" und "Projekt" / "Alles übersetzen"
2. Laden des Projektes in die AC500
3. Laden des Bootprojektes in die Steuerung mit "Online" / "Bootprojekt erzeugen" Das Bootprojekt (Files DEFAULT.PRG und DEFAULT.CHK) werden in die AC500 geladen und geflasht. Das Flashen wird durch Blinken der RUN-LED auf der AC500 angezeigt.
4. Einstecken einer SD-Karte. Hat die SD-Karte noch nicht die vorgeschriebene Dateistruktur, so wird diese angelegt. (siehe auch: Link zu "Initialisieren der SD-Karte mit der AC500")
Achtung: Befindet sich auf der SD-Karte bereits ein Anwenderprogramm, d. h. im Verzeichnis UserData\PM5x1\UserPrg gibt es die Dateien DEFAULT.PRG und DEFAULT.CHK, so werden diese ohne Abfrage überschrieben.
Sollen mehrere Anwenderprogramme auf einer SD-Karte gespeichert werden, so müssen diese mittels PC in andere Verzeichnisse kopiert werden.
5. Wechsel zum PLC Browser (in Ressourcen) und Eingabe des Kommandos "sdappl"<ENTER>. Die Dateien DEFAULT.PRG und DEFAULT.CHK werden aus dem Flash auf die SD-Karte in das Verzeichnis UserData\PM5x1\UserPrg geladen. In der Datei SDCARD.INI wird im Parameter "FunctionOfCard" Bit 0 = 1 (+1) und der Parameter "UserProgram=1" gesetzt, d. h. "Laden des Anwenderprogrammes" wird aktiviert. Das Beschreiben der SD-Karte wird durch Blinken der RUN-LED angezeigt.
Wird eine so erstellte SD-Karte in eine AC500 gesteckt, so wird das Anwenderprogramm von der SD-Karte in den Flash der AC500 geladen. (siehe nächsten Abschnitt)
6.3.2 Laden des Anwenderprogrammes von der SD-Karte in die AC500
Wird eine SD-Karte in die AC500 im STOP-Mode der SPS gesteckt oder ist die SD-Karte beim Einschalten der Steuerspannung gesteckt, so wird diese auf die vorgeschriebene Dateistruktur überprüft. Ist diese vorhanden, so wird die Datei SDCARD.INI gelesen. Ist im Parameter "FunctionOfCard" das Bit 0 (=1) gesetzt und ist der Parameter UserProgram=1, so werden die im Verzeichnis UserData\PM5x1\UserPrg befindlichen Dateien DEFAULT.PRG und DEFAULT.CHK von der SD-Karte in das Flash der AC500 geladen.
Das Laden und Flashen des Anwenderprogrammes wird durch Blinken der RUN-LED angezeigt.
Das geladene Programm wird durch Neustart der SPS aktiviert.
Kann das Anwenderprogramm nicht geladen werden (z. B. wegen fehlender Dateien, falscher Verzeichnisstruktur oder nicht passendem Projekt zur Steuerung), so wird eine entsprechende Fehlermeldung ausgegeben.
Eine Zusammenfassung der Fehler der SD-Karte befindet sich im Abschnitt "Fehlermeldungen der SD-Karte".
Wird die SD-Karte in die AC500 im RUN-Mode der SPS gesteckt, so wird das Anwenderprogramm auch bei gesetzten Parametern "FunctionOfCard" Bit 0=1 und UserProgram=1 nicht geladen. Somit besteht die Möglichkeit, auch ohne PC-Kartenleser die Funktion "Anwenderprogramm laden" mit dem PLC-Browser-Kommando "sdfunc 0" wieder zu löschen.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 72 CPUs AC500 / Stand: 08.2005
6.4 Speichern/Lesen von Anwenderdaten auf die / von der SD-Karte
6.4.1 Aufbau der Datenfiles der SD-Karte
Die Daten auf der SD-Karte werden entsprechend dem AC500-CPU-Typ in folgendem Verzeichnis gespeichert:
AC500-CPU Verzeichnis File (Datei)
PM571 ..\UserData\PM571\UserDat USRDATxx.DAT
PM581 ..\UserData\PM581\UserDat USRDATxx.DAT
PM591 ..\UserData\PM591\UserDat USRDATxx.DAT
Es können maximal 100 Files USRDAT00.DAT...USRDAT99.DAT in einem Verzeichnis abgelegt werden.
Jedes Datenfile USRDATxx.DAT kann (optional) in Sektoren unterteilt werden. Der Sektorbeginn wird durch ein in eckige Klammern eingeschlossenen "Sektor-Namen" (z. B. [Sektor_01]<CR><LF>) gekennzeichnet. Innerhalb eines Sektors werden die Daten als Datensätze im ASCII-Format gespeichert. Die einzelnen Daten sind durch Semikolon getrennt. Jeder Datensatz wird mit <CR><LF> (0Dhex, 0Ahex) abgeschlossen.
Dadurch besteht die Möglichkeit des direkten Imports bzw. Exports in EXCEL. Die Datenfiles können mit einem einfachen ASCII-Editor (z. B. dem Notepad) angeschaut und bearbeitet werden.
Für das Speichern / Laden von Daten müssen folgende Regeln eingehalten werden:
• Die Datensätze innerhalb eines Sektors müssen immer die gleiche Anzahl Daten haben.
• Die Anzahl Daten eines Datensatzes kann in verschiedenen Sektoren unterschiedlich sein.
• Es können Werte von ganzzahligen Datentypen gespeichert werden. REAL- bzw. LREAL-Variablen können nicht gespeichert werden.
• Das Datenformat (BYTE, WORD, INT,..) muss innerhalb eines Datensatzes gleich sein.
• In einem Sektor können Datensätze mit unterschiedlichem Datenformat gespeichert werden. (Achtung: Die Struktur der Daten muss dem Anwender zum Lesen bekannt sein.)
• Beim Schreiben werden die Datensätze immer an das Fileende angehängt (append).
• Beim Lesen kann innerhalb eines Files nach einem "Sektor-Namen" gesucht werden.
• Datensätze können ab einem "Sektor-Namen" gelesen werden.
• Es ist nicht möglich, innerhalb eines Sektors einen bestimmten Datensatz zu lesen bzw. zu schreiben.
• Soll jeder Datensatz einzeln lesbar sein, so ist vor jeden Datensatz ein "Sektor-Name" zu setzen.
• Das Lesen und Schreiben der Daten erfolgt im Anwenderprogramm mit den Bausteinen SD_READ und SD_WRITE.
• Die Daten eines Datensatzes müssen in hintereinander liegenden Variablen in der SPS liegen (z. B. ARRAY, STRING, %M-Bereich).
• Aus dem SPS-Programm heraus kann ein Datenfile gelöscht werden.
• Das Löschen einzelner Datensätze und/oder Sektoren mit dem Anwenderprogramm ist nicht möglich. Das Löschen einzelner Datensätze und/oder Sektoren kann auf dem PC z. B. mit dem Notepad erfolgen.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 73 CPUs AC500 / Stand: 08.2005
Beispiele für Datenfiles:
Beispiel 1:
Datenfile USRDAT5.DAT ohne Sektoren: -> 5 Datensätze mit je 10 DINT-Werten:
600462;430;506;469;409;465;466;474;476;-1327203 600477;446;521;484;425;480;482;490;491;-1327187 600493;461;537;499;440;496;497;505;507;-1327172 600508;477;552;515;456;511;513;521;522;-1327156 600524;492;568;530;471;527;528;536;538;-1327141
Beispiel 2:
Datenfile USRDAT7.DAT mit Sektoren: -> 3 Segmente mit je 3 Datensätzen und jeweils 10 DINT-Werten:
[Sektor_01] 610439;10408;10483;10446;10387;10442;10444;10452;10453;-1317225 610455;10423;10499;10462;10402;10458;10460;10467;10469;-1317209 610476;10445;10520;10483;10424;10479;10481;10489;10490;-1317188
[Sektor_02] 610570;10539;10614;10577;10518;10573;10575;10583;10584;-1317094 610585;10554;10630;10592;10533;10589;10591;10598;10600;-1317078 610602;10571;10646;10609;10550;10605;10607;10615;10616;-1317062
[Sektor_03] 610701;10670;10746;10708;10649;10704;10706;10714;10715;-1316963 610717;10686;10761;10724;10665;10720;10722;10730;10731;-1316947 610739;10708;10783;10746;10686;10742;10744;10751;10753;-1316926
6.4.2 Die Bausteine zum Schreiben/Lesen von Anwenderdaten auf die / von der SD-Karte
Zum Schreiben und Lesen von Anwenderdaten aus dem SPS-Programm auf/von SD-Karte stehen folgende Bausteine zur Verfügung:
Bibliothek: SysInt_AC500_Vxx.lib
Ordner: ..\Data Storage\ SD card Zusätzlich wird die Bibliothek SysExt_AC500_Vxx.lib benötigt. Beide Bibliotheken werden beim Anlegen eines Projektes für eine AC500-CPU automatisch geladen.
Bausteine: SD_WRITE - Schreiben von Anwenderdaten SD_READ - Lesen von Anwenderdaten
Die Bausteine SD_WRITE und SD_READ sind in der Dokumentation der Bausteinbibliothek SysInt_AC500_Vxx.lib detailliert beschrieben.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 74 CPUs AC500 / Stand: 08.2005
Der Baustein SD_WRITE hat folgende Ein-/Ausgangsbelegung:
Name Typ Belegung
Eingänge
EN BOOL False->TRUE-Flanke startet Schreibvorgang
ATTRIB BYTE Schreibattribut-Funktion des Bausteins: 1 - Löschen eines Files (Delete) 2 - Datensatz anhängen (Write append) 3 - Anlegen Sektorname (Write sector label)
FILENO BYTE Fortlaufende Filenummer 0 <= xx <= 99 (USRDATxx.DAT)
SEG POINTER TO STRING Pointer auf Sektor-Label-String (mit ADR-Operator)
FORMAT BYTE Datenformat: 00 hex - 0 - BYTE 01 hex - 1 - CHAR 10 hex - 16 - WORD 11 hex - 17 - INT 20 hex - 32 - DWORD 21 hex - 33 - DINT
NVAR WORD Anzahl der zu schreibenden Variablen
ADRVAR DWORD Adresse der ersten Variablen, ab der die Daten in der SPS liegen (mit ADR-Operator)
Ausgänge
DONE BOOL Funktion fertig
ERR BOOL Fehler: FALSE=kein Fehler, TRUE=Fehler
ERNO INT Fehlernummer
Der Baustein SD_READ hat folgende Ein-/Ausgangsbelegung:
Name Typ Belegung
Eingänge
EN BOOL False->TRUE-Flanke startet Lesevorgang
ATTRIB BYTE Leseattribut-Funktion des Bausteins: 1 - File öffnen, Sektor suchen, Datensatz lesen (Open, Seek, Read) 2 - File öffnen, Datensatz lesen (Open, Read) 3 - Folgedatensatz lesen (Open, Read) 4 - Datensatz lesen, File schließen (Read, Close) 5 - File schließen (Close)
FILENO BYTE Fortlaufende Filenummer 0 <= xx <= 99 (USRDATxx.DAT)
SEG POINTER TO STRING Pointer auf Sektor-Label-String (mit ADR-Operator)
FORMAT BYTE Datenformat: 00 hex - 0 - BYTE 01 hex - 1 - CHAR 10 hex - 16 - WORD 11 hex - 17 - INT 20 hex - 32 - DWORD 21 hex - 33 - DINT
NVAR WORD Anzahl der zu lesenden Variablen
ADRVAR DWORD Adresse der ersten Variablen, ab der die Daten in der SPS abgelegt werden (mit ADR-Operator)
Ausgänge
DONE BOOL Funktion fertig
ERR BOOL Fehler: FALSE=kein Fehler, TRUE=Fehler
ERNO INT Fehlernummer
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 75 CPUs AC500 / Stand: 08.2005
Die Fehlermeldungen der Bausteine SD_READ und SD_WRITE sind im Kapitel "Fehlermeldungen der Bausteine" beschrieben.
6.4.3 Löschen eines Datenfiles auf SD-Karte
Zum Löschen eines Datenfiles sind folgende Schritte auszuführen:
1. Stecken der SD-Karte
2. Aufruf des Bausteines SD_WRITE mit den Einstellungen:
EN := TRUE
ATTRIB := 1 (* delete *)
FILENO := 0...99 (* Nummer des zu löschenden Files *)
SEG, FORMAT, NVAR, ADRVAR beliebig
6.4.4 Speichern von Anwenderdaten auf SD-Karte Datenfile ohne Sektoren
Zum Speichern von Anwenderdaten auf SD-Karte in einem Datenfile ohne Sektoren sind folgende Schritte auszuführen:
1. Stecken der SD-Karte
2. Schreiben eines Datensatzes durch Aufruf des Bausteines SD_WRITE mit den Einstellungen:
EN := TRUE (* FALSE/TRUE-Flanke beginnt den Schreibvorgang *)
ATTRIB := 2 (* write append *)
FILENO := 0...99 (* Nummer des Files, in das geschrieben werden soll *)
SEG := Adresse der Variablen Sektor-Name (* beliebig *)
FORMAT := Datenformat
NVAR := Anzahl der Daten im Datensatz
ADRVAR := Adresse der ersten zu schreibenden Variablen
Ist kein entsprechendes File vorhanden, so wird es angelegt. Das Schreiben ist erfolgreich beendet, wenn der Ausgang DONE:=TRUE und der Ausgang ERR:=FALSE ist. Fehlerhaftes Schreiben wird durch ERR:=TRUE und ERRNO<>0 angezeigt.
3. Das Schreiben weiterer Datensätze kann nach der jeweiligen Fertigmeldung (DONE=TRUE) mit
den gleichen Einstellungen und einer FALSE/TRUE-Flanke am Eingang EN gestartet werden.
Hinweis: Bei jedem Schreibvorgang wird USRDATxx.DAT in USRDATxx.BAK gesichert und ein "File öffnen / Daten schreiben / File schliessen" (OPEN/WRITE/CLOSE) durchgeführt.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 76 CPUs AC500 / Stand: 08.2005
6.4.5 Speichern von Anwenderdaten auf SD-Karte Datenfile mit Sektoren
Zum Speichern von Anwenderdaten auf SD-Karte in einem Datenfile mit Sektoren sind folgende Schritte auszuführen:
1. Stecken der SD-Karte
2. Anlegen des Sektor-Namens durch Aufruf des Bausteins SD_WRITE mit den Einstellungen:
EN := TRUE
ATTRIB := 3 (* write sector *)
FILENO := 0...99 (* Nummer des Files, in das geschrieben werden soll *)
SEG := Adresse der Variablen des Sektor-Namens
FORMAT := Datenformat
NVAR := Anzahl der Daten im Datensatz
ADRVAR := Adresse der ersten zu schreibenden Variablen
Ist kein entsprechendes File vorhanden, so wird es angelegt. Das Anlegen des Sektors ist erfolgreich beendet, wenn der Ausgang DONE:=TRUE und der Ausgang ERR:=FALSE ist. Fehlerhaftes Schreiben wird durch ERR:=TRUE und ERRNO<>0 angezeigt.
3. Schreiben eines Datensatzes durch Aufruf des Bausteines SD_WRITE mit den Einstellungen:
EN := TRUE (* FALSE/TRUE-Flanke beginnt den Schreibvorgang *)
ATTRIB := 2 (* write append *)
FILENO := 0...99 (* Nummer des Files, in das geschrieben werden soll *)
SEG := Adresse der Variablen des Sektor-Namens
FORMAT := Datenformat
NVAR := Anzahl der Daten im Datensatz
ADRVAR := Adresse der ersten zu schreibenden Variablen
Das Schreiben ist erfolgreich beendet, wenn der Ausgang DONE:=TRUE und der Ausgang ERR:=FALSE ist. Fehlerhaftes Schreiben wird durch ERR:=TRUE und ERRNO<>0 angezeigt.
4. Das Schreiben weiterer Datensätze kann nach der jeweiligen Fertigmeldung (DONE=TRUE) mit
den gleichen Einstellungen und einer FALSE/TRUE-Flanke am Eingang EN gestartet werden.
5. Um weitere Sektoren und entsprechende Datensätze anzulegen, ist entsprechend den Punkten 2..4 vorzugehen.
Hinweis: Bei jedem Schreibvorgang wird USRDATxx.DAT in USRDATxx.BAK gesichert und ein "File öffnen / Daten schreiben / File schliessen" (OPEN/WRITE/CLOSE) durchgeführt.
6.4.6 Laden von Anwenderdaten von der SD-Karte Datenfile ohne Sektoren
Zum Lesen von Anwenderdaten aus einem Datenfile ohne Sektoren von der SD-Karte in die SPS sind folgende Schritte auszuführen:
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 77 CPUs AC500 / Stand: 08.2005
1. Stecken der SD-Karte
2. Lesen eines Datensatzes durch Aufruf des Bausteines SD_READ mit den Einstellungen:
EN := TRUE (* FALSE/TRUE-Flanke beginnt den Lesevorgang *)
ATTRIB := 2 (* open / read *)
FILENO := 0...99 (* Nummer des Files, aus dem gelesen werden soll *)
SEG := Adresse der Variablen des Sektor-Namens (* beliebig *)
FORMAT := Datenformat
NVAR := Anzahl der Daten im Datensatz
ADRVAR Adresse der ersten Variablen, in die Daten geschrieben werden
Das Lesen ist erfolgreich beendet, wenn der Ausgang DONE:=TRUE und der Ausgang ERR:=FALSE ist. Fehlerhaftes Lesen wird durch ERR:=TRUE und ERRNO<>0 angezeigt.
3. Das Lesen weiterer Datensätze kann nach der jeweiligen Fertigmeldung (DONE=TRUE) mit den
nachfolgenden Einstellungen und einer FALSE/TRUE-Flanke am Eingang EN gestartet werden:
EN := TRUE (* FALSE/TRUE-Flanke beginnt den Lesevorgang *)
ATTRIB := 3 (* continue read *)
FILENO := 0...99 (* Nummer des Files, aus dem gelesen werden soll *)
SEG := Adresse der Variablen des Sektor-Namens (* beliebig *)
FORMAT := Datenformat
NVAR := Anzahl der Daten im Datensatz
ADRVAR := Adresse der ersten Variablen, in die Daten geschrieben werden
Wird beim Lesen ein unerwarteter Sektor-Name oder das Fileende (EOF) gefunden, so wird eine entsprechende Fehlermeldung generiert.
4. Das Lesen eines weiteren Datensatzes mit anschließendem Schließen des Files kann erreicht
werden durch Aufruf von SD_READ nach der Fertigmeldung (DONE=TRUE) mit den nachfolgenden Einstellungen und einer FALSE/TRUE-Flanke am Eingang EN:
EN := TRUE (* FALSE/TRUE-Flanke beginnt den Lesevorgang *)
ATTRIB := 4 (* read / close *)
FILENO := 0...99 (* Nummer des Files, aus dem gelesen werden soll *)
SEG := Adresse der Variablen des Sektor-Namens (* beliebig *)
FORMAT := Datenformat
NVAR := Anzahl der Daten im Datensatz
ADRVAR := Adresse der ersten Variablen, in die Daten geschrieben werden
Wird beim Lesen ein unerwarteter Sektor-Name oder das Fileende (EOF) gefunden, so wird eine entsprechende Fehlermeldung generiert.
5. Das Schliessen des Files kann erreicht werden durch Aufruf von SD_READ nach der
Fertigmeldung (DONE=TRUE) mit den nachfolgenden Einstellungen und einer FALSE/TRUE-Flanke am Eingang EN:
EN := TRUE (* FALSE/TRUE-Flanke beginnt das Schliessen des Files *)
ATTRIB := 4 (* close *)
FILENO := 0...99 (* Nummer des Files, aus dem gelesen werden soll *)
SEG := Adresse der Variablen des Sektor-Namens (* beliebig *)
FORMAT := Datenformat
NVAR := Anzahl der Daten im Datensatz (* beliebig )
ADRVAR := Adresse der ersten Variablen (* beliebig *)
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 78 CPUs AC500 / Stand: 08.2005
6.4.7 Laden von Anwenderdaten von der SD-Karte Datenfile mit Sektoren
Zum Lesen von Anwenderdaten aus einem Datenfile mit Sektoren von der SD-Karte in die SPS sind folgende Schritte auszuführen:
1. Stecken der SD-Karte
2. Suchen eines Sektor-Namens und Lesen eines Datensatzes durch Aufruf des Bausteines SD_READ mit den Einstellungen:
EN := TRUE (* FALSE/TRUE-Flanke beginnt den Lesevorgang *)
ATTRIB := 1 (* open / seek / read *)
FILENO := 0...99 (* Nummer des Files, aus dem gelesen werden soll *)
SEG := Adresse der Variablen des Sektor-Namens
FORMAT := Datenformat
NVAR := Anzahl der Daten im Datensatz
ADRVAR Adresse der ersten Variablen, in die Daten geschrieben werden
Das Lesen ist erfolgreich beendet, wenn der Ausgang DONE:=TRUE und der Ausgang ERR:=FALSE ist. Fehlerhaftes Suchen bzw. Lesen wird durch ERR:=TRUE und ERRNO<>0 angezeigt.
3. Das Lesen weiterer Datensätze kann nach der jeweiligen Fertigmeldung (DONE=TRUE) mit den
nachfolgenden Einstellungen und einer FALSE/TRUE-Flanke am Eingang EN gestartet werden:
EN := TRUE (* FALSE/TRUE-Flanke beginnt den Lesevorgang *)
ATTRIB := 3 (* continue read *)
FILENO := 0...99 (* Nummer des Files, aus dem gelesen werden soll *)
SEG := Adresse der Variablen des Sektor-Namens (* beliebig *)
FORMAT := Datenformat
NVAR := Anzahl der Daten im Datensatz
ADRVAR := Adresse der ersten Variablen, in die Daten geschrieben werden
Wird beim Lesen ein unerwarteter Sektor-Name oder das Fileende (EOF) gefunden, so wird eine entsprechende Fehlermeldung generiert.
4. Zum Lesen weiterer Sektoren / Datensätze muss das File geschlossen werden. Anschließend
sind die Punkte 2 und 3 auszuführen.
5. Das Lesen eines weiteren Datensatzes mit anschließendem Schließen des Files kann erreicht werden durch Aufruf von SD_READ nach der Fertigmeldung (DONE=TRUE) mit den nachfolgenden Einstellungen und einer FALSE/TRUE-Flanke am Eingang EN:
EN := TRUE (* FALSE/TRUE-Flanke beginnt den Lesevorgang *)
ATTRIB := 4 (* read / close *)
FILENO := 0...99 (* Nummer des Files, aus dem gelesen werden soll *)
SEG := Adresse der Variablen des Sektor-Namens
FORMAT := Datenformat
NVAR := Anzahl der Daten im Datensatz
ADRVAR Adresse der ersten Variablen, in die Daten geschrieben werden
Wird beim Lesen ein unerwarteter Sektor-Name oder das Fileende (EOF) gefunden, so wird eine entsprechende Fehlermeldung generiert.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 79 CPUs AC500 / Stand: 08.2005
6. Das Schliessen des Files kann erreicht werden durch Aufruf von SD_READ nach der Fertigmeldung (DONE=TRUE) mit den nachfolgenden Einstellungen und einer FALSE/TRUE-Flanke am Eingang EN:
EN := TRUE (* FALSE/TRUE-Flanke beginnt das Schliessen des Files *)
ATTRIB := 4 (* close *)
FILENO := 0...99 (* Nummer des Files, aus dem gelesen werden soll *)
SEG := Adresse der Variablen des Sektor-Namens
FORMAT := Datenformat
NVAR := Anzahl der Daten im Datensatz (* beliebig )
ADRVAR := Adresse der ersten Variablen (* beliebig *)
6.5 Speichern und Laden von remanenten Daten auf SD-Karte
Die remanenten Variablen (RETAIN-Variablen), deklariert mit VAR_RETAIN .. END_VAR bzw. VAR_GLOBAL RETAIN .. END_VAR, werden bei einem Download neu initialisiert. Sollen die RETAIN-Variablen auch nach einem Download ihre Werte behalten, so müssen sie vor dem Download gesichert und nach dem Download wieder geladen werden.
Um dies zu ermöglichen, gibt es die PLC-Browser-Kommandos "saveretain" und "restoreretain". Die RETAIN-Variablen werden mit dem Kommando "saveretain" als File RETAIN.BIN und ADRDAT.BIN auf der SD-Karte abgelegt.
Entsprechend dem CPU-Typ werden die Files in folgendem Verzeichnis auf der SD-Karte abgelegt:
AC500-CPU Verzeichnis Files (Dateien)
PM571 ..\UserData\PM571\RetDat RETAIN.BIN, ADRDAT.BIN
PM581 ..\UserData\PM581\RetDat RETAIN.BIN, ADRDAT.BIN
PM591 ..\UserData\PM591\RetDat RETAIN.BIN, ADRDAT.BIN
6.6 Firmwareupdate mittels SD-Karte
6.6.1 Speichern der Firmware auf SD-Karte
Das Speichern der Firmware auf der SD-Karte erfolgt mit einem handelsüblichem PC-Kartenleser mit SD-Karten-Interface.
Dabei wird wie folgt vorgegangen:
1. Initialisieren der SD-Karte, d. h. Anlegen der für die SPS notwendigen Filestruktur, z.B. durch Stecken einer neuen SD-Karte in die Steuerung AC500 (siehe auch "Initialisieren der SD-Karte mit der AC500")
2. Kopieren des Firmwarefiles in das entsprechende Verzeichnis:
AC500-CPU Verzeichnis File
PM571 ..\Firmware\PM571 MICR.GZA
PM581 ..\Firmware\PM581 MINI.GZA
PM591 ..\Firmware\PM591 MIDI.GZA
3. Editieren der Kommandodatei SDCARD.INI im Root-Verzeichnis der SD-Karte: Parameter "FunctionOfCard=2" (oder =3 für Firmware- und Anwenderprogrammupdate) Parameter "CPUPM5x1=1
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 80 CPUs AC500 / Stand: 08.2005
6.6.2 Firmwareupdate der AC500 CPU mit SD-Karte
Das Firmwareupdate der AC500-CPU mit SD-Karte erfolgt in folgenden Schritten:
1. Vorbereitung der SD-Karte entsprechend dem Abschnitt "Speichern der Firmware auf SD-Karte".
2. Ausschalten der Steuerspannung der SPS
3. Einstecken der SD-Karte
4. Einschalten der Steuerspannung der SPS Beim Booten wird die SD-Karte auf die vorgeschriebene Dateistruktur geprüft. Ist diese vorhanden, so wird die Datei SDCARD.INI gelesen. Ist im Parameter "FunctionOfCard" das Bit 1 (=2) gesetzt und ist der Parameter CPUPM5x1=1, so wird entsprechend dem CPU-Typ im Verzeichnis Firmware\PM5x1 das File MI??xxyy.S19 gesucht und in die SPS geladen, geprüft und geflasht. Die einzelnen Phasen werden wie folgt signalisiert:
Vorgang Signalisierung Anmerkung
Lesen der Firmware Schnelles Blinken RUN-LED Wird während des Lesens die SD-Karte gezogen, so bleibt die vorherige Firmwareversion erhalten.
Flashen der Firmware Schnelles Blinken der RUN- und der ERR-LED
Achtung: Wird während des Flashen die Steuerspannung ausgeschaltet, so wird die Firmware zerstört !
Firmwareupdate erfolgreich abgeschlossen
Langsames Blinken der RUN-LED (ca. 1 Hz)
Firmwareupdate fehlerhaft Langsames Blinken der RUN- und ERR-LED (ca. 1 Hz)
Hinweis: Ist im File SDCARD.INI der Parameter "FunctionOfCard=3" eingestellt (Firmwareupdate / Lade Anwenderprogramm), so wird zuerst die Firmware und danach das Anwenderprogramm von der SD-Karte geladen und in den jeweiligen Flash gespeichert.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 81 CPUs AC500 / Stand: 08.2005
6.7 Fehlermeldungen der SD-Karte
Die nachfolgende Tabelle enthält eine Übersicht über die Fehler der SD-Karte.
Fehler- Nummer
Klasse Beschreibung Auswirkung Abhilfe
E4 Warnung
Falsche Verzeichnisstruktur beim Lesen des Anwenderprogrammes
Anwenderprogramm wird nicht geladen
Verzeichnisstruktur mit PC korrigieren
152369165 E4 Warnung
Schreibfehler oder SD-Karte ist voll
Daten werden nicht geschrieben
SD-Karte mit PC überprüfen, ggf. einige Dateien löschen bzw. auf PC auslagern oder andere SD-Karte einsetzen
152369164 E4 Warnung
SD-Karte kann nicht gelesen werden
SD-Karte mit PC überprüfen
152369233 E4 Warnung
Schreibschutz: SD-Karte kann nicht initialisiert werden
Verzeichnisstruktur kann nicht erzeugt werden.
Schreibschutz entfernen
152369297 E4 Warnung
Schreibschutz: Fehler beim Schreiben des SPS-Programmes auf die SD-Karte
Daten werden nicht geschrieben
Schreibschutz entfernen
152369361 E4 Warnung
Schreibschutz: Fehler beim Schreiben der SPS-Firmware auf die SD-Karte
Daten werden nicht geschrieben
Schreibschutz entfernen
152369425 E4 Warnung
Schreibschutz: Fehler beim Schreiben der gepufferten Variablen (RETAIN.BIN) auf die SD-Karte
Daten werden nicht geschrieben
Schreibschutz entfernen
152369489 E4 Warnung
Schreibschutz: Fehler beim Schreiben der Kartenfunktion auf die SD-Karte
Daten werden nicht geschrieben
Schreibschutz entfernen
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 82 CPUs AC500 / Stand: 08.2005
7 Datenablage im Flash
7.1 Die Bausteine zur Datenablage
Für die Ablage von Anwenderdaten im Flash stehen in der Bibliothek “SysInt_AC500_V10.lib“ im Ordner “Data storage“ / “Flash“ folgende Bausteine zur Verfügung:
Baustein Funktion
FLASH_DEL Löschen eines Datensegmentes im Flash
FLASH_READ Lesen eines Datensatzes aus dem Flash
FLASH_WRITE Schreiben eines Datensatzes in das Flash
7.2 Beispielprogramm zur Datenablage
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 83 CPUs AC500 / Stand: 08.2005
8 Echtzeituhr und Batterie in AC500
8.1 Allgemeine Hinweise zur Echtzeituhr in AC500
Die in die AC500 integrierte Echtzeituhr (RTC) arbeitet wie eine PC-Uhr und speichert Datum und Uhrzeit im DT-Format (DATE AND TIME FORMAT) in einem DWORD, d. h. in Sekunden seit dem 01. Januar 1970 um 00:00 Uhr.
Die Echtzeituhr läuft bei gesteckter, voller Batterie auch bei ausgeschalteter Steuerspannung weiter.
Ist keine Batterie gesteckt oder ist die Batterie leer, so beginnt die Echtzeituhr mit dem Wert 0 , d. h. mit 1970-01-01, 00:00:00.
Beim Einschalten der Steuerspannung wird die Systemuhr des Betriebssystems mit dem Wert der Echtzeituhr abgeglichen.
8.2 Stellen und Anzeigen der Echtzeituhr
8.2.1 Stellen und Anzeigen der Echtzeituhr im PLC-Browser
Mit den PLC-Browser-Kommandos date und time kann die Echtzeituhr bedient werden.
Bei Eingabe von date <ENTER> bzw. time <ENTER> werden jeweils Datum und Uhrzeit der Echtzeituhr angezeigt.
Mit dem Kommando: date jjjj-mm-tt<ENTER> (Jahr-Monat-Tag) wird das Datum gestellt.
Mit dem Kommando: time hh-mm-ss<ENTER> (Stunde-Minute-Sekunde) wird die Uhrzeit gestellt.
Beispiel: Die Echtzeituhr soll auf den 22. Februar 2005 um 16:50 Uhr gestellt werden.
Eingabe des Datums: Date 2005-02-22<ENTER>
Anzeige: date 2005-02-22 Clock set to 2005-02-22 08:01:07 (Anmerkung: die Uhrzeit bleibt unverändert )
Eingabe der Uhrzeit: time 16:50<ENTER> (Eingabe der Sekunden ist optional)
Anzeige: time 16:50 Clock set to 2005-02-22 16:50:00
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 84 CPUs AC500 / Stand: 08.2005
8.2.2 Stellen und Anzeigen der Echtzeituhr im Anwenderprogramm
Zum Stellen und Auswerten der Echtzeituhr (RTC) im Anwenderprogramm gibt es in der Systembibliothek SysExt_AC500_Vxx.LIB im Ordner "Realtime clock" folgende Bausteine:
Baustein Funktion
CLOCK Setzen und Anzeigen der Echtzeituhr mit den Einzelwerten für Jahr, Monat, Tag, Stunde, Minute und Sekunde. Zusätzlich wird der Wochentag ausgegeben (Mo=0, Di=1, Mi=2, Do=3, Fr=4, Sa=5, So=6).
CLOCK_DT Setzen und Anzeigen der Echtzeituhr im DT-Format, z. B.: DT#2005-02-17-17:15:00
Die Bausteine CLOCK und CLOCK_DT sind in der Dokumentation der Systembibliothek SysExt_AC500_Vxx.LIB beschrieben.
8.3 Die Batterie der AC500
Die Batterie der AC500 dient zum Puffern folgender Daten bei "Steuerspannung aus":
• remanente Variablen im SDRAM (VAR_RETAIN..END_VAR) • File "Persistent.dat" im SDRAM (VAR_RETAIN PERSISTENT .. END_VAR) • Datum und Uhrzeit der Echtzeituhr
Ist keine Batterie gesteckt oder ist die Batterie leer, so wird eine Warnung (E4) ausgelöst und durch die LED "ERR" signalisiert.
Wird die Batterie in der Anwendung nicht benötigt (und damit keine Batterie gesteckt), so wird bei jedem Einschalten der Steuerung eine Warnung ausgelöst und die Fehler-LED leuchtet. Um die Anzeige des Batteriefehlers zu verhindern, gibt es in der Steuerungskonfiguration bei den "CPU parameters" den Parameter "Check battery". Die Standardeinstellung ist "On", d. h. die Batterie wird überprüft. Wird der Parameter auf "Off" gesetzt, so wird beim Zuschalten der Steuerspannung zwar die Batterie geprüft und ein entsprechender Fehler generiert. Dieser wird aber automatisch quittiert und die Fehler-LED geht nicht an (falls kein weiterer Fehler vorliegt).
Der Status der Batterie kann im PLC-Browser mit dem Kommando "batt" geprüft werden. Es erfolgt eine Anzeige 0..100%.
Im Anwenderprogramm kann der Batteriestatus mit der Funktion "BATT" der Systembibliothek SysExt_AC500_Vxx.LIB im Ordner "Battery" geprüft werden.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 85 CPUs AC500 / Stand: 08.2005
9 Die schnellen Zähler in AC500
9.1 Aktivierung der schnellen Zähler am I/O-Bus
Die Funktion "Schneller Zähler" ist in den S500-E/A-Modulen noch nicht verfügbar.
Die digitalen E/A-Geräte am I/O-Bus haben pro Modul zwei schnelle Zähler implementiert. Besitzt das E/A-Gerät keine digitalen Ausgänge, sind die entsprechenden Zählermodi nicht gültig. Bei Fehlparametrierung wird eine Diagnosemeldung abgesetzt.
Die Aktivierung der schnellen Zähler erfolgt durch Einstellen des Zählermodus im Parameter "Fast counter" in der Steuerungskonfiguration für das jeweilige E/A-Gerät (siehe auch Kapitel Steuerungskonfiguration / I/O-Bus).
Die Steuerung der/des schnellen Zählers erfolgt über die E/A-Daten im Steuerbyte des Submodules "Fast counter".
9.2 Zählmodi der schnellen Zähler
9.3 Bedienung der schnellen Zähler
9.4 Beispiel für einen schnellen Zähler
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 86 CPUs AC500 / Stand: 08.2005
10 Programmierung und Test
10.1 Die Programmierzugänge der AC500 für den Control Builder
In den AC500-Steuerungen gibt es folgende Schnittstellen, um mit der Außenwelt zu kommunizieren:
Nr. Bezeichnung Schnittstelle Programmierzugang
0 CPU Eigene CPU CPU für Online-Betrieb
1 COM1 Serielle Schnittstelle COM1 ja
2 COM2 Serielle Schnittstelle COM2 ja
3 FBP FBP-Slave-Schnittstelle nein
4 I/O-Bus I/O-Bus nein
1x Linie 0 Interner Koppler mit Kanal 0 ≤ x ≤ 9 abhängig vom Typ
2x Linie 1 Koppler auf Steckplatz 1 mit Kanal 0 ≤ x ≤ 19 abhängig vom Typ
4x Linie 2 Koppler auf Steckplatz 2 mit Kanal 0 ≤ x ≤ 19 abhängig vom Typ
6x Linie 3 Koppler auf Steckplatz 3 mit Kanal 0 ≤ x ≤ 19 abhängig vom Typ
8x Linie 4 Koppler auf Steckplatz 4 mit Kanal 0 ≤ x ≤ 19 abhängig vom Typ
DC532DC532CM577CM572CM577CM572 PM581
0
1 2
31x
2x4x6x8x
4
Kommunikationstreiber:
Für die Programmierung der AC500 stehen folgende Kommunikationstreiber zur Verfügung:
Serial (RS232) Treiber für die serielle Schnittstellen
ABB RS232 Route AC Treiber für die seriellen Schnittstellen mit Routing
TCP/IP Ethernet-Treiber
ABB Tcp/Ip Level 2 AC Ethernet-Treiber mit Routing
ABB Arcnet Route fast AC Treiber für Programmierung über ARCNET mit Routing und einstellbarer Blockgröße
Serial (Modem) Modem-Treiber für Modem an serieller Schnittstelle des PC und SPS
ABB Modem Route AC Serieller Modem-Treiber mit Routing
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 87 CPUs AC500 / Stand: 08.2005
Hinweis: Routing ist ab Control Builder und SPS-Firmware V2.x verfügbar.
Gateway-Einstellung:
Wählen Sie im Control Builder unter "Online/Kommunikationsparameter/Gateway" die Einstellung "Lokal" (siehe auch 3S-Bedienungsanleitung / Die Komponenten im Einzelnen / Online/Kommunikationsparameter bei Gateway-Einsatz):
GW_lokal_D.gif
Für den Ethernet-Treiber "ABB Tcp/Ip Level 2 AC" gilt folgende Gateway-Einstellung:
Verbindung: Tcp/Ip Adresse: localhost Port: 1210
Einstellung der Kommunikationsparameter:
Die Einstellung der Kommunikationsparameter und Adressdaten erfolgt im Control Builder durch Auswahl des entsprechenden Treibers und Eintragen der Daten in die entsprechende Kommunikationsparameter-Maske im Menüpunkt "Online/Kommunikationsparameter".
Nachfolgend werden für die oben genannten Treiber die Einstellungen beschrieben.
10.2 Programmierung über die seriellen Schnittstellen
Im Kapitel "Steuerungskonfiguration" sind die Betriebsarten der seriellen Schnittstellen COM1 und COM2 beschrieben. Standardmäßig sind beide seriellen Schnittstellen COM1 und COM2 als Programmierschnittstelle eingestellt.
In der Installationsbeschreibung finden Sie Hinweise über die Einstellung der seriellen Schnittstellen für die unterschiedlichen PC-Betriebssysteme.
Die Verbindung PC <- -> SPS erfolgt über das Systemkabel TK501.
Die Einstellung der Schnittstellenparameter ist fest und kann nicht verändert werden.
Übertragungsrate: 19200 Baud Paritätsbit: keines Datenbits: 8 Stoppbits: 1 Synchronisation: ohne Motorola Byte order: yes
Für die Programmierung über die seriellen Schnittstellen stehen folgende Treiber zur Verfügung:
- Serial (RS232) - ABB RS232 Route AC
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 88 CPUs AC500 / Stand: 08.2005
10.2.1 Serieller Treiber "Serial (RS232)"
Der serielle Treiber "Serial (RS232)" bietet folgende Möglichkeiten:
o Online-Betrieb der SPS mit dem Control Builder o Online-Betrieb der SPS mit dem Feldbuskonfigurator SYCON.net o OPC-Anbindung mit OPC-Server ab V2.xx o Parallelbetrieb von Control Builder und SYCON.net o Parallelbetrieb von Control Builder und OPC-Server
DC532DC532CM577CM572CM577CM572 PM581
0
1 2
3 1x
2x4x6x8x
4
COM1 oder COM2 COMx
Um einen neuen Gateway-Kanal für den seriellen Treiber anzulegen, wählen Sie "Online/Kommunikationsparameter/Neu", tragen einen Namen für den Kanal ein (z. B. USB->COM4) und wählen den Treiber "Serial RS232". Wählen Sie durch Doppelklick auf den entspechenden Parameter die notwendigen Werte für:
Port: COM-Port im PC Baudrate: 19200 Baud Motorola byteorder: Yes
GW_USB_COM4.gif
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 89 CPUs AC500 / Stand: 08.2005
10.2.2 Serieller Treiber "ABB RS232 Route AC"
Ab V2.x gibt es zusätzlich zum seriellen Treiber den seriellen Routing-Treiber "ABB RS232 Route AC". Dieser Treiber bietet folgende Möglichkeiten:
o Online-Betrieb der SPS mit dem Control Builder o Online-Betrieb der SPS mit dem Feldbuskonfigurator SYCON.net o OPC-Anbindung mit OPC-Server ab V2.xx o Online-Betrieb mit über Ethernet oder ARCNET vernetzten SPSen über die serielle Schnittstelle
(ab Control Builder V2.x) o Parallelbetrieb von Control Builder und SYCON.net o Parallelbetrieb von Control Builder und OPC-Server o Online-Betrieb der AC31-Steuerungen der Serie 90 (07KT9x)
DC532DC532CM577CM572CM577CM572 PM581
0
1 2
3 1x
2x4x6x8x
4
COM1 oder COM2 COMx
DC532DC532CM577CM572CM577CM572 PM581
0
1 2
3 1x
2x4x6x8x
4
Ethernet
Um einen neuen Gateway-Kanal für den seriellen Routing-Treiber anzulegen, wählen Sie "Online/Kommunikationsparameter/Neu", tragen einen Namen für den Kanal ein (z. B. ABB USB->COM2 Route ARC 2) und wählen den Treiber "ABB RS232 Route AC".
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 90 CPUs AC500 / Stand: 08.2005
GW_neu_COM1_Route_ARC_2_D.gif
Für den seriellen Routingtreiber "ABB RS232 Route AC" gilt folgende Kommunikationsparameter-Maske:
GW_KommParam_COM1_Route_ARC_2_D.gif
Parameter Mögliche Werte Bedeutung
Port COMx (PC-abhängig) serielle Schnittstelle des PCs
Baudrate 19200 immer 19200 Baud
Parity No immer keine Parität
Stop bits 1 immer ein Stopp-Bit
Routing levels 0...2 Routingstufen (0 = keine)
Coupler (Level 1) 0, Line 0...Line 4 Koppler für Stufe 1
Channel (Level 1) 0...19 Kanal auf Koppler Stufe 1
Address (Level 1) 0, 0, 0, 0, 0 (max. 5 Bytes) Adresse im Zielkoppler Stufe 1
Coupler (Level 2) 0, Line 0...Line 4 Koppler für Stufe 2
Channel (Level 2) 0...19 Kanal auf Koppler Stufe 2
Address (Level 2) 0, 0, 0, 0, 0 (max. 5 Bytes) Adresse im Zielkoppler Stufe 2
Motorola Byte order yes Auswahl Motorola- oder Intel-Byteorder
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 91 CPUs AC500 / Stand: 08.2005
Soll mit dem seriellen Routing-Treiber direkt auf die angeschlossene CPU zugegriffen werden, so sind alle Routingparameter (ab Routing levels) mit 0 zu belegen.
Hinweis: Routing ist ab Control Builder und SPS-Firmware V2.x verfügbar.
Für die Routingstufen gilt:
Routing levels = 0 kein Routing (kein Eintrag in die Parameter für Level1 und Level 2) Routing levels = 1 einstufiges Routing (Eintrag der Parameter für Level 1) Routing levels = 2 zweistufiges Routing (Eintrag der Parameter für Level 1 und Level 2)
Beispiel:
DC532DC532CM577CM572CM577CM572 PM581
0
1 2
3 1x
2x4x6x8x
4
COM1 oder COM2 COMx
DC532DC532CM577CM572CM577CM572 PM581
0
1 2
3 1x
2x4x6x8x
4
IP: 10.49.88.203
Ethernet
IP: 10.49.88.205
Es soll SPS 2 = IP: 10.49.88.205 über SPS 1/ Externer Ethernet-Koppler auf Steckplatz 1 = IP: 10.49.88.203 programmiert werden. Der PC/COM2 ist mit der seriellen Schnittstelle COM1 der SPS 1 verbunden:
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 92 CPUs AC500 / Stand: 08.2005
Parameter Wert Anmerkung
Port COM2 COM2 des PCs
Baudrate 19200
Parity No
Stop bits 1
Routing levels 1 einstufiges Routen
Coupler (Level 1) Line 1 Koppler auf Steckplatz 1
Channel (Level 1) 0 Kanal 1
Address (Level 1) 10, 49, 88, 205, 0 Teilnehmeradresse Ziel-SPS (Node 2)
Coupler (Level 2) 0 keine 2. Stufe
Channel (Level 2) 0
Address (Level 2) 0, 0, 0, 0, 0
Motorola Byteorder yes Motorola Byteorder
10.3 Programmierung über ARCNET
Hinweis: Der ARCNET-Koppler ist ab Control Builder und SPS-Firmware V2.x verfügbar.
Die Programmierung über ARCNET ist nur mit einem PC mit eingebauter ARCNET-Karte möglich. Die Installation der Karte(n) und Treiber ist im Kapitel Installation / ARCNET-Treiber beschrieben.
Der PC ist bei der Programmierung über ARCNET ein Teilnehmer im ARCNET-Netz.
DC532DC532CM577CM572CM577CM572 PM581
0
1 2
3 1x
2x4x6x8x
4
ARCNET
Die Einstellung der "Sender node", d. h. der ARCNET-Teilnehmeradresse des PC erfolgt als Eintrag in die Datei:
Arcnet_xx.ini mit dem Parameter NodeID1 = 254.
Die Datei Arcnet_xx.ini liegt im Betriebssystem-Verzeichnis des PC (z. B. C:\WINNT für Win2000).
Die Datei Arcnet_xx.ini hat für einen PC mit einer ARCNET-Karte z. B. folgende Einträge:
[ARCNET] DriverAccessName1=FARC ;Default = Farc NodeID1 = 254 ; Default = 254
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 93 CPUs AC500 / Stand: 08.2005
;DriverAccessName2=FARC1 ; Default = Farc1 ;NodeID2 = 253 ; Default = 253
;DriverAccessName3=FARC11 ; Default = Farc11 ;NodeID3 = 252 ; Default = 252
;DriverAccessName4=FARC111 ; Default = Farc111 ;NodeID4 = 251 ; Default = 251
10.3.1 ARCNET-Treiber "ABB Arcnet AC"
Ab LZS V2.x der SPS und Control Builder V2.x steht der Treiber "ABB Arcnet AC" zur Verfügung. Er bietet folgende Möglichkeiten:
o Online-Betrieb der SPS mit dem Control Builder o Online-Betrieb der SPS mit dem SYCON.net o OPC-Anbindung mit OPC-Server ab V2.xx o Parallelbetrieb von Control Builder und SYCON.net o Parallelbetrieb von Control Builder und OPC-Server o Parallebetrieb von Instanzen des Control Builders mit mehreren SPSen o Online-Betrieb der AC31-Steuerungen der Serie 90 (07KT9x)
Um einen neuen Gateway-Kanal für den ARCNET-Routing-Treiber anzulegen, wählen Sie "Online/Kommunikationsparameter/Neu", tragen einen Namen für den Kanal ein (z. B. ARC AC 254 -> 2) und wählen den Treiber "ABB Arcnet AC".
ARCNET_Treiber0.gif
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 94 CPUs AC500 / Stand: 08.2005
Für den ARCNET-Routing-Treiber "ABB Arcnet AC" gilt folgende Kommunikationsparameter-Maske:
ARCNET_Treiber1.gif
Parameter Mögliche Werete Bedeutung
Driver instance FARC DrinerAccessName aus Arcnet_xx.ini
Target node 1...255 ARCNET-Teilnehmeradresse der SPS
Receive Timeout >= 2000 Timeout [ms] für Antwort
Routing levels 0...2 Routing-Stufen (0 = keine)
Coupler (Level 1) 0, Line 0...Line 4 Koppler für Stufe 1
Channel (Level 1) 0...19 Kanal auf Koppler Stufe 1
Address (Level 1) 0, 0, 0, 0, 0 (max. 5 Bytes) Adresse im Zielkoppler Stufe 1
Coupler (Level 2) 0, Line 0...Line 4 Koppler für Stufe 2
Channel (Level 2) 0...19 Kanal auf Koppler Stufe 2
Address (Level 2) 0, 0, 0, 0, 0 (max. 5 Bytes) Adresse im Zielkoppler Stufe 2
Block size 128...226 / 246...480 Anzahl der Nutzdaten
Motorola Byteorder yes/no Motorola- oder Intel-Byteorder
Soll mit dem ARCNET-Routing-Treiber direkt auf die angeschlossene CPU zugegriffen werden, so sind alle Routingparameter (ab Routing levels) mit 0 zu belegen.
Mit dem Parameter "Block size" (128...480) wird die Anzahl der Nutzdaten eines Blockes eingestellt. Standardmäßig ist 480 eingetragen, was der maximalen Blockgröße entspricht. Verboten sind die Werte 227 .. 245.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 95 CPUs AC500 / Stand: 08.2005
Der Parameter "Motorola byteorder" ist für die AC500-Steuerungen auf "Yes" einzustellen.
ARCNET_Treiber1.gif
10.4 Programmierung über Ethernet (TCP/IP)
Die Programmierung über Ethernet ist nur mit einem PC mit eingebauter Ethernet-Karte und installiertem Netzwerk möglich. Die Programmierung kann sowohl über den internen als auch über einen externen Ethernet-Koppler erfolgen.
Programmierung über den internen Ethernet-Koppler:
DC532DC532CM577CM572CM577CM572 PM581
0
1 2
3 1x
2x4x6x8x
4
Ethernet
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 96 CPUs AC500 / Stand: 08.2005
Programmierung über den externen Ethernet-Koppler (im Beispiel Koppler auf Steckplatz 1):
DC532DC532CM577CM572CM577CM572 PM581
0
1 2
3 1x
2x4x6x8x
4
Ethernet
Hinweis: Im Abschnitt "Systemtechnik"=>"Systemtechnik interne Koppler"=>"Der Ethernet-Koppler" finden Sie Hinweise zur Einstellung der IP-Adressen.
Gateway-Einstellung für Ethernet:
Wählen Sie im Control Builder unter "Online/Kommunikationsparameter/Gateway" die Einstellung "Tcp/Ip" (siehe CoDeSys / Kapitel - Die Komponenten im Einzelnen / Online/Kommunikationsparameter bei Gateway-Einsatz):
GW_localhost_D.gif
10.4.1 Ethernet-Treiber "Tcp/Ip"
Zur Programmierung der AC500-Steuerungen mit internem und/oder externem Ethernet-Koppler über Ethernet steht der Treiber "Tcp/Ip" zur Verfügung. Dieser Treiber bietet folgende Möglichkeiten:
o Online-Betrieb der SPS mit dem Control Builder o Online-Betrieb der SPS mit dem SYCON.net o OPC-Anbindung mit OPC-Server ab V2.xx o Parallelbetrieb von Control Builder und SYCON.net o Parallelbetrieb von Control Builder und OPC-Server o Parallebetrieb von Instanzen des Control Builders mit mehreren SPSen
Um einen neuen Gateway-Kanal für die Ethernet-Schnittstelle anzulegen, wählen Sie "Online/Kommunikationsparameter/Neu", tragen einen Namen für den Kanal ein (z. B. ETH 169.254.145.200) und wählen den Treiber "Tcp/Ip".
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 97 CPUs AC500 / Stand: 08.2005
GW_TCP_IP_Konfig.gif
Für den Ethernet-Treiber "ABB Tcp/Ip Level 2 AC" gilt folgende Kommunikationsparameter-Maske:
GW_TCP_IP_KonfigParam.gif
10.4.2 Ethernet-Treiber "ABB Tcp/Ip Level 2 AC"
Zur Programmierung der AC500-Steuerungen mit internem und/oder externem Ethernet-Koppler über Ethernet steht ab Version V2.x der Treiber "ABB Tcp/Ip Level 2 AC" zur Verfügung. Dieser Treiber bietet folgende Möglichkeiten:
o Online-Betrieb der SPS mit dem Control Builder o Online-Betrieb der SPS mit dem SYCON.net o OPC-Anbindung mit OPC-Server ab V2.xx o Parallelbetrieb von Control Builder und SYCON.net o Parallelbetrieb von Control Builder und OPC-Server o Parallebetrieb von Instanzen des Control Builders mit mehreren SPSen o Online-Betrieb der über ARCNET vernetzten SPSen bei einer SPS mit Ethernet- und ARCNET-
Koppler (Routing Ethernet -> ARCNET) ab V2.x o Online-Betrieb der AC31 - Steuerungen der Serie 90 (07KT9x)
Um einen neuen Gateway-Kanal für die Ethernet-Schnittstelle anzulegen, wählen Sie "Online/Kommunikationsparameter/Neu", tragen einen Namen für den Kanal ein (z. B. ETH 169.254.145.200) und wählen den Treiber "ABB Tcp/Ip Level 2 AC".
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 98 CPUs AC500 / Stand: 08.2005
Ethernet_Treiber0.gif
Für den Ethernet-Treiber "ABB Tcp/Ip Level 2 AC" gilt folgende Kommunikationsparameter-Maske:
Ethernet_Treiber1.gif
Parameter Mögliche Werte Bedeutung
Address 0.0.0.0 IP-Adresse oder Hostname der SPS
Port 1200
Timeout (ms) >= 2000 Timeout [ms] für Antwort
Routing levels 0...2 Routingstufen (0 = keine)
Coupler (Level 1) 0, Line 0...Line 4 Koppler für Stufe 1
Channel (Level 1) 0...19 Kanal auf Koppler Stufe 1
Address (Level 1) 0, 0, 0, 0, 0 (max. 5 Bytes) Adresse im Zielkoppler Stufe 1
Coupler (Level 2) 0, Line 0...Line 4 Koppler für Stufe 2
Channel (Level 2) 0...19 Kanal auf Koppler Stufe 2
Address (Level 2) 0, 0, 0, 0, 0 (max. 5 Bytes) Adresse im Zielkoppler Stufe 2
Block size 1430 (128...1430) Bytes pro Telegramm (verboten 227..245)
Motorola byteorder Yes (Yes/No) Motorola- oder Intel-Byteorder (=Yes bei AC500)
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 99 CPUs AC500 / Stand: 08.2005
Soll mit dem Ethernet-Treiber direkt auf die SPS zugegriffen werden, so sind alle Routingparameter (ab Routing levels) mit 0 zu belegen.
Unter "Address" wird die IP-Adresse oder der Hostname der SPS eingetragen. Um Hostnamen verwenden zu können, sind diese in die Datei "Hosts" mit dem Editor einzutragen. Die Datei "Hosts" finden Sie z. B. unter Win2000 unter "WINNT\System32\drivers\etc".
GW_KommParam_TcpIp-Hostedit.gif
In der Kommunikationsparameter-Maske wird dann anstelle der IP-Adresse der symbolische Name eingetragen, im Beispiel "SPS_2" anstelle "169.254.34.38":
GW_KommParam_TcpIp_host_D.gif
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 100 CPUs AC500 / Stand: 08.2005
10.4.3 Ethernet-ARCNET-Routing
Hinweis: Routing ist ab Control Builder und SPS-Firmware V2.x verfügbar.
Bei Steuerungen mit Ethernet- und ARCNET-Kopplern ist es möglich, über die Ethernet-Schnittstelle der SPS die über ARCNET vernetzten SPSen zu programmieren.
DC532DC532CM577CM572CM577CM572 PM581
0
1 2
3 1x
2x4x6x8x
4
Ethernet
DC532DC532CM577CM572CM577CM572 PM581
0
1 2
3 1x
2x4x6x8x
4
IP: 10.49.88.205 IP: 10.49.88.200
ARCNET Node: 2
Für jede über ARCNET angeschlossene SPS ist ein Gateway-Kanal einzurichten. Wählen Sie "Online/Kommunikationsparameter/Neu", tragen einen Namen für den Kanal ein (z. B. TcpIp: SPS1:169.29.44.48 -> ARC_2) und wählen den Treiber "ABB Tcp/Ip Level 2 AC".
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 101 CPUs AC500 / Stand: 08.2005
Für das oben dargestellte Beispiel stellen Sie z. B. folgende Kommunikationsparameter ein:
GW_Route_ETH_ARC_Bsp.gif
Parameter Mögliche Werte Bedeutung
Address 10.49.88.205 IP-Adresse der SPS 1
Port 1200
Timeout (ms) 2000 Timeout [ms] für Antwort
Routing levels 1 einstufiges Routen
Coupler (Level 1) Line 0 Koppler für Stufe 1 (intern ARCNET)
Channel (Level 1) 0 Kanal auf Koppler Stufe 1
Address (Level 1) 2, 0, 0, 0, 0 ARCNET Node der Ziel-SPS (Node 2)
Coupler (Level 2) 0 keine Stufe 2
Channel (Level 2) 0
Address (Level 2) 0, 0, 0, 0, 0
Block size 480 Bytes pro Block: 128...1430
Motorola byteorder Yes
Unter "Coupler (Level 1)" ist der Kopplersteckplatz des ARCNET-Kopplers "Line 0" einzutragen, da der ARCNET-Koppler immer der interne Koppler ist.
Der ARCNET-Koppler hat nur einen Kommunikationskanal. Deshalb ist bei "Channel" immer 0 einzutragen.
Für die Teilnehmeradresse (Node) wird beim ARCNET-Koppler 1 Byte benötigt. Es wird die Adresse (Node=2) der Ziel-SPS in das erste Byte der Adressbytes eingetragen.
Bei der Blockgröße (block size) ist standardmäßig 1430 eingetragen. Wenn auf ARCNET geroutet werden soll (und die Ziel-SPS auf "große ARCNET-Pakete" eingestellt ist), kann die Blockgröße auf 480 Bytes erhöht werden. Verboten sind die Werte 227...245.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 102 CPUs AC500 / Stand: 08.2005
11 Kommunikation mit Modbus RTU
11.1 Protokollbeschreibung
Das Modbus-Protokoll wird weltweit eingesetzt. In den AC500-CPUs ist das MODICON Modbus® RTU-Protokoll integriert.
Zahlreiche Automatisierungsgeräte, z. B. SPS-Anlagen, Anzeigen, Frequenzumrichter oder Überwachungssysteme verfügen standardmäßig oder optional über eine Modbus®-RTU Schnittstelle und können aus diesem Grund problemlos mit den AC500-Zentralen kommunizieren.
Modbus® ist ein Master-Slave-Protokoll. Der Master sendet eine Anforderung an den Slave und empfängt die Antwort des Slaves.
Modbus-Master
In der Betriebsart Modbus-Master wird der Telegrammverkehr mit den Slave(s) über den Funktionsbaustein MODMAST abgewickelt. Der Baustein MODMAST sendet über die eingestellte Schnittstelle die Modbus-Anforderungstelegramme an den Slave und empfängt über die Schnittstelle die Modbus-Antworttelegramme des Slaves.
Bei Modbus on TCP/IP wird der Baustein ETH_MODMAST, bei den seriellen Schnittstellen der Baustein COM_MODMAST eingesetzt (ETH_MODMAST befindet sich in der Ethernet_AC500_Vxx.lib und COM_MODMAST in der Modbus_AC500_Vxx.lib).
Die vom Master übertragenen Modbus®-Blöcke enthalten folgende Informationen:
• die Modbus®-Adresse des abgefragten Slave (1 Byte) • den Funktionscode, der die Anforderung des Masters definiert (1 Byte) • die auszutauschenden Daten (N Byte) • den CRC16-Steuercode (2 Byte)
Modbus-Slave
In der Betriebsart Modbus-Slave wird kein Funktionsbaustein für die Modbus-Kommunikation benötigt. Das Senden und Empfangen von Modbus-Telegrammen erfolgt automatisch.
Nur die folgenden Modbus®-Operationscodes werden von den AC500-CPUs verarbeitet:
Funktionscode
DEZ HEX Beschreibung
01 oder 02 01 oder 02 n Bit lesen
03 oder 04 03 oder 04 n Worte lesen
05 05 ein Bit schreiben
06 06 ein Wort schreiben
07 07 schnelles Lesen des Statusbytes der CPU
15 0F n Bit schreiben
16 10 n Worte schreiben
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 103 CPUs AC500 / Stand: 08.2005
Es gelten folgende Längenbeschränkungen für die zu übertragenden Daten:
Funktionscode Max. Länge
DEZ HEX Seriell Modbus on TCP/IP
01 oder 02 01 oder 02 2000 Bit 255 Bit
03 oder 04 03 oder 04 125 Worte / 62 Doppelworte 100 Worte / 50 Doppelworte
05 05 1 Bit 1 Bit
06 06 1 Wort 1 Wort
07 07 8 Bit 8 Bit
15 0F 1968 Bit 255 Bit
16 10 123 Worte / 61 Doppelworte 100 Worte / 50 Doppelworte
11.2 Modbus RTU mit den seriellen Schnittstellen COM1 und COM2
11.2.1 Modbus-Betriebsarten der seriellen Schnittstellen
Es können beide seriellen Schnittstellen der AC500-CPUs gleichzeitig als Modbus-Schnittstellen betrieben werden. Beide Schnittstellen können sowohl Modbus-Master als auch Modbus-Slave sein.
Die Modbus-Betriebsart und die Schnittstellenparameter einer Schnittstelle werden bei der Steuerungskonfiguration eingestellt (Steuerungskonfiguration/Modbus).
Beschreibung des Modbus® -Protokolls:
Unterstützter Standard EIA RS-232 / RS-485
Anzahl der Anschlussstellen 1 Master max. 1 Slave mit RS-232-Schnittstelle max. 31 Slaves mit RS-485
Protokoll Modbus® (Master/Slave)
Datenübertragungssteuerung CRC16
Datenübertragungsgeschwindigkeit bis zu 19200 Baud
Zeichenkodierung 1 Startbit 8 Datenbits 1 Paritätsbit, gerade oder ungerade (optional) 1 oder 2 Stoppbits
Maximale Leitungslänge auf RS485: 1200 m bei 19200 Baud
11.2.2 Modbus-Kabel für COM1 und COM2
Kabel für Modbus / RS232 auf COM1:
Als Datenübertragungsleitung ist das Kabel TKxxx zu verwenden.
Anschlussplan COMx für Modbus
Kabel für Modbus / RS485 auf COM1:
Anschlussplan COMx für Modbus
Kabel für Modbus / RS232 auf COM2:
Anschlussplan COMx für Modbus
Kabel für Modbus / RS485 auf COM2:
Anschlussplan COMx für Modbus
11.3 Modbus on TCP/IP über Ethernet
Modbus on TCP/IP ist im Kapitel Systemtechnik Koppler / Der Ethernet-Koppler beschrieben.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 104 CPUs AC500 / Stand: 08.2005
11.4 Modbus-Adressen
11.4.1 Adresstabelle für Modbus
Es wird ein Bereich von 128 kB für den Zugriff über Modbus zugelassen, d. h. die Segmente Linie 0 und Linie 1 des adressierbaren Merkerbereiches (%M-Bereich). Damit steht für Modbus der komplette Adressbereich 0000hex bis FFFFhex zur Verfügung.
Die Verfügbarkeit der Segmente ist von der CPU abhängig. Bitte entnehmen Sie die Grösse des %M-Bereiches den Systemdaten der CPUs (siehe Technische Daten der CPUs und Zielsystemeinstellungen).
Auf Eingänge bzw. Ausgänge kann mit Modbus nicht direkt zugegriffen werden.
Die Adresszuordung für Wort- und Doppelwort-Zugriffe erfolgt gemäß nachfolgender Tabelle:
Modbus-Adresse
HEX DEZ Byte BYTE
Bit (byteorientiert) BOOL
Wort WORD
Doppelwort DWORD
Linie 0
%MB0.0 %MX0.0.0...%MX0.0.7 0000 0
%MB0.1 %MX0.1.0...%MX0.1.7 %MW0.0
%MB0.2 %MX0.2.0...%MX0.2.7 0001 1
%MB0.3 %MX0.3.0...%MX0.3.7 %MW0.1
%MD0.0
%MB0.4 %MX0.4.0...%MX0.4.7 0002 2
%MB0.5 %MX0.5.0...%MX0.5.7 %MW0.2
%MB0.6 %MX0.6.0...%MX0.6.7 0003 3
%MB0.7 %MX0.7.0...%MX0.7.7 %MW0.3
%MD0.1
...
%MB0.65532 %MX0.65532.0 ...%MX0.65532.7
7FFE 32766 %MB0.65533 %MX0.65533.0
...%MX0.65533.7
%MW0.32766
%MB0.65534 %MX0.65534.0 ...%MX0.65534.7
7FFF 32767 %MB0.65535 %MX0.65535.0
...%MX0.65535.7
%MW0.32767
%MD0.16383
Linie 1
%MB1.0 %MX1.0.0...%MX1.0.7 8000 32768
%MB1.1 %MX1.1.0...%MX1.1.7 %MW1.0
%MB1.2 %MX1.2.0...%MX1.2.7 8001 32769
%MB1.3 %MX1.3.0...%MX1.3.7 %MW1.1
%MD1.0
%MB1.4 %MX1.4.0...%MX1.4.7 8002 32770
%MB1.5 %MX1.5.0...%MX1.5.7 %MW1.2
%MB1.6 %MX1.6.0...%MX1.6.7 8003 32771
%MB1.7 %MX1.7.0...%MX1.7.7 %MW1.3
%MD1.1
...
%MB1.65532 %MX1.65532.0 ...%MX1.65532.7
FFFE 65534 %MB1.65533 %MX1.65533.0
...%MX1.65533.7
%MW1.32766
%MB1.65534 %MX1.65534.0 ...%MX1.65534.7
FFFF 65535 %MB1.65535 %MX1.65535.0
...%MX1.65535.7
%MW1.32767
%MD1.16383
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 105 CPUs AC500 / Stand: 08.2005
Die Adresszuordung für Bit-Zugriffe erfolgt gemäß nachfolgender Tabelle:
Modbus-Adresse
HEX DEZ
Byte BYTE
Bit (byteorientiert) BOOL
Wort WORD
Doppelwort DWORD
Linie 0
0000 0 %MX0.0.0
0001 1 %MX0.0.1
0002 2 %MX0.0.2
0003 3 %MX0.0.3
0004 4 %MX0.0.4
0005 5 %MX0.0.5
0006 6 %MX0.0.6
0007 7
%MB0.0
%MX0.0.7
0008 8 %MX0.1.0
0009 9 %MX0.1.1
000A 10 %MX0.1.2
000B 11 %MX0.1.3
000C 12 %MX0.1.4
000D 13 %MX0.1.5
000E 14 %MX0.1.6
000F 15
%MB0.1
%MX0.1.7
%MW0.0
0010 16 %MX0.2.0
0011 17 %MX0.2.1
0012 18 %MX0.2.2
0013 19 %MX0.2.3
0014 20 %MX0.2.4
0015 21 %MX0.2.5
0016 22 %MX0.2.6
0017 23
%MB0.2
%MX0.2.7
0018 24 %MX0.3.0
0019 25 %MX0.3.1
001A 26 %MX0.3.2
001B 27 %MX0.3.3
001C 28 %MX0.3.4
001D 29 %MX0.3.5
001E 30 %MX0.3.6
001F 31
%MB0.3
%MX0.3.7
%MW0.1
%MD0.0
0020 32 %MX0.4.0
0021 33 %MX0.4.1
0022 34
%MB0.4
%MX0.4.2
%MW0.2 %MD0.1
... ... ... ... ... ...
0FFF 4095 %MB0.511 %MX0.511.7 %MW0.255 %MD0.127
1000 4096 %MB0.512 %MX0.512.0 %MW0.256 %MD0.128
... ... ... ... ... ...
7FFF 32767 %MB0.4095 %MX0.4095.7 %MW0.2047 %MD0.1023
8000 32768 %MB0.4096 %MX0.4096.0 %MW0.2048 %MD0.1024
... ... ... ... ... ...
FFFF 65535 %MB0.8191 %MX0.8191.7 %MW0.4095 %MD0.2047
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 106 CPUs AC500 / Stand: 08.2005
Berechnung der Bitvariablen aus der Hexadresse:
Formel:
Bitvariable (BOOL) := %MX0.BYTE.BIT
Mit: DEZ Dezimaladresse
BYTE DEZ / 8
BIT DEZ mod 8 (Modulo-Division)
Beispiele:
Hexadresse = 16#2002 DEZ := HEX2DEZ(16#2002) := 8194 BYTE := 8194 / 8 := 1024 BIT := 8194 mod 8 := 2 Bitvariable: %MX0.1024.2
Hexadresse = 16#3016 DEZ := HEX2DEZ(16#3016) := 12310 BYTE := 12310 / 8 := 1538,75 -> 1538 BIT := 12310 mod 8 := 6 Bitvariable: %MX0.1538.6
Hexadresse = 16#55AA DEZ := HEX2DEZ(16#55AA) := 21930 BYTE := 21930 / 8 := 2741,25 -> 2741 BIT := 21930 mod 8 := 2 Bitvariable: %MX0.2741.2
Berechnung der Hexadresse aus der Bitveriablen:
Formel:
Hexadresse := DEZ2HEX( BYTE * 8 + BIT )
Beispiele:
Bitvariable := %MX0.515.4 Hexadresse := DEZ2HEX( 515 * 8 + 4 ) := DEZ2HEX( 4124 ) := 16#101C
Bitvariable := %MX0.3.3 Hexadresse := DEZ2HEX( 3 * 8 + 3 ) := DEZ2HEX( 27 ) := 16#001B
Bitvariable := %MX0.6666.2 Hexadresse := DEZ2HEX( 6666 * 8 + 2 ) := DEZ2HEX( 53330 ) := 16#D052
11.4.2 Besonderheiten für den Zugriff auf die Modbus-Adressen
Besonderheiten für Bitzugriffe:
• Wie aus der Adresstabelle ersichtlich, ist jeder Modbus-Adresse 0000hex .. FFFFhex ein WORD im %M-Bereich zugeordnet.
•
Bereiche für Lese-/Schreibverbot für den Modbus-Slave:
Wie in der Steuerungskonfiguration beschrieben, ist es möglich, für jedes Segment Linie 0 und Linie 1 je einen Bereich für Lese- bzw. Schreibverbot einzustellen. (siehe Steuerungskonfiguration / Die Einstellung 'COMx - Modbus'). Wird versucht, in den Bereich mit Schreibverbot zu schreiben, bzw. aus dem Bereich mit Leseverbot zu lesen, so wird eine Fehlermeldung generiert.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 107 CPUs AC500 / Stand: 08.2005
Segmentüberschreitung Linie 0 und Linie 1:
Es ist nicht möglich, mit einem Schreib- oder Lesezugriff auf einen Bereich zuzugreifen, der innerhalb beider Segmente Linie 0 und Linie 1 liegt. Bei Segmentüberschreitung wird eine Fehlermeldung generiert.
Beispiel: Lesen von 10 Worten ab Adresse := 7FFEhex Das entspricht den Adressen: 7FFEhex...8007hex mit den Operanden %MW0.32766...%MW1.7. Da hier Linie 0 überschritten wird, wird eine Fehlermeldung generiert. In diesem Fall müssen zwei Telegramme generiert werden: 1. Lesen von 2 Worten ab Adresse := 7FFEhex und 2. Lesen von 8 Worten ab Adresse := 8000hex.
Zulässige Datenbereiche für Lesen/Schreiben des Modbus-Masters:
Ist die AC500 der Modbus-Master, so wird der Datenaustausch mit den Modbus-Slaves über einem MODMAST-Baustein (ETH_MOD_MAST für Modbus on TCP/IP bzw. COM_MOD_MAST für die seriellen Schnittstellen) gesteuert (siehe Bausteine ETH_MODMAST in der Ethernet_AC500_Vxx.lib und COM_MODMAST in der Modbus_AC500_Vxx.lib).
Am Eingang "Data" dieser Bausteine wird über den ADR-Operator die Adresse des Bereiches angegeben, aus welchem beim Lesen die Daten gelesen bzw. in welchem beim Schreiben die Daten abgelegt werden sollen.
Bei der AC500 kann mit dem ADR-Operator auf folgende Bereiche zugegriffen werden:
• Bereich der Eingänge (%I-Bereich)
• Bereich der Ausgänge (%Q-Bereich)
• Bereich der nichtgepufferten Variablen (VAR .. END_VAR bzw. VAR_GLOBAL .. END_VAR)
• Adressierbarer Merkerbereich (%M-Bereich auch eingestellte geschützte Bereiche)
• Bereich der gepufferten Variablen (VAR RETAIN .. END_VAR bzw. VAR_GLOBAL RETAIN .. END_VAR)
11.4.3 Vergleich der Modbus-Adressen für AC500 und AC31/S90
In der nachfolgenden Tabelle sind die Adressen für AC500 und der Vorgängersteuerung AC31 / S90 dargestellt:
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 108 CPUs AC500 / Stand: 08.2005
Adresse HEX
FCT HEX
AC1131-Operand FCT HEX
AC500-Operand
Bit-Zugriffe
0000...0FFF 01, 02 %IX0.0...%IX255.15 01, 02, 05, 07, 0F %MX0.0.0...%MX0.511.7
0000 %IX0.0 %MX0.0.0
0001 %IX0.1 %MX0.0.1
0002 %IX0.2 %MX0.0.2
... ... ...
0010 %IX1.0 %MX0.2.0
... ... ...
0FFF
%IX255.15
%MX0.511.7
1000...1FFF 01, 02, 05, 0F %QX0.0...%QX255.15 01, 02, 05, 07, 0F %MX0.512.0...%MX0.1023.7
1000 %QX0.0 %MX0.512.0
1001 %QX0.1 %MX0.512.1
1002 %QX0.2 %MX0.512.2
... ... ...
1010 %QX1.0 %MX0.514.0
... ... ...
1FFF
%QX255.15
%MX0.1023.7
2000...2FFF 01, 02, 05, 07, 0F %MX0.0...%MX255.15 01, 02, 05, 07, 0F %MX0.1024.0...%MX0.1535.7
2000 %MX0.0 %MX0.1024.0
2001 %MX0.1 %MX0.1024.1
2002 %MX0.2 %MX0.1024.2
... ... ...
2010 %MX1.0 %MX0.1026.0
... ... ...
2FFF
%MX255.15
%MX0.1535.7
3000...3FFF 01, 02, 05, 07, 0F %MX5000.0...%MX5255.15 01, 02, 05, 07, 0F %MX0.1536.0...%MX0.2047.7
3000 %MX5000.0 %MX0.1536.0
3001 %MX5000.1 %MX0.1536.1
3002 %MX5000.2 %MX0.1536.2
... ... ...
3010 %MX5001.0 %MX0.1538.0
... ... ...
3FFF
%MX5255.15
%MX0.2047.7
4000...FFFF Kein Zugriff 01, 02, 05, 07, 0F %MX0.2048.0...%MX0.8191.7
Wort-Zugriffe
0000...0CFF 03, 04 %IW1000.0...%IW1207.15 03, 04, 06, 10 %MW0.0...%MW0.3327
0D00...0FFF 03, 04 Kein Zugriff 03, 04, 06, 10 %MW0.3328...%MW0.4095
1000...1CFF 03, 04, 06, 10 %QW1000.0...%QW1207.15 03, 04, 06, 10 %MW0.4096...%MW0.7423
1D00...1FFF Kein Zugriff 03, 04, 06, 10 %MW0.7424...%MW0.8191
2000...2FFF 03, 04, 06, 10 %MW1000.0...%MW1255.15 03, 04, 06, 10 %MW0.8192...%MW0.12287
3000...359F 03, 04, 06, 10 %MW3000.0...%MW3089.15 03, 04, 06, 10 %MW0.12288...%MW0.13727
35A0...3FFF Kein Zugriff 03, 04, 06, 10 %MW0.13728...%MW0.16383
4000...47FF %MW2000.0.0...%MW2063.15.1Kein Zugriff
03, 04, 06, 10 %MW0.16384...%MW18431
4800...4FFF Kein Zugriff 03, 04, 06, 10 %MW0.18432...%MW0.20479
5000...517F %MW4000.0.0...%MW4023.15.1Kein Zugriff
03, 04, 06, 10 %MW0.20480...%MW0.21247
5180...FFFF Kein Zugriff 03, 04, 06, 10 %MW0.21248...%MW1.32767
Doppelwort-Zugriffe
0000...3FFF Kein Zugriff 03, 04, 06, 10 %MD0.0...%MD0.8191
4000...47FF 03, 04, 06, 10 %MD2000.0...%MD2063.15 03, 04, 06, 10 %MD0.8192...%MD0.9215
4800...4FFF Kein Zugriff 03, 04, 06, 10 %MD0.9216...%MD0.10239
5000...537F 03, 04, 06, 10 %MD4000.0...%MD4023.15 03, 04, 06, 10 %MD0.1240...%MD0.10815
5480...FFFF Kein Zugriff 03, 04, 06, 10 %MD0.10816...%MD1.16383
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 109 CPUs AC500 / Stand: 08.2005
11.5 Modbus-Telegramme
Die abgebildeten Sende- und Empfangstelegramme sind in der SPS nicht sichtbar. Die vollständigen Telegramme können jedoch bei Bedarf über einen seriellen Data Analyser in der Verbindungsleitung zwischen Master und Slave angezeigt werden.
Die Anzahl der Nutzdaten hängt von den Eigenschaften des Masters und des Slaves ab.
In den folgenden Beispielen wird als Slave ein AC500-Modbus-Gerät angenommen. Bei der Verwendung von Fremdgeräten können abweichende Eigenschaften auftreten.
FCT 1 oder 2: Lesen n Bits
Master-Request
Op.-Adresse Slave Anzahl Bits CRC Slave- Adresse
Funktions- code High Low High Low High Low
Slave-Response
CRC Slave- Adresse
Funktions- code Anzahl Bytes ...Daten...
High Low
Modbus-Schnittstelle des Masters: COM1
Master liest von: Slave 1
Daten: %MX0.1026.4 = FALSE; %MX0.1026.5 = TRUE %MX0.1026.6 =FALSE
Quelladresse im Slave: %MX0.1026.4 : 2014HEX = 8212DEZ
Zieladresse im Master: abReadBit : ARRAY[0..2] OF BOOL;
Beispiel:
Die Werte der Merker %MX0.1026.4..%MX0.1026.6 des Slaves werden im Master im ARRAY abReadBool abgelegt.
Modbus-Anfrage des Masters
Op.-Adresse Slave Anzahl Bits CRC Slave- Adresse
Funktions- code High Low High Low High Low
01HEX 01HEX 20HEX 14HEX 00HEX 03HEX 37HEX CFHEX
Modbus-Antwort des Slaves
CRC Slave- Adresse
Funktions- code
Anzahl Bytes Daten High Low
01HEX 01HEX 01HEX 02HEX D0HEX 49HEX
Parametrierung der Bausteineingänge COM_MOD_MAST NB = Anzahl Bits
EN COM SLAVE FCT TIMEOUT ADDR NB DATA
FALSE -> TRUE
1 1 1 Anwendungs- spezifisch
8212 3 ADR (abReadBool[0])
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 110 CPUs AC500 / Stand: 08.2005
FCT 3 oder 4: Lesen n Worte
Master-Request
Op.-Adresse Slave Anzahl Worte CRC Slave- Adresse
Funktions- code High Low High Low High Low
Slave-Response
CRC Slave- Adresse
Funktions- code
Anzahl Bytes ...Daten... High Low
Modbus-Schnittstelle des Masters: COM1
Master liest von: Slave 1
Daten: %MW0.8196 = 4; %MW0.8197 = 5; %MW0.8198 = 6
Quelladresse im Slave: %MW0.8196 : 2004HEX = 8196DEZ
Zieladresse im Master: awReadWord : ARRAY[0..2] OF WORD;
Beispiel:
Die Werte der Merker-Worte %MW0.8196..%MW0.8198 des Slaves werden im Master im ARRAY awReadWord abgelegt.
Modbus-Anfrage des Masters
Op.-Adresse Slave Anzahl Worte CRC Slave- Adresse
Funktions- code High Low High Low High Low
01HEX 03HEX 20HEX 04HEX 00HEX 03HEX 4FHEX CAHEX
Modbus-Antwort des Slaves
Daten Daten Daten CRC Slave- Adresse
Funktions- code
Anzahl Bytes High / Low High / Low High / Low High Low
01HEX 03HEX 06HEX 00HEX / 04HEX 00HEX / 05HEX 00HEX / 06HEX 40HEX B6HEX
Parametrierung der Bausteineingänge COM_MOD_MAST NB = Anzahl Worte
EN COM SLAVE FCT TIMEOUT ADDR NB DATA
FALSE -> TRUE
1 1 3 Anwendungs- spezifisch
8196 3 ADR (awReadWord[0])
FCT 3 oder 4: Lesen n Doppelworte
Der Funktionscode "Doppelwort lesen" ist in der Modbus-RTU-Norm nicht definiert. Daher die Zusammensetzung des Doppelwortes aus Low- und High-Word (herstellerspezifisch).
Master-Request
Op.-Adresse Slave Anzahl Worte CRC Slave- Adresse
Funktions- code High Low High Low High Low
Slave-Response
CRC Slave- Adresse
Funktions- code
Anzahl Bytes ...Daten... High Low
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 111 CPUs AC500 / Stand: 08.2005
Modbus-Schnittstelle des Masters: COM1
Master liest von: Slave 1
Daten: %MD0.8193 = 32DEZ = 00000020HEX; %MD0.8194 = 80000DEZ = 00013880HEX
Quelladresse im Slave: %MD0.8193: 4002HEX = 16386DEZ
Zieladresse im Master: adwReadDWord : ARRAY[0..1] OF DWORD
Beispiel:
Die Werte der Merker-Doppelworte %MD0.8193..%MD0.8194 des Slaves werden im Master im ARRAY adwReadDWord abgelegt.
Modbus-Anfrage des Masters
Op.-Adresse Slave Anzahl Worte CRC Slave- Adresse
Funktions- code High Low High Low High Low
01HEX 03HEX 40HEX 02HEX 00HEX 04HEX F0HEX 09HEX
Modbus-Antwort des Slaves
Daten Daten Daten Daten CRC Slave- Adresse
Funk- tions- code
Anzahl Bytes High / Low High / Low High / Low High / Low High Low
01HEX 03HEX 08HEX 00HEX / 00HEX 00HEX / 20HEX 00HEX / 01HEX 38HEX / 80HEX 57HEX B0HEX
Parametrierung der Bausteineingänge COM_MOD_MAST NB = Anzahl Worte
EN COM SLAVE FCT TIMEOUT ADDR NB DATA
FALSE -> TRUE
1 1 31 Anwendungs- spezifisch
16386 4 ADR (adwReadDWord[0])
FCT 5: Schreiben 1 Bit
Bei dem Funktionscode "1 Bit Schreiben" wird der Wert des zu schreibenden Bits in einem Wort kodiert.
BIT = TRUE -> Datenwort = FF 00 HEX
BIT = FALSE -> Datenwort = 00 00 HEX
Master-Request
Op.-Adresse Slave Anzahl Worte CRC Slave- Adresse
Funktions- code High Low High Low High Low
Op.-Adresse Slave Daten CRC Slave-
Adresse Funktions- code High Low High Low High Low
Slave-Response
Op.-Adresse Slave Daten CRC Slave- Adresse
Funktions- code High Low High Low High Low
Modbus-Schnittstelle des Masters: COM1
Master schreibt in: Slave 1
Daten: bBit := TRUE
Quelladresse im Master: bBit : BOOL;
Zieladresse im Slave: %MX0.1026.7 : 2017HEX = 8215DEZ
Beispiel:
Der Wert der BOOL-Variablen bBit des Masters wird im Slave in %MX0.1026.7 abgelegt.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 112 CPUs AC500 / Stand: 08.2005
Modbus-Anfrage des Masters
Op.-Adresse Slave Daten CRC Slave- Adresse
Funktions- code High Low High Low High Low
01HEX 05HEX 20HEX 17HEX FFHEX 00HEX 37HEX FEHEX
Modbus-Antwort des Slaves (Spiegelung)
Op.-Adresse Slave Daten CRC Slave- Adresse
Funktions- code High Low High Low High Low
01HEX 05HEX 20HEX 17HEX FFHEX 00HEX 37HEX FEHEX
Parametrierung der Bausteineingänge COM_MOD_MAST NB = Anzahl Bits
EN COM SLAVE FCT TIMEOUT ADDR NB DATA
FALSE -> TRUE
1 1 5 Anwendungs- spezifisch
8215 1 ADR (bBit)
FCT 6: Schreiben 1 Wort
Master-Request
Op.-Adresse Slave Daten CRC Slave- Adresse
Funktions- code High Low High Low High Low
Slave-Response
Op.-Adresse Slave Daten CRC Slave- Adresse
Funktions- code High Low High Low High Low
Modbus-Schnittstelle des Masters: COM1
Master schreibt in: Slave 1
Daten: wData := 7
Quelladresse im Master: wData : WORD;
Zieladresse im Slave: %MW0.8199 : 2007HEX = 8199DEZ
Beispiel:
Der Wert der Wortvariablen wData des Masters wird im Slave in %MW0.8199 abgelegt.
Modbus-Anfrage des Masters
Op.-Adresse Slave Daten CRC Slave- Adresse
Funktions- code High Low High Low High Low
01HEX 06HEX 20HEX 07HEX 00HEX 07HEX 72HEX 09HEX
Modbus-Antwort des Slaves (Spiegelung)
Op.-Adresse Slave Daten CRC Slave- Adresse
Funktions- code High Low High Low High Low
01HEX 06HEX 20HEX 07HEX 00HEX 07HEX 72HEX 09HEX
Parametrierung der Bausteineingänge COM_MOD_MAST NB = Anzahl Worte
EN COM SLAVE FCT TIMEOUT ADDR NB DATA
FALSE -> TRUE
1 1 6 Anwendungs- spezifisch
8215 1 ADR (wData)
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 113 CPUs AC500 / Stand: 08.2005
FCT 7: Schnelles Lesen Statusbyte der CPU
Master-Request
CRC Slave- Adresse
Funktions- code High Low
Slave-Response
CRC Slave- Adresse
Funktions- code
Datenbyte High Low
Modbus-Schnittstelle des Masters: COM1
Master schreibt in: Slave 1
Daten:
Quelladresse im Slave:
Zieladresse im Slave:
Beispiel:
Die Funktion liefert in Version V1.x immer 0!
Modbus-Anfrage des Masters
CRC Slave- Adresse
Funktions- code High Low
01HEX 07HEX 41HEX E2HEX
Modbus-Antwort des Slaves
CRC Slave- Adresse
Funktions- code
Datenbyte High Low
01HEX 07HEX 00HEX xxHEX xxHEX
Parametrierung der Bausteineingänge COM_MOD_MAST NB = Anzahl Bits
EN COM SLAVE FCT TIMEOUT ADDR NB DATA
FALSE -> TRUE
1 1 7 Anwendungs- spezifisch
0 0 ADR (BoolVar)
Hinweis: Die Funktion 7 liefert in Version V1.x immer den Wert 0 zurück.
FCT 15: Schreiben n Bits
Master-Request
Op.-Adresse Slave Anzahl Bits CRC Slave- Adresse
Funktions- code High Low High Low
Anzahl Bytes
...Daten... High Low
Slave-Response
Op.-Adresse Slave Anzahl Bits CRC Slave- Adresse
Funktions- code High Low High Low High Low
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 114 CPUs AC500 / Stand: 08.2005
Modbus-Schnittstelle des Masters: COM1
Master schreibt in: Slave 1
Daten: abWriteBool[0] := TRUE; abWriteBool[1] := FALSE; abWriteBool[2] := TRUE
Quelladresse im Master: abWriteBool : ARRAY[0..2] OF BOOL;
Zieladresse im Slave: %MX0.1026.1 : 2011HEX = 8209DEZ
Beispiel:
Die Werte der BOOL-Variablen abWriteBool[0]..abWriteBool[2] des Masters werden im Slave in %MX0.1026.1..%MX0.1026.3 abgelegt.
Modbus-Anfrage des Masters
Op.-Adresse Slave Anzahl Bits CRC Slave- Adresse
Funktions- code High Low High Low
Anzahl Bytes
Daten High Low
01HEX 0FHEX 20HEX 11HEX 00HEX 03HEX 01HEX 05HEX B4HEX 37HEX
Modbus-Antwort des Slaves
Op.-Adresse Slave Anzahl Bits CRC Slave- Adresse
Funktions- code High Low High Low High Low
01HEX 0FHEX 20HEX 11HEX 00HEX 03HEX 4EHEX 0FHEX
Parametrierung der Bausteineingänge COM_MOD_MAST NB = Anzahl Bits
EN COM SLAVE FCT TIMEOUT ADDR NB DATA
FALSE -> TRUE
1 1 15 Anwendungs- spezifisch
8209 3 ADR (abWriteBool[0])
FCT 16: Schreiben n Worte
Master-Request
Op.-Adresse Slave Anzahl Worte CRC Slave- Adresse
Funktions- code High Low High Low
Anzahl Bytes
...Daten... High Low
Slave-Response
Op.-Adresse Slave Anzahl Worte CRC Slave- Adresse
Funktions- code High Low High Low High Low
Modbus-Schnittstelle des Masters: COM1
Master schreibt in: Slave 1
Daten: awWriteWord[0] := 1; awWriteWord[1] := 2; awWriteWord[2] := 3
Quelladresse im Master: awWriteWord : ARRAY[0..2] OF WORD;
Zieladresse im Slave: %MW0.8193 : 2001HEX = 8193DEZ
Beispiel:
Die Werte der Wortvariablen awWriteWord[0]..awWriteWord[2] des Masters werden im Slave in %MW0.8193..%MW0.8195 abgelegt.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 115 CPUs AC500 / Stand: 08.2005
Modbus-Anfrage des Masters
Op.-Adresse Slave
Anzahl Worte
Daten Daten Daten CRC Slave Adresse
Funktions- code High / Low High / Low
Anzahl Bytes High /
Low High / Low
High / Low
High / Low
01HEX 10HEX 20HEX / 01HEX 00HEX / 03HEX
06HEX 00HEX / 01HEX
00HEX / 02HEX
00HEX / 03HEX
C0HEX / 84HEX
Modbus-Antwort des Slaves
Op.-Adresse Slave Anzahl Worte CRC Slave- Adresse
Funktions- code High Low High Low High Low
01HEX 10HEX 20HEX 01HEX 00HEX 03HEX DAHEX 08HEX
Parametrierung der Bausteineingänge COM_MOD_MAST NB = Anzahl Worte
EN COM SLAVE FCT TIMEOUT ADDR NB DATA
FALSE -> TRUE
1 1 16 Anwendungs- spezifisch
8193 3 ADR (awWriteWord[0])
FCT 16: Schreiben n Doppelworte
Der Funktionscode "Doppelwort schreiben" ist in der Modbus-RTU-Norm nicht definiert. Daher die Zusammensetzung des Doppelwortes aus Low- und High-Word (herstellerspezifisch).
Master-Request
Op.-Adresse Slave Anzahl Worte CRC Slave- Adresse
Funktions- code High Low High Low
Anzahl Bytes
...Daten... High Low
Slave-Response
Op.-Adresse Slave Anzahl Worte CRC Slave- Adresse
Funktions- code High Low High Low High Low
Modbus-Schnittstelle des Masters: COM1
Master schreibt in: Slave 1
Daten: adwWriteDWord[0] := 18DEZ = 00000012HEX; adwWriteDWord[1] := 65561DEZ = 00010019HEX;
Quelladresse im Master: adwWriteDWord : ARRAY[0..1] OF WORD;
Zieladresse im Slave: %MD0.8192 : 4000HEX = 16384DEZ
Beispiel:
Die Werte der Doppelwort-Variablen adwWriteDWord[0].. adwWriteDWord[1] des Masters werden im Slave in %MD0.8192..%MD0.8193 abgelegt.
Modbus-Anfrage des Masters
Op.-Adresse Slave
Anzahl Worte
Anzahl Bytes Daten Daten Daten Daten CRC
Slave- Adr.
Funk- tions- Code High / Low High /
Low High / Low
High / Low
High / Low
High / Low
High / Low
High / Low
01HEX 10HEX 40HEX / 00HEX
00HEX / 04HEX
00HEX / 08HEX
00HEX / 00HEX
00HEX / 12HEX
00HEX / 01HEX
00HEX / 19HEX
60HEX / B3HEX
Modbus-Antwort des Slaves
Op.-Adresse Slave Anzahl Worte CRC Slave- Adresse
Funktions- code High Low High Low High Low
01HEX 10HEX 40HEX 00HEX 00HEX 04HEX DAHEX 0AHEX
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 116 CPUs AC500 / Stand: 08.2005
Parametrierung der Bausteineingänge COM_MOD_MAST NB = Anzahl Worte = 2 x Anzahl Doppelworte
EN COM SLAVE FCT TIMEOUT ADDR NB DATA
FALSE -> TRUE
1 1 16 Anwendungs- spezifisch
16384 4 ADR (adwWriteDWord[0])
Fehlertelegramm
In der Betriebsart Modbus-Master sendet die AC500 nur dann ein Telegramm, wenn die Parameter an den MODMAST-Eingängen logisch richtig sind. Trotzdem kann es vorkommen, dass ein Slave die Anforderung des Masters nicht bearbeiten oder aufgrund von Übertragungsfehlern nicht interpretieren kann. In diesen Fällen sendet der Slave ein Fehlertelegramm an den Master. Zur Kennzeichnung des Fehlertelegramms sendet der Slave als Funktionscode eine logische ODER-Verknüpfung des vom Master empfangenen Funktionscodes mit 80HEX zurück.
Slave-Response
CRC Slave- Adresse
Funktionscode OR 80HEX Fehlercode
High Low
Mögliche Fehlercodes des Slaves
Code Bedeutung
01DEZ Vom Master angeforderte Funktion wird vom Slave nicht unterstützt
02DEZ Ungültige Operandenadresse im Slave
02DEZ Überschreitung des Operandenbereichs
03DEZ Mindestens ein Wert liegt außerhalb des erlaubten Wertebereichs
12DEZ Anzahl der Daten ist größer als der Slave verarbeiten kann
13DEZ Telegramm enthält ungerade Anzahl Worte bei Doppelwortzugriff
10DEZ Längenangaben im Telegramm stimmen nicht überein
11DEZ Typ des Operandenbereichs und Funktion stimmen nicht überein
Beispiel:
Modbus-Anfrage des Masters:
Funktionscode: 01 (Lesen n Bits)
Operanden-Adresse Slave: 4000HEX = 16384DEZ (Bereich für Lesen im Slave gesperrt)
Modbus-Antwort des Slaves:
Funktionscode: 81HEX
Fehlercode: 03
11.6 Funktionsbaustein COM_MOD_MAST
Der Funktionsbaustein wird nur in der Betriebsart Modbus-Master benötigt. Er wickelt die Kommunikation (Senden von Telegrammen an Slaves / Empfangen von Telegrammen von Slaves) ab. Der Baustein kann auf die lokalen Schnittstellen der Steuerung COM1 und COM2 angewendet werden. Für jede Schnittstelle ist eine eigene Instanz des Bausteins zu verwenden.
COM_MOD_MAST ist Bestandteil der Bibliothek Modbus_AC500_V1x.LIB (ab V1.0).
11.7 Beispielprogramm Modbus
AC500 mit COM1 als Modbus-Master und COM2 als Modbus-Slave
Aufgabe: Die Bits %MX0.0.0 .. %MX0.0.7 im Slave (AC500 COM2) sollen mit maximaler Frequenz gelesen und im Master (AC500 COM1) in %MX0.2.0 .. %MX0.2.7 abgelegt werden.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 117 CPUs AC500 / Stand: 08.2005
Hinweis: Da in diesem Beispiel beide seriellen Schnittstellen der CPU gleichzeitig als Modbus-Schnittstellen betrieben werden, steht bei laufendem Anwenderprogramm keine serielle Programmierschnittstelle zur Verfügung. Der Online-Betrieb des Control Builders ist nur über Ethernet oder ARCNET möglich. Alternativ kann das Programm in zwei verschiedene Steuerungen geladen werden, bei denen dann jeweils nur eine serielle Schnittstelle als Modbus-Schnittstelle betrieben wird. In diesem Fall kann der Online-Zugang des Control Builders auch über die jeweils andere serielle Schnittstelle erfolgen.
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 118 CPUs AC500 / Stand: 08.2005
Index Systemtechnik CPUs
%
%M-Bereich AC500 18, 20 (2.4.1, 2.4.3)
%M-Bereich für das Modbus-Protokoll in AC500 19 (2.4.2)
A
AC500 Steuerungskonfiguration 23 (3.1.1)
ADR in AC500 21 (2.5.1)
Adressierbare Merker AC500 18, 20 (2.4.1, 2.4.3)
Adressoperator ADR in AC500 21 (2.5.1)
ARCNET-Treiber der AC500 92 (10.3)
ASCII AC500 31 (3.4.3)
Ausgänge AC500 16 (2.2)
B
Batterie der AC500 84 (8.3)
Bearbeitungszeiten der AC500 53 (4.4.1)
Begriffe AC500 47 (4.1)
C
COMx - ASCII AC500 31 (3.4.3)
COMx - CS31-Bus AC500 35 (3.4.6)
COMx - Decentralized I/O expansion 34 (3.4.5)
COMx - Modbus AC500 33 (3.4.4)
COMx - Online AC500 31 (3.4.2)
CS31-Bus in AC500 35 (3.4.6)
D
Deklaration gepufferter Variablen der AC500 52 (4.3.2)
Deklaration von Konstanten der AC500 52 (4.3.2)
Diagnosesystem der AC500 55 (5.1.1)
Diagnosesystem der AC500 - Aufbau der Fehlernummern 57 (5.2)
Diagnosesystem der AC500 – Bausteine 64 (5.3)
Download AC500 48 (4.1)
E
E/A-Erweiterung (dezentral) AC500 34 (3.4.5)
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 119 CPUs AC500 / Stand: 08.2005
Echtzeituhr der AC500 83 (8.1)
Eingänge AC500 16 (2.2)
Eingänge und Ausgänge der AC500 im Multitasking-System 17 (2.3)
Eingänge, Ausgänge und Merker in AC500 13 (2)
Ethernet-Treiber der AC500 95 (10.4)
Ex- und Import der Steuerungskonfiguration der AC500 23 (3.1.2)
Externer Koppler der AC500 45 (3.6.2)
F
FBP Interface AC500 37 (3.5)
Fehlerkennung im Diagnosesystem der AC500 58 (5.2.2)
Fehlerklassen im Diagnosesystem der AC500 58 (5.2.1)
Fehlernummern im Diagnosesystem der AC500 60 (5.2.3)
Flash der AC500 – Datenablage 82 (7.1)
I
Interner ARCNET-Kopplöer der AC500 42 (3.6.1.2)
Interner Ethernet-Koppler der AC500 40 (3.6.1.1)
Interner Koppler der AC500 40 (3.6.1)
K
Kaltstart AC500 47 (4.1)
Konfiguration der externen Koppler der AC500 45 (3.6.2)
Konfiguration der FBP-Slave-Schnittstelle der AC500 37 (3.5)
Konfiguration der Koppler in AC500 39 (3.6)
Konfiguration der seriellen Schnittstellen der AC500 30 (3.4)
Konfiguration des I/O-Busses der AC500 27 (3.3.1)
Konfiguration des internen ARCNET-Kopplers der AC500 42 (3.6.1.2)
Konfiguration des internen Ethernet-Kopplers der AC500 40 (3.6.1.1)
Konfiguration des internen Kopplers der AC500 40 (3.6.1)
Koppler (extern) der AC500 45 (3.6.2)
Kopplerkonfiguration der AC500 39 (3.6)
M
Merker AC500 18, 20 (2.4.1, 2.4.3)
Modbus AC500 33 (3.4.4)
Modbus RTU in AC500 – Adresstabelle 104 (11.4.1)
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 120 CPUs AC500 / Stand: 08.2005
Modbus RTU in AC500 – Fehlertelegramme 116 (11.5)
Modbus RTU in AC500 – Protokollbeschreibung 102 (11.1)
Modbus RTU in AC500 –Telegramme 109 (11.5)
O
Online AC500 31 (3.4.2)
Online Change AC500 48 (4.1)
P
PLC-Browser-Kommandos der AC500 64 (5.4)
Programmierung der AC500 - Online-Zugänge 86 (10.1)
Pufferung von Daten der AC500 48, 50 (4.1, 4.3.1)
R
Reset (Kalt) AC500 47 (4.1)
Reset (Ursprung) AC500 47 (4.1)
Reset AC500 47 (4.1)
RUN -> STOP AC500 47 (4.1)
S
Schnelle Zähler der AC500 – Übersicht 85 (9.1)
SD-Karte der AC500 – Dateistruktur 68 (6.2.1)
SD-Karte der AC500 – Fehlermeldungen 81 (6.7)
SD-Karte der AC500 – Firmwareupdate 79 (6.6)
SD-Karte der AC500 – Initialisierung 70 (6.2.3)
SD-Karte der AC500 - Laden des Anwenderprogrammes 71 (6.3.2)
SD-Karte der AC500 - PLC-Browser-Kommandos 67 (6.1.2)
SD-Karte der AC500 - Speichern des Anwenderprogrammes 71 (6.3)
SD-Karte der AC500 - Speichern/Laden von gepufferten Daten 79 (6.5)
SD-Karte der AC500 - Speichern/Lesen von Anwenderdaten 72 (6.4)
SD-Karte der AC500 – Übersicht 67 (6.1.1)
Serieller Treiber der AC500 87 (10.2)
START -> STOP AC500 47 (4.1)
Start des Anwenderprogrammes der AC500 49 (4.2)
Steuerungskonfiguration der AC500 23 (3.1.1)
Steuerungskonfiguration der AC500 - CPU-Parameter 25 (3.2)
Steuerungskonfiguration der AC500 – Standardeinstellung 24 (3.1.3)
____________________________________________________________________________________________________________
G7 AC500-Systemtechnik 121 CPUs AC500 / Stand: 08.2005
STOP -> RUN AC500 48 (4.1)
STOP -> START AC500 48 (4.1)
T
Taskkonfiguration der AC500 54 (4.5)
U
Uhr der AC500 83 (8.1)
W
Warmstart AC500 47 (4.1)
Z
Zielsystem AC500 6 (1.1)
Zykluszeit der AC500 53 (4.4.3)