Profibus
Genormt nach EN 50170-2 (?), sehr stark von Siemens dominiert.
Mehr Informationen:
http://www.profibus.com/
http://www.feldbusse.de/Profibus/profibus.htm
http://www.infoside.de/infida/elektronik/f1696s48ff.htm EN50170-Artikel aus Elektronik
http://www.lpr.e-technik.tu-muenchen.de/courses/seminar/fieldbus/node31.html- nicht mehr!?
http://www.ba-karlsruhe.de/automation/com/feldbusse/profibus.html
http://profibus.felser.ch/technik/
Bücher (ohne Wertung):
- "Profibus-DP/DPV1", Manfred Popp, Hüthig Verlag, ISBN 3-7785-2781-9
- "Profibus", Klaus Bender, Hanser Verlag, ISBN 3-446-16170-8 (alt?)
Physikalisch:
Meistens RS485 mit "vorgespanntem" Abschluß 5V-390R-220R-390R-0V => 1,1V Ruhespannung, 170Ohm differentielle Impedanz (?).
Immer mit Potentialtrennung!
Auch LWL-Technik.
UART-kompatible Übertragung 9,6..1500kBit/s bei 1200m bis 70m. 12MBit/s bei 100m (Glasfaser?).
Es gibt zwei unterschiedliche Kabel: Typ A mit 135..165Ohm, Typ B mit 100..130Ohm (nicht für neue Installationen).
Telegramme:
- Format mit fester Informationsfeldlänge (L = 3) ohne Daten
- SD1, DA, SA, [FC|SC], FCS, ED
- Format mit fester Informationsfeldlänge (L = 11) mit Daten
- SD3, DA, SA, FC, 8/5? Bytes DATA_UNIT, FCS, ED
- Format mit variabler Informationsfeldlänge (L = 4 bis 249)
- SD2, LE, LEr, SD2, DA, SA, FC, 1..244 (246?) Bytes DATA_UNIT, FCS, ED
- Token-Telegramm
- SD4, DA, SA
- Kurzquittung
- SC
Bedeutung der Abkürzungen:
- SD1 (10h) Start Delimiter "keine Daten"
- SD2 (68H) Start Delimiter "variable Datenlänge"
- SD3 (A2h) Start Delimiter "8 Bytes"
- SD4 (DCh) Start Delimiter "Token"
- SC (E5h): Single Character
- DA: Destination Address
- SA: Source Address
- FC: Frame Control (Kontrollbyte)
- FCS: Frame Check Sequence (Prüfbyte)
- LE: Length (4..249)
- LEr: Length repeated
- ED (16h): End Delimiter
Adreßbereich 0..126, 127 ist Multi- oder Broadcast
Höchstwertiges Bit in DA oder SA zeigt eine "Adreßerweiterung" in der DATA_UNIT an (Service Access Point SAP)
Kontrollbyte Function Code request:, Bits 0..3:
- 0 (0x0) Time Event
- 4 (0x4) SDN low = Send Data No acknowledge
- 6 (0x6) SDN high
- 7 (0x7) DDB = Distributed Data Base
- 9 (0x9) Request FDL Status
- 10(0xA) TE = Actual Time Event
- 11(0xB) CE = Actual Counter Event
- 12(0xC) SRD low = Send Request Data
- 13(0xD) SRD high
- 14(0xE) Request Ident with reply
- 15 (0xF) Request LSAP Status with reply
Bit 4: FCB (Toggle). Bit 5: FCV (Toggle), Bit 6: Request Telegramm.
FC : Function Code Response
Bts 0..3:
- 0 (0x0) OK
- 1 (0x1) UE = User Error
- 2 (0x2) RR = Keine Resourcen
- 3 (0x3) RS = SAP nicht aktiviert (falscher Zustand)
- 8 (0x8) DL = Data Low (Normalfall bei DP)
- 9 (0x9) NR = Keine Antwortdaten bereit
- 10(0xA) DH = Data High (DP Diagnose anstehend)
- 12(0xC) RDL = Daten nicht empfangen und Data Low
- 13(0xD) RDH = Daten nicht empfangen und Data High
Bits 4/5:
- 0 0 Slave
- 0 1 Master nicht bereit
- 1 0 Master bereit, ohne Token
- 1 1 Master bereit, im Token-Ring
Bit 6: Response Telegramm
Prüfbyte: arithmetische Summe der gesendeten Zeichen (ohne Start- und Endezeichen) ohne Übertrag.
SC, SD1 ,SD2 und SD3 haben zueinander Hamming Distanz 4 (HD=4), d.h. sie unterscheiden sich in mindestens 4 Bit.
DA, SA, FC gehören zu den Nutzdaten und werden bei LE/LEr mitgezählt.
"Service Access Point" (SAP) bzw. Dienstzugangspunkt: über die ersten zwei Bytes (DAE, SAE) in der DATA-Unit können verschiedene Quell- und/oder Zielbereiche angegeben werden (Source Service Access Point SSAP und Destination Service Access Point DSAP), z.B. Parameter, Konfiguration, Diagnose, Adresse etc.
Timing
- Slot Time TSL ist die Wartezeit, die ein Initiator (Master) maximal auf eine Rückmeldung des Responders (Slave) wartet. Läuft diese Zeit ab, wird dies als Fehler interpretiert und die letzte Nachricht wird wiederholt.
Station Delay Responder TSDR:
- minTSDR ist die Zeit, die der Empfänger mindestens warten muß, bis er eine Antwort senden darf. Mit dieser Zeit stellt man sicher, daß auf langsame Initiatoren entsprechend gewartet wird und sie so in der Lage sind, die Rückmeldung entgegenzunehmen (500 Bitzeiten Default)
- maxTSDR ist die Zeit, zu der der Empfänger spätestens seine Antwort an den Initiator abgesetzt haben soll. Sie stellt also die obere Grenze der Wartezeit für den Empfänger dar (1000 Bitzeiten Default)
Vor einem Telegramm mindestens 33 Bit Ruhe (SYN). Zwischen den Zeichen eines Telegrammes keine Pausen!
DP ("dezentrale Peripherie") Communication Profile
Zuordnung der Busadresse über Ident-Nummer. Stationsadresse? Adresse 127 ist für Broadcast oder Multicast.
Gerätetypen:
- DP-Master Klasse 1 (DPM1): Steuerung
- DP-Master Klasse 2 (DPM2): Bediengerät, Konfigurationstool...
- Slave
Buszugriff: Schicht 2 "Fieldbus Data Link (FDL)". MAC (Medium Access Control) regelt Sendeberechtigung unter den Teilnehmern. Bei Profibus DPV0 nur zwei Dienste:
- SRD: Send And Request Data With Reply
- SDN: Send Data With No Acknowledge (unquittiert, z.B. Broadcast, Multicast wie Sync und Freeze)
Bei DPV1 noch CS-Clock Synchronisation und bei DPV2 zus. MSRD-Send and Request Data with Multicast Reply.
Unterscheidung "komplexes Automatisierungsgerät" (Master) und "einfaches Peripheriegerät" (Slave):
- Master verwenden untereinander "token passing" (sofern mehrere Master existieren)
- Master/Slave für zyklischen Nutzdatenverkehr
Datensicherung mit Hamming-Distanz=4 "durch Auswahl von besonderen Start- und Endezeichen der Telegramme, schlupffeste Synchronisierung, Paritätsbit und Kontrollbyte", Anwendung von IEC 870-5-1.
Betriebszustände:
- Operate: zyklische Übertragung von Eingangs- und Ausgangsdaten
- Clear: Eingänge werden gelesen, Ausgänge bleiben im sicheren Zustand
- Stop: Diagnose und Parametrierung, keine Nutzdatenübertragung von/zu Slaves
Konfiguration und Parametrierung
"Configuration settings" kennzeichnen die Länge der Daten der einzelnen Module. Pro Modul ein Byte, darin folgende Bits:
- 7: Konsistent über byte/word (0) oder gesamte Länge (1)
- 6: Bytes (0) oder Words (1)
- 5,4: input (01), output (10), I/O (11)
- 3..1 Datenlänge -1 (also 1..16)
"Parameter settings":
Diagnosedaten
Sechs Bytes sind durch die Norm spezifiziert: Station Status 1..3, Diag. Master Address, Ident number high/low.
weitere benutzerspezifische Bytes sind möglich.
Erweiterte Diagnose?
Slaves gehen automatisch in den "sicheren" Zustand, wenn sie keine Nutzdatentelegramme erhalten.
Ferner kommuniziert ein Slave immer nur mit einem ihm zugeordneten Master.
Funktionalität von Slaves:
- Konfiguration und Diagnose
- können einzeln aktiviert werden
- Steuerkommandos für die Synchronisation der Eingänge (Freeze-Mode) und Ausgänge (Sync-Mode)
- max. 244 (246?) Bytes Ein- und Ausgangsdaten pro Slave
Ein Slave kann aus mehreren logischen Funktionseinheiten ("Modulen") bestehen. Deren Daten werden hintereinander in einem Block übertragen (?).
Erweiterte DP-Funktionalität:
Azyklische Kommunikation: ebenfalls modular. Slot-Nummer kennzeichnet das Modul, Index den Datenblock des Moduls. Durch die Längenangabe im Request ist es auch möglich, nur Teile eines Datenblocks zu lesen/schreiben.
Dienste: Read/Write jeweils für DPM1 und DPM2 getrennt, Alarm mit Acknowledge, Status, Auf/Abbau einer DMP2-Verbindung...
FMS Communication Profile (Fieldbus Message Specification)
kennt "Object Dictionary" (OD), wesentlich komplexer. Mischbetrieb mit DP möglich, aber DP- und FMS-Komponenten kommunizieren nicht miteinander.
GSD - Gerätestammdaten-Datei
Enthalten Informationen wie "Vendor Name", "Sync_Mode_supported", Zahl der Ein. und Ausgänge. Zuordnung zum Gerät per eindeutiger "Identnummer".
Gateways
...im DUO-Wiki
Protokollchips (teilw. Stand 1999):
http://www.profichip.com/ VPC3+B 13EUR ab 5 bis <10EUR. Seit Ende 2009 auch VPC3+S mit SPI-Kommunikation im 48poligen BGA (0,8mm). "free DP-V0 Firmware". Auch als Modul "proficonn" mit Transceiver und DC/DC-Wandler etc.- Siemens (?) SPC3, SPC4, ASPC2, SPM2, LSPM2...
- DPC31 von Siemens ist ein 8051 mit SPC3: preiswert, klein.
- M2C IX1
- IAM PBM
- AGE Agent-PB
Meinungen aus Newsgroups und Foren:
Bernd Schmidt in d.s.e: "Wenn man nicht das komplette Protokoll implementiert und Daten mit ET200-Module (oder andere Slave Teilnehmer mit Profibus-DP) austauschen will braucht es nur 1.5 kByte Programm in einem Atmel-AVR."
Bernd Schmidt im Forum von mikrocontroller.net: realisiert einen minimalen Profibus-Master mit 700 Assemblerbefehlen im AVR.
Dienstleister
http://www.itm.tum.de/forschung/PROFIBUS-Zertifizierungslabor/Default.asp (dort interessant: "Typische Fehler")
