530
Softwarebeschreibung AC500 Skalierbare SPS für individuelle Automatisierung AC500- Bausteinbibliotheken AC500-Bibliotheken Fehlermeldungen der Bausteinbibliotheken Externe System-Bibliothek Interne System-Bibliothek Modbus-Bibliothek Serie90-AC500-Bibliothek ASCII-Kommunikations-Bibliothek CS31-Bibliothek Ethernet-Bibliothek ARCNET-Bibliothek PROFIBUS-Bibliothek CANopen-Bibliothek DeviceNet-Bibliothek DC541-Bibliothek Counter-Bibliothek Diagnose-Bibliothek

AC500-Bibliotheken...AC500-Bibliotheken Fehlermeldungen der Bausteinbibliotheken Externe System-Bibliothek Interne System-Bibliothek Modbus-Bibliothek Serie90-AC500-Bibliothek ASCII-Kommunikations-Bibliothek

  • Upload
    others

  • View
    39

  • Download
    0

Embed Size (px)

Citation preview

Softwarebeschreibung AC500

Skalierbare SPS für individuelle Automatisierung AC500- Bausteinbibliotheken

AC500-Bibliotheken

Fehlermeldungen der Bausteinbibliotheken

Externe System-Bibliothek

Interne System-Bibliothek

Modbus-Bibliothek

Serie90-AC500-Bibliothek

ASCII-Kommunikations-Bibliothek

CS31-Bibliothek

Ethernet-Bibliothek

ARCNET-Bibliothek

PROFIBUS-Bibliothek

CANopen-Bibliothek

DeviceNet-Bibliothek

DC541-Bibliothek

Counter-Bibliothek

Diagnose-Bibliothek

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 1 Fehlermeldungen AC500 / Stand: 04.2007

Inhalt

Fehlermeldungen der Bausteinbibliotheken .............................................................. 2

0000hex...0FFFhex - Telegrammfehler ................................................................................................... 2

1000hex...1FFFhex - Gerätefehler ............................................................................................................ 3

2000hex...2FFFhex - Schnittstellenfehler............................................................................................... 4

3000hex...3FFFhex - Protokollfehler ....................................................................................................... 5

4000hex...4FFFhex - Bausteineingangsfehler ...................................................................................... 6

5000hex...5FFFhex - Anforderungsfehler .............................................................................................. 6

6000hex...6FFFhex - Kopplerfehler.......................................................................................................... 7

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 2 Fehlermeldungen AC500 / Stand: 04.2007

Fehlermeldungen der Bausteinbibliotheken

0000hex...0FFFhex - Telegrammfehler

DEZ HEX Fehlerbeschreibung

0 0000 Kein Fehler

1 0001 COM_MOD_MAST: Fehlermeldung vom Slave ILLEGAL FUNCTION ETH_MOD_MAST: Fehlermeldung vom Slave ILLEGAL FUNCTION

2 0002 COM_MOD_MAST: Fehlermeldung vom Slave ILLEGAL DATA ADDRESS ETH_MOD_MAST: Fehlermeldung vom Slave ILLEGAL DATA ADDRESS

3 0003 COM_MOD_MAST: Fehlermeldung vom Slave ILLEGAL DATA VALUE ETH_MOD_MAST: Fehlermeldung vom Slave ILLEGAL DATA VALUE

4 0004 COM_MOD_MAST: Fehlermeldung vom Slave SLAVE DEVICE FAILURE ETH_MOD_MAST: Fehlermeldung vom Slave SLAVE DEVICE FAILURE

5 0005 COM_MOD_MAST: Fehlermeldung vom Slave ACKNOWLEDGE ETH_MOD_MAST:Fehlermeldung vom Slave ACKNOWLEDGE

6 0006 COM_MOD_MAST: Fehlermeldung vom Slave SLAVE DEVICE BUSY ETH_MOD_MAST: Fehlermeldung vom Slave SLAVE DEVICE BUSY

8 0008 COM_MOD_MAST: Fehlermeldung vom Slave MEMORY PARITY ERROR ETH_MOD_MAST: Fehlermeldung vom Slave MEMORY PARITY ERROR

10 000A COM_MOD_MAST: Fehlermeldung vom Slave GATEWAY PATH UNAVAILABLE ETH_MOD_MAST:Fehlermeldung vom Slave GATEWAY PATH UNAVAILABLE

11 000B COM_MOD_MAST: Fehlermeldung vom Slave GATEWAY TARGET DEVICE FAILED TO RESPOND ETH_MOD_MAST: Fehlermeldung vom Slave GATEWAY TARGET DEVICE FAILED TO RESPOND

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 3 Fehlermeldungen AC500 / Stand: 04.2007

1000hex...1FFFhex - Gerätefehler

DEZ HEX Fehlerbeschreibung

4097 1001 Gerät existiert nicht

4098 1002 Gerät unterstützt das Kommando nicht. Funktion wird von der Gerätefirmware/-hardware nicht unterstützt. Bausteinbibliothek neuer als Gerätefirmware. FC..: Kein "Schneller Zähler" am angegebenen Modul vorhanden

4100 1004 Fehler Betriebsart FC..: Betriebsart "0" -> "No Counter" in der Steuerungskonfiguration eingestellt

4101 1005 Ungültiger Zustand FLASH_READ: Block noch nicht beschrieben FLASH_WRITE: Block bereits beschrieben RETAIN..: Kein Programm geladen

4117 1015 Formatfehler SD..: Datei wegen ungültigem Format nicht lesbar. Daten konnten nicht bzw. nicht alle gelesen werden.

4119 1017 Fehlerhafte Länge PERSISTENT..: Daten haben ungültige Länge RETAIN..: Daten haben ungültige Länge

4120 1018 Checksummen-Fehler

4123 101B Fehler Gerätezugriff Flash..: Ressourcen nicht verfügbar PERSISTENT..: Daten konnten nicht kopiert werden, Zugriffsfehler oder keine Daten vorhanden RETAIN..: Daten konnten nicht kopiert werden, Zugriffsfehler oder keine Daten vorhanden SD..: Zugriff auf die SD-Karte nicht möglich (z. B. Speicher erschöpft, Datei bereits geöffnet etc.)

4124 101C Fehlerhafte Anzahl PERSISTENT..: Daten aufgrund der aktuellen CPU-Parameter nur teilweise geladen

4127 101F Zugriff geschützt SD..: SD-Karte schreibgeschützt

4128 1020 Fehler beim Öffnen SD..: Fehler beim Öffnen einer Datei auf der SD-Karte

4129 1021 Nicht gefunden SD..: Gesuchte Sektion in der Datei nicht gefunden TASK_INFO: Unbekannte Task

4130 1022 Ende erreicht SD..: Sektionsende bzw. Dateiende erreicht PERSISTENT..: Daten aufgrund der aktuellen CPU-Parameter nicht geladen

4131 1023 Fehler beim Lesen FLASH..: Lesefehler Datensegment. Checksumme nicht korrekt.

4132 1024 Fehler beim Schreiben FLASH..: Block nicht programmierbar SD..: Datei konnte nicht gelöscht oder geschrieben werden

8191 1FFF Nicht bereit Flash..: Der Befehl wird bereits von einer anderen Instanz ausgeführt SD..: Befehl kann nicht ausgeführt werden. Eine andere Instanz ist bereits aktiv.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 4 Fehlermeldungen AC500 / Stand: 04.2007

2000hex...2FFFhex - Schnittstellenfehler

DEZ HEX Fehlerbeschreibung

8193 2001 Ungültige Schnittstellen- bzw. Kopplernummer COM..: Schnittstelle nicht im „freien Modus“ konfiguriert

8194 2002 Schnittstelle unterstützt das Kommando nicht. Funktion wird von der Gerätefirmware nicht unterstützt. Bausteinbibliothek neuer als Gerätefirmware.

8195 2003 Ungültiger Schnittstellen- bzw. Kopplertyp. Baustein passt nicht zum Typ.

8211 2013 Zeitüberschreitung COM_MOD_MAST: Slave hat nicht in der vorgegebenen Zeit geantwortet.

8212 2014 Framing-Fehler (Fehler Baudrate, Anzahl Stopp-Bits und/oder Bits pro Zeichen)

8213 2015 Parity-Fehler

8214 2016 Idle-Fehler COM..: Zeichen-Timeout aufgetreten

8215 2017 Fehlerhafte Länge COM_MOD_MAST: Ungültige Datenlänge empfangen COM_REC: Mehr Daten empfangen als erwartet

8216 2018 Checksummen-Fehler

8217 2019 Handshake-Fehler

8218 201A Dienst fehlgeschlagen COM_REC: Unbekannte Fehlermeldung der Schnittstelle COM_SET_PROT: Schnittstellen-HW nicht ansprechbar. Initialisierung der Schnittstelle bereits beim Systemstart fehlgeschlagen.

8219 201B Zugriffsfehler IO..: Modulnummer nicht vorhanden

8220 201C Fehlerhafte Anzahl COM_SET_PROT: Ungültiger Protokollindex. Index wird von der Geräte-Firmware nicht unterstützt. IO..: Ungültige Modulnummer

8223 201F Zugriff verweigert COM..: Zugriff auf die Schnittstelle zurzeit nicht möglich. Control Builder, SYCON.net, OPC oder anderes Programm ist über die Schnittstelle eingeloggt.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 5 Fehlermeldungen AC500 / Stand: 04.2007

3000hex...3FFFhex - Protokollfehler

DEZ HEX Fehlerbeschreibung

12289 3001 Unbekanntes Protokoll oder Protokoll nicht konfiguriert.

12290 3002 Protokoll unterstützt das Kommando nicht. Funktion wird von der Gerätefirmware nicht unterstützt. Bausteinbibliothek neuer als Gerätefirmware.

12291 3003 Anderes Protokoll konfiguriert FC_DC551: Die gewählte Schnittstelle (COMx) ist nicht auf das Protokoll CS31 eingestellt.

12292 3004 Fehler Betriebsart COM_MOD_MAST: Ungültige Betriebsart (Master/Slave)

12293 3005 Fehler Protokollzustand Feldbuskoppler: .._SYS_DIAG: Master nicht im Zustand OPERATE

12311 3017 Fehlerhafte Länge ARC..: Puffer voll CAN2..: Gesamtlänge aller Messages in DATA zu groß ETH_UDP..: Puffer voll

12314 301A Ausführung fehlgeschlagen COM_SET_PROT: Initialisierung des Protokolls fehlgeschlagen

12315 301B Zugriffsfehler ARC..: Puffer existiert nicht / nicht angelegt CAN2..: Puffer existiert nicht / nicht angelegt ETH_UDP..: Puffer existiert nicht / nicht angelegt IO..: Kein Modul auf dem gewählten Steckplatz

12316 301C Fehlerhafte Anzahl IO..: Ungültige Modulnummer > max.

12319 301F Zugriff verweigert COM..: Zugriff auf die Schnittstelle zurzeit nicht möglich. Control Builder, SYCON.net, OPC oder anderes Programm ist über die Schnittstelle eingeloggt.

12320 3020 Fehler beim Öffnen ARC..: Fehler bei der Initialisierung des Protokolls. Protokoll noch nicht bereit. CAN2..: Fehler bei der Initialisierung des Protokolls. Protokoll noch nicht bereit. ETH_UDP..: Fehler bei der Initialisierung des Protokolls. Protokoll noch nicht bereit.

12325 3025 Adressfehler COM_MOD_MAST: Empfangstelegramm enthält nicht die erwartete Registeradresse

12326 3026 Fehlerhafte Funktion COM_MOD_MAST: Empfangener FCT entspricht nicht dem gesendeten FCT

12327 3027 Ungültiger Wert COM_MOD_MAST: Empfangstelegramm enthält einen nicht erwarteten Wert

16383 3FFF Nicht bereit. Ressourcen derzeit nicht verfügbar. COM_MOD_MAST: Senden derzeit nicht möglich. Andere Instanz des Bausteins sendet bereits. COM_SEND: Senden derzeit nicht möglich. Andere Instanz des Bausteins sendet bereits.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 6 Fehlermeldungen AC500 / Stand: 04.2007

4000hex...4FFFhex - Bausteineingangsfehler

Der Fehler 4xxxhex wird verwendet, wenn bei den Eingangsparametern der Funktionsbausteine Fehler festgestellt wurden. Der Fehler setzt sich wie folgt zusammen:

0 = Ungültiger Wert1 = Wert zu klein2 = Wert zu groß3 = Falsche Kombination der Parameter

X HEXXX4

1...FF = Nummer des Eingangs

5000hex...5FFFhex - Anforderungsfehler

DEZ HEX Fehlerbeschreibung

20482 5002 Die Anforderung wird nicht unterstützt (z. B. im Simulationsmode des Control Builders).

20503 5017 Fehlerhafte Länge ARC..: Ungültige Datenlänge CAN2..: Ungültiger DLC in Message ETH_UDP..: Ungültige Datenlänge

20507 501B Zugriffsfehler COM_MOD_MAST: Ungültige Speicheradresse DATA bzw. DATA + NB. Mindestens ein Datum liegt außerhalb des Zugriffsbereichs des Anwenderprogramms. Bereich umfasst verschiedene Merkerbereiche. ETH_MOD_MAST: Ungültige Speicheradresse DATA bzw. DATA + NB. Mindestens ein Datum liegt außerhalb des Zugriffsbereichs des Anwenderprogramms. Bereich umfasst verschiedene Merkerbereiche.

20508 501C Fehlerhafte Anzahl CAN2A_SEND: Ungültige Anzahl Messages an Input NUM COM_MOD_MAST: Ungültige Anzahl Daten an NB (0 oder mehr als zulässig) ETH_MOD_MAST: Ungültige Anzahl Daten an NB (0 oder mehr als zulässig)

20517 5025 Adressfehler ARC..: Ungültige IP-Adresse CAN2..: Ungültiger Identifier in Message COM_MOD_MAST: Ungültige Slave-Adresse. Broadcast in Verbindung mit dem gewählten Funktionscode nicht zulässig. ETH_MOD_MAST: Ungültige Slave-Adresse. Broadcast in Verbindung mit dem gewählten Funktionscode nicht zulässig. ETH_UDP..: Ungültige IP-Adresse

20518 5026 Fehlerhafte Funktion COM_MOD_MAST: Ungültiger Funktionscode FCT ETH_MOD_MAST: Ungültiger Funktionscode FCT

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 7 Fehlermeldungen AC500 / Stand: 04.2007

6000hex...6FFFhex - Kopplerfehler

DEZ HEX Fehlerbeschreibung

24578 6002 CAN..: Dienst wurde durch die Node mit SDO-Abbruch verworfen. Index/Subindex nicht gültig oder kein Zugang auf die angegebene Node DNM..: Resource nicht verfügbar oder ungültige Class ID DPM../DPV1..: Resource nicht verfügbar. Freier Puffer im Slave für den angeforderten Dienst nicht ausreichend.

24579 6003 DPM../DPV1..: Angeforderter Dienst (z. B. DPV1) im Slave nicht aktiv

24584 6008 DNM..: Dienst im Gerät nicht verfügbar. Lese-/Schreib-Funktion wird von der gewählten Class nicht unterstützt.

24585 6009 DNM..: Attribut ungültig oder wird nicht unterstützt DPM../DPV1..: Keine Daten vom Slave empfangen

24587 600B DNM..: Anfrage bereits in Bearbeitung

24588 600C DNM..: Konflikt des Objektstatus

24590 600E DNM..: Attribut kann nicht gesetzt werden oder das Schreiben ist nicht erlaubt

24591 600F DNM..: Erlaubnisüberprüfung fehlerhaft oder Zugriff verweigert

24592 6010 DNM..: Statuskonflikt. Gerät verbietet Ausführung.

24593 6011 CAN..: Keine Antwort von der gewählten Node DNM..: Keine Antwort vom gewählten Gerät DPM../DPV1..: Keine Antwort vom Slave empfangen

24594 6012 DPM../DPV1..: Master nicht im logischen "token ring"

24595 6013 CAN..: Gewählte Node ist nicht betriebsbereit DNM..: Nicht genügend Empfangsdaten

24596 6014 CAN..: Lokale Ressourcen stehen nicht zur Verfügung. Angeforderte Busparameter sind nicht verfügbar. Koppler ist nicht konfiguriert. DNM..: Lokale Ressourcen stehen nicht zur Verfügung. Angeforderte Busparameter sind nicht verfügbar. Koppler ist nicht konfiguriert.

24597 6015 CAN..: Parameterfehler DNM..: Parameterfehler

24598 6016 DNM..: Objekt existiert nicht

24599 6017 Ankommende Datenlänge zu groß. Interne Puffer zu klein.

24601 6019 DPM../DPV1..: Unerwartete/nicht normkonforme Reaktion vom Slave

24624 6030 CAN..: Funktionstimeout DNM..: Gerät nicht konfiguriert

24626 6032 DNM..: Formatfehler in den ankommenden Daten ETH_UDP..: TCP/UDP-Task ist nicht verfügbar oder IP-Task nicht bereit

24627 6033 CAN..: Maximale Puffergröße der Empfangsdaten überschritten ETH_UDP..: Interne Task mit Konfigurationsdaten nicht verfügbar

24628 6034 CAN..: Funktion nicht verfügbar. Code unbekannt. DNM..: Code unbekannt ETH_MOD..: Ungültiger Parameter für "ServerConnection" ETH_UDP..: Keine MAC-Adresse verfügbar

24629 6035 CAN..: Unbekannter Bereich. Puffer überschritten. DNM..: Überlauf der Bufferlänge ETH_MOD..: Ungültiger Parameter für "Task Timeout" ETH_UDP..: Wartet auf Warmstart durch die Applikation

24630 6036 CAN..: Unbekannte Funktion in HOST-Message oder Funktion noch aktiv ETH_MOD..: Ungültiger Parameter für "OBM Timeout" ETH_UDP..: Unbekanntes Flag in Startparametern DNM..: Anderer Dienst noch aktiv DPM../DPV1..: Zugriff auf die angeforderten Daten vom Slave verweigert

24631 6037 CAN..: Parametererror DNM..: Parameterfehler oder MAC_ID außerhalb des gültigen Bereichs ETH_MOD..: Ungültiger Parameter für "Mode"

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 8 Fehlermeldungen AC500 / Stand: 04.2007

ETH_UDP..: Ungültige IP-Adresse in Startparametern

24632 6038 ETH_MOD..: Ungültiger Parameter für "Send Timeout" ETH_UDP..: Ungültige Subnetmaske in Startparametern

24633 6039 CAN..: Sequenzfehler DNM..: Sequenzfehler oder eine MAC-ID mehrfach in einem Netzwerk verwendet ETH_MOD..: Ungültiger Parameter für "Connect Timeout" ETH_UDP..: Ungültige Gateway-IP in Startparametern

24634 603A ETH_MOD..: Ungültiger Parameter für "Close Timeout"

24635 603B CAN..: Datenfehler DNM..: Datenfehler ETH_MOD..: Ungültiger Parameter für "Swab" ETH_UDP..: Unbekannter Gerätetyp

24636 603C CAN..: Nodeadresse doppelt konfiguriert DNM..: Anzeige der Datensatzgesamtanzahl inkorrekt ETH_MOD..: TCP-Task ist nicht bereit ETH_UDP..: Zugriff auf IP-Adresse in der angegebenen Quelle schlug fehl

24637 603D CAN..: ADD-Tabelle inkorrekt DNM..: ADD-Tabelle inkorrekt ETH_MOD..: PLC-Task ist nicht bereit ETH_UDP..: Initialisierung der Driverlayer schlug fehl

24638 603E CAN..: Gesamtlänge der Nodeparameter inkorrekt DNM..: Größe der I/O-Konfigurationstabelle inkorrekt ETH_MOD..: Fehler bei der Initialisierung ETH_UDP..: Quelle für IP-Adresse (BOOTP, DHCP, IP-Adressparameter) nicht spezifiziert

24639 603F CAN..: Übertragungstyp unbekannt DNM..: I/O Konfiguration stimmt nicht mit der ADD-Tabelle überein

24640 6040 CAN..: Länge der PDO-cfg Daten zu groß DNM..: Parametergröße inkorrekt oder Kanal/Handler bereits in Verwendung

24641 6041 CAN..: Unbekannte Baudrate DNM..: Anzahl der definierten Inputs in der ADD-Tabelle stimmt nicht mit der I/O-Konfiguration überein

24642 6042 CAN..: COB-ID SYNC außerhalb des gültigen Bereichs DNM..: Anzahl der definierten Outputs in der ADD-Tabelle stimmt nicht mit der I/O-Konfiguration überein

24643 6043 CAN..: Wert des Synchronisationstimers ungültig DNM..: Unbekannter Datentyp in der I/O-Konfiguration

24644 6044 CAN..: Input-Offset des PDOs zu groß DNM..: Definierter Datentyp eines I/O Moduls stimmt nicht mit der definierten Datengröße überein

24645 6045 CAN..: Output-Offset des PDOs zu groß DNM..: Die kofigurierte Ausgangsadresse eines I/O Moduls liegt nicht im erlaubten Adressbereich von 3584 Bytes

24646 6046 CAN..: Inkonsistenz zwischen dem PDO und der ADD-tab DNM..: Die kofigurierte Eingangsadresse eines I/O-Moduls liegt nicht im erlaubten Adressbereich von 3584 Bytes

24647 6047 CAN..: Länge der ADD-tab inkonsistent DNM..: Unbekannter Verbindungstyp

24648 6048 CAN..: Gesamtdatenlänge inkonsistent DNM..: Mehrere gleiche Verbindungen definiert

24649 6049 CAN..: COB-ID Emergency außerhalb des zulässigen Bereichs DNM..: Der konfigurierte Wert des "Exp_Packet_Rate" einer Verbindung ist kleiner als der Wert der "Prod_Inhibit_Time"

24650 604A CAN..: COM-ID Nodeguaard außerhalb des zulässigen Bereichs DNM..: Inkonsistentes Parameterfeld "DNM_PRED_MSTSL_CFG_DATA"

24651 604B CAN..: Konfigurierte PDO-Länge größer 8 DNM..: Gerät konnte kein "Duplicate_MAC-ID check" durchführen. Falsche

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 9 Fehlermeldungen AC500 / Stand: 04.2007

Baudrate oder keine Verbindung zum Gerät möglich.

24652 604C CAN..: Anzahl der in SDO Data definierten Objekte zu groß DNM..: Wert von "usRecFragTimer" außerhalb des erlaubten Bereichs

24686 606E ETH_UDP..: Timeout aufgetreten

24687 606F ETH_MOD..: Unbekanntes Sende- oder Empfangstelegramm ETH_UDP..: Ungültiger Timeoutparameter

24688 6070 ETH_MOD..:TCP antwortet mit einem Fehler ETH_UDP..: Ungültiger Socket

24689 6071 ETH_MOD..: Keinen entsprechenden Socket gefunden ETH_UDP..: Befehl kann nicht im aktuellen Socketzustand ausgeführt werden

24690 6072 ETH_MOD..: Befehl mit ungültigem Wert

24691 6073 ETH_MOD..: Fehler im TCP-Taskstatus ETH_UDP..: Ziel-IP-Adresse nicht erreichbar

24692 6074 ETH_UDP..: Ungültiger Optionsparameter

24693 6075 ETH_MOD..: Keinen freien Socket gefunden ETH_UDP..: Ungültiger Kommandoparameter

24694 6076 ETH_MOD..: TCP-Befehl ist für einen unbekannten Socket bestimmt ETH_UDP..: Ungültige IP-Adresse oder Adresse nicht erreichbar

24695 6077 ETH_MOD..: Zeit für einen Client-Job ist abgelaufen ETH_UDP..: Ungültige Portnummer oder nicht verfügbar

24696 6078 ETH_MOD..: Socket wurde unerwartet geschlossen ETH_UDP..: Verbindung geschlossen

24697 6079 ETH_MOD..: Benutzer hat das Not-Ready-Flag gesetzt ETH_UDP..: Verbindung Reset

24698 607A ETH_MOD..: OMB-Task kann Socket nicht öffnen ETH_UDP..: Ungültiges Protokoll

24699 607B ETH_MOD..: Watchdog-Ereignis in der PLC-Task, nur im I/O-Mode ETH_UDP..: Kein Socket verfügbar

24700 607C ETH_MOD..: TCP-Task ist im Konfigurationsstatus ETH_UDP..: Ungültige MAC-Adresse

24701 607D ETH_MOD..: PLC-Task ist nicht initialisiert

24702 607E ETH_MOD..: Server-Socket wurde ohne Antwort vom Device geschlossen

24705 6081 DPM../DPV1..: DPV1 nicht im Status "OPEN"

24706 6082 ETH_UDP..: Ungültiger Modeparameter DPM../DPV1..: Ungültige Parameter vom Slave empfangen. Kommunikation wurde gestoppt.

24707 6083 ETH_UDP..: Maximale Datenlänge überschritten oder ARP cache ist voll DPM../DPV1..: Dienst noch aktiv. Parallelbetrieb nicht möglich.

24708 6084 ETH_UDP..: Maximale Messageanzahl überschritten DPM../DPV1..: Datenlänge für den reservierten Puffer zu groß

24709 6085 ETH_UDP..: Maximale Anzahl der IP-Multicastgroups überschritten DPM../DPV1..: Falscher Parameter

24710 6086 ETH_UDP..: ARP Eingang nicht in ARP-Cache gefunden

24725 6095 ETH_UDP..: Ungültige Messageantwort empfangen

24727 6097 ETH_MOD..: Ungültige Messagelänge ETH_UDP..: Ungültige Messagelänge

24728 6098 CAN..: Unbekannter Messagebefehl DNM..: Unbekannter Messagebefehl ETH_MOD..: Unbekannter Messagebefehl ETH_UDP..: Unbekannter Messagebefehl

24730 609A DPM../DPV1..: Ungültiges Messagekommando

24732 609C ETH_UDP..: Sequencefehler während Übertragung im Sequence-Message-Mode

24734 609E ETH_UDP..: Befehl kann nicht ausgeführt werden oder Befehl wird bereits ausgeführt

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 10 Fehlermeldungen AC500 / Stand: 04.2007

24736 60A0 ETH_MOD..:Fehler im Telegrammheader

24737 60A1 CAN..: Nodeadresse außerhalb des zulässigen Bereichs DNM..: Geräteadresse außerhalb des zulässigen Bereichs ETH_MOD..: Ungültige Adresse im Telegramm festgestellt DPM../DPV1..: Ungültige Slaveadresse

24738 60A2 CAN..: Ungültiger Adressbereich DNM..: Ungültiger Adressbereich

24739 60A3 CAN..: Überlauf des Datenpuffers DNM..: Überlauf des Datenpuffers ETH_MOD..: Ungültige Datenadresse

24741 60A5 CAN..: Inkorrekter Datenzähler DNM..: Inkorrekter Datenzähler ETH_MOD..: Ungültiger Datenzähler

24742 60A6 CAN..: Unbekannter Datentyp DNM..: Unbekannter Datentyp

24743 60A7 CAN..: Unbekannte Funktion DNM..: Unbekannte Funktion ETH_MOD..: OBM-Task hat einen Fehler in der Antwort der TCP-Task empfangen

24776 60C8 CAN..: Koppler ist nicht konfiguriert DNM..: Koppler ist nicht konfiguriert ETH_UDP..: Task ist nicht initialisiert

24778 60CA ETH_MOD..: OBM-Task hat kein Segment vom RCS

24779 60CB ETH_MOD..: Unbekannter oder ungültiger Sender im Befehl

24786 60D2 ETH_UDP..: Keine Konfigurationsdaten verfügbar

24788 60D4 ETH_UDP..: Fehler beim Lesen der Konfigurationsdaten

24789 60D5 ETH_UDP..: Fehler beim Erstellen der Diagnosestruktur

24794 60DA ETH_UDP..: Nicht genügend Speicher verfügbar

Softwarebeschreibung AC500

Skalierbare SPS für individuelle Automatisierung Externe System- Bausteinbibliothek

ExterneSystem-

Bibliothek

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 1 Externe System-Bibliothek AC500 / Stand: 01.2007

Inhalt

Externe System-Bibliothek ...................................................................................................... 2

Voraussetzungen für die Verwendung der Bibliothek..................................................................... 2

Besonderheiten der externen System-Bibliothek ............................................................................ 2

Bestandteile der externen System-Bibliothek ................................................................................... 2

Bausteinübersicht, geordnet nach Aufrufnamen ............................................................................. 2

BATT Auslesen des Batteriestatus ............................................................................................................. 3

CLOCK Setzen/Auslesen des Uhren- und Datumwertes ........................................................................... 4

CLOCK_DT Setzen/Auslesen des Uhren- und Datumwertes im „DT“-Format .......................................... 8

Glossar ...................................................................................................................................................... 10

Index .......................................................................................................................................................... 12

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 2 Externe System-Bibliothek AC500 / Stand: 01.2007

Externe System-Bibliothek

Voraussetzung für die Verwendung der Bibliothek

Hinweis:

Die Bausteine der externen System-Bibliothek laufen nur im RUN-Modus der SPS, nicht im Simulationsmodus.

Besonderheiten der externen System-Bibliothek

Bestandteile der externen System-Bibliothek

Folgende Funktionsbausteine sind in der externen System-Bibliothek enthalten:

Gruppe: Battery

BATT Auslesen des Batteriestatus

Gruppe: Data access

CPUCheckUserAccess reserviert für interne Verarbeitung

CPUDevltfCmd reserviert für interne Verarbeitung

Gruppe: Real-time clock

CLOCK Setzen/Auslesen des Uhren- und Datumwertes

CLOCK_DT Setzen/Auslesen des Uhren- und Datumwertes im "DT"-Format

Bausteinübersicht, geordnet nach Aufrufnamen

Zeichenerklärung:

FBmV … Funktionsblock mit Vergangenheitswerten

FBoV … Funktionsblockohne Vergangenheitswerte

F … Funktion

VE-Name Typ Funktion

BATT F Auslesen des Batteriestatus

CLOCK FBmV Setzen/Auslesen des Uhren- und Datumwertes

CLOCK_DT FBmV Setzen/Auslesen des Uhren- und Datumwertes im "DT"-Format

CPUCheckUserAcess F reserviert für interne Verarbeitung

CPUDevltfCmd F reserviert für interne Verarbeitung

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 3 Externe System-Bibliothek AC500 / Stand: 01.2007

BATT Auslesen des Batteriestatus

Der Baustein BATT liest den Ladezustand der Batterie aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysExt_AC500_V10.LIB

Bausteintyp

Funktion

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

Ausgang BYTE Ladungszustand der Batterie

Beschreibung

Mit Hilfe des Bausteins BATT kann der Ladungszustand der Batterie abgerufen werden.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, wird der Ladungszustand am der Batterie am Bausteinausgang ausgegeben.

(Ausgang) STRING(16)

Am Ausgang des Bausteins BATT wird der Ladungszustand der Batterie ausgegeben. Folgende Werte sind derzeit möglich:

0: Batterie ist leer

1: Batterie-Restladung unter 20 %

2: Batterieladung OK

Funktionsaufruf in AWL

LD BATT_EN BATT ST BATT_LOAD

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

BATT_LOAD := BATT(BATT_EN);

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 4 Externe System-Bibliothek AC500 / Stand: 01.2007

CLOCK Setzen/Auslesen des Uhren- und Datumwertes

Der Baustein ermöglicht das Stellen und Anzeigen (Auslesen) der aktuellen Uhrzeit und des aktuellen Datums.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysExt_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CLOCK Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SET Eingang BOOL Setzen der Uhrzeit und des Datums mit den Werten der Stelleingänge

HOUR_SET Eingang BYTE Stelleingang für die Stunden

MIN_SET Eingang BYTE Stelleingang für die Minuten

SEC_SET Eingang BYTE Stelleingang für die Sekunden

YEAR_SET Eingang WORD Stelleingang für die Jahre

MON_SET Eingang BYTE Stelleingang für die Monate

DAY_SET Eingang BYTE Stelleingang für die Tage

ERR Ausgang BOOL Fehlermeldung des Bausteins

HOUR_ACT Ausgang BYTE Stunde

MIN_ACT Ausgang BYTE Minute

SEC_ACT Ausgang BYTE Sekunde

YEAR_ACT Ausgang WORD Jahr

MON_ACT Ausgang BYTE Monat

DAY_YCT Ausgang BYTE Tag

W_DAY_ACT Ausgang BYTE Nummer des Wochentages

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 5 Externe System-Bibliothek AC500 / Stand: 01.2007

Beschreibung

Der Baustein ermöglicht das Stellen und Anzeigen der aktuellen Uhrzeit und des aktuellen Datums. Das Stellen der Uhr erfolgt über die Stelleingänge für die Uhrzeit und das Datum. Die an den Stelleingängen anliegenden Werte werden durch eine FALSE/TRUE-Flanke am Eingang SET übernommen. Solange am Eingang EN ein TRUE-Signal anliegt, werden an den Bausteinausgängen die aktuelle Uhrzeit und das Datum angezeigt.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, wird an den Ausgängen die aktuelle Uhrzeit und das aktuelle Datum ausgegeben.

SET BOOL (set)

Mit der FALSE/TRUE-Flanke am Eingang SET wird die Uhr auf die an den Zeit- und Datumseingängen anstehenden Werte gestellt.

HOUR_SET BYTE (hour set)

Stelleingang für die Stunden. Die Uhr arbeitet im 24-h-Mode, d. h. sie wechselt von 23:59:59 Uhr auf 0:0:0 Uhr.

Gültiger Wertebereich: 0...23.

MIN_SET BYTE (minute set)

Stelleingang für die Minuten.

Gültiger Wertebereich: 0...59.

SEC_SET BYTE (second set)

Stelleingang für die Sekunden.

Gültiger Wertebereich: 0...59.

YEAR_SET WORD (year set)

Stelleingang für die Jahre. Die Eingabe erfolgt vierstellig z. B. das Jahr 2005.

MON_SET BYTE (month set)

Stelleingang für die Monate.

Gültiger Wertebereich: 1...12.

DAY_SET BYTE (day set)

Stelleingang für die Tage (wievielter Tag des Monats).

Gültiger Wertebereich: 1...31.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist.

HOUR_ACT BYTE (hour actual)

Der aktuelle Wert für die Stunden.

MIN_ACT BYTE (minute actual)

Der aktuelle Wert für die Minuten.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 6 Externe System-Bibliothek AC500 / Stand: 01.2007

SEC_ACT BYTE (second actual)

Der aktuelle Wert für die Sekunden.

YEAR_ACT WORD (year actual)

Der aktuelle Wert für die Jahre.

MON_ACT BYTE (month actual)

Der aktuelle Wert für die Monate.

DAY_ACT BYTE (day actual)

Der aktuelle Wert für die Tage.

W_DAY_ACT BYTE (week day actual)

Der aktuelle Wert für die Wochentagsnummer

Funktionsaufruf in AWL

CAL Clock( EN := Clock_EN, SET := Clock_SET, HOUR_SET := Clock_HOUR_SET, MIN_SET := Clock_MIN_SET, SEC_SET := Clock_SEC_SET, YEAR_SET := Clock_YEAR_SET, MON_SET := Clock_MON_SET, DAY_SET := Clock_DAY_SET)

LD Clock.ERR ST Clock_ERR

LD Clock.HOUR_ACT ST Clock_HOUR_ACT

LD Clock.MIN_ACT ST Clock_MIN_ACT

LD Clock.SEC_ACT ST Clock_SEC_ACT

LD Clock.YEAR_ACT ST Clock_YEAR_ACT

LD Clock.MON_ACT ST Clock_MON_ACT

LD Clock.DAY_ACT ST Clock_DAY_ACT

LD Clock.W_DAY_ACT ST Clock_W_DAY_ACT

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 7 Externe System-Bibliothek AC500 / Stand: 01.2007

Funktionsaufruf in ST

Clock (EN := Clock_EN, SET := Clock_SET, HOUR_SET := Clock_HOUR_SET, MIN_SET := Clock_MIN_SET, SEC_SET := Clock_SEC_SET, YEAR_SET := Clock_YEAR_SET, MON_SET := Clock_MON_SET, DAY_SET := Clock_DAY_SET);

Clock_ERR := Clock.ERR; Clock_HOUR_ACT := Clock.HOUR_ACT; Clock_MIN_ACT := Clock.MIN_ACT; Clock_SEC_ACT := Clock.SEC_ACT; Clock_YEAR_ACT := Clock.YEAR_ACT; Clock_MON_ACT := Clock.MON_ACT; Clock_DAY_ACT := Clock.DAY_ACT; Clock_W_DAY_ACT := Clock.W_DAY_ACT;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 8 Externe System-Bibliothek AC500 / Stand: 01.2007

CLOCK_DT Setzen/Auslesen des Uhren- und Datumwertes im "DT"-Format

Der Baustein ermöglicht das Stellen und Anzeigen (Auslesen) der aktuellen Uhrzeit und des aktuellen Datums im standardisierten "DT"-Format..

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysExt_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CLOCK_DT Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SET Eingang BOOL Setzen der Uhrzeit und des Datums mit dem Wert des "DT_SET"-Stelleingangs

DT_SET Eingang DT Stelleingang Uhrzeit und Datum im "DT"-Format

ERR Ausgang BOOL Fehlermeldung des Bausteins

DT_ACT Ausgang DT Aktuelle Uhrzeit und Datum im "DT"-Format

Beschreibung

Der Baustein ermöglicht das Stellen und Anzeigen der aktuellen Uhrzeit und des aktuellen Datums im Standardisierten "DT" Format. Das Stellen der Uhr erfolgt über den Stelleingang "DT_SET". Der an dem Stelleingang anliegende Wert wird durch eine FALSE/TRUE-Flanke am Eingang SET übernommen. Solange am Eingang EN ein TRUE-Signal anliegt, wird an dem Bausteinausgang "DT_ACT" die aktuelle Uhrzeit und das Datum im standardisierten "DT" Format angezeigt.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, wird an dem Ausgang "DT_ACT" die aktuelle Uhrzeit und das aktuelle Datum ausgegeben.

SET BOOL (set)

Mit der FALSE/TRUE-Flanke am Eingang "SET" wird die Uhrzeit und das Datum auf den am Eingang "DT_SET" anliegenden Wert eingestellt.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 9 Externe System-Bibliothek AC500 / Stand: 01.2007

DT_SET BYTE (date and time set)

Stelleingang für das Datum und die Uhrzeit im standardisierten "DT"-Format. Die Eingabe eines "DT" Wertes fängt immer mit der Bezeichnung "DT#" an, gefolgt von der Datumsangabe, einem Bindestrich und der Uhrzeit.

Gültiger Wertebereich: DT#1970-01-01-00:00:00 bis DT#2106-02-06-06:28:15

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist.

DT_ACT BYTE (date and time actual)

Der aktuelle Wert für das Datum und die Uhrzeit im standardisierten "DT"-Format.

Funktionsaufruf in AWL

CAL ClockDt( EN := ClockDt_EN, SET := ClockDt_SET, DT_SET := ClockDt_DT_SET)

LD ClockDt.ERR ST ClockDt_ERR

LD ClockDt.DT_ACT ST ClockDt_DT_ACT

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

Clock (EN := ClockDt_EN, SET := ClockDt_SET, DT_SET := ClockDt_DT_SET);

ClockDt_ERR := ClockDt.ERR; ClockDt_DT_ACT := ClockDt.DT_ACT;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 10 Externe System-Bibliothek AC500 / Stand: 01.2007

Glossar

BOOL

Variablen vom Typ BOOL können die Wahrheitswerte TRUE und FALSE annehmen. Es werden 8 Bit Speicherplatz reserviert.

DINT

DINT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DINT Untergrenze -2147483648 Obergrenze 2147483647 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

DWORD

DWORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DWORD Untergrenze 0 Obergrenze 4294967295 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

INT

INT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ INT Untergrenze -32768 Obergrenze 32767 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

WORD

WORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ WORD Untergrenze 0 Obergrenze 65535 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 11 Externe System-Bibliothek AC500 / Stand: 01.2007

BYTE

BYTE gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ BYTE Untergrenze 0 Obergrenze 255 Speicherplatz 8 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

Funktionen

Funktionen sind Unterprogramme, die beliebig viele Eingangsparameter haben und genau ein Ergebnis-Element zurückliefern. Das zurückgelieferte Ergebnis kann von elementarem, aber auch von zusammengesetztem Datentyp sein. Eine Funktion darf also auch ein Feld, eine Struktur, ein Feld von Strukturen etc. zurückgeben.

Funktionen liefern bei gleicher Eingangsbeschaltung stets das gleiche Ergebnis (sie besitzen kein Gedächtnis.

Daraus abzuleiten sind folgende Regeln:

• Innerhalb von Funktionen dürfen globale Variablen weder gelesen noch geschrieben werden. • Innerhalb von Funktionen dürfen Absolutoperanden weder gelesen noch geschrieben werden • Innerhalb von Funktionen dürfen Funktionsblöcke nicht aufgerufen werden.

Funktionsblöcke

Funktionsblöcke sind Unterprogramme, die jeweils beliebig viele Eingangs-, Ausgangs- und interne Variablen haben. Sie werden von einem Programm aufgerufen oder von einem anderen Funktionsblock.

Da sie auch mehrfach genutzt werden können (mit jeweils anderen Datensätzen), können Funktionsblöcke (ihr Code und die Schnittstelle) als Typ betrachtet werden. Über die Zuordnung eines individuellen Datensatzes (Deklaration) wird eine Instanz des Funktionsblockes angelegt.

Anders als Funktionen können Funktionsblöcke statisch lokale Daten haben, die von einem Aufruf zum nächsten gerettet werden. Damit können z. B. Zähler realisiert werden, die ihren Zählerstand nicht vergessen dürfen. D. h. Funktionsblöcke können ein Gedächtnis haben.

Funktionen und Funktionsblöcke unterscheiden sich in zwei wesentlichen Punkten:

• Ein Funktionsblock hat beliebig viele Ausgangsparameter, die Funktion maximal einen, wobei sich die Ausgangsparameter von Funktionen und Funktionsblöcken syntaktisch unterscheiden.

• Ein Funktionsblock kann ein Gedächtnis haben, eine Funktion nicht.

Funktionsblöcke mit Vergangenheitswerten (Gedächtnis):

Bei Funktionsblöcken mit Vergangenheitswerten ist zu beachten, dass Instanznamen nicht mehrfach vergeben werden dürfen, wenn unterschiedliche Datensätze aufgerufen werden sollen.

Funktionsblöcke ohne Vergangenheitswerte (Gedächtnis):

Bei Funktionsblöcken ohne Vergangenheitswerte braucht nur eine Instanz für den FB-Typ angelegt zu werden. Diese Instanz kann für mehrere Aufrufe des FB (auch mit unterschiedlichen E/A-Werten) genutzt werden.

Der Instanzname kann beliebig definiert werden. Der Typ ist vorgegeben und ist identisch mit dem Namen des Funktionsblockes.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 12 Externe System-Bibliothek AC500 / Stand: 01.2007

Index

B

Besonderheiten der externen System-Bibliothek 2

Bestandteile der externen System-Bibliothek 2

E

Externe System-Bibliothek

BATT Auslesen des Batteriestatus 3

CLOCK Setzen/Auslesen des Uhren- und Datumwertes 4

CLOCK_DT Setzen/Auslesen des Uhren- und Datumwertes im "DT"-Format 8

U

Übersicht über die Bausteine der externen System-Bibliothek 2

Softwarebeschreibung AC500

Skalierbare SPS für individuelle Automatisierung Interne System- Bausteinbibliothek

InterneSystem-

Bibliothek

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 1 Interne System-Bibliothek AC500 / Stand: 08.2007

Inhalt

Interne System-Bibliothek .......................................................................................................... 3

Voraussetzung für die Verwendung der Bibliothek .......................................................................... 3

Besonderheiten der internen System-Bibliothek ................................................................................ 3

Bestandteile der internen System-Bibliothek ...................................................................................... 3

Bausteinübersicht, geordnet nach Aufrufnamen ............................................................................... 5

COM_SET_PROT COM-Protokoll aktiv setzen/wechseln ........................................................................... 6

CPU_INFO Typ der CPU auslesen .............................................................................................................. 9

DIAG_ACK Einen Fehler quittieren ............................................................................................................ 11

DIAG_ACK_ALL Alle Fehler einer Fehlerklasse quittieren ........................................................................ 14

DIAG_EVENT Fehlerereignis generieren................................................................................................... 16

DIAG_GET Fehler auslesen ....................................................................................................................... 19

DIAG_INFO Übersicht über noch nicht ausgelesene Fehler anzeigen...................................................... 24

FLASH_DEL Datensegment im Flash löschen........................................................................................... 26

FLASH_READ Datensatz vom Flash lesen................................................................................................ 29

FLASH_WRITE Datensatz in das Flash schreiben .................................................................................... 33

FPU_EXCEPTION_INFO Information zur FPU-Exception auslesen ......................................................... 37

IO_DIAG Diagnosedaten des I/O-Busses auslesen................................................................................... 40

IO_INFO Anzahl der Geräte am I/O-Bus auslesen .................................................................................... 43

IO_MODULE_DIAG Moduldiagnosedaten des I/O-Busses auslesen ........................................................ 45

IO_VERSION Version des I/O-Bustreibers auslesen................................................................................. 48

PERSISTENT_CLEAR Persistent-Daten im SRAM löschen ..................................................................... 50

PERSISTENT_EXPORT Persistent-Daten von RAM-DISC auf SD Card schreiben ................................. 52

PERSISTENT_IMPORT Persistent-Daten von SD Card auf RAM-DISC schreiben.................................. 54

PERSISTENT_RESTORE Persistent-Daten von RAM-DISC in das SRAM schreiben ............................. 56

PERSISTENT_SAVE Persistent-Daten von SRAM auf RAM-DISC schreiben.......................................... 58

RETAIN_CLEAR Retain-Daten im SRAM löschen..................................................................................... 60

RETAIN_EXPORT Retain-Daten von RAM-DISC auf SD Card schreiben ................................................ 62

RETAIN_IMPORT Retain-Daten von SD Card auf RAM-DISC schreiben................................................. 64

RETAIN_RESTORE Retain-Daten von RAM-DISC in das SRAM schreiben ............................................ 66

RETAIN_SAVE Retain-Daten von SRAM auf RAM-DISC schreiben......................................................... 68

RTS_INFO Version des CPU-Laufzeitsystems auslesen........................................................................... 70

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 2 Interne System-Bibliothek AC500 / Stand: 08.2007

Aufbau der Datei USRDATXX.DAT auf der SD Card.................................................................................. 72

SD_READ Datensatz von der SD Card lesen ............................................................................................ 74

SD_WRITE Datensatz auf die SD Card schreiben..................................................................................... 80

SLOT_INFO Slotinformationen auslesen ................................................................................................... 86

SYS_TIME Systemzeit auslesen................................................................................................................ 89

Glossar ........................................................................................................................................................ 90

Index ............................................................................................................................................................ 92

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 3 Interne System-Bibliothek AC500 / Stand: 08.2007

Interne System-Bibliothek

Voraussetzung für die Verwendung der Bibliothek

Hinweis:

Die Bausteine der internen System-Bibliothek laufen nur im RUN-Modus der SPS, nicht im Simulationsmodus.

Besonderheiten der internen System-Bibliothek

In der internen System-Bibliothek befinden sich alle Bausteine, die allgemein auf das System angewandt werden können. Es handelt sich um allgemeine Systemdiagnosefunktionen oder Systeminformationen. Eine Ausnahme bildet die Untergruppe "Data storage", die spezielle FLASH- und SD-Karten-Bausteine beinhaltet. Mit diesen Bausteinen können Daten wahlweise im Flash oder auf der SD-Karte abgelegt werden.

Die SysInt_AC500_V10.lib wird beim Anlegen eines neuen Control-Builder-Projektes automatisch in das Projekt eingebunden.

Bestandteile der internen System-Bibliothek

Folgende Funktionsbausteine sind in der internen System-Bibliothek enthalten:

Gruppe: Data Storage Seite

Untergruppe: Flash

FLASH_DEL Datensegment im Flash löschen 26

FLASH_READ Datensatz vom Flash lesen 29

FLASH_WRITE Datensatz in das Flash schreiben 33

Untergruppe: Persistent data

PERSISTENT_CLEAR Persistent-Daten im SRAM löschen 50

PERSISTENT_EXPORT Persistent-Daten von RAM-DISC auf SD Card schreiben 52

PERSISTENT_IMPORT Persistent-Daten von SD Card auf RAM-DISC schreiben 54

PERSISTENT_RESTORE Persistent-Daten von RAM-DISC in das SRAM schreiben 56

PERSISTENT_SAVE Persistent-Daten von SRAM auf RAM-DISC schreiben 58

Untergruppe: Retain data

RETAIN_CLEAR Retain-Daten im SRAM löschen 60

RETAIN_EXPORT Retain-Daten von RAM-DISC auf SD Card schreiben 62

RETAIN_IMPORT Retain-Daten von SD Card auf RAM-DISC schreiben 64

RETAIN_RESTORE Retain-Daten von RAM-DISC in das SRAM schreiben 66

RETAIN_SAVE Retain-Daten von SRAM auf RAM-DISC schreiben 68

Untergruppe: SD Card

SD_READ Datensatz von der SD Card lesen 74

SD_WRITE Datensatz auf die SD Card schreiben 80

Gruppe: Diagnosis Seite

DIAG_ACK Einen Fehler quittieren 11

DIAG_ACK_ALL Alle Fehler einer Fehlerklasse quittieren 14

DIAG_EVENT Fehlerereignis generieren 16

DIAG_GET Fehler auslesen 19

DIAG_INFO Übersicht über noch nicht ausgelesene Fehler anzeigen 24

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 4 Interne System-Bibliothek AC500 / Stand: 08.2007

Gruppe: I/O-Bus Seite

IO_DIAG Diagnosedaten des I/O-Busses auslesen 40

IO_INFO Anzahl der Geräte am I/O-Bus auslesen 43

IO_MODULE_DIAG Moduldiagnosedaten des I/O-Busses auslesen 45

IO_VERSION Version des I/O-Bustreibers auslesen 48

Gruppe: Serial interface Seite

COM_SET_PROT COM-Protokoll aktiv setzen/wechseln 6

Gruppe: System information Seite

CPU_INFO Typ der CPU auslesen 9

FPU_EXCEPTION_INFO Informationen zur FPU-Exception auslesen 37

RTS_INFO Version des CPU-Laufzeitsystems auslesen 70

SLOT_INFO Slotinformation auslesen 86

SYS_TIME Systemzeit auslesen 89

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 5 Interne System-Bibliothek AC500 / Stand: 08.2007

Bausteinübersicht, geordnet nach Aufrufnamen

Zeichenerklärung:

FBmV … Funktionsblock mit Vergangenheitswerten

FBoV … Funktionsblock ohne Vergangenheitswerte

F … Funktion

VE-Name Typ Funktion Seite

COM_SET_PROT FBoV COM-Protokoll aktiv setzen/wechseln 6

CPU_INFO FBoV Typ der CPU auslesen 9

DIAG_ACK FBmV Einen Fehler quittieren 11

DIAG_ACK_ALL FBmV Alle Fehler einer Fehlerklasse quittieren 14

DIAG_EVENT FBmV Fehlerereignis generieren 16

DIAG_GET FBmV Fehler auslesen 19

DIAG_INFO FBmV Übersicht über noch nicht ausgelesene Fehler anzeigen

24

FLASH_DEL FBmV Datensegment im Flash löschen 26

FLASH_READ FBmV Datensatz vom Flash lesen 29

FLASH_WRITE FBmV Datensatz in das Flash schreiben 33

FPU_EXCEPTION_INFO FBmV Informationen zur FPU-Exception auslesen 37

IO_DIAG FBoV Diagnosedaten des I/O-Busses auslesen 40

IO_INFO FBoV Anzahl der Geräte am I/O-Bus auslesen 43

IO_MODULE_DIAG FBoV Moduldiagnosedaten des I/O-Busses auslesen 45

IO_VERSION FBoV Version des I/O-Bustreibers auslesen 48

PERSISTENT_CLEAR FBoV Persistent-Daten im SRAM löschen 50

PERSISTENT_EXPORT FBoV Persistent-Daten von RAM-DISC auf SD Card schreiben

52

PERSISTENT_IMPORT FBoV Persistent-Daten von SD Card auf RAM-DISC schreiben

54

PERSISTENT_RESTORE FBoV Persistent-Daten von RAM-DISC in das SRAM schreiben

56

PERSISTENT_SAVE FBoV Persistent-Daten von SRAM auf RAM-DISC schreiben

58

RETAIN_CLEAR FBoV Retain-Daten im SRAM löschen 60

RETAIN_EXPORT FBoV Retain-Daten von RAM-DISC auf SD Card schreiben

62

RETAIN_IMPORT FBoV Retain-Daten von SD Card auf RAM-DISC schreiben

64

RETAIN_RESTORE FBoV Retain-Daten von RAM-DISC in das SRAM schreiben

66

RETAIN_SAVE FBoV Retain-Daten von SRAM auf RAM-DISC schreiben 68

RTS_INFO FBoV Version des CPU-Laufzeitsystems auslesen 70

SD_READ FBmV Datensatz von der SD Card lesen 74

SD_WRITE FBmV Datensatz auf die SD Card schreiben 80

SLOT_INFO FBoV Slotinformation auslesen 86

SYS_TIME F Systemzeit auslesen 89

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 6 Interne System-Bibliothek AC500 / Stand: 08.2007

COM_SET_PROT COM-Protokoll aktiv setzen/wechseln

Mit dem Baustein COM_SET_PROT können die seriellen Schnittstellen der CPU aus dem Anwenderprogramm aktiv auf ein vordefiniertes Protokoll gesetzt oder zwischen mehreren Protokollen gewechselt werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V2.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

COM Eingang BYTE Schnittstellenkennung (COM1 oder COM2)

IDX Eingang BYTE Indexnummer

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

In der Steuerungskonfiguration der seriellen Schnittstellen können pro COM in der Einstellung "COMx – Multi[SLOT]" mehrere Protokolle vordefiniert werden. Über den Funktionsbaustein COM_SET_PROT kann zwischen diesen Protokollen aus dem Anwenderprogramm geschaltet werden. Die steigende Flanke (FALSE -> TRUE) am Eingang EN aktiviert das Protokoll, das über die Eingänge COM und IDX gewählt wurde.

Wird der Funktionsbaustein auf eine serielle Schnittstelle angewendet, auf der nur ein Protokoll definiert wurde, wird die Schnittstelle neu initialisiert und das Protokoll neu gestartet.

Andere Anwendungen des Funktionsbausteines können z. B. ein Wechsel der Baudrate oder auch ein definierter RESET eines Protokolls sein.

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN wird die Bearbeitung des Baustein aktiviert. Sind die Werte an den Eingänge gültig, wird der Bausteinauftrag bearbeitet. Sind die Eingänge nicht gültig, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben. Die Bausteinbearbeitung ist immer dann beendet, wenn der Wert am Ausgang DONE auf TRUE wechselt. Während der Bearbeitung des Auftrags werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 7 Interne System-Bibliothek AC500 / Stand: 08.2007

COM BYTE (communication)

Am Eingang COM wird die Nummer der seriellen Schnittstelle vorgegeben.

COM = 1: COM1 COM = 2: COM2

IDX BYTE (index)

Am Eingang IDX wird die Indexnummer des Protokolls angegeben, das auf der seriellen Schnittstelle COM aktiviert werden soll. Die Zuordnung der Indexnummer zu den einzelnen Protokollen erfolgt in der Steuerungskonfiguration der seriellen Schnittstelle. Sind in der Einstellung "COMx – Multi[SLOT]" mehrere Protokolle pro Schnittstelle definiert, entspricht das Protokoll an der ersten Stelle der Indexnummer IDX = 0, das Protokoll an der zweiten Stelle entsprechend der Indexnummer IDX = 1. In allen anderen Fällen, bei den nur ein Protokoll pro Schnittstelle definiert wird, ist die Indexnummer IDX = 0 zu verwenden.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der am ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

Funktionsaufruf in AWL

CAL COM_SET_PROT( EN := ComSetProtocol_EN, COM := ComSetProtocol_COM, IDX := ComSetProtocol_IDX)

LD COM_SET_PROT.DONE ST ComSetProtocol_DONE

LD COM_SET_PROT.ERR ST ComSetProtocol_ERR

LD COM_SET_PROT.ERNO ST ComSetProtocol_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 8 Interne System-Bibliothek AC500 / Stand: 08.2007

Funktionsaufruf in ST

COM_SET_PROT (EN := ComSetProtocol_EN, COM := ComSetProtocol_COM, IDX := ComSetProtocol_IDX);

ComSetProtocol_DONE := COM_SET_PROT.DONE; ComSetProtocol_ERR := COM_SET_PROT.ERR; ComSetProtocol_ERNO := COM_SET_PROT.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 9 Interne System-Bibliothek AC500 / Stand: 08.2007

CPU_INFO Typ der CPU auslesen

Der Baustein CPU_INFO liest den Typ der CPU aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.LIB

Bausteintyp

Funktionsblock ohne Vergangenheitswerte

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

CPU_TYPE Ausgang BYTE Typ der CPU

Beschreibung

Mit Hilfe des Bausteins CPU_INFO kann der Typ der CPU ausgelesen werden.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 10 Interne System-Bibliothek AC500 / Stand: 08.2007

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

CPU_TYPE BYTE (CPU type)

Am Ausgang CPU_TYPE wird der Typ der CPU ausgegeben.

Folgende Werte sind möglich:

Wert CPU-Typ

20 PM571 21 PM581 22 PM591 23 PM582

Funktionsaufruf in AWL

CAL CPU_INFO( EN := CpuInfo_EN)

LD CPU_INFO.DONE ST CpuInfo_DONE

LD CPU_INFO.ERR ST CpuInfo_ERR

LD CPU_INFO.ERNO ST CpuInfo_ERNO

LD CPU_INFO.CPU_TYPE ST CpuInfo_CPU_TYPE

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

CPU_INFO(EN := CpuInfo_EN);

CpuInfo_DONE := CPU_INFO.DONE; CpuInfo_ERR := CPU_INFO.ERR; CpuInfo_ERNO := CPU_INFO.ERNO; CpuInfo_CPU_TYPE := CPU_INFO.CPU_TYPE;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 11 Interne System-Bibliothek AC500 / Stand: 08.2007

DIAG_ACK Einen Fehler quittieren

Der Baustein DIAG_ACK quittiert einen beliebigen Fehler.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DIAG_ACK Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

CODE Eingang DWORD Codenummer des Fehlers, der quittiert werden soll

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Mit dem Baustein DIAG_ACK kann ein beliebiger Fehler quittiert werden. Die Auswahl des Fehlers, der quittiert werden soll, erfolgt über einen 32-Bit-Code. Sollten bei dem gewählten Fehlercode mehrere Einträge in der Fehlerliste existieren, wird als nächstes immer der älteste Eintrag quittiert.

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN wird der Quittierauftrag aktiviert. Ist der Wert an dem Eingang CODE gültig, wird die Quittieranforderung bearbeitet. Ist der Wert am Eingang CODE nicht gültig, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben. Der Quittierauftrag ist immer dann beendet, wenn der Wert am Ausgang DONE auf TRUE wechselt. Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

CODE DWORD (code)

Am Eingang CODE wird die Codenummer des Fehlers angegeben, der quittiert werden soll. Die Codenummer eines existierenden Fehlers kann entweder über den Baustein DIAG_GET ausgelesen oder manuell errechnet werden. Die Fehlercodierung hat die folgende Struktur:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 12 Interne System-Bibliothek AC500 / Stand: 08.2007

31 30

0 0

29 28

x x

27 26

x x

25 24

x x

23 22

x x

21 20

x x

19 18

x x

17 16

x x

15 14

x x

13 12

x x

11 10

x x

9 8

x x

7 6

x x

5 4

x x

3 2

x x

1 0

x x

CLASS COMPONENT DEVICE MODULE CHANNEL ERROR

32 Bit –>

Bit 0 bis 5 - Fehler-Nummer Güliger Bereich: 0...63 Bit 6 bis 10 - Kanal-Nummer Güliger Bereich: 0...31

Bit 11 bis 15 - Modul-Nummer Güliger Bereich: 0...31

Bit 16 bis 23 - Geräte-Nummer Güliger Bereich: 0...255

Bit 24 bis 27 - Komponenten-Nummer Güliger Bereich: 0...15

Bit 28 bis 29 - Fehlerklasse Güliger Bereich: 1...4

Bit 30 bis 31 - Reserviert, beide Bits müssen immer 0 sein.

Gültiger Bereich : 16#3E9..16#3FFFFFFF

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Quittierauftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Quittierauftrages ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

Funktionsaufruf in AWL

CAL DiagAck( EN := DiagAck_EN CODE := DiagAck_CODE)

LD DiagAck.DONE ST DiagAck_DONE

LD DiagAck.ERR ST DiagAck_ERR

LD DiagAck.ERNO ST DiagAck_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 13 Interne System-Bibliothek AC500 / Stand: 08.2007

Funktionsaufruf in ST

DiagAck(EN := DiagAck_EN, CODE := DiagAck_CODE);

DiagAck_DONE := DiagAck.DONE; DiagAck_ERR := DiagAck.ERR; DiagAck_ERNO := DiagAck.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 14 Interne System-Bibliothek AC500 / Stand: 08.2007

DIAG_ACK_ALL Alle Fehler einer Fehlerklasse quittieren

Der Baustein DIAG_ACK_ALL quittiert alle Fehler einer Fehlerklasse.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DIAG_ACK_ALL Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

CLASS Eingang BYTE Fehlerklasse, die quittiert werden soll

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Mit dem Baustein DIAG_ACK_ALL können alle Fehler einer Fehlerklasse gleichzeitig quittiert werden. Die Auswahl der Fehlerklasse, deren Fehler quittiert werden sollen, erfolgt über den Eingang CLASS.

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN wird der Quittierauftrag aller Fehler einer am Eingang CLASS eingestellten Fehlerklasse aktiviert. Ist der Wert am Eingang CLASS gültig, wird die Quittieranforderung bearbeitet. Ist der Wert am Eingang CLASS nicht gültig, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben. Der Quittierauftrag ist immer dann beendet, wenn der Wert am Ausgang DONE auf TRUE wechselt. Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

CLASS BYTE (class)

Am Eingang CLASS wird die Fehlerklasse angegeben, deren Fehler quittiert werden sollen.

Gültiger Bereich : 1...4

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 15 Interne System-Bibliothek AC500 / Stand: 08.2007

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Quittierauftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Quittierauftrages ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

Funktionsaufruf in AWL

CAL DiagAckAll( EN := DiagAckAll_EN CODE := DiagAckAll_CLASS)

LD DiagAckAll.DONE ST DiagAckAll_DONE

LD DiagAckAll.ERR ST DiagAckAll_ERR

LD DiagAckAll.ERNO ST DiagAckAll_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DiagAckAll(EN := DiagAckAll_EN, CLASS := DiagAckAll_CLASS);

DiagAckAll_DONE := DiagAckAll.DONE; DiagAckAll_ERR := DiagAckAll.ERR; DiagAckAll_ERNO := DiagAckAll.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 16 Interne System-Bibliothek AC500 / Stand: 08.2007

DIAG_EVENT Fehlerereignis generieren

Der Baustein DIAG_EVENT generiert ein projektierbares Fehlerereignis.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DIAG_EVENT Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

COME Eingang BOOL Fehlerstatus "COME"

GO Eingang BOOL Fehlerstatus "GO"

CLASS Eingang BYTE Fehlerklasse, die quittiert werden soll

DEVICE Eingang BYTE Geräte-Nummer

MODULE Eingang BYTE Modul-Nummer

CHANNEL Eingang BYTE Kanal-Nummer

ERROR Eingang BYTE Fehler-Nummer

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Mit dem Baustein DIAG_EVENT kann ein beliebiger Fehler der Komponente 15 (Userfehler) (siehe auch Systemtechnik CPU, Diagnose) generiert werden. Jeder Fehler verfügt über drei mögliche Stati: 1)"Fehler gekommen" (COME), 2)"Fehler gegangen" (GO) und 3) "Fehler quittiert". Über den Baustein DIAG_EVENT können Fehler mit dem Status 1) und 2) generiert werden. Die Quittierung eines Fehlers erfolgt über den Bausteine DIAG_ACK, DIAG_ACK_ALL über den PLC Browser (siehe auch Systemtechnik CPU, Diagnose, PLC-Browser) oder direkt über das Display.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 17 Interne System-Bibliothek AC500 / Stand: 08.2007

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN wird die Bearbeitung des Baustein aktiviert. Sind die Werte an den Eingänge gültig, wird der Bausteinauftrag bearbeitet. Sind die Eingänge nicht gültig, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben. Die Bausteinbearbeitung ist immer dann beendet, wenn der Wert am Ausgang DONE auf TRUE wechselt. Während der Bearbeitung des Auftrags werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

COME BOOL (come)

Mit dem Eingang COME wird festgelegt, welchen Status der generierte Fehler bekommen soll. Dieser Eingang kann mit dem Eingang GO kombiniert werden.

COME = TRUE = "Fehler gekommen"

GO BOOL (go)

Mit dem Eingang GO wird festgelegt, welchen Status der generierte Fehler bekommen soll. Dieser Eingang kann mit dem Eingang COME kombiniert werden.

GO = TRUE = "Fehler gegangen"

CLASS BYTE (class)

Am Eingang "CLASS" wird angegeben, welche Fehlerklasse generiert werden soll.

Gültiger Bereich: 1...4

DEVICE BYTE (device)

Am Eingang "DEVICE" wird angegeben, welcher Gerätnummer der generierte Fehler zugeordnet werden soll.

Gültiger Bereich: 0...255

MODULE BYTE (module)

Am Eingang "MODULE" wird angegeben, welchem Modul der generierte Fehler zugeordnet werden soll.

Gültiger Bereich: 0...31

CHANNEL BYTE (channel)

Am Eingang "CHANNEL" wird angegeben, welchem Kanal der generierte Fehler zugeordnet werden soll.

Gültiger Bereich: 0...31

ERROR BYTE (error)

Am Eingang "ERROR" wird angegeben, welche Fehlernummer generiert werden soll. Um die spätere Zuordnung der Fehler zu erleichtern, ist es empfehlenswert, die bereits definierte Fehlernummern zu benutzten. Eine genaue Übersicht über alle möglichen Systemfehler und verwendeten Fehlernummern werden im entsprechendem Kapitel beschrieben. Sollte ein Fehler noch nicht mit einer Fehlernummer deklariert sein, ist es empfehlenswert, eine freie Fehlernummer zu verwenden.

Gültiger Bereich: 0...63

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 18 Interne System-Bibliothek AC500 / Stand: 08.2007

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

Funktionsaufruf in AWL

CAL DiagEvent( EN := DiagEvent_EN, COME := DiagEvent_COME, GO := DiagEvent_GO, CLASS := DiagEvent_CLASS, DEVICE := DiagEvent_DEVICE, MODULE := DiagEvent_MODULE, CHANNEL := DiagEvent_CHANNEL, ERROR := DiagEvent_ERROR)

LD DiagEvent.DONE ST DiagEvent_DONE

LD DiagEvent.ERR ST DiagEvent_ERR

LD DiagEvent.ERNO ST DiagEvent_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DiagEvent(EN := DiagEvent_EN, COME := DiagEvent_COME, GO := DiagEvent_GO, CLASS := DiagEvent_CLASS, DEVICE := DiagEvent_DEVICE, MODULE := DiagEvent_MODULE, CHANNEL := DiagEvent_CHANNEL, ERROR := DiagEvent_ERROR);

DiagEvent_DONE := DiagEvent.DONE; DiagEvent_ERR := DiagEvent.ERR; DiagEvent_ERNO := DiagEvent.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 19 Interne System-Bibliothek AC500 / Stand: 08.2007

DIAG_GET Fehler auslesen

Der Baustein "DIAG_GET" liest den ältesten noch nicht ausgelesene Fehler einer beliebigen Fehlerklasse aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DIAG_GET Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

CLASS Eingang BYTE Fehlerklasse

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

STATE Ausgang BYTE Fehlerstatus

COMP Ausgang BYTE Komponentennummer

DEVICE Ausgang BYTE Gerätenummer

MODULE Ausgang BYTE Modulnummer

CHANNEL Ausgang BYTE Kanalnummer

ERROR Ausgang BYTE Errornummer

T_COME Ausgang DT Zeitstempel, wenn Fehler gekommen ist

T_GO Ausgang DT Zeitstempel, wenn Fehler gegangen ist

T_ACK Ausgang DT Zeitstempel, wenn Fehler quittiert worden ist

CODE Ausgang DWORD Codenummer des Fehlers

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 20 Interne System-Bibliothek AC500 / Stand: 08.2007

Beschreibung

Mit dem Baustein "DIAG_GET" kann ein Fehler einer beliebigen Fehlerklasse ausgelesen werden. Jeder Fehler kann dabei nur einmal ausgelesen werden. Wird der Baustein auf eine Fehlerklasse mehrmals angewendet, wird als nächstes immer der älteste noch nicht ausgelesene Fehler ausgegeben. Wurden alle Fehler ausgelesen oder es ist kein Fehler vorhanden, wir es entsprechend am Ausgang Status angezeigt.

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN wird die Bearbeitung des Bausteins aktiviert. Ist der Wert am Eingang CLASS gültig, wird der Bausteinauftrag bearbeitet. Ist der Eingang nicht gültig, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben. Die Bausteinbearbeitung ist immer dann beendet, wenn der Wert am Ausgang DONE auf TRUE wechselt. Während der Bearbeitung des Auftrags werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

CLASS BYTE (class)

Am Eingang "CLASS" wird angegeben, welche Fehlerklasse ausgelesen werden soll

Gültiger Bereich: 1...4

DEVICE BYTE (device)

Am Eingang "DEVICE" wird angegeben, welcher Gerätnummer der generierte Fehler zugeordnet werden soll.

Gültiger Bereich: 0...255

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 21 Interne System-Bibliothek AC500 / Stand: 08.2007

STATE BOOL (state)

Am Ausgang STATE wird der aktuelle Status des ausgelesenen Fehlers ausgegeben. Der Status ist die Kombination aus den Zuständen "Fehler gekommen", "Fehler gegangen" und "Fehler quittiert". Folgende Statusnummern sind möglich:

Status Fehler gekommen gegangen quittiert

16#02 x

16#04 x 16#06 x x

16#08 x

16#0A x x

16#0C x x

16#0E x x x 16#F0 Alle Fehler ausgelesen oder keine vorhanden

COMP BYTE (component)

Am Ausgang "COMP" wird ausgegeben, welcher Komponentennummer der ausgelesene Fehler zugeordnet ist.

DEVICE BYTE (device)

Am Ausgang "DEVICE" wird ausgegeben, welcher Gerätnummer der ausgelesene Fehler zugeordnet ist.

MODULE BYTE (module)

Am Ausgang "MODULE" wird ausgegeben, welchem Modul der ausgelesene Fehler zugeordnet ist.

CHANNEL BYTE (channel)

Am Ausgang "CHANNEL" wird ausgegeben, welchem Kanal der ausgelesene Fehler zugeordnet ist.

ERROR BYTE (error)

Am Ausgang "ERROR" wird die Fehlernummer des ausgelesenen Fehlers ausgegeben.

T_COME DT (time come)

Am Ausgang T_COME wird der Zeitstempel ausgegeben, wann der ausgelesene Fehler "gekommen" ist. Ist der Zeitstempel für den Fehlerzustand "gekommen" nicht verfügbar (siehe dazu auch die Beschreibung des Ausgangs STATE), wird der Ausgang nicht beschrieben. Der Wert des Ausgangs bleibt in diesem Fall auf dem Standardwert DT#1970-01-01-00:00.

T_GO DT (time go)

Am Ausgang T_GO wird der Zeitstempel im ausgegeben, wann der ausgelesene Fehler "gegangen" ist. Ist der Zeitstempel für den Fehlerzustand "gegangen" nicht verfügbar (siehe dazu auch die Beschreibung des Ausgangs STATE) wird der Ausgang nicht beschrieben. Der Wert des Ausgangs bleibt in diesem Fall auf dem Standardwert DT#1970-01-01-00:00.

T_ACK DT (time acknowledge)

Am Ausgang T_ACK wird der Zeitstempel ausgegeben, wann der ausgelesene Fehler "quittiert" wurde. Ist der Zeitstempel für den Fehlerzustand "quittiert" nicht verfügbar (siehe dazu auch die Beschreibung des Ausgangs STATE) wird der Ausgang nicht beschrieben. Der Wert des Ausgangs bleibt in diesem Fall auf dem Standardwert DT#1970-01-01-00:00.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 22 Interne System-Bibliothek AC500 / Stand: 08.2007

CODE DWORD (code)

Am Ausgang CODE wird die Codenummer des ausgelesenen Fehlers ausgegeben. Die Fehlercodierung hat die folgende Struktur:

31 30

0 0

29 28

x x

27 26

x x

25 24

x x

23 22

x x

21 20

x x

19 18

x x

17 16

x x

15 14

x x

13 12

x x

11 10

x x

9 8

x x

7 6

x x

5 4

x x

3 2

x x

1 0

x x

CLASS COMPONENT DEVICE MODULE CHANNEL ERROR

32 Bit –>

Funktionsaufruf in AWL

CAL DiagGet( EN := DiagGet_EN, CLASS := DiagGet_CLASS)

LD DiagGet.DONE ST DiagGet_DONE

LD DiagGet.ERR ST DiagGet_ERR

LD DiagGet.ERNO ST DiagGet_ERNO LD DiagGet.STATE ST DiagGet_STATE

LD DiagGet.COMP ST DiagGet_COMP

LD DiagGet.DEVICE ST DiagGet_DEVICE LD DiagGet.MODULE ST DiagGet_MODULE

LD DiagGet.CHANNEL ST DiagGet_CHANNEL

LD DiagGet.ERROR ST DiagGet_ERROR LD DiagGet.T_COME ST DiagGet_T_COME

LD DiagGet.T_GO ST DiagGet_T_GO

LD DiagGet.T_ACK ST DiagGet_T_ACK LD DiagGet.CODE ST DiagGet_CODE

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 23 Interne System-Bibliothek AC500 / Stand: 08.2007

Funktionsaufruf in ST

DiagGet(EN := DiagGet_EN, CLASS := DiagGet_CLASS);

DiagGet_DONE := DiagGet.DONE; DiagGet_ERR := DiagGet.ERR; DiagGet_ERNO := DiagGet.ERNO; DiagGet_STATE := DiagGet.STATE; DiagGet_COMP := DiagGet.COMP; DiagGet_DEVICE := DiagGet.DEVICE; DiagGet_MODULE := DiagGet.MODULE; DiagGet_CHANNEL := DiagGet.CHANNEL; DiagGet_ERROR := DiagGet.ERROR; DiagGet_T_COME := DiagGet.T_COME; DiagGet_T_GO := DiagGet.T_GO; DiagGet_T_ACK := DiagGet.T_ACK; DiagGet_CODE := DiagGet.CODE;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 24 Interne System-Bibliothek AC500 / Stand: 08.2007

DIAG_INFO Übersicht über noch nicht ausgelesene Fehler anzeigen

Der Baustein DIAG_INFO liefert eine Übersicht über noch nicht ausgelesene Fehler.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DIAG_INFO Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

E1 Ausgang BOOL Mindestens 1 Fehler ist in der Fehlerklasse 1 vorhanden und wurde noch nicht ausgelesen

E2 Ausgang BOOL Mindestens 1 Fehler ist in der Fehlerklasse 2 vorhanden und wurde noch nicht ausgelesen

E3 Ausgang BOOL Mindestens 1 Fehler ist in der Fehlerklasse 3 vorhanden und wurde noch nicht ausgelesen

E4 Ausgang BOOL Mindestens 1 Fehler ist in der Fehlerklasse 4 vorhanden und wurde noch nicht ausgelesen

Beschreibung

Mit dem Baustein DIAG_INFO kann eine Übersicht über noch nicht ausgelesene Fehler ausgegeben werden. Die Ausgabe ist sortiert nach Fehlerklassen E1 bis E4. Ist mindestens ein Fehler in einer Fehlerklasse vorhanden und wurde noch nicht über den DIAG_GET Baustein ausgelesen, wird es an dem entsprechenden Ex-Ausgang angezeigt.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen wird es durch DONE = TRUE angezeigt.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 25 Interne System-Bibliothek AC500 / Stand: 08.2007

E1 BOOL (error class 1)

Der Ausgang E1 wird auf TRUE gesetzt, wenn min. 1 Fehler der Fehlerklasse 1 vorhanden ist und noch nicht über den Baustein DIAG_GET ausgelesen wurde. E1 = FALSE bedeutet also, dass entweder keine Fehler in dieser Fehlerklasse vorhanden sind oder, falls vorhanden, alle bereits ausgelesen wurden.

E2 BOOL (error class 2)

Der Ausgang E2 wird auf TRUE gesetzt, wenn min. 1 Fehler der Fehlerklasse 2 vorhanden ist und noch nicht über den Baustein DIAG_GET ausgelesen wurde. E2 = FALSE bedeutet also, dass entweder keine Fehler in dieser Fehlerklasse vorhanden sind oder, falls vorhanden, alle bereits ausgelesen wurden.

E3 BOOL (error class 3)

Der Ausgang E3 wird auf TRUE gesetzt, wenn min. 1 Fehler der Fehlerklasse 3 vorhanden ist und noch nicht über den Baustein DIAG_GET ausgelesen wurde. E3 = FALSE bedeutet also, dass entweder keine Fehler in dieser Fehlerklasse vorhanden sind oder, falls vorhanden, alle bereits ausgelesen wurden.

E4 BOOL (error class 4)

Der Ausgang E4 wird auf TRUE gesetzt, wenn min. 1 Fehler der Fehlerklasse 4 vorhanden ist und noch nicht über den Baustein DIAG_GET ausgelesen wurde. E4 = FALSE bedeutet also, dass entweder keine Fehler in dieser Fehlerklasse vorhanden sind oder, falls vorhanden, alle bereits ausgelesen wurden.

Funktionsaufruf in AWL

CAL DiagInfo( EN := DiagGInfo_EN)

LD DiagInfo.DONE ST DiagInfo_DONE

LD DiagInfo.E1 ST DiagInfo_E1

LD DiagInfo.E2 ST DiagInfo_E2

LD DiagInfo.E3 ST DiagInfo_E3

LD DiagInfo.E4 ST DiagInfo_E4

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DiagInfo(EN := DiagInfo_EN);

DiagInfo_DONE := DiagInfo.DONE; DiagInfo_E1 := DiagInfo.E1; DiagInfo_E2 := DiagInfo.E2; DiagInfo_E3 := DiagInfo.E3; DiagInfo_E4 := DiagInfo.E4;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 26 Interne System-Bibliothek AC500 / Stand: 08.2007

FLASH_DEL Datensegment im Flash löschen

Der Funktionsbaustein löscht ein Anwenderdatensegment im Flash. Beim Löschvorgang gehen alle Daten in diesem Datensegment verloren.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz FLASH_DEL Instanzname

EN Eingang BOOL Löschen des Datensegments mit FALSE/TRUE-Flanke

SEG Eingang BYTE Nummer des Datensegments; 1 oder 2

DONE Ausgang BOOL Löschvorgang beendet

ERR Ausgang BOOL Fehler aufgetreten, Datensegment nicht löschbar

ERNO Ausgang WORD Fehlernummer

Beschreibung

Der Funktionsbaustein löscht ein Anwenderdatensegment im Flash. Beim Löschvorgang gehen alle Daten in diesem Datensegment verloren.

Wichtiger Hinweis:

Der Zugriff auf das Flash ist nur mit den Funktionsbausteinen FLASH_DEL, FLASH_WRITE und FLASH_READ möglich.

Der Eingang SEG legt das Datensegment im Flash fest. In der Steuerung AC500 sind zwei Segmente mit je 64 kByte für den Anwender reserviert, die Nummer der Segmente ist 1 bzw. 2. Das Löschen eines Datensegments im Flash kann mehrere SPS-Zyklen dauern.

Mit einer FALSE/TRUE-Flanke am Eingang EN wird der einmalige Löschvorgang des Datensegments ausgelöst. Bis zur Beendigung des Löschvorganges (DONE = TRUE) wird der Eingang EN nicht mehr ausgewertet.

Nach Beendigung des Löschvorganges werden alle Baustein-Ausgänge aktualisiert. Bei DONE = TRUE und ERR = FALSE war das Löschen erfolgreich. Sind die Ausgänge DONE = TRUE und ERR = TRUE, dann konnte das Datensegment nicht gelöscht werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 27 Interne System-Bibliothek AC500 / Stand: 08.2007

EN BOOL (enable)

Über den Eingang EN wird die Bearbeitung des Bausteines gesteuert.

EN = FALSE/TRUE-Flanke:

Es wird der einmalige Löschvorgang des Datensegments ausgelöst. Bis zur Beendigung des Löschvorganges (DONE = TRUE) wird der Eingang EN nicht mehr ausgewertet.

EN = TRUE:

Der Baustein wird nicht bearbeitet, d. h. der Baustein verändert seine Ausgänge nicht mehr. Dies gilt nicht während eines Löschvorganges.

SEG BYTE (segment)

Am Eingang SEG wird die Nummer des Datensegments im Flash angegeben. In der Steuerung AC500 stehen zwei Datensegmente für den Anwender zur Verfügung.

Gültige Werte: 1 bzw. 2

DONE BOOL (done)

Am Ausgang DONE wird angezeigt, dass der Löschvorgang des Datensegmentes abgeschlossen ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang ERR betrachtet werden.

Es gilt:

DONE = TRUE und ERR = FALSE:

Der Löschvorgang ist abgeschlossen. Das Datensegment wurde gelöscht.

DONE = TRUE und ERR = TRUE:

Beim Löschvorgang ist ein Fehler aufgetreten. Das Datensegment konnte nicht gelöscht werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob beim Löschvorgang ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Kann das Datensegment nicht gelöscht werden, so gilt: DONE = TRUE und ERR = TRUE. Der Ausgang ERNO signalisiert die Fehlernummer.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlernummer (siehe Fehlermeldungen der Bausteinbibliotheken) ausgegeben. Dieser Ausgang muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden.

Die Funktionen FLASH_DEL, FLASH_WRITE und FLASH_READ werden im Hintergrund vom Betriebssystem ausgeführt. Da das SPS-Anwenderprogramm vorrangig ausgeführt wird, können diese Vorgänge relativ viel Zeit beanspruchen. Am Ausgang ERNO wird dann angezeigt (0x0FFF = BUSY), dass der Baustein die Bearbeitung angestoßen hat.

Während dieser Phase sind ERR=FALSE und DONE=FALSE.

Die Eingänge und Ausgänge sind nicht doppelbar und nicht invertierbar.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 28 Interne System-Bibliothek AC500 / Stand: 08.2007

Funktionsaufruf in AWL

CAL DEL_FLASH(EN:=EN_FLASH_DEL, SEG := SEG_FLASH_DEL)

LD DEL_FLASH.DONE ST DONE_FLASH_DEL

LD DEL_FLASH.ERR ST ERR_FLASH_DEL

LD DEL_FLASH.ERNO ST ERNO_FLASH_DEL

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DEL_FLASH(EN := EN_FLASH_DEL, SEG := SEG_FLASH_DEL); DONE_FLASH_DEL := DEL_FLASH.DONE; ERR_FLASH_DEL := DEL_FLASH.ERR; ERNO_FLASH_DEL := DEL_FLASH.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 29 Interne System-Bibliothek AC500 / Stand: 08.2007

FLASH_READ Datensatz vom Flash lesen

Der Funktionsbaustein liest einen Datensatz aus einem Datensegment des Flash und legt diesen Datensatz ab dem am Eingang SM projektierten Anfangsmerker ab.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz FLASH_READ Instanzname

EN Eingang BOOL Sichern eines Datensatzes mit FALSE/TRUE-Flanke

NB Eingang WORD Anzahl der Blöcke des Datensatzes; 1...1927

SEG Eingang BYTE Nummer des Datensegments; 1 oder 2

BNR Eingang WORD Nummer des Blocks im Datensegment: 0...1926

SM Eingang DWORD Adresse des Anfangsmerkers des Datensatzes

DONE Ausgang BOOL Lesevorgang beendet

ERR Ausgang BOOL Fehler aufgetreten

ERNO Ausgang WORD Fehlernummer

Beschreibung

Der Funktionsbaustein liest einen Datensatz aus einem Datensegment im Flash und legt diesen Datensatz ab dem am Eingang SM projektierten Anfangsmerker ab. Die Daten des Datensatzes wurden durch den Funktionsbaustein FLASH_WRITE im Flash abgelegt.

Wichtiger Hinweis:

Der Zugriff auf das Flash ist nur mit den Funktionsbausteinen FLASH_WRITE und FLASH_READ möglich.

Es werden NB Blöcke ab dem Block BNR im Segment SEG geholt und ab der Adresse SM abgelegt.

Pro Block werden 32 Binär-Daten oder 16 Wort-Daten oder 8 Doppelwort-Daten gelesen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 30 Interne System-Bibliothek AC500 / Stand: 08.2007

Ein Block enthält 34 Byte: 32 Byte Daten 1 Byte CRC-Prüfsumme 1 Byte Beschrieben-Kennung

(s. Abbildung am Ende der Bausteinbeschreibung)

Der Lesevorgang eines Datensatzes wird durch eine FALSE/TRUE-Flanke am Eingang EN einmalig durchgeführt. Ist beim Lesen der Daten kein Fehler aufgetreten, werden die Ausgänge DONE zu "TRUE" und ERR und ERNO zu Null gesetzt. Der Datensatz wird ab dem projektierten Anfangsmerker SM abgelegt. Die Ablage des Datensatzes kann mehrere SPS-Zyklen dauern.

Tritt beim Lesen des Datensatzes ein Fehler auf, wird DONE = TRUE und ERR = TRUE gesetzt. Die Art des Fehlers wird am Ausgang ERNO signalisiert.

EN BOOL (enable)

Über den Eingang EN wird die Bearbeitung des Bausteines gesteuert.

Es gilt:

EN = FALSE/TRUE-Flanke:

Es wird der einmalige Lesevorgang des Datensatzes durchgeführt.

EN = TRUE:

Der Baustein wird nicht bearbeitet, d. h. der Baustein verändert seine Ausgänge nicht mehr.

NB WORD (number)

Am Eingang NB wird die Anzahl der Blöcke des Datensatzes angegeben. Pro Block werden 32 Binär-Daten oder 16 Wort-Daten oder 8 Doppelwort-Daten gelesen.

Gültige Werte: 1 ... 1927

Beispiel:

- SM = ADR(%MW0.0) und NB = 1: Ablage der Daten von %MW0.0 bis %MW0.15 (1 Block = 16 Wort-Daten)

- SM = ADR(%MW0.0) und NB = 2: Ablage der Daten von %MW0.0 bis %MW0.31 (2 Blöcke = 32 Wort-Daten)

SEG BYTE (segment)

Am Eingang SEG wird die Nummer des Datensegments im Flash angegeben. In der Steuerung AC500 stehen zwei Datensegmente für den Anwender zur Verfügung.

Gültige Werte: 1 bzw. 2

BNR WORD (block number)

Am Eingang BNR wird die Nummer des Blocks im Datensegment angegeben. Gültige Werte: 0...1926

SM DWORD (source memory)

Am Eingang SM wird mittels ADR-Operator die Adresse der ersten Variablen für die Ablage des Datensatzes angegeben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 31 Interne System-Bibliothek AC500 / Stand: 08.2007

DONE BOOL (done)

Am Ausgang DONE wird angezeigt, dass der Lesevorgang des Datensatzes abgeschlossen ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang ERR betrachtet werden.

Es gilt:

DONE = TRUE und ERR = FALSE: Der Lesevorgang ist abgeschlossen. Der Datensatz wurde ab dem projektierten Eingang SM abgelegt.

DONE = TRUE und ERR = TRUE: Beim Lesevorgang ist ein Fehler aufgetreten. Der Ausgang ERNO signalisiert die Fehlernummer.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob beim Lesevorgang ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist ein Fehler aufgetreten, so gilt: DONE = TRUE und ERR = TRUE. Der Ausgang ERNO signalisiert die Fehlernummer.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlernummer (siehe auch Fehlermeldungen der Bausteinbibliotheken) ausgegeben. Dieser Ausgang muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden.

Die Funktionen FLASH_DEL, FLASH_WRITE und FLASH_READ werden im Hintergrund vom Betriebssystem ausgeführt. Da das SPS-Anwenderprogramm vorrangig ausgeführt wird, können diese Vorgänge relativ viel Zeit beanspruchen. Am Ausgang ERNO wird dann angezeigt (0x0FFF), dass der Baustein die Bearbeitung angestossen hat.

Während dieser Phase sind ERR=FALSE und DONE=FALSE.

Die Eingänge und Ausgänge sind nicht doppelbar und nicht invertierbar.

Die folgende Abbildung zeigt den Aufbau eines Flash-Segmentes.

Byte: 1 | 2 3 | 4 5 | 6 .... 29 | 30 31 | 32 33 34

Byte- Offset

Block- Nr.

Wort 1 Wort 2 Wort 3 .... Wort 15

Wort 16

CRC Beschrie- ben-Ken- nung

0 0

34 1

68 2

... ...

65450 1925

65484 1926

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 32 Interne System-Bibliothek AC500 / Stand: 08.2007

Funktionsaufruf in AWL

CAL READ_FLASH(EN := EN_FLASH_READ, NB := NB_FLASH_READ, SEG := SEG_FLASH_READ, BNR := BNR_FLASH_READ, SM := SM_FLASH_READ)

LD READ_FLASH.DONE ST DONE_FLASH_READ

LD READ_FLASH.ERR ST ERR_FLASH_READ

LD READ_FLASH.ERNO ST ERNO_FLASH_READ

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

READ_FLASH(EN := EN_FLASH_READ, NB := NB_FLASH_READ, SEG := SEG_FLASH_READ, BNR := BNR_FLASH_READ, SM := SM_FLASH_READ) DONE_FLASH_READ := READ_FLASH.DONE; ERR_FLASH_READ := READ_FLASH.ERR; ERNO_FLASH_READ := READ_FLASH.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 33 Interne System-Bibliothek AC500 / Stand: 08.2007

FLASH_WRITE Datensatz in das Flash schreiben

Der Funktionsbaustein schreibt einen Datensatz in ein Datensegment des Flash.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz FLASH_WRITE Instanzname

EN Eingang BOOL Sichern eines Datensatzes mit FALSE/TRUE-Flanke

NB Eingang WORD Anzahl der Blöcke des Datensatzes; 1...1927

SEG Eingang BYTE Nummer des Datensegments; 1 oder 2

BNR Eingang WORD Nummer des Blocks im Datensegment: 0...1926

SM Eingang DWORD Adresse des Anfangsmerkers des Datensatzes

DONE Ausgang BOOL Schreibvorgang beendet

ERR Ausgang BOOL Fehler aufgetreten

ERNO Ausgang WORD Fehlernummer

Beschreibung

Der Funktionsbaustein schreibt einen Datensatz in ein Datensegment im Flash. Dazu stehen in der Steuerung AC500 zwei Datensegmente zur Verfügung. Ein Löschvorgang (Funktionsbaustein FLASH_DEL) löscht immer ein komplettes Datensegment. Ein Datensegment besteht aus 1927 Blöcken (0 ... 1926). Jeder Block besteht aus 34 Byte.

Nach einem Löschvorgang kann jeder dieser 1927 Blöcke eines Datensegments nur einmal Daten aufnehmen. Soll ein Block, der Daten enthält, mit neuen Daten überschrieben werden, muss das gesamte Datensegment vorher gelöscht werden. Dadurch gehen alle Daten in diesem Datensegment verloren.

Der Zugriff auf das Flash ist nur mit den Funktionsbausteinen FLASH_DEL, FLASH_WRITE und FLASH_READ möglich.

Es werden NB Blöcke ab der Adresse SM geholt und ab dem Block BNR im Segment SEG gespeichert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 34 Interne System-Bibliothek AC500 / Stand: 08.2007

Pro Block werden 32 Binär-Daten oder 16 Wort-Daten oder 8 Doppelwort-Daten gelesen.

Ein Block enthält 34 Byte: 32 Byte Daten 1 Byte CRC-Prüfsumme 1 Byte Beschrieben-Kennung (s. Abbildung am Ende der Bausteinbeschreibung)

Wird der Schreibvorgang eines Datensatzes gestartet (FALSE/TRUE-Flanke am Eingang EN), dann dürfen die Daten des Datensatzes bis zur Beendigung des Schreibvorgangs (DONE = TRUE) nicht mehr verändert werden. Die Ablage des Datensatzes im Flash kann mehrere SPS-Zyklen dauern.

Mit einer FALSE/TRUE-Flanke am Eingang EN wird der einmalige Schreibvorgang des Datensatzes ausgelöst. Bis zur Beendigung der Ablage (DONE = TRUE) wird der Eingang EN nicht mehr ausgewertet.

Nach Beendigung des Schreibvorgangs werden die Baustein-Ausgänge DONE, ERR und ERNO aktualisiert. Bei DONE = TRUE und ERR = FALSE war die Sicherung erfolgreich. Sind die Ausgänge DONE = TRUE und ERR = TRUE, ist ein Fehler aufgetreten. Die Art des Fehlers signalisiert der Ausgang ERNO.

Eine erneute FALSE/TRUE-Flanke am Eingang EN startet einen neuen Schreibvorgang. Da ohne vorheriges Löschen des Datensegments keine neuen Daten in Blöcke, die bereits Daten enthalten, geschrieben werden können, muss beim nächsten Schreibvorgang der Eingang BNR auf den nächsten freien Block zeigen.

EN BOOL (enable)

Über den Eingang EN wird die Bearbeitung des Bausteines gesteuert.

EN = FALSE/TRUE-Flanke:

Es wird der einmalige Schreibvorgang des Datensatzes ausgelöst. Bis zur Beendigung des Schreibvorganges (DONE = TRUE) wird der Eingang EN nicht mehr ausgewertet.

NB WORD (number)

Am Eingang NB wird die Anzahl der Blöcke des Datensatzes angegeben. Pro Block werden 32 Binär-Daten oder 16 Wort-Daten oder 8 Doppelwort-Daten abgelegt.

Gültige Werte: 1...1927

Beispiel:

- SM = ADR(%MW0.0) und NB = 1: Ablage der Daten von %MW0.0 bis %MW0.15 (1 Block = 16 Wort-Daten)

- SM = ADR(%MW0.0) und NB = 2: Ablage der Daten von %MW0.0 bis %MW0.31 (2 Blöcke = 32 Wort-Daten)

SEG BYTE (segment)

Am Eingang SEG wird die Nummer des Datensegments im Flash angegeben. In der Steuerung AC500 stehen zwei Datensegmente für den Anwender zur Verfügung.

Gültige Werte: 1 bzw. 2

BNR WORD (block number)

Am Eingang BNR wird die Nummer des Blocks im Datensegment angegeben. Gültige Werte: 0...1926

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 35 Interne System-Bibliothek AC500 / Stand: 08.2007

SM DWORD (source memory)

Am Eingang SM wird mittels ADR-Operator die Adresse der ersten Variablen des Datensatzes angegeben. Wird der Schreibvorgang eines Datensatzes gestartet (FALSE/TRUE-Flanke am Eingang EN), dann dürfen die Daten des Datensatzes bis zur Beendigung des Schreibvorgangs (DONE = TRUE) nicht mehr verändert werden.

DONE BOOL (done)

Am Ausgang DONE wird angezeigt, dass der Schreibvorgang des Datensatzes abgeschlossen ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang ERR betrachtet werden.

Es gilt:

DONE = TRUE und ERR = FALSE: Der Schreibvorgang ist abgeschlossen. Der Datensatz wurde im Flash abgelegt.

DONE = TRUE und ERR = TRUE: Beim Schreibvorgang ist ein Fehler aufgetreten. Der Ausgang ERNO signalisiert die Fehlernummer.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob beim Schreibvorgang ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist ein Fehler aufgetreten, so gilt: DONE = TRUE und ERR = TRUE. Der Ausgang ERNO signalisiert die Fehlernummer.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlernummer (siehe auch Fehlermeldungen der Bausteinbibliotheken) ausgegeben. Dieser Ausgang muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden.

Die Eingänge und Ausgänge sind nicht doppelbar und nicht invertierbar.

Die folgende Abbildung zeigt den Aufbau eines Flash-Segmentes.

Byte: 1 | 2 3 | 4 5 | 6 .... 29 | 30 31 | 32 33 34

Byte- Offset

Block- Nr.

Wort 1 Wort 2 Wort 3 .... Wort 15

Wort 16

CRC Beschrie- ben-Ken- nung

0 0

34 1

68 2

... ...

65450 1925

65484 1926

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 36 Interne System-Bibliothek AC500 / Stand: 08.2007

Funktionsaufruf in AWL

CAL WRITE_FLASH(EN := EN_FLASH_WRITE, NB := NB_FLASH_WRITE, SEG := SEG_FLASH_WRITE, BNR := BNR_FLASH_WRITE, SM := SM_FLASH_WRITE)

LD WRITE_FLASH.DONE ST DONE_FLASH_WRITE

LD WRITE_FLASH.ERR ST ERR_FLASH_WRITE

LD WRITE_FLASH.ERNO ST ERNO_FLASH_WRITE

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

WRITE_FLASH(EN := EN_FLASH_WRITE, NB := NB_FLASH_WRITE, SEG := SEG_FLASH_WRITE, BNR := BNR_FLASH_WRITE, SM := SM_FLASH_WRITE) DONE_FLASH_WRITE := WRITE_FLASH.DONE; ERR_FLASH_WRITE := WRITE_FLASH.ERR; ERNO_FLASH_WRITE := WRITE_FLASH.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 37 Interne System-Bibliothek AC500 / Stand: 08.2007

FPU_EXCEPTION_INFO Informationen zur FPU-Exception auslesen

Der Baustein FPU_EXCEPTION_INFO liest Informationen aus, die bei einer FPU-Exception abgelegt wurden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz FPU_EXCEPTION_INFO Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Lesevorgang beendet

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

EXCEPT_ERR Ausgang BOOL FPU-Exception aufgetreten

EXCEPT_TYPE Ausgang BYTE FPU-Exception-Typ

EXCEPT_TEXT Ausgang STRING(14) FPU-Exception-Text

Beschreibung

Der Baustein FPU_EXCEPTION_INFO liest Informationen aus, die bei einer FPU-Exception abgelegt wurden. Der Auslesevorgang dauert 1 SPS-Zyklus. Sind Daten vorhanden, werden sie mit dem Setzen des Ausganges DONE = TRUE und ERR = FALSE ausgegeben. Sind bis zu dem Aufruf des Funktionsbausteines mehrere Fehler aufgetreten, wird der letzte Fehler ausgegeben.

Achtung! Dieser Baustein ist nur bei CPUs anzuwenden, die über eine FPU verfügen. Der CPU-Parameter "Reaction on floating point exception" ist dabei auf "No failure" einzustellen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 38 Interne System-Bibliothek AC500 / Stand: 08.2007

Die folgende Tabelle gibt eine Übersicht über die möglichen Rückgabewerte des Bausteines wieder.

EXCEPT_ERR EXCEPT_TYPE EXCEPT_TEXT

FALSE 16#00 "No error"

TRUE 16#01 "Zero Divide"

TRUE 16#02 "Overflow"

TRUE 16#03 "Underflow"

TRUE 16#04 "Invalid"

TRUE 16#05 "Inexact"

TRUE 16#06 "Function"

Der Fehler "Function" wird ausgelöst, wenn für eine Funktion (z. B. SQRT, LN oder ACOS) das Ergebnis nicht berechnet werden kann.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

EXCEPT_ERR BOOL (exception error)

Am Ausgang EXCEPT_ERR wird angezeigt, ob in der FPU ein Exception-Fehler aufgetreten ist.

EXCEPT_TYPE BYTE (exception type)

Am Ausgang EXCEPT_TYPE wird der Typ der aufgetretenen Exception ausgegeben.

EXCEPT_TEXT STRING(14) (exception text)

Am Ausgang EXCEPT_TEXT wird in Textform ausgegeben, welche Exception aufgetreten ist.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 39 Interne System-Bibliothek AC500 / Stand: 08.2007

Funktionsaufruf in AWL

CAL FpuInfo( EN := FpuInfo_EN)

LD FpuInfo.DONE ST FpuInfo_DONE

LD FpuInfo.ERR ST FpuInfo_ERR

LD FpuInfo.ERNO ST FpuInfo_ERNO

LD FpuInfo.EXCEPT_ERR ST FpuInfo_EXCEPT_ERR

LD FpuInfo.EXCEPT_TYPE ST FpuInfo_EXCEPT_TYPE

LD FpuInfo.EXCEPT_TEXT ST FpuInfo_EXCEPT_TEXT

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

FpuInfo(EN := FpuInfo_EN);

FpuInfo_DONE := FpuInfo.DONE; FpuInfo_ERR := FpuInfo.ERR; FpuInfo_ERNO := FpuInfo.ERNO; FpuInfo_EXCEPT_ERR := FpuInfo.EXCEPT_ERR; FpuInfo_EXCEPT_TYPE := FpuInfo.EXCEPT_TYPE; FpuInfo_EXCEPT_TEXT := FpuInfo.EXCEPT_TEXT;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 40 Interne System-Bibliothek AC500 / Stand: 08.2007

IO_DIAG Diagnosedaten des I/O-Busses auslesen

Der Baustein IO_DIAG liest die Diagnosedaten des I/O Busses aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

NUM_CYCLES_TOTAL Ausgang DWORD Gesamtanzahl der I/O-Buszyklen seit Systemstart

NUM_CYCLES_DEF Ausgang DWORD Gesamtanzahl der defekten I/O-Buszyklen seit Systemstart

NUM_DEF_SERIES_ACT Ausgang BYTE Aktuelle Anzahl der unmittelbar aufeinander folgenden defekten I/O-Buszyklen

NUM_DEF_SERIES_MAX Ausgang BYTE Max. Anzahl der unmittelbar aufeinander folgenden defekten I/O-Buszyklen seit Systemstart

Beschreibung

Mit dem Baustein IO_DIAG können die Diagnosedaten des I/O-Busses ausgelesen werden.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 41 Interne System-Bibliothek AC500 / Stand: 08.2007

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

NUM_CYCLES_TOTAL DWORD (number of cycles total)

Der Ausgang NUM_CYCLES_TOTAL gibt die Gesamtzahl der I/O-Buszyklen an, die seit dem Systemstart durchgeführt worden sind.

NUM_CYCLES_DEF DWORD (number of cycles defective)

Der Ausgang NUM_CYCLES_DEF gibt die Gesamtzahl der defekten I/O-Buszyklen an, die seit dem Systemstart aufgetreten sind.

NUM_DEF_SERIES_ACT BYTE (number of defective cycles in series actual)

Am Ausgang NUM_DEF_SERIES_ACT wird die aktuelle Anzahl der unmittelbar aufeinanderfolgenden defekten I/O-Buszyklen angezeigt.

NUM_DEF_SERIES_MAX BYTE (number of defective cycles in series maximal)

Am Ausgang NUM_DEF_SERIES_MAX wird die maximale Anzahl der unmittelbar aufeinanderfolgenden defekten I/O-Buszyklen angezeigt, die seit dem Systemstart aufgetreten sind.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 42 Interne System-Bibliothek AC500 / Stand: 08.2007

Funktionsaufruf in AWL

CAL IO_DIAG( EN := IoDiag_EN)

LD IO_DIAG.DONE ST IoDiag_DONE

LD IO_DIAG.ERR ST IoDiag_ERR

LD IO_DIAG.ERNO ST IoDiag_ERNO

LD IO_DIAG.NUM_CYCLES_TOTAL ST IoDiag_NUM_CYCLES_TOTAL

LD IO_DIAG.NUM_CYCLES_DEF ST IoDiag_NUM_CYCLES_DEF

LD IO_DIAG.NUM_DEF_SERIES_ACT ST IoDiag_NUM_DEF_SERIES_ACT

LD IO_DIAG.NUM_DEF_SERIES_MAX ST IoDiag_NUM_DEF_SERIES_MAX

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

IO_DIAG (EN := IoDiag_EN);

IoDiag_DONE := IO_DIAG.DONE; IoDiag_ERR := IO_DIAG.ERR; IoDiag_ERNO := IO_DIAG.ERNO; IoDiag_NUM_CYCLES_TOTAL := IO_DIAG.NUM_CYCLES_TOTAL; IoDiag_NUM_CYCLES_DEF := IO_DIAG.NUM_CYCLES_DEF; IoDiag_NUM_DEF_SERIES_ACT := IO_DIAG. NUM_DEF_SERIES_ACT; IoDiag_NUM_DEF_SERIES_MAX := IO_DIAG. NUM_DEF_SERIES_MAX;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 43 Interne System-Bibliothek AC500 / Stand: 08.2007

IO_INFO Anzahl der Geräte am I/O-Bus auslesen

Der Baustein IO_INFO zeigt die Anzahl der am I/O-Bus angeschlossenen Geräte an.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

NUM_MODULES Ausgang BYTE Anzahl der am I/O-Bus angeschlossenen Geräte

Beschreibung

Mit dem Baustein IO_INFO wird die Anzahl der am I/O Bus angeschlossenen Geräte angezeigt.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 44 Interne System-Bibliothek AC500 / Stand: 08.2007

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

NUM_MODULES BYTE (number of connected modules)

Der Ausgang NUM_MODULES gibt die Anzahl der Geräte an, die am I/O-Bus angeschlossen sind.

Funktionsaufruf in AWL

CAL IO_INFO( EN := IoInfo_EN)

LD IO_INFO.DONE ST IoInfo_DONE

LD IO_INFO.ERR ST IoInfo_ERR

LD IO_INFO.ERNO ST IoInfo_ERNO

LD IO_INFO.NUM_MODULES ST IoInfo_NUM_MODULES

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

IO_INFO (EN := IoInfo_EN);

IoInfo_DONE := IO_INFO.DONE; IoInfo_ERR := IO_INFO.ERR; IoInfo_ERNO := IO_INFO.ERNO; IoInfo_NUM_ MODULES := IO_INFO.NUM_ MODULES;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 45 Interne System-Bibliothek AC500 / Stand: 08.2007

IO_MODULE_DIAG Moduldiagnosedaten des I/O-Busses auslesen

Der Baustein IO_MODULE_DIAG liest die Moduldiagnosedaten des I/O Busses aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

MODULE Eingang BYTE Modulnummer

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

NUM_CYCLES_DEF Ausgang DWORD Gesamtanzahl der defekten I/O-Buszyklen seit Systemstart

NUM_DEF_SERIES_ACT Ausgang BYTE Aktuelle Anzahl der unmittelbar aufeinander folgenden defekten I/O-Buszyklen

NUM_DEF_SERIES_MAX Ausgang BYTE Max. Anzahl der unmittelbar aufeinander folgenden defekten I/O-Buszyklen seit Systemstart

FAILURE Ausgang BOOL Modul ausgefallen

Beschreibung

Mit dem Baustein IO_MODULE_DIAG werden die Moduldiagnosedaten des I/O Busses ausgelesen.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 46 Interne System-Bibliothek AC500 / Stand: 08.2007

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

NUM_CYCLES_DEF DWORD (number of cycles defective)

Der Ausgang NUM_CYCLES_DEF gibt die Gesamtzahl der defekten I/O-Buszyklen an, die seit dem Systemstart an dem gewählten Modul aufgetreten sind.

NUM_DEF_SERIES_ACT BYTE (number of defective cycles in series actual)

Am Ausgang NUM_DEF_SERIES_ACT wird die aktuelle Anzahl der unmittelbar aufeinanderfolgenden defekten I/O-Buszyklen angezeigt, die an dem gewählten Modul aufgetreten sind.

NUM_DEF_SERIES_MAX BYTE (number of defective cycles in series maximal)

Am Ausgang NUM_DEF_SERIES_MAX wird die maximale Anzahl der unmittelbar aufeinanderfolgenden defekten I/O-Buszyklen angezeigt, die seit dem Systemstart an dem gewählten Modul aufgetreten sind.

FAILURE BOOL (failure)

Der Ausgang FAILURE zeigt das Überschreiten der maximalen Anzahl der aufeinanderfolgenden defekten I/O-Buszyklen an. In diesem Fall ist das Modul als ausgefallen zu werten. Der Ausfall eines Moduls führt zum Stoppen des gesamten I/O-Busses.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 47 Interne System-Bibliothek AC500 / Stand: 08.2007

Funktionsaufruf in AWL

CAL IO_MODULE_DIAG( EN := IoModuleDiag_EN, MODULE := IoModuleDiag_MODULE)

LD IO_MODULE_DIAG.DONE ST IoModuleDiag_DONE

LD IO_MODULE_DIAG.ERR ST IoModuleDiag_ERR

LD IO_MODULE_DIAG.ERNO ST IoModuleDiag_ERNO

LD IO_MODULE_DIAG.NUM_CYCLES_DEF ST IoModuleDiag_NUM_CYCLES_DEF

LD IO_MODULE_DIAG.NUM_DEF_SERIES_ACT ST IoModuleDiag_NUM_DEF_SERIES_ACT

LD IO_MODULE_DIAG.NUM_DEF_SERIES_MAX ST IoModuleDiag_NUM_DEF_SERIES_MAX

LD IO_MODULE_DIAG.FAILURE ST IoModuleDiag_FAILURE

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

IO_MODULE_DIAG (EN := IoModuleDiag_EN, MODULE := IoModuleDiag_MODULE);

IoModuleDiag_DONE := IO_ MODULE_DIAG.DONE; IoModuleDiag_ERR := IO_ MODULE_DIAG.ERR; IoModuleDiag_ERNO := IO_ MODULE_DIAG.ERNO; IoModuleDiag_NUM_CYCLES_DEF := IO_ MODULE_DIAG.NUM_CYCLES_DEF; IoModuleDiag_NUM_DEF_SERIES_ACT := IO_ MODULE_DIAG. NUM_DEF_SERIES_ACT; IoModuleDiag_NUM_DEF_SERIES_MAX:= IO_ MODULE_DIAG. NUM_DEF_SERIES_MAX; IoModuleDiag_FAILURE := IO_ MODULE_DIAG.FAILURE;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 48 Interne System-Bibliothek AC500 / Stand: 08.2007

IO_VERSION Version des I/O-Bustreibers auslesen

Der Baustein IO_VERSION liest die Version des IO-Bustreibers aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

IO_VERSION Ausgang WORD Version des I/O-Bustreibers

Beschreibung

Der Baustein IO_VERSION liest die Version des IO-Bustreibers aus.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 49 Interne System-Bibliothek AC500 / Stand: 08.2007

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

IO_VERSION WORD (IO bus driver version)

Am Ausgang IO_VERSION wird die Version des I/O-Bustreibers ausgegeben.

Beispiel: IO_VERSION = 1000 -> V1.0.0.0

Funktionsaufruf in AWL

CAL IO_VERSION( EN := IoVersion_EN)

LD IO_VERSION.DONE ST IoVersion_DONE

LD IO_VERSION.ERR ST IoVersion_ERR

LD IO_VERSION.ERNO ST IoVersion_ERNO

LD IO_VERSION.IO_VERSION ST IoVersion_IO_VERSION

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

IO_VERSION (EN := IoVersion_EN);

IoVersion_DONE := IO_VERSION.DONE; IoVersion_ERR := IO_VERSION.ERR; IoVersion_ERNO := IO_VERSION.ERNO; IoVersion_IO_VERSION := IO_VERSION.IO_VERSION;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 50 Interne System-Bibliothek AC500 / Stand: 08.2007

PERSISTENT_CLEAR Persistent-Daten im SRAM löschen

Mit dem Baustein PERSISTENT_CLEAR können alle beschriebenen Daten im PERSISTENT-Bereich oder %R-Bereich gelöscht werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte (Programm)

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Durch eine steigende Flanke (False -> True) am Eingang EN werden durch den Baustein PERSISTENT_CLEAR alle Daten im PERSISTENT-Bereich oder %R-Bereich gelöscht.

Die Verwendung des Bausteins setzt voraus, dass in der Steuerungskonfiguration der CPU ein gültiger PERSISTENT-Bereich oder %R-Bereich eingestellt ist.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 51 Interne System-Bibliothek AC500 / Stand: 08.2007

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der am ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

Funktionsaufruf in AWL

CAL PERSISTENT_CLEAR( EN := PersistentClear_EN)

LD PERSISTENT_CLEAR.DONE ST PersistentClear_DONE

LD PERSISTENT_CLEAR.ERR ST PersistentClear_ERR

LD PERSISTENT_CLEAR.ERNO ST PersistentClear_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

PERSISTENT_CLEAR (EN := PersistentClear_EN);

PersistentClear_DONE := PERSISTENT_CLEAR.DONE; PersistentClear_ERR := PERSISTENT_CLEAR.ERR; PersistentClear_ERNO := PERSISTENT_CLEAR.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 52 Interne System-Bibliothek AC500 / Stand: 08.2007

PERSISTENT_EXPORT Persistent-Daten von RAM-DISC auf SD Card schreiben

Mit dem Baustein PERSISTENT_EXPORT können alle beschriebenen Daten im PERSISTENT-Bereich oder %R-Bereich von der RAM-DISC auf die SD Card geschrieben werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte (Programm)

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang ARRAY [0..7] OF WORD

Fehlernummer der entsprechenden Segmente, abgespeichert in einem Array [0..7]

NUM Ausgang WORD Anzahl der beschriebenen Segmente

Beschreibung

Durch eine steigende Flanke (False -> True) am Eingang EN werden durch den Baustein PERSISTENT_EXPORT alle Daten im PERSISTENT-Bereich oder %R-Bereich von der RAM-DISC auf die SD Card geschrieben.

Die Verwendung des Bausteins setzt voraus, dass in der Steuerungskonfiguration der CPU ein gültiger PERSISTENT-Bereich oder %R-Bereich eingestellt ist.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 53 Interne System-Bibliothek AC500 / Stand: 08.2007

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Der Ausgang ERNO besteht aus einem ARRAY [0..7] in dem die aufgetretenen Fehlernummern der einzelnen Segmente abgelegt werden. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

NUM WORD (number of areas)

Ausgang NUM wird die Anzahl der beschriebenen Segmente ausgegeben.

Funktionsaufruf in AWL

CAL PERSISTENT_EXPORT( EN := PersistentExport_EN)

LD PERSISTENT_EXPORT.DONE ST PersistentExport_DONE

LD PERSISTENT_EXPORT.ERR ST PersistentExport_ERR

LD PERSISTENT_EXPORT.ERNO ST PersistentExport_ERNO

LD PERSISTENT_EXPORT.NUM ST PersistentExport_NUM

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

PERSISTENT_EXPORT (EN := PersistentExport_EN);

PersistentExport_DONE := PERSISTENT_EXPORT.DONE; PersistentExport_ERR := PERSISTENT_EXPORT.ERR; PersistentExport_ERNO := PERSISTENT_EXPORT.ERNO; PersistentExport_NUM := PERSISTENT_EXPORT.NUM;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 54 Interne System-Bibliothek AC500 / Stand: 08.2007

PERSISTENT_IMPORT Persistent-Daten von SD Card auf RAM-DISC schreiben

Mit dem Baustein PERSISTENT_IMPORT können gespeicherte Persistent-Daten von der SD Card auf die RAM-DISC geschrieben werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte (Programm)

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang ARRAY [0..7] OF WORD

Fehlernummer der entsprechenden Segmente, abgespeichert in einem Array [0..7]

NUM Ausgang WORD Anzahl der beschriebenen Segmente

Beschreibung

Durch eine steigende Flanke (False -> True) am Eingang EN werden durch den Baustein PERSISTENT_IMPORT die gespeicherten Persistent-Daten von der SD Card auf die RAM-DISC geschrieben.

Die Verwendung des Bausteins setzt voraus, dass in der Steuerungskonfiguration der CPU ein gültiger PERSISTENT-Bereich oder %R-Bereich eingestellt ist.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 55 Interne System-Bibliothek AC500 / Stand: 08.2007

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Der Ausgang ERNO besteht aus einem ARRAY [0..7] in dem die aufgetretenen Fehlernummern der einzelnen Segmente abgelegt werden. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

NUM WORD (number of areas)

Ausgang NUM wird die Anzahl der beschriebenen Segmente ausgegeben.

Funktionsaufruf in AWL

CAL PERSISTENT_IMPORT( EN := PersistentImport_EN)

LD PERSISTENT_IMPORT.DONE ST PersistentImport_DONE

LD PERSISTENT_IMPORT.ERR ST PersistentImport_ERR

LD PERSISTENT_IMPORT.ERNO ST PersistentImport_ERNO

LD PERSISTENT_IMPORT.NUM ST PersistentImport_NUM

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

PERSISTENT_IMPORT (EN := PersistentImport_EN);

PersistentImport_DONE := PERSISTENT_IMPORT.DONE; PersistentImport_ERR := PERSISTENT_IMPORT.ERR; PersistentImport_ERNO := PERSISTENT_IMPORT.ERNO; PersistentImport_NUM := PERSISTENT_IMPORT.NUM;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 56 Interne System-Bibliothek AC500 / Stand: 08.2007

PERSISTENT_RESTORE Persistent-Daten von RAM-DISC in das SRAM schreiben

Mit dem Baustein PERSISTENT_RESTORE können Persistent-Daten von der RAM-DISC in das SRAM geschrieben werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte (Programm)

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang ARRAY [0..7] OF WORD

Fehlernummer der entsprechenden Segmente, abgespeichert in einem Array [0..7]

NUM Ausgang WORD Anzahl der beschriebenen Segmente

Beschreibung

Durch eine steigende Flanke (False -> True) am Eingang EN werden durch den Baustein PERSISTENT_RESTORE alle Daten im PERSISTENT-Bereich oder %R-Bereich von der RAM-DISC in das SRAM geschrieben.

Die Verwendung des Bausteins setzt voraus, dass in der Steuerungskonfiguration der CPU ein gültiger PERSISTENT-Bereich oder %R-Bereich eingestellt ist.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 57 Interne System-Bibliothek AC500 / Stand: 08.2007

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Der Ausgang ERNO besteht aus einem ARRAY [0..7] in dem die aufgetretenen Fehlernummern der einzelnen Segmente abgelegt werden. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

NUM WORD (number of areas)

Ausgang NUM wird die Anzahl der beschriebenen Segmente ausgegeben.

Funktionsaufruf in AWL

CAL PERSISTENT_RESTORE( EN := PersistentRestore_EN)

LD PERSISTENT_RESTORE.DONE ST PersistentRestore_DONE

LD PERSISTENT_RESTORE.ERR ST PersistentRestore_ERR

LD PERSISTENT_RESTORE.ERNO ST PersistentRestore_ERNO

LD PERSISTENT_RESTORE.NUM ST PersistentRestore_NUM

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

PERSISTENT_RESTORE (EN := PersistentRestore_EN);

PersistentRestore_DONE := PERSISTENT_RESTORE.DONE; PersistentRestore_ERR := PERSISTENT_RESTORE.ERR; PersistentRestore_ERNO := PERSISTENT_RESTORE.ERNO; PersistentRestore_NUM := PERSISTENT_RESTORE.NUM;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 58 Interne System-Bibliothek AC500 / Stand: 08.2007

PERSISTENT_SAVE Persistent-Daten von SRAM auf RAM-DISC schreiben

Mit dem Baustein PERSISTENT_SAVE können Persistent-Daten vom SRAM in die RAM-DISC geschrieben werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte (Programm)

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang ARRAY [0..7] OF WORD

Fehlernummer der entsprechenden Segmente, abgespeichert in einem Array [0..7]

NUM Ausgang WORD Anzahl der beschriebenen Segmente

Beschreibung

Durch eine steigende Flanke (False -> True) am Eingang EN werden durch den Baustein PERSISTENT_SAVE alle Daten im PERSISTENT-Bereich oder %R-Bereich vom SRAM in die RAM-DISC geschrieben.

Die Verwendung des Bausteins setzt voraus, dass in der Steuerungskonfiguration der CPU ein gültiger PERSISTENT-Bereich oder %R-Bereich eingestellt ist.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 59 Interne System-Bibliothek AC500 / Stand: 08.2007

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Der Ausgang ERNO besteht aus einem ARRAY [0..7] in dem die aufgetretenen Fehlernummern der einzelnen Segmente abgelegt werden. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

NUM WORD (number of areas)

Ausgang NUM wird die Anzahl der beschriebenen Segmente ausgegeben.

Funktionsaufruf in AWL

CAL PERSISTENT_SAVE( EN := PersistentSave_EN)

LD PERSISTENT_SAVE.DONE ST PersistentSave_DONE

LD PERSISTENT_SAVE.ERR ST PersistentSave_ERR

LD PERSISTENT_SAVE.ERNO ST PersistentSave_ERNO

LD PERSISTENT_SAVE.NUM ST PersistentSave_NUM

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

PERSISTENT_SAVE (EN := PersistentSave_EN);

PersistentSave_DONE := PERSISTENT_SAVE.DONE; PersistentSave_ERR := PERSISTENT_SAVE.ERR; PersistentSave_ERNO := PERSISTENT_SAVE.ERNO; PersistentSave_NUM := PERSISTENT_SAVE.NUM;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 60 Interne System-Bibliothek AC500 / Stand: 08.2007

RETAIN_CLEAR Retain-Daten im SRAM löschen

Mit dem Baustein RETAIN_CLEAR können alle beschriebenen Retain-Daten aus dem SRAM gelöscht werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte (Programm)

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Durch eine steigende Flanke (False -> True) am Eingang EN werden durch den Baustein RETAIN_CLEAR alle Daten im Retain-Bereich aus dem SRAM gelöscht.

Retain-Variablen werden mit dem Schlüsselwort RETAIN deklariert. Diese Variablen behalten ihre Werte nach einem unkontrollierten Beenden wie auch nach normalem Aus- und Einschalten der Steuerung (bzw. beim Kommando 'Online' 'Reset'). Bei erneutem Start des Programms wird mit den gespeicherten Werten weitergearbeitet.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 61 Interne System-Bibliothek AC500 / Stand: 08.2007

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der am ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

Funktionsaufruf in AWL

CAL RETAIN_CLEAR( EN := RetainClear_EN)

LD RETAIN_CLEAR.DONE ST RetainClear_DONE

LD RETAIN_CLEAR.ERR ST RetainClear_ERR

LD RETAIN_CLEAR.ERNO ST RetainClear_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

RETAIN_CLEAR (EN := RetainClear_EN);

RetainClear_DONE := RETAIN_CLEAR.DONE; RetainClear_ERR := RETAIN_CLEAR.ERR; RetainClear_ERNO := RETAIN_CLEAR.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 62 Interne System-Bibliothek AC500 / Stand: 08.2007

RETAIN_EXPORT Retain-Daten von RAM-DISC auf SD Card schreiben

Mit dem Baustein Retain_EXPORT können alle Retain-Daten von der RAM-DISC auf die SD Card geschrieben werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte (Programm)

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Durch eine steigende Flanke (False -> True) am Eingang EN werden durch den Baustein RETAIN_EXPORT alle Daten im Retain-Bereich von der RAM-DISC auf die SD Card geschrieben werden.

Retain-Variablen werden mit dem Schlüsselwort RETAIN deklariert. Diese Variablen behalten ihre Werte nach einem unkontrollierten Beenden wie auch nach normalem Aus- und Einschalten der Steuerung (bzw. beim Kommando 'Online' 'Reset'). Bei erneutem Start des Programms wird mit den gespeicherten Werten weitergearbeitet.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 63 Interne System-Bibliothek AC500 / Stand: 08.2007

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

Funktionsaufruf in AWL

CAL RETAIN_EXPORT( EN := RetainExport_EN)

LD RETAIN_EXPORT.DONE ST RetainExport_DONE

LD RETAIN_EXPORT.ERR ST RetainExport_ERR

LD RETAIN_EXPORT.ERNO ST RetainExport_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

RETAIN_EXPORT (EN := RetainExport_EN);

RetainExport_DONE := RETAIN_EXPORT.DONE; RetainExport_ERR := RETAIN_EXPORT.ERR; RetainExport_ERNO := RETAIN_EXPORT.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 64 Interne System-Bibliothek AC500 / Stand: 08.2007

RETAIN_IMPORT Retain-Daten von SD Card auf RAM-DISC schreiben

Mit dem Baustein Retain_IMPORT können Retain-Daten von der SD Card auf die RAM-DISC geschrieben werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte (Programm)

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Durch eine steigende Flanke (False -> True) am Eingang EN werden durch den Baustein RATAIN_IMPORT alle Daten im Retain-Bereich von der SD Card auf die RAM-DISC geschrieben.

Retain-Variablen werden mit dem Schlüsselwort RETAIN deklariert. Diese Variablen behalten ihre Werte nach einem unkontrollierten Beenden wie auch nach normalem Aus- und Einschalten der Steuerung (bzw. beim Kommando 'Online' 'Reset'). Bei erneutem Start des Programms wird mit den gespeicherten Werten weitergearbeitet.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 65 Interne System-Bibliothek AC500 / Stand: 08.2007

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

Funktionsaufruf in AWL

CAL RETAIN_IMPORT( EN := RetainImport_EN)

LD RETAIN_IMPORT.DONE ST RetainImport_DONE

LD RETAIN_IMPORT.ERR ST RetainImport_ERR

LD RETAIN_IMPORT.ERNO ST RetainImport_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

RETAIN_IMPORT (EN := RetainImport_EN);

RetainImport_DONE := RETAIN_IMPORT.DONE; RetainImport_ERR := RETAIN_IMPORT.ERR; RetainImport_ERNO := RETAIN_IMPORT.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 66 Interne System-Bibliothek AC500 / Stand: 08.2007

RETAIN_RESTORE Retain-Daten von RAM-DISC in das SRAM schreiben

Mit dem Baustein RETAIN_RESTORE können Retain-Daten von der RAM-DISC in das SRAM geschrieben werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte (Programm)

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Durch eine steigende Flanke (False -> True) am Eingang EN werden durch den Baustein RETAIN_RESTORE alle Daten im Retain-Bereich von der RAM-DISC in das SRAM geschrieben.

Retain-Variablen werden mit dem Schlüsselwort RETAIN deklariert. Diese Variablen behalten ihre Werte nach einem unkontrollierten Beenden wie auch nach normalem Aus- und Einschalten der Steuerung (bzw. beim Kommando 'Online' 'Reset'). Bei erneutem Start des Programms wird mit den gespeicherten Werten weitergearbeitet.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 67 Interne System-Bibliothek AC500 / Stand: 08.2007

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

Funktionsaufruf in AWL

CAL RETAIN_RESTORE( EN := RetainRestore_EN)

LD RETAIN_RESTORE.DONE ST RetainRestore_DONE

LD RETAIN_RESTORE.ERR ST RetainRestore_ERR

LD RETAIN_RESTORE.ERNO ST RetainRestore_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

RETAIN_RESTORE (EN := RetainRestore_EN);

RetainRestore_DONE := RETAIN_RESTORE.DONE; RetainRestore_ERR := RETAIN_RESTORE.ERR; RetainRestore_ERNO := RETAIN_RESTORE.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 68 Interne System-Bibliothek AC500 / Stand: 08.2007

RETAIN_SAVE Retain-Daten von SRAM auf RAM-DISC schreiben

Mit dem Baustein RETAIN_SAVE können Retain-Daten vom SRAM in die RAM-DISC geschrieben werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte (Programm)

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Durch eine steigende Flanke (False -> True) am Eingang EN werden durch den Baustein RETAIN_SAVE alle Daten im Retain-Bereich vom SRAM in die RAM-DISC geschrieben.

Retain-Variablen werden mit dem Schlüsselwort RETAIN deklariert. Diese Variablen behalten ihre Werte nach einem unkontrollierten Beenden wie auch nach normalem Aus- und Einschalten der Steuerung (bzw. beim Kommando 'Online' 'Reset'). Bei erneutem Start des Programms wird mit den gespeicherten Werten weitergearbeitet.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 69 Interne System-Bibliothek AC500 / Stand: 08.2007

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

Funktionsaufruf in AWL

CAL RETAIN_SAVE( EN := RetainSave_EN)

LD RETAIN_SAVE.DONE ST RetainSave_DONE

LD RETAIN_SAVE.ERR ST RetainSave_ERR

LD RETAIN_SAVE.ERNO ST RetainSave_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

RETAIN_SAVE (EN := RetainSave_EN);

RetainSave_DONE := RETAIN_SAVE.DONE; RetainSave_ERR := RETAIN_SAVE.ERR; RetainSave_ERNO := RETAIN_SAVE.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 70 Interne System-Bibliothek AC500 / Stand: 08.2007

RTS_INFO Version des CPU-Laufzeitsystems auslesen

Der Baustein RTS_INFO liest die Version des CPU-Laufzeitsystems aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

RTS_VERSION Ausgang WORD Version des CPU-Laufzeitsystems

DISP_VERSION Ausgang WORD Software-Version des Displays

Beschreibung

Mit Hilfe des Bausteins RTS_INFO kann die Version des CPU-Laufzeitsystems ausgelesen werden.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 71 Interne System-Bibliothek AC500 / Stand: 08.2007

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der am ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

RTS_VERSION WORD (RTS version)

Am Ausgang RTS_VERSION wird die Version des CPU-Laufzeitsystems ausgegeben. Das obere BYTE des Eintrags stellt die Hauptversion, das untere BYTE die Unterversion des Laufzeitsystems dar.

Beispiel: RTS_VERSION = 16#0110 -> V01.16

DISP_VERSION WORD (display version)

Am Ausgang DISP_VERSION wird die Softwareversion des Displays ausgegeben. Das obere BYTE des Eintrags stellt die Hauptversion, das untere BYTE die Unterversion der Display-Software dar.

Beispiel: DISP_VERSION = 16#0110 -> V01.16

Funktionsaufruf in AWL

CAL RTS_INFO( EN := RtsInfo_EN)

LD RTS_INFO.DONE ST RtsInfo_DONE

LD RTS_INFO.ERR ST RtsInfo_ERR

LD RTS_INFO.ERNO ST RtsInfo_ERNO

LD RTS_INFO.RTS_VERSION ST RtsInfo_RTS_VERSION

LD RTS_INFO.DISP_VERSION ST RtsInfo_DISP_VERSION

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

RTS_INFO (EN := RtsInfo_EN);

RtsInfo_DONE := RTS_INFO.DONE; RtsInfo_ERR := RTS_INFO.ERR; RtsInfo_ERNO := RTS_INFO.ERNO; RtsInfo_RTS_VERSION := RTS_INFO.RTS_VERSION; RtsInfo_DISP_VERSION := RTS_INFO.DISP_VERSION;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 72 Interne System-Bibliothek AC500 / Stand: 08.2007

Aufbau der Datei USRDATXX.DAT auf der SD Card

Die Daten werden auf der SD-Karte entsprechend dem AC500-CPU-Typ in folgendem Verzeichnis gespeichert:

AC500-CPU Verzeichnis Datei (File)

PM571 ..\UserData\PM571\UserDat USRDATxx.dat

PM581 ..\UserData\PM581\UserDat USRDATxx.dat

PM591 ..\UserData\PM591\UserDat USRDATxx.dat

In der AC500 muss sich eine SD Card befinden!

Es können maximal 100 Files USRDAT0.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 Datenelemente eines Datensatzes werden automatisch durch Semikolon getrennt. Jeder Datensatz wird automatisch mit <CR><LF> (0dhex, 0ahex) abgeschlossen.

Dadurch besteht die Möglichkeit des direkten Imports bzw. Exports in/aus 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 gelten folgende Regeln:

• Schreiben auf eine nicht vorhandene Datei erzeugt diese beim 1. Schreibvorgang.

• 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.

• 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.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 73 Interne System-Bibliothek AC500 / Stand: 08.2007

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

Der Sektorname darf (incl. [ ]) maximal 32 Zeichen lang sein.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 74 Interne System-Bibliothek AC500 / Stand: 08.2007

SD_READ Datensatz von der SD Card lesen

Der Funktionsbaustein SD_READ liest einen Datensatz aus einer Datei auf der SD Card und legt diesen Datensatz ab dem projektierten Anfangsmerker ADRVAR ab.

Der Anwender muss darauf achten, dass die Bausteine sicher gegeneinander verriegelt werden, d. h. nur jeweils ein Baustein darf zur gleichen Zeit aktiv sein.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz SD_READ Instanzname

EN Eingang BOOL Lesen eines Datensatzes mit FALSE/TRUE-Flanke

ATTRIB Eingang BYTE Lese-Attribut-Funktion des Bausteins: 1 - File öffnen, Sektor suchen, Datensatz lesen (Open, Seek, Read)

FILENO Eingang BYTE Nummer der Speicherdatei (XX = 0 bis 99) USRDATXX.DAT

SEG Eingang DWORD Adresse des Segmentnamens

FORMAT Eingang BYTE Format der Datensatz-Elemente Datenformat: 00hex - 0 - BYTE 01hex - 1 - CHAR 10hex - 16 - WORD 11hex - 17 - INT 20hex - 32 - DWORD 21hex - 33 - DINT

NVAR Eingang WORD Anzahl der Elemente pro Datensatz

ADRVAR Eingang DWORD Anfangs-Zieladresse des Datensatzes

DONE Ausgang BOOL Lesevorgang beendet

ERR Ausgang BOOL Fehler aufgetreten

ERNO Ausgang WORD Fehlernummer

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 75 Interne System-Bibliothek AC500 / Stand: 08.2007

Beschreibung

Der Funktionsbaustein liest einen Datensatz auf der SD Card in der Datei: ...\UserData\PM5x1\UserDat\USRDATxx.DAT (siehe auch "Aufbau der Datei USRDATXX.DAT auf der SD Card").

Wichtiger Hinweis:

Der Zugriff auf die SD Card ist nur mit den Funktionsbausteinen SD_WRITE und SD_READ möglich.

Die Eingänge ATTRIB, FILENO, FORMAT, ADRVAR und NVAR legen fest, aus welcher Datei, wie viele Werte, zu welcher Zieladresse abgespeichert und in welchem Format aus der SD Card ausgelesen werden sollen. Es muss immer ein kompletter Datensatz gelesen werden.

Das Auslesen des Datensatzes auf der SD Card kann mehrere SPS-Zyklen dauern.

Mit einer FALSE/TRUE-Flanke am Eingang EN wird der einmalige Lesevorgang des Datensatzes ausgelöst. Der Eingang EN wird erst nach der Fertigmeldung DONE=TRUE wieder abgefragt, sein Zustand ist während des Lesevorgangs unwesentlich.

Nach Beendigung des Lesevorgangs werden die Baustein-Ausgänge DONE, ERR und ERNO aktualisiert. Bei DONE = TRUE und ERR = FALSE war das Lesen erfolgreich. Sind die Ausgänge DONE = TRUE und ERR = TRUE, ist ein Fehler aufgetreten. Die Art des Fehlers signalisiert der Ausgang ERNO.

Nach dem Lesen eines Datensatzes von der SD Card sind die Ausgänge für die Dauer eines Zyklus gültig. Im nächsten Zyklus werden die Baustein-Ausgänge DONE, ERR und ERNO wieder zu Null gesetzt. Eine erneute FALSE/TRUE-Flanke am Eingang EN startet einen neuen Lesevorgang.

Lese-Beispiel 1:

Zum Lesen von Anwenderdaten aus einem Datenfile ohne Sektoren von der SD-Karte in die SPS sind folgende Schritte auszuführen:

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 Sektor-Name FORMAT := Datenformat NVAR := Anzahl der Daten im Datensatz ADRVAR := Adresse der ersten Variablen in die Daten geschrieben werden.

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 Sektor-Name 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 *)

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 76 Interne System-Bibliothek AC500 / Stand: 08.2007

SEG := Adresse der Variablen Sektor-Name 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 ohne Lesevorgang kann auch 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 Schließen des Files *) ATTRIB := 5 (* close *) FILENO := 0..99 (* Nummer des Files, aus dem gelesen werden soll *)

Lese-Beispiel 2:

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 des anschließenden 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 Sektor-Name 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 Sektor-Name 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 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 Sektor-Name 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.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 77 Interne System-Bibliothek AC500 / Stand: 08.2007

6. Das Schließen des Files ohne Lesevorgang kann auch 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 Schließen des Files *) ATTRIB := 5 (* close *) FILENO := 0..99 (* Nummer des Files, aus dem gelesen werden soll *)

EN BOOL (enable)

Über den Eingang EN wird die Bearbeitung des Bausteines gesteuert.

EN = FALSE:

Die Ausgänge DONE, ERR und ERNO werden auf den Wert "0" bzw. "FALSE" gesetzt. Dies gilt nicht während eines Lesevorganges.

EN = FALSE/TRUE-Flanke:

Es wird der einmalige Lesevorgang des Datensatzes ausgelöst.

ATTRIB BYTE (attribute)

Über den Eingang ATTRIB wird dem Baustein mitgeteilt, welche Aktionen er auszuführen hat.

Mögliche Werte:

1 – File öffnen, Sektor suchen, Datensatz lesen (Open, Seek, Read), zusätzlich benötigte Eingänge:

FILENO, SEG, FORMAT, NVAR, ADRVAR

2 – File öffnen, Datensatz lesen (Open, Read), zusätzlich benötigte Eingänge:

FILENO, FORMAT, NVAR, ADRVAR

3 – Folgedatensatz lesen (Read), zusätzlich benötigte Eingänge:

FILENO, FORMAT, NVAR, ADRVAR

4 – Datensatz lesen, File schließen (Read, Close), zusätzlich benötigte Eingänge:

FILENO, FORMAT, NVAR, ADRVAR

5 – File schließen (Close), zusätzlich benötigte Eingänge:

FILENO

SEG DWORD (segment)

Am Eingang SEG wird die Anfangsadresse des Segment-Labels angegeben, das gesucht werden soll. Ein Segment-Label ist in "[" und "]" einzufassen.

Beispiele:

[Werte_Tab1]

[Temperatur_12]

Die Länge ist auf 32 Zeichen begrenzt.

FILENO BYTE (file number)

Am Eingang FILENO wird die Nummer der Datei festgelegt, die gelesen werden soll. Gültige Werte: 0...99

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 78 Interne System-Bibliothek AC500 / Stand: 08.2007

FORMAT BYTE (format)

Am Eingang Format wird das Format der Elemente des Datensatzes angegeben. Alle Elemente des Datensatzes müssen das selbe Format haben.

Gültige Datenformate: 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 (number of variable)

Am Eingang NVAR wird die Anzahl der Elemente des zu lesenden Datensatzes angegeben.

ADRVAR DWORD (address of variable)

Am Eingang ADRVAR wird die Ziel-Anfangsadresse des Datensatzes angegeben. Die Daten eines Datensatzes werden in hintereinander liegenden Variablen in der SPS abgespeichert (z. B. ARRAY, STRING, %M-Bereich).

DONE BOOL (done)

Am Ausgang DONE wird angezeigt, dass der Lesevorgang des Datensatzes abgeschlossen ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang ERR betrachtet werden.

Es gilt:

DONE = TRUE und ERR = FALSE: Der Lesevorgang ist abgeschlossen. Der Datensatz wurde aus der Datei auf der SD Card fehlerfrei gelesen.

DONE = TRUE und ERR = TRUE: Beim Lesevorgang ist ein Fehler aufgetreten. Der Ausgang ERNO signalisiert die Fehlernummer.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob beim Lesevorgang ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist ein Fehler aufgetreten, so gilt: DONE = TRUE und ERR = TRUE. Der Ausgang ERNO signalisiert die Fehlernummer.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlernummer (siehe auch Fehlermeldungen der Bausteinbibliotheken) ausgegeben. Dieser Ausgang muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 79 Interne System-Bibliothek AC500 / Stand: 08.2007

Funktionsaufruf in AWL

CAL READ_SD(EN := EN_SD_READ, ATTRIB := ATTRIB_SD_READ, FILENO := FILENO_SD_READ, SEG := SEG_SD_READ, FORMAT := FORMAT_SD_READ, NVAR := NVAR_SD_READ, ADRVAR := ADRVAR_SD_READ)

LD READ_SD.DONE ST DONE_SD_READ

LD READ_SD.ERR ST ERR_SD_READ

LD READ_SD.ERNO ST ERNO_SD_READ

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

READ_SD(EN := EN_SD_READ, ATTRIB := ATTRIB_SD_READ, FILENO := FILENO_SD_READ, SEG := SEG_SD_READ, FORMAT := FORMAT_SD_READ, NVAR := NVAR_SD_READ, ADRVAR := ADRVAR_SD_READ); DONE_SD_READ := READ_SD.DONE; ERR_SD_READ := READ_SD.ERR; ERNO_SD_READ := READ_SD.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 80 Interne System-Bibliothek AC500 / Stand: 08.2007

SD_WRITE Datensatz auf die SD Card schreiben

Die AC500-Steuerung erhält als externes Speichermedium eine Speicherkarte des Typs "SD Memory Card" (kurz SD Card), die seitens der SPS wie ein DOS-Diskettenlaufwerk angesprochen wird. Die SD Card dient als Daten-Transfer-Medium zwischen jedem handelsüblichen PC mit SD-Card-Interface und der AC500-Steuerung.

Die Lese- und Schreibzugriffe benötigen relativ viel Zeit, da sie über das betriebssystem-interne Filesystem im Hintergrund abgehandelt werden. Ein Schreibzugriff führt immer einen Kopiervorgang der aktuellen Datei in eine Backup-Datei durch.

Der Anwender muss darauf achten, dass die Bausteine sicher gegeneinander verriegelt werden, d. h. nur jeweils ein Baustein darf zur gleichen Zeit aktiv sein.

Der Funktionsbaustein SD_WRITE schreibt einen Datensatz in eine Datei USRDATxx.DAT auf der SD Card.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz SD_WRITE Instanzname

EN Eingang BOOL Schreiben eines Datensatzes mit FALSE/TRUE-Flanke

ATTRIB Eingang BYTE Schreibattribut-Funktion des Bausteins: 1 - File löschen (Delete) 2 - Datensatz schreiben (Open(create), Write(append), Close) 3 - Segment-Label schreiben (Open(create), Write(append), Close)

FILENO Eingang BYTE Nummer der Speicherdatei (XX = 0 bis 99) USRDATXX.DAT

SEG Eingang DWORD Adresse des Segmentnamens

FORMAT Eingang BYTE Format der Datensatz-Elemente Datenformat: 00hex - 0 - BYTE 01hex - 1 - CHAR 10hex - 16 - WORD

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 81 Interne System-Bibliothek AC500 / Stand: 08.2007

11hex - 17 - INT 20hex - 32 - DWORD 21hex - 33 - DINT

NVAR Eingang WORD Anzahl der Elemente pro Datensatz

ADRVAR Eingang DWORD Anfangs-Quelladresse des Datensatzes

DONE Ausgang BOOL Schreibvorgang beendet

ERR Ausgang BOOL Fehler aufgetreten

ERNO Ausgang WORD Fehlernummer

Beschreibung

Der Funktionsbaustein schreibt einen Datensatz auf der SD Card in eine Datei: ...\UserData\PM5x1\UserDat\USRDATxx.DAT (siehe auch "Aufbau der Datei USRDATXX.DAT auf der SD Card")

Wichtiger Hinweis:

Der Zugriff auf die SD Card ist nur mit den Funktionsbausteinen SD_WRITE und SD_READ möglich.

Die Eingänge ATTRIB, FILENO, FORMAT, ADRVAR und NVAR legen fest, in welche Datei, wie viele Werte, ab welcher Quelladresse, in welchem Format auf die SD Card geschrieben werden sollen. Um eine lesbare und zu EXCEL kompatible Datei zu erzeugen, werden die einzelnen Werte (im ASCII-Format) automatisch durch ein Semikolon getrennt abgespeichert. Der letzte Wert wird ebenfalls automatisch durch <CR><LF> abgeschlossen.

Wird der Schreibvorgang eines Datensatzes gestartet (FALSE/TRUE-Flanke am Eingang EN), dann dürfen die Daten des Datensatzes bis zur Beendigung des Schreibvorgangs (DONE = TRUE) nicht mehr verändert werden. Die Ablage des Datensatzes auf der SD Card kann mehrere SPS-Zyklen dauern.

Der Eingang EN wird erst nach der Fertigmeldung DONE=TRUE wieder abgefragt, sein Zustand ist während des Schreibvorgangs unwesentlich.

Nach Beendigung des Schreibvorgangs werden die Baustein-Ausgänge DONE, ERR und ERNO aktualisiert. Bei DONE = TRUE und ERR = FALSE war die Sicherung erfolgreich. Sind die Ausgänge DONE = TRUE und ERR = TRUE, ist ein Fehler aufgetreten. Die Art des Fehlers signalisiert der Ausgang ERNO.

Nach der Ablage eines Datensatzes auf der SD Card sind die Ausgänge für die Dauer eines Zyklus gültig. Im nächsten Zyklus werden die Baustein-Ausgänge DONE, ERR und ERNO wieder zu Null gesetzt. Eine erneute FALSE/TRUE-Flanke am Eingang EN startet einen neuen Schreibvorgang.

Hinweis:

Tritt während des Schreibens ein Spannungsausfall auf, ist die Datei USRDATxx.DAT zerstört. Um zumindest alle bisher gespeicherten Datensätze zu sichern, ist vor dem Neustart des Programms die Datei USRDATxx.BAK von der SD Card zu sichern! Sie kann auf einem PC in USRDATxx.DAT umbenannt werden und zur weiteren Speicherung benutzt werden.

Schreib-Beispiel 1:

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

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 82 Interne System-Bibliothek AC500 / Stand: 08.2007

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.

Schreib-Beispiel 2:

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 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.

Löschen einer Datei:

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

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 83 Interne System-Bibliothek AC500 / Stand: 08.2007

EN BOOL (enable)

Über den Eingang EN wird die Bearbeitung des Bausteines gesteuert.

EN = FALSE:

Die Ausgänge DONE, ERR und ERNO werden auf den Wert "0" bzw. "FALSE" gesetzt. Dies gilt nicht während eines Schreibvorganges.

EN = FALSE/TRUE-Flanke:

Es wird der einmalige Schreibvorgang des Datensatzes / Segment-Labels bzw. Löschen einer Datei ausgelöst.

ATTRIB BYTE (attribute)

Über den Eingang ATTRIB wird dem Baustein mitgeteilt, welche Aktionen er auszuführen hat.

Mögliche Werte:

1 – File löschen (Delete), zusätzlich benötigte Eingänge:

FILENO

2 – Datensatz schreiben (Open(create), Write(append), Close), zusätzlich benötigte Eingänge:

FILENO, FORMAT, NVAR, ADRVAR

3 – Segment-Label schreiben (Open(create), Write(append), Close), zusätzlich benötigte Eingänge:

FILENO, SEG

SEG DWORD (segment)

Am Eingang SEG wird die Anfangsadresse des Segment-Labels angegeben. Ein Segment-Label ist in "[" und "]" einzufassen.

Beispiele:

[Werte_Tab1]

[Temperatur_12]

Die Länge ist auf 32 Zeichen begrenzt.

FILENO BYTE (file number)

Am Eingang FILENO wird die Nummer der Datei festgelegt, die beschrieben /erzeugt bzw. gelöscht werden soll.

Gültige Werte: 0 ... 99

FORMAT BYTE (format)

Am Eingang Format wird das Format der Elemente des Datensatzes angegeben. Alle Elemente des Datensatzes müssen das selbe Format haben.

Gültige Datenformate: 00 hex - 0 - BYTE 01 hex - 1 - CHAR 10 hex - 16 - WORD 11 hex - 17 - INT 20 hex - 32 - DWORD 21 hex - 33 - DINT

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 84 Interne System-Bibliothek AC500 / Stand: 08.2007

NVAR WORD (number of variable)

Am Eingang NVAR wird die Anzahl der Elemente eines Datensatztes angegeben.

ADRVAR DWORD (address of variable)

Am Eingang ADRVAR wird die Anfangsadresse des Datensatzes angegeben. Die Daten eines Datensatzes müssen in hintereinander liegenden Variablen in der SPS liegen (z. B. ARRAY, STRING, %M-Bereich).

DONE BOOL (done)

Am Ausgang DONE wird angezeigt, dass der Schreibvorgang des Datensatzes abgeschlossen ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang ERR betrachtet werden.

Es gilt:

DONE = TRUE und ERR = FALSE: Der Schreibvorgang ist abgeschlossen. Der Datensatz wurde in der Datei auf der SD Card abgelegt.

DONE = TRUE und ERR = TRUE: Beim Schreibvorgang ist ein Fehler aufgetreten. Der Ausgang ERNO signalisiert die Fehlernummer.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob beim Schreibvorgang ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist ein Fehler aufgetreten, so gilt: DONE = TRUE und ERR = TRUE. Der Ausgang ERNO signalisiert die Fehlernummer.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlernummer (siehe auch Fehlermeldungen der Bausteinbibliotheken) ausgegeben. Dieser Ausgang muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 85 Interne System-Bibliothek AC500 / Stand: 08.2007

Funktionsaufruf in AWL

CAL WRITE_SD(EN := EN_SD_WRITE, ATTRIB := ATTRIB_SD_WRITE, FILENO := FILENO_SD_WRITE, SEG := SEG_SD_WRITE, FORMAT := FORMAT_SD_WRITE, NVAR := NVAR_SD_WRITE, ADRVAR := ADRVAR_SD_WRITE)

LD WRITE_SD.DONE ST DONE_SD_WRITE

LD WRITE_SD.ERR ST ERR_SD_WRITE

LD WRITE_SD.ERNO ST ERNO_SD_WRITE

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

WRITE_SD(EN := EN_SD_WRITE, ATTRIB := ATTRIB_SD_WRITE, FILENO := FILENO_SD_WRITE, SEG := SEG_SD_WRITE, FORMAT := FORMAT_SD_WRITE, NVAR := NVAR_SD_WRITE, ADRVAR := ADRVAR_SD_WRITE); DONE_SD_WRITE := WRITE_SD.DONE; ERR_SD_WRITE := WRITE_SD.ERR; ERNO_SD_WRITE := WRITE_SD.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 86 Interne System-Bibliothek AC500 / Stand: 08.2007

SLOT_INFO Slotinformation auslesen

Der Baustein SLOT_INFO liest die Slotinformationen aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer)

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

MODEL Ausgang STRING(24) Gerätetyp

MAN_DATE Ausgang DATE Herstellungsdatum

DEV_NO Ausgang DWORD Gerätenummer

SER_NO Ausgang DWORD Seriennummer

FW_NAME Ausgang STRING(16) Firmwarename

FW_VER Ausgang STRING(16) Firmwareversion

Beschreibung

Mit Hilfe des Bausteins SLOT_INFO können Slotinformationen zum angeschlossenen Gerät/Koppler ausgelesen werden.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 87 Interne System-Bibliothek AC500 / Stand: 08.2007

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz (Kartennummer) ausgewählt, von dem die Informationen ausgelesen werden sollen.

Der interne Steckplatz trägt immer die Nummer 0. Alle externen Steckplätze werden von rechts nach links durchnummeriert und fangen mit der Nummer 1 an.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der am ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

MODEL STRING(24) (model)

Am Ausgang MODEL wird der Gerätetyp ausgegeben, das am gewählten SLOT angeschlossen ist. Die Ausgabe erfolgt im Klartext.

MAN_DATE DATE (manufacture date)

Am Ausgang MAN_DATE wird das Herstellungsdatum des Gerätes ausgegeben, das am gewählten SLOT angeschlossen ist.

DEV_NO DWORD (device number)

Am Ausgang DEV_NO wird die herstellerspezifische Gerätenummer des Gerätes ausgegeben, das am gewählten SLOT angeschlossen ist.

SER_NO DWORD (serial number)

Am Ausgang SER_NO wird die Seriennummer des Gerätes ausgegeben, das am gewählten SLOT angeschlossen ist.

FW_NAME STRING(16) (firmware name)

Am Ausgang FW_NAME wird der Firmwarename des Gerätes ausgegeben, das am gewählten SLOT angeschlossen ist. Die Ausgabe erfolgt im Klartext.

FW_VER STRING(16) (firmware version)

Am Ausgang FW_VER wird die Firmwareversion des Gerätes ausgegeben, das am gewählten SLOT angeschlossen ist. Die Ausgabe erfolgt im Klartext.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 88 Interne System-Bibliothek AC500 / Stand: 08.2007

Funktionsaufruf in AWL

CAL SLOT_INFO( EN := SlotInfo_EN, SLOT := SlotInfo_SLOT)

LD SLOT_INFO.DONE ST SlotInfo_DONE

LD SLOT_INFO.ERR ST SlotInfo_ERR

LD SLOT_INFO.ERNO ST SlotInfo_ERNO

LD SLOT_INFO.MODEL ST SlotInfo_MODEL

LD SLOT_INFO.MAN_DATE ST SlotInfo_MAN_DATE

LD SLOT_INFO.DEV_NO ST SlotInfo_DEV_NO

LD SLOT_INFO.SER_NO ST SlotInfo_SER_NO

LD SLOT_INFO.FW_NAME ST SlotInfo_FW_NAME

LD SLOT_INFO.FW_VER ST SlotInfo_FW_VER

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

SLOT_INFO (EN := SlotInfo_EN, SLOT := SlotInfo_SLOT);

SlotInfo_DONE := SLOT_INFO.DONE; SlotInfo_ERR := SLOT_INFO.ERR; SlotInfo_ERNO := SLOT_INFO.ERNO; SlotInfo_MODEL := SLOT_INFO.MODEL; SlotInfo_MAN_DATE := SLOT_INFO.MAN_DATE; SlotInfo_DEV_NO := SLOT_INFO.DEV_NO; SlotInfo_SER_NO := SLOT_INFO.SER_NO; SlotInfo_FW_NAME := SLOT_INFO.FW_NAME; SlotInfo_FW_VER := SLOT_INFO.FW_VER;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 89 Interne System-Bibliothek AC500 / Stand: 08.2007

SYS_TIME Systemzeit auslesen

Der Baustein SYS_TIME liefert den Systemtick als Doppelwort in Millisekunden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: SysInt_AC500_V10.lib

Bausteintyp

Funktion

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

Ausgang DWORD Systemtick in Millisekunden

Beschreibung

Der Baustein SYS_TIME liefert den Systemtick als Doppelwort. Der Systemtick hat die Auflösung Millisekunden und wird auch als Zeitbasis für das SPS-Anwenderprogramm und alle zeitabhängigen Bausteine verwendet. Nach einem Reset der SPS startet der Systemtick immer bei 0. Ein Überlauf wird nach ca. 49 Tagen erreicht. Danach läuft der Zähler bei 0 weiter.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden.

(Ausgang) DWORD

Der Baustein liefert am Ausgang den Systemtick in ms.

Funktionsaufruf in AWL

LD SysTime_EN SYS_TIME ST SysTime

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

SysTime := SYS_TIME(SysTime_EN);

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 90 Interne System-Bibliothek AC500 / Stand: 08.2007

Glossar

BOOL

Variablen vom Typ BOOL können die Wahrheitswerte TRUE und FALSE annehmen. Es werden 8 Bit Speicherplatz reserviert.

DINT

DINT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DINT Untergrenze -2147483648 Obergrenze 2147483647 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

DWORD

DWORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DWORD Untergrenze 0 Obergrenze 4294967295 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

INT

INT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ INT Untergrenze -32768 Obergrenze 32767 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

WORD

WORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ WORD Untergrenze 0 Obergrenze 65535 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 91 Interne System-Bibliothek AC500 / Stand: 08.2007

BYTE

BYTE gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ BYTE Untergrenze 0 Obergrenze 255 Speicherplatz 8 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

Funktionen

Funktionen sind Unterprogramme, die beliebig viele Eingangsparameter haben und genau ein Ergebnis-Element zurückliefern. Das zurückgelieferte Ergebnis kann von elementarem, aber auch von zusammengesetztem Datentyp sein. Eine Funktion darf also auch ein Feld, eine Struktur, ein Feld von Strukturen etc. zurückgeben.

Funktionen liefern bei gleicher Eingangsbeschaltung stets das gleiche Ergebnis (sie besitzen kein Gedächtnis.

Daraus abzuleiten sind folgende Regeln:

• Innerhalb von Funktionen dürfen globale Variablen weder gelesen noch geschrieben werden. • Innerhalb von Funktionen dürfen Absolutoperanden weder gelesen noch geschrieben werden • Innerhalb von Funktionen dürfen Funktionsblöcke nicht aufgerufen werden.

Funktionsblöcke

Funktionsblöcke sind Unterprogramme, die jeweils beliebig viele Eingangs-, Ausgangs- und interne Variablen haben. Sie werden von einem Programm aufgerufen oder von einem anderen Funktionsblock.

Da sie auch mehrfach genutzt werden können (mit jeweils anderen Datensätzen), können Funktionsblöcke (ihr Code und die Schnittstelle) als Typ betrachtet werden. Über die Zuordnung eines individuellen Datensatzes (Deklaration) wird eine Instanz des Funktionsblockes angelegt.

Anders als Funktionen können Funktionsblöcke statisch lokale Daten haben, die von einem Aufruf zum nächsten gerettet werden. Damit können z. B. Zähler realisiert werden, die ihren Zählerstand nicht vergessen dürfen. D. h. Funktionsblöcke können ein Gedächtnis haben.

Funktionen und Funktionsblöcke unterscheiden sich in zwei wesentlichen Punkten:

• Ein Funktionsblock hat beliebig viele Ausgangsparameter, die Funktion maximal einen, wobei sich die Ausgangsparameter von Funktionen und Funktionsblöcken syntaktisch unterscheiden.

• Ein Funktionsblock kann ein Gedächtnis haben, eine Funktion nicht.

Funktionsblöcke mit Vergangenheitswerten (Gedächtnis):

Bei Funktionsblöcken mit Vergangenheitswerten ist zu beachten, dass Instanznamen nicht mehrfach vergeben werden dürfen, wenn unterschiedliche Datensätze aufgerufen werden sollen.

Funktionsblöcke ohne Vergangenheitswerte (Gedächtnis):

Bei Funktionsblöcken ohne Vergangenheitswerte braucht nur eine Instanz für den FB-Typ angelegt zu werden. Diese Instanz kann für mehrere Aufrufe des FB (auch mit unterschiedlichen E/A-Werten) genutzt werden.

Der Instanzname kann beliebig definiert werden. Der Typ ist vorgegeben und ist identisch mit dem Namen des Funktionsblockes.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 92 Interne System-Bibliothek AC500 / Stand: 08.2007

Index

A

Aufbau der Datei USRDATXX.DAT auf der SD Card 72

B

Bausteinübersicht, geordnet nach Aufrufnamen 5

Besonderheiten der internen System-Bibliothek 3

Bestandteile der Bibliothek 3

C

COM_SET_PROT COM-Protokoll aktiv setzen/wechseln 6

CPU_INFO Typ der CPU auslesen 9

D

DIAG_ACK Einen Fehler quittieren 11

DIAG_ACK_ALL Alle Fehler einer Fehlerklasse quittieren 14

DIAG_EVENT Fehlerereignis generieren 16

DIAG_GET Fehler auslesen 19

DIAG_INFO Übersicht über noch nicht ausgelesene Fehler anzeigen 24

F

FLASH_DEL Datensegment im Flash löschen 26

FLASH_READ Datensatz vom Flash lesen 29

FLASH_WRITE Datensatz in das Flash schreiben 33

FPU_EXCEPTION_INFO Informationen zur FPU-Exception auslesen 37

G

Glossar 90

I

IO_DIAG Diagnosedaten des I/O-Busses auslesen 40

IO_INFO Anzahl der Geräte am I/O-Bus auslesen 43

I/O_MODULE_DIAG Moduldiagnosedaten des I/O-Busses auslesen 45

I/O_VERSION Version des I/O-Bustreibers auslesen 48

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 93 Interne System-Bibliothek AC500 / Stand: 08.2007

P

PERSISTENT_CLEAR Persistent-Daten im SRAM löschen 50

PERSISTENT_EXPORT Persistent-Daten von RAM-DISC auf SD Card schreiben 52

PERSISTENT_IMPORT Persistent-Daten von SD Card auf RAM-DISC schreiben 54

PERSISTENT_RESTORE Persistent-Daten von RAM-DISC in das SRAM schreiben 56

PERSISTENT_SAVE Persistent-Daten von SRAM auf RAM-DISC schreiben 58

R

RETAIN_CLEAR Retain-Daten im SRAM löschen 60

RETAIN_EXPORT Retain-Daten von RAM-DISC auf SD Card schreiben 62

RETAIN_IMPORT Retain-Daten von SD Card auf RAM-DISC schreiben 64

RETAIN_RESTORE Retain-Daten von RAM-DISC in das SRAM schreiben 66

RETAIN_SAVE Retain-Daten von SRAM auf RAM-DISC schreiben 68

RTS_INFO Version des CPU-Laufzeitsystems auslesen 70

S

SD_READ Datensatz von der SD Card lesen 74

SD_WRITE Datensatz auf die SD Card schreiben 80

SLOT_INFO Slotinformation auslesen 86

SYS_TIME Systemzeit auslesen 89

V

Voraussetung für die Verwendung der Bibliothek 3

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 94 Interne System-Bibliothek AC500 / Stand: 08.2007

Softwarebeschreibung AC500

Skalierbare SPS für individuelle Automatisierung Modbus- Bausteinbibliothek

Modbus

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 1 Modbus AC500 / Stand: 01.2007

Inhalt

Modbus-Bibliothek ......................................................................................................................... 2

Besonderheiten der Modbus-Bibliothek ............................................................................................ 2

Bestandteile der Modbus-Bibliothek .................................................................................................... 2

Bausteinübersicht, geordnet nach Aufrufnamen ............................................................................. 2

COM_MOD_MAST Verarbeitung von Modbus-Master-Telegrammen....................................................... 3

Glossar ........................................................................................................................................................ 7

Index ............................................................................................................................................................ 9

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 2 Modbus AC500 / Stand: 01.2007

Modbus-Bibliothek

Besonderheiten der Modbus-Bibliothek

Bestandteile der Modbus-Bibliothek

Folgende Funktionsbausteine sind in der Modbus-Bibliothek enthalten:

Gruppe: Modbus

COM_MOD_MAST Verarbeitung von Modbus-Master-Telegrammen

Bausteinübersicht, geordnet nach Aufrufnamen

Zeichenerklärung:

FBmV … Funktionsblock mit Vergangenheitswerten

FBoV … Funktionsblockohne Vergangenheitswerte

F … Funktion

VE-Name Typ Funktion

COM_MOD_MAST FBmV Verarbeitung von Modbus-Master-Telegrammen

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 3 Modbus AC500 / Stand: 01.2007

COM_MOD_MAST Verarbeitung von Modbus-Master-Telegrammen

Der Baustein COM_MOD_MAST realisiert die MODBUS-Master-Funktion für die am Eingang COM angegebene MODBUS-Schnittstelle (COM1, COM2). Für jede Schnittstelle ist ein separater Baustein COM_MOD_MAST zu verwenden. Bevor COM_MOD_MAST auf eine Schnittstelle angewendet werden kann, muss diese über die Steuerungskonfiguration des Control Builders (PS501) als MODBUS-Master-Schnittstelle konfiguriert worden sein. Der Funktionsbaustein COM_MOD_MAST übernimmt die Werte an den Eingängen bei jeder FALSE -> TRUE Flanke am Eingang EN, generiert ein Telegramm entsprechend den Eingängen und sendet dieses Telegramm an den Slave.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Modbus_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz COM_MOD_MAST Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

COM Eingang BYTE Schnittstellenkennung (COM1, COM2)

SLAVE Eingang BYTE Slave-Adresse

FCT Eingang BYTE Funktionscode

TIMEOUT Eingang WORD Telegramm-Timeout in ms

ADDR Eingang WORD Operanden-/Registeradresse im Slave

NB Eingang WORD Anzahl der Daten

DATA Eingang DWORD Adresse des ersten Operandenfeldes im Master, aus dem Daten an den Slave geschrieben oder in dem die vom Slave gelesenen Daten abgelegt werden sollen

DONE Ausgang BOOL Fertigmeldung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 4 Modbus AC500 / Stand: 01.2007

Beschreibung

Der Baustein COM_MOD_MAST realisiert die MODBUS-Master-Funktion für die am Eingang COM angegebene MODBUS-Schnittstelle der Steuerung (COM1, COM2).

Für jede Schnittstelle ist ein separater Baustein COM_MOD_MAST zu verwenden.

Bevor COM_MOD_MAST auf eine Schnittstelle angewendet werden kann, muss diese über die Steuerungskonfiguration des Control Builders (PS501) als MODBUS-Master-Schnittstelle konfiguriert worden sein.

Der Funktionsbaustein COM_MOD_MAST übernimmt die Werte an den Eingängen bei jeder FALSE -> TRUE Flanke am Eingang EN, generiert ein Telegramm entsprechend den Eingängen und sendet dieses Telegramm an den Slave.

EN BOOL (enable)

Bei der Vorgabe einer FALSE -> TRUE Flanke am Eingang EN werden alle weiteren Eingänge übernommen.

Sind die Werte an den Eingängen gültig, wird ein Anforderungstelegramm an einen Slave gesendet.

Ist mindestens ein Eingang ungültig, wird kein Telegramm generiert und statt dessen der Fehler an den Ausgängen ERR und ERNO angezeigt.

Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

COM BYTE (com)

Am Eingang COM wird die Nummer der Modbus-Schnittstelle angegeben.

COM = 1: COM1 COM = 2: COM2

SLAVE BYTE (slave)

Am Eingang SLAVE wird die Adresse des Slaves angegeben, an den das Telegramm gesendet werden soll.

FCT BYTE (function code)

Am Eingang FCT wird der Funktionscode des Anforderungstelegramms angegeben.

01 oder 02 n Bit lesen

03 oder 04 n Worte lesen

05 ein Bit schreiben

06 ein Wort schreiben

07 8 Bit lesen

15 n Bit schreiben

16 n Worte schreiben

TIMEOUT WORD (timeout)

Am Eingang TIMEOUT wird der Telegramm-Timeout in Millisekunden (ms) angegeben.

Wird innerhalb des in TIMEOUT angegebenen Zeitintervalls keine Antwort vom Slave empfangen, wird der Vorgang abgebrochen und eine Fehlerkennung ausgegeben.

Hinweis: Die Einhaltung des Timeouts ist abhängig von der Zykluszeit der Task, in dem der MODMAST-Baustein bearbeitet wird. Die tatsächliche Zeit kann im worst-case Taskzyklus - 1ms von der Vorgabe abweichen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 5 Modbus AC500 / Stand: 01.2007

ADDR WORD (address)

Am Eingang ADDR wird die Operanden-/ Registeraderesse im Slave angegeben, ab der Daten gelesen oder geschrieben werden sollen.

Der Zugriff auf die Operanden von AC500-Geräten im MODBUS-Slave-Modus wird über die MODBUS-Querverweisliste bestimmt. Es dürfen ausschließlich die in der Querverweisliste aufgeführten Operanden verwendet werden (siehe Modbus-Adresstabellen).

Es dürfen ausschließlich die in der MODBUS-Adressliste aufgeführten Operanden verwendet werden. Bei einem Zugriff auf andere Geräte ist ADDR frei wählbar. Die gültigen Bereiche sind der jeweiligen Gerätebeschreibung zu entnehmen.

NB WORD (number)

Am Eingang NB wird die Anzahl der zu schreibenden oder zu lesenden Daten angegeben.

Die Einheit von NB ist abhängig von der gewählten Funktion. Bei Bit-Zugriffen wird an NB die Anzahl Bits, bei Wort- und Doppelwort-Zugriffen die Anzahl Worte angegeben.

Es gelten folgende Längenbeschränkungen:

FCT Nbmax

01 oder 02 2000 Bit

03 oder 04 125 Worte / 62 Doppelworte

05 1 Bit

06 1 Wort

07 8 Bit

15 1968 Bit

16 123 Worte / 61 Doppelworte

DATA DWORD (data)

Am Eingang DATA wird die Adresse des ersten Operanden im Master angegeben, von dem ab die Daten an den Slave kopiert/geschrieben oder in dem, die vom Slave gelesenen Daten, abgelegt werden sollen. Dabei ist es erforderlich, dass der Operandentyp (z. B. Bit) mit der gewählten Funktion (z. B. FCT 1, n Bit lesen) übereinstimmt.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 6 Modbus AC500 / Stand: 01.2007

Funktionsaufruf in AWL

LD ModMast_DATA ADR ST ModMast.DATA

CAL ModMast ( EN := ModMast_EN, COM := ModMast_COM, SLAVE := ModMast_SLAVE, FCT := ModMast_FCT, TIMEOUT := ModMast_TIMEOUT, ADDR := ModMast_ADDR, NB := ModMast_NB, DATA := ModMast_DATA)

LD ModMast.DONE ST ModMast_DONE

LD ModMast.ERR ST ModMast_ERR

LD ModMast.ERNO ST ModMast_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

ModMast (EN := ModMast_EN, COM := ModMast_COM, SLAVE := ModMast_SLAVE, FCT := ModMast_FCT, TIMEOUT := ModMast_TIMEOUT, ADDR := ModMast_ADDR, NB := ModMast_NB, DATA := ADR(ModMast_DATA));

ModMast_DONE := ModMast.DONE; ModMast_ERR := ModMast.ERR; ModMast_ERNO:= ModMast.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 7 Modbus AC500 / Stand: 01.2007

Glossar

BOOL

Variablen vom Typ BOOL können die Wahrheitswerte TRUE und FALSE annehmen. Es werden 8 Bit Speicherplatz reserviert.

DINT

DINT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DINT Untergrenze -2147483648 Obergrenze 2147483647 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

DWORD

DWORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DWORD Untergrenze 0 Obergrenze 4294967295 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

INT

INT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ INT Untergrenze -32768 Obergrenze 32767 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

WORD

WORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ WORD Untergrenze 0 Obergrenze 65535 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 8 Modbus AC500 / Stand: 01.2007

BYTE

BYTE gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ BYTE Untergrenze 0 Obergrenze 255 Speicherplatz 8 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

Funktionen

Funktionen sind Unterprogramme, die beliebig viele Eingangsparameter haben und genau ein Ergebnis-Element zurückliefern. Das zurückgelieferte Ergebnis kann von elementarem, aber auch von zusammengesetztem Datentyp sein. Eine Funktion darf also auch ein Feld, eine Struktur, ein Feld von Strukturen etc. zurückgeben.

Funktionen liefern bei gleicher Eingangsbeschaltung stets das gleiche Ergebnis (sie besitzen kein Gedächtnis.

Daraus abzuleiten sind folgende Regeln:

• Innerhalb von Funktionen dürfen globale Variablen weder gelesen noch geschrieben werden. • Innerhalb von Funktionen dürfen Absolutoperanden weder gelesen noch geschrieben werden • Innerhalb von Funktionen dürfen Funktionsblöcke nicht aufgerufen werden.

Funktionsblöcke

Funktionsblöcke sind Unterprogramme, die jeweils beliebig viele Eingangs-, Ausgangs- und interne Variablen haben. Sie werden von einem Programm aufgerufen oder von einem anderen Funktionsblock.

Da sie auch mehrfach genutzt werden können (mit jeweils anderen Datensätzen), können Funktionsblöcke (ihr Code und die Schnittstelle) als Typ betrachtet werden. Über die Zuordnung eines individuellen Datensatzes (Deklaration) wird eine Instanz des Funktionsblockes angelegt.

Anders als Funktionen können Funktionsblöcke statisch lokale Daten haben, die von einem Aufruf zum nächsten gerettet werden. Damit können z. B. Zähler realisiert werden, die ihren Zählerstand nicht vergessen dürfen. D. h. Funktionsblöcke können ein Gedächtnis haben.

Funktionen und Funktionsblöcke unterscheiden sich in zwei wesentlichen Punkten:

• Ein Funktionsblock hat beliebig viele Ausgangsparameter, die Funktion maximal einen, wobei sich die Ausgangsparameter von Funktionen und Funktionsblöcken syntaktisch unterscheiden.

• Ein Funktionsblock kann ein Gedächtnis haben, eine Funktion nicht.

Funktionsblöcke mit Vergangenheitswerten (Gedächtnis):

Bei Funktionsblöcken mit Vergangenheitswerten ist zu beachten, dass Instanznamen nicht mehrfach vergeben werden dürfen, wenn unterschiedliche Datensätze aufgerufen werden sollen.

Funktionsblöcke ohne Vergangenheitswerte (Gedächtnis):

Bei Funktionsblöcken ohne Vergangenheitswerte braucht nur eine Instanz für den FB-Typ angelegt zu werden. Diese Instanz kann für mehrere Aufrufe des FB (auch mit unterschiedlichen E/A-Werten) genutzt werden.

Der Instanzname kann beliebig definiert werden. Der Typ ist vorgegeben und ist identisch mit dem Namen des Funktionsblockes.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 9 Modbus AC500 / Stand: 01.2007

Index

B

Bausteinübersicht, geordnet nach Aufrufnamen 2

Besonderheiten der Modbus-Bibliothek 2

Bestandteile der Modbus-Bibliothek 2

C

COM_MOD_MAST Verarbeitung von Modbus-Master-Telegrammen 3

G

Glossar 7

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 10 Modbus AC500 / Stand: 01.2007

Softwarebeschreibung AC500

Skalierbare SPS für individuelle Automatisierung Serie90-AC500- Bausteinbibliothek

Serie90-

AC500

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 1 Serie90-AC500 AC500 / Stand: 01.2007

Inhalt

Serie90-AC500-Bibliothek ............................................................................................................ 2

Bestandteile der Bibliothek ...................................................................................................................... 2

Bausteinübersicht, geordnet nach Aufrufnamen ............................................................................... 2

INTK Integrierer (komfortabel) ..................................................................................................................... 3

LZB Laufzahlblock ....................................................................................................................................... 7

VGL3P Vergleicher mit 3-Punkt-Verhalten ................................................................................................. 9

Glossar ........................................................................................................................................................ 11

Index ............................................................................................................................................................ 13

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 2 Serie90-AC500 AC500 / Stand: 01.2007

Serie90-AC500-Bibliothek

Bestandteile der Serie90-AC500-Bibliothek

Folgende Funktionsbausteine sind in der Serie90-AC500-Bibliothek enthalten:

INTK Integrierer (komfortabel)

LZB Laufzahlblock

VGL3P Vergleicher mit 3-Punkt-Verhalten

Bausteinübersicht, geordnet nach Aufrufnamen

Zeichenerklärung:

FBmV … Funktionsblock mit Vergangenheitswerten

FBoV … Funktionsblock ohne Vergangenheitswerte

F … Funktion

VE-Name Typ Funktion

INTK FBmV Integrierer (komfortabel)

LZB FBmV Laufzahlblock

VGL3P FBoV Vergleicher mit 3-Punkt-Vewrhalten

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 3 Serie90-AC500 AC500 / Stand: 01.2007

INTK Integrierer (komfortabel)

Der Baustein bildet das Integral der mit dem Proportionalbeiwert K multiplizierten Regelgröße X.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek Serie90_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz INTK Instanzname

X Eingang INT Regelgröße

T1_TZ Eingang INT Integrierzeit normiert auf Zykluszeit

RES Eingang INT Rücksetzen des Ausgangs Y auf den Wert 0

STOP Eingang BOOL Integrierer Stop

SET Eingang BOOL Ausgang auf INIT-Wert setzen

INIT Eingang INT Initialwert

KP Eingang INT Proportionalbeiwert, Ausgabe in Prozent

OG Eingang INT obere Grenze für die Stellgröße Y

UG Eingang INT untere Grenze für die Stellgröße Y

OG_MELD Ausgang BOOL Ausgang Y hat obere Grenze erreicht

UG_MELD Ausgang BOOL Ausgang Y hat untere Grenze erreicht

Y Ausgang INT Stellgröße

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 4 Serie90-AC500 AC500 / Stand: 01.2007

Beschreibung

Der Baustein bildet das Integral der mit dem Proportionalbeiwert multiplizierten Regelgröße X. Der Ausgang Y des Integrierers kann durch:

• 1-Signal am Eingang RES (Reset) auf den Wert 0 gesetzt werden • TRUE-Signal am Eingang STOP auf dem momentanen Wert festgehalten werden • TRUE-Signal am Eingang SET (Set) auf den Initialwert am Eingang INIT gesetzt werden • Vorgabe am Eingang OG (obere Grenze) auf einen Maximalwert begrenzt werden • Vorgabe am Eingang UG (untere Grenze) auf einen Minimalwert begrenzt werden

Die Eingänge und Ausgänge sind weder doppelbar noch negierbar/invertierbar.

Übertragungsfunktion

F(s) =KP

s * T

x

t

1

Übergangsfunktion:

y

OG

t

INITTI

UG

K

X INT

Am Eingang X wird der Operand für die Regelgröße vorgegeben.

T1_TZ INT

Am Eingang T1_TZ wird die Integrierzeit vorgegeben. Die Integrierzeit ist dabei auf die Zykluszeit zu normieren. In der Zeit T1 ändert sich der Ausgang Y des Integrierers um den Wert KP * X.

Wertebereich: 0 ≤ T1_TZ ≤ 328

• Werden Werte vorgegeben, die außerhalb des zulässigen Wertebereichs liegen, so arbeitet die SPS grundsätzlich mit dem Wert 328.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 5 Serie90-AC500 AC500 / Stand: 01.2007

• Eine große Integrierzeit (T1) kann dadurch erreicht werden, dass auch die Zykluszeit T groß gewählt wird. Befindet sich der Baustein innerhalb eines Laufzahlblockes, so ist für ihn die Zykluszeit des Laufzahlblockes und nicht die Zykluszeit des SPS-Programms maßgebend.

RES BOOL *)

Mit dem Eingang RES kann der Ausgang Y auf den Wert 0 zurückgesetzt werden. Der Integriervorgang beginnt danach wieder ab dem Wert 0.

STOP BOOL *)

Mit dem Eingang STOP kann der Integriervorgang gestoppt werden.

STOP = FALSE → Integriervorgang wird nicht gestoppt.

STOP = TRUE → Integriervorgang wird gestoppt, d. h. der Ausgang Y ändert sich nicht mehr.

SET BOOL *)

Mit dem Eingang SET kann die Stellgröße Y auf den am Eingang INIT angegebenen Initialwert gesetzt werden. Der Integriervorgang beginnt danach wieder ab dem Initialwert.

SET = FALSE → kein Setzvorgang

SET = TRUE → Ausgang Y wird auf den angegebenen Initialwert gesetzt.

*) Prioritätsreihenfolge für die Eingänge STOP, SET und RES: RES höchste Priorität STOP SET niedrigste Priorität

INIT INT

Am Eingang INT wird der Initialwert angegeben, auf den der Ausgang Y bei Bedarf zu setzen ist.

KP INT

Am Eingang KP wird der Proportionalbeiwert angegeben. Er dient zur Gewichtung der Regelgröße am Eingang X. Die Gewichtung erfolgt durch die Multiplikation der Regelgröße mit dem Proportionalbeiwert. Die Angabe des Proportionalbeiwerts erfolgt in Prozent.

Beispiel:

KP ist gleich Bedeutung

1 1 Prozent Der Baustein multipliziert den Wert am Eingang X mit dem Faktor 0,01

55 55 Prozent Der Baustein multipliziert den Wert am Eingang X mit dem Faktor 0,55

100 100 Prozent Der Baustein multipliziert den Wert am Eingang X mit dem Faktor 1

1000 1000 Prozent Der Baustein multipliziert den Wert am Eingang X mit dem Faktor 10

-100 -100 Prozent Der Baustein multipliziert den Wert am Eingang X mit dem Faktor -1

OG INT

Die Stellgröße Y kann auf einen Wertebereich begrenzt werden. Am Eingang OG wird der obere Grenzwert für die Stellgröße Y vorgegeben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 6 Serie90-AC500 AC500 / Stand: 01.2007

UG INT

Die Stellgröße Y kann auf einen Wertebereich begrenzt werden. Am Eingang UG wird der untere Grenzwert für die Stellgröße Y vorgegeben.

OG_MELD BOOL

Am Ausgang OG_MELD wird signalisiert, ob der Wert am Eingang Y die vorgegebene obere Grenze erreicht hat. Beim Erreichen des Grenzwertes wird der Integriervorgang automatisch gestoppt.

OG_MELD = FALSE → Ausgang Y hat den Grenzwert (noch) nicht erreicht.

OG_MELD = TRUE → Ausgang Y hat den Grenzwert erreicht.

UG_MELD BOOL

Am Ausgang UG_MELD wird signalisiert, ob der Wert am Eingang Y die vorgegebene untere Grenze erreicht hat. Beim Erreichen des Grenzwertes wird der Integriervorgang automatisch gestoppt.

UG_MELD = FALSE → Ausgang Y hat den Grenzwert (noch) nicht erreicht.

UG_MELD = TRUE → Ausgang Y hat den Grenzwert erreicht.

Y INT

Am Ausgang Y wird die Stellgröße (Ausgangswert des Integrierers) ausgegeben.

Funktionsaufruf in AWL

CAL INTK1(X := INTK_X, T1_TZ := INTK_T1TZ, RES := INTK_RES, STOP := INTK_STOP, SET := INTK_SET, INIT := INTK_INIT, KP := INTK_KP, OG := INTK_OG, UG := INTK_UG) LD INTK1.OG_MELD ST INTK_MOG LD INTK1.UG_MELD ST INTK_MUG LD INTK1.Y ST INTK_Y

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

INTK1(X := INTK_X, T1_TZ := INTK_T1TZ, RES := INTK_RES, STOP := INTK_STOP, SET := INTK_SET, INIT := INTK_INIT, KP := INTK_KP, OG := INTK_OG, UG := INTK_UG); INTK_MOG := INTK1.OG_MELD; INTK_MUG := INTK1.UG_MELD; INTK_Y := INTK1.Y;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 7 Serie90-AC500 AC500 / Stand: 01.2007

LZB Laufzahlblock

Der Baustein steuert die Bearbeitung eines Programmteiles. Dieses Programm heißt Laufzahlblock und beginnt mit dem Baustein LZB und endet bei der dazugehörigen Zielmarke, die am Ausgang MRK des Bausteines angegeben wird. In Abhängigkeit des Wertes des Operanden am Eingang E1 wird dieser Programmteil bearbeitet.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek Serie90_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz LZB Instanzname

E1 Eingang INT Laufzahl

MRK Ausgang SPRUNG Zielmarke

Beschreibung

Der Baustein steuert die Bearbeitung eines Programmteiles. Dieses Programm heißt Laufzahlblock und beginnt mit dem Baustein LZB und endet bei der dazugehörigen Zielmarke, die am Ausgang MRK des Bausteines angegeben wird. In Abhängigkeit des Wertes des Operanden am Eingang E1 wird dieser Programmteil wie folgt bearbeitet:

E1 = 0: Programmteil wird nicht bearbeitet

E1 = 1: Programmteil wird bei jedem Zyklus bearbeitet

E1 = 2: Programmteil wird bei jedem 2-ten Zyklus bearbeitet

: :

E1 = n: Programmteil wird bei jedem n-ten Zyklus bearbeitet

E1 INT

In Abhängigkeit des Wertes des Operanden am Eingang E1 wird dieser Programmteil wie folgt bearbeitet:

E1 = 0: Programmteil wird nicht bearbeitet

E1 = 1: Programmteil wird bei jedem Zyklus bearbeitet

E1 = 2: Programmteil wird bei jedem 2-ten Zyklus bearbeitet

: :

E1 = n: Programmteil wird bei jedem n-ten Zyklus bearbeitet

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 8 Serie90-AC500 AC500 / Stand: 01.2007

MRK BOOL

An diesem Ausgang muss eine Sprungzuweisung mit dazugehöriger Sprungmarke angelegt werden. Der Ausgang MRK meldet lediglich, ob der nachfolgende Programmteil bearbeitet wird oder nicht.

Es gilt:

MRK = FALSE → Programmteil bearbeiten

MRK = TRUE → Programmteil nicht bearbeiten

Funktionsaufruf in AWL

CAL LZB1(E1 := LZB_E1) LD LZB1.MRK JMPC MARKE

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

LZB(E1 := LZB_E1); IF (LZB1.MRK) THEN .....; END_IF

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 9 Serie90-AC500 AC500 / Stand: 01.2007

VGL3P Vergleicher mit 3-Punkt-Verhalten

Der Wert des Operanden am Eingang E wird mit den Werten der Operanden an den Eingängen OG und UG verglichen.

Die möglichen Ergebnisse werden an den Ausgängen E_OG, E_UG und Q signalisiert.

Es gilt:

E < UG → E_OG = FALSE, E_UG = TRUE, Q = FALSE

UG ≤ E ≤ OG → E_OG FALSE, E_UG = FALSE, Q = TRUE

E > OG → E_OG TRUE, E_UG = FALSE, Q = FALSE

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek Serie90_AC500_V10.LIB

Bausteintyp

Funktionsblock ohne Vergangenheitswerte

Parameter

Instanz VGL3P Instanzname

E Eingang INT Eingangswert

OG Eingang INT obere Grenze

UG Eingang INT untere Grenze

E_OG Ausgang BOOL Wert > obere Grenze

E_UG Ausgang BOOL Wert < untere Grenze

Q Ausgang BOOL untere Grenze ≤ Eingangswert ≤ obere Grenze

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 10 Serie90-AC500 AC500 / Stand: 01.2007

Beschreibung

Der Wert des Operanden am Eingang E wird mit den Werten der Operanden an den Eingängen OG und UG verglichen.

Die möglichen Ergebnisse werden an den Ausgängen E_OG, E_UG und Q signalisiert.

Es gilt:

E < UG → E_OG = FALSE, E_UG = TRUE, Q = FALSE

UG ≤ E ≤ OG → E_OG FALSE, E_UG = FALSE, Q = TRUE

E > OG → E_OG TRUE, E_UG = FALSE, Q = FALSE

Die Eingänge und Ausgänge sind weder doppelbar noch negierbar/invertierbar.

E>OG = 0E<UG = 1Q = 0

E>OG = 0E<UG = 0Q = 1

E>OG = 1E<UG = 0Q = 0

UG OG E

Funktionsaufruf in AWL

CAL VGL3P1(E := V3P_E, OG := V3P_OG, UG := V3P=_UG) LD VGL3P1.E_UG ST V3P_EUG LD VGL3P1.Q ST V3P_Q LD VGL3P1.E_OG ST V3P_EOG

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

VGL3P1(E := V3P_E, OG := V3P_OG, UG := V3P_UG); V3P_EUG := VGL3P1.E_UG; V3P_Q := VGL3P1.Q V3P_EOG := VGL3P1.E_OG;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 11 Serie90-AC500 AC500 / Stand: 01.2007

Glossar

BOOL

Variablen vom Typ BOOL können die Wahrheitswerte TRUE und FALSE annehmen. Es werden 8 Bit Speicherplatz reserviert.

DINT

DINT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DINT Untergrenze -2147483648 Obergrenze 2147483647 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

DWORD

DWORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DWORD Untergrenze 0 Obergrenze 4294967295 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

INT

INT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ INT Untergrenze -32768 Obergrenze 32767 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

WORD

WORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ WORD Untergrenze 0 Obergrenze 65535 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 12 Serie90-AC500 AC500 / Stand: 01.2007

BYTE

BYTE gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ BYTE Untergrenze 0 Obergrenze 255 Speicherplatz 8 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

Funktionen

Funktionen sind Unterprogramme, die beliebig viele Eingangsparameter haben und genau ein Ergebnis-Element zurückliefern. Das zurückgelieferte Ergebnis kann von elementarem, aber auch von zusammengesetztem Datentyp sein. Eine Funktion darf also auch ein Feld, eine Struktur, ein Feld von Strukturen etc. zurückgeben.

Funktionen liefern bei gleicher Eingangsbeschaltung stets das gleiche Ergebnis (sie besitzen kein Gedächtnis.

Daraus abzuleiten sind folgende Regeln:

• Innerhalb von Funktionen dürfen globale Variablen weder gelesen noch geschrieben werden. • Innerhalb von Funktionen dürfen Absolutoperanden weder gelesen noch geschrieben werden • Innerhalb von Funktionen dürfen Funktionsblöcke nicht aufgerufen werden.

Funktionsblöcke

Funktionsblöcke sind Unterprogramme, die jeweils beliebig viele Eingangs-, Ausgangs- und interne Variablen haben. Sie werden von einem Programm aufgerufen oder von einem anderen Funktionsblock.

Da sie auch mehrfach genutzt werden können (mit jeweils anderen Datensätzen), können Funktionsblöcke (ihr Code und die Schnittstelle) als Typ betrachtet werden. Über die Zuordnung eines individuellen Datensatzes (Deklaration) wird eine Instanz des Funktionsblockes angelegt.

Anders als Funktionen können Funktionsblöcke statisch lokale Daten haben, die von einem Aufruf zum nächsten gerettet werden. Damit können z. B. Zähler realisiert werden, die ihren Zählerstand nicht vergessen dürfen. D. h. Funktionsblöcke können ein Gedächtnis haben.

Funktionen und Funktionsblöcke unterscheiden sich in zwei wesentlichen Punkten:

• Ein Funktionsblock hat beliebig viele Ausgangsparameter, die Funktion maximal einen, wobei sich die Ausgangsparameter von Funktionen und Funktionsblöcken syntaktisch unterscheiden.

• Ein Funktionsblock kann ein Gedächtnis haben, eine Funktion nicht.

Funktionsblöcke mit Vergangenheitswerten (Gedächtnis):

Bei Funktionsblöcken mit Vergangenheitswerten ist zu beachten, dass Instanznamen nicht mehrfach vergeben werden dürfen, wenn unterschiedliche Datensätze aufgerufen werden sollen.

Funktionsblöcke ohne Vergangenheitswerte (Gedächtnis):

Bei Funktionsblöcken ohne Vergangenheitswerte braucht nur eine Instanz für den FB-Typ angelegt zu werden. Diese Instanz kann für mehrere Aufrufe des FB (auch mit unterschiedlichen E/A-Werten) genutzt werden.

Der Instanzname kann beliebig definiert werden. Der Typ ist vorgegeben und ist identisch mit dem Namen des Funktionsblockes.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 13 Serie90-AC500 AC500 / Stand: 01.2007

Index

B

Bestandteile der Bibliothek 2

G

Glossar 11

I

INTK Integrierer (komfortabel) 3

L

LZB Laufzahlblock 7

V

VGL3P Vergleicher mit 3-Punkt-Verhalten 9

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 14 Serie90-AC500 AC500 / Stand: 01.2007

Softwarebeschreibung AC500

Skalierbare SPS für individuelle Automatisierung ASCII-Kommunikations- Bausteinbibliothek

ASCII-

Kommunikation

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 1 ASCII-Kommunikation AC500 / Stand: 01.2007

Inhalt

ASCII-Kommunikations-Bibliothek .................................................................................... 2

Voraussetzung für die Verwendung der Bibliothek ........................................................................ 2

Bestandteile der Bibliotheken ................................................................................................................ 2

Bausteinübersicht, geordnet nach Aufrufnamen ............................................................................. 2

COM_REC Empfangen von Daten über eine serielle Schnittstelle im „freien Modus“............................... 3

COM_SEND Senden von Daten über eine serielle Schnittstelle im „freien Modus“ .................................. 7

Glossar ...................................................................................................................................................... 11

Index .......................................................................................................................................................... 13

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 2 ASCII-Kommunikation AC500 / Stand: 01.2007

ASCII-Kommunikations-Bibliothek

Voraussetzung für die Verwendung der Bibliothek

Hinweis:

Die Bausteine der ASCII-Kommunikation laufen nur im RUN-Modus der SPS, nicht im Simulationsmodus.

Bestandteile der Datenablage-Bibliothek

Folgende Funktionsbausteine sind in der ASCII-Bibliothek enthalten:

Gruppe: ASCII communication

COM_REC Empfangen von Daten über eine serielle Schnittstelle im "freien Modus"

COM_SEND Senden von Daten über eine serielle Schnittstelle im "freien Modus"

Einstellung der Kommunikations-Schnittstellen COMx

Für die Einstellung der Kommunikations-Schnittstellen in Sende- und Empfangsrichtung existiert kein eigener Baustein. Sie geschieht in der AC500-Steuerungskonfiguration im CoDeSys.

Bausteinübersicht, geordnet nach Aufrufnamen

Zeichenerklärung:

FBmV … Funktionsblock mit Vergangenheitswerten

FBoV … Funktionsblockohne Vergangenheitswerte

F … Funktion

VE-Name Typ Funktion

COM_REC FBmV Empfangen von Daten über eine serielle Schnittstelle im "freien Modus"

COM_SEND FBmV Senden von Daten über eine serielle Schnittstelle im "freien Modus"

Einstellung der Kommunikations-Schnittstellen COMx

Für die Einstellung der Kommunikations-Schnittstellen in Sende- und Empfangsrichtung existiert kein eigener Baustein. Sie geschieht in der AC500-Steuerungskonfiguration im CoDeSys.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 3 ASCII-Kommunikation AC500 / Stand: 01.2007

COM_REC Empfangen von Daten über eine serielle Schnittstelle im "freien Modus"

Der Funktionsbaustein COM_REC dient zum Empfangen von Daten von einer seriellen Schnittstelle im "freien Modus". Die Anzahl an COM_REC-Bausteinen innerhalb eines Projektes sowie deren Verteilung auf verschiedene Anwender-Tasks unterliegt keinen Beschränkungen. Dabei ist jedoch darauf zu achten, dass die Bausteine sicher gegeneinander verriegelt werden, d. h. nur jeweils ein Baustein darf zur gleichen Zeit aktiv sein. Um zu vermeiden, dass Telegrammteile verloren gehen bzw. nicht oder fehlerhaft ausgewertet werden, sollte ein Aktivitätswechsel zwischen zwei COM_REC-Bausteinen nur dann erfolgen, wenn der zu deaktivierende Baustein den Abschluss eines Empfangsvorgangs über DONE = TRUE signalisiert hat und das empfangene Telegramm ausgewertet wurde. Dabei ist unbedingt sicherzustellen, dass zunächst alle Instanzen des Bausteins deaktiviert sind, bevor ein Aktivitätswechsel stattfindet. Zur Vermeidung von Zuständigkeitskonflikten wird daher dringend empfohlen, innerhalb eines Projektes nur einen COM_REC-Baustein einzusetzen.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: ASCII_AC500_V10.lib

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz COM_REC Instanzname

EN Eingang BOOL Sendefreigabe über FALSE/TRUE-Flanke

COM Eingang BYTE Schnittstellenkennung (COM1 oder COM2)

DATA Eingang DWORD Speicheradresse für die Empfangsdaten über ADR-Operator

DONE Ausgang BOOL Daten empfangen

ERR Ausgang BOOL Fehler beim Datenempfang

ERNO Ausgang WORD Fehlernummer

LEN Ausgang WORD Länge der gültigen Empfangsdaten ab Adresse DATA in Byte

Beschreibung

Der Funktionsbaustein COM_REC dient zum Empfangen von Daten von einer seriellen Schnittstelle im "freien Modus". Die Anzahl an COM_REC-Bausteinen innerhalb eines Projektes sowie deren Verteilung auf verschiedene Anwender-Tasks unterliegt keinen Beschränkungen. Dabei ist jedoch darauf zu achten, dass die Bausteine sicher gegeneinander verriegelt werden, d. h. nur jeweils ein Baustein darf zur gleichen Zeit aktiv sein. Um zu vermeiden, dass Telegrammteile verloren gehen bzw. nicht oder

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 4 ASCII-Kommunikation AC500 / Stand: 01.2007

fehlerhaft ausgewertet werden, sollte ein Aktivitätswechsel zwischen zwei COM_REC-Bausteinen nur dann erfolgen, wenn der zu deaktivierende Baustein den Abschluss eines Empfangsvorgangs über DONE = TRUE signalisiert hat und das empfangene Telegramm ausgewertet wurde. Dabei ist unbedingt sicherzustellen, dass zunächst alle Instanzen des Bausteins deaktiviert sind, bevor ein Aktivitätswechsel stattfindet. Zur Vermeidung von Zuständigkeitskonflikten wird daher dringend empfohlen, innerhalb eines Projektes nur einen COM_REC-Baustein einzusetzen.

Bei einem Flankenwechsel FALSE -> TRUE an der Bausteinfreigabe EN überprüft der Baustein die Werte an den Eingängen und liest bei Gültigkeit einmalig den Empfangspuffer der jeweiligen COMx-Schnittstelle.

Die Angabe einer Speicheradresse für die Empfangsdaten ermöglicht einen Telegrammaufbau ohne Formateinschränkungen. Die Länge eines Empfangsdatenblocks ist auf maximal 256 Byte beschränkt und wird an LEN angezeigt.

Hinweis: Bei der Projektierung ist unbedingt darauf zu achten, dass ab der Adresse DATA ausreichend Speicherplatz zur Ablage der Empfangsdaten reserviert wird (z. B. ARRAY [1..256] OF BYTE).

Liegt im Bereich ab DATA ein gültiges Empfangstelegramm vor, wird dies grundsätzlich über DONE = TRUE angezeigt.

Die Eingänge sind weder doppelbar noch negierbar/invertierbar.

Empfangsfehler

Eventuelle Empfangsfehler werden vom Baustein registriert und angezeigt ERR = TRUE. In diesem Fall steht am Ausgang ERNO die Fehlernummer an. Der Baustein erkennt Überlauf-, Paritäts- und Framing-Fehler. In diesem Fall sind die Schnittstellenparameter (Baudrate, Zeichenlänge, Anzahl Stopp-Bits, Parität) der Kommunikationspartner zu überprüfen.

Zeiten

Für die Einstellung der Zeiten in Sende- und Empfangsrichtung existiert kein eigener Baustein. Sie geschieht in der AC500-Steuerungskonfiguration im CoDeSys.

EN BOOL

Bei Flankenwechsel EN = FALSE -> TRUE überprüft der Baustein die Werte an den Eingängen und liest bei Gültigkeit einmalig den Empfangspuffer der jeweiligen COMx Schnittstelle. EN = TRUE – Auslesen des Empfangspuffers EN = FALSE – Kein Auslesen des Empfangspuffers

COM BYTE

Am Eingang COM wird die Nummer der seriellen Schnittstelle vorgegeben.

COM = 1: COM1 COM = 2: COM2

DATA DWORD

Am Eingang DATA wird die Startadresse zur Ablage der Empfangsdaten über einen ADR-Operator angegeben. Empfangene Daten können sowohl im Operandenbereich als auch in Variablen abgelegt werden. Beim Empfang von Binärwerten sind einige Besonderheiten zu beachten.

Bei der Verwendung von IEC-Bit-Operanden als Ablageadresse sind nur solche Operanden erlaubt, die auf ".0" enden (z. B. %QX62.0 erlaubt, %QX62.1 verboten).

Bei der Ablage eines Empfangstelegramms im IEC-Bit-Operanden-Bereich ist zu beachten, dass ein empfangenes Byte 8 Bit-Operanden beschreibt. Wird ein Empfangsbyte jedoch in einer BOOLschen Variablen abgelegt, ist diese FALSE, wenn das Byte den Wert 0 hat, und TRUE für alle anderen Werte des Bytes.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 5 ASCII-Kommunikation AC500 / Stand: 01.2007

DONE BOOL

Der DONE-Ausgang des Bausteins zeigt, ob seit der letzten Bearbeitung des Bausteines COM_REC ein Telegramm empfangen wurde (DONE = TRUE) oder nicht (DONE = FALSE). Da beim Empfang auch ein Fehler aufgetreten sein kann (z. B. Telegrammlänge größer als Puffer), muss DONE immer im Zusammenhang mit ERR betrachtet werden.

ERR BOOL

Am Ausgang ERR wird angezeigt, ob ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist ein Fehler aufgetreten, so gilt: DONE = TRUE und ERR = TRUE. Der Ausgang ERNO signalisiert die Fehlernummer.

ERNO WORD

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der am ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

LEN WORD

Am Ausgang LEN wird die Länge der empfangenen Daten in Byte inklusive eventuelles Ende-Zeichen ausgegeben. LEN ist nur gültig, wenn DONE = TRUE ist. LEN muss immer im Zusammenhang mit ERR betrachtet werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 6 ASCII-Kommunikation AC500 / Stand: 01.2007

Funktionsaufruf in AWL

LD DATA_COM_REC ADR ST REC_COM.DATA

CAL REC_COM (EN := EN_COM_REC, COM := COM_COM_REC)

LD REC_COM.DONE ST DONE_COM_REC LD REC_COM.ERR ST ERR_COM_REC

LD REC_COM.ERNO ST ERNO_COM_REC

LD REC_COM.LEN ST LEN_COM_REC

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

REC_COM (EN := EN_COM_REC, COM := COM_COM_REC, DATA := ADR(DATA_COM_REC)); DONE_COM_REC := REC_COM.DONE; ERR_COM_REC := REC_COM.ERR; ERNO_COM_REC := REC_COM.ERNO; LEN_COM_REC := REC_COM.LEN;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 7 ASCII-Kommunikation AC500 / Stand: 01.2007

COM_SEND Senden von Daten über eine serielle Schnittstelle im "freien Modus"

Der Funktionsbaustein COM_SEND dient dem Senden von Daten über eine serielle Schnittstelle. Die Anzahl von COM_SEND-Bausteinen in einem Projekt sowie deren Verwendung in unterschiedlichen Anwender-Tasks ist nicht beschränkt. Ein Sendevorgang wird über eine FALSE->TRUE-Flanke an EN ausgelöst.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: ASCII_AC500_V10.lib

V1.2 Swapping END_CH und Checksum Option hinzugefügt

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz COM_SEND Instanzname

EN Eingang BOOL Sendefreigabe über FALSE/TRUE-Flanke

COM Eingang BYTE Schnittstellenkennung (COM1 oder COM2)

DATA Eingang DWORD Speicheradresse für die zu sendenden Daten über ADR-Operator

LEN Eingang WORD Länge der zu sendenden Daten ab Adresse DATA in Byte

END_LEN Eingang BYTE Anzahl anzuhängender Ende-Zeichen (0, 1, 2)

END_CH Eingang WORD Zeichen für Telegrammende, maximal 2 Zeichen (z. B. 16#0D0A) An die Daten anzuhängende Ende-Zeichen

DONE Ausgang BOOL Sendepuffer leer

ERR Ausgang BOOL Fehler beim Senden

ERNO Ausgang WORD Fehlernummer

Beschreibung

Der Funktionsbaustein COM_SEND dient dem Senden von Daten über eine serielle Schnittstelle. Die Anzahl von COM_SEND-Bausteinen in einem Projekt sowie deren Verwendung in unterschiedlichen Anwender-Tasks ist nicht beschränkt. Ein Sendevorgang wird über eine FALSE->TRUE-Flanke an EN

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 8 ASCII-Kommunikation AC500 / Stand: 01.2007

ausgelöst. Die Angabe einer Speicheradresse der zu sendenden Daten anstelle der Werte ermöglicht einen Telegrammaufbau ohne Formateinschränkungen.

Die Länge eines zu sendenden Datenblocks ist nicht beschränkt. Da die Daten aber nur gesendet werden können, wenn der Sendepuffer über ausreichend freien Platz verfügt, wird empfohlen, nur Datenblöcke bis zu einer Größe von 256 Byte in den Sendepuffer einzutragen. Durch den Einsatz unmittelbar aufeinanderfolgender COM_SEND-Bausteine ohne Berücksichtigung von deren DONE-Ausgänge lassen sich dann bei Bedarf auch längere Telegramme erzeugen.

Die Eingänge sind weder doppelbar noch negierbar/invertierbar.

Telegrammlänge

Die maximale Länge eines Sendetelegramms kann über die Auswertung des Ausgangs DONE gesteuert werden. DONE = TRUE zeigt einen leeren Sendepuffer an. Wird ein Sendevorgang immer nur unter der Bedingung ausgelöst, dass DONE = TRUE ist, wird ein einzelnes Telegramm je COM_SEND gesendet. Wird DONE ignoriert, lassen sich theoretisch unendlich lange Datenströme erzeugen

EN BOOL

EN FALSE->TRUE

Bei einer FALSE->TRUE-Flanke an EN wird versucht, das über die Bausteineingänge spezifizierte Telegramm zu senden. Tritt bei der Prüfung der Eingangsparameter ein Fehler auf, wird dieser am Ausgang ERNO angezeigt. DONE und ERR sind in diesem Fall TRUE. Im Fehlerfall findet keine Datenübertragung statt.

COM BYTE

Am Eingang COM wird die Nummer der seriellen Schnittstelle vorgegeben.

COM = 1: COM1 COM = 2: COM2

DATA DWORD

Am Eingang DATA wird die Startadresse der zu sendenden Daten über einen ADR-Operator angegeben. Sendedaten können sowohl Operandenwerte als auch Variablenwerte sein. Bei der Übertragung von Binärwerten sind einige Besonderheiten zu beachten.

Bei der Verwendung von IEC-Bit-Operanden als Telegramm-Startadresse sind nur solche Operanden erlaubt, die auf ".0" enden (z. B. %QX62.0 erlaubt, %QX62.1 verboten). Diese Einschränkung kann bei Bedarf umgangen werden, indem die IEC-Bit-Operanden vor der Übertragung in Variablen kopiert werden und als Telegramm-Startadressse die erste Variable angegeben wird.

IEC-Bit-Operanden werden byteweise gepackt gesendet. Dies kann bei Bedarf umgangen werden, indem die IEC-Bit-Operanden vor der Übertragung in BOOLsche Variablen zerlegt werden (z. B. ARRAY [..] OF BOOL). Als Telegramm-Startadresse ist in diesem Fall die erste Variable des Arrays am ADR-Operator anzugeben.

Die Verwendung von BOOLschen Variablen als Telegramm-Startadresse ist ohne Einschränkungen möglich. BOOLsche Variablen werden, im Gegensatz zu IEC-Bit-Operatoren, als 1 Bit je Byte (Wert "0" oder "1") übertragen. Ist dies nicht erwünscht, müssen die BOOLschen Variablen vor der Übertragung z. B. mit Hilfe des Bausteins PACK byteweise zusammengefasst und die so gepackten Daten in den zu übertragenden Datenbereich (z. B. ARRAY [..] OF BYTE) kopiert werden. Als Telegramm-Startadresse ist in diesem Fall die erste Variable des Arrays am ADR-Operator anzugeben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 9 ASCII-Kommunikation AC500 / Stand: 01.2007

Adr Adr+1 Adr+2 Adr+3 Adresse

16#0041 0000 16#0041 0001 16#0041 0002 16#0041 0003

%IB0 %IB1 %IB2 %IB3 BYTE

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

Beispiel: Adressierung in BOOL/ BYTE / WORD / DWORD

LEN WORD

Am Eingang LEN wird die Länge der zu sendenden Daten in Byte ohne eventuelles Ende-Zeichen angegeben. LEN wird mit einer FALSE->TRUE Flanke an EN übernommen.

END_LEN BYTE

Anzahl der anzuhängenden Endezeichen: 0, 1, 2 für keines, eins oder zwei.

END_CH WORD

Am Eingang END_CH wird der Wert des/der Telegrammende-Zeichen angegeben, welche an die eigentlichen Sendedaten angehängt werden soll/en. END_CH wird nur ausgewertet, wenn am Baustein COM_SEND der Eingang END_LEN ungleich Null ist. END_CH wird mit einer FALSE->TRUE Flanke an EN übernommen. Bei Bedarf kann so das Ende-Zeichen von Telegramm zu Telegramm variiert werden.

Will man z. B. ein CR/LF an ein Telegramm anhängen, so ist der Wert END_CH: 16#0D0A und END_LEN: 2.

DONE BOOL

Der DONE-Ausgang des Bausteins zeigt unabhängig vom Zustand des Eingangs EN an, ob der Sendebuffer vollständig geleert (DONE = TRUE) ist oder nicht (DONE = FALSE). Voraussetzung hierfür ist, dass die Schnittstelle zuvor erfolgreich als "freie" Schnittstelle konfiguriert worden und als solche aktiv ist. DONE muss immer im Zusammenhang mit ERR betrachtet werden. Ist ERR = TRUE, so steht am Ausgang ERNO die Fehlernummer an.

ERR BOOL

Am Ausgang ERR wird angezeigt, ob ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist ein Fehler aufgetreten, so gilt: DONE = TRUE und ERR = TRUE. Der Ausgang ERNO signalisiert die Fehlernummer.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 10 ASCII-Kommunikation AC500 / Stand: 01.2007

ERNO WORD

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der am ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

Funktionsaufruf in AWL

LD DATA_COM_SEND ADR ST SEND_COM.DATA

CAL SEND_COM (EN := EN_COM_SEND, COM := COM_COM_SEND, LEN := LEN_COM_SEND, END_CH := END_CH_COM_SEND, END_LEN := END_LEN_COM_SEND)

LD SEND_COM.DONE ST DONE_COM_SEND LD SEND_COM.ERR ST ERR_COM_SEND

LD SEND_COM.ERNO ST ERNO_COM_SEND

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

SEND_COM (EN := EN_COM_SEND, COM := COM_COM_SEND, DATA := ADR(DATA_COM_SEND), LEN := LEN_COM_SEND, END_CH := END_CH_COM_SEND, END_LEN := END_LEN_COM_SEND); DONE_COM_SEND := SEND_COM.DONE; ERR_COM_SEND := SEND_COM.ERR; ERNO_COM_SEND := SEND_COM.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 11 ASCII-Kommunikation AC500 / Stand: 01.2007

Glossar

BOOL

Variablen vom Typ BOOL können die Wahrheitswerte TRUE und FALSE annehmen. Es werden 8 Bit Speicherplatz reserviert.

DINT

DINT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DINT Untergrenze -2147483648 Obergrenze 2147483647 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

DWORD

DWORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DWORD Untergrenze 0 Obergrenze 4294967295 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

INT

INT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ INT Untergrenze -32768 Obergrenze 32767 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

WORD

WORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ WORD Untergrenze 0 Obergrenze 65535 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 12 ASCII-Kommunikation AC500 / Stand: 01.2007

BYTE

BYTE gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ BYTE Untergrenze 0 Obergrenze 255 Speicherplatz 8 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

Funktionen

Funktionen sind Unterprogramme, die beliebig viele Eingangsparameter haben und genau ein Ergebnis-Element zurückliefern. Das zurückgelieferte Ergebnis kann von elementarem, aber auch von zusammengesetztem Datentyp sein. Eine Funktion darf also auch ein Feld, eine Struktur, ein Feld von Strukturen etc. zurückgeben.

Funktionen liefern bei gleicher Eingangsbeschaltung stets das gleiche Ergebnis (sie besitzen kein Gedächtnis.

Daraus abzuleiten sind folgende Regeln:

• Innerhalb von Funktionen dürfen globale Variablen weder gelesen noch geschrieben werden. • Innerhalb von Funktionen dürfen Absolutoperanden weder gelesen noch geschrieben werden • Innerhalb von Funktionen dürfen Funktionsblöcke nicht aufgerufen werden.

Funktionsblöcke

Funktionsblöcke sind Unterprogramme, die jeweils beliebig viele Eingangs-, Ausgangs- und interne Variablen haben. Sie werden von einem Programm aufgerufen oder von einem anderen Funktionsblock.

Da sie auch mehrfach genutzt werden können (mit jeweils anderen Datensätzen), können Funktionsblöcke (ihr Code und die Schnittstelle) als Typ betrachtet werden. Über die Zuordnung eines individuellen Datensatzes (Deklaration) wird eine Instanz des Funktionsblockes angelegt.

Anders als Funktionen können Funktionsblöcke statisch lokale Daten haben, die von einem Aufruf zum nächsten gerettet werden. Damit können z. B. Zähler realisiert werden, die ihren Zählerstand nicht vergessen dürfen. D. h. Funktionsblöcke können ein Gedächtnis haben.

Funktionen und Funktionsblöcke unterscheiden sich in zwei wesentlichen Punkten:

• Ein Funktionsblock hat beliebig viele Ausgangsparameter, die Funktion maximal einen, wobei sich die Ausgangsparameter von Funktionen und Funktionsblöcken syntaktisch unterscheiden.

• Ein Funktionsblock kann ein Gedächtnis haben, eine Funktion nicht.

Funktionsblöcke mit Vergangenheitswerten (Gedächtnis):

Bei Funktionsblöcken mit Vergangenheitswerten ist zu beachten, dass Instanznamen nicht mehrfach vergeben werden dürfen, wenn unterschiedliche Datensätze aufgerufen werden sollen.

Funktionsblöcke ohne Vergangenheitswerte (Gedächtnis):

Bei Funktionsblöcken ohne Vergangenheitswerte braucht nur eine Instanz für den FB-Typ angelegt zu werden. Diese Instanz kann für mehrere Aufrufe des FB (auch mit unterschiedlichen E/A-Werten) genutzt werden.

Der Instanzname kann beliebig definiert werden. Der Typ ist vorgegeben und ist identisch mit dem Namen des Funktionsblockes.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 13 ASCII-Kommunikation AC500 / Stand: 01.2007

Index

B

Bausteinübersicht, geordnet nach Aufrufnamen 2

Bestandteile der Bibliothek 2

C

COM_REC Empfangen von Daten über eine serielle Schnittstelle im "freien Modus" 3

COM_SEND Senden von Daten über eine serielle Schnittstelle im "freien Modus" 7

G

Glossar 11

V

Voraussetzung für die Verwendung der Bibliothek 2

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 14 ASCII-Kommunikation AC500 / Stand: 01.2007

Softwarebeschreibung AC500

Skalierbare SPS für individuelle Automatisierung CS31- Bausteinbibliothek

CS31

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 1 CS31 AC500 / Stand: 01.2007

Inhalt

CS31-Bibliothek, Bausteine für den CS31-Bus ......................................................... 2

Voraussetzung für die Verwendung der CS31-Bibliothek ............................................................. 2

Bestandteile der CS31-Bibliothek ........................................................................................................ 2

Bausteinübersicht, geordnet nach Aufrufnamen ............................................................................. 2

CS31CO AC31-Module konfigurieren ...................................................................................................... 3

CS31QU AC31-Fehler quittieren ............................................................................................................ 14

Glossar ...................................................................................................................................................... 16

Index .......................................................................................................................................................... 18

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 2 CS31 AC500 / Stand: 01.2007

CS31-Bibliothek

Voraussetzung für die Verwendung der CS31-Bibliothek

Hinweis:

Die Bausteine der CS31-Bibliothek laufen nur im RUN-Modus der SPS, nicht im Simulationsmodus.

Achtung: Die Bausteine der CS31-Bibliothek dürfen nur aufgerufen werden, wenn die serielle Schnittstelle COM1 als "CS31 bus master" konfiguriert ist.

Bestandteile der CS31-Bibliothek

Folgende Funktionsbausteine sind in der CS31-Bibliothek enthalten:

CS31CO AC31-Module konfigurieren

CS31QU AC31-Fehler quittieren

Bausteinübersicht, geordnet nach Aufrufnamen

Zeichenerklärung:

FBmV … Funktionsblock mit Vergangenheitswerten

FBoV … Funktionsblock ohne Vergangenheitswerte

F … Funktion

VE-Name Typ Funktion

CS31CO FBmV AC31-Module konfigurieren

CS31QU FBoV AC31-Fehler quittieren

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 3 CS31 AC500 / Stand: 01.2007

CS31CO AC31-Module konfigurieren

Der Baustein dient zum Konfigurieren der AC31-Vor-Ort-Module. Der Baustein kann sowohl Konfigurationsparameter an die Vor-Ort-Module schicken als auch deren aktuell eingestellte Konfiguration abfragen.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: CS31_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CS31CO Instanzname

FREI Eingang BOOL Freigabe (FALSE/TRUE-Flanke) zur Bearbeitung des Bausteins

GRN Eingang INT Gruppennummer des Vor-Ort-Moduls, auf den sich der Auftrag bezieht

CODE Eingang INT Kennung des durchzuführenden Auftrags

D1 Eingang INT 1. Parameter des Auftrags

. . . .

. . . .

D8 Eingang INT 8. Parameter des Auftrags

RDY Ausgang BOOL Bearbeitung des Auftrags ist abgeschlossen

OK Ausgang BOOL Auftrag konnte korrekt bearbeitet werden

ERR Ausgang INT Fehlermeldung/Statusmeldung

A1 Ausgang INT 1. Parameter der Antwort

. . . .

. . . .

A7 Ausgang INT 7. Parameter der Antwort

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 4 CS31 AC500 / Stand: 01.2007

Beschreibung

Der Baustein dient zum Konfigurieren der AC31-Vor-Ort-Module. Der Baustein kann sowohl Konfigurationsparameter an die Vor-Ort-Module schicken als auch deren aktuell eingestellte Konfiguration abfragen.

Außer der Konfiguration der AC31-Vor-Ort-Module kann der Baustein noch weitere Aufträge bearbeiten (siehe Liste der Aufträge).

Die Freigabe zur einmaligen Bearbeitung eines Auftrages erfolgt durch eine FALSE/TRUE-Flanke am Eingang FREI.

Am Eingang CODE wird die gewünschte Auftragskennung angegeben.

Die für den Auftrag erforderlichen Parameter werden an den Eingängen D1...D8 projektiert.

An den Ausgängen RDY, OK und ERR werden Statusmeldungen signalisiert.

Die Antwortdaten des Auftrages stehen an den Ausgängen A1...A7 zur Verfügung.

Die Bearbeitung des Auftrages kann mehrere SPS-Zyklen dauern.

FREI BOOL

Über den Eingang FREI wird die Bearbeitung des Bausteins gesteuert.

FREI = FALSE: Alle Bausteinausgänge werden auf den Wert "FALSE" gesetzt. Dies gilt aber nicht während einer gerade laufenden Auftragsabwicklung, d. h. die Bearbeitung eines gerade laufenden Auftrages wird durch FREI = FALSE nicht beeinflusst.

FREI = FALSE/TRUE-Flanke: Die Bearbeitung des Auftrages wird freigegeben. Während der Bearbeitung des Auftrages wird der Eingang FREI nicht mehr ausgewertet.

FREI = TRUE: Der Baustein wird nicht bearbeitet, d. h. der Baustein verändert seine Ausgänge nicht mehr. Dies gilt aber nicht während einer gerade laufenden Auftragsabwicklung.

GRN INT

Gruppennummer, mit der das Vor-Ort-Modul vom Automatisierungsprogramm aus angesprochen wird.

Bereich 0...63

Beispiel: Beim Binäreingang E 12,08 ist "12" die Gruppennummer und "08" die Kanalnummer.

CODE INT

Am Eingang CODE wird die Kennung des auszuführenden Auftrages angegeben (siehe Liste der Aufträge).

D1...D8 INT

An den Eingängen D1...D8 werden die für den Auftrag erforderlichen Parameter vorgegeben. Die Anzahl der Parameter hängt vom durchzuführenden Auftrag ab. Es gibt auch Aufträge, die keine Parameter benötigen (siehe dazu Liste der Aufträge).

RDY BOOL

Der Ausgang RDY signalisiert, dass die Bearbeitung des laufenden Auftrages abgeschlossen ist. Der Ausgang RDY macht keine Aussage darüber, ob die Bearbeitung des Auftrages mit Erfolg durchgeführt werden konnte oder nicht. Der Ausgang RDY ist deshalb immer zusammen mit dem Ausgang OK zu betrachten.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 5 CS31 AC500 / Stand: 01.2007

RDY = TRUE und OK = TRUE: Die Bearbeitung des Auftrages wurde fehlerfrei abgewickelt. Ein neuer Auftrag kann mit einer FALSE/TRUE-Flanke am Eingang FREI gestartet werden.

RDY = TRUE und OK = FALSE: Bei der Bearbeitung des Auftrages wurde ein Fehler festgestellt. Am Ausgang ERR steht die zugehörige Fehlerkennung zur Verfügung. Ein neuer Auftrag kann mit einer FALSE/TRUE-Flanke am Eingang FREI gestartet werden.

RDY = FALSE Die Bearbeitung eines freigegebenen Auftrages ist noch nicht abgeschlossen (Auftrag läuft noch) oder mit FREI = FALSE wurde der Ausgang RDY zurückgesetzt

OK BOOL

Der Ausgang OK signalisiert, ob der Auftrag erfolgreich abgewickelt wurde oder ob bei der Bearbeitung ein Fehler festgestellt wurde. Im Fehlerfalle wird am Ausgang ERR eine Fehlernummer angezeigt. Der Ausgang OK ist erst gültig, wenn der Auftrag abgeschlossen ist d. h. wenn RDY = TRUE ist.

Es gilt: wenn RDY = TRUE und

OK = TRUE: Der Auftrag wurde erfolgreich bearbeitet,

OK = FALSE: Bei der Bearbeitung des Auftrages wurde ein Fehler festgestellt.

ERR INT

Am Ausgang ERR werden Status- und Fehlerkennungen ausgegeben. Die Statuskennungen werden während der Bearbeitung eines Auftrages ausgegeben, um zu signalisieren, in welchem Bearbeitungsstadium sich der Auftrag gerade befindet. Nach der Freigabe eines Auftrages werden Statuskennungen also nur solange signalisiert, wie RDY = FALSE ist.

Die Fehlerkennungen werden nach Abschluss der Auftragsbearbeitung ausgegeben, falls ein Fehler aufgetreten ist. Fehlerkennungen werden also erst dann signalisiert, wenn

RDY = TRUE und OK = FALSE

sind.

Fehlerkennungen

ERR = 1: Es wurde am Eingang CODE eine unzulässige Auftragskennung angegeben.

ERR = 2: Es wurden an den Eingängen D1...D8 falsche Parameter angegeben (z. B. eine Gruppennummer, zu der es kein Vor-Ort-Modul am CS31-Systembus gibt).

ERR = 3: Das angesprochene AC31-Vor-Ort-Modul akzeptiert den Auftrag nicht.

Statuskennungen

ERR = 8: Der Baustein wartet, weil momentan gerade ein Auftrag eines anderen Auftraggebers bearbeitet wird.

ERR = 10: Der Auftrag wurde an den Empfänger abgeschickt und der Baustein wartet auf dessen Antwort.

A1...A7 INT

An den Ausgängen A1...A7 steht nach Abschluss der Auftragsbearbeitung die Antwort zur Verfügung. Die Anzahl der Antwortparameter hängt vom ausgeführten Auftrag ab (siehe Liste der Aufträge).

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 6 CS31 AC500 / Stand: 01.2007

Liste der Aufträge

Die Abwicklung eines Auftrages besteht aus: - dem Verschicken des Auftrages und - der Bereitstellung der OK-Antwort bzw. Nicht-OK-Antwort

Die OK-Antwort wird beim jeweiligen Auftrag beschrieben.

Die Nicht-OK-Antwort der einzelnen Aufträge sieht immer wie folgt aus:

* Nicht-OK-Antwort

für die Nicht-OK-Antwort gilt prinzipiell:

RDY: TRUE OK: FALSE

ERR: 1. unzulässige Auftragskennung 2. falscher Parameter, z. B. Gruppennummer, zu der es kein Vor-Ort-Modul gibt 3. Vor-Ort-Modul akzeptiert den Auftrag nicht

A1...A7: 0

Aktualisierung der maximalen Anzahl erkannter Vor-Ort-Module

Im Eingangswort EW 07,15 steht u. a. die maximale Anzahl der in der Vergangenheit erkannten Vor-Ort-Module. Die momentane wirkliche Anzahl der vorhandenen Vor-Ort-Module kann geringer sein. Mit diesem Kommando wird dieser Wert aktualisiert. Die vorhandenen Module werden gezählt und der Wert wird abgelegt. Der Anwender kann diesen Wert im SPS-Programm (EW 07,15, Bit 8 … 15) abfragen.

- Auftrag GRN: CODE: D1...D8:

255 (Master-SPS mit Bus) 132 Nicht benutzt

- OK-Antwort RDY: OK: A1...A7:

TRUE TRUE 0

Abfrage, ob bei einem Eingang die Drahtbruchüberwachung ein- oder ausgeschaltet ist

- Auftrag GRN: CODE: D1: D2...D8:

Gruppennummer 0...63 32 Kanalnummer Nicht benutzt

- OK-Antwort RDY: OK: A1: A2...A7:

TRUE TRUE 47. Drahtbruchüberwachung EIN 32. Drahtbruchüberwachung AUS 0

Abfrage, ob bei einem Ausgang die Drahtbruchüberwachung ein- oder ausgeschaltet ist

- Auftrag GRN: CODE: D1: D2...D8:

Gruppennummer 0...63 33 Kanalnummer Nicht benutzt

- OK-Antwort RDY: OK:

TRUE TRUE

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 7 CS31 AC500 / Stand: 01.2007

A1: A2...A7:

47. Drahtbruchüberwachung EIN 32. Drahtbruchüberwachung AUS 0

Drahtbruchüberwachung eines Einganges ein- bzw. ausschalten

- Auftrag GRN: CODE: D1: D2...D8:

Gruppennummer 0...63 224. Drahtbruchüberwachung EIN 160. Drahtbruchüberwachung AUS Kanalnummer Nicht benutzt

- OK-Antwort RDY: OK: A1...A7:

TRUE TRUE 0

Drahtbruchüberwachung eines Ausganges ein- bzw. ausschalten

- Auftrag GRN: CODE: D1: D2...D8:

Gruppennummer 0...63 225. Drahtbruchüberwachung EIN 161. Drahtbruchüberwachung AUS Kanalnummer Nicht benutzt

- OK-Antwort RDY: OK: A1...A7:

TRUE TRUE 0

Abfrage, ob ein Kanal als Eingang oder als Eingang/Ausgang konfiguriert ist

- Auftrag GRN: CODE: D1: D2...D8:

Gruppennummer 0...63 34 Kanalnummer Nicht benutzt

- OK-Antwort RDY: OK: A1: A2...A7:

TRUE TRUE 34. Eingang 35. Eingang/Ausgang 0

Konfiguration eines Kanals als Eingang oder Eingang/Ausgang

- Auftrag GRN: CODE: D1: D2...D8:

Gruppennummer 0...63 162. Eingang 163. Eingang/Ausgang Kanalnummer Nicht benutzt

- OK-Antwort RDY: OK: A1...A7:

TRUE TRUE 0

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 8 CS31 AC500 / Stand: 01.2007

Abfragen der Eingangsverzögerung eines Kanals

- Auftrag GRN: CODE: D1: D2...D8:

Gruppennummer 0...63 38 Kanalnummer Nicht benutzt

- OK-Antwort RDY: OK: A1: A2...A7:

TRUE TRUE Eingangsverzögerung 2. 2 ms 4. 4 ms : : 30. 30 ms 32. 32 ms 0

Einstellen der Eingangsverzögerung eines Kanals

- Auftrag GRN: CODE: D1: D2:

Gruppennummer 0...63 166 Kanalnummer Eingangsverzögerung 2. 2 ms 4. 4 ms : : 30. 30 ms 32. 32 ms

- OK-Antwort RDY: OK: A1...A7:

TRUE TRUE 0

Fehler auf Vor-Ort-Modul quittieren

Mit diesem Kommando werden die auf dem gewählten Vor-Ort-Modul registrierten Fehlermeldungen zurückgesetzt. Ein Rücksetzen ist nur möglich, wenn die Fehlerursache nicht mehr wirksam ist.

- Auftrag GRN: CODE: D1: D2: D3...D8:

Gruppennummer 0...63 232 kleinste Kanalnummer auf dem Modul: 0. kleinste Kanalnummer auf dem Modul ist 0 (<7) 8. kleinste Kanalnummer auf dem Modul ist 8 (>7) Modultyp: 0. Binäre Eingabe 1. Analoge Eingabe 2. Binäre Ausgabe 3. Analoge Ausgabe 4. Binäre Ein-/Ausgabe 5. Analoge Ein-/Ausgabe Hinweis: Bit: gerade Zahl (0, 2, 4) Wort: ungerade Zahl (1, 3, 5) Nicht benutzt

- OK-Antwort RDY: OK: A1...A7:

TRUE TRUE 0

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 9 CS31 AC500 / Stand: 01.2007

Fehler auf Vor-Ort-Modul quittieren und Konfigurationswerte auf Standardeinstellung (Default) rücksetzen

Zusätzlich zum Auftrag 'Fehler auf Vor-Ort-Oodul quittieren' werden alle konfigurierbaren Einstellungen auf die Standardeinstellung zurückgesetzt.

- Auftrag GRN: CODE: D1: D2: D3...D8:

Gruppennummer 0...63 233 erste Kanalnummer auf dem Modul: 0. erste Kanalnummer auf dem Modul ist 0 (<7) 8. erste Kanalnummer auf dem Modul ist 8 (>7) Modultyp: 0. Binäre Eingabe 1. Analoge Eingabe 2. Binäre Ausgabe 3. Analoge Ausgabe 4. Binäre Ein-/Ausgabe 5. Analoge Ein-/Ausgabe Hinweis: Bit: gerade Zahl (0, 2, 4) Wort: ungerade Zahl (1, 3, 5) Nicht benutzt

- OK-Antwort RDY: OK: A1...A7:

TRUE TRUE 0

Abfragen der Konfiguration eines analogen Einganges

- Auftrag GRN: CODE: D1: D2...D8:

Gruppennummer 0...63 42 Kanalnummer Nicht benutzt

- OK-Antwort RDY: OK: A1: A2...A7:

TRUE TRUE 50. Eingang 0...20 mA 49. Eingang 4...20 mA 0

Abfragen der Konfiguration eines analogen Ausgangs

- Auftrag GRN: CODE: D1: D2...D8:

Gruppennummer 0...63 43 Kanalnummer Nicht benutzt

- OK-Antwort RDY: OK: A1: A2...A7:

TRUE TRUE 50. Ausgang 0...20 mA 49. Ausgang 4...20 mA 51. Ausgang +10 V 0

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 10 CS31 AC500 / Stand: 01.2007

Konfiguration eines analogen Einganges

- Auftrag GRN: CODE: D1: D2: D3...D8:

Gruppennummer 0...63 170 Kanalnummer 50. Eingang 0...20 mA 49. Eingang 4...20 mA Nicht benutzt

- OK-Antwort RDY: OK: A1...A7:

TRUE TRUE 0

Konfiguration eines analogen Ausganges

- Auftrag GRN: CODE: D1: D2: D3...D8:

Gruppennummer 0...63 171 Kanalnummer 50. Ausgang 0...20 mA 49. Ausgang 4...20 mA 51. Ausgang +10 V Nicht benutzt

- OK-Antwort RDY: OK: A1...A7:

TRUE TRUE 0

Abfragen der Buskonfiguration

Die Busanschaltung der Master-SPS verfügt über eine Liste, in der bestimmte Daten der Vor-Ort-Module abgelegt sind. Die Vor-Ort-Module sind in dieser Liste in der Reihenfolge nummeriert, in welcher sie am CS31-Systembus aufgefunden wurden. Bei diesem Kommando wird die interne Nummer der Module angegeben. Als Antwort erhält man die unter dieser Nummer gespeicherte Gruppennummer sowie Statusinformationen zu dem entsprechenden Modul.

- Auftrag GRN: CODE: D1: D2...D8:

Wird nicht ausgewertet 80 Nummer aus der Modulliste (1...31) Nicht benutzt

- OK-Antwort RDY: OK: A1: A2: A3: A4...A7:

TRUE TRUE Status des Vor-Ort-Moduls: Bit 0...3: Anzahl der Prozessdatenbytes (Binärmodul) bzw. Worte (Wortmodul), die das Modul dem Master sendet Bit 4...7: Anzahl der Prozessdatenbytes (Binärmodul) bzw. Worte (Wortmodul), die der Master dem Modul sendet Gruppennummer Bit 0: 0. kleinste Kanalnummer <7 1. kleinste Kanalnummer >7 Bit 1: 0. Binärmodul 1. Wortmodul 0

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 11 CS31 AC500 / Stand: 01.2007

1...6 Bytes lesen

- Auftrag GRN: CODE: D1: D2: D3: D4: D5...D8:

Gruppennummer 0...63 49. 1 Byte lesen 50. 2 Bytes lesen 51. 3 Bytes lesen 52. 4 Bytes lesen 53. 5 Bytes lesen 54. 6 Bytes lesen Erste Kanalnummer auf dem Modul: 0. erste Kanalnummer auf dem Modul ist 0 (<7) 1. erste Kanalnummer auf dem Modul ist 8 (>7) Modultyp: 0. Binäre Eingabe 1. Analoge Eingabe 2. Binäre Ausgabe 3. Analoge Ausgabe 4. Binäre Ein-/Ausgabe 5. Analoge Ein-/Ausgabe Hinweis: Bit: gerade Zahl (0, 2, 4) Wort: ungerade Zahl (1, 3, 5) Byte-Anfangsadresse (Low Byte) Byte-Anfangsadresse (High Byte) Nicht benutzt

- OK-Antwort RDY: OK: A1: A2: A3: A4. A5: A6: A7:

TRUE TRUE Wert des 1. Bytes Wert des 2. Bytes oder 0 Wert des 3. Bytes oder 0 Wert des 4. Bytes oder 0 Wert des 5. Bytes oder 0 Wert des 6. Bytes oder 0 0

1 Bit von einem Byte lesen

- Auftrag GRN: CODE: D1: D2: D3: D4: D5: D6...D8:

Gruppennummer 0...63 63 Erste Kanalnummer auf dem Modul: 0. erste Kanalnummer auf dem Modul ist 0 (<7) 1. erste Kanalnummer auf dem Modul ist 8 (>7) Modultyp: 0. Binäre Eingabe 1. Analoge Eingabe 2. Binäre Ausgabe 3. Analoge Ausgabe 4. Binäre Ein-/Ausgabe 5. Analoge Ein-/Ausgabe Hinweis: Bit: gerade Zahl (0, 2, 4) Wort: ungerade Zahl (1, 3, 5) Byte-Anfangsadresse (Low Byte) Byte-Anfangsadresse (High Byte) Bitposition innerhalb des Bytes 0...7 Nicht benutzt

- OK-Antwort RDY: OK: A1: A2...A7:

TRUE TRUE Bitwert (0 oder 1) 0

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 12 CS31 AC500 / Stand: 01.2007

1...4 Bytes schreiben

- Auftrag GRN: CODE: D1: D2: D3: D4: D5: D6: D7: D8:

Gruppennummer 0...63 65. 1 Byte schreiben 66. 2 Bytes schreiben 67. 3 Bytes schreiben 68. 4 Bytes schreiben Erste Kanalnummer auf dem Modul: 0. erste Kanalnummer auf dem Modul ist 0 (<7) 1. erste Kanalnummer auf dem Modul ist 8 (>7) Modultyp: 0. Binäre Eingabe 1. Analoge Eingabe 2. Binäre Ausgabe 3. Analoge Ausgabe 4. Binäre Ein-/Ausgabe 5. Analoge Ein-/Ausgabe Hinweis: Bit: gerade Zahl (0, 2, 4) Wort: ungerade Zahl (1, 3, 5) Byte-Anfangsadresse (Low Byte) Byte-Anfangsadresse (High Byte) Wert des 1. Bytes Wert des 2. Bytes oder nicht benutzt Wert des 3. Bytes oder nicht benutzt Wert des 4. Bytes oder nicht benutzt

- OK-Antwort RDY: OK: A1...A7:

TRUE TRUE 0

1 Bit von einem Byte schreiben

- Auftrag GRN: CODE: D1: D2: D3: D4: D5: D6: D7...D8:

Gruppennummer 0...63 79 Erste Kanalnummer auf dem Modul: 0. erste Kanalnummer auf dem Modul ist 0 (<7) 1. erste Kanalnummer auf dem Modul ist 8 (>7) Modultyp: 0. Binäre Eingabe 1. Analoge Eingabe 2. Binäre Ausgabe 3. Analoge Ausgabe 4. Binäre Ein-/Ausgabe 5. Analoge Ein-/Ausgabe Hinweis: Bit: gerade Zahl (0, 2, 4) Wort: ungerade Zahl (1, 3, 5) Byte-Anfangsadresse (Low Byte) Byte-Anfangsadresse (High Byte) Bitposition innerhalb des Bytes 0...7 Bitwert (0 oder 1) Nicht benutzt

- OK-Antwort RDY: OK: A1...A7:

TRUE TRUE 0

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 13 CS31 AC500 / Stand: 01.2007

Funktionsaufruf in AWL

CAL CS31CO1(FREI := CSCO_FREI, GRN := CSCO_GRN, CODE := CSCO_CODE, D1 := CSCO_D1, D2 := CSCO_D2, D3 := CSCO_D3, D4 := CSCO_D4, D5 := CSCO_D5, D6 := CSCO_D6, D7 := CSCO_D7, D8 := CSCO_D8)

LD CS31CO1.OK ST CSCO_OK LD CS31CO1.ERR ST CSCO_ERR LD CS31CO1.A1 ST CSCO_A1 LD CS31CO1.A2 ST CSCO_A2 LD CS31CO1.A3 ST CSCO_A3 LD CS31CO1.A4 ST CSCO_A4 LD CS31CO1.A5 ST CSCO_A5 LD CS31CO1.A6 ST CSCO_A6 LD CS31CO1.A7 ST CSCO_A7 LD CS31CO1.RDY ST CSCO_RDY

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

CS31CO1(FREI := CSCO_FREI, GRN := CSCO_GRN,CODE := CSCO_CODE, D1 := CSCO_D1, D2 := CSCO_D2, D3 := CSCO_D3, D4 := CSCO_D4, D5 := CSCO_D5, D6 := CSCO_D6, D7 := CSCO_D7, D8 := CSCO_D8);

CSCO_OK:=CS31CO1.OK; CSCO_ERR:=CS31CO1.ERR; CSCO_A1:=CS31CO1.A1; CSCO_A2:=CS31CO1.A2; CSCO_A3:=CS31CO1.A3; CSCO_A4:=CS31CO1.A4; CSCO_A5:=CS31CO1.A5; CSCO_A6:=CS31CO1.A6; CSCO_A7:=CS31CO1.A7; CSCO_RDY:=CS31CO1.RDY;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 14 CS31 AC500 / Stand: 01.2007

CS31QU AC31-Fehler quittieren

Mit diesem Baustein können Fehlermeldungen von AC31-Vor-Ort-Modulen automatisch quittiert werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: CS31_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CS31QU Instanzname

FREI Eingang BOOL Freigabe der Bausteinbearbeitung

Beschreibung

Mit diesem Baustein können Fehlermeldungen von AC31-Vor-Ort-Modulen automatisch quittiert werden. Fehlermeldungen werden auf den AC31-Vor-Ort-Modulen solange gespeichert, bis sie quittiert werden. Selbst wenn der Fehler beseitigt ist, steht die Fehlermeldung auf dem Modul bis zur Quittierung an und wird auch solange an das Automatisierungsgerät gemeldet.

Mit dem TRUE-Signal am Eingang FREI wird die Bearbeitung des Bausteins freigegeben, und dieser führt dann fortwährend Quittierungen von AC31-Fehlern durch.

Die Quittierung eines Fehlers auf einem AC31-Modul kann mehrere SPS-Zyklen dauern.

Ist der Baustein freigegeben, so prüft er ständig, ob ein AC31-Fehler der Klasse 3 oder 4 vorliegt und quittiert diesen.

Es liegt ein AC31-Fehler der Klasse 3 vor:

Der Baustein quittiert den Fehler auf dem AC31-Vor-Ort-Modul, das des Fehler meldet und löscht auch die Fehlermeldung auf dem Automatisierungsgerät, d. h. der Fehlermerker M 255,13 wird zurückgesetzt und die Leuchtdiode FK3 wird ausgeschaltet.

Beispiel für einen FK3-Fehler: Ein Vor-Ort-Modul wird vom CS31-Systembus abgetrennt.

Es liegt ein AC31-Fehler der Klasse 4 vor:

Der Baustein quittiert den Fehler auf dem AC31-Vor-Ort-Modul, das des Fehler meldet und löscht auch die Fehlermeldung auf dem Automatisierungsgerät, d. h. der Fehlermerker M 255,14 wird zurückgesetzt.

Beispiel für einen FK4-Fehler: Ein Vor-Ort-Modul meldet Drahtbruch

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 15 CS31 AC500 / Stand: 01.2007

Funktionsaufruf in AWL

CAL CS31QU1(FREI := CSQU_FREI)

Funktionsaufruf in ST

CS31QU1(FREI := CSQU_FREI);

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 16 CS31 AC500 / Stand: 01.2007

Glossar

BOOL

Variablen vom Typ BOOL können die Wahrheitswerte TRUE und FALSE annehmen. Es werden 8 Bit Speicherplatz reserviert.

DINT

DINT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DINT Untergrenze -2147483648 Obergrenze 2147483647 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

DWORD

DWORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DWORD Untergrenze 0 Obergrenze 4294967295 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

INT

INT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ INT Untergrenze -32768 Obergrenze 32767 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

WORD

WORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ WORD Untergrenze 0 Obergrenze 65535 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 17 CS31 AC500 / Stand: 01.2007

BYTE

BYTE gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ BYTE Untergrenze 0 Obergrenze 255 Speicherplatz 8 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

Funktionen

Funktionen sind Unterprogramme, die beliebig viele Eingangsparameter haben und genau ein Ergebnis-Element zurückliefern. Das zurückgelieferte Ergebnis kann von elementarem, aber auch von zusammengesetztem Datentyp sein. Eine Funktion darf also auch ein Feld, eine Struktur, ein Feld von Strukturen etc. zurückgeben.

Funktionen liefern bei gleicher Eingangsbeschaltung stets das gleiche Ergebnis (sie besitzen kein Gedächtnis.

Daraus abzuleiten sind folgende Regeln:

• Innerhalb von Funktionen dürfen globale Variablen weder gelesen noch geschrieben werden. • Innerhalb von Funktionen dürfen Absolutoperanden weder gelesen noch geschrieben werden • Innerhalb von Funktionen dürfen Funktionsblöcke nicht aufgerufen werden.

Funktionsblöcke

Funktionsblöcke sind Unterprogramme, die jeweils beliebig viele Eingangs-, Ausgangs- und interne Variablen haben. Sie werden von einem Programm aufgerufen oder von einem anderen Funktionsblock.

Da sie auch mehrfach genutzt werden können (mit jeweils anderen Datensätzen), können Funktionsblöcke (ihr Code und die Schnittstelle) als Typ betrachtet werden. Über die Zuordnung eines individuellen Datensatzes (Deklaration) wird eine Instanz des Funktionsblockes angelegt.

Anders als Funktionen können Funktionsblöcke statisch lokale Daten haben, die von einem Aufruf zum nächsten gerettet werden. Damit können z. B. Zähler realisiert werden, die ihren Zählerstand nicht vergessen dürfen. D. h. Funktionsblöcke können ein Gedächtnis haben.

Funktionen und Funktionsblöcke unterscheiden sich in zwei wesentlichen Punkten:

• Ein Funktionsblock hat beliebig viele Ausgangsparameter, die Funktion maximal einen, wobei sich die Ausgangsparameter von Funktionen und Funktionsblöcken syntaktisch unterscheiden.

• Ein Funktionsblock kann ein Gedächtnis haben, eine Funktion nicht.

Funktionsblöcke mit Vergangenheitswerten (Gedächtnis):

Bei Funktionsblöcken mit Vergangenheitswerten ist zu beachten, dass Instanznamen nicht mehrfach vergeben werden dürfen, wenn unterschiedliche Datensätze aufgerufen werden sollen.

Funktionsblöcke ohne Vergangenheitswerte (Gedächtnis):

Bei Funktionsblöcken ohne Vergangenheitswerte braucht nur eine Instanz für den FB-Typ angelegt zu werden. Diese Instanz kann für mehrere Aufrufe des FB (auch mit unterschiedlichen E/A-Werten) genutzt werden.

Der Instanzname kann beliebig definiert werden. Der Typ ist vorgegeben und ist identisch mit dem Namen des Funktionsblockes.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 18 CS31 AC500 / Stand: 01.2007

Index

B

Bestandteile der CS31-Bibliothek 2

C

CS31 S90

CS31CO AC31-Module konfigurieren 3

CS31QU AC31-Fehler quittieren 14

G

Glossar 16

U

Übersicht über die CS31-Bausteine 2

V

Voraussetzung für die Verwendung der CS31-Bibliothek 2

Softwarebeschreibung AC500

Skalierbare SPS für individuelle Automatisierung Ethernet- Bausteinbibliothek

Ethernet

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 1 Ethernet AC500 / Stand: 01.2007

Inhalt

Ethernet-Bibliothek ........................................................................................................................ 2

Voraussetzung für die Verwendung der Bibliothek ......................................................................... 2

Besonderheiten der Ethernet-Bibliothek ............................................................................................ 2

Bestandteile der Ethernet-Bibliothek .................................................................................................. 3

Bausteinübersicht, geordnet nach Aufrufnamen ............................................................................. 4

ETH_MOD_INFO Auslesen von Statusinformationen der OpenModbus on TCP/IP-Verarbeitung ........... 5

ETH_MOD_MAST Verarbeitung von OpenModbus on TCP/IP-Client-(Master)-Telegrammen ................ 8

ETH_OWN_IP Eigene IP-Adresse auslesen............................................................................................ 12

ETH_UDP_INFO Auslesen von Statusinformationen der UDP/IP-Verarbeitung ..................................... 15

ETH_UDP_REC Datenpaket aus dem Ethernet-UDP/IP-Empfangspuffer lesen..................................... 19

ETH_UDP_SEND Datenpaket an einen Teilnehmer über Ethernet UDP/IP senden............................... 23

ETH UDP_STO Ethernet-UDP/IP-Timeout-Datenpakete aus dem Timeout-Datenpuffer lesen.............. 28

IP_ADR_DWORD_TO_STRING Formatkonvertierung der IP-Adresse................................................... 31

IP_ADR_STRING_TO_DWORD Formatkonvertierung der IP-Adresse................................................... 33

Glossar ...................................................................................................................................................... 35

Index .......................................................................................................................................................... 37

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 2 Ethernet AC500 / Stand: 01.2007

Ethernet-Bibliothek

Voraussetzung für die Verwendung der Bibliothek

Hinweis:

Die Bausteine der Ethernet-Bibliothek laufen nur im RUN-Modus der SPS, nicht im Simulationsmodus.

Besonderheiten der Ethernet-Bibliothek

Hinweis: Die Ethernet-Kommunikation läuft nur im RUN-Modus der SPS, nicht im Simulationsmodus.

Der Betrieb der Steuerung als OpenModbus on TCP/IP-Teilnehmer kann parallel zu anderen Protokollen erfolgen. Dabei kann der Ethernet-Koppler gleichzeitig die Funktion als mehrere Server oder mehrere Clients übernehmen. Ein Mischbetrieb ist ebenfalls möglich. Eine entsprechende Konfiguration des Kopplers ist mit SYCON.net vorzunehmen (siehe Dokumentation SYCON.net).

Für den Betrieb der Steuerung als OpenModbus on TCP/IP-Server (Slave) ist der Koppler lediglich mit Hilfe des SYCON.net entsprechend zu konfigurieren. Eine zusätzliche Verwendung der OpenModbus on TCP/IP-Bausteine im Anwenderprogramm ist nicht erforderlich.

Für den Betrieb der Steuerung als OpenModbus on TCP/IP-Client (Master) ist der Koppler ebenfalls mittels SYCON.net zu konfigurieren. Im Anwenderprogramm sind zusätzlich ein oder mehrere ETH_MODMAST-Bausteine zu projektieren.

Der ETH_MODSTAT-Baustein kann optional sowohl in der Server- als auch in der Client-Betriebsart oder im Mischbetrieb eingesetzt werden.

Es sind folgende Ports reserviert:

Port Reserviert für

DEZ HEX

32768 8000 Ethernet-UDP/IP-Datenaustausch (ETH_UDP_xxx-Bausteine)

1200 04B0 TCP/IP-Gateway-Zugang

502 01F6 OpenModbus on TCP/IP

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 3 Ethernet AC500 / Stand: 01.2007

Bestandteile der Ethernet-Bibliothek

Folgende Funktionsbausteine sind in der Ethernet-Bibliothek enthalten:

Gruppe: Allgemein Seite

ETH_OWN_IP Eigene IP-Adresse ausgeben 12

Gruppe: UDP/IP Seite

ETH_UDP_INFO Auslesen von Statusinformationen der UDP/IP-Verarbeitung 15

ETH_UDP_REC Datenpaket aus dem Ethernet-UDP/IP-Empfangspuffer lesen 19

ETH_UDP_SEND Datenpaket an einen Teilnehmer über Ethernet UDP/IP senden 23

ETH_UDP_STO Ethernet UDP/IP-Timeout-Datenpakete aus dem Timeout-Datenpuffer lesen

28

Gruppe: MODBUS_TCP (OpenModbus on TCP/IP) Seite

ETH_MOD_MAST Verarbeitung von OpenModbus on TCP/IP-Client-(Master)-Telegrammen

8

ETH_MOD_INFO Auslesen von Statusinformationen der OpenModbus on TCP/IP-Verarbeitung

5

Gruppe: IP-Konvertierungen Seite

IP_ADR_DWORD_TO_STRING Formatkonvertierung der IP-Adresse 31

IP_ADR_STRING_TO_DWORD Formatkonvertierung der IP-Adresse 33

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 4 Ethernet AC500 / Stand: 01.2007

Bausteinübersicht, geordnet nach Aufrufnamen

Zeichenerklärung:

FBmV … Funktionsblock mit Vergangenheitswerten

FBoV … Funktionsblock ohne Vergangenheitswerte

F … Funktion

VE-Name Typ Funktion Seite

ETH_MOD_INFO FBmV Auslesen von Statusinformationen der OpenModbus on TCP/IP-Verarbeitung

5

ETH_MOD_MAST FBmV Verarbeitung von OpenModbus on TCP/IP-Client-(Master)-Telegrammen

8

ETH_OWN_IP FBmV Eigene IP-Adresse ausgeben 12

ETH_UDP_INFO FBmV Auslesen von Statusinformationen der UDP/IP-Verarbeitung

15

ETH_UDP_REC FBmV Datenpaket aus dem Ethernet-UDP/IP-Empfangspuffer lesen

19

ETH_UDP_SEND FBmV Datenpaket an einen Teilnehmer über Ethernet UDP/IP senden

23

ETH_UDP_STO FBmV Ethernet UDP/IP-Timeout-Datenpakete aus dem Timeout-Datenpuffer lesen

28

IP_ADR_DWORD_TO_STRING F Formatkonvertierung der IP-Adresse 31

IP_ADR_STRING_TO_DWORD F Formatkonvertierung der IP-Adresse 33

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 5 Ethernet AC500 / Stand: 01.2007

ETH_MOD_INFO Auslesen von Statusinformationen der OpenModbus on TCP/IP-Verarbeitung

Der Baustein ETH_MOD_INFO liest die Statusinformationen der OpenModbus on TCP/IP-Verarbeitung aus. Er ist sowohl beim Betrieb der Steuerung als reiner Server (Slave) oder Client (Master) als auch im Mischbetrieb einsetzbar.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Ethernet_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz ETH_MOD_INFO Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

NUM_SRV Ausgang BYTE Anzahl der konfigurierten Serverkanäle

RDY Ausgang BOOL Bereitschaftsanzeige der OpenModbus-Verarbeitung

STAT Ausgang WORD Zustand der OpenModbus-Verarbeitung

NUM_ERRS Ausgang DWORD Anzahl aufgetretener Fehler

LAST_ERR Ausgang WORD Kennung des zuletzt aufgetretenen Fehlers

Beschreibung

Mit Hilfe des Bausteins ETH_MOD_INFO können verschiedene Statusinformationen zur OpenModbus-Verarbeitung abgerufen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 6 Ethernet AC500 / Stand: 01.2007

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben. Findet der Baustein einen Ethernet-Koppler mit OpenModbus on TCP/IP-Funktionalität auf dem angegebenen Steckplatz SLOT, wird dies durch DONE = TRUE und ERR = FALSE angezeigt, und die entsprechenden Statusinformationen werden an den Bausteinausgängen ausgegeben.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit dem Ausgang DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

NUM_SRV BYTE (number of servers)

Am Ausgang NUM_SRV wird die Anzahl der mittels SYCON.net konfigurierten parallelen Server-Kanäle angezeigt. NUM_SRV ist nur gültig, wenn DONE = TRUE und ERR = FALSE.

RDY BOOL (ready)

RDY zeigt die Betriebsbereitschaft der OpenModbus on TCP/IP-Verarbeitung an. Sowohl die Server- als auch die Client-Verarbeitung ist bereit, wenn RDY = TRUE ist. RDY ist nur gültig, wenn DONE = TRUE und ERR = FALSE.

STAT WORD (status)

Am Ausgang STAT wird der aktuelle Betriebszustand der OpenModbus on TCP/IP Verarbeitung ausgegeben. STAT ist nur gültig, wenn DONE = TRUE und ERR = FALSE.

STAT Bedeutung

DEZ HEX

0 00 Verarbeitung nicht initialisiert

1 01 Verarbeitung ist initialisiert und läuft

2 02 Verarbeitung wird gerade initialisiert

3 03 Initialisierungsfehler

4 04 Verarbeitung ist initialisiert und wartet auf TCP-Task

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 7 Ethernet AC500 / Stand: 01.2007

NUM_ERRS DWORD (number of errors)

Am Ausgang NUM_ERRS wird die Anzahl der Fehler angezeigt, die auf dem Ethernet-Koppler aufgetreten sind.

LAST_ERR WORD (last error)

Am Ausgang LAST_ERR wird der letzte Fehler ausgegeben, der auf dem Koppler aufgetreten ist. Die Kodierung der Fehlermeldungen am Ausgang LAST_ERR gilt für alle Ethernet-Bausteine und wird zu Beginn der Bibliotheksbeschreibung erläutert.

Funktionsaufruf in AWL

CAL ModInfo(EN := ModInfo_EN, SLOT := ModInfo_SLOT)

LD ModInfo.DONE ST ModInfo_DONE

LD ModInfo.ERR ST ModInfo_ERR

LD ModInfo.ERNO ST ModInfo_ERNO

LD ModInfo.NUM_SRV ST ModInfo_NUM_SRV

LD ModInfo.RDY ST ModInfo_RDY

LD ModInfo.STATE ST ModInfo_STATE

LD ModInfo.NUM_ERRS ST ModInfo_NUM_ERRS

LD ModInfo.LAST_ERR ST ModInfo_LAST_ERR

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

ModInfo (EN := ModInfo_EN, SLOT := ModInfo_SLOT);

ModInfo_DONE := ModInfo.DONE; ModInfo_ERR := ModInfo.ERR; ModInfo_ERNO := ModInfo.ERNO; ModInfo_NUM_SRV := ModInfo.NUM_SRV; ModInfo_RDY := ModInfo.RDY; ModInfo_STAT := ModInfo.STAT; ModInfo_NUM_ERRS := ModInfo.NUM_ERRS; ModInfo_LAST_ERR := ModInfo.LAST_ERR

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 8 Ethernet AC500 / Stand: 01.2007

ETH_MOD_MAST Verarbeitung von OpenModbus on TCP/IP-Client-(Master)-Telegrammen

Über den Baustein ETH_MOD_MAST kann ein OpenModbus on TCP/IP Telegramm an einen Server (Slave) gesendet und die entsprechende Antwort verarbeitet werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Ethernet_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz ETH_MOD_MAST Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

IP_ADR Eingang DWORD IP-Adresse des Servers

UNIT_ID Eingang BYTE Slave-Subadresse

FCT Eingang BYTE MODBUS-Funktionscode

ADDR Eingang WORD Operanden-/Registeradresse im Server

NB Eingang WORD Anzahl der zu lesenden/schreibenden Daten

DATA Eingang DWORD Adresse des ersten Operanden im Client, aus dem Daten an den Server geschrieben oder in dem die vom Server gelesenen Daten abgelegt werden sollen

DONE Ausgang BOOL Fertigmeldung des Bausteins

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Der Baustein ETH_MOD_MAST realisiert die OpenModbus on TCP/IP Client Funktion für den am Eingang SLOT angegebenen Ethernet-Koppler. Je nach Konfiguration des Kopplers können mehrere ETH_MOD_MAST-Bausteine parallel eingesetzt werden. Bevor ETH_MOD_MAST auf einen Ethernet-

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 9 Ethernet AC500 / Stand: 01.2007

Koppler angewendet werden kann, muss der Koppler mittels SYCON.net entsprechend konfiguriert werden.

Der Funktionsbaustein ETH_MOD_MAST übernimmt die Werte an den Eingängen bei jeder FALSE->TRUE-Flanke am Eingang EN, generiert ein Telegramm entsprechend den Eingängen und sendet dieses Telegramm an den Server.

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen. Sind die Werte an den Eingängen gültig, wird ein Anforderungstelegramm an den angegebenen Server gesendet. Ist mindestens ein Eingang ungültig, wird kein Telegramm generiert und statt dessen der Fehler am Ausgang ERR angezeigt.

Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

IP_ADR DWORD (IP address)

An IP_ADR ist die IP-Adresse des Servers anzugeben, an den das Telegramm gesendet werden soll. Jedes Byte in IP_ADR stellt ein Oktett der Adresse dar.

Beispiel: IP-Adresse 192.15.24.2, IP_ADR (hex) 16#C00F1802, IP_ADR (dez) 3222214658

UNIT_ID BYTE (unit ID)

Am Eingang UNIT_ID ist die Adresse des MODBUS-Slaves anzugeben, der seriell an dem unter IP_ADR angegebenen MODBUS-Server angeschlossen ist. Der Eingang wird nicht beschaltet, falls keine weiteren Slaves angeschlossen sind.

FCT BYTE (function code)

Am Eingang FCT wird der Funktionscode des Anforderungstelegramms angegeben. Folgende Funktionscodes werden unterstützt.

01 oder 02 n Bit lesen

03 oder 04 n Worte lesen

05 ein Bit schreiben

06 ein Wort schreiben

07 Lesen M01,00...M01,07

15 n Bit schreiben

16 n Worte schreiben

ADDR WORD (address)

Am Eingang ADDR wird die Operanden-/Registeradresse im Server angegeben, ab der Daten gelesen oder geschrieben werden sollen. Der Zugriff auf die Operanden von AC500-Geräten im OpenModbus on TCP/IP (Servermodus) wird über die MODBUS-Adressliste bestimmt.

Es dürfen ausschließlich die in der MODBUS-Adressliste aufgeführten Operanden verwendet werden. Bei einem Zugriff auf andere Geräte ist ADDR frei wählbar. Die gültigen Bereiche sind der jeweiligen Gerätebeschreibung zu entnehmen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 10 Ethernet AC500 / Stand: 01.2007

NB WORD (number)

Am Eingang NB wird die Anzahl der zu schreibenden oder zu lesenden Daten angegeben. Die Einheit von NB ist abhängig von der gewählten Funktion. Bei Bit-Zugriffen wird an NB die Anzahl Bits, bei Wort- und Doppelwort-Zugriffen die Anzahl Worte angegeben. Es gelten folgende Längenbeschränkungen:

FCT NBmax

01 oder 02 255 Bit

03 oder 04 100 Worte / 50 Doppelworte

05 1 Bit

06 1 Wort

07 8 Bit

15 255 Bit

16 100 Worte / 50 Doppelworte

DATA DWORD (data)

Am Eingang DATA wird die Adresse des ersten Operanden im Client, von dem ab die Daten an den Server geschrieben oder in dem die vom Server gelesenen Daten abgelegt werden sollen, über den ADR-Operator angegeben. Dabei ist erforderlich, dass der Operandentyp (z. B. Bit) mit der gewählten Funktion (z. B. FCT 1, n Bit lesen) übereinstimmt.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit dem Ausgang DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 11 Ethernet AC500 / Stand: 01.2007

Funktionsaufruf in AWL

LD ModMast_DATA ADR ST ModMast.DATA

CAL ModMast (EN := ModMast_EN, SLOT := ModMast_SLOT, IP_ADR := ModMast_IP_ADR, UNIT_ID := ModMast_UNIT_ID, FCT := ModMast_FCT, ADDR := ModMast_ADDR, NB := ModMast_NB, DATA := ModMast_DATA)

LD ModMast.DONE ST ModMast_DONE

LD ModMast.ERR ST ModMast_ERR

LD ModMast.ERNO ST ModMast_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

ModMast (EN := ModMast_EN, SLOT := ModMast_SLOT, IP_ADR := ModMast_IP_ADR, UNIT_ID := ModMast_UNIT_ID, FCT := ModMast_FCT, ADDR := ModMast_ADDR, NB := ModMast_NB, DATA := ADR(ModMast_DATA));

ModMast_DONE := ModMast.DONE; ModMast_ERR := ModMast.ERR;

ModMast_ERNO := ModMast.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 12 Ethernet AC500 / Stand: 01.2007

ETH_OWN_IP Eigene IP-Adresse ausgeben

Der Baustein ETH_OWN_IP gibt die IP-Adresse des Kopplers am Steckplatz SLOT aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Ethernet_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz ETH_OWN_IP Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

IP_ADR Ausgang DWORD Eigene IP-Adresse des Kopplers

Beschreibung

Bevor ein AC500-Koppler in Betrieb gehen kann, muss er vorher über den Feldbuskonfigurator SYCON.net konfiguriert werden. Einer der Parameter bei einem Ethernet-Koppler ist die IP-Adresse. Mit dem Baustein ETH_OWN_IP kann die zuletzt konfigurierte IP-Adresse des Gerätes am Steckplatz SLOT ausgelesen werden. Befindet sich am Steckplatz SLOT kein Ethernet-Koppler, wird an den Ausgängen ERR und ERNO der entsprechende Fehler generiert.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben. Findet der Baustein einen Ethernet-Koppler auf dem angegebenen Steckplatz SLOT, wird dies durch DONE = TRUE und ERR = FALSE angezeigt, und die entsprechenden IP Adresse wird ausgegeben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 13 Ethernet AC500 / Stand: 01.2007

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, von dem die IP-Adresse ausgegeben werden soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

IP_ADR DWORD (IP address)

Am Ausgang IP_ADR wird die eigene IP-Adresse ausgegeben. Jedes Byte in IP_ADR stellt ein Oktett der Adresse dar.

Beispiel:

IP-Adresse 192.15.24.2, IP_ADR (hex) 16#C00F1802, IP_ADR (dez) 3222214658

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 14 Ethernet AC500 / Stand: 01.2007

Funktionsaufruf in AWL

CAL OwnIp(EN := OwnIp_EN, SLOT := OwnIp_SLOT)

LD OwnIp.DONE ST OwnIp_DONE

LD OwnIp.ERR ST OwnIp_ERR

LD OwnIp.ERNO ST OwnIp_ERNO

LD OwnIp.IP_ADR ST OwnIp_IP_ADR

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

OwnIp(EN := OwnIp_EN, SLOT := OwnIp_SLOT);

OwnIp_DONE := OwnIp.DONE; OwnIp_ERR := OwnIp.ERR; OwnIp_ERNO := OwnIp.ERNO; OwnIp_IP_ADR := OwnIp.IP_ADR;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 15 Ethernet AC500 / Stand: 01.2007

ETH_UDP_INFO Auslesen von Statusinformationen der UDP/IP-Verarbeitung

Der Baustein ETH_UDP_INFO liest die Statusinformationen der UDP/IP-Verarbeitung aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Ethernet_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz ETH_UDP_INFO Instanzname

EN Eingang BOOL Initialisierung des Ethernet-UDP/IP-Datenaustausches mit FALSE/TRUE-Flanke. Bei TRUE/FALSE-Flanke wird die Verarbeitung beendet.

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

DONE Ausgang BOOL Initialisierung abgeschlossen oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

LEVR_BY Ausgang WORD Füllstand Empfangspuffer in Bytes

LEVR_DS Ausgang WORD Füllstand Empfangspuffer in Datensätzen

LEVSH_BY Ausgang WORD Füllstand Sendepuffer hohe Priorität in Bytes

LEVSH_DS Ausgang WORD Füllstand Sendepuffer hohe Priorität in Datensätzen

LEVSL_BY Ausgang WORD Füllstand Sendepuffer niedrige Priorität in Bytes

LEVSL_DS Ausgang WORD Füllstand Sendepuffer niedrige Priorität in Datensätzen

LEVSTO_DS Ausgang WORD Füllstand Puffer für Timeout-Datenpakete in Datensätzen

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 16 Ethernet AC500 / Stand: 01.2007

NUMR_BC Ausgang DWORD Anzahl der empfangenen Broadcast-Telegramme

NUMR_REJ Ausgang DWORD Anzahl der beim Empfang verworfenen Datensätze

NUMR_OWR Ausgang DWORD Anzahl der beim Empfang überschriebenen Datensätze

NUMR_INV Ausgang DWORD Anzahl der fehlerhaft empfangenen Telegramme

Beschreibung

Mit Hilfe des Bausteins ETH_UDP_INFO können verschiedene Statusinformationen zur UDP/IP-Verarbeitung abgerufen werden.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben. Findet der Baustein einen Ethernet-Koppler mit einer aktiven UDP/IP-Funktionalität auf dem angegebenen Steckplatz SLOT, wird dies durch DONE = TRUE und ERR = FALSE angezeigt, und die entsprechenden Statusinformationen werden an den Bausteinausgängen ausgegeben.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem dieser Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

Der Ausgang ERR wird für die Dauer eines Zyklus gesetzt.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

LEVR_BY WORD (level of the receive buffer in bytes)

Am Ausgang LEVR_BY wird der Füllstand des Empfangspuffers in Byte ausgegeben, solange EN=TRUE.

LEVR_DS WORD (level of the receive buffer in data sets)

Am Ausgang LEVR_DS wird der Füllstand des Empfangspuffers in Datensätzen ausgegeben, solange EN=TRUE.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 17 Ethernet AC500 / Stand: 01.2007

LEVSH_BY WORD (level of the send buffer - high priority in bytes)

Am Ausgang LEVSH_BY wird der Füllstand des Sendepuffers hoher Priorität in Byte ausgegeben, solange EN=TRUE.

LEVSH_DS WORD (level of the send buffer - high priority in data sets)

Am Ausgang LEVSH_DS wird der Füllstand des Sendepuffers hoher Priorität in Datensätzen ausgegeben, solange EN=TRUE.

LEVSL_BY WORD (level of the send buffer - low priority in bytes)

Am Ausgang LEVSL_BY wird der Füllstand des Sendepuffers niedriger Priorität in Byte ausgegeben, solange EN=TRUE.

LEVSL_DS WORD (level of the send buffer - low priority in data sets)

Am Ausgang LEVSL_DS wird der Füllstand des Sendepuffers niedriger Priorität in Datensätzen ausgegeben, solange EN=TRUE.

LEVSTO_DS WORD (level of the send buffer - timeout in data sets)

Am Ausgang LEVSTO_DS wird der Füllstand des Timeoutpuffers in Datensätzen ausgegeben, solange EN=TRUE.

NUMR_BC DWORD (number of received broadcasts)

Am Ausgang NUMR_BC wird die Anzahl von Broadcasts (Datenpakete an alle Stationen) angezeigt, die von dieser Station empfangen wurden.

NUMR_REJ DWORD (number of receipts rejected)

Am Ausgang NUMR_REJ wird die Anzahl der Datensätze angezeigt, die beim vollen Empfangspuffer während des Empfangs verworfen wurden. Die Datensätze werden immer nur dann verworfen, wenn es in der Konfiguration der UDP/IP Verarbeitung entsprechend eingestellt wurde (siehe Konfiguration der UDP/IP-Verarbeitung).

NUMR_OWR DWORD (number of receipts overwritten)

Am Ausgang NUMR_OWR wird die Anzahl der Datensätze angezeigt, die beim vollen Empfangspuffer während des Empfangs überschrieben wurden. Die Datensätze werden im Empfangspuffer immer nur dann überschrieben, wenn es in der Konfiguration der UDP/IP Verarbeitung entsprechend eingestellt wurde (siehe Konfiguration der UDP/IP-Verarbeitung).

NUMR_INV DWORD (number of receipts invalid)

Am Ausgang NUMR_INV wird die Anzahl von Telegrammen angezeigt, die von dieser Station fehlerhaft empfangen wurden.

Funktionsaufruf in AWL

CAL Info(EN := Info_EN, SLOT := Info_SLOT;

LD Info.DONE ST Info_DONE

LD Info.ERR ST Info_ERR

LD Info.ERNO ST Info_ERNO

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 18 Ethernet AC500 / Stand: 01.2007

LD Info.LEVR_BY ST Info_LEVR_BY

LD Info.LEVR_DS ST Info_LEVR_DS

LD Info.LEVSH_BY ST Info_LEVSH_BY

LD Info.LEVSH_DS ST Info_LEVSH_DS

LD Info.LEVSL_BY ST Info_LEVSL_BY

LD Info.LEVSL_DS ST Info_LEVSL_DS

LD Info.LEVSTO_DS ST Info_LEVSTO_DS

LD Info.NUMR_BC ST Info_NUMR_BC

LD Info.NUMR_REJ ST Info_NUMR_REJ

LD Info.NUMR_OWR ST Info_NUMR_OWR

LD Info.NUMR_INV ST Info_NUMR_INV

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

Info (EN := Info_EN, SLOT := Info_SLOT;

Info_DONE := Info.DONE; Info_ERR := Info.ERR; Info_ERNO := Info.ERNO; Info_LEVR_BY := Info.LEVR_BY; Info_LEVR_DS := Info.LEVR_DS; Info_LEVSH_BY := Info.LEVSH_BY; Info_LEVSH_DS := Info.LEVSH_DS; Info_LEVSL_BY := Info.LEVSL_BY; Info_LEVSL_DS := Info.LEVSL_DS; Info_LEVSTO_DS := Info.LEVSTO_DS;

Info_NUMR_BC := Info.NUMR_BC; Info_NUMR_REJ := Info.NUMR_REJ; Info_NUMR_OWR := Info.NUMR_OWR; Info_NUMR_INV := Info.NUMR_INV;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 19 Ethernet AC500 / Stand: 01.2007

ETH_UDP_REC Datenpaket aus dem Ethernet-UDP/IP-Empfangspuffer lesen

Der Baustein ETH_UDP_REC liest den nächsten Datensatz aus dem UDP/IP-Empfangspuffer und stellt die Nutzdaten im projektierten Speicherbereich bereit.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Ethernet_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz ETH_UDP_REC Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

DATA Eingang DWORD Variable, in der die empfangenen Nutzdaten abgelegt werden sollen. Die Variable muss vom Typ ARRAY oder STRUCT sein.

DONE Ausgang BOOL Datenpaket bereit gestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

IP_ADR Ausgang DWORD IP-Adresse des Senders

LEN Ausgang WORD Länge des Datenpaketes in Byte

LEV_BY Ausgang WORD Füllstand des Empfangspuffers in Bytes

LEV_DS Ausgang WORD Füllstand des Empfangspuffers in Datensätzen

Beschreibung

Das Betriebssystem liest die empfangenen UDP/IP Datenpakete aus dem ETHERNET Koppler aus und legt sie im Empfangspuffer ab. Die Größe des Puffers wird in der Steuerungskonfiguration festgelegt. Die Datenpakete werden in variablen Längen abgelegt. Ein Datenpaket mit z. B. 16 Byte Nutzdaten belegt genau 22 Bytes im Empfangspuffer (4 Byte IP-Adresse des Senders, 2 Byte Paketlänge und die Nutzdaten).

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 20 Ethernet AC500 / Stand: 01.2007

Über den Baustein ETH_UDP_REC wird genau ein Datenpaket ausgelesen. Die Nutzdaten werden im projektierten Speicherbereich (DATA) abgelegt. Die Sendeadresse und die Länge des Datenpaketes werden am Ausgang IP_ADR und LEN bereitgestellt. Ein erfolgreicher Lesevorgang wird durch DONE=TRUE und ERR=FALSE signalisiert. Wurde bei der Bearbeitung des Bausteins ein Fehler festgestellt, wird er an den Ausgängen ERR und ERNO angezeigt. Darüber hinaus informiert der Baustein über den Füllstand des Empfangspuffers in Byte (LEVR_BY) sowie in Datensätzen (LEVR_DS).

EN BOOL (enable)

Der Empfangspuffer wird in Abhängigkeit vom Eingang EN ausgelesen.

Es gilt: EN = FALSE: Empfangspuffer nicht auslesen EN = TRUE: Empfangspuffer auslesen

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem dieser Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

DATA DWORD (data)

Am Eingang DATA wird die Adresse der Variable angegeben, auf die die Nutzdaten kopiert werden sollen. DATA muss die Adresse einer Variablen vom Typ ARRAY oder STRUCT beinhalten.

ACHTUNG: Speicherbereichsüberschneidungen vermeiden, indem die Größe der Variablen den maximal zu erwartenden Daten angepasst wird.

DONE BOOL (done)

Am Ausgang DONE wird signalisiert, dass die Nutzdaten eines Datenpaketes aus dem Empfangspuffer in den Bereich der Variablen DATA fortlaufend kopiert worden sind oder die Bearbeitung des Bausteins abgebrochen wurde, da ein Fehler aufgetreten ist. Dieser Ausgang muss deshalb immer zusammen mit dem Ausgang ERR ausgewertet werden.

Der Ausgang DONE wird für die Dauer eines Zyklus DONE = TRUE gesetzt.

Es gilt:

DONE = FALSE ERR = xxx: Das Datenpaket wurde nicht aus dem Empfangspuffer ausgelesen

DONE = TRUE ERR = FALSE: Das Datenpaket wurde aus dem Empfangspuffer ausgelesen

DONE = TRUE ERR = TRUE: Beim Auslesen der Nutzdaten aus dem Empfangspuffer ist ein Fehler aufgetreten Die Nutzdaten wurden nicht in den Bereich DATA kopiert. Fehler kann am Ausgang ERNO ausgewertet werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 21 Ethernet AC500 / Stand: 01.2007

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

Der Ausgang ERR wird für die Dauer eines Zyklus gesetzt.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

IP_ADR DWORD (IP address)

Am Ausgang IP_ADR wird die IP-Adresse des Senders des empfangenen Datenpaketes ausgegeben. Jedes Byte in IP_ADR stellt ein Oktett der Adresse dar.

Beispiel: IP-Adresse 192.15.24.2, IP_ADR (hex) 16#C00F1802, IP_ADR (dez) 3222214658

LEN WORD (length)

Am Ausgang LEN wird die Länge des empfangenen Datenpaketes in Byte angezeigt.

LEV_BY WORD (level in bytes)

Am Ausgang LEV_BY wird der Füllstand des Empfangspuffers in Bytes angezeigt. Die Anzeige wird für die Dauer EN = TRUE aktualisiert und ist für die Eingangswerte gültig, die bei der steigenden Flanke am EN-Eingang übernommen wurden.

Ein Datenpaket belegt Ausgang LEN + 6 Bytes im Empfangspuffer (4 Byte für die IP-Adresse des Senders, 2 Byte für die Längenangabe).

LEV_DS WORD (level in data sets)

Am Ausgang LEV_DS wird der Füllstand des Empfangspuffers in Datensätzen angezeigt. Die Anzeige wird für die Dauer EN = TRUE aktualisiert und ist für die Eingangswerte gültig, die bei der steigenden Flanke am EN-Eingang übernommen wurden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 22 Ethernet AC500 / Stand: 01.2007

Funktionsaufruf in AWL

LD Rec_DATA ADR ST Rec.DATA

CAL Rec(EN := Rec_EN, SLOT := Rec_SLOT)

LD Rec.DONE ST Rec_DONE

LD Rec.ERR ST Rec_ERR

LD Rec.ERNO ST Rec_ERNO

LD Rec.IP_ADR ST Rec_IP_ADR

LD Rec.LEN ST Rec_LEN

LD Rec.LEV_BY ST Rec_LEV_BY

LD Rec.LEV_DS ST Rec_LEV_DS

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

REC (EN := Rec_EN, SLOT := Rec_SLOT, DATA := ADR(Rec_DATA));

REC_DONE := Rec.DONE; REC_ERR := Rec.ERR; REC_ERNO := Rec.ERNO; REC_IP_ADR := Rec.IP_ADR; REC_LEN := Rec.LEN; REC_LEVR_BY := Rec.LEV_BY; REC_LEVR_DS := Rec.LEV_DS;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 23 Ethernet AC500 / Stand: 01.2007

ETH_UDP_SEND Datenpaket an einen Teilnehmer über Ethernet UDP/IP senden

Der Baustein ETH_UDP_SEND dient zum Verschicken von Datenpaketen über das UDP/IP Protokoll des ETHERNET Kopplers.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Ethernet_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz ETH_UDP_SEND Instanzname

EN Eingang BOOL Freigabe Datenpaket senden

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

IP_ADR Eingang DWORD IP-Adresse, an die Daten gesendet werden sollen

PRIO Eingang BOOL Sendepriorität des Datenpaketes FALSE=niedrig TRUE=hoch

TOUT Eingang WORD Timeout-Zeit des Datenpaketes in ms

DATA Eingang DWORD Adresse der Variablen, ab der die Daten in den Sendepuffer kopiert werden. Die Variable muss vom Typ ARRAY oder STRUCT sein.

LEN Eingang WORD Anzahl der zu sendenden Nutzdaten in Byte

DONE Ausgang BOOL Datenpaket im Sendepuffer abgelegt oder Fehler

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

LEV_BY Ausgang WORD Füllstand des Sendepuffers niedrige/hohe Priorität (je nach PRIO) in Bytes

LEV_DS Ausgang WORD Füllstand des Sendepuffers niedrige/hohe Priorität (je nach PRIO) in Datensätzen

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 24 Ethernet AC500 / Stand: 01.2007

Beschreibung

Der Baustein ETH_UDP_SEND dient zum Verschicken von Datenpaketen über das UDP/IP-Protokoll des ETHERNET-Kopplers. Die projektierten Pakete werden in den Sendepuffer abgelegt, der über den Eingang PRIO ausgewählt ist. Von dort werden sie vom Betriebssystem dem ETHERNET-Koppler zum Versenden an die in IP_ADR definierte Zieladresse übergeben. Die Grösse des Sendepuffers wird über den ETH_UDP_INIT-Baustein festgelegt. Über den Eingang TOUT kann die Timeoutzeit eingetragen werden. Ist TOUT <> 0 findet automatisch UDP/IP-Datenaustausch mit Empfangsquittierung statt, bei TOUT = 0 wird keine Quittierung erwartet. Der Ausgang DONE signalisiert, dass das projektierte Datenpaket im Sendepuffer abgelegt wurde oder bei Bearbeitung des Bausteins ein Fehler aufgetreten ist. Wurde bei der Bearbeitung des Bausteins ein Fehler festgestellt, wird er zusätzlich an den Ausgängen ERR und ERNO angezeigt. Das Datenpaket muss im Fehlerfall erneut gesendet werden.

Bevor der Baustein ETH_UDP_SEND Datenpakete im Sendepuffer ablegen kann, muss die UDP/IP-ETHERNET-Verarbeitung in der Steuerungskonfiguration eingestellt werden (siehe auch Steuerungskonfiguration der UDP/IP-Verarbeitung).

EN BOOL (enable)

Mit der steigenden FALSE->TRUE-Flanke am Eingang EN wird das projektierte Paket im Sendepuffer abgelegt und anschließend versendet.

Es gilt:

EN = FALSE: Das projektierte Paket wird nicht im Sendepuffer abgelegt und damit auch nicht versendet.

EN = FALSE/TRUE-Flanke: Das projektierte Paket wird im Sendepuffer abgelegt und versendet.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem dieser Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

IP_ADR DWORD (IP address)

Hier wird die IP-Adresse des Empfängers angegeben. Jedes Byte in IP_ADR stellt ein Oktett der Adresse dar.

Beispiel: IP-Adresse 192.15.24.2, IP_ADR (hex) 16#C00F1802, IP_ADR (dez) 3222214658

PRIO BOOL (priority)

Am Eingang PRIO wird die Sende-Priorität des Datenpaketes festgelegt.

Es gilt:

PRIO = FALSE: Das projektierte Datenpaket hat niedrige Priorität. Es wird in den Sendepuffer für niedrige Priorität eingetragen. Alle Ausgänge beziehen sich auf diesen Puffer.

PRIO = TRUE: Das projektierte Datenpaket hat hohe Priorität. Es wird in den Sendepuffer für hohe Priorität eingetragen. Alle Ausgänge beziehen sich auf diesen Puffer.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 25 Ethernet AC500 / Stand: 01.2007

TOUT WORD (timeout)

Über den Eingang TOUT kann die Timeoutzeit eingetragen werden. Ist TOUT <> 0 findet automatisch UDP/IP Datenaustausch mit Empfangsquittierung statt. Kann ein Datenpaket innerhalb dieser Zeit nicht verschickt werden (es wird kein Quttierungstelegramm empfangen), wird das Senden abgebrochen und es ist verloren.

In diesem Falle werden einige markante Bytes des Datenpaketes (siehe auch Konfiguration der UDP/IP-Verarbeitung unter CoDeSys) in den Timeoutpuffer gestellt und sind über den Bausein ETH_UDP_STO auslesbar.

Bei TOUT = 0 wird keine Quittierung erwartet.

Es gilt:

TOUT = 0: Datenaustausch ohne Empfangsquittierung. Es werden keine Daten in den Timeoutpuffer geschrieben

TOUT <> 0: Datenaustausch mit Empfangsquittierung. Jeder abgesendete Datensatz wird vom Empfänger quittiert. Konnte ein Quittierungstelegramm innerhalb der eingestellten Timeoutzeit (in ms) nicht empfangen werden, werden die Daten in den Timeoutpuffer geschrieben.

DATA DWORD (data)

Am Eingang DATA wird die Adresse der Variablen angegeben, deren Daten in diesem Paket als Nutzdaten verschickt werden. DATA muss die Adresse einer Variablen vom Typ ARRAY oder STRUCT beinhalten.

LEN WORD (length)

Am Eingang LEN wird die Anzahl der Nutzdaten-Bytes des projektierten Paketes angegeben.

Es gilt: 1 < LEN < 1464

DONE BOOL (done)

Am Ausgang DONE wird signalisiert, dass das projektierte Paket im Sendepuffer abgelegt wurde oder die Bearbeitung des Bausteins abgebrochen wurde, da ein Fehler aufgetreten ist. Dieser Ausgang muss deshalb immer zusammen mit dem Ausgang ERR ausgewertet werden.

Der Ausgang DONE wird für die Dauer eines Zyklus DONE = TRUE gesetzt.

Es gilt:

DONE = FALSE ERR = xxx: Das projektierte Paket wurde nicht im Sendepuffer abgelegt.

DONE = TRUE ERR = FALSE: Das projektierte Paket wurde im Sendepuffer abgelegt.

DONE = TRUE ERR = TRUE: Beim Senden ist ein Fehler aufgetreten. Das projektierte Datenpaket wurde nicht im Sendepuffer abgelegt. Der Fehler kann am Ausgang ERNO ausgewertet werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

Der Ausgang ERR wird für die Dauer eines Zyklus gesetzt.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 26 Ethernet AC500 / Stand: 01.2007

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

LEV_BY WORD (level in bytes)

Am Ausgang LEV_BY wird der Füllstand des über den Eingang PRIO ausgewählten Sendepuffers in Bytes angezeigt. Die Anzeige wird für die Dauer EN = TRUE aktualisiert und ist für die Eingangswerte gültig, die bei der steigenden Flanke am EN-Eingang übernommen wurden.

Ein Datenpaket belegt Ausgang LEN + 8 Bytes im Sendepuffer (4 Byte für die IP-Adresse des Empfängers, 2 Byte für die Längenangabe, 2 Byte für die Timeout-Zeit).

LEV_DS WORD (level in data sets)

Am Ausgang LEV_DS wird der Füllstand des über den Eingang PRIO ausgewählten Sendepuffers in Datensätzen angezeigt. Die Anzeige wird für die Dauer EN = TRUE aktualisiert und ist für die Eingangswerte gültig, die bei der steigenden Flanke des EN Eingang übernommen wurden.

Funktionsaufruf in AWL

LD Send_DATA ADR ST Send.DATA

CAL Send(EN := Send_EN, SLOT := Send_SLOT, IP_ADR := Send_IP_ADR, PRIO := Send_PRIO, TOUT := Send_TOUT, LEN := Send_LEN)

LD Send.DONE ST Send_DONE

LD Send.ERR ST Send_ERR

LD Send.ERNO ST Send_ERNO

LD Send.LEV_BY ST Send_LEV_BY

LD Send.LEV_DS ST Send_LEV_DS

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 27 Ethernet AC500 / Stand: 01.2007

Funktionsaufruf in ST

Send (EN := Send_EN, SLOT := Send_SLOT, IP_ADR := Send_IP_ADR, PRIO := Send_PRIO, TOUT := Send_TOUT, DATA := ADR(Send_DATA), LEN := Send_LEN);

Send_DONE := Send.DONE; Send_ERR := Send.ERR; Send_ERNO := Send.ERNO; Send_LEV_BY := Send.LEV_BY; Send_LEV_DS := Send.LEV_DS;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 28 Ethernet AC500 / Stand: 01.2007

ETH_UDP_STO Ethernet-UDP/IP-Timeout-Datenpakete aus dem Timeout-Datenpuffer lesen

Der Baustein ETH_UDP_STO liest verlorene Datenpakete aus dem Timeout-Datenpuffer und stellt die Nutzdaten im projektierten Speicherbereich bereit.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Ethernet_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz ETH_UDP_STO Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

DATA Eingang DWORD Variable, in der die Daten des Timeout-Paketes abgelegt werden. Die Variable muss vom Typ ARRAY oder STRUCT sein.

DONE Ausgang BOOL Datenpaket bereit gestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

LEV_DS Ausgang WORD Füllstand des Timeout-Puffers in Datensätzen

Beschreibung

Beim Senden eines Datenpaketes wird die erfolgreiche Übermittlung durch eine einstellbare Timeout-Zeit überwacht. Läuft diese Zeit ab, so werden markante Informationen des Datenpaketes im Timeoutpuffer abgelegt.

Das sind:

• die IP-Adresse des Empfängers (4 Byte) • Kopfdaten des Datensatzes (die Anzahl wird mit der Steuerungskonfiguration der UDP/IP-

Verarbeitung projektiert).

Die Pufferlänge ist ebenfalls über die Steuerungskonfiguration der UDP/IP-Verarbeitung einstellbar. Der Puffer ist als Ringspeicher aufgebaut (FIFO). Ist er voll, so wird der älteste Eintrag wieder überschrieben. Der Baustein ETH_UDP_STO prüft mit der steigenden Flanke am Eingang EN, ob ein Datenpaket im

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 29 Ethernet AC500 / Stand: 01.2007

Puffer abgelegt ist und stellt o. g. Informationen ab der Variablen am Eingang DATA dem Anwender zur Verfügung.

Bevor der Baustein ETH_UDP_STO verwendet werden kann, muss die ETHERNET-UDP/IP-Verarbeitung in der Steuerungskonfiguration eingestellt werden (siehe auch Steuerungskonfiguration der UDP/IP-Verarbeitung). Außerdem muss am Sendebaustein ETH_UDP_SEND der Eingang TOUT<>0 sein.

EN BOOL (enable)

Der Timeoutpuffer wird in Abhängigkeit vom Eingang EN ausgelesen.

Es gilt:

EN = FALSE: Der Timeoutpuffer wird nicht ausgelesen.

EN = TRUE: Der Timeoutpuffer wird ausgelesen.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem dieser Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

DATA DWORD (data)

Am Eingang DATA wird die Adresse der Variablen angegeben, auf die die Nutzdaten kopiert werden sollen. DATA muss die Adresse einer Variablen vom Typ ARRAY oder STRUCT beinhalten.

ACHTUNG: Speicherbereichsüberschneidungen vermeiden, indem die Größe der Variablen den maximal zu erwartenden Daten angepasst wird.

DONE BOOL (done)

Am Ausgang DONE wird signalisiert, dass die Informationen eines Datenpaketes aus dem Timeoutpuffer in den Bereich der Variablen DATA fortlaufend kopiert worden sind oder die Bearbeitung des Bausteins abgebrochen wurde, da ein Fehler aufgetreten ist. Dieser Ausgang muss deshalb immer zusammen mit dem Ausgang ERR ausgewertet werden.

Der Ausgang DONE wird für die Dauer eines Zyklus DONE = TRUE gesetzt.

Es gilt:

DONE = FALSE ERR = xxx: Die Informationen eines Datenpakets aus dem Timeoutpuffer wurden nicht ausgelesen.

DONE = TRUE ERR = FALSE: Die Informationen eines Datenpakets aus dem Timeoutpuffer wurden ausgelesen

DONE = TRUE ERR = TRUE: Beim Auslesen der Informationen eines Datenpakets aus dem Timeoutpuffer ist ein Fehler aufgetreten Die Daten wurden nicht in den Bereich DATA kopiert. Fehler kann am Ausgang ERNO ausgewertet werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 30 Ethernet AC500 / Stand: 01.2007

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

Der Ausgang ERR wird für die Dauer eines Zyklus gesetzt.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

LEV_DS WORD (level in data sets)

Am Ausgang LEV_DS wird der Füllstand des Timeoutpuffers in Datensätzen angezeigt. Die Anzeige wird für die Dauer EN = TRUE aktualisiert und ist für die Eingangswerte gültig, die bei der steigenden Flanke des EN Eingang übernommen wurden.

Funktionsaufruf in AWL

LD Sto_DATA ADR ST Sto.DATA

CAL Sto(EN := Sto_EN, SLOT := Sto_SLOT)

LD Sto.DONE ST Sto_DONE

LD Sto.ERR ST Sto_ERR

LD Sto.ERNO ST Sto_ERNO

LD Sto.LEV_DS ST Sto_LEV_DS

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

Sto (EN := Sto_EN, SLOT := Sto_SLOT, DATA := ADR(Sto_DATA));

Sto_DONE := Sto.DONE; Sto_ERR := Sto.ERR; Sto_ERNO := Sto.ERNO; Sto_LEV_DS := Sto.LEV_DS;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 31 Ethernet AC500 / Stand: 01.2007

IP_ADR_DWORD_TO_STRING Formatkonvertierung der IP-Adresse

Der Baustein IP_ADR_DWORD_TO_STRING konvertiert eine IP-Adresse im DWORD-Format in eine IP-Adresse im STRING-Format.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Ethernet_AC500_V10.LIB

Bausteintyp

Funktion

Parameter

IP_ADR Eingang DWORD IP-Adresse im DWORD-Format

Ausgang STRING(16) Konvertierte IP-Adresse

Beschreibung

Die IP-Adresse eines Ethernet-Gerätes kann in unterschiedlichen Formaten dargestellt werden. Eines der bekanntesten Formate einer IP-Adresse ist das STRING-Format, bei dem 4 durch Punkte getrennte Zahlen jeweils den Wert von 0 bis 255 annehmen können (z. B. 192.15.24.2). Der Baustein IP_ADR_DWORD_TO_STRING konvertiert eine IP-Adresse im DWORD-Format in eine IP-Adresse im STRING-Format.

IP_ADR DWORD (IP address)

Am Eingang IP_ADR wird die IP-Adresse im DWORD-Format angegeben.

(Ausgang) STRING(16)

Am Ausgang des Baustein IP_ADR_DWORD_TO_STRING wird die konvertierte IP-Adresse im STRING(16)-Format ausgegeben.

Beispiel:

Der Eingang IP_ADR des Bausteins wird mit dem folgenden Wert beschaltet:

IP_ADR_WORD: (hex) 16#C00F1802, oder IP_ADR_WORD: (dez) 3222214658

Der konvertierte Wert wird am Ausgang des Bausteins ausgegeben:

IP_ADR_STRING: '192.15.24.2'

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 32 Ethernet AC500 / Stand: 01.2007

Funktionsaufruf in AWL

LD IP_ADR_DWORD IP_ADR_DWORD_TO_STRING ST IP_ADR_STRING

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

IP_ADR_STRING := IP_ADR_DWORD_TO_STRING(IP_ADR_DWORD);

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 33 Ethernet AC500 / Stand: 01.2007

IP_ADR_STRING_TO_DWORD Formatkonvertierung der IP-Adresse

Der Baustein IP_ADR_STRING_TO_DWORD konvertiert eine IP-Adresse im STRING-Format in eine IP-Adresse im DWORD-Format.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Ethernet_AC500_V10.LIB

Bausteintyp

Funktion

Parameter

IP_ADR Eingang STRING(16) IP-Adresse im STRING-Format

Ausgang DWORD Konvertierte IP-Adresse

Beschreibung

Die IP-Adresse eines Ethernet-Gerätes kann in unterschiedlichen Formaten dargestellt werden. Eines der bekanntesten Formate einer IP-Adresse ist das STRING-Format, bei dem 4 durch Punkte getrennten Zahlen jeweils den Wert von 0 bis 255 annehmen können (z. B. 192.15.24.2). Der Baustein IP_ADR_STRING_TO_DWORD konvertiert eine IP-Adresse im STRING-Format in eine IP-Adresse im DWORD-Format.

IP_ADR STRING(16) (IP address)

Am Eingang IP_ADR wird die IP-Adresse im STRING(16)-Format angegeben.

(Ausgang) DWORD

Am Ausgang des Baustein IP_ADR_DWORD_TO_STRING wird die konvertierte IP-Adresse im DWORD-Format ausgegeben.

Beispiel:

Der Eingang IP_ADR des Bausteins wird mit dem folgenden Wert beschaltet:

IP_ADR_STRING: '192.15.24.2'

Der konvertierte Wert wird am Ausgang des Bausteins ausgegeben:

IP_ADR_WORD: (hex) 16#C00F1802 oder IP_ADR_WORD: (dez) 3222214658

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 34 Ethernet AC500 / Stand: 01.2007

Funktionsaufruf in AWL

LD IP_ADR_STRING IP_ADR_STRING_TO_DWORD ST IP_ADR_DWORD

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

IP_ADR_DWORD := IP_ADR_STRING_TO_DWORD(IP_ADR_STRING);

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 35 Ethernet AC500 / Stand: 01.2007

Glossar

BOOL

Variablen vom Typ BOOL können die Wahrheitswerte TRUE und FALSE annehmen. Es werden 8 Bit Speicherplatz reserviert.

DINT

DINT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DINT Untergrenze -2147483648 Obergrenze 2147483647 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

DWORD

DWORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DWORD Untergrenze 0 Obergrenze 4294967295 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

INT

INT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ INT Untergrenze -32768 Obergrenze 32767 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

WORD

WORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ WORD Untergrenze 0 Obergrenze 65535 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 36 Ethernet AC500 / Stand: 01.2007

BYTE

BYTE gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ BYTE Untergrenze 0 Obergrenze 255 Speicherplatz 8 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

Funktionen

Funktionen sind Unterprogramme, die beliebig viele Eingangsparameter haben und genau ein Ergebnis-Element zurückliefern. Das zurückgelieferte Ergebnis kann von elementarem, aber auch von zusammengesetztem Datentyp sein. Eine Funktion darf also auch ein Feld, eine Struktur, ein Feld von Strukturen etc. zurückgeben.

Funktionen liefern bei gleicher Eingangsbeschaltung stets das gleiche Ergebnis (sie besitzen kein Gedächtnis.

Daraus abzuleiten sind folgende Regeln:

• Innerhalb von Funktionen dürfen globale Variablen weder gelesen noch geschrieben werden. • Innerhalb von Funktionen dürfen Absolutoperanden weder gelesen noch geschrieben werden • Innerhalb von Funktionen dürfen Funktionsblöcke nicht aufgerufen werden.

Funktionsblöcke

Funktionsblöcke sind Unterprogramme, die jeweils beliebig viele Eingangs-, Ausgangs- und interne Variablen haben. Sie werden von einem Programm aufgerufen oder von einem anderen Funktionsblock.

Da sie auch mehrfach genutzt werden können (mit jeweils anderen Datensätzen), können Funktionsblöcke (ihr Code und die Schnittstelle) als Typ betrachtet werden. Über die Zuordnung eines individuellen Datensatzes (Deklaration) wird eine Instanz des Funktionsblockes angelegt.

Anders als Funktionen können Funktionsblöcke statisch lokale Daten haben, die von einem Aufruf zum nächsten gerettet werden. Damit können z. B. Zähler realisiert werden, die ihren Zählerstand nicht vergessen dürfen. D. h. Funktionsblöcke können ein Gedächtnis haben.

Funktionen und Funktionsblöcke unterscheiden sich in zwei wesentlichen Punkten:

• Ein Funktionsblock hat beliebig viele Ausgangsparameter, die Funktion maximal einen, wobei sich die Ausgangsparameter von Funktionen und Funktionsblöcken syntaktisch unterscheiden.

• Ein Funktionsblock kann ein Gedächtnis haben, eine Funktion nicht.

Funktionsblöcke mit Vergangenheitswerten (Gedächtnis):

Bei Funktionsblöcken mit Vergangenheitswerten ist zu beachten, dass Instanznamen nicht mehrfach vergeben werden dürfen, wenn unterschiedliche Datensätze aufgerufen werden sollen.

Funktionsblöcke ohne Vergangenheitswerte (Gedächtnis):

Bei Funktionsblöcken ohne Vergangenheitswerte braucht nur eine Instanz für den FB-Typ angelegt zu werden. Diese Instanz kann für mehrere Aufrufe des FB (auch mit unterschiedlichen E/A-Werten) genutzt werden.

Der Instanzname kann beliebig definiert werden. Der Typ ist vorgegeben und ist identisch mit dem Namen des Funktionsblockes.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 37 Ethernet AC500 / Stand: 01.2007

Index

B

Besonderheiten der Ethernet-Bibliothek 2

Bestandteile der Ethernet-Bibliothek 3

D

Ethernet-Bibliothek 2

ETH_MOD_INFO Auslesen von Statusinformationen der OpenModbus on TCP/IP-Verarbeitung 5

ETH_MOD_MAST Verarbeitung von OpenModbus on TCP/IP-Client-(Master)-Telegrammen 8

ETH_OWN_IP Eigene IP-Adresse ausgeben 12

ETH_UDP_INFO Auslesen von Statusinformationen der UDP/IP-Verarbeitung 15

ETH_UDP_REC Datenpaket aus dem Ethernet-UDP/IP-Empfangspuffer lesen 19

ETH_UDP_SEND Datenpaket an einen Teilnehmer über Ethernet UDP/IP senden 23

ETH_UDP_STO Ethernet-UDP/IPTimeout-Datenpakete aus dem Timeout-Datenpuffer lesen 28

IP_ADR_DWORD_TO_STRING Formatkonvertierung der IP-Adresse 31

IP_ADR_STRING_TO_DWORD Formatkonvertierung der IP-Adresse 33

G

Glossar 35

U

Übersicht über die Ethernet-Bausteine 4

V

Voraussetzung für die Verwendung der Bibliothek 2

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 38 Ethernet AC500 / Stand: 01.2007

Softwarebeschreibung AC500

Skalierbare SPS für individuelle Automatisierung ARCNET- Bausteinbibliothek

ARCNET

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 1 ARCNET AC500 / Stand: 03.2007

Inhalt

ARCNET-Bibliothek ....................................................................................................................... 2

Voraussetzung für die Verwendung der Bibliothek ......................................................................... 2

Bestandteile der ARCNET-Bibliothek................................................................................................... 2

Bausteinübersicht, geordnet nach Aufrufnamen.............................................................................. 2

ARC_INFO Auslesen von Statusinformationen der ARCNET-Verarbeitung.............................................. 3

ARC_OWN_NODE Eigene NODE-ID ausgeben........................................................................................ 7

ARC_REC Datenpaket aus dem ARCNET-Empfangspuffer lesen............................................................ 9

ARC_SEND Datenpaket an einen Teilnehmer über ARCNET senden.................................................... 13

ARC_STO ARCNET-Timeout-Datenpakete aus dem Timeout-Datenpuffer lesen .................................. 17

Glossar ....................................................................................................................................................... 21

Index............................................................................................................................................................ 23

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 2 ARCNET AC500 / Stand: 03.2007

ARCNET-Bibliothek

Voraussetzung für die Verwendung der Bibliothek

Hinweis:

Die Bausteine der ARCNET-Bibliothek laufen nur im RUN-Modus der SPS, nicht im Simulationsmodus.

Bevor ein AC500-Koppler in Betrieb gehen kann, muss er vorher über die Steuerungskonfiguration im Control Builder konfiguriert werden. Die Verwendung der Bausteine aus der ARCNET-Bibliothek (ARC_INFO, ARC_REC, ARC_SEND; ARC_STO) setzt voraus, dass der ARCNET-Koppler im Modus ARCNET data exchange konfiguriert ist.

Bestandteile der ARCNET-Bibliothek

Folgende Funktionsbausteine sind in der ARCNET-Bibliothek enthalten:

Gruppe: Data

ARC_INFO Auslesen von Statusinformationen zur ARCNET-Verarbeitung

ARC_REC Datenpaket aus dem ARCNET-Empfangspuffer lesen

ARC_SEND Datenpaket an einen Teilnehmer über ARCNET senden

ARC_STO ARCNET-Timeout-Datenpakete aus dem Timeout-Datenpuffer lesen

Gruppe: General

ARC_OWN_NODE Eigene NODE-ID ausgeben

Bausteinübersicht, geordnet nach Aufrufnamen

Zeichenerklärung:

FBmV … Funktionsblock mit Vergangenheitswerten

FBoV … Funktionsblock ohne Vergangenheitswerte

F … Funktion

VE-Name Typ Funktion

ARC_INFO FBmV Auslesen von Statusinformationen der ARCNET-Verarbeitung

ARC_OWN_NODE FBoV Eigene NODE-ID ausgeben

ARC_REC FBmV Datenpaket aus dem ARCNET-Empfangspuffer lesen

ARC_SEND FBmV Datenpaket an einen Teilnehmer über ARCNET senden

ARC_STO FBmV ARCNET-Timeout-Datenpakete aus dem Timeout-Datenpuffer lesen

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 3 ARCNET AC500 / Stand: 03.2007

ARC_INFO Auslesen von Statusinformationen der ARCNET-Verarbeitung

Der Baustein ARC_INFO liest die Statusinformationen der ARCNET-Verarbeitung aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Enthalten in Bibliothek: ARCNET_AC500_V12.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz ARC_INFO Instanzname

EN Eingang BOOL Freigabe der Bausteinverarbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

DONE Ausgang BOOL Fertigmeldung des Bausteins

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

LEVR_BY Ausgang WORD Füllstand Empfangspuffer in Bytes

LEVR_DS Ausgang WORD Füllstand Empfangspuffer in Datensätzen

LEVSH_BY Ausgang WORD Füllstand Sendepuffer hohe Priorität in Bytes

LEVSH_DS Ausgang WORD Füllstand Sendepuffer hohe Priorität in Datensätzen

LEVSL_BY Ausgang WORD Füllstand Sendepuffer niedrige Priorität in Bytes

LEVSL_DS Ausgang WORD Füllstand Sendepuffer niedrige Priorität in Datensätzen

LEVSTO_DS Ausgang WORD Füllstand Puffer für Timeout-Datenpakete in Datensätzen

NUMR_BC Ausgang DWORD Anzahl der empfangenen Broadcast-Telegramme

NUMR_REJ Ausgang DWORD Anzahl der beim Empfang verworfenen Datensätze

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 4 ARCNET AC500 / Stand: 03.2007

NUMR_OWR Ausgang DWORD Anzahl der beim Empfang überschriebenen Datensätze

NUMR_INV Ausgang DWORD Anzahl der fehlerhaft empfangenen Telegramme

Beschreibung

Mit Hilfe des Bausteins ARC_INFO können verschiedene Statusinformationen zur ARCNET-Verarbeitung abgerufen werden. Diese Informationen können erst ausgelesen werden, wenn in der Steuerungskonfiguration des Control Builder die ARCNET-Einstellung "ARCNET data exchange" gewählt wurde.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben. Findet der Baustein einen Koppler mit einer aktiven ARCNET-Funktionalität auf dem angegebenen Steckplatz SLOT, wird dies durch DONE = TRUE und ERR = FALSE angezeigt, und die entsprechenden Statusinformationen an den Bausteinausgängen ausgegeben.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem dieser Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bausteinbearbeitung angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bausteinbearbeitung ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

LEVR_BY WORD (level of the receive buffer in bytes)

Am Ausgang LEVR_BY wird der Füllstand des Empfangspuffers in Byte ausgegeben, solange EN=TRUE.

LEVR_DS WORD (level of the receive buffer in data sets)

Am Ausgang LEVR_DS wird der Füllstand des Empfangspuffers in Datensätzen ausgegeben, solange EN=TRUE.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 5 ARCNET AC500 / Stand: 03.2007

LEVSH_BY WORD (level of the send buffer - high priority in bytes)

Am Ausgang LEVSH_BY wird der Füllstand des Sendepuffers hoher Priorität in Byte ausgegeben, solange EN=TRUE.

LEVSH_DS WORD (level of the send buffer - high priority in data sets)

Am Ausgang LEVSH_DS wird der Füllstand des Sendepuffers hoher Priorität in Datensätzen ausgegeben, solange EN=TRUE.

LEVSL_BY WORD (level of the send buffer - low priority in bytes)

Am Ausgang LEVSL_BY wird der Füllstand des Sendepuffers niedriger Priorität in Byte ausgegeben, solange EN=TRUE.

LEVSL_DS WORD (level of the send buffer - low priority in data sets)

Am Ausgang LEVSL_DS wird der Füllstand des Sendepuffers niedriger Priorität in Datensätzen ausgegeben, solange EN=TRUE.

LEVSTO_DS WORD (level of the send buffer - timeout in data sets)

Am Ausgang LEVSTO_DS wird der Füllstand des Timeoutpuffers in Datensätzen ausgegeben, solange EN=TRUE.

NUMR_BC DWORD (number of received broadcasts)

Am Ausgang NUMR_BC wird die Anzahl von Broadcasts (Datenpakete an alle Stationen) angezeigt, die von dieser Station empfangen wurden.

NUMR_REJ DWORD (number of receipts rejected)

Am Ausgang NUMR_REJ wird die Anzahl der Datensätze angezeigt, die beim vollen Empfangspuffer während des Empfangs verworfen wurden. Die Datensätze werden immer nur dann verworfen, wenn dies in der Systemkonfiguration der ARCNET-Verarbeitung entsprechend eingestellt wurde (siehe Systemtechnik, Kapitel 3.6.1.2 Der interne ARCNET-Koppler PM5x1-ARCNET).

NUMR_OWR DWORD (number of receipts overwritten)

Am Ausgang NUMR_OWR wird die Anzahl der Datensätze angezeigt, die beim vollen Empfangspuffer während des Empfangs überschrieben wurden. Die Datensätze werden im Empfangspuffer immer nur dann überschrieben, wenn dies in der Systemkonfiguration der ARCNET-Verarbeitung entsprechend eingestellt wurde (siehe Systemtechnik, Kapitel 3.6.1.2 Der interne ARCNET-Koppler PM5x1-ARCNET).

NUMR_INV DWORD (number of receipts invalid)

Am Ausgang NUMR_INV wird die Anzahl von Telegrammen angezeigt, die von dieser Station fehlerhaft empfangen wurden.

Funktionsaufruf in AWL

CAL Info(EN := Info_EN, SLOT := Info_SLOT;

LD Info.DONE ST Info_DONE

LD Info.ERR ST Info_ERR

LD Info.ERNO ST Info_ERNO

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 6 ARCNET AC500 / Stand: 03.2007

LD Info.LEVR_BY ST Info_LEVR_BY

LD Info.LEVR_DS ST Info_LEVR_DS

LD Info.LEVSH_BY ST Info_LEVSH_BY

LD Info.LEVSH_DS ST Info_LEVSH_DS

LD Info.LEVSL_BY ST Info_LEVSL_BY

LD Info.LEVSL_DS ST Info_LEVSL_DS

LD Info.LEVSTO_DS ST Info_LEVSTO_DS

LD Info.NUMR_BC ST Info_NUMR_BC

LD Info.NUMR_REJ ST Info_NUMR_REJ

LD Info.NUMR_OWR ST Info_NUMR_OWR

LD Info.NUMR_INV ST Info_NUMR_INV

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

Info (EN := Info_EN, SLOT := Info_SLOT;

Info_DONE := Info.DONE; Info_ERR := Info.ERR; Info_ERNO := Info.ERNO; Info_LEVR_BY := Info.LEVR_BY; Info_LEVR_DS := Info.LEVR_DS; Info_LEVSH_BY := Info.LEVSH_BY; Info_LEVSH_DS := Info.LEVSH_DS; Info_LEVSL_BY := Info.LEVSL_BY; Info_LEVSL_DS := Info.LEVSL_DS; Info_LEVSTO_DS := Info.LEVSTO_DS;

Info_NUMR_BC := Info.NUMR_BC; Info_NUMR_REJ := Info.NUMR_REJ; Info_NUMR_OWR := Info.NUMR_OWR; Info_NUMR_INV := Info.NUMR_INV;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 7 ARCNET AC500 / Stand: 03.2007

ARC_OWN_NODE Eigene NODE-ID ausgeben

Der Baustein ARC_OWN_NODE gibt die NODE-ID des ARCNET-Kopplers am Steckplatz SLOT aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Enthalten in Bibliothek: ARCNET_AC500_V12.LIB

Bausteintyp

Funktionsblock ohne Vergangenheitswerte

Parameter

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

DONE Ausgang BOOL Fertigmeldung des Bausteins

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

NODE_ID Ausgang BYTE Eigene NODE-ID des Kopplers

Beschreibung

Bevor ein AC500-Koppler in Betrieb gehen kann, muss er vorher über Systemkonfiguration in Control Builder konfiguriert werden. Einer der Parameter bei einem ARCNET-Koppler ist die eigene NODE_ID. Mit dem Baustein ARC_NODE_ID kann die zuletzt konfigurierte NODE-ID des Gerätes am Steckplatz SLOT ausgelesen werden. Befindet sich am Steckplatz SLOT kein ARCNET-Koppler, wird an den Ausgängen ERR und ERNO der entsprechende Fehler generiert.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben. Findet der Baustein einen ARCNET-Koppler auf dem angegebenen Steckplatz SLOT, wird dies durch DONE = TRUE und ERR = FALSE angezeigt, und die entsprechende NODE_ID ausgegeben.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, von dem die NODE_ID ausgegeben werden soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 8 ARCNET AC500 / Stand: 03.2007

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bausteinbearbeitung angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bausteinbearbeitung ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

NODE_ID BYTE (NODE-ID)

Am Ausgang NODE_ID wird die eigene NODE-ID ausgegeben.

Funktionsaufruf in AWL

CAL ARC_OWN_NODE(

EN := OwnNode_EN, SLOT := OwnNode_SLOT)

LD OwnNode.DONE ST OwnNode_DONE

LD OwnNode.ERR ST OwnNode_ERR

LD OwnNode.ERNO ST OwnNode_ERNO

LD OwnNode.NODE_ID ST OwnNode_NODE_ID

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

ARC_OWN_NODE(EN := OwnNode_EN, SLOT := OwnNode_SLOT);

OwnNode_DONE := OwnNode.DONE; OwnNode_ERR := OwnNode.ERR; OwnNode_ERNO := OwnNode.ERNO; OwnNode_IP_ADR := OwnNode.NODE_ID;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 9 ARCNET AC500 / Stand: 03.2007

ARC_REC Datenpaket aus dem ARCNET-Empfangspuffer lesen

Der Baustein ARC_REC liest den nächsten Datensatz aus dem ARCNET data exchange -Empfangspuffer und stellt die Nutzdaten im projektierten Speicherbereich bereit.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Enthalten in Bibliothek: ARCNET_AC500_V12.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz ARC_REC Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

DATA Eingang DWORD Variable, in der die empfangenen Nutzdaten abgelegt werden sollen. Die Variable muss vom Typ ARRAY oder STRUCT sein.

DONE Ausgang BOOL Fertigmeldung des Bausteins

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

NODE_ID Ausgang BYTE NODE-ID des Senders

LEN Ausgang WORD Länge des Datenpaketes in Byte

LEV_BY Ausgang WORD Füllstand des Empfangspuffers in Bytes

LEV_DS Ausgang WORD Füllstand des Empfangspuffers in Datensätzen

Beschreibung

Das Betriebssystem liest die empfangenen ARCNET Datenpakete aus dem ARCNET Koppler aus und legt sie im Empfangspuffer ab. Die Größe des Puffers wird in der Steuerungskonfiguration des Control Builders festgelegt. Die Datenpakete werden in variablen Längen abgelegt. Ein Datenpaket mit z. B. 16 Byte Nutzdaten belegt genau 22 Bytes im Empfangspuffer (4 Byte NODE-ID des Senders, 2 Byte Länge der Nutzdaten und 16 Byte für die Anwenderdaten).

Über den Baustein ARC_REC wird genau ein Datenpaket ausgelesen. Die Nutzdaten werden im projektierten Speicherbereich (DATA) abgelegt. Die Sender NODE-ID und die Länge des Datenpaketes

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 10 ARCNET AC500 / Stand: 03.2007

werden am Ausgang NODE_ID und LEN bereitgestellt. Ein erfolgreicher Lesevorgang wird durch DONE=TRUE und ERR=FALSE signalisiert. Wurde bei der Bearbeitung des Bausteins ein Fehler festgestellt, wird er an den Ausgängen ERR und ERNO angezeigt. Darüber hinaus informiert der Baustein über den Füllstand des Empfangspuffers in Byte (LEVR_BY) sowie in Datensätzen (LEVR_DS).

Bevor der Baustein ARC_REC Datenpakete aus dem Empfangspuffer lesen kann, muss in der Steuerungskonfiguration des Control Builders die ARCNET-Einstellung "ARCNET data exchange" gewählt werden.

EN BOOL (enable)

Der Empfangspuffer wird in Abhängigkeit vom Eingang EN ausgelesen.

Es gilt:

EN = FALSE: Empfangspuffer nicht auslesen EN = TRUE: Empfangspuffer auslesen

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem dieser Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

DATA DWORD (data)

Am Eingang DATA wird die Adresse der Variable angegeben, auf die die Nutzdaten kopiert werden sollen. DATA muss die Adresse einer Variablen vom Typ ARRAY oder STRUCT beinhalten.

ACHTUNG: Speicherbereichsüberschneidungen vermeiden, indem die Größe der Variablen den maximal zu erwartenden Daten angepasst wird.

DONE BOOL (done)

Am Ausgang DONE wird signalisiert, dass die Nutzdaten eines Datenpaketes aus dem Empfangspuffer in den Bereich der Variablen DATA fortlaufend kopiert worden sind oder die Bearbeitung des Bausteins abgebrochen wurde, da ein Fehler aufgetreten ist. Dieser Ausgang muss deshalb immer zusammen mit dem Ausgang ERR ausgewertet werden.

Der Ausgang DONE wird für die Dauer eines Zyklus DONE = TRUE gesetzt.

Es gilt:

DONE = FALSE ERR = xxx: Das Datenpaket wurde nicht aus dem Empfangspuffer ausgelesen

DONE = TRUE ERR = FALSE: Das Datenpaket wurde aus dem Empfangspuffer ausgelesen

DONE = TRUE ERR = TRUE: Beim Auslesen der Nutzdaten aus dem Empfangspuffer ist ein Fehler aufgetreten Die Nutzdaten wurden nicht in den Bereich DATA kopiert. Fehler kann am Ausgang ERNO ausgewertet werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 11 ARCNET AC500 / Stand: 03.2007

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

Der Ausgang ERR wird für die Dauer eines Zyklus gesetzt.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bausteinbearbeitung ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

NODE_ID BYTE (NODE-ID)

Am Ausgang NODE_ID wird die NODE-ID des Senders des empfangenen Datenpaketes ausgegeben.

LEN WORD (length)

Am Ausgang LEN wird die Länge des empfangenen Datenpaketes in Byte angezeigt.

LEV_BY WORD (level in bytes)

Am Ausgang LEV_BY wird der Füllstand des Empfangspuffers in Bytes angezeigt. Die Anzeige wird für die Dauer EN = TRUE aktualisiert und ist für die Eingangswerte gültig, die bei der steigenden Flanke am EN-Eingang übernommen wurden.

Ein Datenpaket belegt Ausgang LEN + 6 Bytes im Empfangspuffer (4 Byte für die NODE-ID des Senders, 2 Byte für die Länge der Nutzdaten).

LEV_DS WORD (level in data sets)

Am Ausgang LEV_DS wird der Füllstand des Empfangspuffers in Datensätzen angezeigt. Die Anzeige wird für die Dauer EN = TRUE aktualisiert und ist für die Eingangswerte gültig, die bei der steigenden Flanke am EN-Eingang übernommen wurden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 12 ARCNET AC500 / Stand: 03.2007

Funktionsaufruf in AWL

LD Rec_DATA ADR ST Rec.DATA

CAL Rec(EN := Rec_EN, SLOT := Rec_SLOT)

LD Rec.DONE ST Rec_DONE

LD Rec.ERR ST Rec_ERR

LD Rec.ERNO ST Rec_ERNO

LD Rec.NODE_ID ST Rec_NODE_ID

LD Rec.LEN ST Rec_LEN

LD Rec.LEV_BY ST Rec_LEV_BY

LD Rec.LEV_DS ST Rec_LEV_DS

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

REC (EN := Rec_EN, SLOT := Rec_SLOT, DATA := ADR(Rec_DATA));

REC_DONE := Rec.DONE; REC_ERR := Rec.ERR; REC_ERNO := Rec.ERNO; REC_NODE_ID := Rec.NODE_ID; REC_LEN := Rec.LEN; REC_LEVR_BY := Rec.LEV_BY; REC_LEVR_DS := Rec.LEV_DS;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 13 ARCNET AC500 / Stand: 03.2007

ARC_SEND Datenpaket an einen Teilnehmer über ARCNET senden

Der Baustein ARC_SEND dient zum Verschicken von Datenpaketen über den ARCNET Koppler.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Enthalten in Bibliothek: ARCNET_AC500_V12.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz ARC_SEND Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

NODE_ID Eingang BYTE NODE-ID, an die Daten gesendet werden sollen

PRIO Eingang BOOL Sendepriorität des Datenpaketes

TOUT Eingang WORD Timeout-Zeit des Datenpaketes in ms

DATA Eingang DWORD Adresse der Variablen, ab der die Daten in den Sendepuffer kopiert werden. Die Variable muss vom Typ ARRAY oder STRUCT sein.

LEN Eingang WORD Anzahl der zu sendenden Nutzdaten in Byte

DONE Ausgang BOOL Fertigmeldung des Bausteins

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

LEV_BY Ausgang WORD Füllstand des Sendepuffers niedrige/hohe Priorität (je nach PRIO) in Bytes

LEV_DS Ausgang WORD Füllstand des Sendepuffers niedrige/hohe Priorität (je nach PRIO) in Datensätzen

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 14 ARCNET AC500 / Stand: 03.2007

Beschreibung

Der Baustein ARC_SEND dient zum Verschicken von Datenpaketen über den ARCNET Koppler. Die projektierten Pakete werden in den Sendepuffer abgelegt, der über den Eingang PRIO ausgewählt ist. Von dort werden sie vom Betriebssystem dem ARCNET-Koppler zum Versenden an die unter NODE_ID definierte Zieladresse übergeben. Die Größe des Sendepuffers wird in der Steuerungskonfiguration des Control Builders festgelegt. Über den Eingang TOUT kann die Timeoutzeit eingetragen werden. Ist TOUT <> 0 findet automatisch ARCNET-Datenaustausch mit Empfangsquittierung statt, bei TOUT = 0 wird keine Quittierung erwartet. Der Ausgang DONE signalisiert, dass das projektierte Datenpaket im Sendepuffer abgelegt wurde oder bei Bearbeitung des Bausteins ein Fehler aufgetreten ist. Wurde bei der Bearbeitung des Bausteins ein Fehler festgestellt, wird er zusätzlich an den Ausgängen ERR und ERNO angezeigt. Das Datenpaket muss im Fehlerfall erneut gesendet werden.

Bevor der Baustein ARC_SEND Datenpakete im Sendepuffer ablegen kann, muss in der Steuerungskonfiguration des Control Builders die ARCNET Einstellung "ARCNET data exchange" gewählt werden.

EN BOOL (enable)

Mit der steigenden FALSE->TRUE-Flanke am Eingang EN wird das projektierte Paket im Sendepuffer abgelegt und anschließend versendet.

Es gilt:

EN = FALSE: Das projektierte Paket wird nicht im Sendepuffer abgelegt und damit auch nicht versendet. EN = FALSE/TRUE-Flanke: Das projektierte Paket wird im Sendepuffer abgelegt und versendet.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem dieser Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

NODE_ID BYTE (NODE-ID)

Am Eingang NODE_ID wird die NODE-ID des Empfängers angegeben, an den Daten gesendet werden sollen.

PRIO BOOL (priority)

Am Eingang PRIO wird die Sende-Priorität des Datenpaketes festgelegt.

Es gilt:

PRIO = FALSE: Das projektierte Datenpaket hat niedrige Priorität. Es wird in den Sendepuffer für niedrige Priorität eingetragen. Alle Ausgänge beziehen sich auf diesen Puffer.

PRIO = TRUE: Das projektierte Datenpaket hat hohe Priorität. Es wird in den Sendepuffer für hohe Priorität eingetragen. Alle Ausgänge beziehen sich auf diesen Puffer.

TOUT WORD (timeout)

Über den Eingang TOUT kann die Timeoutzeit eingetragen werden. Ist TOUT <> 0 findet automatisch ARCNET-Datenaustausch mit Empfangsquittierung statt. Kann ein Datenpaket innerhalb dieser Zeit nicht verschickt werden (es wird kein Quttierungstelegramm empfangen), wird das Senden abgebrochen und es ist verloren.

In diesem Falle werden einige markante Bytes des Datenpaketes (siehe auch Steuerungskonfiguration im Control Builder) in den Timeoutpuffer gestellt und sind über den Bausein ARC_STO auslesbar.

Bei TOUT = 0 wird keine Quittierung erwartet.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 15 ARCNET AC500 / Stand: 03.2007

Es gilt:

TOUT = 0: Datenaustausch ohne Empfangsquittierung. Es werden keine Daten in den Timeoutpuffer geschrieben

TOUT <> 0: Datenaustausch mit Empfangsquittierung. Jeder abgesendete Datensatz wird vom Empfänger quittiert. Konnte ein Quittierungstelegramm innerhalb der eingestellten Timeoutzeit (in ms) nicht empfangen werden, werden die Daten in den Timeoutpuffer geschrieben.

DATA DWORD (data)

Am Eingang DATA wird die Adresse der Variablen angegeben, deren Daten in diesem Paket als Nutzdaten verschickt werden. DATA muss die Adresse einer Variablen vom Typ ARRAY oder STRUCT beinhalten.

LEN WORD (length)

Am Eingang LEN wird die Anzahl der Nutzdaten-Bytes des projektierten Paketes angegeben. Der Maximalwert des Eingangs ist davon abhängig, ob die ARCNET-Verarbeitung "long- oder short packet" Format stattfinden soll. Dies wird in der Steuerungskonfiguration des Control Builders festgelegt.

Es gilt:

"long pocket" enabled: 1 < LEN < 253; 257 < LEN < 508 "long pocket" disabled: 1 < LEN < 253

DONE BOOL (done)

Am Ausgang DONE wird signalisiert, dass das projektierte Paket im Sendepuffer abgelegt wurde oder die Bearbeitung des Bausteins abgebrochen wurde, da ein Fehler aufgetreten ist. Dieser Ausgang muss deshalb immer zusammen mit dem Ausgang ERR ausgewertet werden.

Der Ausgang DONE wird für die Dauer eines Zyklus DONE = TRUE gesetzt.

Es gilt:

DONE = FALSE ERR = xxx: Das projektierte Paket wurde nicht im Sendepuffer abgelegt.

DONE = TRUE ERR = FALSE: Das projektierte Paket wurde im Sendepuffer abgelegt.

DONE = TRUE ERR = TRUE: Beim Senden ist ein Fehler aufgetreten. Das projektierte Datenpaket wurde nicht im Sendepuffer abgelegt. Der Fehler kann am Ausgang ERNO ausgewertet werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

Der Ausgang ERR wird für die Dauer eines Zyklus gesetzt.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bausteinbearbeitung ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 16 ARCNET AC500 / Stand: 03.2007

LEV_BY WORD (level in bytes)

Am Ausgang LEV_BY wird der Füllstand des über den Eingang PRIO ausgewählten Sendepuffers in Bytes angezeigt. Die Anzeige wird für die Dauer EN = TRUE aktualisiert und ist für die Eingangswerte gültig, die bei der steigenden Flanke am EN-Eingang übernommen wurden.

Ein Datenpaket belegt Ausgang LEN + 8 Bytes im Sendepuffer (4 Byte für die NODE-ID des Empfängers, 2 Byte für die Länge der Nutzdaten, 2 Byte für die Timeout-Zeit).

LEV_DS WORD (level in data sets)

Am Ausgang LEV_DS wird der Füllstand des über den Eingang PRIO ausgewählten Sendepuffers in Datensätzen angezeigt. Die Anzeige wird für die Dauer EN = TRUE aktualisiert und ist für die Eingangswerte gültig, die bei der steigenden Flanke des EN Eingang übernommen wurden.

Funktionsaufruf in AWL

LD Send_DATA ADR ST Send.DATA

CAL Send(EN := Send_EN, SLOT := Send_SLOT, IP_ADR := Send_IP_ADR, PRIO := Send_PRIO, TOUT := Send_TOUT, LEN := Send_LEN)

LD Send.DONE ST Send_DONE

LD Send.ERR ST Send_ERR

LD Send.ERNO ST Send_ERNO

LD Send.LEV_BY ST Send_LEV_BY

LD Send.LEV_DS ST Send_LEV_DS

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

Send (EN := Send_EN, SLOT := Send_SLOT, NODE_ID := Send_NODE_ID, PRIO := Send_PRIO, TOUT := Send_TOUT, DATA := ADR(Send_DATA), LEN := Send_LEN);

Send_DONE := Send.DONE; Send_ERR := Send.ERR; Send_ERNO := Send.ERNO; Send_LEV_BY := Send.LEV_BY; Send_LEV_DS := Send.LEV_DS;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 17 ARCNET AC500 / Stand: 03.2007

ARC_STO ARCNET-Timeout-Datenpakete aus dem Timeout-Datenpuffer lesen

Der Baustein ARC_STO liest verlorene Datenpakete aus dem Timeout-Datenpuffer und stellt die Nutzdaten im projektierten Speicherbereich bereit.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Enthalten in Bibliothek: ARCNET_AC500_V12.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz ARC_STO Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

DATA Eingang DWORD Variable, in der die Daten des Timeout-Paketes abgelegt werden. Die Variable muss vom Typ ARRAY oder STRUCT sein.

DONE Ausgang BOOL Fertigmeldung des Bausteins

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

NODE_ID Ausgang BYTE Ziel-NODE-ID, an die Daten nicht verschickt werden konnten

LEN Ausgang WORD Ursprüngliche Länge der Daten, die nicht verschickt werden konnten

LEV_DS Ausgang WORD Füllstand des Timeout-Puffers in Datensätzen

Beschreibung

Beim Senden eines Datenpaketes wird die erfolgreiche Übermittlung durch eine einstellbare Timeout-Zeit überwacht. Läuft diese Zeit ab, so werden markante Informationen des Datenpaketes im Timeoutpuffer abgelegt.

Es sind:

• die NODE-ID des Empfängers (4 Byte)

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 18 ARCNET AC500 / Stand: 03.2007

• die Länge des betroffenen Datenpakets • Kopfdaten des betroffenen Datensatzes

Die Länge des Timeoutpuffers und die Anzahl der Nutzdaten, die gespeichert werden sollen, ist über die Steuerungskonfiguration im Control Builder der ARCNET-Verarbeitung einstellbar. Der Puffer ist als Ringspeicher aufgebaut (FIFO). Ist er voll, so wird der älteste Eintrag wieder überschrieben. Ist der Baustein ARC_STO über den Eingang EN=TRUE freigeschaltet, prüft der Baustein, ob ein Datenpaket im Puffer abgelegt ist und stellt o. g. Informationen ab der Variablen am Eingang DATA dem Anwender zur Verfügung. An den Ausgängen NODE_ID und LEN werden zusätzlich die NODE-ID und die ursprüngliche Länge des Telegramms ausgegeben, das nicht verschickt werden konnte.

Bevor der Baustein ARC_STO verwendet werden kann, muss in der Steuerungskonfiguration des Control Builders die ARCNET Einstellung "ARCNET data exchange" gewählt werden. Außerdem muss am Sendebaustein ARC_SEND der Eingang TOUT<>0 sein.

EN BOOL (enable)

Der Timeoutpuffer wird in Abhängigkeit vom Eingang EN ausgelesen.

Es gilt:

EN = FALSE: Der Timeoutpuffer wird nicht ausgelesen.

EN = TRUE: Der Timeoutpuffer wird ausgelesen.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem dieser Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

DATA DWORD (data)

Am Eingang DATA wird die Adresse der Variablen angegeben, auf die die Nutzdaten kopiert werden sollen. DATA muss die Adresse einer Variablen vom Typ ARRAY oder STRUCT beinhalten.

ACHTUNG: Speicherbereichsüberschneidungen vermeiden, indem die Größe der Variablen den maximal zu erwartenden Daten angepasst wird.

DONE BOOL (done)

Am Ausgang DONE wird signalisiert, dass die Informationen eines Datenpaketes aus dem Timeoutpuffer in den Bereich der Variablen DATA fortlaufend kopiert worden sind oder die Bearbeitung des Bausteins abgebrochen wurde, da ein Fehler aufgetreten ist. Dieser Ausgang muss deshalb immer zusammen mit dem Ausgang ERR ausgewertet werden.

Der Ausgang DONE wird für die Dauer eines Zyklus DONE = TRUE gesetzt.

Es gilt:

DONE = FALSE ERR = xxx: Die Informationen eines Datenpakets aus dem Timeoutpuffer wurden nicht ausgelesen.

DONE = TRUE ERR = FALSE: Die Informationen eines Datenpakets aus dem Timeoutpuffer wurden ausgelesen

DONE = TRUE ERR = TRUE: Beim Auslesen der Informationen eines Datenpakets aus dem Timeoutpuffer ist ein Fehler aufgetreten.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 19 ARCNET AC500 / Stand: 03.2007

Die Daten wurden nicht in den Bereich DATA kopiert. Fehler kann am Ausgang ERNO ausgewertet werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

Der Ausgang ERR wird für die Dauer eines Zyklus gesetzt.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

NODE_ID BYTE (NODE-ID)

Am Ausgang NODE_ID wird die NODE-ID ausgegeben, an die Daten nicht verschickt werden konnten.

LEN WORD (length)

Am Ausgang LEN wird die ursprüngliche Länge des Datenpaketes in Byte ausgegeben, welches nicht versendet werden konnte.

LEV_DS WORD (level in data sets)

Am Ausgang LEV_DS wird der Füllstand des Timeoutpuffers in Datensätzen angezeigt. Die Anzeige wird für die Dauer EN = TRUE aktualisiert und ist für die Eingangswerte gültig, die bei der steigenden Flanke des EN Eingang übernommen wurden.

Funktionsaufruf in AWL

LD Sto_DATA ADR ST Sto.DATA

CAL Sto(EN := Sto_EN, SLOT := Sto_SLOT)

LD Sto.DONE ST Sto_DONE

LD Sto.ERR ST Sto_ERR

LD Sto.ERNO ST Sto_ERNO

LD Sto.NODE_ID ST Sto_NODE_ID

LD Sto.LEN ST Sto_LEN

LD Sto.LEV_DS ST Sto_LEV_DS

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 20 ARCNET AC500 / Stand: 03.2007

Funktionsaufruf in ST

Sto (EN := Sto_EN, SLOT := Sto_SLOT, DATA := ADR(Sto_DATA));

Sto_DONE := Sto.DONE; Sto_ERR := Sto.ERR; Sto_ERNO := Sto.ERNO; Sto_LEV_DS := Sto.LEV_DS;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 21 ARCNET AC500 / Stand: 03.2007

Glossar

BOOL

Variablen vom Typ BOOL können die Wahrheitswerte TRUE und FALSE annehmen. Es werden 8 Bit Speicherplatz reserviert.

DINT

DINT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DINT Untergrenze -2147483648 Obergrenze 2147483647 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

DWORD

DWORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DWORD Untergrenze 0 Obergrenze 4294967295 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

INT

INT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ INT Untergrenze -32768 Obergrenze 32767 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

WORD

WORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ WORD Untergrenze 0 Obergrenze 65535 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 22 ARCNET AC500 / Stand: 03.2007

BYTE

BYTE gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ BYTE Untergrenze 0 Obergrenze 255 Speicherplatz 8 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

Funktionen

Funktionen sind Unterprogramme, die beliebig viele Eingangsparameter haben und genau ein Ergebnis-Element zurückliefern. Das zurückgelieferte Ergebnis kann von elementarem, aber auch von zusammengesetztem Datentyp sein. Eine Funktion darf also auch ein Feld, eine Struktur, ein Feld von Strukturen etc. zurückgeben.

Funktionen liefern bei gleicher Eingangsbeschaltung stets das gleiche Ergebnis (sie besitzen kein Gedächtnis.

Daraus abzuleiten sind folgende Regeln:

• Innerhalb von Funktionen dürfen globale Variablen weder gelesen noch geschrieben werden. • Innerhalb von Funktionen dürfen Absolutoperanden weder gelesen noch geschrieben werden • Innerhalb von Funktionen dürfen Funktionsblöcke nicht aufgerufen werden.

Funktionsblöcke

Funktionsblöcke sind Unterprogramme, die jeweils beliebig viele Eingangs-, Ausgangs- und interne Variablen haben. Sie werden von einem Programm aufgerufen oder von einem anderen Funktionsblock.

Da sie auch mehrfach genutzt werden können (mit jeweils anderen Datensätzen), können Funktionsblöcke (ihr Code und die Schnittstelle) als Typ betrachtet werden. Über die Zuordnung eines individuellen Datensatzes (Deklaration) wird eine Instanz des Funktionsblockes angelegt.

Anders als Funktionen können Funktionsblöcke statisch lokale Daten haben, die von einem Aufruf zum nächsten gerettet werden. Damit können z. B. Zähler realisiert werden, die ihren Zählerstand nicht vergessen dürfen. D. h. Funktionsblöcke können ein Gedächtnis haben.

Funktionen und Funktionsblöcke unterscheiden sich in zwei wesentlichen Punkten:

• Ein Funktionsblock hat beliebig viele Ausgangsparameter, die Funktion maximal einen, wobei sich die Ausgangsparameter von Funktionen und Funktionsblöcken syntaktisch unterscheiden.

• Ein Funktionsblock kann ein Gedächtnis haben, eine Funktion nicht.

Funktionsblöcke mit Vergangenheitswerten (Gedächtnis):

Bei Funktionsblöcken mit Vergangenheitswerten ist zu beachten, dass Instanznamen nicht mehrfach vergeben werden dürfen, wenn unterschiedliche Datensätze aufgerufen werden sollen.

Funktionsblöcke ohne Vergangenheitswerte (Gedächtnis):

Bei Funktionsblöcken ohne Vergangenheitswerte braucht nur eine Instanz für den FB-Typ angelegt zu werden. Diese Instanz kann für mehrere Aufrufe des FB (auch mit unterschiedlichen E/A-Werten) genutzt werden.

Der Instanzname kann beliebig definiert werden. Der Typ ist vorgegeben und ist identisch mit dem Namen des Funktionsblockes.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 23 ARCNET AC500 / Stand: 03.2007

Index

A

ARC_INFO Auslesen von Statusinformationen der ARCNET-Verarbeitung 3

ARC_OWN_NODE Eigene NODE-ID ausgeben 7

ARC_REC Datenpaket aus dem ARCNET-Empfangspuffer lesen 9

ARC_SEND Datenpaket an einen Teilnehmer über ARCNET senden 13

ARC_STO ARCNET-Timeout-Datenpakete aus dem Timeout-Datenpuffer lesen 17

B

Bausteinübersicht, geordnet nach Aufrufnamen 2

Bestandteile der ARCNET-Bibliothek 2

G

Glossar 20

V

Voraussetzung für die Verwendung der Bibliothek 2

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 24 ARCNET AC500 / Stand: 03.2007

Softwarebeschreibung AC500

Skalierbare SPS für individuelle Automatisierung PROFIBUS- Bausteinbibliothek

PROFIBUS

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 1 PROFIBUS AC500 / Stand: 01.2007

Inhalt

PROFIBUS-Bibliothek .................................................................................................................. 2

Voraussetzung für die Verwendung der Bibliothek ........................................................................ 2

Bestandteile der Bibliotheken ............................................................................................................... 2

Bausteinübersicht, geordnet nach Aufrufnamen ............................................................................. 4

DPM_CTRL Senden von Global-Control-Kommandos an den DP-Slave.................................................. 5

DPM_READ_INPUT Lesen der Eingangsdaten eines nicht dem Master zugeordneten Slaves ............. 11

DPM_READ_OUTPUT Lesen der Ausgangsdaten eines nicht dem Master zugeordneten Slaves ........ 14

DPM_SET_PRM Senden von User-Parametern an einen DP-Slave....................................................... 17

DPM_SLV_DIAG Abrufen von detaillierten Diagnosedaten eines DP-Slaves ......................................... 20

DPM_STAT Auslesen des Status des PROFIBUS-Kopplers................................................................... 30

DPM_SYS_DIAG Auslesen einer Statusübersicht aller DP-Slaves ......................................................... 37

DPV1_MSAC1_READ Lesen eines Datenblocks aus einem DPV1-Slave .............................................. 40

DPV1_MSAC1_WRITE Schreiben eines Datenblocks in einem DPV1-Slave ......................................... 45

Glossar ...................................................................................................................................................... 50

Index .......................................................................................................................................................... 52

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 2 PROFIBUS AC500 / Stand: 01.2007

PROFIBUS-Bibliothek

Voraussetzung für die Verwendung der Bibliothek

Der PROFIBUS-Koppler in den Steuerungen der Serie AC500 wird ausschließlich in der Betriebsart DP-Master betrieben.

Die Funktionsbausteine der PROFIBUS-Bibliothek greifen sowohl auf das Laufzeitsystem der Steuerung als auch unmittelbar auf den Koppler zu. Die hierzu erforderlichen Definitionen und Funktionen sind in der externen Bibliothek "SysExt_AC500_V10.lib" abgelegt. Diese wird bei der Konfiguration des Kopplers automatisch in das entsprechende Anwenderprogramm eingebunden.

Hinweis:

Die Bausteine der PROFIBUS-Bibliothek und die PROFIBUS-Kommunikation laufen nicht im Simulationsmodus. Die PROFIBUS-Kommunikation läuft nur im RUN-Modus der SPS, nicht bei Einzelzyklus, Step und Breakpoint.

Bestandteile der PROFIBUS-DP-Bibliotheken

Für den normalen zyklischen Datenaustausch über PROFIBUS-DP ist ein Einbinden der Bibliothek nicht erforderlich. Die Bibliothek enthält zusätzliche Funktionsbausteine zur komfortablen Handhabung des PROFIBUS-Kopplers. Darüber hinaus werden verschiedene Datentypen definiert. Diese Strukturen erlauben eine übersichtliche Darstellung von Datensätzen.

PROFIBUS DP MASTER

Funktionsbausteine

Folgende Funktionsbausteine sind in der Bibliothek "Profibus_AC500_V10.lib" enthalten:

Gruppe: Diagnosis

DPM_SLV_DIAG Abrufen von detaillierten Diagnosedaten eines DP-Slaves

DPM_STAT Auslesen des Status des PROFIBUS-Kopplers

DPM_SYS_DIAG Auslesen einer Statusübersicht aller DP-Slaves

Gruppe: Control

DPM_CTRL Senden von Global-Control-Kommandos an den DP-Slave

Gruppe: Parameter

DPM_SET_PRM Senden von User-Parametern an einen DP-Slave

Gruppe: Data

DPM_READ_INPUT Lesen der Eingangsdaten eines nicht dem Master zugeordneten Slaves

DPM_READ_OUTPUT Lesen der Ausgangsdaten eines nicht dem Master zugeordneten Slaves

Untergruppe: DPV1

DPV1_MSAC1_READ Lesen eines Datenblocks aus einem DPV1-Slave

DPV1_MSAC1_WRITE Schreiben eines Datenblocks in einem DPV1-Slave

Detaillierte Beschreibungen der einzelnen Bausteine befinden sich in den folgenden Abschnitten.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 3 PROFIBUS AC500 / Stand: 01.2007

Datentypen

In der PROFIBUS-Bibliothek sind folgende Datentypen (Strukturen) definiert:

DPM_COM_ERR_TYPE Kommunikationsfehler

DPM_STATE_BITS_TYPE Bits zur Beschreibung des Kopplerstatus

STATIOSTATUS_1_TYPE Stationstatus_1 (DP-Slave-Diagnose nach Norm)

STATIOSTATUS_2_TYPE Stationstatus_2 (DP-Slave-Diagnose nach Norm)

STATIOSTATUS_3_TYPE Stationstatus_3 (DP-Slave-Diagnose nach Norm)

Detaillierte Beschreibungen der verschiedenen Datentypen befinden sich in der jeweiligen Beschreibung des dazugehörigen Bausteins.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 4 PROFIBUS AC500 / Stand: 01.2007

Bausteinübersicht, geordnet nach Aufrufnamen

Zeichenerklärung:

FBmV … Funktionsblock mit Vergangenheitswerten

FBoV … Funktionsblockohne Vergangenheitswerte

F … Funktion

VE-Name Typ Funktion

DPM_CTRL FBmV Senden von Global-Control-Kommandos an den DP-Slave

DPM_READ_INPUT FBmV Lesen der Eingangsdaten eines nicht dem Master zugeordneten Slaves

DPM_READ_OUTPUT FBmV Lesen der Ausgangsdaten eines nicht dem Master zugeordneten Slaves

DPM_SET_PRM FBmV Senden von User-Parametern an einen DP-Slave

DPM_SLV_DIAG FBmV Abrufen von detaillierten Diagnosedaten eines DP-Slaves

DPM_STAT FBoV Auslesen des Status des PROFIBUS-Kopplers

DPM_SYS_DIAG FBoV Auslesen einer Statusübersicht aller DP-Slaves

DPV1_MSAC1_READ FBmV Lesen eines Datenblocks aus einem DPV1-Slave

DPV1_MSAC1_WRITE FBmV Schreiben eines Datenblocks in einem DPV1-Slave

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 5 PROFIBUS AC500 / Stand: 01.2007

DPM_CTRL Senden von Global-Control-Kommandos an den DP-Slave

Der Baustein DPM_CTRL sendet Global-Control-Kommandos zur zeitlichen Synchronisation von Prozessdaten mehrerer DP-Slaves.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Profibus_AC500_V10.lib

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DPM_CTRL Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

SLV Eingang BYTE Auswahl der angesprochenen DP-Slaves

GROUP_SEL Eingang BYTE Auswahl der angesprochenen Slave-Gruppen

CLR_DATA Eingang BOOL Rücksetzen der Ausgangsdaten der DP-Slaves

UNFREEZE Eingang BOOL Synchronisation der Eingangsdaten beenden

FREEZE Eingang BOOL Synchronisation der Eingangsdaten

UNSYNC Eingang BOOL Synchronisation der Ausgangsdaten beenden

SYNC Eingang BOOL Synchronisation der Ausgangsdaten

DONE Ausgang BOOL Fertigmeldung des Bausteins

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Der Baustein DPM_CTRL realisiert die PROFIBUS-Funktion Global_Control. Global_Control ist eine Broadcast-Funktion.

Über Global-Control-Kommandos können Ausgangsdaten eines, mehrerer oder aller Slaves zurückgesetzt oder deren Ein- bzw. Ausgangsdaten synchronisiert werden. Die Auswahl des

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 6 PROFIBUS AC500 / Stand: 01.2007

Kommandos erfolgt über die Kombination der Bausteineingänge CLR_DATA, FREEZE / UNFREEZE und SYNC / UNSYNC. Die angesprochenen Slaves werden über drei Parameter ausgewählt. In der Projektierungsphase können die Slaves zunächst in logische Gruppen eingeteilt werden. Im laufenden Betrieb können die Slaves dann über die Bausteineingänge SLV und GROUP_SEL gezielt einzeln oder gruppenweise angesprochen werden.

DPM_CTRL übernimmt die Werte an den Eingängen bei jeder FALSE → TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE → TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE angezeigt.

EN BOOL

Bei der Vorgabe einer FALSE → TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen.

Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler am Ausgang ERR angezeigt und das Ende der Bearbeitung durch DONE = TRUE angezeigt. Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

SLV BYTE

Am Eingang SLV wird die Busadresse des DP-Slaves angegeben, an den ein Global-Control-Kommando abgesetzt werden soll. Mit SLV = 0..126 wird ein einzelner Slave mit der entsprechenden Busadresse direkt angesprochen, unabhängig von der Gruppeneinteilung bei der Konfiguration und dem Wert am Bausteineingang GROUP_SEL. Über SLV = 127 und GROUP_SEL = 0 werden alle Slaves gleichzeitig angesprochen. Die Auswahl einzelner Slave-Gruppen erfolgt über SLV = 127 und der Kombination aus GROUP_SEL und der Gruppenzuordnung während der Konfiguration. Die Bausteineingänge SLV und GROUP_SEL sowie die Gruppeneinteilung bei der Konfiguration müssen daher immer gemeinsam betrachtet werden. Die verschiedenen Kombinationsmöglichkeiten werden im Anschluss an die Beschreibung der Bausteineingänge erläutert.

GROUP_SEL BYTE

Über den Eingang GROUP_SEL werden die Slave-Gruppen ausgewählt, an die ein Global-Control-Kommando abgesetzt werden soll. Unabhängig von der Gruppeneinteilung bei der Konfiguration und dem Wert am Bausteineingang GROUP_SEL werden mit SLV = 0..126 ein einzelner Slave mit der entsprechenden Busadresse direkt angesprochen. Über GROUP_SEL = 0 und SLV = 127 werden alle Slaves gleichzeitig angesprochen. Die Auswahl einzelner Slave-Gruppen erfolgt über SLV = 127 und der Kombination aus GROUP_SEL und der Gruppenzuordnung während der Konfiguration. Die Bausteineingänge SLV und GROUP_SEL sowie die Gruppeneinteilung bei der Konfiguration müssen daher immer gemeinsam betrachtet werden. Die verschiedenen Kombinationsmöglichkeiten werden im Anschluss an die Beschreibung der Bausteineingänge erläutert.

CLR_DATA BOOL

Über CLR_DATA können die Ausgangsdaten der Slaves vor Ort zurückgesetzt werden. Empfängt ein angesprochener Slave ein Global-Control-Kommando mit CLR_DATA = TRUE, setzt er seine Ausgänge vor Ort auf den Wert 0. Hat CLR_DATA innerhalb eines Kommandos den Wert FALSE, behalten die Ausgänge der angesprochenen Slaves ihren Zustand bei. Nicht angesprochene Slaves ignorieren das gesamte Kommando. Die verschiedenen Kombinationsmöglichkeiten der einzelnen Kommandos werden im Anschluss an die Beschreibung der Bausteineingänge erläutert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 7 PROFIBUS AC500 / Stand: 01.2007

UNFREEZE BOOL

Über UNFREEZE = TRUE wird der Synchronisationsmodus der Eingangsdaten der angesprochenen Slaves beendet, unabhängig davon, ob gleichzeitig FREEZE = TRUE oder FREEZE = FALSE ist. Die angesprochenen Slaves leiten von nun an die Werte an ihren Eingängen wieder unmittelbar an den Master weiter. Hat UNFREZE innerhalb eines Kommandos den Wert FALSE, behalten die angesprochenen Slaves ihren Zustand bei. Befindet sich ein angesprochener Slave nicht im Zustand FREEZE, ignoriert er das UNFREEZE-Kommando. Nicht angesprochene Slaves ignorieren das gesamte Kommando. UNFREEZE ist immer im Zusammenhang mit FREEZE zu betrachten. Die verschiedenen Kombinationsmöglichkeiten der einzelnen Kommandos werden im Anschluss an die Beschreibung der Bausteineingänge erläutert.

FREEZE BOOL

Über FREEZE = TRUE und gleichzeitigem UNFREEZE = FALSE werden die angesprochenen Slaves im Synchronisationsmodus der Eingangsdaten betrieben. Mit dem ersten FREEZE-Kommando wird dieser Modus aktiviert. Die angesprochenen Slaves frieren daraufhin zeitgleich die aktuellen Werte an ihren lokalen Eingängen ein und speichern sie zwischen. In den folgenden Prozessdatenzyklen werden die zwischengespeicherten Eingangswerte an den Master übertragen, unabhängig davon, ob sich die realen Eingangswerte in der Zwischenzeit ändern oder nicht. Bei Empfang eines weiteren FREEZE-Kommandos werden die zwischengespeicherten Eingangswerte aktualisiert, d. h. die angesprochenen Slaves übernehmen wiederum gleichzeitig die aktuellen Eingangswerte in einen internen Puffer und übertragen diese Werte in den Folgezyklen an den Master. FREEZE ist immer im Zusammenhang mit UNFREEZE zu betrachten. Die verschiedenen Kombinationsmöglichkeiten der einzelnen Kommandos werden im Anschluss an die Beschreibung der Bausteineingänge erläutert.

UNSYNC BOOL

Über UNSYNC = TRUE wird der Synchronisationsmodus der Ausgangsdaten der angesprochenen Slaves beendet, unabhängig davon, ob gleichzeitig SYNC = TRUE oder SYNC = FALSE ist. Die angesprochenen Slaves leiten von nun an die vom Master empfangenen Ausgangsdaten wieder unmittelbar an ihre Ausgänge weiter. Hat UNSYNC innerhalb eines Kommandos den Wert FALSE, behalten die angesprochenen Slaves ihren Zustand bei. Befindet sich ein angesprochener Slave nicht im Zustand SYNC, ignoriert er das UNSYNC-Kommando. Nicht angesprochene Slaves ignorieren das gesamte Kommando. UNSYNC ist immer im Zusammenhang mit SYNC zu betrachten. Die verschiedenen Kombinationsmöglichkeiten der einzelnen Kommandos werden im Anschluss an die Beschreibung der Bausteineingänge erläutert.

SYNC BOOL

Über SYNC = TRUE und gleichzeitigem UNSYNC = FALSE werden die angesprochenen Slaves im Synchronisationsmodus der Ausgangsdaten betrieben. Mit dem ersten SYNC-Kommando wird dieser Modus aktiviert. Die angesprochenen Slaves frieren daraufhin die Werte an ihren lokalen Ausgängen im aktuellen Zustand ein. Die in den folgenden Prozessdatenzyklen gesendeten Ausgabedaten werden in diesen Slaves zunächst nur lokal gespeichert. Bei Empfang eines weiteren SYNC-Kommandos geben die Slaves die zwischengespeicherten Werte gleichzeitig an ihren Ausgängen aus. SYNC ist immer im Zusammenhang mit UNSYNC zu betrachten. Die verschiedenen Kombinationsmöglichkeiten der einzelnen Kommandos werden im Anschluss an die Beschreibung der Bausteineingänge erläutert.

DONE BOOL

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Falle über den Ausgang ERNO ausgelesen werden.

ERR BOOL

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 8 PROFIBUS AC500 / Stand: 01.2007

ERNO WORD

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit dem Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

Funktionsaufruf in AWL

CAL CTRL (EN := CTRL_EN, SLOT := CTRL_SLOT, SLV := CTRL_SLV GROUP_SEL :=CTRL_GROUP_SEL CLR_DATA := TRL_CLR_DATA, UNFREEZE := CTRL_UNFREEZE, FREEZE := CTRL_FREEZE, UNSYNC := CTRL_UNSYNC, SYNC := CTRL_SYNC)

LD CTRL.DONE ST CTRL_DONE

LD CTRL.ERR ST CTRL_ERR

LD SYSDIAG.ERNO.ERR ST SYSDIAG_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

CTRL (EN := CTRL_EN, SLOT := CTRL_SLOT, SLV := CTRL_SLV, GROUP_SEL := CTRL_GROUP_SEL, CLR_DATA := CTRL_CLR_DATA, UNFREEZE := CTRL_UNFREEZE, FREEZE := CTRL_FREEZE, UNSYNC := CTRL_UNSYNC, SYNC := CTRL_SYNC);

CTRL_DONE := CTRL.DONE; CTRL_ERR := CTRL.ERR;

SYSDIAG_ERNO:= SYSDIAG.ERNO;

Auswahl der angesprochenen Slaves

In der Offline-Konfigurationsphase des Masters mit dem Konfigurationstool SYCON.net wird diesem zunächst mitgeteilt, mit welchen Slaves er Prozessdaten austauschen soll. Die eingefügten Slaves sind dabei zunächst keiner speziellen Gruppe zugeordnet und können lediglich einzeln über ihre Busadresse angesprochen werden. In einem weiteren Schritt können die Slaves zu logischen Gruppen zusammengefasst werden (siehe Dokus SYCON.net). Zu diesem Zweck sind zunächst die globalen Eigenschaften jeder einzelnen Gruppe festzulegen. Jede einzelne Gruppe kann nur SYNC-, nur FREEZE- oder beide Eigenschaften besitzen. Es können bis zu acht Gruppen definiert werden. Anschließend ist im Rahmen der Slavekonfiguration bzw. der Slaveeigenschaften festzulegen, welcher

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 9 PROFIBUS AC500 / Stand: 01.2007

Gruppe bzw. welchen Gruppen der jeweilige Slave angehören soll. Die Gruppenzuordnung allein hat zunächst noch keinen Einfluss auf den zyklischen Prozessdatenaustausch. Sie kommt erst in Verbindung mit Global-Control-Kommandos zum Tragen.

Bei der Parametrierung der Slaves durch den Master beim Hochlaufen des Busses wird jedem einzelnen Slave seine Gruppenzugehörigkeit mitgeteilt. Diese Informationen werden in einem Byte zusammengefaßt, wobei jedes einzelne Bit eine der acht möglichen Gruppen repräsentiert.

----------------------- G8 G7 G6 G5 G4 G3 G2 G1 ----------------------- 7 6 5 4 3 2 1 0

Soll ein Slave z. B. den Gruppen 7 und 1 angehören, überträgt der Master bei der Parametrierung ein Byte mit dem Wert 65 dezimal = 01000001 binär an diesen Slave.

Die Auswahl, welche Slaves mit einem Global-Control-Kommando im laufenden Betrieb angesprochen werden sollen, erfolgt über die Bausteineingänge SLV und GROUP_SEL. Mit SLV = 0..126 wird ausschließlich der Slave mit der Busadresse = SLV angesprochen, unabhängig von der Gruppenzuordnung und dem Wert an GROUP_SEL. Alle anderen Slaves verwerfen dieses Telegramm. Mit SLV = 127 und GROUP_SEL = 0 werden alle am Bus befindlichen Slaves unabhängig von der jeweiligen Gruppenzuordnung angesprochen. Die bei der Konfiguration festgelegte Gruppenzuordnung wird von den Slaves nur dann berücksichtigt, wenn sie ein Global-Control-Kommando mit SLV = 127 und GROUP_SEL ungleich 0 empfangen. In diesem Fall vergleicht jeder Slave den GROUP_SEL-Wert mit dem bei der Parametrierung empfangenen Byte der Gruppenzuordnung. Ergibt ein bitweises UND der beiden Werte einen Wert ungleich 0, akzeptiert der jeweilige Slave das Kommando, ergibt die bitweise UND-Verknüpfung im Slave den Wert 0, verwirft dieser den Befehl. Ist z. B. ein Slave den Gruppen 1 und 7 zugeordnet (siehe oben) und empfängt ein Global-Control-Kommando mit SLV = 127 und GROUP_SEL = 64 dezimal ( = 01000000 binär), ist das Kommando unter anderem auch an ihn gerichtet.

Gruppenzuordnung 0 1 0 0 0 0 0 1

GROUP_SEL UND 0 1 0 0 0 0 0 0

Ergebnis des Vergleichs 0 1 0 0 0 0 0 0

Eine Übersicht der Kombinationsmöglichkeiten der drei Parameter Gruppenzuordnung, SLV und GROUP_SEL und die darüber angesprochenen Slaves ist in der folgenden Tabelle dargestellt.

SLV GROUP_SEL Gruppenzuordnung Angesprochene Slaves

0...126 X X Nur Slave mit Busadresse = SLV

127 0 X Alle Slaves

127 1 - 255 1 - 255 Slaves, bei denen bitweises UND von Gruppenzuordnung und GROUP_SEL ungleich 0 ergibt

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 10 PROFIBUS AC500 / Stand: 01.2007

Kombinationsmöglichkeiten der Global-Control-Kommandos

Während des Prozessdatenaustausches überträgt der Master zyklisch die Ausgangsdaten an den jeweiligen Slave, der diese unmittelbar an seinen Ausgängen ausgibt. Im Gegenzug überträgt ein Slave die aktuell an den Eingängen anliegenden Werte an den Master. Dabei werden die Slaves innerhalb eines Busumlaufs des Masters nacheinander angesprochen. Somit ergibt sich eine geringe zeitliche Differenz zwischen den Zeitpunkten, an denen die einzelnen Slaves die empfangenen Daten an ihren lokalen Ausgängen ausgeben. Ebenso weichen die Zeitpunkte der an den Slaveeingängen ermittelten und an den Master übertragenen Werte voneinander ab. Eine zeitliche Synchronität der Ein- bzw. Ausgänge wird mit Hilfe von Global-Control-Kommandos erzielt. Während ein CLR_DATA zur Folge hat, dass alle angesprochenen Slaves einmalig gleichzeitig ihre Ausgänge auf 0 setzen, müssen die Kombinationen aus SYNC / UNSYNC bzw. FREEZE / UNFREEZE gemeinsam betrachtet werden. Die folgende Tabelle zeigt die möglichen Befehlskombinationen innerhalb eines Gobal-Control-Kommandos und verdeutlicht ihre Wirkung.

CLR_ DATA

SYNC UN- SYNC

FREEZE UN- FREEZE

Wirkung

1 X X X X Alle angesprochenen Slaves setzen ihre Ausgänge auf 0

X 0 0 X X keine Auswirkung auf SYNC-Modus

X 0 1 X X SYNC-Modus der Ausgangsdaten wird beendet

X 1 0 X X SYNC-Modus, zuletzt empfangene A-Daten werden an den Ausgängen ausgegeben

X 1 1 X X SYNC-Modus der Ausgangsdaten wird beendet

X X X 0 0 keine Auswirkung auf FREEZE-Modus

X X X 0 1 FREEZE-Modus der Eingangsdaten wird beendet

X X X 1 0 FREEZE-Modus, aktuelle Eingangswerte werden gesichert und in den Folgezyklen an Master übertragen

X X X 1 1 FREEZE-Modus der Eingangsdaten wird beendet

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 11 PROFIBUS AC500 / Stand: 01.2007

DPM_READ_INPUT Lesen der Eingangsdaten eines nicht dem Master zugeordneten Slaves

Über den Baustein DPM_READ_INPUT können auch die Eingangsdaten der Slaves gelesen werden, die nicht dem Master zugeordnet, d. h. nicht durch diesen konfiguriert worden sind.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Profibus_AC500_V10.lib

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DPM_READ_INPUT Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

SLV Eingang BYTE Adresse des DP-Slaves

DATA Eingang DWORD Speicheradresse für E-Daten (über ADR-Operator)

DONE Ausgang BOOL Fertigmeldung des Bausteins

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

DATA_LEN Ausgang BYTE Länge der gelesenen Eingangsdaten

Beschreibung

Der Baustein DPM_READ_INPUT realisiert die azyklische PROFIBUS-Funktion DDLM_Read_Input. Über diese Funktion hat der Master auch einen Lesezugriff auf die Eingangsdaten solcher Slaves, die anderen Mastern zugeordnet sind. DPM_READ_INPUT arbeitet außerhalb des zyklischen Prozessdatenaustausches.

DPM_READ_INPUT übernimmt die Werte an den Eingängen bei jeder FALSE → TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE → TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE angezeigt.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 12 PROFIBUS AC500 / Stand: 01.2007

EN BOOL

Bei der Vorgabe einer FALSE → TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen.

Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler am Ausgang ERR und das Ende der Bearbeitung durch DONE = TRUE angezeigt. Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

SLV BYTE

Am Eingang SLV wird die Busadresse des DP-Slaves angegeben, dessen Eingangsdaten gelesen werden sollen.

DATA DWORD

Am Eingang DATA wird die Adresse der Variablen, in der die empfangenen Eingangsdaten des Slaves abgelegt werden sollen, über den Adress-Operator ADR angegeben. Die Variable selbst ist so groß zu wählen, dass sie die gesamten Eingangsdaten des Slaves aufnehmen kann (z. B. BYTE-Array). Außerdem ist das Format (BYTE, WORD, usw.) der Slave-Eingänge zu beachten. Handelt es sich um einen Slave mit gemischten Eingängen unterschiedlichen Typs, empfiehlt es sich, zunächst einen Datentypen STRUCT zu definieren, der die Eingangsstruktur des Slaves abbildet (siehe E/A-Konfiguration des Slaves), und dann eine Variable dieses Typs zu deklarieren.

DONE BOOL

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Falle über den Ausgang ERNO ausgelesen werden.

ERR BOOL

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit dem Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

DATA_LEN BYTE

Der Ausgang DATA_LEN zeigt die Länge der vom Slave gelesenen Eingangsdaten in Byte an. DATA_LEN ist nur gültig, wenn DONE = TRUE und ERR = FALSE ist. Enthält DATA_LEN einen Wert X ungleich 0, hat der Baustein X Byte Eingangsdaten in der Variablen an DATA abgelegt. Handelt es sich bei DATA z. B. um ein Byte-Array mit Startindex 1, enthalten nun die Einträge DATA[1] bis DATA[X] die gültigen Eingangsdaten des Slaves.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 13 PROFIBUS AC500 / Stand: 01.2007

Funktionsaufruf in AWL

LD READ_INPUT_DATA ADR ST READ_INPUT_DATA_ADR CAL READ_INPUT (EN := READ_INPUT_EN, SLOT := READ_INPUT_SLOT, SLV := READ_INPUT_SLV, DATA := READ_INPUT_DATA,)

LD READ_INPUT.DONE ST READ_INPUT_DONE

LD READ_INPUT.ERR ST READ_INPUT_ERR

LD SYSDIAG.ERNO ST SYSDIAG_ERNO

LD READ_INPUT.DATA_LEN ST READ_INPUT_DATA_LEN

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

READ_INPUT (EN := RAED_INPUT_EN, SLOT := RAED_INPUT_SLOT, SLV := RAED_INPUT_SLV, DATA := ADR(RAED_INPUT_DATA));

READ_INPUT_DONE:= READ_INPUT.DONE; READ_INPUT_ERR:= READ_INPUT.ERR; SYSDIAG_ERNO:= SYSDIAG.ERNO; READ_INPUT_DATA_LEN:= READ_INPUT.DATA_LEN;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 14 PROFIBUS AC500 / Stand: 01.2007

DPM_READ_OUTPUT Lesen der Ausgangsdaten eines nicht dem Master zugeordneten Slaves

Über den Baustein DPM_READ_OUTPUT können auch die Ausgangsdaten der Slaves gelesen werden, die nicht dem Master zugeordnet, d. h. nicht durch diesen konfiguriert worden sind. Das Schreiben der Ausgangsdaten ist nicht möglich.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Profibus_AC500_V10.lib

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DPM_READ_OUTPUT Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

SLV Eingang BYTE Busadresse des angesprochenen DP-Slaves

DATA Eingang DWORD Speicheradresse für A-Daten (über ADR-Operator)

DONE Ausgang BOOL Fertigmeldung des Bausteins

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

DATA_LEN Ausgang BYTE Länge der gelesenen Ausgangsdaten

Beschreibung

Der Baustein DPM_READ_OUTPUT realisiert die azyklische PROFIBUS-Funktion DDLM_Read_Output. Über diese Funktion hat der Master auch einen Lesezugriff auf die Ausgangsdaten solcher Slaves, die anderen Mastern zugeordnet sind. Ein Schreibzugriff auf die Ausgangsdaten dieser Slaves ist nicht möglich. DPM_READ_OUTPUT arbeitet außerhalb des zyklischen Prozessdatenaustausches.

DPM_READ_OUTPUT übernimmt die Werte an den Eingängen bei jeder FALSE → TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE → TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE angezeigt.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 15 PROFIBUS AC500 / Stand: 01.2007

EN BOOL

Bei der Vorgabe einer FALSE → TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen.

Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler am Ausgang ERR und das Ende der Bearbeitung durch DONE = TRUE angezeigt. Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

SLV BYTE

Am Eingang SLV wird die Busadresse des DP-Slaves angegeben, dessen Ausgangsdaten gelesen werden sollen.

DATA DWORD

Am Eingang DATA wird die Adresse der Variablen, in der die empfangenen Ausgangsdaten des Slaves abgelegt werden sollen, über den Adress-Operator ADR angegeben. Die Variable selbst ist so groß zu wählen, dass sie die gesamten Ausgangsdaten des Slaves aufnehmen kann (z. B. BYTE-Array). Außerdem ist das Format (BYTE, WORD, usw.) der Slave-Ausgänge zu beachten. Handelt es sich um einen Slave mit gemischten Ausgängen unterschiedlichen Typs, empfiehlt es sich, zunächst einen Datentypen STRUCT zu definieren, der die Ausgangsstruktur des Slaves abbildet (siehe E/A-Konfiguration des Slaves), und dann eine Variable dieses Typs zu deklarieren.

DONE BOOL

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Falle über den Ausgang ERNO ausgelesen werden.

ERR BOOL

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit dem Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

DATA_LEN BYTE

Der Ausgang DATA_LEN zeigt die Länge der vom Slave gelesenen Ausgangsdaten in Byte an. DATA_LEN ist nur gültig, wenn DONE = TRUE und ERR = 0 ist. Enthält DATA_LEN einen Wert X ungleich 0, hat der Baustein X Byte Ausgangsdaten in der Variablen an DATA abgelegt. Handelt es sich bei DATA z. B. um ein Byte-Array mit Startindex 1, enthalten nun die Einträge DATA[1] bis DATA[X] die gültigen Ausgangsdaten des Slaves.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 16 PROFIBUS AC500 / Stand: 01.2007

Funktionsaufruf in AWL

LD READ_OUTPUT_DATA ADR ST READ_OUTPUT_DATA_ADR CAL READ_OUTPUT (EN := READ_OUTPUT_EN, SLOT := READ_OUTPUT_SLOT, SLV := READ_OUTPUT_SLV, DATA := READ_OUTPUT_DATA,)

LD READ_OUTPUT.DONE ST READ_OUTPUT_DONE

LD READ_OUTPUT.ERR ST READ_OUTPUT_ERR

LD SYSDIAG.ERNO ST SYSDIG_ERNO

LD READ_OUTPUT.DATA_LEN ST READ_OUTPUT_DATA_LEN

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

READ_OUTPUT (EN := READ_OUTPUT_EN, SLOT := READ_OUTPUT_SLOT, SLV := READ_OUTPUT_SLV, DATA := ADR(READ_OUTPUT_DATA));

READ_OUTPUT_DONE:= READ_OUTPUT.DONE; READ_OUTPUT_ERR:= READ_OUTPUT.ERR; SYSDIAG_ERNO:= SYSDIAG.ERNO; READ_OUTPUT_DATA_LEN:= READ_OUTPUT.DATA_LEN;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 17 PROFIBUS AC500 / Stand: 01.2007

DPM_SET_PRM Senden von User-Parametern an einen DP-Slave

Über den Baustein DPM_SET_PRM können die bei der Konfiguration voreingestellten User-Parameter eines Slaves im laufenden Betrieb verändert werden. Die neuen Parameter werden unmittelbar an den betreffenden Slave gesendet. Bei einem Neustart der Steuerung oder des Slaves werden wieder die bei der Konfiguration eingestellten Werte übernommen.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Profibus_AC500_V10.lib

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DPM_SETPRM Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

SLV Eingang BYTE Busadresse des angesprochenen DP-Slaves

DATA Eingang DWORD Speicheradresse der Parameter (über ADR-Operator)

DATA_LEN Eingang BYTE Länge der zu sendenden Parameterdaten in Byte

DONE Ausgang BOOL Fertigmeldung des Bausteins

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Der Baustein DPM_SET_PRM realisiert die PROFIBUS-Funktion Set_Prm.

Über die Funktion Set_Prm können die User-Parameter eines Slaves im laufenden Betrieb geändert werden. Die Parameterdaten werden unmittelbar an den Slave gesendet. Sie sind solange gültig, bis erneut geänderte Parameter übertragen werden. Bei einem Neustart der Steuerung oder des Slaves werden wieder die bei der Konfiguration eingestellten Werte übernommen.

Die Formate und die Länge der User-Parameter sind slavespezifisch. Der Baustein DPM_SETPRM verfügt daher über Eingänge, an denen lediglich die Variablenadresse und die Länge der zu sendenden User-Parameter anzugeben ist. Der Anwender hat dafür Sorge zu tragen, dass die Daten bezüglich Format und Länge (z. B. durch Definition einer Struktur) den Erfordernissen des jeweiligen Gerätes entsprechen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 18 PROFIBUS AC500 / Stand: 01.2007

DPM_SET_PRM übernimmt die Werte an den Eingängen bei jeder FALSE → TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE → TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE angezeigt.

EN BOOL

Bei der Vorgabe einer FALSE → TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen.

Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler am Ausgang ERR und das Ende der Bearbeitung durch DONE = TRUE angezeigt. Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

SLV BYTE

Am Eingang SLV wird die Busadresse des DP-Slaves angegeben, an den die User-Parameter gesendet werden sollen. Gültige Adressen sind Werte von 0 bis einschließlich 126.

DATA DWORD

Am Eingang DATA wird über den Adress-Operator ADR die Adresse der Variablen angegeben, ab der die zu sendenden Parameter abgelegt sind. Die Variable selbst ist von den Datenformaten und ihrer Länge her so zu wählen, dass sie der Struktur der User-Parameter des jeweiligen Slaves entspricht. Es empfiehlt sich, zunächst einen Datentypen STRUCT zu definieren, der diese Struktur des Slaves abbildet und dann eine Variable dieses Typs zu deklarieren. Dabei ist zu beachten, dass an dieser Stelle lediglich die User-Parameter anzugeben sind. Die Standard-Parameter können im laufenden Betrieb nicht verändert werden. Die bei der Konfiguration eingestellten Werte der Standard-Parameter werden durch den Baustein automatisch ergänzt.

DATA_LEN BYTE

Über den Eingang DATA_LEN wird dem Baustein die Länge der zu übertragenden User-Parameter in Anzahl Byte mitgeteilt. Die maximale Länge beträgt 237 Byte.

DONE BOOL

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Falle über den Ausgang ERNO ausgelesen werden.

ERR BOOL

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 19 PROFIBUS AC500 / Stand: 01.2007

ERNO WORD

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit dem Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

Funktionsaufruf in AWL

LD SETPRM_DATA ADR ST SETPRM_DATA_ADR CAL SETPRM (EN := SETPRM_EN, SLOT := SETPRM_SLOT, SLV := SETPRM_SLV, DATA := SETPRM_DATA, DATA_LEN := SETPRM_DATA_LEN)

LD SETPRM.DONE ST SETPRM_DONE

LD SETPRM.ERR ST SETPRM_ERR

LD SYSDIAG.ERNO ST SYSDIAG_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

SETPRM (EN := SETPRM_EN, SLOT := SETPRM_SLOT, SLV := SETPRM_SLV, DATA := SETPRM_DATA, DATA_LEN := SETPRM_DATA_LEN);

SETPRM_DONE := SETPRM.DONE; SETPRM_ERR := SETPRM.ERR;

SYSDIAG_ERNO:= SYSDIAG.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 20 PROFIBUS AC500 / Stand: 01.2007

DPM_SLV_DIAG Abrufen von detaillierten Diagnosedaten eines DP-Slaves

Der Baustein DPM_SLV_DIAG liest die detaillierten Diagnosedaten eines DP-Slaves aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Profibus_AC500_V10.lib

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DPM_SLVDIAG Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

SLV Eingang BYTE Busadresse des betreffenden DP-Slaves

DONE Ausgang BOOL Fertigmeldung des Bausteins

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

STAT_1 Ausgang STATIONSTATUS_1_TYPE Stationstatus_1 nach Norm

STAT_2 Ausgang STATIONSTATUS_2_TYPE Stationstatus_2 nach Norm

STAT_3 Ausgang STATIONSTATUS_3_TYPE Stationstatus_3 nach Norm

MSTR Ausgang BYTE Busadresse des zugehörigen DP-Masters

EXT_DIAG_LEN Ausgang BYTE Länge der erweiterten Diagnosedaten

EXT_DIAG_DAT Ausgang ARRAY [1..238] OF BYTE Erweiterte Diagnosedaten nach Norm

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 21 PROFIBUS AC500 / Stand: 01.2007

Beschreibung

Der Baustein DPM_SLV_DIAG realisiert die PROFIBUS-Funktion Slave_Diag.

DPM_SLV_DIAG übernimmt die Werte an den Eingängen bei jeder FALSE → TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE → TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE angezeigt.

EN BOOL

Bei der Vorgabe einer FALSE → TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen.

Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler am Ausgang ERR angezeigt und das Ende der Bearbeitung durch DONE = TRUE angezeigt.

Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

SLV BYTE

Am Eingang SLV wird die Busadresse des DP-Slaves angegeben, dessen Diagnosedaten angefordert werden sollen.

DONE BOOL

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Falle über den Ausgang ERNO ausgelesen werden.

ERR BOOL

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit dem Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

STAT_1 STATIONSTATUS_1_TYPE

Am Ausgang STAT_1 wird das erste Octet der Diagnosedaten des DP-Slaves ausgegeben. STAT_1 ist nur gültig, wenn DONE = TRUE und ERR = FALSE.

Der Aufbau der Struktur vom Typ STATIONSTATUS_1_TYPE entspricht dem in der Norm beschriebenen Octet Stationstatus_1 und wird weiter unten erläutert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 22 PROFIBUS AC500 / Stand: 01.2007

STAT_2 STATIONSTATUS_2_TYPE

Am Ausgang STAT_2 wird das zweite Octet der Diagnosedaten des DP-Slaves ausgegeben. STAT_2 ist nur gültig, wenn DONE = TRUE und ERR = FALSE.

Der Aufbau der Struktur vom Typ STATIONSTATUS_2_TYPE entspricht dem in der Norm beschriebenen Octet Stationstatus_2 und wird weiter unten erläutert.

STAT_3 STATIONSTATUS_3_TYPE

Am Ausgang STAT_3 wird das dritte Octet der Diagnosedaten des DP-Slaves ausgegeben. STAT_3 ist nur gültig, wenn DONE = TRUE und ERR = FALSE.

Der Aufbau der Struktur vom Typ STATIONSTATUS_3_TYPE entspricht dem in der Norm beschriebenen Octet Stationstatus_3 und wird weiter unten erläutert.

MSTR BYTE

Am Ausgang MSTR wird die Busadresse des DP-Masters ausgegeben, dem der DP-Slave zugeordnet ist. MSTR ist nur gültig, wenn DONE = TRUE und ERR = FALSE.

Mit dem Baustein DPM_SLV_DIAG können Diagnosedaten von allen am Bus befindlichen DP-Slaves abgerufen werden. Werden die Diagnosedaten von einem der Steuerung bei der Konfiguration zugeordneten DP-Slave angefordert, wird am Ausgang MSTR die Busadresse der Steuerung ausgegeben. In Multi-Master-Systemen können die Diagnosedaten auch von DP-Slaves, die anderen DP-Mastern zugeordnet sind, angefordert werden. In diesem Fall enthält MSTR die Busadresse des DP-Masters, dem der betreffende DP-Slave zugeordnet ist.

EXT_DIAG_LEN BYTE

Am Ausgang EXT_DIAG_LEN wird die Anzahl der in EXT_DIAG_DAT folgenden gültigen Bytes ausgegeben. Ist EXT_DIAG_LEN = 0, liegen keine erweiterten Diagnosedaten vor. Andernfalls sind in EXT_DIAG_DAT[1] bis EXT_DIAG_DAT[EXT_DIAG_LEN] die vom DP-Slave gemeldeten erweiterten Diagnosedaten abgelegt. EXT_DIAG_LEN ist nur gültig, wenn DONE = TRUE und ERR = FALSE.

EXT_DIAG_DAT ARRAY [1..238] OF BYTE

Am Ausgang EXT_DIAG_DAT werden die vom DP-Slave gemeldeten erweiterten Diagnosedaten in Form eines Byte-Arrays ausgegeben. Die Daten in EXT_DIAG_DAT sind nur gültig, wenn DONE = TRUE, ERR = FALSE und EXT_DIAG_LEN > 0.

Der Aufbau der erweiterten Diagnosedaten entspricht der Norm. Da die Bedeutung dieser Daten stark gerätespezifisch ist, kann an dieser Stelle keine automatische Interpretation durch den Baustein erfolgen. Die Auswertung der Daten muss durch den Anwender unter Zuhilfenahme der jeweiligen Gerätebeschreibung bzw. GSD-Datei projektiert werden. Der in der Norm festgelegte allgemeingültige Aufbau der erweiterten Diagnosedaten wird weiter unten beschrieben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 23 PROFIBUS AC500 / Stand: 01.2007

Funktionsaufruf in AWL

CAL DIAG (EN := DIAG_EN, SLOT := DIAG_SLOT, SLV := DIAG_SLV)

LD DIAG.DONE ST DIAG_DONE

LD DIAG.ERNO ST DIAG_ERNO

LD DIAG.ERR ST DIAG_ERR

LD DIAG.STAT_1 ST DIAG_STAT_1

LD DIAG.STAT_2 ST DIAG_STAT_2

LD DIAG.STAT_3 ST DIAG_STAT_3

LD DIAG.MSTR ST DIAG_MSTR

LD DIAG.EXT_DIAG_LEN ST DIAG_EXT_DIAG_LEN

LD DIAG.EXT_DIAG_DAT ST DIAG_EXT_DIAG_DAT

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DIAG (EN := DIAG_EN, SLOT := DIAG_SLOT, SLV := DIAG_SLV);

DIAG_DONE := DIAG.DONE; DIAG_ERR := DIAG.ERR; DIAG_ERNO := DIAG.ERNO; DIAG_STAT_1 := DIAG.STAT_1; DIAG_STAT_2 := DIAG.STAT_2; DIAG_STAT_3 := DIAG.STAT_3; DIAG_MSTR := DIAG.MSTR; DIAG_EXT_DIAG_LEN := DIAG.EXT_DIAG_LEN; DIAG_EXT_DIAG_DAT := DIAG.EXT_DIAG_DAT;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 24 PROFIBUS AC500 / Stand: 01.2007

Aufbau der Diagnosedaten eines DP-Slaves

Der Baustein DPM_SLV_DIAG teilt die Diagnosedaten eines DP-Slaves in Abschnitte ein und stellt sie an den entsprechenden Ausgängen bereit. Der Aufbau der Diagnosedaten eines DP-Slaves ist in der Norm festgelegt und gliedert sich wie folgt:

Octet 1 Stationstatus_1 STAT_1

Octet 2 Stationstatus_2 STAT_2

Octet 3 Stationstatus_3 STAT_3

Octet 4 Master_Add MSTR

Octet 5 bis 6 Ident_Number

Octet 7 bis 244 Ext_Diag_Data EXT_DIAG_DAT[1] bis EXT_DIAG_DAT[EXT_DIAG_LEN]

Stationstatus_1 STAT_1 STATIONSTATUS_1_TYPE

Das in der Norm festgelegte Diagnosebyte Stationstatus_1 wird am Ausgang STAT_1 des Bausteins DPM_SLV_DIAG als Struktur vom Typ STATIONSTATUS_1_TYPE dargestellt. Die Struktur STATIONSTATUS_1_TYPE ist in der PROFIBUS-Bibliothek wie folgt definiert:

TYPE STATIONSTATUS_1_TYPE: STRUCT NON_EXISTENT: BOOL; NOT_READY: BOOL; CFG_FAULT: BOOL; EXT_DIAG: BOOL; NOT_SUPPORTED: BOOL; INVALID_RESPONSE: BOOL; PRM_FAULT: BOOL; MASTER_LOCK: BOOL; END_STRUCT END_TYPE

NON_EXISTENT BOOL

Ist dieses Bit gesetzt, hat der PROFIBUS-Koppler keinen DP-Slave mit der am Bausteineingang SLV angegebenen Adresse am Bus gefunden.

NOT_READY BOOL

Dieses Bit wird vom DP-Slave auf TRUE gesetzt, wenn dieser nicht zum E/A-Datenaustausch bereit ist.

CFG_FAULT BOOL

Dieses Bit wird vom DP-Slave auf TRUE gesetzt, wenn die vom DP-Master zuletzt empfangenen Konfigurationsdaten (Soll-Konfiguration) nicht mit den im DP-Slave selbst abgelegten Daten (Ist-Konfiguration) übereinstimmen.

EXT_DIAG BOOL

Ist dieses Bit auf TRUE gesetzt, müssen in EXT_DIAG_DAT erweiterte Diagnosedaten vorliegen. Ist dieses Bit nicht gesetzt (FALSE) und EXT_DIAG_LEN ist größer 0, kann in EXT_DIAG_DAT eine Statusmeldung vorliegen. Die Bedeutung einer solchen Statusmeldung ist gerätespezifisch.

NOT_SUPPORTED BOOL

Dieses Bit wird vom DP-Slave auf TRUE gesetzt, wenn zuvor eine Funktion angefordert wurde, die von diesem nicht unterstützt wird.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 25 PROFIBUS AC500 / Stand: 01.2007

INVALID_RESPONSE BOOL

Ist dieses Bit auf TRUE gesetzt, hat der PROFIBUS-Koppler keine plausible Antwort vom angesprochenen DP-Slave empfangen.

PRM_FAULT BOOL

Der DP-Slave setzt dieses Bit auf TRUE, wenn die zuletzt von ihm empfangenen Parameter-Daten fehlerhaft waren.

MASTER_LOCK BOOL

Dieses Bit ist auf TRUE gesetzt, wenn der DP-Slave einem anderen DP-Master zugeordnet ist. MSTR enthält dann die Busadresse dieses DP-Masters.

Stationstatus_2 STAT_2 STATIONSTATUS_2_TYPE

Das in der Norm festgelegte Diagnosebyte Stationstatus_2 wird am Ausgang STAT_2 des Bausteins DPM_SLV_DIAG als Struktur vom Typ STATIONSTATUS_2_TYPE dargestellt. Die Struktur STATIONSTATUS_2_TYPE ist in der PROFIBUS-Bibliothek wie folgt definiert:

TYPE STATIONSTATUS_2_TYPE: STRUCT PRM_REQ: BOOL; STAT_DIAG: BOOL; DP_Slave: BOOL; WD_ON: BOOL; FREEZE_MODE: BOOL; SYNC_MODE: BOOL; reserved: BOOL; DEACTIVATED: BOOL; END_STRUCT END_TYPE

PRM_REQ BOOL

Dieses Bit wird vom DP-Slave auf TRUE gesetzt, wenn er neu parametriert und konfiguriert werden muss (z. B. bei Hinzufügen eines zusätzlichen E/A-Moduls). Das Bit bleibt gesetzt, bis die Neuparametrierung erfolgt ist.

STAT_DIAG BOOL

Dieses Bit wird vom DP-Slave auf TRUE gesetzt, wenn dieser eine statische Diagnose hat. Ein DP-Slave mit statischer Diagnose ist nicht zum E/A-Datenaustausch bereit.

DP_Slave BOOL

Dieses Bit wird fest auf TRUE gesetzt.

WD_ON BOOL

Dieses Bit wird vom DP-Slave auf TRUE gesetzt, wenn dessen Ansprechüberwachung aktiviert ist.

FREEZE_MODE BOOL

Dieses Bit wird vom DP-Slave auf TRUE gesetzt, wenn er derzeit im Freeze-Mode betrieben wird.

SYNC_MODE BOOL

Dieses Bit wird vom DP-Slave auf TRUE gesetzt, wenn er derzeit im Sync-Mode betrieben wird.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 26 PROFIBUS AC500 / Stand: 01.2007

reserved BOOL

Dieses Bit ist reserviert und wird zur Zeit nicht verwendet.

DEACTIVATED BOOL

Dieses Bit ist auf TRUE gesetzt, wenn der DP-Slave in den Konfigurationsdaten des DP-Masters als nicht aktiv gekennzeichnet ist und aus dem zyklischen E/A-Datenaustausch herausgenommen wurde.

Stationstatus_3 STAT_3 STATIONSTATUS_3_TYPE

Das in der Norm festgelegte Diagnosebyte Stationstatus_3 wird am Ausgang STAT_3 des Bausteins DPM_SLV_DIAG als Struktur vom Typ STATIONSTATUS_3_TYPE dargestellt. Die Struktur STATIONSTATUS_3_TYPE ist in der PROFIBUS-Bibliothek wie folgt definiert:

TYPE STATIONSTATUS_3_TYPE: STRUCT reserved0: BOOL; reserved1: BOOL; reserved2: BOOL; reserved3: BOOL; reserved4: BOOL; reserved5: BOOL; reserved6: BOOL; EXT_DIAG_OVERFLOW: BOOL; END_STRUCT END_TYPE

Master_Add MSTR BYTE

In diesem Octet trägt der DP-Slave die Adresse des DP-Masters ein, der ihn parametriert hat (dem er zugeordnet ist). Wenn der DP-Slave noch von keinem DP-Master parametriert worden ist, gilt MSTR = 255.

Ident_Number

Im Diagnosetelegramm trägt der DP-Slave an dieser Stelle seine Ident-Nummer ein. Die Ident-Nummer wird von der PNO (PROFIBUS Nutzerorganisation e.V.) für jeden Geräte-Typ zugeteilt und ist fester Bestandteil der GSD-Datei. Der Baustein DPM_SLV_DIAG gibt die Ident-Nummer eines Gerätes nicht aus, da sie zur Auswertung der Diagnosedaten nicht benötigt wird.

Ext_Diag_Data EXT_DIAG_DAT ARRAY [1..238] OF BYTE

Die oben beschriebenen sechs Byte Standard-Diagnosedaten müssen von jedem DP-Slave unterstützt werden. Optional kann ein DP-Slave zusätzlich erweiterte Diagnosedaten bereitstellen. Dies ist der Fall, wenn dem Eintrag Max_Diag_Data_Len in der GSD-Datei des DP-Slaves ein Wert größer 6 zugewiesen wird. Das Format der erweiterten Diagnose ist in der Norm festgelegt. Da die erweiterten Diagnosedaten zum einen nicht statisch sind und zum anderen herstellerspezifische Eintragungen enthalten können, kann keine automatische Auswertung der Daten durch den Baustein DM_SLV_DIAG vorgenommen werden.

Die Auswertung der erweiterten Diagnosedaten muss durch den Anwender unter Zuhilfenahme der GSD-Datei des jeweiligen DP-Slaves und der folgenden Beschreibung des allgemeingültigen Datenformats erfolgen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 27 PROFIBUS AC500 / Stand: 01.2007

Die erweiterten Diagnosedaten gliedern sich in drei Bereiche:

- Gerätebezogene Diagnose

- Modulbezogene Diagnose

- Kanalbezogene Diagnose

Gerätebezogene Diagnose

Die gerätebezogene Diagnose enthält allgemeine Diagnoseinformationen wie zum Beispiel Übertemperatur oder Unterspannung. Sie wird durch ein Headerbyte eingeleitet, dessen beiden obersten Bits fest auf 00 gesetzt sind. Die unteren sechs Bits enthalten die Länge des folgenden Blocks einschließlich dem Headerbyte selbst.

0 0 L a e n g e

7 6 5 4 3 2 1 0

Die gerätebezogenen Diagnosedaten sind herstellerspezifisch festgelegt. Ihre Bedeutung ist der jeweiligen Gerätebeschreibung zu entnehmen.

Modulbezogene Diagnose

Die modulbezogene Diagnose enthält Diagnoseinformationen, die direkt den einzelnen E/A-Modulen des Gerätes zugeordnet werden können. Der Bereich der modulbezogenen Diagnose beginnt mit einem Headerbyte, dessen beiden obersten Bits fest auf 01 gesetzt sind. Die unteren sechs Bits enthalten die Länge des folgenden Blocks einschließlich dem Headerbyte selbst.

0 1 L a e n g e

7 6 5 4 3 2 1 0

In dem darauffolgenden Block ist jedem Modul ein einzelnes Bit zugeordnet. Der Modulindex entspricht dem Bit-Offset innerhalb des Blocks (siehe Beispiel). Ein auf TRUE gesetztes Bit bedeutet, dass in diesem E/A-Modul eine Diagnose ansteht.

Kanalbezogene Diagnose

In dem Bereich der kanalbezogenen Diagnose werden der Reihe nach die diagnostizierten Kanäle und die Diagnoseursache eingetragen. Die Länge je Eintrag beträgt drei Byte. Jeder Eintrag wird durch ein Headerbyte eingeleitet, dessen beiden obersten Bits fest auf 10 gesetzt sind. Die unteren sechs Bits enthalten den Index des Moduls, auf das sich die folgende Diagnose bezieht.

1 0 M o D u l x

7 6 5 4 3 2 1 0

In dem darauffolgenden Byte wird in den unteren sechs Bits die Nummer des Kanals eingetragen, der eine Diagnose meldet. Die oberen beiden Bits informieren darüber, ob es sich dabei um einen Eingabe?, Ausgabe? oder Ein?/Ausgabe-Kanal handelt.

E A K a N a l x

7 6 5 4 3 2 1 0

Die Richtungskennung in den Bits 6 und 7 ist wie folgt kodiert:

0 0 Reserviert 0 1 Eingabe 1 0 Ausgabe 1 1 Ein-/Ausgabe

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 28 PROFIBUS AC500 / Stand: 01.2007

Das dritte Byte des Eintrags enthält in den oberen drei Bits den Kanaltyp und in den unteren fünf Bits den Fehlertyp.

K a n E r r o r

7 6 5 4 3 2 1 0

Die Kodierung des Kanaltyps (Kanalbreite) ist wie folgt definiert:

0 0 0 Reserviert 0 0 1 Bit 0 1 0 2 Bit 0 1 1 4 Bit 1 0 0 Byte 1 0 1 Wort 1 1 0 2 Worte 1 1 1 Reserviert

Die Kodierung des Fehlertyps lautet:

0 Reserviert 0 0 0 0 0

1 Kurzschluss 0 0 0 0 1

2 Unterspannung 0 0 0 1 0

3 Überspannung 0 0 0 1 1

4 Überlast 0 0 1 0 0

5 Übertemperatur 0 0 1 0 1

6 Leitungsbruch 0 0 1 1 0

7 Oberer Grenzwert überschritten 0 0 1 1 1

8 Unterer Grenzwert überschritten 0 1 0 0 0

9 Fehler 0 1 0 0 1

10 Reserviert 0 1 0 1 0

: : 0 1 x x x

15 Reserviert 0 1 1 1 1

16 Herstellerspezifisch 1 0 0 0 0

: : 1 x x x x

31 Herstellerspezifisch 1 1 1 1 1

Die gültige Länge der gesamten erweiterten Diagnosedaten gibt der Baustein DPM_SLV_DIAG am Ausgang EXT_DIAG_LEN an. Bei der Auswertung der Diagnose sind ausschließlich die in EXT_DIAG_DAT[1] bis EXT_DIAG_DAT[EXT_DIAG_LEN] enthaltenen Daten zu berücksichtigen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 29 PROFIBUS AC500 / Stand: 01.2007

Beispiel für erweiterte Diagnosedaten

EXT_DIAG_LEN = 15

7 6 5 4 3 2 1 0

EXT_DIAG_DAT[1] 0 0 0 0 0 1 0 0 Gerätebezogene Diagnose, Länge 4 Byte einschl. Headerbyte

EXT_DIAG_DAT[2] X x x X X x X X Gerätespezifisches Diagnosefeld

EXT_DIAG_DAT[3] X x x X X x X X Länge 3 Byte

EXT_DIAG_DAT[4] X x x X X x X X Bedeutung der Daten herstellerspez.

EXT_DIAG_DAT[5] 0 1 0 0 0 1 0 1 Kennungsbezogene Diagnose, Länge 5 Byte einschl. Headerbyte

EXT_DIAG_DAT[6] 0 7 0 6 0 5 0 4 0 3 0 2 0 1 1 0 Modul 0 mit Diagnose

EXT_DIAG_DAT[7] 015 014 013 112 011 010 0 9 0 8 Modul 12 mit Diagnose

EXT_DIAG_DAT[8] 023 022 021 020 019 118 017 016 Modul 18 mit Diagnose

EXT_DIAG_DAT[9] 031 130 029 028 027 026 025 024 Modul 30 mit Diagnose

EXT_DIAG_DAT[10] 1 0 0 0 0 0 0 0 Kanalbezogene Diagnose Modul 0

EXT_DIAG_DAT[11] 0 1 0 0 0 0 1 0 Kanal 2, Eingabe

EXT_DIAG_DAT[12] 0 0 1 0 0 1 0 0 Überlast, Kanal bitweise organisiert

EXT_DIAG_DAT[13] 1 0 0 0 1 1 0 0 Kanalbezogene Diagnose Modul 12

EXT_DIAG_DAT[14] 1 0 0 0 0 1 1 0 Kanal 6, Ausgabe

EXT_DIAG_DAT[15] 1 0 1 0 0 1 1 1 Oberer Grenzwert überschritten, Kanal wortweise organisiert

Beispielprogramm zur Auswertung von erweiterten Diagnosedaten

Ein ausführliches Beispielprogramm zur Auswertung erweiterter Diagnosedaten befindet sich auf der CD Control Builder AC500 sowie in der Online-Hilfe des Programmiersystems.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 30 PROFIBUS AC500 / Stand: 01.2007

DPM_STAT Auslesen des Status des PROFIBUS-Kopplers

DPM_STAT gibt den Status eines PROFIBUS-Kopplers aus. An den Ausgängen werden Informationen über den Zustand der Kommunikation sowie Fehlerereignisse ausgegeben.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Profibus_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte

Parameter

Instanz DPM_STAT Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

DONE Ausgang BOOL Fertigmeldung des Bausteins

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

STAT_BITS Ausgang DPM_STATE_BITS_TYPE Atypische Kommunikationszustände

DPM_STATE Ausgang WORD Zustand des DP-Masters nach Norm

COM_ERR Ausgang DPM_COM_ERR_TYPE Kommunikationsfehler

BUS_ERR Ausgang WORD Anzahl schwerer Busfehler

TIME_OUT Ausgang WORD Anzahl Zeitüberschreitungen

Beschreibung

Der Baustein DPM_STAT gibt den aktuellen Zustand des PROFIBUS-Kopplers aus. DPM_STAT ist aktiv, wenn der Eingang EN = TRUE ist. Wenn der Baustein aktiv ist, werden an den Ausgängen immer die aktuellen Werte angezeigt.

EN BOOL

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 31 PROFIBUS AC500 / Stand: 01.2007

SLOT BYTE

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

DONE BOOL

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Falle über den Ausgang ERNO ausgelesen werden.

ERR BOOL

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit dem Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

STATE_BITS DPM_STATE_BITS_TYPE

Am Ausgang STATE_BITS werden atypische Kommunikationszustände am PROFIBUS angezeigt. STATE_BITS ist nur gültig, wenn EN = TRUE und ERR = FALSE.

Der Aufbau der Struktur vom Typ DPM_STATE_BITS_TYPE ist in der PROFIBUS-Bibliothek definiert und wird weiter unten erläutert.

DPM_STATE BYTE

Am Ausgang DPM_STATE wird der Zustand des DP-Masters nach Norm ausgegeben. Folgende Zustände sind definiert:

OFFLINE 00HEX / 00DEZ STOP 40HEX / 64DEZ CLEAR 80HEX / 128DEZ OPERATE C0HEX / 192DEZ DPM_STATE = OFFLINE

Hat DPM_STATE den Wert OFFLINE, befindet sich der PROFIBUS-Koppler im Initialisierungszustand. Ist die Initialisierungsphase abgeschlossen, geht der Koppler in den Zustand STOP über.

DPM_STATE = STOP

Hat DPM_STATE den Wert STOP, ist der Koppler vollständig initialisiert. In diesem Zustand ist der Koppler bereit für den Empfang von Konfigurationsdaten. Es findet kein Datenaustausch mit den DP-Slaves statt. Der Koppler nimmt diesen Zustand ein, wenn kein Anwenderprogramm läuft.

DPM_STATE = CLEAR

Wird das Anwenderprogramm gestartet, geht der Koppler vom Zustand STOP in den Zustand CLEAR über und beginnt damit, die ihm bei der Konfiguration zugeordneten DP-Slaves über den Bus zu parametrieren (in Betrieb zu nehmen). Nach erfolgreichem Abschluss der Inbetriebnahmephase geht der Koppler in den Zustand OPERATE über. Tritt bei der Parametrierung ein Fehler auf, fällt der Koppler in den Zustand STOP zurück.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 32 PROFIBUS AC500 / Stand: 01.2007

DPM_STATE = OPERATE

Bei laufendem Anwenderprogramm befindet sich der Koppler normalerweise im Zustand OPERATE. In diesem Zustand tauscht der DP-Master E/A-Daten mit den DP-Slaves aus. Tritt dabei eine Störung auf und wurde bei der Konfiguration 'Auto-Clear-Modus' gewählt, fällt der Koppler in den Zustand CLEAR zurück und versucht erneut, die DP-Slaves zu para-metrieren. Wurde 'Auto-Clear-Modus' nicht gewählt, verbleibt der Koppler bei einer Störung im Zustand OPERATE. Wird das Anwenderprogramm gestoppt, geht auch der Koppler in den Zustand STOP zurück.

DPM_STATE ist nur gültig, wenn EN = TRUE und ERR = FALSE.

COM_ERR DPM_COM_ERR_TYPE

Am Ausgang COM_ERR werden eventuelle Kommunikationsfehler angezeigt. COM_ERR ist nur gültig, wenn EN = TRUE und ERR = FALSE.

Der Aufbau der Struktur vom Typ DPM_COM_ERR_TYPE ist in der PROFIBUS-Bibliothek definiert und wird, ebenso wie die möglichen Fehler, weiter unten erläutert.

BUS_ERR WORD

Am Ausgang BUS_ERR wird die Anzahl der seit Systemstart aufgetretenen schweren Busfehler, wie zum Beispiel Kurzschlüsse auf der Übertragungsleitung, ausgegeben. BUS_ERR ist nur gültig, wenn EN = TRUE und ERR = FALSE.

TIME_OUT WORD

Am Ausgang TIME_OUT wird die Anzahl der seit Systemstart aufgetretenen Zeitüberschreitungsfehler ausgegeben. Eine Zeitüberschreitung tritt auf, wenn ein DP-Slave nicht innerhalb der konfigurierten Zeit auf eine Anfrage des DP-Masters antwortet. TIME_OUT ist nur gültig, wenn EN = TRUE und ERR = FALSE.

Funktionsaufruf in AWL

CAL STAT (EN := STAT_EN, SLOT := STAT_SLOT)

LD STAT.DONE ST STAT_DONE

LD STAT.ERR ST STAT_ERR

LD STAT.ERNO ST STAT_ERNO

LD STAT.STATE_BITS ST STAT_STATE_BITS

LD STAT.DPM_STATE ST STAT_DPM_STATE

LD STAT.COM_ERR ST STAT_COM_ERR

LD STAT.BUS_ERR ST STAT_BUS_ERR

LD STAT.TIME_OUT ST STAT_TIME_OUT

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 33 PROFIBUS AC500 / Stand: 01.2007

Funktionsaufruf in ST

STAT (EN := STAT_EN, SLOT := STAT_SLOT);

STAT_DONE := STAT.DONE; STAT_ERR := STAT.ERR; STAT_ERNO := STAT.ERNO; STAT_STATE_BITS := STAT.STATE_BITS; STAT_DPM_STATE := STAT.DPM_STATE; STAT_COM_ERR := STAT.COM_ERR; STAT_BUS_ERR := STAT.BUS_ERR; STAT_TIME_OUT := STAT.TIME_OUT;

STATE_BITS DPM_STATE_BITS_TYPE

Die Struktur STATE_BITS beinhaltet vier boolsche Variablen, die verschiedene Kommunikationszustände anzeigen. Der Datentyp DPM_STATE_BITS_TYPE ist in der PROFIBUS-Bibliothek wie folgt definiert:

TYPE DPM_STATE_BITS_TYPE: STRUCT CTRL: BOOL; AUTO_CLR: BOOL; NO_EXCH: BOOL; FATAL: BOOL; EVENT: BOOL; TIMEOUT: BOOL; END_STRUCT END_TYPE

CTRL BOOL

Ist dieses Bit auf TRUE gesetzt, liegt ein Parametrierungsfehler vor. Im normalen Betrieb sollte CTRL = FALSE sein. Ist dies nicht der Fall, sind die Parameter- und Konfigurationsdaten zu überprüfen.

AUTO_CLR BOOL

Dieses Bit ist nur gültig, wenn bei der Konfiguration "Auto-Clear-Modus" gewählt wurde. Ist AUTO_CLR auf TRUE gesetzt, ist bei der Kommunikation mit mindestens einem DP-Slave ein Fehler aufgetreten. Der Koppler hat daraufhin den Datenaustausch mit allen DP-Slaves eingestellt und ist in den Zustand CLEAR zurückgefallen (siehe DPM_STATE).

NO_EXCH BOOL

Dieses Bit wird auf TRUE gesetzt, wenn mit einem oder mehreren DP-Slaves kein Prozessdatenaustausch zustande kommt. Die Fehlerursache kann sowohl in den Konfigurationsdaten als auch in den DP-Slaves selbst liegen.

FATAL BOOL

Ist FATAL = TRUE gesetzt, ist aufgrund eines schweren Busfehlers (z. B. Kurzschluss der Busleitung) keine Kommunikation über PROFIBUS möglich. In diesem Fall sind alle Busleitungen zu überprüfen.

EVENT BOOL

Dieses Bit wird auf TRUE gesetzt, wenn auf dem Bus ein Kurzschluss detektiert wurde. Die Anzahl der detektierten Kurzschlüsse kann über den Ausgang BUS_ERR ausgelesen werden. Ist das Bit einmal gesetzt, bleibt der Zustand immer auf TRUE.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 34 PROFIBUS AC500 / Stand: 01.2007

TIMEOUT BOOL

Dieses Bit wird auf TRUE gesetzt, wenn ein Telegramm-Timeout detektiert wurde. Die Anzahl der detektierten Timeouts kann über den Ausgang TIME_OUT ausgelesen werden. Ist das Bit einmal gesetzt, bleibt der Zustand immer auf TRUE.

COM_ERR DPM_COM_ERR_TYPE

Kommunikationsfehler können über COM_ERR genauer lokalisiert werden. Der Ausgang COM_ERR wird als Struktur vom Typ DPM_COM_ERR_TYPE dargestellt. Dieser Datentyp ist in der PROFIBUS-Bibliothek wie folgt definiert:

TYPE DPM_COM_ERR_TYPE: STRUCT ADDRESS: BYTE; EVENT: BYTE; END_STRUCT END_TYPE

ADDRESS BYTE

Im Fehlerfall beinhaltet ADDRESS die Busadresse des fehlerhaften Teilnehmers (0 bis 125). Hat ADDRESS den Wert 255, liegt der Fehler im Koppler selbst.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 35 PROFIBUS AC500 / Stand: 01.2007

EVENT BYTE

EVENT zeigt die Fehlerursache an. Die Kodierung der einzelnen Fehler zeigen folgende Tabellen.

ADDRESS = 255 / Koppler-Fehler

Event Bedeutung Fehlerquelle Maßnahme

50 USR_INTF-Task nicht gefunden

Koppler Kontaktaufnahme mit ABB

51 Kein globales Datenfeld Koppler Kontaktaufnahme mit ABB

52 FDL-Task nicht gefunden Koppler Kontaktaufnahme mit ABB

53 PLC-Task nicht gefunden Koppler Kontaktaufnahme mit ABB

54 Kein Master-Parametersatz Konfiguration Konfiguration in Projekt erstellen und Programm erneut in Steuerung laden

55 Fehlerhafter Wert in Master-Parametersatz

Konfiguration Konfigurationsdaten für Koppler im Projekt überprüfen und/oder Programm erneut in Steuerung laden

56 Keine Slave-Parametersätze Konfiguration Konfigurationsdaten um DP-Slaves ergänzen und Programm erneut in Steuerung laden

57 Fehlerhafter Wert in einem Slave-Parametersatz

Konfiguration Konfigurationsdaten für untergeordnete DP-Slaves im Projekt überprüfen und/oder Programm erneut in Steuerung laden

58 Doppelte Slave-Adresse Konfiguration Konfigurationsdaten für untergeordnete DP-Slaves im Projekt auf doppelte Busadressen prüfen und Programm erneut in Steuerung laden

59 Ungültige Offset-Adresse Ausgabedaten

Konfiguration Konfigurationsdaten für untergeordnete DP-Slaves im Projekt auf ungültige IEC-Adressen prüfen und/oder Programm erneut in Steuerung laden

60 Ungültige Offset-Adresse Eingabedaten

Konfiguration Konfigurationsdaten für untergeordnete DP-Slaves im Projekt auf ungültige IEC-Adressen prüfen und/oder Programm erneut in Steuerung laden

61 Bereichsüberschneidung in Ausgabedaten

Konfiguration Konfigurationsdaten für untergeordnete DP-Slaves im Projekt auf Überschneidung in IEC-Adressbereichen prüfen und/oder Programm erneut in Steuerung laden

62 Bereichsüberschneidung in Eingabedaten

Konfiguration Konfigurationsdaten für untergeordnete DP-Slaves im Projekt auf Überschneidung in IEC-Adressbereichen prüfen und/oder Programm erneut in Steuerung laden

63 Unbekannter Prozessdaten-Handshake

Steuerung Spannung AUS/EIN, sonst Kontaktaufnahme mit ABB

64 Unzureichender Speicher Koppler Kontaktaufnahme mit ABB

65 Fehlerhafter Slave-Parametersatz

Konfiguration Konfigurationsdaten für untergeordnete DP-Slaves im Projekt überprüfen und/oder Programm erneut in Steuerung laden

202 Kein Segment verfügbar Koppler Kontaktaufnahme mit ABB

212 Fehler beim Lesen der Datenbasis

Konfiguration / Koppler

Programm mit Konfigurationsdaten für Koppler erneut in Steuerung laden

213 Fehlerhafte Übergabe-Struktur Betriebssystem

Koppler Kontaktaufnahme mit ABB

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 36 PROFIBUS AC500 / Stand: 01.2007

ADDRESS = 0..125 / Fehler bei Teilnehmer mit Busadresse ADDRESS

Event Bedeutung Fehlerquelle Maßnahme

2 Teilnehmer meldet Überlauf DP-Master-Telegramm

Konfigurationsdaten für untergeordneten DP-Slave im Projekt überprüfen und/oder Programm erneut in Steuerung laden

3 Angeforderte Funktion wird von Teilnehmer nicht unterstützt

DP-Master-Telegramm

Überprüfung des DP-Slaves auf Konformität bezüglich PROFIBUS-Norm

9 Keine Daten im Antwort-Telegramm

DP-Slave Konfigurationsdaten für untergeordneten DP-Slave im Projekt mit Ist-Konfiguration des DP-Slaves vergleichen und ggf. Programm mit geänderter Konfiguration erneut in Steuerung laden

17 Teilnehmer antwortet nicht DP-Slave Überprüfung der Busleitung und der Busadresse des DP-Slaves

18 Dp-Master nicht im logischen Token-Ring

DP-Master Überprüfung der konfigurierten Busadresse des DP-Masters, der höchsten Stationsadresse (HSA) in den anderen DP-Mastern im System und/oder des Buskabels auf Kurzschlüsse

21 Fehlerhafter Parameter im Anforderungstelegramm

DP-Master-Telegramm

Kontaktaufnahme mit ABB

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 37 PROFIBUS AC500 / Stand: 01.2007

DPM_SYS_DIAG Auslesen einer Statusübersicht aller DP-Slaves

Der Baustein DPM_SYS_DIAG gibt am Ausgang SLV ein Bitfeld als Zustandsübersicht über alle DP-Slaves aus. Über den Eingang TYP können drei verschiedene Übersichten ausgewählt werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Profibus_AC500_V10.lib

Bausteintyp

Funktionsblock ohne Vergangenheitswerte

Parameter

Instanz DPM_SYSDIAG Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

TYP Eingang BYTE Auswahl des Übersichtstyps

DONE Ausgang BOOL Fertigmeldung des Bausteins

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

SLV Ausgang ARRAY [0..127] OF BOOL Statusübersicht der DP-Slaves

Beschreibung

Der Baustein DPM_SYS_DIAG gibt verschiedene Statusübersichten über alle DP-Slaves aus. Es stehen drei Übersichtsarten zur Wahl:

• Konfigurationsübersicht • E/A-Datenaustauschübersicht • Diagnoseübersicht

EN BOOL

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 38 PROFIBUS AC500 / Stand: 01.2007

SLOT BYTE

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

TYP BYTE

Am Eingang TYP wird ausgewählt, welche Statusübersicht an SLV angezeigt werden soll.

TYP = 1 Konfigurationsübersicht

Am Ausgang SLV wird angezeigt, welche DP-Slaves der DP-Master erfolgreich konfiguriert (in Betrieb genommen) hat. Dabei ist zu beachten, dass der DP-Master nur die DP-Slaves in Betrieb nimmt, die ihm bei der Erstellung der Konfigurationsdaten zugeteilt wurden.

TYP = 2 Datenaustauschübersicht

Am Ausgang SLV wird angezeigt, mit welchen DP-Slaves der DP-Master E/A-Daten austauscht. Der Datenaustausch kann nur mit DP-Slaves erfolgen, die durch den DP-Master selbst konfiguriert wurden. Die Datenaustauschübersicht kann nur angefordert werden, wenn der Koppler im Zustand OPERATE ist.

TYP = 3 Diagnoseübersicht

Am Ausgang SLV wird angezeigt, welche DP-Slaves das Vorliegen einer Diagnose gemeldet haben. Die Diagnoseübersicht kann nur angefordert werden, wenn der Koppler im Zustand OPERATE ist.

DONE BOOL

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Falle über den Ausgang ERNO ausgelesen werden.

ERR BOOL

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit dem Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

SLV ARRAY [0..127] OF BOOL

Am Ausgang SLV wird die Statusübersicht in Form eines Bitfeldes ausgegeben. Jedes Bit innerhalb dieses Feldes repräsentiert einen DP-Slave. Der Index entspricht dabei der Busadresse des DP-Slaves. Ein auf TRUE gesetztes Bit bedeutet, dass der über TYP ausgewählte Zustand für den entsprechenden DP-Slave zutrifft.

Ist zum Beispiel TYP = 1 ausgewählt und SLV[2] = TRUE, wurde der DP-Slave mit der Busadresse 2 erfolgreich vom DP-Master konfiguriert. Ist SLV[2] = FALSE, ist die Konfiguration des betreffenden DP-Slaves noch nicht abgeschlossen oder der DP-Slave ist nicht Bestandteil der Konfigurationsdaten des DP-Masters.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 39 PROFIBUS AC500 / Stand: 01.2007

Wurde TYP = 2 gewählt und SLV[2] = TRUE, bedeutet dies, dass der DP-Master E/A-Daten mit dem DP-Slave mit der Busadresse 2 austauscht. Ist hingegen SLV[2] = FALSE, tauscht der DP-Master derzeit keine E/A-Daten mit dem DP-Slave aus. Der DP-Master kann nur mit solchen DP-Slaves Daten austauschen, die er zuvor erfolgreich in Betrieb genommen hat.

Bei TYP = 3 bedeutet zum Beispiel SLV[2] = TRUE, dass der DP-Slave mit der Busadresse 2 eine Diagnose gemeldet hat. Die detaillierte Diagnose kann dann mit Hilfe des Bausteins DPM_SLVDIAG angefordert werden.

Das an SLV ausgegebene Bitfeld ist nur gültig, wenn EN = TRUE und ERR = FALSE.

Funktionsaufruf in AWL

CAL SYSDIAG (EN := SYSDIAG_EN, SLOT := SYSDIAG_SLOT, TYP := SYSDIAG_TYP)

LD SYSDIAG.DONE ST SYSDIAG_DONE

LD SYSDIAG.ERR ST SYSDIAG_ERR

LD SYSDIAG.ERNO ST SYSDIAG_ERNO

LD SYSDIAG.SLV ST SYSDIAG_SLV

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

SYSDIAG (EN := SYSDIAG_EN, SLOT := SYSDIAG_SLOT, TYP := SYSDIAG_TYP);

SYSDIAG_DONE:= SYSDIAG.DONE; SYSDIAG_ERR := SYSDIAG.ERR; SYSDIAG_ERNO:= SYSDIAG.ERNO; SYSDIAG_SLV := SYSDIAG.SLV;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 40 PROFIBUS AC500 / Stand: 01.2007

DPV1_MSAC1_READ Lesen eines Datenblocks aus einem DPV1-Slave

Über den Baustein DPM_MSAC1_READ kann ein Datenblock unter Angabe von Slot und Index aus einem DPV1-Slave gelesen werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Profibus_AC500_V10.lib

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DPV1_MSAC1_READ Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

SLV Eingang BYTE Adresse des DPV1-Slaves

SLV_SLOT Eingang BYTE Slot-Nummer des zu lesenden Datenblocks

SLV_IDX Eingang BYTE Index des zu lesenden Datenblocks

LEN Eingang BYTE Länge des zu lesenden Datenblocks

DATA Eingang DWORD Speicheradresse für Datenblock (über ADR-Operator)

DONE Ausgang BOOL Fertigmeldung des Bausteins

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

ERNO1 Ausgang BYTE Zusätzliche Fehlerinformation

ERNO2 Ausgang BYTE Zusätzliche Fehlerinformation

DATA_LEN Ausgang BYTE Tatsächliche Länge der gelesenen Daten

Beschreibung

Der Baustein DPV1_MSAC1_READ realisiert den azyklischen PROFIBUS-DPV1-Dienst MSAC1_READ. Über diese Funktion hat der Master einen Lesezugriff auf slot- und indexbezogene Daten von DPV1-fähigen Slaves. DPM_MSAC1_READ arbeitet außerhalb des zyklischen Prozessdatenaustauschs.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 41 PROFIBUS AC500 / Stand: 01.2007

DPV1_MSAC1_READ übernimmt die Werte an den Eingängen bei jeder FALSE → TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE → TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE angezeigt.

EN BOOL

Bei der Vorgabe einer FALSE → TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen.

Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler am Ausgang ERR angezeigt und das Ende der Bearbeitung durch DONE = TRUE angezeigt. Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

SLV BYTE

Am Eingang SLV wird die Busadresse des DP-Slaves angegeben, von dem die Daten gelesen werden sollen. Gültige Werte: 0..126.

SLV_SLOT BYTE

Am Eingang SLV_SLOT wird die Nummer des Slots innerhalb des Slaves angegeben, von dem die Daten gelesen werden sollen. Gültige Werte: 0..254.

SLV_IDX BYTE

Am Eingang SLV_IDX wird die Nummer des Index innerhalb des Slots angegeben, von dem die Daten gelesen werden sollen. Gültige Werte: 0..254.

LEN BYTE

Am Eingang LEN wird die Länge des zu lesenden Datenblocks angegeben. Gültige Werte: 0..240.

DATA DWORD

Am Eingang DATA wird die Adresse der Variablen, in der der empfangene Datenblock abgelegt werden soll, über den Adress-Operator ADR angegeben. Die Variable selbst ist so groß zu wählen, dass sie den gesamten Datenblock aufnehmen kann (z. B. BYTE-Array). Außerdem ist das Format (BYTE, WORD, usw.) der Daten zu beachten.

DONE BOOL

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Falle über den Ausgang ERNO ausgelesen werden.

ERR BOOL

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 42 PROFIBUS AC500 / Stand: 01.2007

ERNO WORD

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit dem Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

ERNO1 BYTE

Am Ausgang ERNO1 wird eine zusätzliche DPV1-spezifische Fehlerinformation ausgegeben, wenn während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO1 muss immer im Zusammenhang mit den Ausgängen DONE, ERR und ERNO betrachtet werden. Der an ERNO1 ausgegebene Wert ist nur gültig, wenn DONE = TRUE, ERR = TRUE und ERNO = 6036 HEX (24630 DEZ) ist.

ERNO1 der DPV1-Bausteine ist wie folgt kodiert. Das obere Nibble (die höherwertigen 4 Bits) beschreiben die Fehlerklasse, das untere Nibble die Fehlerursache.

7 6 5 4 3 2 1 0

Fehlerklasse Fehlercode

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 43 PROFIBUS AC500 / Stand: 01.2007

ERNO1

DEZ HEX

Fehlerklasse/Fehlercode

0 0 Reserviert

... ... ...

159 9F Reserviert

160 A0 10 Applikation / 0 Lesefehler

161 A1 10 Applikation / 1 Schreibfehler

162 A2 10 Applikation / 2 Fehler Modul

163 A3 Reserviert

... ... ...

167 A7 Reserviert

168 A8 10 Applikation / 8 Versionskonflikt

169 A9 10 Applikation / 9 Funktion nicht unterstützt

170 AA 10 Applikation / 10 herstellerspezifisch

... ... ...

175 AF 10 Applikation / 15 herstellerspezifisch

176 B0 11 Zugriff / 0 ungültiger Index

177 B1 11 Zugriff / 1 ungültige Länge der zu schreibenden Daten

178 B2 11 Zugriff / 2 ungültiger Slot

179 B3 11 Zugriff / 3 Typkonflikt

180 B4 11 Zugriff / 4 ungültiger Bereich

181 B5 11 Zugriff / 5 Zustandskonflikt

182 B6 11 Zugriff / 6 Zugriff verweigert

183 B7 11 Zugriff / 7 ungültiger Wertebereich

184 B8 11 Zugriff / 8 ungültiger Parameter

185 B9 11 Zugriff / 9 ungültiger Typ

186 BA 11 Zugriff / 10 herstellerspezifisch

... ... ...

191 BF 11 Zugriff / 15 herstellerspezifisch

192 C0 12 Ressourcen / 0 Lesekonflikt

193 C1 12 Ressourcen / 1 Schreibkonflikt

194 C2 12 Ressourcen / 2 Ressource belegt

195 C3 12 Ressourcen / 3 Ressource nicht verfügbar

196 C4 Reserviert

... ... ...

199 C7 Reserviert

200 C8 12 Ressourcen / 10 herstellerspezifisch

... ... ...

207 CF 12 Ressourcen / 15 herstellerspezifisch

208 D0 Reserviert

... ... ...

255 FF Reserviert

ERNO2 BYTE

Am Ausgang ERNO2 wird eine zusätzliche DPV1-spezifische Fehlerinformation ausgegeben, wenn während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO2 muss immer im Zusammenhang mit den Ausgängen DONE, ERR und ERNO betrachtet werden. Der an ERNO2 ausgegebene Wert ist nur gültig, wenn DONE = TRUE, ERR = TRUE und ERNO = 6036 HEX (24630 DEZ) ist. Die Kodierung von ERNO2 ist vollständig herstellerspezifisch.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 44 PROFIBUS AC500 / Stand: 01.2007

DATA_LEN BYTE

Der Ausgang DATA_LEN zeigt die tatsächliche Länge der vom Slave gelesenen Daten in Byte an. DATA_LEN ist nur gültig, wenn DONE = TRUE und ERR = FALSE ist. Enthält DATA_LEN einen Wert X ungleich 0, hat der Baustein X Byte Daten in der Variablen an DATA abgelegt. Handelt es sich bei DATA z. B. um ein Byte-Array mit Startindex 1, enthalten nun die Einträge DATA[1] bis DATA[X] die gültigen Daten des Slaves.

Funktionsaufruf in AWL

LD DPV1_READ_DATA ADR ST DPV1_READ_DATA_ADR

CAL DPV1_READ (EN := DPV1_READ_EN, SLOT := DPV1_READ_SLOT, SLV := DPV1_READ_SLV, SLV_SLOT := DPV1_READ_SLV_SLOT, SLV_IDX := DPV1_READ_SLV_IDX, LEN := DPV1_READ_LEN, DATA := DPV1_READ_DATA_ADR)

LD DPV1_READ.DONE ST DPV1_READ_DONE

LD DPV1_READ.ERR ST DPV1_READ_ERR

LD DPV1_READ.ERNO ST DPV1_READ_ERNO

LD DPV1_READ.ERNO1 ST DPV1_READ_ERNO1

LD DPV1_READ.ERNO2 ST DPV1_READ_ERNO2

LD DPV1_READ.DATA_LEN ST DPV1_READ_DATA_LEN

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DPV1_READ (EN := DPV1_READ_EN, SLOT := DPV1_READ_SLOT, SLV := DPV1_READ_SLV, SLV_SLOT := DPV1_READ_SLV_SLOT, SLV_IDX := DPV1_READ_SLV_IDX, LEN := DPV1_READ_LEN, DATA := ADR(DPV1_READ_DATA));

DPV1_READ_DONE := DPV1_READ.DONE; DPV1_READ_ERR := DPV1_READ.ERR; DPV1_READ_ERNO := DPV1_READ.ERNO; DPV1_READ_ERNO1 := DPV1_READ.ERNO1; DPV1_READ_ERNO2 := DPV1_READ.ERNO2; DPV1_READ_DATA_LEN := DPV1_READ.DATA_LEN;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 45 PROFIBUS AC500 / Stand: 01.2007

DPV1_MSAC1_WRITE Schreiben eines Datenblocks in einem DPV1-Slave

Über den Baustein DPV1_MSAC1_WRITE kann ein Datenblock unter Angabe von Slot und Index in einem DPV1-Slave geschrieben werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0 Anmerkung:

Enthalten in Bibliothek: Profibus_AC500_V10.lib

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DPV1_MSAC1_WRITE Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

SLV Eingang BYTE Adresse des DPV1-Slaves

SLV_SLOT Eingang BYTE Slot-Nummer des zu schreibenden Datenblocks

SLV_IDX Eingang BYTE Index des zu schreibenden Datenblocks

LEN Eingang BYTE Länge des zu schreibenden Datenblocks

DATA Eingang DWORD Speicheradresse für Datenblock (über ADR-Operator)

DONE Ausgang BOOL Fertigmeldung des Bausteins

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

ERNO1 Ausgang BYTE Zusätzliche Fehlerinformation

ERNO2 Ausgang BYTE Zusätzliche Fehlerinformation

DATA_LEN Ausgang BYTE Tatsächliche Länge der geschriebenen Daten

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 46 PROFIBUS AC500 / Stand: 01.2007

Beschreibung

Der Baustein DPV1_MSAC1_WRITE realisiert den azyklischen PROFIBUS-DPV1-Dienst MSAC1_WRITE. Über diese Funktion hat der Master einen Schreibzugriff auf slot- und indexbezogene Daten von DPV1-fähigen Slaves. DPV1_MSAC1_WRITE arbeitet außerhalb des zyklischen Prozessdatenaustauschs.

DPV1_MSAC1_WRITE übernimmt die Werte an den Eingängen und die zu schreibenden Daten bei jeder FALSE → TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE → TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE angezeigt.

EN BOOL

Bei der Vorgabe einer FALSE → TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen.

Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler am Ausgang ERR angezeigt und das Ende der Bearbeitung durch DONE = TRUE angezeigt. Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

SLV BYTE

Am Eingang SLV wird die Busadresse des DP-Slaves angegeben, in den die Daten geschrieben werden sollen. Gültige Werte: 0..126.

SLV_SLOT BYTE

Am Eingang SLV_SLOT wird die Nummer des Slots innerhalb des Slaves angegeben, in den die Daten geschrieben werden sollen. Gültige Werte: 0..254.

SLV_IDX BYTE

Am Eingang SLV_IDX wird die Nummer des Index innerhalb des Slots angegeben, in den die Daten geschrieben werden sollen. Gültige Werte: 0..254.

LEN BYTE

Am Eingang LEN wird die Länge des zu schreibenden Datenblocks angegeben. Gültige Werte: 0..240.

DATA DWORD

Am Eingang DATA wird die Adresse der Variablen, in der der zu sendende Datenblock abgelegt ist, über den Adress-Operator ADR angegeben. Die Variable selbst ist so groß zu wählen, dass sie den gesamten Datenblock aufnehmen kann (z. B. BYTE-Array). Außerdem ist das Format (BYTE, WORD, usw.) der Daten zu beachten.

DONE BOOL

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Falle über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 47 PROFIBUS AC500 / Stand: 01.2007

ERR BOOL

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit dem Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird am Anfang der Bausteinbeschreibung erläutert.

ERNO1 BYTE

Am Ausgang ERNO1 wird eine zusätzliche DPV1-spezifische Fehlerinformation ausgegeben, wenn während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO1 muss immer im Zusammenhang mit den Ausgängen DONE, ERR und ERNO betrachtet werden. Der an ERNO1 ausgegebene Wert ist nur gültig, wenn DONE = TRUE, ERR = TRUE und ERNO = 6036 HEX (24630 DEZ) ist.

ERNO1 der DPV1-Bausteine ist wie folgt kodiert. Das obere Nibble (die höherwertigen 4 Bits) beschreiben die Fehlerklasse, das untere Nibble die Fehlerursache.

7 6 5 4 3 2 1 0

Fehlerklasse Fehlercode

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 48 PROFIBUS AC500 / Stand: 01.2007

ERNO1

DEZ HEX

Fehlerklasse/Fehlercode

0 0 Reserviert

... ... ...

159 9F Reserviert

160 A0 10 Applikation / 0 Lesefehler

161 A1 10 Applikation / 1 Schreibfehler

162 A2 10 Applikation / 2 Fehler Modul

163 A3 Reserviert

... ... ...

167 A7 Reserviert

168 A8 10 Applikation / 8 Versionskonflikt

169 A9 10 Applikation / 9 Funktion nicht unterstützt

170 AA 10 Applikation / 10 herstellerspezifisch

... ... ...

175 AF 10 Applikation / 15 herstellerspezifisch

176 B0 11 Zugriff / 0 ungültiger Index

177 B1 11 Zugriff / 1 ungültige Länge der zu schreibenden Daten

178 B2 11 Zugriff / 2 ungültiger Slot

179 B3 11 Zugriff / 3 Typkonflikt

180 B4 11 Zugriff / 4 ungültiger Bereich

181 B5 11 Zugriff / 5 Zustandskonflikt

182 B6 11 Zugriff / 6 Zugriff verweigert

183 B7 11 Zugriff / 7 ungültiger Wertebereich

184 B8 11 Zugriff / 8 ungültiger Parameter

185 B9 11 Zugriff / 9 ungültiger Typ

186 BA 11 Zugriff / 10 herstellerspezifisch

... ... ...

191 BF 11 Zugriff / 15 herstellerspezifisch

192 C0 12 Ressourcen / 0 Lesekonflikt

193 C1 12 Ressourcen / 1 Schreibkonflikt

194 C2 12 Ressourcen / 2 Ressource belegt

195 C3 12 Ressourcen / 3 Ressource nicht verfügbar

196 C4 Reserviert

... ... ...

199 C7 Reserviert

200 C8 12 Ressourcen / 10 herstellerspezifisch

... ... ...

207 CF 12 Ressourcen / 15 herstellerspezifisch

208 D0 Reserviert

... ... ...

255 FF Reserviert

ERNO2 BYTE

Am Ausgang ERNO2 wird eine zusätzliche DPV1-spezifische Fehlerinformation ausgegeben, wenn während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO2 muss immer im Zusammenhang mit den Ausgängen DONE, ERR und ERNO betrachtet werden. Der an ERNO2 ausgegebene Wert ist nur gültig, wenn DONE = TRUE, ERR = TRUE und ERNO = 6036 HEX (24630 DEZ) ist. Die Kodierung von ERNO2 ist vollständig herstellerspezifisch.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 49 PROFIBUS AC500 / Stand: 01.2007

DATA_LEN BYTE

Der Ausgang DATA_LEN zeigt die tatsächliche Länge der an den Slave geschriebenen Daten in Byte an. DATA_LEN ist nur gültig, wenn DONE = TRUE und ERR = 0 ist.

Funktionsaufruf in AWL

LD DPV1_WRITE_DATA ADR ST DPV1_WRITE_DATA_ADR

CAL DPV1_WRITE (EN := DPV1_WRITE_EN, SLOT := DPV1_WRITE_SLOT, SLV := DPV1_WRITE_SLV, SLV_SLOT := DPV1_WRITE_SLV_SLOT, SLV_IDX := DPV1_WRITE_SLV_IDX, LEN := DPV1_WRITE_LEN, DATA := DPV1_WRITE_DATA_ADR)

LD DPV1_WRITE.DONE ST DPV1_WRITE_DONE

LD DPV1_WRITE.ERR ST DPV1_WRITE_ERR

LD DPV1_WRITE.ERNO ST DPV1_WRITE_ERNO

LD DPV1_WRITE.ERNO1 ST DPV1_WRITE_ERNO1

LD DPV1_WRITE.ERNO2 ST DPV1_WRITE_ERNO2

LD DPV1_WRITE.DATA_LEN ST DPV1_WRITE_DATA_LEN

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DPV1_WRITE (EN := DPV1_WRITE_EN, SLOT := DPV1_WRITE_SLOT, SLV := DPV1_WRITE_SLV, SLV_SLOT := DPV1_WRITE_SLV_SLOT, SLV_IDX := DPV1_WRITE_SLV_IDX, LEN := DPV1_WRITE_LEN, DATA := ADR(DPV1_WRITE_DATA));

DPV1_WRITE_DONE := DPV1_WRITE.DONE; DPV1_WRITE_ERR := DPV1_WRITE.ERR; DPV1_WRITE_ERNO := DPV1_WRITE.ERNO; DPV1_WRITE_ERNO1 := DPV1_WRITE.ERNO1; DPV1_WRITE_ERNO2 := DPV1_WRITE.ERNO2; DPV1_WRITE_DATA_LEN := DPV1_WRITE.DATA_LEN;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 50 PROFIBUS AC500 / Stand: 01.2007

Glossar

BOOL

Variablen vom Typ BOOL können die Wahrheitswerte TRUE und FALSE annehmen. Es werden 8 Bit Speicherplatz reserviert.

DINT

DINT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DINT Untergrenze -2147483648 Obergrenze 2147483647 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

DWORD

DWORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DWORD Untergrenze 0 Obergrenze 4294967295 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

INT

INT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ INT Untergrenze -32768 Obergrenze 32767 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

WORD

WORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ WORD Untergrenze 0 Obergrenze 65535 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 51 PROFIBUS AC500 / Stand: 01.2007

BYTE

BYTE gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ BYTE Untergrenze 0 Obergrenze 255 Speicherplatz 8 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

Funktionen

Funktionen sind Unterprogramme, die beliebig viele Eingangsparameter haben und genau ein Ergebnis-Element zurückliefern. Das zurückgelieferte Ergebnis kann von elementarem, aber auch von zusammengesetztem Datentyp sein. Eine Funktion darf also auch ein Feld, eine Struktur, ein Feld von Strukturen etc. zurückgeben.

Funktionen liefern bei gleicher Eingangsbeschaltung stets das gleiche Ergebnis (sie besitzen kein Gedächtnis.

Daraus abzuleiten sind folgende Regeln:

• Innerhalb von Funktionen dürfen globale Variablen weder gelesen noch geschrieben werden. • Innerhalb von Funktionen dürfen Absolutoperanden weder gelesen noch geschrieben werden • Innerhalb von Funktionen dürfen Funktionsblöcke nicht aufgerufen werden.

Funktionsblöcke

Funktionsblöcke sind Unterprogramme, die jeweils beliebig viele Eingangs-, Ausgangs- und interne Variablen haben. Sie werden von einem Programm aufgerufen oder von einem anderen Funktionsblock.

Da sie auch mehrfach genutzt werden können (mit jeweils anderen Datensätzen), können Funktionsblöcke (ihr Code und die Schnittstelle) als Typ betrachtet werden. Über die Zuordnung eines individuellen Datensatzes (Deklaration) wird eine Instanz des Funktionsblockes angelegt.

Anders als Funktionen können Funktionsblöcke statisch lokale Daten haben, die von einem Aufruf zum nächsten gerettet werden. Damit können z. B. Zähler realisiert werden, die ihren Zählerstand nicht vergessen dürfen. D. h. Funktionsblöcke können ein Gedächtnis haben.

Funktionen und Funktionsblöcke unterscheiden sich in zwei wesentlichen Punkten:

• Ein Funktionsblock hat beliebig viele Ausgangsparameter, die Funktion maximal einen, wobei sich die Ausgangsparameter von Funktionen und Funktionsblöcken syntaktisch unterscheiden.

• Ein Funktionsblock kann ein Gedächtnis haben, eine Funktion nicht.

Funktionsblöcke mit Vergangenheitswerten (Gedächtnis):

Bei Funktionsblöcken mit Vergangenheitswerten ist zu beachten, dass Instanznamen nicht mehrfach vergeben werden dürfen, wenn unterschiedliche Datensätze aufgerufen werden sollen.

Funktionsblöcke ohne Vergangenheitswerte (Gedächtnis):

Bei Funktionsblöcken ohne Vergangenheitswerte braucht nur eine Instanz für den FB-Typ angelegt zu werden. Diese Instanz kann für mehrere Aufrufe des FB (auch mit unterschiedlichen E/A-Werten) genutzt werden.

Der Instanzname kann beliebig definiert werden. Der Typ ist vorgegeben und ist identisch mit dem Namen des Funktionsblockes.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 52 PROFIBUS AC500 / Stand: 01.2007

Index

B

Bausteinübersicht, geordnet nach Aufrufnamen 4

Bestandteile der Bibliotheken 2

D

DPM_CTRL Senden von Global-Control-Kommandos an den DP-Slave 5

DPM_READ_INPUT Lesen der Eingangsdaten eines nicht dem Master zugeordneten Slaves 11

DPM_READ_OUTPUT Lesen der Ausgangsdaten eines nicht dem Master zugeordneten Slaves 14

DPM_SET_PRM Senden von User-Parametern an einen DP-Slave 17

DPM_SLV_DIAG Abrufen von detaillierten Diagnosedaten eines DP-Slaves 20

DPM_STAT Auslesen des Status des PROFIBUS-Kopplers 30

DPM_SYS_DIAG Auslesen einer Statusübersicht aller DP-Slaves 37

DPV1_MSAC1_READ Lesen eines Datenblocks aus einem DPV1-Slave 40

DPV1_MSAC1_WRITE Schreiben eines Datenblocks in einem DPV1-Slave 45

G

Glossar 50

S

STATIONSTATUS_1_TYPE 21, 24

STATIONSTATUS_2_TYPE 22, 25

STATIONSTATUS_3_TYPE 22, 26

V

Voraussetzung für die Verwendung der Bibliothek 2

Softwarebeschreibung AC500

Skalierbare SPS für individuelle Automatisierung CANopen- Bausteinbibliothek

CANopen

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 1 CANopen AC500 / Stand: 01.2007

Inhalt

CANopen-Bibliothek ..................................................................................................................... 2

Besonderheiten der CANopen-Bibliothek........................................................................................... 2

Bestandteile der CANopen-Bibliothek ................................................................................................. 2

Allgemeine Hinweise zu den CAN-Bausteinen .................................................................................. 3

Bausteinübersicht, geordnet nach Aufrufnamen.............................................................................. 5

CAN2A_INFO Auslesen von Informationen zur CAN 2.0A Kommunikation .............................................. 6

CAN2A_REC Auslesen von CAN 2.0A Telegrammen (11-Bit-Identifier) aus einem Empfangspuffer..... 10

CAN2A_SEND Senden von CAN 2.0A Telegrammen (11-Bit-Identifier) ................................................. 14

CAN2B_INFO Auslesen von Informationen zur CAN 2.0B Kommunikation ............................................ 17

CAN2B_REC Auslesen von CAN 2.0B Telegrammen (29-Bit-Identifier) aus einem Empfangspuffer..... 21

CAN2B_SEND Senden von CAN 2.0B Telegrammen (29-Bit-Identifier) ................................................. 25

CANOM_NMT NMT-Knotenzustände über Netzwerkmanagement steuern ............................................ 28

CANOM_NODE_DIAG Abrufen von Diagnosedaten eines Slaves.......................................................... 31

CANOM_RES_ERR Rücksetzen der Fehleranzeigen des Kopplers ....................................................... 38

CANOM_SDO_READ Lesen des Wertes eines Objekts in einem Slave................................................. 41

CANOM_SDO_WRITE Schreiben des Wertes eines Objekts in einem Slave......................................... 45

CANOM_STATE Auslesen des Zustands des CANopen-Kopplers ......................................................... 49

CANOM_SYS_DIAG Anzeigen von Statusübersichten aller Slaves........................................................ 56

Glossar ....................................................................................................................................................... 59

Index............................................................................................................................................................ 61

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 2 CANopen AC500 / Stand: 01.2007

CANopen-Bibliothek

Besonderheiten der CANopen-Bibliothek

Hinweis: Die CANopen-Kommunikation läuft nur im RUN-Modus der SPS, nicht im Simulationsmodus.

Die Funktionsbausteine der CANopen-Bibliothek greifen sowohl auf das Laufzeitsystem der Steuerung als auch unmittelbar auf den Koppler zu. Die hierzu erforderlichen Definitionen und Funktionen sind in der internen Bibliothek SysExt_AC500_V10.LIB abgelegt. Diese wird bei Einrichten eines Projektes automatisch eingebunden.

Die Bibliothek enthält Funktionsbausteine zur komfortablen Handhabung des CANopen-Kopplers. Zusätzlich werden in der Bibliothek verschiedene Datentypen definiert. Diese Strukturen erlauben eine übersichtliche Darstellung von Datensätzen.

Bestandteile der CANopen-Bibliothek

Funktionsbausteine

Folgende Funktionsbausteine sind in der CANopen-Bibliothek enthalten:

Gruppe: CAN 2.0A

CAN2A_INFO Auslesen von Informationen zur CAN 2.0A Kommunikation

CAN2A_REC Auslesen von CAN 2.0A Telegrammen (11-Bit-Identifier) aus einem Empfangspuffer

CAN2A_SEND Senden von CAN 2.0A Telegrammen (11-Bit-Identifier)

Gruppe: CAN 2.0B

CAN2B_INFO Auslesen von Informationen zur CAN 2.0B Kommunikation

CAN2B_REC Auslesen von CAN 2.0B Telegrammen (29-Bit-Identifier) aus einem Empfangspuffer

CAN2B_SEND Senden von CAN 2.0B Telegrammen (29-Bit-Identifier)

Gruppe: Control

CANOM_NMT NMT-Knotenzustände über Netzwerkmanagement steuern

Gruppe: Diagnosis

CANOM_NODE_DIAG Abrufen von Diagnosedaten eines Slaves

CANOM_RES_ERR Rücksetzen der Fehleranzeigen des Kopplers

CANOM_STATE Auslesen des Zustands des CANopen-Kopplers

CANOM_SYS_DIAG Anzeigen von Statusübersichten aller Slaves

Gruppe: Parameters

CANOM_SDO_READ Lesen des Wertes eines Objekts in einem Slave

CANOM_SDO_WRITE Schreiben des Wertes eines Objekts in einem Slave

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 3 CANopen AC500 / Stand: 01.2007

Datentypen

In der CANopen-Bibliothek sind folgende Datentypen (Strukturen) definiert:

Gruppe: CAN

CAN2A_MESSAGE_TYPE Aufbau eines Telegramms nach CAN 2.0A

CAN2B_MESSAGE_TYPE Aufbau eines Telegramms nach CAN 2.0B

Gruppe: CANopen

CANOM_COM_ERR_TYPE Kommunikationsfehler

CANOM_EMCY_TYPE Emergency Telegram (Notfall-Telegramm)

CANOM_NODESTATUS_1_TYPE Knoten-Diagnose

CANOM_STATE_BITS_TYPE Bits zur Beschreibung des Kopplerstatus

Die Beschreibung der Datentypen für den CANopen-Master befindet sich bei den jeweiligen Bausteinen. Die Beschreibung der CAN-Datentypen befindet sich im Abschnitt "Allgemeine Hinweise zu den CAN-Bausteinen".

Allgemeine Hinweise zu den CAN-Bausteinen

Die CAN-Bausteine stellen eine zusätzliche Funktionalität dar. Für den normalen CANopen-Betrieb ist der Einsatz der Bausteine nicht erforderlich.

Üblicherweise wird der Datenaustausch zwischen der Steuerung als CANopen-Master und den angeschlossenen Knoten mit Hilfe von SYCON.net konfiguriert. Beim Start des Programms setzt der Koppler die konfigurierten Knoten in Betrieb. Im laufenden Betrieb wird der Datenaustausch automatisch durchgeführt. Auf die E/A-Daten der Knoten kann ohne zusätzliche Bausteine wie auf Variablen zugegriffen werden. Wird das SPS-Programm gestoppt, fährt der Master den Bus kontrolliert herunter. Sollen weitere, nicht in der Konfiguration enthaltene, Funktionen realisiert werden, können hierzu die CAN-Bausteine eingesetzt werden.

Die CAN-Bausteine bieten die Möglichkeit, beliebige CAN-Telegramme zu senden und zu empfangen. Es werden sowohl Nachrichten nach CAN 2.0 A mit 11-Bit- als auch solche nach CAN 2.0 B mit 29-Bit-Identifiern unterstützt.

Verschiedene Protokolle (SDS, DeviceNet, CANopen) setzen auf CAN auf. Allen Protokollen gemeinsam ist der Aufbau der Telegramme bestehend aus 11- bzw. 29-Bit-Identifiern und bis zu 8 Byte Daten. Die Verwendung und Bedeutung der einzelnen Telegramm-Komponenten ist von Protokoll zu Protokoll unterschiedlich. Um die CAN-Bausteine universell einsetzen zu können, werden die gesendeten und empfangenen Telegramme daher transparent weitergeleitet und nicht von den Bausteinen interpretiert. Für die komfortablere Handhabung von CANopen-Telegrammen stehen zusätzliche Hilfsfunktionen und Datenstrukturen zur Verfügung.

CAN2A_MESSAGE_TYPE

Zur Beschreibung eines Telegramms mit 11-Bit-Identifier nach CAN 2.0 A enthält die CAN-Bibliothek einen allgemeinen Datentypen CAN2A_MESSAGE_TYPE. Dieser ist wie folgt definiert:

TYPE CAN2A_MESSAGE_TYPE: STRUCT ID: WORD; RTR: BOOL; DLC: BYTE; DATA: ARRAY [1..8] OF BYTE; END_STRUCT END_TYPE

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 4 CANopen AC500 / Stand: 01.2007

ID WORD (identifier)

ID enthält den allgemeinen 11-Bit-Identifier und kann die Werte 0 bis 2047 (16#0 bis 16#7FF) annehmen.

RTR BOOL (remote transmission request)

RTR enthält das RTR-Bit im Header des Telegramms.

DLC BYTE (data length code)

DLC enthält den Data Length Code im Header des Telegramms und gibt die gültige Länge der in DATA folgenden Nutzdaten in Byte an. Gültige Werte für DLC sind 0 bis 8.

DATA ARRAY[1..8] OF BYTE (data)

DATA enthält die Daten des Telegramms (sofern vorhanden). Ein CAN-Telegramm kann 0 bis 8 Byte Daten enthalten. Die tatsächliche Datenlänge eines Telegramms wird im Data Length Code (DLC) im Telegrammkopf beschrieben. In DATA sind nur die ersten entsprechend des DLC angegebenen Bytes gültig.

CAN2B_MESSAGE_TYPE

Zur Beschreibung eines Telegramms mit 29-Bit-Identifier nach CAN 2.0 B enthält die CAN-Bibliothek einen allgemeinen Datentypen CAN2B_MESSAGE_TYPE. Dieser ist wie folgt definiert:

TYPE CAN2B_MESSAGE_TYPE: STRUCT ID: DWORD; RTR: BOOL; DLC: BYTE; DATA: ARRAY [1..8] OF BYTE; END_STRUCT END_TYPE

ID DWORD (identifier)

ID enthält den allgemeinen 29-Bit-Identifier und kann die Werte 0 bis 536870911 (16#0 bis 16# 1FFFFFFF) annehmen.

RTR BOOL (remote transmission request)

RTR enthält das RTR-Bit im Header des Telegramms.

DLC BYTE (data length code)

DLC enthält den Data Length Code im Header des Telegramms und gibt die gültige Länge der in DATA folgenden Nutzdaten in Byte an. Gültige Werte für DLC sind 0 bis 8.

DATA ARRAY[1..8] OF BYTE (data)

DATA enthält die Daten des Telegramms (sofern vorhanden). Ein CAN Telegramm kann 0 bis 8 Byte Daten enthalten. Die tatsächliche Datenlänge eines Telegramms wird im Data Length Code (DLC) im Telegrammkopf beschrieben. In DATA sind nur die ersten entsprechend des DLC angegebenen Bytes gültig.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 5 CANopen AC500 / Stand: 01.2007

Bausteinübersicht, geordnet nach Aufrufnamen

Zeichenerklärung:

FBmV … Funktionsblock mit Vergangenheitswerten

FBoV … Funktionsblockohne Vergangenheitswerte

F … Funktion

VE-Name Typ Funktion

CAN2A_INFO FBmV Auslesen von Informationen zur CAN 2.0A Kommunikation

CAN2A_REC FBmV Auslesen von CAN 2.0A Telegrammen (11-Bit-Identifier) aus einem Empfangspuffer

CAN2A_SEND FBmV Senden von CAN 2.0A Telegrammen (11-Bit-Identifier)

CAN2B_INFO FBmV Auslesen von Informationen zur CAN 2.0B Kommunikation

CAN2B_REC FBmV Auslesen von CAN 2.0B Telegrammen (29-Bit-Identifier) aus einem Empfangspuffer

CAN2B_SEND FBmV Senden von CAN 2.0B Telegrammen (29-Bit-Identifier)

CANOM_NMT FBmV NMT-Knotenzustände über Netzwerkmanagement steuern

CANOM_NODE_DIAG FBmV Abrufen von Diagnosedaten eines Slaves

CANOM_RES_ERR FBmV Rücksetzen der Fehleranzeigen des Kopplers

CANOM_SDO_READ FBmV Lesen des Wertes eines Objekts in einem Slave

CANOM_SDO_WRITE FBmV Schreiben des Wertes eines Objekts in einem Slave

CANOM_STATE FBmV Auslesen des Zustands des CANopen-Kopplers

CANOM_SYS_DIAG FBmV Anzeigen von Statusübersichten aller Slaves

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 6 CANopen AC500 / Stand: 01.2007

CAN2A_INFO Auslesen von Informationen zur CAN 2.0A Kommunikation

Der Baustein CAN2A_INFO gibt an den Ausgängen Informationen zum Status der CAN 2.0A Kommunikation aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: CANopen_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CAN2A_INFO Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

NUM_SEND Ausgang DWORD Anzahl der gesendeten CAN 2.0A Telegramme

NUM_REC Ausgang DWORD Anzahl der empfangenen CAN 2.0A Telegramme

NUM_REJ Ausgang DWORD Anzahl der verworfenen CAN 2.0A Telegramme

NUM_OWR Ausgang DWORD Anzahl der überschriebenen CAN 2.0A Telegramme

NUM_INV Ausgang DWORD Anzahl der fehlerhaften CAN 2.0A Telegramme

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 7 CANopen AC500 / Stand: 01.2007

Beschreibung

Mit Hilfe des Bausteins CAN2A_INFO können verschiedene Statusinformationen der CAN 2.0A Kommunikation abgerufen werden.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben. Findet der Baustein auf dem angegebenen Steckplatz SLOT einen CAN-Koppler mit konfiguriertem CAN 2.0A Protokoll, wird dies durch DONE = TRUE und ERR = FALSE angezeigt. Die entsprechenden Statusinformationen werden an den Bausteinausgängen ausgegeben.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

NUM_SEND DWORD (number of sent telegrams)

Am Ausgang NUM_SEND wird die Anzahl der gesendeten CAN 2.0A Telegrame angezeigt. Der Wert wird mit der Onlinefunktion "Reset" bzw. der Onlinefunktion "Reset (kalt)" auf 0 zurückgesetzt. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP" hat keinen Einfluss auf den Ausgang. Werte bleiben in diesem Fall erhalten.

NUM_REC DWORD (number of received telegrams)

Am Ausgang NUM_REC wird die Anzahl der empfangenen CAN 2.0A Telegrame angezeigt, unabhängig davon, ob ein entsprechender Puffer über die Steuerungskonfiguration eingerichtet worden ist. Der Wert wird mit der Onlinefunktion "Reset" bzw. der Onlinefunktion "Reset (kalt)" auf 0 zurückgesetzt. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP" hat keinen Einfluss auf den Ausgang. Werte bleiben in diesem Fall erhalten.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 8 CANopen AC500 / Stand: 01.2007

NUM_REJ DWORD (number of rejected telegrams)

Am Ausgang NUM_REJ wird die Anzahl der CAN 2.0A Telegrame angezeigt, die aufgrund des vollen Empfangspuffers verworfen wurden. Der Wert wird mit der Onlinefunktion "Reset" bzw. der Onlinefunktion "Reset (kalt)" auf 0 zurückgesetzt. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP" hat keinen Einfluss auf den Ausgang. Werte bleiben in diesem Fall erhalten. Ob ein ankommendes Telegramm beim vollen Empfangspuffer grundsätzlich verworfen oder der älteste Eintrag des Puffers mit dem neuen Telegramm überschrieben werden soll, wird über die Steuerungskonfiguration eingestellt.

NUM_OWR DWORD (number of overwritten telegrams)

Am Ausgang NUM_OWR wird die Anzahl der CAN 2.0A Telegramme angezeigt, die aufgrund des vollen Empfangspuffers mit einem neu ankommenden Telegramm überschrieben wurden. Der Wert wird mit der Onlinefunktion "Reset" bzw. der Onlinefunktion "Reset (kalt)" auf 0 zurückgesetzt. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP" hat keinen Einfluss auf den Ausgang. Werte bleiben in diesem Fall erhalten. Ob ein ankommendes Telegramm beim vollen Empfangspuffer grundsätzlich verworfen oder der älteste Eintrag des Puffers mit dem neuen Telegramm überschrieben werden soll, wird über die Steuerungskonfiguration eingestellt.

NUM_INV DWORD (number of invalid/unknown telegrams)

Am Ausgang NUM_INV wird die Anzahl der empfangenen CAN 2.0A Telegrame angezeigt, die keinem in der Steuerungskonfiguration definierten Puffer zugeordnet werden konnten. Der Wert wird mit der Onlinefunktion "Reset" bzw. der Onlinefunktion "Reset (kalt)" auf 0 zurückgesetzt. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP" hat keinen Einfluss auf den Ausgang. Werte bleiben in diesem Fall erhalten.

Funktionsaufruf in AWL

CAL Info2a ( EN := Info2a_EN, SLOT := Info2a_SLOT)

LD Info2a.DONE ST Info2a_DONE

LD Info2a.ERR ST Info2a_ERR

LD Info2a.ERNO ST Info2a_ERNO

LD Info2a.NUM_SEND ST Info2a_NUM_SEND

LD Info2a.NUM_REC ST Info2a_NUM_REC

LD Info2a.NUM_REJ ST Info2a_NUM_REJ

LD Info2a.NUM_OWR ST Info2a_NUM_OWR

LD Info2a.NUM_INV ST Info2a_NUM_INV

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 9 CANopen AC500 / Stand: 01.2007

Funktionsaufruf in ST

Info2a ( EN := Info2a_EN, SLOT := Info2a_SLOT);

Info2a_DONE := Info2a.DONE; Info2a_ERR := Info2a.ERR; Info2a_ERNO := Info2a.ERNO; Info2a_NUM_SEND := Info2a.NUM_SEND; Info2a_NUM_REC := Info2a.NUM_REC; Info2a_NUM_REJ := Info2a.NUM_REJ; Info2a_NUM_OWR := Info2a.NUM_OWR; Info2a_NUM_INV := Info2a.NUM_INV;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 10 CANopen AC500 / Stand: 01.2007

CAN2A_REC Auslesen von CAN 2.0A Telegrammen (11-Bit-Identifier) aus einem Empfangspuffer

Über den Baustein CAN2A_REC können beliebige CAN-Telegramme mit 11-Bit-Identifiern nach CAN 2.0A aus einem Empfangspuffer gelesen werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: CANopen_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CAN2A_REC Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

ID Eingang WORD Identifier des Puffers, der gelesen werden soll

DATA Eingang DWORD Adresse, ab der die empfangenen CAN 2.0A Telegramme abgelegt werden sollen (über ADR-Operator)

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

NUM Ausgang WORD Anzahl der CAN 2.0A Telegramme im Puffer des gewählten Identifiers

NUM_REC Ausgang DWORD Anzahl der empfangenen CAN 2.0A Telegramme

NUM_REJ Ausgang DWORD Anzahl der verworfenen CAN 2.0A Telegramme

NUM_OWR Ausgang DWORD Anzahl der überschriebenen CAN 2.0A Telegramme

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 11 CANopen AC500 / Stand: 01.2007

Beschreibung

Mit Hilfe des Bausteins CAN2A_REC können CAN-Telegramme mit 11-Bit-Identifiern nach CAN 2.0A empfangen werden. Es können nur solche Telegramme empfangen werden, deren Identifier zuvor für den Empfang freigeschaltet worden sind. Die Freischaltung der einzelnen Identifier erfolgt mittels Steuerungskonfiguration. Für jeden Identifier ist ein entsprechender Puffer, dessen Göße und die Handhabung beim vollen Puffer festzulegen. Empfangene Telegramme mit nicht freigeschalteten Identifiern werden vom Koppler automatisch verworfen (siehe CAN2A_INFO, Ausgang NUM_INV).

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv und sind die Werte an den Bausteineingängen gültig, werden die im Puffer zwischengespeicherten CAN2A Telegramme nacheinander ausgelesen. Ist ein Telegramm fehlerfrei ausgelesen, wird für die Dauer eines Zyklus DONE = TRUE und ERR = FALSE gesetzt.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

ID WORD (identifier)

Am Eingang ID wird der Identifier der CAN 2.0A Telegramme angegeben, die aus dem Puffer ausgelesen werden sollen. Wurde für den gewählten Identifier kein Puffer über die Steuerungskonfiguration gewählt, wird es über die Ausgänge des Bausteins entsprechend angezeigt.

DATA DWORD (data)

Am Eingang DATA wird die Adresse angegeben, ab der die empfangenen CAN 2.0A Telegramme geschrieben werden sollen. Die Angabe erfolgt in der Regel über den ADR-Operator und sollte auf Variablen vom Typ CAN2A_MESSAGE_TYPE oder CANOpen_MESSAGE_TYPE zeigen.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde ein Telegram gelesen oder wurde der Lesevorgang aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 12 CANopen AC500 / Stand: 01.2007

NUM WORD (number of telegrams)

Am Ausgang NUM wird die Anzahl der CAN 2.0A Telegramme angegeben, die noch nicht aus dem Puffer des gewählten Identifiers ausgelesen wurden. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP", die Onlinefunktion "Reset" bzw. die Onlinefunktion "Reset (kalt)" hat keinen Einfluss auf den Ausgangswert.

NUM_REC DWORD (number of received telegrams)

Am Ausgang NUM_REC wird die Anzahl der CAN 2.0A Telegramme angegeben, die insgesamt in dem Puffer des gewählten Identifiers empfangen wurden. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP", die Onlinefunktion "Reset" bzw. die Onlinefunktion "Reset (kalt)" hat keinen Einfluss auf den Ausgangswert.

NUM_REJ DWORD (number of rejected telegrams)

Am Ausgang NUM_REJ wird die Anzahl der empfangenen CAN 2.0A Telegramme angegeben, die insgesamt aufgrund des vollen Puffers des gewählten Identifieres verworfen wurden. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP", die Onlinefunktion "Reset" bzw. die Onlinefunktion "Reset (kalt)" hat keinen Einfluss auf den Ausgangswert. Ob ein ankommendes Telegramm beim vollen Empfangspuffer grundsätzlich verworfen oder der älteste Eintrag des Puffers mit dem neuen Telegramm überschrieben werden soll, wird über die Steuerungskonfiguration eingestellt.

NUM_OWR DWORD (number of overwritten telegrams)

Am Ausgang NUM_OWR wird die Anzahl der CAN 2.0A Telegramme angegeben, die insgesamt aufgrund des vollen Puffers des gewählten Identifiers mit einem neu ankommenden Telegramm überschrieben wurden. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP", die Onlinefunktion "Reset" bzw. die Onlinefunktion "Reset (kalt)" hat keinen Einfluss auf den Ausgangswert. Ob ein ankommendes Telegramm beim vollen Empfangspuffer grundsätzlich verworfen oder der älteste Eintrag des Puffers mit dem neuen Telegramm überschrieben werden soll, wird über die Steuerungskonfiguration eingestellt.

Funktionsaufruf in AWL

LD Rec2a_DATA ADR ST ADR_Rec2a_DATA

CAL Rec2a ( EN := Rec2a_EN, SLOT := Rec2a_SLOT ID := Rec2a_ID DATA := ADR_Rec2a_DATA)

LD Rec2a.DONE ST Rec2a_DONE

LD Rec2a.ERR ST Rec2a_ERR

LD Rec2a.ERNO ST Rec2a_ERNO

LD Rec2a.NUM ST Rec2a_NUM

LD Rec2a.NUM_REC ST Rec2a_NUM_REC

LD Rec2a.NUM_REJ ST Rec2a_NUM_REJ

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 13 CANopen AC500 / Stand: 01.2007

LD Rec2a.NUM_OWR ST Rec2a_NUM_OWR

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

Rec2a ( EN := Rec2a_EN, SLOT := Rec2a_SLOT, ID := Rec2a_ID, DATA := ADR(Rec2a_DATA));

Rec2a_DONE := Rec2a.DONE; Rec2a_ERR := Rec2a.ERR; Rec2a_ERNO := Rec2a.ERNO; Rec2a_NUM := Rec2a.NUM; Rec2a_NUM_REC := Rec2a.NUM_REC; Rec2a_NUM_REJ := Rec2a.NUM_REJ; Rec2a_NUM_OWR := Rec2a.NUM_OWR;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 14 CANopen AC500 / Stand: 01.2007

CAN2A_SEND Senden von CAN 2.0A Telegrammen (11-Bit-Identifier)

Über den Baustein CAN2A_SEND können beliebige CAN-Telegramme mit 11-Bit-Identifiern nach CAN 2.0A gesendet werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: CANopen_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CAN2A_SEND Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

NUM Eingang BYTE Anzahl der zu sendenden CAN 2.0A Telegramme

DATA Eingang DWORD Adresse, ab der die zu sendenden CAN 2.0A Telegramme abgelegt sind (über ADR-Operator)

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Mit Hilfe des Bausteins CAN2A_SEND können CAN-Telegramme mit 11-Bit-Identifiern nach CAN 2.0A gesendet werden.

CAN2A_SEND übernimmt die Werte an den Eingängen bei einer FALSE->TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE->TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE und ERR = FALSE, ein eventuell aufgetretener Fehler an ERR = TRUE angezeigt.

Der Baustein kann mehrere Telegramme bis zu einer Gesamtlänge von 254 Byte gleichzeitig in einem Vorgang an den Koppler übertragen, der diese dann nacheinander über den Bus sendet. Die maximale Anzahl der Telegramme, die gleichzeitig übertragen werden können, richtet sich damit nach der Summe der Länge der einzelnen Telegramme. Enthalten alle zu sendenden Telegramme lediglich den Header (Identifier, RTR und DLC) (2 Byte) und keine weiteren Daten (Data Length Code DLC = 0), können bis zu 127 Telegramme (2 x 127 = 254) gleichzeitig übertragen werden. Enthalten jedoch alle Telegramme

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 15 CANopen AC500 / Stand: 01.2007

die maximale Anzahl von 8 Byte Daten, können lediglich bis zu 25 Telegramme ((2 + 8) x 25 = 250) gleichzeitig an den Koppler übergeben werden.

EN BOOL (enable)

Bei der Vorgabe einer FALSE ->TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen. Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler am Ausgang ERR und das Ende der Bearbeitung durch DONE = TRUE angezeigt.

Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

NUM BYTE (number)

Am Eingang NUM wird die Anzahl der zu sendenden, ab der Adresse DATA abgelegten gültigen Telegramme, angegeben. Prinzipiell gültige Werte für NUM sind 1 bis 127. Die Obergrenze richtet sich aber nach der Gesamtlänge über alle Telegramme. Diese wird vom Baustein anhand der Data Length Codes (DLC) der einzelnen Telegramme berechnet und darf einen Wert von 254 Byte nicht überschreiten. Andernfalls wird eine Fehlermeldung generiert. In diesem Fall ist eine entsprechend geringere Anzahl der zu sendenden Telegramme so zu wählen, dass die Gesamtlänge den Wert von 254 nicht überschreitet.

DATA DWORD (data)

Am Eingang DATA wird die Adresse der Variablen angegeben, in der die zu sendenden Telegramme abgelegt sind. Die Angabe erfolgt in der Regel über den ADR-Operator.

Die zu sendenden Telegramme müssen von dem in der Bibliothek definierten Datentyp CAN2A_MESSAGE_TYPE bzw. CANopen_MESSAGE_TYPE sein. Soll nur ein Telegramm gesendet werden (NUM = 1), ist eine Einzelvariable ausreichend. Sollen mehrere Telegramme übertragen werden, ist als Variable ein ARRAY [1..X] CAN2A_MESSAGE_TYPE bzw. ein ARRAY [1..X] OF CANopen_MESSAGE_TYPE zu wählen, wobei X mindestens den Wert von NUM haben muss. Am Eingang ADR-Operator ist dann das erste Element des ARRAYs oder das ARRAY direkt (ohne Index) anzugeben.

Der Baustein wertet lediglich die Data Length Codes (DLC) der einzelnen Telegramme aus, um die Gesamtlänge über alle Telegramme zu ermitteln. Darüber hinaus werden die Telegramme nicht weiter interpretiert. Da sowohl die Position im Telegrammheader als auch die Kodierung des Data Length Codes bei allen CAN-Telegrammen identisch sind, können die zu sendenden Telegramme alternativ im allgemeinen Format (CAN2A_MESSAGE_TYPE) oder im CANopen-spezifischen (CANopen_MESSAGE_TYPE) Format angegeben werden.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde bei einem Telegramm der Sendeauftrag beendet oder wurde der er aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 16 CANopen AC500 / Stand: 01.2007

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

Funktionsaufruf in AWL

LD Send2a_DATA ADR ST ADR_Send2a_DATA

CAL Send2a ( EN := Send2a_EN, SLOT := Send2a_SLOT NUM := Send2a_NUM DATA := ADR_Send2a_DATA)

LD Send2a.DONE ST Send2a_DONE

LD Send2a.ERR ST Send2a_ERR

LD Send2a.ERNO ST Send2a_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

Send2a ( EN := Send2a_EN, SLOT := Send2a_SLOT, NUM := Send2a_NUM, DATA := ADR(Send2a_DATA));

Send2a_DONE := Send2a.DONE; Send2a_ERR := Send2a.ERR; Send2a_ERNO := Send2a.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 17 CANopen AC500 / Stand: 01.2007

CAN2B_INFO Auslesen von Informationen zur CAN 2.0B Kommunikation

Der Baustein CAN2B_INFO gibt an den Ausgängen Informationen zum Status der CAN 2.0B Kommunikation aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: CANopen_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CAN2B_INFO Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

NUM_SEND Ausgang DWORD Anzahl der gesendeten CAN 2.0B Telegramme

NUM_REC Ausgang DWORD Anzahl der empfangenen CAN 2.0B Telegramme

NUM_REJ Ausgang DWORD Anzahl der verworfenen CAN 2.0B Telegramme

NUM_OWR Ausgang DWORD Anzahl der überschriebenen CAN 2.0B Telegramme

NUM_INV Ausgang DWORD Anzahl der fehlerhaften CAN 2.0B Telegramme

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 18 CANopen AC500 / Stand: 01.2007

Beschreibung

Mit Hilfe des Bausteins CAN2B_INFO können verschiedene Statusinformationen der CAN 2.0B Kommunikation abgerufen werden.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben. Findet der Baustein auf dem angegebenen Steckplatz SLOT einen CAN-Koppler mit konfiguriertem CAN 2.0B Protokoll, wird dies durch DONE = TRUE und ERR = FALSE angezeigt. Die entsprechenden Statusinformationen werden an den Bausteinausgängen ausgegeben.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

NUM_SEND DWORD (number of sent telegrams)

Am Ausgang NUM_SEND wird die Anzahl der gesendeten CAN 2.0B Telegrame angezeigt. Der Wert wird mit der Onlinefunktion "Reset" bzw. der Onlinefunktion "Reset (kalt)" auf 0 zurückgesetzt. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP" hat keinen Einfluss auf den Ausgang. Werte bleiben in diesem Fall erhalten.

NUM_REC DWORD (number of received telegrams)

Am Ausgang NUM_REC wird die Anzahl der empfangenen CAN 2.0B Telegrame angezeigt, unabhängig davon, ob ein entsprechender Puffer über die Steuerungskonfiguration eingerichtet worden ist. Der Wert wird mit der Onlinefunktion "Reset" bzw. der Onlinefunktion "Reset (kalt)" auf 0 zurückgesetzt. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP" hat keinen Einfluss auf den Ausgang. Werte bleiben in diesem Fall erhalten.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 19 CANopen AC500 / Stand: 01.2007

NUM_REJ DWORD (number of rejected telegrams)

Am Ausgang NUM_REJ wird die Anzahl der CAN 2.0B Telegrame angezeigt, die aufgrund des vollen Empfangspuffers verworfen wurden. Der Wert wird mit der Onlinefunktion "Reset" bzw. der Onlinefunktion "Reset (kalt)" auf 0 zurückgesetzt. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP" hat keinen Einfluss auf den Ausgang. Werte bleiben in diesem Fall erhalten. Ob ein ankommendes Telegramm beim vollen Empfangspuffer grundsätzlich verworfen oder der älteste Eintrag des Puffers mit dem neuen Telegramm überschrieben werden soll, wird über die Steuerungskonfiguration eingestellt.

NUM_OWR DWORD (number of overwritten telegrams)

Am Ausgang NUM_OWR wird die Anzahl der CAN 2.0B Telegramme angezeigt, die aufgrund des vollen Empfangspuffers mit einem neu ankommenden Telegramm überschrieben wurden. Der Wert wird mit der Onlinefunktion "Reset" bzw. der Onlinefunktion "Reset (kalt)" auf 0 zurückgesetzt. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP" hat keinen Einfluss auf den Ausgang. Werte bleiben in diesem Fall erhalten. Ob ein ankommendes Telegramm beim vollen Empfangspuffer grundsätzlich verworfen oder der älteste Eintrag des Puffers mit dem neuen Telegramm überschrieben werden soll, wird über die Steuerungskonfiguration eingestellt.

NUM_INV DWORD (number of invalid/unknown telegrams)

Am Ausgang NUM_INV wird die Anzahl der empfangenen CAN 2.0B Telegrame angezeigt, die keinem in der Steuerungskonfiguration definierten Puffer zugeordnet werden konnten. Der Wert wird mit der Onlinefunktion "Reset" bzw. der Onlinefunktion "Reset (kalt)" auf 0 zurückgesetzt. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP" hat keinen Einfluss auf den Ausgang. Werte bleiben in diesem Fall erhalten.

Funktionsaufruf in AWL

CAL Info2b ( EN := Info2b_EN, SLOT := Info2b_SLOT)

LD Info2b.DONE ST Info2b_DONE

LD Info2b.ERR ST Info2b_ERR

LD Info2b.ERNO ST Info2b_ERNO

LD Info2b.NUM_SEND ST Info2b_NUM_SEND

LD Info2b.NUM_REC ST Info2b_NUM_REC

LD Info2b.NUM_REJ ST Info2b_NUM_REJ

LD Info2b.NUM_OWR ST Info2b_NUM_OWR

LD Info2b.NUM_INV ST Info2b_NUM_INV

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 20 CANopen AC500 / Stand: 01.2007

Funktionsaufruf in ST

Info2b ( EN := Info2b_EN, SLOT := Info2b_SLOT);

Info2b_DONE := Info2b.DONE; Info2b_ERR := Info2b.ERR; Info2b_ERNO := Info2b.ERNO; Info2b_NUM_SEND := Info2b.NUM_SEND; Info2b_NUM_REC := Info2b.NUM_REC; Info2b_NUM_REJ := Info2b.NUM_REJ; Info2b_NUM_OWR := Info2b.NUM_OWR; Info2b_NUM_INV := Info2b.NUM_INV;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 21 CANopen AC500 / Stand: 01.2007

CAN2B_REC Auslesen von CAN 2.0B Telegrammen (29-Bit-Identifier) aus einem Empfangspuffer

Über den Baustein CAN2B_REC können beliebige CAN-Telegramme mit 29-Bit-Identifiern nach CAN 2.0B aus einem Empfangspuffer gelesen werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: CANopen_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CAN2B_REC Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

ID Eingang WORD Identifier des Puffers, der gelesen werden soll

DATA Eingang DWORD Adresse, ab der die empfangenen CAN 2.0B Telegramme abgelegt werden sollen (über ADR-Operator)

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

NUM Ausgang WORD Anzahl der CAN 2.0B Telegramme im Puffer des gewählten Identifiers

NUM_REC Ausgang DWORD Anzahl der empfangenen CAN 2.0B Telegramme

NUM_REJ Ausgang DWORD Anzahl der verworfenen CAN 2.0B Telegramme

NUM_OWR Ausgang DWORD Anzahl der überschriebenen CAN 2.0B Telegramme

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 22 CANopen AC500 / Stand: 01.2007

Beschreibung

Mit Hilfe des Bausteins CAN2B_REC können CAN-Telegramme mit 29-Bit-Identifiern nach CAN 2.0 B empfangen werden. Es können nur solche Telegramme empfangen werden, deren Identifier zuvor für den Empfang freigeschaltet worden sind. Die Freischaltung erfolgt über die Kopplerkonfigurationstool SYCON.net und über die Steuerungskonfiguration der CPU.

Zuerst wird über SYCON.net grundsätzlich der Austausch von CAN 2.0 B Telegrammen im Koppler freigeschaltet. Über einen Akzeptanz-Code und eine Akzeptanz-Maske kann zusätzlich ein ID-Filter eingestellt werden. Der Koppler vergleicht alle 29-Bit-Identifier auf dem Bus mit diesen beiden Einträgen und leitet die ausgefilterten Telegramme an die CPU weiter.

Über die Steuerungskonfiguration der CPU erfolgt dann die Freischaltung der einzelnen Identifier. Für jeden Identifier ist ein entsprechender Puffer, dessen Göße und die Handhabung beim vollen Puffer festzulegen. Empfangene Telegramme mit nicht freigeschalteten Identifiern werden automatisch verworfen (siehe CAN2B_INFO Ausgang NUM_INV).

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv und sind die Werte an den Bausteineingängen gültig, werden die im Puffer zwischengespeicherten CAN2B Telegramme nacheinander einzeln ausgelesen. Ist ein Telegramm fehlerfrei ausgelesen, wird für die Dauer eines Zyklus DONE = TRUE und ERR = FALSE gesetzt.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

ID WORD (identifier)

Am Eingang ID wird der Identifier der CAN 2.0B Telegramme angegeben, die aus dem Puffer ausgelesen werden sollen. Wurde für den gewählten Identifier kein Puffer über die Steuerungskonfiguration gewählt, wird es über die Ausgänge des Bausteins entsprechend angezeigt.

DATA DWORD (data)

Am Eingang DATA wird die Adresse angegeben, ab der die empfangenen CAN 2.0B Telegramme geschrieben werden sollen. Die Angabe erfolgt in der Regel über den ADR-Operator und sollte auf Variablen vom Typ CAN2B_MESSAGE_TYPE zeigen.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde ein Telegram gelesen oder wurde der Lesevorgang aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 23 CANopen AC500 / Stand: 01.2007

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

NUM WORD (number of telegrams)

Am Ausgang NUM wird die Anzahl der CAN 2.0B Telegramme angegeben, die noch nicht aus dem Puffer des gewählten Identifiers ausgelesen wurden. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP", die Onlinefunktion "Reset" bzw. die Onlinefunktion "Reset (kalt)" hat keinen Einfluss auf den Ausgangswert.

NUM_REC DWORD (number of received telegrams)

Am Ausgang NUM_REC wird die Anzahl der CAN 2.0B Telegramme angegeben, die insgesamt in dem Puffer des gewählten Identifiers empfangen wurden. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP", die Onlinefunktion "Reset" bzw. die Onlinefunktion "Reset (kalt)" hat keinen Einfluss auf den Ausgangswert.

NUM_REJ DWORD (number of rejected telegrams)

Am Ausgang NUM_REJ wird die Anzahl der empfangenen CAN 2.0B Telegramme angegeben, die insgesamt aufgrund des vollen Puffers des gewählten Identifieres verworfen wurden. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP", die Onlinefunktion "Reset" bzw. die Onlinefunktion "Reset (kalt)" hat keinen Einfluss auf den Ausgangswert. Ob ein ankommendes Telegramm beim vollen Empfangspuffer grundsätzlich verworfen oder der älteste Eintrag des Puffers mit dem neuen Telegramm überschrieben werden soll, wird über die Steuerungskonfiguration eingestellt.

NUM_OWR DWORD (number of overwritten telegrams)

Am Ausgang NUM_OWR wird die Anzahl der CAN 2.0B Telegramme angegeben, die insgesamt aufgrund des vollen Puffers des gewählten Identifiers mit einem neu ankommenden Telegramm überschrieben wurden. Das Anhalten der SPS über die Tastatur oder die Onlinefunktion "STOP", die Onlinefunktion "Reset" bzw. die Onlinefunktion "Reset (kalt)" hat keinen Einfluss auf den Ausgangswert. Ob ein ankommendes Telegramm beim vollen Empfangspuffer grundsätzlich verworfen oder der älteste Eintrag des Puffers mit dem neuen Telegramm überschrieben werden soll, wird über die Steuerungskonfiguration eingestellt.

Funktionsaufruf in AWL

LD Rec2b_DATA ADR ST ADR_Rec2b_DATA

CAL Rec2b ( EN := Rec2b_EN, SLOT := Rec2b_SLOT ID := Rec2b_ID DATA := ADR_Rec2b_DATA)

LD Rec2b.DONE ST Rec2b_DONE

LD Rec2b.ERR ST Rec2b_ERR

LD Rec2b.ERNO ST Rec2b_ERNO

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 24 CANopen AC500 / Stand: 01.2007

LD Rec2b.NUM ST Rec2b_NUM

LD Rec2b.NUM_REC ST Rec2b_NUM_REC

LD Rec2b.NUM_REJ ST Rec2b_NUM_REJ

LD Rec2b.NUM_OWR ST Rec2b_NUM_OWR

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

Rec2b ( EN := Rec2b_EN, SLOT := Rec2b_SLOT, ID := Rec2b_ID, DATA := ADR(Rec2b_DATA));

Rec2b_DONE := Rec2b.DONE; Rec2b_ERR := Rec2b.ERR; Rec2b_ERNO := Rec2b.ERNO; Rec2b_NUM := Rec2b.NUM; Rec2b_NUM_REC := Rec2b.NUM_REC; Rec2b_NUM_REJ := Rec2b.NUM_REJ; Rec2b_NUM_OWR := Rec2b.NUM_OWR;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 25 CANopen AC500 / Stand: 01.2007

CAN2B_SEND Senden von CAN 2.0B Telegrammen (29-Bit-Identifier)

Über den Baustein CAN2B_SEND können beliebige CAN-Telegramme mit 29-Bit-Identifiern nach CAN 2.0B gesendet werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: CANopen_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CAN2B_SEND Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

DATA Eingang DWORD Adresse, ab der die zu sendenden CAN 2.0B Telegramme abgelegt sind (über ADR-Operator)

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Mit Hilfe des Bausteins CAN2B_SEND können CAN-Telegramme mit 29-Bit-Identifiern nach CAN 2.0B gesendet werden.

CAN2B_SEND übernimmt die Werte an den Eingängen bei einer FALSE->TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE->TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE und ERR = FALSE, ein eventuell aufgetretener Fehler an ERR = TRUE angezeigt.

Pro Sendevorgang kann jeweils nur 1 CAN 2.0B gesendet werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 26 CANopen AC500 / Stand: 01.2007

EN BOOL (enable)

Bei der Vorgabe einer FALSE ->TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen. Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler am Ausgang ERR und das Ende der Bearbeitung durch DONE = TRUE angezeigt.

Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

DATA DWORD (data)

Das zu sendende Telegramm bzw. die Variable muss von dem in der Bibliothek definierten Datentyp CAN2B_MESSAGE_TYPE sein.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde bei einem Telegramm der Sendeauftrag beendet oder wurde der er aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 27 CANopen AC500 / Stand: 01.2007

Funktionsaufruf in AWL

LD Send2b_DATA ADR ST ADR_Send2b_DATA

CAL Send2b ( EN := Send2b_EN, SLOT := Send2b_SLOT DATA := ADR_Send2b_DATA)

LD Send2b.DONE ST Send2b_DONE

LD Send2b.ERR ST Send2b_ERR

LD Send2b.ERNO ST Send2b_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

Send2b ( EN := Send2b_EN, SLOT := Send2b_SLOT, DATA := ADR(Send2b_DATA));

Send2b_DONE := Send2b.DONE; Send2b_ERR := Send2b.ERR; Send2b_ERNO := Send2b.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 28 CANopen AC500 / Stand: 01.2007

CANOM_NMT NMT-Knotenzustände über Netzwerkmanagement steuern

Über den Baustein CANOM_NMT kann der Betriebszustand eines einzelnen oder aller Slaves gesteuert werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: CANopen_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CANOM_NMT Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

NODE Eingang BYTE Knotenadresse des betreffenden Slaves

NMT_CMD Eingang BYTE NMT-Kommando gemäß CAL-Profil

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Mit Hilfe des Bausteins CANOM_NMT kann der Betriebszustand eines einzelnen oder aller Slaves gezielt geändert werden.

CANOM_NMT übernimmt die Werte an den Eingängen bei einer FALSE->TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE->TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE angezeigt.

Üblicherweise wird die Steuerung der Betriebszustände der Slaves der automatischen Steuerung durch den CANopen-Koppler als NMT-Master überlassen. In speziellen Anwendungsfällen kann es aber erforderlich sein, den Zustand eines Slaves 'manuell' gezielt zu ändern. Diese Funktionalität kann durch den Baustein CANOM_NMT realisiert werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 29 CANopen AC500 / Stand: 01.2007

EN BOOL (enable)

Bei der Vorgabe einer FALSE ->TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen. Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler an Ausgängen ERR/ERNO und das Ende der Bearbeitung durch DONE = TRUE angezeigt.

Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

NODE BYTE (node)

Am Eingang NODE wird die Knotenadresse des Slaves angegeben, dessen Betriebszustand beeinflusst werden soll. Mit einem Wert an NODE von 1 bis 127 kann gezielt ein einzelner Slave mit der entsprechenden Knotenadresse angesprochen werden. Ist NODE = 0, wird das Kommando an alle Slaves gesendet.

NMT_CMD BYTE (NMT command)

Am Eingang NMT_CMD wird das zu sendende NMT-Kommando angegeben. Folgende NMT-Kommandos sind definiert:

NMT Command Bedeutung

1 Start Remote Node, Slave starten

2 Stop Remote Node, Slave stoppen

128 Enter Pre-Operational, Slave in den Pre-Operational-Modus bringen

129 Reset Node, Slave zurücksetzen

130 Reset Communication, Kommunikation zurücksetzen

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde die Anforderung beendet oder die Bearbeitung des Bausteins aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 30 CANopen AC500 / Stand: 01.2007

Funktionsaufruf in AWL

CAL Nmt ( EN := Nmt_EN, SLOT := Nmt_SLOT NODE := Nmt_NODE NMT_CMD := Nmt_NMT_CMD)

LD Nmt.DONE ST Nmt_DONE

LD Nmt.ERR ST Nmt_ERR

LD Nmt.ERNO ST Nmt_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

Nmt( EN := Nmt_EN, SLOT := Nmt_SLOT, NODE := Nmt_NODE, NMT_CMD := Nmt_NMT_CMD);

Nmt_DONE := Nmt.DONE; Nmt_ERR := Nmt.ERR; Nmt_ERNO := Nmt.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 31 CANopen AC500 / Stand: 01.2007

CANOM_NODE_DIAG Abrufen von Diagnosedaten eines Slaves

Der Baustein CANOM_NODE_DIAG liest die Diagnosedaten eines Slaves aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: CANopen_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CANOM_NODE_DIAG Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

NODE Eingang BYTE Knotenadresse des betreffenden Slaves

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

STATE_1 Ausgang NODESTATUS_1_TYPE Nodestatus_1, Slave-Diagnose

INFO Ausgang WORD Zusatzinformationen nach CiA-Spezifikation aus dem Objekt 16#1000

PROFILE Ausgang WORD Profilnummer nach CiA-Spezifikation aus dem Objekt 16#1000

STATE Ausgang BYTE Betriebszustand des Slaves

ONL_ERR Ausgang BYTE Online-Fehler des Slaves

NUM_EMCY Ausgang BYTE Anzahl der Emergency-Nachrichten in EMCY_DATA

EMCY_DATA Ausgang ARRAY[1...5] OF CANOM_EMCY_TYPE

Inhalte der Emergency-Nachrichten

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 32 CANopen AC500 / Stand: 01.2007

Beschreibung

Mit Hilfe des Bausteins CANOM_NODE_DIAG können Diagnosedaten zu einzelnen Slaves abgerufen werden.

CANOM_NODE_DIAG übernimmt die Werte an den Eingängen bei jeder FALSE->TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE->TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE angezeigt.

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen. Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler an den Ausgängen ERR und ERNO und das Ende der Bearbeitung durch DONE = TRUE angezeigt.

Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

NODE BYTE (node)

Am Eingang Node wird die Knotennummer des Slaves angegeben, dessen Diagnosedaten angefordert werden sollen.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde die Anforderung beendet oder die Bearbeitung des Bausteins aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 33 CANopen AC500 / Stand: 01.2007

STATE_1 CANOM_NODESTATUS_1_TYPE (state 1)

Am Ausgang STATE_1 werden verschiedene Bits in Form einer Struktur vom Typ CANOM_NODESTATUS_1_TYPE ausgegeben, die Fehlerzustände des Slaves anzeigen. STATE_1 ist nur gültig, wenn DONE = TRUE und ERR = FALSE.

Der Aufbau der Struktur vom Typ CANOM_NODESTATUS_1_TYPE ist in der CANopen-Bibliothek definiert und wird weiter unten erläutert.

INFO WORD (info)

Am Ausgang INFO werden Zusatzinformationen nach CiA-Spezifikation aus dem Object 16#1000 ausgegeben.

PROFILE WORD (profile)

Am Ausgang PROFILE wird die Profilenummer nach CiA-Spezifikation aus dem Object 16#1000 ausgegeben.

STATE BYTE (state)

Am Ausgang STATE wird der aktuelle Betriebszustand des betreffenden Slaves ausgegeben. STATE ist nur gültig, wenn DONE = TRUE und ERR = FALSE

Folgende Tabelle zeigt die möglichen Werte von STATE und deren Bedeutung entsprechend CANopen-Spezifikation.

STATE Bedeutung

1 Disconnected

2 Connecting

3 Preparing

4 Prepared

5 Operational

127 Pre-Operational

ONL_ERR BYTE (online error)

Am Ausgang ONL_ERR wird ein Wert ausgegeben, der eventuell vorliegende Kommunikationsfehler zwischen dem Master-Koppler und dem Slave beschreibt. ONL_ERR ist nur gültig, wenn DONE = TRUE und ERR = FALSE.

Die Fehlerkennungen in ONL_ERR entsprechen denen des Ausgangs CANOM_ERR.EVENT des Bausteins CANOM_STATE und sind der in der Beschreibung zu diesem Baustein enthaltenen Tabelle zu entnehmen.

NUM_EMCY BYTE (number of emergency telegrams)

Am Ausgang NUM_EMCY wird die Anzahl der in EMCY_DATA ausgegebenen gültigen Emergency-Nachrichten des Slaves entsprechend der CANopen-Spezifikation ausgegeben. Je Slave können bis zu 5 Emergency-Nachrichten im Koppler zwischengespeichert werden.

NUM_EMCY ist nur gültig, wenn DONE = TRUE und ERR = FALSE.

EMCY_DATA ARRAY[1...5] OF CANOM_EMCY_TYPE (emergency data)

Am Ausgang EMCY_DATA werden bis zu 5 zwischengespeicherte Emergency-Nachrichten des Slaves ausgegeben. Die Anzahl der gültigen Nachrichten wird in NUM_EMCY ausgegeben. Der Aufbau der Struktur vom Typ CANOM_EMCY_TYPE ist in der CANopen-Bibliothek definiert wird weiter unten erläutert. EMCY_DATA ist nur gültig, wenn DONE = TRUE und ERR = FALSE.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 34 CANopen AC500 / Stand: 01.2007

Funktionsaufruf in AWL

CAL NodeDiag ( EN := NodeDiag_EN, SLOT := NodeDiag_SLOT NODE := NodeDiag_NODE

LD NodeDiag.DONE ST NodeDiag_DONE

LD NodeDiag.ERR ST NodeDiag_ERR

LD NodeDiag.ERNO ST NodeDiag_ERNO

LD NodeDiag.STATE_1 ST NodeDiag_STATE_1

LD NodeDiag.INFO ST NodeDiag_INFO

LD NodeDiag.PROFILE ST NodeDiag_PROFILE

LD NodeDiag.STATE ST NodeDiag_STATE

LD NodeDiag.ONL_ERR ST NodeDiag_ONL_ERR

LD NodeDiag.NUM_EMCY ST NodeDiag_NUM_EMCY

LD NodeDiag.EMCY_DATA ST NodeDiag_EMCY_DATA

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

NodeDiag( EN := NodeDiag_EN, SLOT := NodeDiag_SLOT, NODE := NodeDiag_NODE;

NodeDiag_DONE := NodeDiag.DONE; NodeDiag_ERR := NodeDiag.ERR; NodeDiag_ERNO := NodeDiag.ERNO; NodeDiag_STATE_1 := NodeDiag.STATE_1; NodeDiag_INFO := NodeDiag.INFO; NodeDiag_PROFILE := NodeDiag.PROFILE; NodeDiag_STATE := NodeDiag.STATE; NodeDiag_ONL_ERR := NodeDiag.ONL_ERR; NodeDiag_NUM_EMCY := NodeDiag.NUM_EMCY; NodeDiag_EMCY_DATA := NodeDiag.EMCY_DATA;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 35 CANopen AC500 / Stand: 01.2007

STATE_1 CANOM_NODESTATUS_1_TYPE

Am Ausgang STAT_1 des Bausteins CANOM_NODE_DIAG werden verschiedene Diagnosebit als Struktur vom Typ CANOM_NODESTATUS_1_TYPE angezeigt. Die Struktur CANOM_NODESTATUS_1_TYPE ist in der CANopen-Bibliothek wie folgt definiert:

TYPE CANOM_NODESTATUS_1_TYPE: STRUCT NO_RESPONSE: BOOL; EMCY_OVF: BOOL; PRM_FAULT: BOOL; GUARD_ACT: BOOL; reserved1: BOOL; reserved2: BOOL; reserved3: BOOL; DEACTIVATED: BOOL; END_STRUCT END_TYPE

NO_RESPONSE BOOL (no response)

Ist dieses Bit gesetzt, antwortet der Slave mit der am Bausteineingang NODE angegebenen Knotennummer nicht auf die Anforderungen des Masters. Im Normalfall sollte NO_RESPONSE = FALSE sein.

EMCY_OVF BOOL (emergency overflow)

Dieses Bit wird vom Koppler gesetzt, wenn von dem angesprochenen Slave mehr Emergency-Nachrichten empfangen wurden, als zwischengespeichert werden können (siehe Bausteinausgänge NUM_EMCY und EMCY_DATA).

PRM_FAULT BOOL (parameter fault)

Dieses Bit wird gesetzt, wenn die Soll-Konfiguration des Slaves im Master von der tatsächlichen Ist-Konfiguration des Slaves abweicht.

GUARD_ACT BOOL (guarding active)

Der Koppler setzt dieses Bit, wenn das Node-Guarding-Protokoll zu diesem Slave aktiv ist. Dabei handelt es sich lediglich um eine Statusanzeige. Das aktive Node-Guarding-Protokoll zwischen dem Master und dem Slave ist nicht gleichbedeutend mit einem Node-Guarding-Fehler.

reserved1 BOOL

reserved2 BOOL

reserved3 BOOL

Diese Bits sind reserviert und werden zur Zeit nicht verwendet.

DEACTIVATED BOOL (deactivated)

Dieses Bit ist auf TRUE gesetzt, wenn der Slave in den Konfigurationsdaten des Masters deaktiviert ist und nicht bearbeitet wird.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 36 CANopen AC500 / Stand: 01.2007

EMCY_DATA CANOM_EMCY_TYPE

Am Ausgang EMCY_DATA werden die bis zu 5 (siehe NUM_EMCY) zuletzt empfangenen Emergency-Nachrichten des Slaves angezeigt. EMCY_DATA besteht aus einem ARRAY [1..5] OF CANOM_EMCY_TYPE. Der Datentyp CANOM_EMCY_TYPE entspricht dem Format des im CANopen-Kommunikationsprofil beschriebenen Emergency-Telegramms und ist in der CANopen-Bibliothek wie folgt definiert:

TYPE CANOM_EMCY_TYPE: STRUCT ERROR_CODE: WORD; ERROR_REG: BYTE; ERROR_DATA: ARRAY[1...5] OF BYTE; END_STRUCT END_TYPE

ERROR_CODE WORD (error code)

Für das Emergency-Objekt sind im CANopen-Kommunikationsprofil die in der folgenden Tabelle beschriebenen Emergency Error Codes definiert.

Emergency Erroe Code Bedeutung / Fehlerursache

dezimal hexadezimal

00000...00255 0000...00FF Reset-Fehler oder kein Fehler

04096...04351 1000...10FF Allgemeiner Fehler

08192...08447 2000...20FF Stromfehler

08448...08703 2100...21FF - auf der Eingangsseite des Gerätes

08704...08959 2200...22FF - im Gerät selbst

08960...09215 2300...23FF - auf der Ausgangsseite des Gerätes

12288...12543 3000...30FF Spannungsfehler

12544...12799 3100...31FF - in der Versorgungsspannung

12800...13055 3200...32FF - im Gerät selbst

13056...13311 3300...33FF - auf der Ausgangsseite des Gerätes

16384...16639 4000...40FF Temperaturfehler

16640...16895 4100...41FF - Umgebungstemperatur

16896...17151 4200...42FF - Gerätetemperatur

20480...20735 5000...50FF Geräte-Hardware-Fehler

24576...24831 6000...60FF Geräte-Software-Fehler

24832...25087 6100...61FF - geräteinterne Software

25088...25343 6200...62FF - Anwendersoftware

25344...25599 6300...63FF Daten

28672...28927 7000...70FF Fehler in Zusatzmodulen

32768...33023 8000...80FF - Überwachung

33024...33279 8100...81FF - Kommunikation

36864...37119 9000...90FF Externer Fehler

61440...61695 F000...F0FF Fehler zusätzlicher Funktionen

65280...65535 FF00...FFFF Gerätespezifische Fehler

ERROR_REG BYTE (error register)

Die Variable ERROR_REG zeigt den Wert des Error Register (Objekt 1001 hex) des Slaves an. Dieser Wert wird vom Slave im Rahmen der Emergency-Nachricht mitgesendet.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 37 CANopen AC500 / Stand: 01.2007

ERROR_DATA ARRAY[1...5] OF BYTE (error data)

In ERROR_DATA werden gegebenenfalls vom Slave im Rahmen der Emergency-Nachricht übertragene herstellerspezifische Fehlerinformationen ausgegeben. Die Bedeutung dieser Daten ist der jeweiligen Gerätebeschreibung zu entnehmen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 38 CANopen AC500 / Stand: 01.2007

CANOM_RES_ERR Rücksetzen der Fehleranzeigen des Kopplers

Über den Baustein CANOM_RES_ERR können verschiedene interne Fehleranzeigen und -zähler des Kopplers zurückgesetzt werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: CANopen_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CANOM_RES_ERR Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Mit Hilfe des Bausteins CANOM_RES_ERR können folgende der über den Baustein CANOM_STAT ausgegebenen interne Fehleranzeigen und -zähler des Kopplers zurückgesetzt werden:

• STATE_BITS.EVENT

• STATE_BITS.TIMEOUT

• BUS_ERR

• BUS_OFF

• TOUT_ERR

• LOST_REC

Zur Erläuterung der Fehleranzeigen siehe Bausteinbeschreibung CANOM_STAT.

Der Rücksetzvorgang wird über eine FALSE->TRUE-Flanke am Eingang EN ausgelöst.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 39 CANopen AC500 / Stand: 01.2007

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen. Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler an den Ausgängen ERR und ERNO und das Ende der Bearbeitung durch DONE = TRUE angezeigt.

Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde die Anforderung beendet oder die Bearbeitung des Bausteins aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

Funktionsaufruf in AWL

CAL ResErr ( EN := ResErr_EN, SLOT := ResErr_SLOT)

LD ResErr.DONE ST ResErr_DONE

LD ResErr.ERR ST ResErr_ERR

LD ResErr.ERNO ST ResErr_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 40 CANopen AC500 / Stand: 01.2007

Funktionsaufruf in ST

ResErr( EN := ResErr_EN, SLOT := ResErr_SLOT);

ResErr_DONE := ResErr.DONE; ResErr_ERR := ResErr.ERR; ResErr_ERNO := ResErr.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 41 CANopen AC500 / Stand: 01.2007

CANOM_SDO_READ Lesen des Wertes eines Objektes in einem Slave

Mit Hilfe des Bausteins CANOM_SDO_READ können Service-Daten-Objekte (SDOs) einzeln aus einem Slave gelesen werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: CANopen_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CANOM_SDO_READ Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

NODE Eingang BYTE Knotenadresse des betreffenden Slaves

OBJ_IDX Eingang WORD Objekt-Index des zu lesenden Objektes

SUB_IDX Eingang BYTE Sub-Index des zu lesenden Objektes

DATA Eingang DWORD Adresse, ab der die gelesenen Daten abgelegt werden sollen (über ADR-Operator)

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

SDO_ERR Ausgang DWORD SDO-Abort-Fehlermeldung des Slaves

DATA_LEN Ausgang BYTE Länge der gelesenen Daten in Byte

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 42 CANopen AC500 / Stand: 01.2007

Beschreibung

Mit Hilfe des Bausteins CANOM_SDO_READ können Service-Daten-Objekte (SDOs) aus einem Slave gelesen werden.

CANOM_SDO_READ übernimmt die Werte an den Eingängen bei einer FALSE->TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE->TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE angezeigt.

Das CANopen Objektmodell ist in den Spezifikationen des Kommunikationsprofils und der Geräteprofile festgelegt (siehe dazu auch Systemtechnik der CANopen-Koppler). Darüber hinaus werden gerätespezifische Objekte in der jeweiligen Gerätebeschreibung des Slaves erläutert.

Einige Objekte müssen standardmäßig in jedem CANopen-Gerät vorhanden sein. Auf diese Standard-Objekte wird üblicherweise nicht aus einem Anwenderprogramm heraus im laufenden Betrieb zugegriffen, obwohl dies prinzipiell möglich ist. Die Zugriffe beschränken sich meist auf optionale zusätzliche Objekte bzw. deren Werte. Diese erweiterten Attribute eines Slaves können in SYCON.net über Gerätekonfiguration / SDO Tabelle im CANopen Master eingesehen werden (siehe auch Dokumentaion des Feldbuskonfigurators DTM für CANopen Geräte). Diese Ansicht zeigt eine Liste der aus der EDS-Datei entnommenen vordefinierten Objekte des jeweiligen Slaves sowie eine Übersicht über diejenigen Standard-Objekte, die bei der Startup-Sequenz des Knotens automatisch vom Master geschrieben werden. Jeder Eintrag enthält den laufenden Objekt-Index, den Sub-Index, eine Beschreibung des Parameters, dessen Standard- bzw. eingestellten Wert, sowie die zulässigen Zugriffsarten (Lesen/Schreiben).

Diese Informationen können bei der Verwendung eines Funktionsblock des Typs CANOM_SDO_READ genutzt werden, um die gewünschte OBJ_IDX und SUB_IDX auszuwählen.

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen. Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler an den Ausgängen ERR und ERNO und das Ende der Bearbeitung durch DONE = TRUE angezeigt.

Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet. Da die Ausführung des Bausteins einen Buszugriff erfordert, stehen die Daten frühestens im Folgezyklus nach der Aktivierung des Bausteins bereit.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

NODE BYTE (node)

Am Eingang NODE wird die Knotenadresse des Slaves angegeben, von dem der Wert eines Objektes angefordert werden soll.

OBJ_IDX WORD (object index)

Am Eingang OBJ_IDX wird der Objekt-Index des zu lesenden Objektes im Objektverzeichnis des Slaves angegeben (vergleiche Eintrag Obj. Idx. in der Auflistung Gerätekonfiguration / SDO Tabelle im SYCON.net).

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 43 CANopen AC500 / Stand: 01.2007

SUB_IDX BYTE (subject index)

Am Eingang SUB_IDX wird der Sub-Index des zu lesenden Objektes im Objektverzeichnis des Slaves angegeben (vergleiche Eintrag Sub. Idx. in der Auflistung Gerätekonfiguration / SDO Tabelle im SYCON.net).

DATA DWORD (data)

Am Eingang DATA wird die Adresse der Variablen, in der die empfangenen Objekt-Daten abgelegt werden sollen, über den ADR-Operator angegeben. Über den ADR-Operator kann eine Variable beliebigen Datenformats entsprechend dem Format des Objektes am Eingang DATA angegeben werden. Es ist zwingend erforderlich, dass die Größe der Variablen (z. B. ARRAY) ausreicht, um die Menge der gelesenen Daten aufnehmen zu können. Die empfangenen Daten sind nur gültig, wenn DONE = TRUE, ERR = FALSE und DATA_LEN > 0.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde die Anforderung beendet oder die Bearbeitung des Bausteins aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

Wurde die SDO-Nachricht vom Slave mit einer Abort-Message beantwortet, wird dies über ERNO = 6003 hex (24579 dez) angezeigt. Gründe hierfür sind oftmals ein ungültiger Objekt-Index bzw. Sub-Index oder das Fehlen der erforderlichen Zugriffsrechte. Der vom Slave in diesem Fall übertragene Fehlercode wird dann zusätzlich an SDO_ERR ausgegeben.

SDO_ERR DWORD (SDO error)

Wurde die SDO-Nachricht vom Slave mit einer Abort-Message beantwortet, wird der übertragene Fehlercode an SDO_ERR ausgegeben. Der an SDO_ERR ausgegebene Wert ist nur gültig, wenn DONE = TRUE, ERR = TRUE und ERNO = 6003hex (24579dez) ist.

DATA_LEN BYTE (data length)

Am Ausgang DATA_LEN wird nach der erfolgreichen Ausführung des Vorgangs die Länge der empfangenen Objekt-Daten in Byte angezeigt. Da die Ausführung des Bausteins einen Buszugriff erfordert, stehen die Daten frühestens im Folgezyklus nach der Aktivierung des Bausteins bereit. Der Wert des Ausgangs ist nur gültig, wenn DONE = TRUE, und ERR = FALSE.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 44 CANopen AC500 / Stand: 01.2007

Funktionsaufruf in AWL

LD SdoRead_DATA ADR ST ADR_SdoRead_DATA

CAL SdoRead ( EN := SdoRead_EN, SLOT := SdoRead_SLOT NODE := SdoRead_NODE OBJ_IDX := SdoRead_OBJ_IDX SUB_IDX := SdoRead_SUB_IDX DATA := ADR_SdoRead_DATA)

LD SdoRead.DONE ST SdoRead_DONE

LD SdoRead.ERR ST SdoRead_ERR

LD SdoRead.ERNO ST SdoRead_ERNO

LD SdoRead.SDO_ERR ST SdoRead_SDO_ERR

LD SdoRead.DATA_LEN ST SdoRead_DATA_LEN

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

SdoRead ( EN := SdoRead_EN, SLOT := SdoRead_SLOT, NODE := SdoRead_NODE, OBJ_IDX := SdoRead_OBJ_IDX SUB_IDX := SdoRead_SUB_IDX DATA := ADR(SdoRead_DATA);

SdoRead_DONE := SdoRead.DONE; SdoRead_ERR := SdoRead.ERR; SdoRead_ERNO := SdoRead.ERNO; SdoRead_SDO_ERR := SdoRead.SDO_ERR; SdoRead_DATA_LEN := SdoRead.DATA_LEN;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 45 CANopen AC500 / Stand: 01.2007

CANOM_SDO_WRITE Schreiben des Wertes eines Objektes in einem Slave

Mit Hilfe des Bausteins CANOM_SDO_WRITE können Service-Daten-Objekte (SDOs) einzeln in einen Slave geschrieben werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: CANopen_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CANOM_SDO_WRITE Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

NODE Eingang BYTE Knotenadresse des betreffenden Slaves

OBJ_IDX Eingang WORD Objekt-Index des zu schreibenden Objektes

SUB_IDX Eingang BYTE Sub-Index des zu schreibenden Objektes

DATA Eingang DWORD Adresse, ab der die geschriebenen Daten abgelegt werden sollen (über ADR-Operator)

DATA_LEN Eingang BYTE Länge der zu schreibenden Daten in Byte

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

SDO_ERR Ausgang DWORD SDO-Abort-Fehlermeldung des Slaves

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 46 CANopen AC500 / Stand: 01.2007

Beschreibung

Mit Hilfe des Bausteins CANOM_SDO_WRITE können Service-Daten-Objekte (SDOs) eines Slave geschrieben werden.

CANOM_SDO_WRITE übernimmt die Werte an den Eingängen bei einer FALSE->TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE->TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE angezeigt.

Das CANopen Objektmodell ist in den Spezifikationen des Kommunikationsprofils und der Geräteprofile festgelegt (siehe dazu auch Systemtechnik der CANopen-Koppler). Darüber hinaus werden gerätespezifische Objekte in der jeweiligen Gerätebeschreibung des Slaves erläutert.

Einige SDOs müssen standardmäßig in jedem CANopen-Gerät vorhanden sein. Auf diese Standard-Objekte wird üblicherweise nicht aus einem Anwenderprogramm heraus im laufenden Betrieb zugegriffen, obwohl dies prinzipiell möglich ist. Die Zugriffe beschränken sich meist auf optionale zusätzliche Objekte bzw. deren Werte. Diese erweiterten Attribute eines Slaves können in SYCON.net über Gerätekonfiguration / SDO Tabelle im CANopen Master eingesehen werden (siehe auch Dokumentaion des Feldbuskonfigurators DTM für CANopen Geräte). Diese Ansicht zeigt eine Liste der aus der EDS-Datei entnommenen vordefinierten Objekte des jeweiligen Slaves sowie eine Übersicht über diejenigen Standard-Objekte, die bei der Startup-Sequenz des Knotens automatisch vom Master geschrieben werden. Jeder Eintrag enthält den laufenden Objekt-Index, den Sub-Index, eine Beschreibung des Parameters, dessen Standard- bzw. eingestellten Wert, sowie die zulässigen Zugriffsarten (Lesen/Schreiben). Diese Informationen können bei der Verwendung eines Funktionsblock des Typs CANOM_SDO_WRITE genutzt werden, um die gewünschte OBJ_IDX und SUB_IDX auszuwählen.

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen. Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler an den Ausgängen ERR und ERNO und das Ende der Bearbeitung durch DONE = TRUE angezeigt.

Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

NODE BYTE (node)

Am Eingang NODE wird die Knotenadresse des Slaves angegeben, an die der Wert eines Objektes geschrieben werden soll.

OBJ_IDX WORD (object index)

Am Eingang OBJ_IDX wird der Objekt-Index des zu schreibenden Objektes im Objektverzeichnis des Slaves angegeben (vergleiche Eintrag Obj. Idx. in der Auflistung Gerätekonfiguration / SDO Tabelle im SYCON.net).

SUB_IDX BYTE (subject index)

Am Eingang SUB_IDX wird der Sub-Index des zu schreibenden Objektes im Objektverzeichnis des Slaves angegeben (vergleiche Eintrag Sub. Idx. in der Auflistung Gerätekonfiguration / SDO Tabelle im SYCON.net).

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 47 CANopen AC500 / Stand: 01.2007

DATA DWORD (data)

Am Eingang DATA wird die Adresse der Variablen, in der die zu sendenden Objekt-Daten abgelegt sind, über den ADR-Operator angegeben. Über den ADR-Operator kann eine Variable beliebigen Datenformats entsprechend dem Format des Objektes am Eingang DATA angegeben werden.

DATA_LEN BYTE (data length)

Am Eingang DATA_LEN wird die Länge der in der Variablen an Adresse DATA abgelegten zu sendenden Daten in Byte angegeben. Die Angabe muss mit der Größe des zu beschreibenden Objektes übereinstimmen. Die Datenlänge darf maximal 247 Byte betragen.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde die Anforderung beendet oder die Bearbeitung des Bausteins aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

Wurde die SDO-Nachricht vom Slave mit einer Abort-Message beantwortet, wird dies über ERR = 6003hex (24579dez) angezeigt. Gründe hierfür sind oftmals ein ungültiger Objekt-Index bzw. Sub-Index oder das Fehlen der erforderlichen Zugriffsrechte. Der vom Slave in diesem Fall übertragene Fehlercode wird dann zusätzlich an SDO_ERR ausgegeben.

SDO_ERR DWORD (SDO error)

Wurde die SDO-Nachricht vom Slave mit einer Abort-Message beantwortet, wird der übertragene Fehlercode an SDO_ERR ausgegeben. Der an SDO_ERR ausgegebene Wert ist nur gültig, wenn DONE = TRUE, ERR = TRUE und ERNO = 6003hex (24579dez) ist.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 48 CANopen AC500 / Stand: 01.2007

Funktionsaufruf in AWL

LD SdoWrite_DATA ADR ST ADR_SdoWrite_DATA

CAL SdoWrite ( EN := SdoWrite_EN, SLOT := SdoWrite_SLOT NODE := SdoWrite_NODE OBJ_IDX := SdoWrite_OBJ_IDX SUB_IDX := SdoWrite_SUB_IDX DATA := ADR_SdoWrite_DATA DATA_LEN := ADR_SdoWrite_DATA_LEN)

LD SdoWrite.DONE ST SdoWrite_DONE

LD SdoWrite.ERR ST SdoWrite_ERR

LD SdoWrite.ERNO ST SdoWrite_ERNO

LD SdoWrite.SDO_ERR ST SdoWrite_SDO_ERR

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

SdoWrite ( EN := SdoWrite_EN, SLOT := SdoWrite_SLOT, NODE := SdoWrite_NODE, OBJ_IDX := SdoWrite_OBJ_IDX, SUB_IDX := SdoWrite_SUB_IDX, DATA := ADR(SdoWrite_DATA, DATA_LEN := ADR(SdoWrite_DATA_LEN);

SdoWrite_DONE := SdoWrite.DONE; SdoWrite_ERR := SdoWrite.ERR; SdoWrite_ERNO := SdoWrite.ERNO; SdoWrite_SDO_ERR := SdoWrite.SDO_ERR;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 49 CANopen AC500 / Stand: 01.2007

CANOM_STATE Auslesen des Zustands des CANopen-Kopplers

CANOM_STATE gibt den Status eines CANopen-Kopplers aus. An den Ausgängen werden Informationen über den Zustand der Kommunikation sowie Fehlerereignisse ausgegeben.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: CANopen_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CANOM_STATE Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

STATE_BITS Ausgang CANOM_STATE_BITS_TYPE Atypische Kommunikationszustände

CANOM_STATE Ausgang BYTE Allgemeiner Zustand des CANopen-Masters

CANOM_ERR Ausgang CANOM_COM_ERR_TYPE Kommunikationsfehler

BUS_ERR Ausgang WORD Anzahl Busstörungen

BUS_OFF Ausgang WORD Anzahl Busausfälle

TOUT_ERR Ausgang WORD Anzahl verworfener gesendeter CAN-Nachrichten

LOST_REC Ausgang WORD Anzahl verworfener empfangener CAN-Nachrichten

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 50 CANopen AC500 / Stand: 01.2007

Beschreibung

Der Baustein CANOM_STATE gibt den aktuellen Zustand des CANopen-Kopplers aus.

CANOM_STATE ist aktiv, wenn der Eingang EN = TRUE ist. Wenn der Baustein aktiv ist und es wurden bei der Bearbeitung des Bausteins keine Fehler festgestellt, werden an den Ausgängen immer die aktuellen Werte angezeigt.

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde die Anforderung beendet oder die Bearbeitung des Bausteins aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit dem Ausgang DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

STATE_BITS CANOM_STATE_BITS_TYPE (state bits)

Am Ausgang STATE_BITS werden atypische Kommunikationszustände des CANopen-Kopplers angezeigt. STATE_BITS ist nur gültig, wenn EN = TRUE und ERR = FALSE.

Der Aufbau der Struktur vom Typ CANOM_STATE_BITS_TYPE ist in der CANopen-Bibliothek definiert und wird weiter unten erläutert.

Teile der Fehleranzeigen in STATE_BITS können über den Baustein CANOM_RES_ERR zurückgesetzt werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 51 CANopen AC500 / Stand: 01.2007

CANOM_STATE BYTE (CANopen master state)

Am Ausgang CANOM_STATE wird der allgemeine Kommunikationszustand des CANopen-Masters ausgegeben. Folgende Zustände sind definiert:

State Bedeutung

Dez Hex

0 00 OFFLINE

64 40 STOP

128 80 CLEAR

192 C0 OPERATE

CANOM_STATE = OFFLINE

Hat CANOM_STATE den Wert OFFLINE, befindet sich der CANopen-Koppler im Initialisierungszustand. Ist die Initialisierungsphase abgeschlossen, geht der Koppler in den Zustand STOP über.

CANOM_STATE = STOP

Hat CANOM_STATE den Wert STOP, ist der Koppler vollständig initialisiert. In diesem Zustand ist der Koppler bereit für den Empfang von Konfigurationsdaten. Es findet kein Datenaustausch mit den Slaves statt. Der Koppler nimmt diesen Zustand ein, wenn kein Anwenderprogramm läuft.

CANOM_STATE = CLEAR

Wird das Anwenderprogramm gestartet, geht der Koppler vom Zustand STOP in den Zustand CLEAR über und beginnt damit, die bei der Konfiguration festgelegten Verbindungen zu etablieren. Nach erfolgreichem Abschluss der Inbetriebnahmephase geht der Koppler in den Zustand OPERATE über. Tritt bei der Parametrierung ein Fehler auf, fällt der Koppler in den Zustand STOP zurück.

CANOM_STATE = OPERATE

Bei laufendem Anwenderprogramm befindet sich der Koppler normalerweise im Zustand OPERATE. In diesem Zustand tauscht der Master E/A-Daten mit den Slaves aus. Tritt dabei eine Störung auf und wurde bei der Konfiguration 'Auto Clear Modus' gewählt, fällt der Koppler in den Zustand CLEAR zurück und versucht erneut, die Verbindungen einzurichten. Wurde 'Auto Clear-Modus' nicht gewählt, verbleibt der Koppler bei einer Störung im Zustand OPERATE. Wird das Anwenderprogramm gestoppt, geht auch der Koppler in den Zustand STOP zurück.

CANOM_STATE ist nur gültig, wenn EN = TRUE und ERR = FALSE.

CANOM_ERR CANOM_COM_ERR_TYPE (CANopen master error)

Am Ausgang CANOM_ERR werden eventuelle Kommunikationsfehler angezeigt. CANOM_ERR ist nur gültig, wenn EN = TRUE und ERR = FALSE.

Der Aufbau der Struktur vom Typ CANOM_COM_ERR_TYPE ist in der CANopen-Bibliothek definiert und wird, ebenso wie die möglichen Fehler, weiter unten erläutert.

BUS_ERR WORD (bus error)

Am Ausgang BUS_ERR wird die Anzahl der aufgetretenen Busstörungen ausgegeben. Eine Busstörung liegt vor, wenn der interne Error-Frame-Zähler einen bestimmten Wert überschreitet. BUS_ERR ist nur gültig, wenn EN = TRUE und ERR = FALSE.

BUS_ERR kann über den Baustein CANOM_RES_ERR zurückgesetzt werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 52 CANopen AC500 / Stand: 01.2007

BUS_OFF WORD (bus off)

Am Ausgang BUS_OFF wird ausgegeben, wie oft der Koppler von den Busaktivitäten ausgeschlossen wurde. Der Ausschluss von den Busaktivitäten erfolgt bei einem Überlauf des internen Error-Frame-Zählers. Der Koppler wird nach jedem Überlauf automatisch reinitialisiert. BUS_OFF ist nur gültig, wenn EN = TRUE und ERR = FALSE.

BUS_OFF kann über den Baustein CANOM_RES_ERR zurückgesetzt werden.

TOUT_ERR WORD (timeout error)

Am Ausgang TOUT_ERR wird ausgegeben, wie viele Telegramme nicht erfolgreich gesendet werden konnten. Der Versand eines Telegramms gilt als fehlgeschlagen, wenn es nicht innerhalb von 20 ms abgesetzt werden konnte, weil z. B. der Kommunikationspartner nicht über den Bus erreichbar ist. TOUT_ERR ist nur gültig, wenn EN = TRUE und ERR = FALSE.

TOUT_ERR kann über den Baustein CANOM_RES_ERR zurückgesetzt werden.

LOST_REC WORD (lost receive)

Am Ausgang LOST_REC wird ausgegeben, wie viele empfangene Telegramme aufgrund einer Überlastung des CAN-Chips nicht erfolgreich bearbeitet werden konnten und daher verworfen wurden. LOST_REC ist nur gültig, wenn EN = TRUE und ERR = FALSE.

LOST_REC kann über den Baustein CANOM_RES_ERR zurückgesetzt werden.

Funktionsaufruf in AWL

CAL State ( EN := State_EN, SLOT := State_SLOT)

LD State.DONE ST State_DONE

LD State.ERR ST State_ERR

LD State.ERNO ST State_ERNO

LD State.STATE_BITS ST State_STATE_BITS

LD State.CANOM_STATE ST State_CANOM_STATE

LD State.CANOM_ERR ST State_CANOM_ERR

LD State.BUS_ERR ST State_BUS_ERR

LD State.BUS_OFF ST State_BUS_OFF

LD State.TOUT_ERR ST State_TOUT_ERR

LD State.LOST_REC ST State_LOST_REC

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 53 CANopen AC500 / Stand: 01.2007

Funktionsaufruf in ST

State ( EN := State_EN, SLOT := State_SLOT);

State_DONE := State.DONE; State_ERR := State.ERR; State_ERNO := State.ERNO; State_STATE_BITS := State.STATE_BITS; State_CANOM_STATE := State.CANOM_STATE; State_CANOM_ERR := State.CANOM_ERR; State_BUS_ERR := State.BUS_ERR; State_BUS_OFF := State.BUS_OFF; State_TOUT_ERR := State.TOUT_ERR; State_LOST_ERR := State.LOST_ERR;

STATE_BITS CANOM_STATE_BITS_TYPE

Die Struktur STATE_BITS beinhaltet sechs boolsche Variablen, die verschiedene Kommunikationszustände anzeigen. Der Datentyp CANOM_STATE_BITS_TYPE ist in der CANopen-Bibliothek wie folgt definiert:

TYPE CANOM_STATE_BITS_TYPE: STRUCT CTRL: BOOL; AUTO_CLR: BOOL; NO_EXCH: BOOL; FATAL: BOOL; EVENT: BOOL; reserved1: BOOL; TIMEOUT: BOOL; reserved2: BOOL; END_STRUCT END_TYPE

CTRL BOOL (control)

Ist dieses Bit auf TRUE gesetzt, liegt ein Parametrierungsfehler vor. Im normalen Betrieb sollte CTRL = FALSE sein. Ist dies nicht der Fall, sind die Parameter- und Konfigurationsdaten zu überprüfen.

AUTO_CLR BOOL (auto clear)

Ist AUTO_CLR auf TRUE gesetzt, hat der Koppler aufgrund von Kommunikationsfehlern den Datenaustausch mit allen Slaves eingestellt und ist in den Zustand CLEAR zurückgefallen (siehe CANOM_STATE).

NO_EXCH BOOL (no exchange)

Dieses Bit wird auf TRUE gesetzt, wenn mit einem oder mehreren Slaves kein Prozessdatenaustausch zustande kommt. Die Fehlerursache kann sowohl in den Konfigurationsdaten als auch in den Slaves selbst liegen.

FATAL BOOL (fatal)

Ist FATAL = TRUE gesetzt, ist aufgrund eines schweren internen Fehlers keine Kommunikation über CANopen möglich.

EVENT BOOL (event)

EVENT wird auf TRUE gesetzt, wenn der Koppler Übertragungsfehler feststellt. Die Anzahl der Übertragungsfehler wird an den entsprechenden Ausgängen BUS_ERR und BUS_OFF angezeigt. Ist das Bit EVENT gesetzt, kann es nur über den Baustein CANOM_RES_ERR zurückgesetzt werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 54 CANopen AC500 / Stand: 01.2007

reserved1 BOOL

Dieses Bit ist reserviert und wird zur Zeit nicht verwendet.

TIMEOUT BOOL (timeout)

Ist TIMEOUT = TRUE gesetzt, ist das Senden mindestens eines Telegramms fehlgeschlagen. Die Übertragung dieses Telegramms wurde abgebrochen und sein Inhalt ist verloren. TIMEOUT = TRUE ist ein Anzeichen dafür, dass der Kommunikationspartner nicht über den Bus erreichbar war. Die Anzahl der Sendefehler wird am Ausgang TOUT_ERR angezeigt. Ist das Bit TIMEOUT gesetzt, kann es nur über den Baustein CANOM_RES_ERR zurückgesetzt werden.

reserved2 BOOL

Dieses Bit ist reserviert und wird zur Zeit nicht verwendet.

CANOM_ERR CANOM_COM_ERR_TYPE

Kommunikationsfehler können über CANOM_ERR genauer lokalisiert werden. Der Ausgang CANOM_ERR wird als Struktur vom Typ CANOM_COM_ERR_TYPE dargestellt. Dieser Datentyp ist in der CANopen-Bibliothek wie folgt definiert:

TYPE CANOM_COM_ERR_TYPE: STRUCT ADDRESS: BYTE; EVENT: BYTE; END_STRUCT END_TYPE

ADDRESS BYTE (address)

Im Fehlerfall beinhaltet ADDRESS die Knotenadresse des fehlerhaften Teilnehmers. Hat ADDRESS den Wert 255, liegt der Fehler im Koppler selbst.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 55 CANopen AC500 / Stand: 01.2007

EVENT BYTE (event)

Im Fehlerfall beinhaltet EVENT das Ereignis, welches zum Fehler geführt hat. Das Event beziehen sich entweder auf einzelne Knotenadressen (ADDRESS <> 255) oder auf den Koppler selbst (ADDRESS = 255)

ADDRESS <> 255 Fehler bei Teilnehmern mit Knotenadresse ADDRESS

Event Bedeutung Fehlerquelle Ursache/Abhilfe

30 Zeitüberschreitung bei der Slave-Überwachung

Slave Überprüfung des Anschlusses und der Knotenadresse des Slaves

31 Slave ist aus dem Operational Modus herausgefallen

Slave Slave zurücksetzen

32 Sequenzfehler im Node Guarding Protocol

Slave Slave zurücksetzen

33 Keine Antwort auf ein konfiguriertes Remote Frame PDO

Slave Überprüfung, ob Slave Remote Frames unterstützt werden

34 Keine Antwort des Slaves bei der Konfiguration

Slave Überprüfung, ob Slave angeschlossen und betriebsbereit ist

35 Konfiguriertes Geräteprofil und tatsächliches Geräteprofil des Slaves sind unterschiedlich

Konfiguration Überprüfung des vom Slave unterstützten Profils

36 Konfigurierter Gerätetyp und tatsächlicher Gerätetypl des Slaves sind unterschiedlich

Konfiguration Überprüfung der vom Slave unterstützten Services

37 Unbekannte SDO-Antwort empfangen Slave Slave nicht konform zur CiA-Protokoll-Spezifikation

38 Längenindikator einer empfangenen SDO-Antwort ist ungleich 8

Slave Slave nicht konform zur CiA-Protokoll-Spezifikation

39 Slave wird nicht bearbeitet und befindet sich im Zustand STOP

Konfiguration / Koppler

Deaktivierung des Auto Clear Modus

ADDRESS = 255 Koppler-Fehler

Event Bedeutung Fehlerquelle Ursache/Abhilfe

52 Unbekannter Prozessdaten-Handshake-Modus

Konfiguration Kontaktaufnahme mit Service

56 Ungültige Datenübertragungsrate

Konfiguration Kontaktaufnahme mit Service

60 Doppelte Knotenadresse konfiguriert

Konfiguration / anderer Teilnehmer

Überprüfung der Knotenadressen in den Konfigurationsdaten aller Teilnehmer

210 Keine Konfigurationsdaten Konfiguration / Koppler

Konfigurationsdaten in Koppler laden

212 Fehler beim Lesen der Datenbasis

Konfiguration / Koppler

Konfigurationsdaten erneut in Koppler laden, Kontaktaufnahme mit Service

220 Watchdog-Fehler Steuerung Kontaktaufnahme mit Service

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 56 CANopen AC500 / Stand: 01.2007

CANOM_SYS_DIAG Anzeigen von Statusübersichten aller Slaves

Der Baustein CANOM_SYS_DIAG gibt am Ausgang NODE ein Bitfeld als Zustandsübersicht über alle Slaves (Knoten) aus. Über den Eingang TYP können drei verschiedene Übersichten ausgewählt werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: CANopen_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CANOM_SYS_DIAG Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

TYP Eingang BYTE Auswahl des Übersichtstyps

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

NODE Ausgang ARRAY[0...127] OF BOOL

Statusübersicht der Slaves

Beschreibung

Der Baustein CANOM_SYS_DIAG gibt verschiedene Statusübersichten über alle Slaves aus. Es stehen drei Übersichtsarten zur Wahl:

• Konfigurationsübersicht

• Betriebsübersicht

• Diagnoseübersicht

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 57 CANopen AC500 / Stand: 01.2007

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

TYP BOOL (type)

Am Eingang TYP wird ausgewählt, welche Statusübersicht an NODE angezeigt werden soll.

TYP = 1 Konfigurationsübersicht

Am Ausgang NODE wird angezeigt, mit welchen Slaves der Master erfolgreich Verbindungen aufgebaut hat (TRUE). Dabei ist zu beachten, dass der Master nur Verbindungen mit solchen Slaves aufbaut, die ihm bei der Erstellung der Konfigurationsdaten bekannt gemacht wurden.

TYP = 2 Betriebsübersicht

Am Ausgang NODE wird angezeigt, welche Slaves fehlerfrei und in Betrieb sind. Ein Slave kann nur als in Betrieb gemeldet werden, wenn er im Master konfiguriert wurde. Die Betriebsübersicht kann nur angefordert werden, wenn der Koppler im Zustand OPERATE ist.

TYP = 3 Diagnoseübersicht

Am Ausgang NODE wird angezeigt, welche Slaves eine Diagnose melden. Die Diagnoseübersicht kann nur angefordert werden, wenn der Koppler im Zustand OPERATE ist.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde die Anforderung beendet oder die Bearbeitung des Bausteins aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

NODE ARRAY[0...127] OF BOOL (node)

Am Ausgang NODE wird die Statusübersicht in Form eines Bitfeldes ausgegeben. Jedes Bit innerhalb dieses Feldes repräsentiert einen Slave. Der Index entspricht dabei der Knotenadresse des Slaves. Ein auf TRUE gesetztes Bit bedeutet, dass der über TYP ausgewählte Zustand für den entsprechenden Slave zutrifft.

Ist zum Beispiel TYP = 1 ausgewählt und NODE[2] = TRUE, wurde der Slave mit der Knotenadresse erfolgreich vom Master konfiguriert und ist in Betrieb. Ist NODE[2] = FALSE, ist die Konfiguration des betreffenden Slaves noch nicht abgeschlossen oder der Slave ist nicht Bestandteil der Konfigurationsdaten des Masters.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 58 CANopen AC500 / Stand: 01.2007

Bei TYP = 3 bedeutet zum Beispiel NODE[2] = TRUE, dass eine Emergency-Nachricht vom Slave mit der Knotenadresse 2 empfangen wurde oder dass sich die Diagnoseanzeigen des Slaves geändert haben. Die detaillierte Diagnose kann dann mit Hilfe des Bausteins CANOM_NODE_DIAG angefordert werden.

Das an NODE ausgegebene Bitfeld ist nur gültig, wenn EN = TRUE und ERR = FALSE.

Funktionsaufruf in AWL

CAL SysDiag ( EN := SysDiag_EN, SLOT := SysDiag_SLOT, TYP := SysDiag_TYP)

LD SysDiag.DONE ST SysDiag_DONE

LD SysDiag.ERR ST SysDiag_ERR

LD SysDiag.ERNO ST SysDiag_ERNO

LD SysDiag.NODE ST SysDiag_NODE

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

SysDiag( EN := SysDiag_EN, SLOT := SysDiag_SLOT, TYP := SysDiag_TYP);

SysDiag_DONE := SysDiag.DONE; SysDiag_ERR := SysDiag.ERR; SysDiag_ERNO := SysDiag.ERNO; SysDiag_NODE := SysDiag.NODE;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 59 CANopen AC500 / Stand: 01.2007

Glossar

BOOL

Variablen vom Typ BOOL können die Wahrheitswerte TRUE und FALSE annehmen. Es werden 8 Bit Speicherplatz reserviert.

DINT

DINT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DINT Untergrenze -2147483648 Obergrenze 2147483647 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

DWORD

DWORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DWORD Untergrenze 0 Obergrenze 4294967295 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

INT

INT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ INT Untergrenze -32768 Obergrenze 32767 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

WORD

WORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ WORD Untergrenze 0 Obergrenze 65535 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 60 CANopen AC500 / Stand: 01.2007

BYTE

BYTE gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ BYTE Untergrenze 0 Obergrenze 255 Speicherplatz 8 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

Funktionen

Funktionen sind Unterprogramme, die beliebig viele Eingangsparameter haben und genau ein Ergebnis-Element zurückliefern. Das zurückgelieferte Ergebnis kann von elementarem, aber auch von zusammengesetztem Datentyp sein. Eine Funktion darf also auch ein Feld, eine Struktur, ein Feld von Strukturen etc. zurückgeben.

Funktionen liefern bei gleicher Eingangsbeschaltung stets das gleiche Ergebnis (sie besitzen kein Gedächtnis.

Daraus abzuleiten sind folgende Regeln:

• Innerhalb von Funktionen dürfen globale Variablen weder gelesen noch geschrieben werden. • Innerhalb von Funktionen dürfen Absolutoperanden weder gelesen noch geschrieben werden • Innerhalb von Funktionen dürfen Funktionsblöcke nicht aufgerufen werden.

Funktionsblöcke

Funktionsblöcke sind Unterprogramme, die jeweils beliebig viele Eingangs-, Ausgangs- und interne Variablen haben. Sie werden von einem Programm aufgerufen oder von einem anderen Funktionsblock.

Da sie auch mehrfach genutzt werden können (mit jeweils anderen Datensätzen), können Funktionsblöcke (ihr Code und die Schnittstelle) als Typ betrachtet werden. Über die Zuordnung eines individuellen Datensatzes (Deklaration) wird eine Instanz des Funktionsblockes angelegt.

Anders als Funktionen können Funktionsblöcke statisch lokale Daten haben, die von einem Aufruf zum nächsten gerettet werden. Damit können z. B. Zähler realisiert werden, die ihren Zählerstand nicht vergessen dürfen. D. h. Funktionsblöcke können ein Gedächtnis haben.

Funktionen und Funktionsblöcke unterscheiden sich in zwei wesentlichen Punkten:

• Ein Funktionsblock hat beliebig viele Ausgangsparameter, die Funktion maximal einen, wobei sich die Ausgangsparameter von Funktionen und Funktionsblöcken syntaktisch unterscheiden.

• Ein Funktionsblock kann ein Gedächtnis haben, eine Funktion nicht.

Funktionsblöcke mit Vergangenheitswerten (Gedächtnis):

Bei Funktionsblöcken mit Vergangenheitswerten ist zu beachten, dass Instanznamen nicht mehrfach vergeben werden dürfen, wenn unterschiedliche Datensätze aufgerufen werden sollen.

Funktionsblöcke ohne Vergangenheitswerte (Gedächtnis):

Bei Funktionsblöcken ohne Vergangenheitswerte braucht nur eine Instanz für den FB-Typ angelegt zu werden. Diese Instanz kann für mehrere Aufrufe des FB (auch mit unterschiedlichen E/A-Werten) genutzt werden.

Der Instanzname kann beliebig definiert werden. Der Typ ist vorgegeben und ist identisch mit dem Namen des Funktionsblockes.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 61 CANopen AC500 / Stand: 01.2007

Index

A

Allgemeine Hinweise zu den CAN-Bausteinen 3

B

Bausteinübersicht, geordnet nach Aufrufnamen 5

Besonderheiten der CANopen-Bibliothek 2

Bestandteile der CANopen-Bibliothek 2

C

CAN2A_INFO Auslesen von Informationen zur CAN 2.0A Kommunikation 6

CAN2A_MESSAGE_TYPE Aufbau eines Telegramms nach CAN 2.0A 3

CAN2A_REC Auslesen von CAN 2.0A Telegrammen (11-Bit-Identifier) aus einem Empfangspuffer 10

CAN2A_SEND Senden von CAN 2.0A Telegrammen (11-Bit-Identifier) 14

CAN2B_INFO Auslesen von Informationen zur CAN 2.0B Kommunikation 17

CAN2B_MESSAGE_TYPE Aufbau eines Telegramms nach CAN 2.0B 4

CAN2B_REC Auslesen von CAN 2.0B Telegrammen (29-Bit-Identifier) aus einem Empfangspuffer 21

CAN2B_SEND Senden von CAN 2.0B Telegrammen (29-Bit-Identifier) 25

CANOM_NMT NMT-Knotenzustände über Netzwerkmanagement steuern 28

CANOM_NODE_DIAG Abrufen von Diagnosedaten eines Slaves 31

CANOM_RES_ERR Rücksetzen der Fehleranzeigen des Kopplers 38

CANOM_SDO_READ Lesen des Wertes eines Objekts in einem Slave 41

CANOM_SDO_WRITE Schreiben des Wertes eines Objekts in einem Slave 45

CANOM_STATE Auslesen des Zustands des CANopen-Kopplers 49

CANOM_SYS_DIAG Anzeigen von Statusübersichten alles Slaves 56

G

Glossar 59

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 62 CANopen AC500 / Stand: 01.2007

Softwarebeschreibung AC500

Skalierbare SPS für individuelle Automatisierung DeviceNet- Bausteinbibliothek

DeviceNet

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 1 DeviceNet AC500 / Stand: 01.2007

Inhalt

DeviceNet-Bibliothek .................................................................................................................... 2

Besonderheiten der DeviceNet-Bibliothek ........................................................................................ 2

Bestandteile der DeviceNet-Bibliothek ................................................................................................ 2

Bausteinübersicht, geordnet nach Aufrufnamen ............................................................................. 3

DNM_DEV_DIAG Abrufen von Diagnosedaten eines Slaves .................................................................... 4

DNM_GET_ATTR Lesen eines Attributes aus einem Objekt in einem Slave .......................................... 11

DNM_RES_OBJ Rücksetzen eines Objektes in einem Slave.................................................................. 15

DNM_SET_ATTR Schreiben eines Attributes in ein Objekt in einem Slave ............................................ 18

DNM_STATE Auslesen des Zustands des DeviceNet-Kopplers ............................................................. 22

DNM_SYS_DIAG Anzeigen von Statusübersichten aller Slaves ............................................................. 30

Glossar ...................................................................................................................................................... 33

Index .......................................................................................................................................................... 35

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 2 DeviceNet AC500 / Stand: 01.2007

DeviceNet-Bibliothek

Besonderheiten der DeviceNet-Bibliothek

Hinweis:

Die DeviceNet - Kommunikation läuft nur im RUN-Modus der SPS, nicht im Simulationsmodus.

Voraussetzungen für die Verwendung der Bibliothek

Die Funktionsbausteine der DeviceNet-Bibliothek greifen sowohl auf das Laufzeitsystem der Steuerung als auch unmittelbar auf den Koppler zu. Die hierzu erforderlichen Definitionen und Funktionen sind in der internen Bibliothek SysExt_AC500_V10.LIB abgelegt. Diese wird beim Einrichten eines Projektes automatisch eingebunden.

Die Bibliothek enthält Funktionsbausteine zur komfortablen Handhabung des DeviceNet-Kopplers. Zusätzlich werden in der Bibliothek verschiedene Datentypen definiert. Diese Strukturen erlauben eine übersichtliche Darstellung von Datensätzen.

Bestandteile der DeviceNet-Bibliothek

Funktionsbausteine

Folgende Funktionsbausteine sind in der DeviceNet-Bibliothek enthalten:

Gruppe: Diagnosis

DNM_DEV_DIAG Abrufen von Diagnosedaten eines Slaves

DNM_STATE Auslesen des Zustands des DeviceNet-Kopplers

DNM_SYS_DIAG Anzeigen von Statusübersichten aller Slaves

Gruppe: Parameter

DNM_GET_ATTR Lesen eines Attributes aus einem Objekt in einem Slave

DNM_RES_OBJ Rücksetzen eines Objektes in einem Slave

DNM_SET_ATTR Schreiben eines Attributes in ein Objekt in einem Slave

Datentypen

In der DeviceNet-Bibliothek sind folgende Datentypen (Strukturen) definiert:

Gruppe: DNM

DNM_COM_ERR_TYPE Kommunikationsfehler

DNM_DEVICESTATUS_1_TYPE Slave-Diagnose

DNM_STATE_BITS_TYPE Bits zur Beschreibung des Kopplerstatus

Die Beschreibung der verschiedenen Datentypen befindet sich bei der Dokumentationen des jeweiligen Bausteins.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 3 DeviceNet AC500 / Stand: 01.2007

Bausteinübersicht, geordnet nach Aufrufnamen

Zeichenerklärung:

FBmV … Funktionsblock mit Vergangenheitswerten

FBoV … Funktionsblockohne Vergangenheitswerte

F … Funktion

VE-Name Typ Funktion

DNM_DEV_DIAG FBmV Abrufen von Diagnosedaten eines Slaves

DNM_GET_ATTR FBmV Lesen eines Attributes aus einem Objekt in einem Slave

DNM_RES_OBJ FBmV Rücksetzen eines Objektes in einem Slave

DNM_SET_ATTR FBmV Schreiben eines Attributes in ein Objekt in einem Slave

DNM_STATE FBmV Auslesen des Zustands des DeviceNet-Kopplers

DNM_SYS_DIAG FBmV Anzeigen von Statusübersichten aller Slaves

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 4 DeviceNet AC500 / Stand: 01.2007

DNM_DEV_DIAG Abrufen von Diagnosedaten eines Slaves

Der Baustein DNM_DEV_DIAG liest die Diagnosedaten eines Slaves aus.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: DeviceNet_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DNM_DEV_DIAG Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

MAC_ID Eingang BYTE MAC-ID des betreffenden Slaves

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

STATE_1 Ausgang DNM_DEVICESTATUS_1_TYPE Devicestatus_1, Slave-Diagnose

DEV_STATE Ausgang BYTE Status des Slave-Zustandsautomaten

ONL_ERR Ausgang BYTE Online-Fehler des Slaves

GEN_ERR Ausgang BYTE Allgemeiner Fehler des Slaves

ADD_ERR Ausgang BYTE Zusätzliche Fehlerinformation

EXP_TOUT Ausgang WORD ExpectedPacketRate_Timeout

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 5 DeviceNet AC500 / Stand: 01.2007

Beschreibung

Mit Hilfe des Bausteins DNM_DEV_DIAG können Diagnosedaten zu einzelnen Slaves abgerufen werden.

DNM_DEV_DIAG übernimmt die Werte an den Eingängen bei jeder FALSE->TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE->TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE angezeigt.

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen. Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler an den Ausgängen ERR und ERNO und das Ende der Bearbeitung durch DONE = TRUE angezeigt.

Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert aber nicht ausgewertet.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

MAC_ID BYTE (medium access control identifier)

Am Eingang MAC_ID wird die MAC-ID des Slaves angegeben, dessen Diagnosedaten angefordert werden sollen.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde die Anforderung beendet oder die Bearbeitung des Bausteins aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 6 DeviceNet AC500 / Stand: 01.2007

STATE_1 DNM_DEVICESTATUS_1_TYPE (state 1)

Am Ausgang STAT_1 werden verschiedene Bits in Form einer Struktur vom Typ DNM_DEVICESTATUS_1_TYPE ausgegeben, die Fehlerzustände des Slaves anzeigen. STAT_1 ist nur gültig bei DONE = TRUE und ERR = FALSE.

Der Aufbau der Struktur vom Typ DNM_DEVICESTATUS_1_TYPE ist in der DeviceNet-Bibliothek definiert und wird weiter unten erläutert.

DEV_STATE BYTE (device state)

Am Ausgang DEV_STATE wird der aktuelle Status der kopplerinternen Zustandsmaschine für den betreffenden Slave ausgegeben. An diesem Wert lässt sich ablesen, in welchem Stadium sich die Kommunikation mit dem Gerät befindet. DEV_STATE ist nur gültig bei DONE = TRUE und ERR = FALSE.

Folgende Tabelle zeigt die möglichen Werte von DEV_STATE und deren Bedeutung.

DEV_STATE Bedeutung

1 Ausgangszustand des Zustandsautomaten

2 Slave ist inaktiv und wird nicht bearbeitet

3 Warten auf die Anfragen aller Teilnehmer auf Überprüfung auf doppelte MAC-IDs

4 Initialisierung der internen vordefinierten Master-Slave-Strukturen

5 Anforderung zur Allokierung der vordefinierten Master-Slave-Verbindungssätze

6 Warten auf die Antwort des Slaves auf die Anforderung zur Allokierung der vordefinierten Master-Slave-Verbindungssätze

7 Anforderung zur Freigabe der vordefinierten Master-Slave-Verbindungssätze

8 Warten auf die Antwort des Slaves auf die Anforderung zur Freigabe der vordefinierten Master-Slave-Verbindungssätze

9 Initialisierung der internen E/A-Konfigurationsstrukturen

10 Anforderung zur Allokierung der E/A-Konfigurationsstrukturen

11 Warten auf die Antwort des Slaves auf die Anforderung zur Allokierung der E/A-Konfigurationsstrukturen

12 Anforderung zur Freigabe E/A-Konfigurationsstrukturen

13 Warten auf die Antwort des Slaves auf die Anforderung zur Freigabe der E/A-Konfigurationsstrukturen

14 Anforderung der Länge der vom Slave konsumierten Verbindung (Ausgangskonfiguration)

15 Warten auf die Antwort des Slaves auf die Anforderung der Länge der von diesem Slave konsumierten Verbindung

16 Vergleich der vom Slave empfangenen Ist-Ausgangskonfiguration mit der internen Soll-Ausgangskonfiguration

17 Anforderung der Länge der vom Slave produzierten Verbindung (Eingangskonfiguration)

18 Warten auf die Antwort des Slaves auf die Anforderung der Länge der von diesem Slave produzierten Verbindung

19 Vergleich der vom Slave empfangenen Ist-Eingangskonfiguration mit der internen Soll-Eingangskonfiguration

20 Konfiguration und Registrierung der E/A-Verbindungsstrukturen

21 Setzen der erwarteten Packetrate im Slave

22 Warten auf die Antwort des Slaves auf das Setzen der erwarteten Packetrate

23 Senden der ersten E/A-Poll-Anforderung an den Slave

24 Warten auf die Antwort des Slaves auf die E/A-Poll-Anforderung

25 Senden der zweiten E/A-Poll-Anforderung an den Slave

26 Warten auf die Antwort des Slaves auf die E/A-Poll-Anforderung

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 7 DeviceNet AC500 / Stand: 01.2007

27 Senden der dritten E/A-Poll-Anforderung an den Slave

28 Warten auf die Antwort des Slaves auf die E/A-Poll-Anforderung

29 Übertragen des Heartbeat-Timeouts an den Slave

30 -

31 Erstes Öffnen der verbindungslosen Kommunikation

32 Warten auf Antwort des Slaves auf Öffnen der verbindungslosen Kommunikation

33 Zweites Öffnen der verbindungslosen Kommunikation

34 Warten auf Antwort des Slaves auf Öffnen der verbindungslosen Kommunikation

35 Schließen der verbindungslosen Kommunikation

36 Warten auf Antwort des Slaves auf Schließen der verbindungslosen Kommunikation

37 Freigabe aller etablierten Verbindungen

38 Warten auf Antwort des Slaves auf die Freigabe aller etablierten Verbindungen

39 Öffnen der verbindungslosen anwenderspezifischen Kommunikation

40 Warten auf Antwort des Slaves auf Öffnen der verbindungslosen anwenderspezifischen Kommunikation

41 Anforderung zur Allokierung der anwenderspezifischen vordefinierten Master-Slave-Verbindungen

42 Warten auf die Antwort des Slaves auf die Anforderung zur Allokierung der anwenderspezifischen Master-Slave-Verbindungen

43 Schließen der verbindungslosen anwenderspezifischen Kommunikation

44 Warten auf die Antwort des Slaves auf die Anforderung zur Schließung der anwenderspezifischen Master-Slave-Verbindungen

45 Lesen oder Schreiben von anwenderspezifischem Attribut

46 Warten auf Antwort auf Lesen oder Schreiben von anwenderspezifischem Attribut

47 Senden oder Warten auf Antwort auf fragmentiertes Lesen oder Schreiben von Attributen

ONL_ERR BYTE (online error)

Am Ausgang ONL_ERR wird ein Wert ausgegeben, der eventuell vorliegende Kommunikationsfehler zwischen dem Master-Koppler und dem Slave beschreibt. ONL_ERR ist nur gültig bei DONE = TRUE und ERR = FALSE.

Die Fehlerkennungen in ONL_ERR entsprechen denen des Ausgangs COM_ERR.EVENT des Bausteins DNM_STATE und sind der in der Beschreibung zu diesem Baustein enthaltenen Tabelle zu entnehmen.

GEN_ERR BYTE (general error)

Am Ausgang GEN_ERR wird die Kennung des letzten Fehler-Telegramms des Slaves entsprechend der DeviceNet-Spezifikation ausgegeben.

GEN_ERR bezieht sich ausschließlich auf Verbindungsfehler (ONL_ERR = 35). Die Fehlerkennung in GEN_ERR muss daher immer im Zusammenhang mit ONL_ERR betrachtet werden. GEN_ERR ist nur gültig bei DONE = TRUE, ERR = FALSE und ONL_ERR = 35.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 8 DeviceNet AC500 / Stand: 01.2007

Folgende Tabelle zeigt die möglichen Werte von DEV_ERR und deren Bedeutung.

GEN_ERR Bedeutung

2 Ressource nicht verfügbar

8 Dienst nicht unterstützt

9 Ungültiger Attributwert

11 Anforderungsmodus bereits aktiv

12 Objekt-Status-Konflikt

14 Attribut nicht veränderbar

15 Privileg-Verletzung

16 Geräte-Status-Konflikt

17 Antwortdaten zu lang

19 Nicht genügend Daten

20 Attribut nicht unterstützt

21 Zu viele Daten

22 Objekt existiert nicht

ADD_ERR BYTE (additional error)

Am Ausgang ADD_ERR werden zusätzliche Informationen zu dem an GEN_ERR angezeigten Verbindungsfehler ausgegeben. ADD_ERR muss daher immer im Zusammenhang mit GEN_ERR betrachtet werden. ADD_ERR ist nur gültig bei DONE = TRUE, ERR = FALSE und GEN_ERR <> 0.

EXP_TOUT WORD (expected packet rate timeout)

Am Ausgang EXP_TOUT wird angezeigt, wie oft die Ansprechüberwachung für diesen Slave ausgelöst wurde.

Die DeviceNet-Busparameter enthalten einen konfigurierbaren Heartbeat-Timer. Mit diesem Timer wird festgelegt, in welchen Zeitabständen der Master die Verfügbarkeit der Slaves überprüfen soll. Der Ausgang EXP_TOUT enthält die Anzahl der Zeitüberschreitungen für den angesprochenen Slave. EXP_TOUT kann somit als Maß für die Güte der Verbindung zu diesem Slave herangezogen werden. Der Wert des Ausgangs ist nur gültig bei DONE = TRUE und ERR = FALSE.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 9 DeviceNet AC500 / Stand: 01.2007

Funktionsaufruf in AWL

CAL DevDiag ( EN := DevDiag_EN, SLOT := DevDiag_SLOT, MAC_ID := DevDiag_MAC_ID)

LD DevDiag.DONE ST DevDiag_DONE

LD DevDiag.ERR ST DevDiag_ERR

LD DevDiag.ERNO ST DevDiag_ERNO

LD DevDiag.STATE_1 ST DevDiag_STATE_1

LD DevDiag.DEV_STATE ST DevDiag_DEV_STATE

LD DevDiag.ONL_ERR ST DevDiag_ONL_ERR

LD DevDiag.GEN_ERR ST DevDiag_GEN_ERR

LD DevDiag.ADD_ERR ST DevDiag_ADD_ERR

LD DevDiag.EXP_TOUT ST NDevDiag_EXP_TOUT

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DevDiag( EN := DevDiag_EN, SLOT := DevDiag_SLOT, MAC_ID := DevDiag_MAC_ID;

DevDiag_DONE := DevDiag.DONE; DevDiag_ERR := DevDiag.ERR; DevDiag_ERNO := DevDiag.ERNO; DevDiag_STATE_1 := DevDiag.STATE_1; DevDiag_DEV_STATE := DevDiag.DEV_STATE; DevDiag_ONL_ERR := DevDiag.ONL_ERR; DevDiag_GEN_ERR := DevDiag.GEN_ERR; DevDiag_ADD_ERR := DevDiag.ADD_ERR; DevDiag_EXP_TOUT := DevDiag.EXP_TOUT;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 10 DeviceNet AC500 / Stand: 01.2007

STATE_1 DNM_DEVICESTATUS_1_TYPE

Am Ausgang STAT_1 des Bausteins DNM_DEV_DIAG werden verschiedene Diagnosebits als Struktur vom Typ DNM_DEVICESTATUS_1_TYPE angezeigt. Die Struktur DNM_DEVICESTATUS_1_TYPE ist in der DeviceNet-Bibliothek wie folgt definiert:

TYPE DNM_DEVICESTATUS_1_TYPE: STRUCT NO_RESPONSE: BOOL; reserved1: BOOL; PRM_FAULT: BOOL; CFG_FAULT: BOOL; UCMM_Support: BOOL; reserved2: BOOL; reserved3: BOOL; DEACTIVATED: BOOL; END_STRUCT END_TYPE

NO_RESPONSE BOOL (no response)

Ist dieses Bit gesetzt, antwortet der Slave mit der am Bausteineingang MAC_ID angegebenen MAC-ID nicht auf die Anforderungen des Masters. Im Normalfall sollte NO_RESPONSE = FALSE sein.

reserved1 BOOL

Dieses Bit ist reserviert und wird zurzeit nicht verwendet.

PRM_FAULT BOOL (parameter fault)

Dieses Bit wird gesetzt, wenn der Schreibzugriff auf mindestens ein konfiguriertes Attribut des Slaves verweigert wurde. In diesem Fall liegt ein Parametrierfehler vor.

CFG_FAULT BOOL (configuration fault)

Dieses Bit wird gesetzt, wenn die tatsächliche Länge der übertragenen Daten (Ist-Konfiguration) von der konfigurierten Länge (Soll-Konfiguration) abweicht. In diesem Fall liegt ein Konfigurationsfehler vor.

UCMM_SUPPORT BOOL

Dieses Bit ist reserviert und wird zurzeit nicht verwendet.

reserved2 BOOL

Dieses Bit ist reserviert und wird zurzeit nicht verwendet.

reserved3 BOOL

Dieses Bit ist reserviert und wird zurzeit nicht verwendet.

DEACTIVATED BOOL (deactivated)

Dieses Bit ist auf TRUE gesetzt, wenn der Slave in den Konfigurationsdaten des Masters deaktiviert ist und nicht bearbeitet wird.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 11 DeviceNet AC500 / Stand: 01.2007

DNM_GET_ATTR Lesen eines Attributes aus einem Objekt in einem Slave

Mit Hilfe des Bausteins DNM_GET_ATTR können einzelne Attribute aus Objekt-Instanzen in einem Slave gelesen werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: DeviceNet_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DNM_GET_ATTR Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

MAC_ID Eingang BYTE MAC-ID des betreffenden Slaves

CLASS_ID Eingang BYTE Objekt-Klassen-Kennung des Objektes

INST_ID Eingang BYTE Instanznummer des Objektes

ATTR_ID Eingang BYTE Nummer des Attributes innerhalb des Objektes

DATA Eingang DWORD Adresse, ab der die gelesenen Daten abgelegt werden sollen (über ADR-Operator)

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

DATA_LEN Ausgang BYTE Länge der gelesenen Daten in Byte

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 12 DeviceNet AC500 / Stand: 01.2007

Beschreibung

Mit Hilfe des Bausteins DNM_GET_ATTR können einzelne Attribute aus Objekten in einem Slave gelesen werden.

DNM_GET_ATTR übernimmt die Werte an den Eingängen bei jeder FALSE->TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE->TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE angezeigt.

Die DeviceNet-Norm beschreibt ein abstraktes Objektmodell (siehe dazu auch Systemtechnik DeviceNet-Koppler). Darin werden verschiedene Standard-Klassen definiert, die eine Art Typ-Definitionen für die Objekte darstellen. Darüber hinaus können für ein DeviceNet-Gerät zusätzliche herstellerspezifische Klassen definiert werden. Objekte bilden Instanzen der jeweiligen Klasse. Diese Objekte wiederum enthalten Attribute, die mit Hilfe des Bausteins DNM_GET_ATTR gelesen werden können.

Einige Objekte müssen standardmäßig in jedem DeviceNet-Gerät vorhanden sein. Auf diese Standard-Objekte wird üblicherweise nicht aus einem Anwenderprogramm heraus im laufenden Betrieb zugegriffen, obwohl dies prinzipiell möglich ist. Die Zugriffe beschränken sich meist auf optionale zusätzliche Objekte bzw. deren Attribute. Diese erweiterten Attribute eines Slaves können in SYCON.net über Gerätekonfiguration | Parameter Daten eingesehen werden. Diese Ansicht zeigt eine Liste der verfügbaren Attribute des jeweiligen Slaves. Jeder Eintrag enthält die Klassen-Kennung (Class ID) des betreffenden Objektes, dessen Instanznummer (Instance ID), die Nummer des einzelnen Attributes (Attribute ID), den Datentyp des jeweiligen Attributes, die zulässigen Zugriffsarten (Lesen/Schreiben), eine Beschreibung des Attributes sowie die zulässigen Grenzwerte. Diese Informationen können bei der Verwendung eines Funktionsblock des Typs DNM_GET_ATTR genutzt werden, um die gewünschte CLASS_ID, INST_ID und ATTR_ID auszuwählen. Außerdem kann auf diese Weise ermittelt werden, von welchem Typ die Variable am Bausteineingang DATA (über ADR-Operator) sein muss, um die empfangenen Daten ablegen und interpretieren zu können.

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen. Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler an den Ausgängen ERR und ERNO und das Ende der Bearbeitung durch DONE = TRUE angezeigt.

Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

Da die Ausführung des Bausteins einen Buszugriff erfordert, stehen die Daten frühestens im Folgezyklus nach der Aktivierung des Bausteins bereit.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

MAC_ID BYTE (medium access control identifier)

Am Eingang MAC_ID wird die MAC-ID des Slaves angegeben, von dem ein Attribut angefordert werden soll.

CLASS_ID BYTE (class identifier)

Am Eingang CLASS_ID wird die Klassen-Kennung des Objektes, in dem sich das zu lesende Attribut befindet, angegeben (vergleiche Eintrag Class in der Auflistung Parameter Daten in SYCON.net).

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 13 DeviceNet AC500 / Stand: 01.2007

INST_ID BYTE (instance identifier)

Am Eingang INST_ID wird die Instanznummer des Objektes, in dem sich das zu lesende Attribut befindet, angegeben (vergleiche Eintrag Inst. in der Auflistung Parameter Daten in SYCON.net).

ATTR_ID BYTE (attribute identifier)

Am Eingang ATTR_ID wird die Nummer des zu lesenden Attributes innerhalb des Objektes, in dem sich das Attribut befindet, angegeben (vergleiche Eintrag Attr. in der Auflistung Parameter Daten in SYCON.net).

DATA DWORD (data)

Am Eingang DATA wird die Adresse der Variablen, in der die empfangenen Attribut-Daten abgelegt werden sollen, über den ADR-Operator angegeben (zum Format der Daten siehe Eintrag Type in der Auflistung Parameter Daten in SYCON.net). Die empfangenen Daten sind nur gültig bei DONE = TRUE, ERR = FALSE und DATA_LEN > 0.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde die Anforderung beendet oder die Bearbeitung des Bausteins aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

DATA_LEN BYTE (data length)

Am Ausgang DATA_LEN wird, nach erfolgreicher Ausführung des Vorgangs, die Länge der empfangenen Attribut-Daten in Byte angezeigt. Da die Ausführung des Bausteins einen Buszugriff erfordert, stehen die Daten frühestens im Folgezyklus nach der Aktivierung des Bausteins bereit. Der Wert des Ausgangs ist nur gültig bei DONE = TRUE und ERR = FALSE.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 14 DeviceNet AC500 / Stand: 01.2007

Funktionsaufruf in AWL

LD GetAttr_DATA ADR ST ADR_GetAttr_DATA

CAL GetAttr ( EN := GetAttr_EN, SLOT := GetAttr_SLOT, MAC_ID := GetAttr_MAC_ID, CLASS_ID := GetAttr_CLASS_ID, INST_ID := GetAttr_INST_ID, ATTR_ID := GetAttr_ATTR_ID, DATA := ADR_GetAttr_DATA)

LD GetAttr.DONE ST GetAttr_DONE

LD GetAttr.ERR ST GetAttr_ERR

LD GetAttr.ERNO ST GetAttr_ERNO

LD GetAttr.DATA_LEN ST GetAttr_DATA_LEN

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

GetAttr( EN := GetAttr_EN, SLOT := GetAttr_SLOT, MAC_ID := GetAttr_MAC_ID, CLASS_ID := GetAttr_CLASS_ID, INST_ID := GetAttr_INST_ID, ATTR_ID := GetAttr_ATTR_ID, DATA := ADR(GetAttr_DATA));

GetAttr_DONE := GetAttr.DONE; GetAttr_ERR := GetAttr.ERR; GetAttr_ERNO := GetAttr.ERNO; GetAttr_DATA_LEN := GetAttr.DATA_LEN;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 15 DeviceNet AC500 / Stand: 01.2007

DNM_RES_OBJ Rücksetzen eines Objektes in einem Slave

Mit Hilfe des Bausteins DNM_RES_OBJ kann ein Objekt in einem Slave zurückgesetzt werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: DeviceNet_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DNM_RES_OBJ Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

MAC_ID Eingang BYTE MAC-ID des betreffenden Slaves

CLASS_ID Eingang BYTE Objekt-Klassen-Kennung des Objektes

INST_ID Eingang BYTE Instanznummer des Objektes

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Mit Hilfe des Bausteins DNM_RES_OBJ kann eine Instanz einer Klasse (Objekt) in einem Slave zurückgesetzt werden.

DNM_RES_OBJ übernimmt die Werte an den Eingängen bei jeder FALSE->TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE->TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE angezeigt.

Die DeviceNet-Norm beschreibt ein abstraktes Objektmodell (siehe dazu auch Systemtechnik DeviceNet-Koppler). Darin werden verschiedene Standard-Klassen definiert, die eine Art Typ-Definitionen für die Objekte darstellen. Darüber hinaus können für ein DeviceNet-Gerät zusätzliche herstellerspezifische Klassen definiert werden. Objekte bilden Instanzen der jeweiligen Klasse. Diese Objekte können mit Hilfe des Bausteins DNM_RES_OBJ zurückgesetzt werden.

Einige Objekte müssen standardmäßig in jedem DeviceNet-Gerät vorhanden sein. Auf diese Standard-Objekte wird üblicherweise nicht aus einem Anwenderprogramm heraus im laufenden Betrieb

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 16 DeviceNet AC500 / Stand: 01.2007

zugegriffen, obwohl dies prinzipiell möglich ist. Die Zugriffe beschränken sich meist auf optionale zusätzliche Objekte bzw. deren Attribute.

Diese erweiterten Attribute eines Slaves können in SYCON.net über Gerätekonfiguration | Parameter Daten eingesehen werden. Diese Ansicht zeigt eine Liste der verfügbaren Attribute des jeweiligen Slaves. Jeder Eintrag enthält die Klassen-Kennung (Class ID) des betreffenden Objektes, dessen Instanznummer (Instance ID), die Nummer des einzelnen Attributes (Attribute ID), den Datentyp des jeweiligen Attributes, die zulässigen Zugriffsarten (Lesen/Schreiben), eine Beschreibung des Attributes sowie die zulässigen Grenzwerte. Diese Informationen können bei der Verwendung eines Funktionsblock des Typs DNM_RES_OBJ genutzt werden, um die gewünschte CLASS_ID und INST_ID zurückzusetzen.

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen. Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler an den Ausgängen ERR und ERNO und das Ende der Bearbeitung durch DONE = TRUE angezeigt.

Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

Da die Ausführung des Bausteins einen Buszugriff erfordert, stehen die Daten frühestens im Folgezyklus nach der Aktivierung des Bausteins bereit.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

MAC_ID BYTE (medium access control identifier)

Am Eingang MAC_ID wird die MAC-ID des Slaves angegeben, in dem ein Objekt zurückgesetzt werden soll.

CLASS_ID BYTE (class identifier)

Am Eingang CLASS_ID wird die Klassen-Kennung des Objektes, das zurückgesetzt werden soll, angegeben (vergleiche Eintrag Class in der Auflistung Parameter Daten in SYCON.net).

INST_ID BYTE (instance identifier)

Am Eingang INST_ID wird die Instanznummer des Objektes, das zurückgesetzt werden soll, angegeben (vergleiche Eintrag Inst. in der Auflistung Parameter Daten in SYCON.net).

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde die Anforderung beendet oder die Bearbeitung des Bausteins aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 17 DeviceNet AC500 / Stand: 01.2007

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

Funktionsaufruf in AWL

CAL ResObject ( EN := ResObject_EN, SLOT := ResObject_SLOT, MAC_ID := ResObject_MAC_ID, CLASS_ID := ResObject_CLASS_ID, INST_ID := ResObject_INST_ID)

LD ResObject.DONE ST ResObject_DONE

LD ResObject.ERR ST ResObject_ERR

LD ResObject.ERNO ST ResObject_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

ResObject( EN := ResObject_EN, SLOT := ResObject_SLOT, MAC_ID := ResObject_MAC_ID, CLASS_ID := ResObject_CLASS_ID, INST_ID := ResObject_INST_ID);

ResObject_DONE := ResObject.DONE; ResObject_ERR := ResObject.ERR; ResObject_ERNO := ResObject.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 18 DeviceNet AC500 / Stand: 01.2007

DNM_SET_ATTR Schreiben eines Attributes in ein Objekt in einem Slave

Mit Hilfe des Bausteins DNM_SET_ATTR können einzelne Attribute in Objekt-Instanzen in einem Slave geschrieben werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: DeviceNet_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DNM_SET_ATTR Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

MAC_ID Eingang BYTE MAC-ID des betreffenden Slaves

CLASS_ID Eingang BYTE Objekt-Klassen-Kennung des Objektes

INST_ID Eingang BYTE Instanznummer des Objektes

ATTR_ID Eingang BYTE Nummer des Attributes innerhalb des Objektes

DATA Eingang DWORD Adresse, ab der die zu schreibenden Daten abgelegt sind (über ADR-Operator)

DATA_LEN Eingang BYTE Länge der Daten in Byte, die geschrieben werden sollen

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 19 DeviceNet AC500 / Stand: 01.2007

Beschreibung

Mit Hilfe des Bausteins DNM_SET_ATTR können einzelne Attribute in Objekten eines Slave geschrieben werden.

DNM_SET_ATTR übernimmt die Werte an den Eingängen bei jeder FALSE->TRUE-Flanke am Eingang EN und sendet eine entsprechende Anforderung an den Koppler. Weitere FALSE->TRUE-Flanken am Eingang EN werden ignoriert, bis die Bearbeitung der aktiven Anforderungen abgeschlossen ist. Das Ende der Bearbeitung der Anforderung wird durch DONE = TRUE angezeigt.

Die DeviceNet-Norm beschreibt ein abstraktes Objektmodell (siehe dazu auch Systemtechnik DeviceNet-Koppler). Darin werden verschiedene Standard-Klassen definiert, die eine Art Typ-Definitionen für die Objekte darstellen. Darüber hinaus können für ein DeviceNet-Gerät zusätzliche herstellerspezifische Klassen definiert werden. Objekte bilden Instanzen der jeweiligen Klasse. Diese Objekte wiederum enthalten Attribute, die mit Hilfe des Bausteins DNM_SET_ATTR geschrieben werden können.

Einige Objekte müssen standardmäßig in jedem DeviceNet-Gerät vorhanden sein. Auf diese Standard-Objekte wird üblicherweise nicht aus einem Anwenderprogramm heraus im laufenden Betrieb zugegriffen, obwohl dies prinzipiell möglich ist. Die Zugriffe beschränken sich meist auf optionale zusätzliche Objekte bzw. deren Attribute. Diese erweiterten Attribute eines Slaves können in SYCON.net über Gerätekonfiguration | Parameter Daten eingesehen werden. Diese Ansicht zeigt eine Liste der verfügbaren Attribute des jeweiligen Slaves. Jeder Eintrag enthält die Klassen-Kennung (Class ID) des betreffenden Objektes, dessen Instanznummer (Instance ID), die Nummer des einzelnen Attributes (Attribute ID), den Datentyp des jeweiligen Attributes, die zulässigen Zugriffsarten (Lesen/Schreiben), eine Beschreibung des Attributes sowie die zulässigen Grenzwerte. Diese Informationen können bei der Verwendung eines Funktionsblock des Typs DNM_GET_ATTR genutzt werden, um die gewünschte CLASS_ID, INST_ID und ATTR_ID auszuwählen. Außerdem kann auf diese Weise ermittelt werden, von welchem Typ die Variable am Bausteineingang DATA (über ADR-Operator) sein muss und welcher Wert in dieser Variablen einzutragen ist, um das gewünschte Resultat zu erzielen.

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN werden alle weiteren Eingänge übernommen. Sind die Werte an den Eingängen gültig, wird eine entsprechende Anforderung an den Koppler gesendet und DONE für die Dauer der Bearbeitung auf FALSE gesetzt. Ist mindestens ein Eingang ungültig, wird der Fehler an den Ausgängen ERR und ERNO und das Ende der Bearbeitung durch DONE = TRUE angezeigt.

Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

Da die Ausführung des Bausteins einen Buszugriff erfordert, stehen die Daten frühestens im Folgezyklus nach der Aktivierung des Bausteins bereit.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

MAC_ID BYTE (medium access control identifier)

Am Eingang MAC_ID wird die MAC-ID des Slaves angegeben, in dem ein Attribut geschrieben werden soll.

CLASS_ID BYTE (class identifier)

Am Eingang CLASS_ID wird die Klassen-Kennung des Objektes, in dem sich das zu schreibende Attribut befindet, angegeben (vergleiche Eintrag Class in der Auflistung Parameter Daten in SYCON.net).

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 20 DeviceNet AC500 / Stand: 01.2007

INST_ID BYTE (instance identifier)

Am Eingang INST_ID wird die Instanznummer des Objektes, in dem sich das zu schreibende Attribut befindet, angegeben (vergleiche Eintrag Inst. in der Auflistung Parameter Daten in SYCON.net).

ATTR_ID BYTE (attribute identifier)

Am Eingang ATTR_ID wird die Nummer des zu schreibenden Attributes innerhalb des Objektes, in dem sich das Attribut befindet, angegeben (vergleiche Eintrag Attr. in der Auflistung Parameter Daten in SYCON.net).

DATA DWORD (data)

Am Eingang DATA wird die Adresse der Variablen, in der die zu sendenden Attribut-Daten abgelegt sind, über den ADR-Operator angegeben (zum Format der Daten siehe Eintrag Type in der Auflistung Parameter Daten in SYCON.net).

DATA_LEN BYTE (data length)

Am Eingang DATA_LEN wird die Länge der in der Variablen an Adresse DATA abgelegten zu sendenden Daten in Byte angegeben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde die Anforderung beendet oder die Bearbeitung des Bausteins aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 21 DeviceNet AC500 / Stand: 01.2007

Funktionsaufruf in AWL

LD SetAttr_DATA ADR ST ADR_SetAttr_DATA

CAL SetAttr ( EN := SetAttr_EN, SLOT := SetAttr_SLOT, MAC_ID := SetAttr_MAC_ID, CLASS_ID := SetAttr_CLASS_ID, INST_ID := SetAttr_INST_ID, ATTR_ID := SetAttr_ATTR_ID, DATA := ADR_SetAttr_DATA, DATA_LEN := SetAttr_DATA_LEN)

LD SetAttr.DONE ST SetAttr_DONE

LD SetAttr.ERR ST SetAttr_ERR

LD SetAttr.ERNO ST SetAttr_ERNO

LD SetAttr.DATA_LEN ST SetAttr_DATA_LEN

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

SetAttr( EN := SetAttr_EN, SLOT := SetAttr_SLOT, MAC_ID := SetAttr_MAC_ID, CLASS_ID := SetAttr_CLASS_ID, INST_ID := SetAttr_INST_ID, ATTR_ID := SetAttr_ATTR_ID, DATA := ADR(SetAttr_DATA), DATA_LEN := SetAttr_DATA_LEN);

SetAttr_DONE := SetAttr.DONE; SetAttr_ERR := SetAttr.ERR; SetAttr_ERNO := SetAttr.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 22 DeviceNet AC500 / Stand: 01.2007

DNM_STATE Auslesen des Zustands des DeviceNet-Kopplers

DNM_STATE gibt den Status eines DeviceNet-Kopplers aus. An den Ausgängen werden Informationen über den Zustand der Kommunikation sowie Fehlerereignisse ausgegeben.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: DeviceNet_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DNM_STATE Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

STATE_BITS Ausgang DNM_STATE_BITS_TYPE Atypische Kommunikationszustände

DNM_STATE Ausgang BYTE Allgemeiner Zustand des DeviceNet-Masters

COM_ERR Ausgang DNM_COM_ERR_TYPE Kommunikationsfehler

BUS_ERR Ausgang WORD Anzahl Busstörungen

BUS_OFF Ausgang WORD Anzahl Busausfälle

Beschreibung

Der Baustein DNM_STATE gibt den aktuellen Zustand des DeviceNet-Kopplers aus.

DNM_STATE ist aktiv, wenn der Eingang EN = TRUE ist. Wenn der Baustein aktiv ist und es wurden bei der Bearbeitung des Bausteins keine Fehler festgestellt, werden an den Ausgängen immer die aktuellen Werte angezeigt.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 23 DeviceNet AC500 / Stand: 01.2007

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde die Anforderung beendet oder die Bearbeitung des Bausteins aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit dem Ausgang DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

STATE_BITS DNM_STATE_BITS_TYPE (state bits)

Am Ausgang STATE_BITS werden atypische Kommunikationszustände des DeviceNet-Kopplers angezeigt. STATE_BITS ist nur gültig bei EN = TRUE und ERR = FALSE.

Der Aufbau der Struktur vom Typ DNM_STATE_BITS_TYPE ist in der DeviceNet-Bibliothek definiert und wird weiter unten erläutert.

DNM_STATE BYTE (devicenet master state)

Am Ausgang DNM_STATE wird der allgemeine Kommunikationszustand des DeviceNet-Masters ausgegeben. Folgende Zustände sind definiert:

State Bedeutung

Dez Hex

0 00 OFFLINE

64 40 STOP

128 80 CLEAR

192 C0 OPERATE

DNM_STATE = OFFLINE

Hat DNM_STATE den Wert OFFLINE, befindet sich der DeviceNet-Koppler im Initialisierungszustand. Ist die Initialisierungsphase abgeschlossen, geht der Koppler in den Zustand STOP über.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 24 DeviceNet AC500 / Stand: 01.2007

DNM_STATE = STOP

Hat DNM_STATE den Wert STOP, ist der Koppler vollständig initialisiert. In diesem Zustand ist der Koppler bereit für den Empfang von Konfigurationsdaten. Es findet kein Datenaustausch mit den Slaves statt. Der Koppler nimmt diesen Zustand ein, wenn kein Anwenderprogramm läuft.

DNM_STATE = CLEAR

Wird das Anwenderprogramm gestartet, geht der Koppler vom Zustand STOP in den Zustand CLEAR über und beginnt damit, die bei der Konfiguration festgelegten Verbindungen zu etablieren. Nach erfolgreichem Abschluss der Inbetriebnahmephase geht der Koppler in den Zustand OPERATE über. Tritt bei der Parametrierung ein Fehler auf, fällt der Koppler in den Zustand STOP zurück.

DNM_STATE = OPERATE

Bei laufendem Anwenderprogramm befindet sich der Koppler normalerweise im Zustand OPERATE. In diesem Zustand tauscht der Master E/A-Daten mit den Slaves aus. Tritt dabei eine Störung auf und wurde bei der Konfiguration 'Auto-Clear Modus' gewählt, fällt der Koppler in den Zustand CLEAR zurück und versucht erneut, die Verbindungen einzurichten. Wurde 'Auto-Clear-Modus' nicht gewählt, verbleibt der Koppler bei einer Störung im Zustand OPERATE. Wird das Anwenderprogramm gestoppt, geht auch der Koppler in den Zustand STOP zurück.

DNM_STATE ist nur gültig bei EN = TRUE und ERR = FALSE.

COM_ERR DNM_COM_ERR_TYPE (communication error)

Am Ausgang COM_ERR werden eventuelle Kommunikationsfehler angezeigt. COM_ERR ist nur gültig bei EN = TRUE und ERR = FALSE.

Der Aufbau der Struktur vom Typ DNM_COM_ERR_TYPE ist in der DeviceNet-Bibliothek definiert und wird, ebenso wie die möglichen Fehler, weiter unten erläutert.

BUS_ERR WORD (bus error)

Am Ausgang BUS_ERR wird die Anzahl der aufgetretenen Busstörungen ausgegeben. Eine Busstörung liegt vor, wenn der interne Error-Frame-Zähler einen bestimmten Wert überschreitet. BUS_ERR ist nur gültig, wenn EN = TRUE und ERR = FALSE.

BUS_OFF WORD (bus off)

Am Ausgang BUS_OFF wird ausgegeben, wie oft der Koppler von den Busaktivitäten ausgeschlossen wurde. Der Ausschluss von den Busaktivitäten erfolgt bei einem Überlauf des internen Error-Frame-Zählers. Der Koppler wird nach jedem Überlauf automatisch reinitialisiert. BUS_OFF ist nur gültig, wenn EN = TRUE und ERR = FALSE.

Funktionsaufruf in AWL

CAL State ( EN := State_EN, SLOT := State_SLOT)

LD State.DONE ST State_DONE

LD State.ERR ST State_ERR

LD State.ERNO ST State_ERNO

LD State.STATE_BITS ST State_STATE_BITS

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 25 DeviceNet AC500 / Stand: 01.2007

LD State.DNM_STATE ST State_DNM_STATE

LD State.COM_ERR ST State_COM_ERR

LD State.BUS_ERR ST State_BUS_ERR

LD State.BUS_OFF ST State_BUS_OFF

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

State ( EN := State_EN, SLOT := State_SLOT);

State_DONE := State.DONE; State_ERR := State.ERR; State_ERNO := State.ERNO; State_STATE_BITS := State.STATE_BITS; State_DNM_STATE := State.DNM_STATE; State_COM_ERR := State.COM_ERR; State_BUS_ERR := State.BUS_ERR; State_BUS_OFF := State.BUS_OFF;

STATE_BITS DNM_STATE_BITS_TYPE

Die Struktur STATE_BITS beinhaltet sechs boolsche Variablen, die verschiedene Kommunikationszustände anzeigen. Der Datentyp DNM_STATE_BITS_TYPE ist in der DeviceNet-Bibliothek wie folgt definiert:

TYPE DNM_STATE_BITS_TYPE: STRUCT CTRL: BOOL; AUTO_CLR: BOOL; NO_EXCH: BOOL; FATAL: BOOL; reserved1: BOOL; reserved2: BOOL; DUP_MAC_CHK: BOOL; DUP_MAC_DET: BOOL; END_STRUCT END_TYPE

CTRL BOOL (control)

Ist dieses Bit auf TRUE gesetzt, liegt ein Parametrierungsfehler vor. Im normalen Betrieb sollte CTRL = FALSE sein. Ist dies nicht der Fall, sind die Parameter- und Konfigurationsdaten zu überprüfen.

AUTO_CLR BOOL (auto clear)

Ist AUTO_CLR auf TRUE gesetzt, hat der Koppler aufgrund von Kommunikationsfehlern den Datenaustausch mit allen Slaves eingestellt und ist in den Zustand CLEAR zurückgefallen (siehe DNM_STATE).

NO_EXCH BOOL (no exchange)

Dieses Bit wird auf TRUE gesetzt, wenn mit einem oder mehreren Slaves kein Prozessdatenaustausch zustande kommt. Die Fehlerursache kann sowohl in den Konfigurationsdaten als auch in den Slaves selbst liegen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 26 DeviceNet AC500 / Stand: 01.2007

FATAL BOOL (fatal)

Ist FATAL = TRUE gesetzt, ist aufgrund eines schweren Busfehlers (z. B. Kurzschluß der Busleitung) keine Kommunikation über DeviceNet möglich. In diesem Fall sind alle Busleitungen zu überprüfen.

reserved1 BOOL

Dieses Bit ist reserviert und wird zur Zeit nicht verwendet.

reserved2 BOOL

Dieses Bit ist reserviert und wird zur Zeit nicht verwendet.

DUP_MAC_CHK BOOL (duplicate MAC-ID check)

Ist DUP_MAC_CHK = TRUE gesetzt, ist der Koppler mit der Prüfung auf doppelte MAC-IDs am Bus beschäftigt. Die Prüfung ist abgeschlossen, wenn der Koppler andere DeviceNet-Teilnehmer am Bus findet, gegen die er die MAC-ID prüfen kann, und keine doppelte MAC-ID gefunden wurde. Das Ende der Prüfung wird über DUP_MAC_CHK = FALSE angezeigt.

DUP_MAC_DET BOOL (duplicate MAC-ID detect)

Ist DUP_MAC_DET = TRUE gesetzt, hat der Koppler einen weiteren DeviceNet-Teilnehmer mit der selben MAC-ID am Bus gefunden. In diesem Fall sind die MAC-IDs aller Geräte am Bus zu überprüfen.

COM_ERR DNM_COM_ERR_TYPE

Kommunikationsfehler können über COM_ERR genauer lokalisiert werden. Der Ausgang COM_ERR wird als Struktur vom Typ DNM_COM_ERR_TYPE dargestellt. Dieser Datentyp ist in der DeviceNet-Bibliothek wie folgt definiert:

TYPE DNM_COM_ERR_TYPE: STRUCT ADDRESS: BYTE; EVENT: BYTE; END_STRUCT END_TYPE

ADDRESS BYTE (address)

Im Fehlerfall beinhaltet ADDRESS die Busadresse des fehlerhaften Teilnehmers (0 bis 63). Hat ADDRESS den Wert 255, liegt der Fehler im Koppler selbst.

EVENT BYTE (event)

Im Fehlerfall beinhaltet EVENT das Ereignis, welches zum Fehler geführt hat. Das Event bezieht sich entweder auf einzelne Adressen (ADDRESS 0..63) oder auf den Koppler selbst (ADDRESS = 255)

ADDRESS <> 255 Fehler bei Teilnehmern mit Knotenadresse "ADDRESS"

Event Bedeutung Fehlerquelle Ursache/Abhilfe

1 Überwachung des Slaves fehlgeschlagen, nachdem dieser bereits betriebsbereit war

Slave Überprüfung, ob der Slave eingeschaltet ist und läuft

30 Zeitüberschreitung bei Slave-Zugriff Slave Slave antwortet nicht; Überprüfung der Baudrate und der MAC-ID des Slaves

32 Slave verweigert Zugriff mit Fehlerkennung

Slave Abrufen der Slavediagnose zur Auswertung der Fehlerkennung

35 Slave antwortet mit Verbindungsfehler in der Allokierungsphase

Slave Abrufen der Slave-Diagnose zur Auswertung der erweiterten Fehlerkennung

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 27 DeviceNet AC500 / Stand: 01.2007

36 Tatsächliche Länge der produzierten Verbindung (Eingangsdaten aus Sicht des Masters) weicht von der konfigurierten Länge ab

Slave / Konfiguration

Abrufen der Slavediagnose zur Ermittlung der tatsächlichen Länge

37 Tatsächliche Länge der konsumierten Verbindung (Ausgangsdaten aus Sicht des Masters) weicht von der konfigurierten Länge ab

Slave / Konfiguration

Abrufen der Slavediagnose zur Ermittlung der tatsächlichen Länge

38 Unbekannte und nicht bearbeitete Antwort des Slaves auf Dienst-Telegramm

Slave / Koppler

Abrufen der Slavediagnose zur Ermittlung der tatsächlichen Länge

39 Verbindung bereits angefordert Slave Verbindung wird automatisch beendet

40 Anzahl CAN-Message-Datenbytes beim Lesen der Länge der produzierten oder konsumierten Verbindung ist ungleich 4

Slave Slave-Verhalten nicht normgerecht, Kommunikation mit Slave nicht möglich

41 Vordefinierte Master-Slave-Verbindung existiert bereits

Slave / Koppler

Verbindung wird automatisch beendet

42 Länge der Slave-Polling-Antwort ist ungleich der Länge der produzierten Verbindung

Slave -

43 Sequenz-Fehler in Slave-Polling-Antwort

Slave Die ersten beiden Segmente im gemultiplexten Transfer wurden empfangen

44 Fragmentierungsfehler in Slave-Polling-Antwort

Slave Fragmentierungszähler weicht beim gemultiplexten Transfer vom erwarteten Wert ab

45 Sequenz-Fehler in Slave-Polling-Antwort

Slave Mittleres oder letztes Segment wurde vor dem ersten Segment empfangen

46 Länge der Slave-Bit-Strobe-Antwort ist ungleich der Länge der produzierten Verbindung

Slave -

47 Sequenz-Fehler in Zustandsänderungs- oder zyklischen Antwort des Slaves

Slave Die ersten beiden Segmente im gemultiplexten Transfer wurden empfangen

48 Fragmentierungs-Fehler in Zustandsänderungs- oder zyklischen Antwort des Slaves

Slave Fragmentierungszähler weicht beim gemultiplexten Transfer vom erwarteten Wert ab

49 Sequenz-Fehler in Zustandsänderungs- oder zyklischen Antwort des Slaves

Slave Mittleres oder letztes Segment wurde vor dem ersten Segment empfangen

51 Länge der Zustandsänderungs- oder zyklischen Antwort des Slaves ist ungleich der Länge der produzierten Verbindung

Slave -

52 UCMM-Gruppe nicht unterstützt Slave Ändern der UCMM-Gruppe

59 Aktuelle Konfigurationsdaten enthalten doppelte Geräteadressen

Konfiguration Jedes Gerät muss eien eindeutige MAC-ID besitzen; Überarbeitung der Konfigurationsdaten

60 Fehlerhafter Längenindikator eines Slave-Datensatzes

Konfiguration Fehler beim Laden der Konfigurationsdaten; Kontaktaufnahme Service

61 Fehlerhafter Längenindikator der zusätzlichen Tabelle der

Konfiguration Fehler beim Laden der Konfigurationsdaten;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 28 DeviceNet AC500 / Stand: 01.2007

vordefinierten Master-Slave-Verbindungen

Kontaktaufnahme Service

62 Fehlerhafter Längenindikator der Tabelle der Master-Slave-I/O-Konfiguration

Konfiguration Fehler beim Laden der Konfigurationsdaten; Kontaktaufnahme Service

63 Vordefinierte Master-Slave-I/O-Konfiguration stimmt nicht mit der zusätzlichen Tabelle überein

Konfiguration Unterschiedliche Anzahl I/O-Module und Anzahl der konfigurierten Offset-Adressen; Kontaktaufnahme Service

64 Fehlerhafter Längenindikator des Parameter-Datensatzes

Konfiguration Wert des Längenindikators zu gering; Kontaktaufnahme Service

65 Anzahl der deklarierten Eingänge in der zusätzlichen Tabelle stimmt nicht mit der Anzahl der I/O-Konfiguration überein

Konfigurator Jedem Eintrag in der I/O-Konfiguration muss genau ein Eintrag in der zusätzlichen Tabelle zugeordnet sein; Kontaktaufnahme Service

66 Anzahl der deklarierten Ausgänge in der zusätzlichen Tabelle stimmt nicht mit der Anzahl in der I/O-Konfiguration überein

Konfigurator Jedem Eintrag in der I/O-Konfiguration muss genau ein Eintrag in der zusätzlichen Tabelle zugeordnet sein; Kontaktaufnahme Service

67 I/O-Konfiguration enthält unbekannten Datentyp

Konfiguration Es werden nur die Datentypen BOOL, BYTE, WORD, DWORD und String unterstützt.

68 Datentyp eines definierten I/O-Moduls in einer Verbindung stimmt nicht mit der definierten Datenlänge überein

Konfiguration Folgende Datentypen und -längen sind gültig: BOOL = 1 Byte UINT8 = BYTE = 1 Byte UINT16 = WORD = 2 Byte UINT32 = DWORD = 4 Byte

69 Konfigurierte Ausgangsadressen eines Moduls (Offset + Länge) überschreiten den Maximalwert von 3584

Konfiguration Das Prozessdatenabbild ist auf 3584 Byte begrenzt

70 Konfigurierte Eingangsadressen eines Moduls (Offset + Länge) überschreiten den Maximalwert von 3584

Konfiguration Das Prozessdatenabbild ist auf 3584 Byte begrenzt

71 Unbekannter vordefinierter Verbindungstyp

Konfiguration Es werden nur die Verbindungstypen zyklisch, pollend, Zustandswechsel und bit strobed unterstützt

72 Mehrere Parallelverbindungen definiert

Konfiguration Je Slave wird nur ein Verbindungstyp unterstützt

73 Die konfigurierte Expected-Packet-Rate einer Verbindung ist geringer als die Production-Inhibit-Time

Konfiguration Expected-Packet-Rate muss größer als die Production-Inhibit-Time sein

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 29 DeviceNet AC500 / Stand: 01.2007

ADDRESS = 255 Koppler-Fehler

Event Bedeutung Fehlerquelle Ursache/Abhilfe

52 Unbekannter Prozessdaten-Handshake-Modus

Konfiguration Kontaktaufnahme mit Service

53 Ungültige Datenübertragungsrate Konfiguration Überprüfung der Datenübertragungsrate; Kontaktaufnahme mit Service

54 Ungültige MAC-ID Konfiguration Überprüfung der MAC-ID in den Konfigurationsdaten

57 Doppelte MAC-ID am Bus gefundent Konfiguration / anderer Teilnehmer

Überprüfung der MAC-ID in den Konfigurationsdaten aller Teilnehmer

58 Kein Geräteeintrag in den aktuellen Konfigurationsdaten

Konfiguration Fehler beim Laden der Konfigurationsdaten; Kontaktaufnahme mit Service

210 Keine Konfigurationsdaten Konfiguration / Koppler

Konfigurationsdaten in Koppler laden

212 Fehler beim Lesen der Datenbasis Konfiguration / Koppler

Kontaktaufnahme mit Service

220 Watchdog-Fehler Steuerung Kontaktaufnahme mit Service

221 Kein Prozessdaten-Handshake Steuerung Kontaktaufnahme mit Service

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 30 DeviceNet AC500 / Stand: 01.2007

DNM_SYS_DIAG Anzeigen von Statusübersichten aller Slaves

Der Baustein DNM_SYS_DIAG gibt am Ausgang DEV ein Bitfeld als Zustandsübersicht über alle Slaves (Clients) aus. Über den Eingang TYP können drei verschiedene Übersichten ausgewählt werden.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1 Anmerkung:

Enthalten in Bibliothek: DeviceNet_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DNM_SYS_DIAG Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz (Kartennummer) des Kopplers

TYP Eingang BYTE Auswahl des Übersichtstyps

DONE Ausgang BOOL Datenpaket bereitgestellt oder Fehler aufgetreten

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

DEV Ausgang ARRAY[0...63] OF BOOL

Statusübersicht der Slaves

Beschreibung

Der Baustein CANOM_SYS_DIAG gibt verschiedene Statusübersichten über alle Slaves aus. Es stehen drei Übersichtsarten zur Wahl:

• Konfigurationsübersicht

• E/A-Datenaustauschübersicht

• Diagnoseübersicht

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 31 DeviceNet AC500 / Stand: 01.2007

EN BOOL (enable)

Über den Eingang EN kann der Baustein aktiviert (EN = TRUE) bzw. deaktiviert (EN = FALSE) werden. Ist der Baustein aktiv, werden an den Ausgängen die aktuellen Werte ausgegeben.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz des Kopplers (Kartennummer) ausgewählt, mit dem der Baustein arbeiten soll.

Der interne Koppler trägt dabei immer die Kartennummer 0. Alle externen Koppler werden von rechts nach links durchnummeriert und fangen mit der Kartennummer 1 an.

TYP BOOL (type)

Am Eingang TYP wird ausgewählt, welche Statusübersicht an DEV angezeigt werden soll.

TYP = 1 Konfigurationsübersicht

Am Ausgang DEV wird angezeigt, mit welchen Slaves der Master erfolgreich Verbindungen aufgebaut hat. Dabei ist zu beachten, dass der Master nur Verbindungen mit solchen Slaves aufbaut, die ihm bei der Erstellung der Konfigurationsdaten zugeteilt wurden.

TYP = 2 Datenaustauschübersicht

Am Ausgang DEV wird angezeigt, mit welchen Slaves der Master E/A-Daten austauscht. Der Datenaustausch kann nur mit Slaves erfolgen, die durch den Master selbst konfiguriert wurden. Die Datenaustauschübersicht kann nur angefordert werden, wenn der Koppler im Zustand OPERATE ist.

TYP = 3 Diagnoseübersicht

Am Ausgang DEV wird angezeigt, welche Slaves eine Diagnose melden. Die Diagnoseübersicht kann nur angefordert werden, wenn der Koppler im Zustand OPERATE ist.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteins angezeigt. Wurde die Anforderung beendet oder die Bearbeitung des Bausteins aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Bausteins ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

DEV ARRAY[0...63] OF BOOL (device)

Am Ausgang DEV wird die Statusübersicht in Form eines Bitfeldes ausgegeben. Jedes Bit innerhalb dieses Feldes repräsentiert einen Slave. Der Index entspricht dabei der Busadresse (MAC-ID) des Slaves. Ein auf TRUE gesetztes Bit bedeutet, dass der über TYP ausgewählte Zustand für den entsprechenden Slave zutrifft. Ist zum Beispiel TYP = 1 ausgewählt und DEV[2] = TRUE, wurde der Slave mit der MAC-ID 2 erfolgreich vom Master konfiguriert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 32 DeviceNet AC500 / Stand: 01.2007

Ist DEV[2] = FALSE, ist die Konfiguration des betreffenden Slaves noch nicht abgeschlossen oder der Slave ist nicht Bestandteil der Konfigurationsdaten des Masters.

Wurde TYP = 2 gewählt und DEV[2] = TRUE, bedeutet dies, dass der Master E/A-Daten mit dem Slave mit der MAC-ID 2 austauscht. Ist hingegen DEV[2] = FALSE, tauscht der Master derzeit keine E/A-Daten mit dem Slave aus. Der Master kann nur mit solchen Slaves Daten austauschen, die er zuvor erfolgreich in Betrieb genommen hat.

Bei TYP = 3 bedeutet zum Beispiel DEV[2] = TRUE, dass der Slave mit der MAC-ID 2 eine Diagnose meldet. Die detaillierte Diagnose kann dann mit Hilfe des Bausteins DNM_DEV_DIAG angefordert werden.

Das an DEV ausgegebene Bitfeld ist nur gültig bei EN = TRUE und ERR = FALSE.

Funktionsaufruf in AWL

CAL SysDiag ( EN := SysDiag_EN, SLOT := SysDiag_SLOT, TYP := SysDiag_TYP)

LD SysDiag.DONE ST SysDiag_DONE

LD SysDiag.ERR ST SysDiag_ERR

LD SysDiag.ERNO ST SysDiag_ERNO

LD SysDiag.DEV ST SysDiag_DEV

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

SysDiag( EN := SysDiag_EN, SLOT := SysDiag_SLOT, TYP := SysDiag_TYP);

SysDiag_DONE := SysDiag.DONE; SysDiag_ERR := SysDiag.ERR; SysDiag_ERNO := SysDiag.ERNO; SysDiag_DEV := SysDiag.DEV;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 33 DeviceNet AC500 / Stand: 01.2007

Glossar

BOOL

Variablen vom Typ BOOL können die Wahrheitswerte TRUE und FALSE annehmen. Es werden 8 Bit Speicherplatz reserviert.

DINT

DINT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DINT Untergrenze -2147483648 Obergrenze 2147483647 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

DWORD

DWORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DWORD Untergrenze 0 Obergrenze 4294967295 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

INT

INT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ INT Untergrenze -32768 Obergrenze 32767 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

WORD

WORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ WORD Untergrenze 0 Obergrenze 65535 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 34 DeviceNet AC500 / Stand: 01.2007

BYTE

BYTE gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ BYTE Untergrenze 0 Obergrenze 255 Speicherplatz 8 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

Funktionen

Funktionen sind Unterprogramme, die beliebig viele Eingangsparameter haben und genau ein Ergebnis-Element zurückliefern. Das zurückgelieferte Ergebnis kann von elementarem, aber auch von zusammengesetztem Datentyp sein. Eine Funktion darf also auch ein Feld, eine Struktur, ein Feld von Strukturen etc. zurückgeben.

Funktionen liefern bei gleicher Eingangsbeschaltung stets das gleiche Ergebnis (sie besitzen kein Gedächtnis.

Daraus abzuleiten sind folgende Regeln:

• Innerhalb von Funktionen dürfen globale Variablen weder gelesen noch geschrieben werden. • Innerhalb von Funktionen dürfen Absolutoperanden weder gelesen noch geschrieben werden • Innerhalb von Funktionen dürfen Funktionsblöcke nicht aufgerufen werden.

Funktionsblöcke

Funktionsblöcke sind Unterprogramme, die jeweils beliebig viele Eingangs-, Ausgangs- und interne Variablen haben. Sie werden von einem Programm aufgerufen oder von einem anderen Funktionsblock.

Da sie auch mehrfach genutzt werden können (mit jeweils anderen Datensätzen), können Funktionsblöcke (ihr Code und die Schnittstelle) als Typ betrachtet werden. Über die Zuordnung eines individuellen Datensatzes (Deklaration) wird eine Instanz des Funktionsblockes angelegt.

Anders als Funktionen können Funktionsblöcke statisch lokale Daten haben, die von einem Aufruf zum nächsten gerettet werden. Damit können z. B. Zähler realisiert werden, die ihren Zählerstand nicht vergessen dürfen. D. h. Funktionsblöcke können ein Gedächtnis haben.

Funktionen und Funktionsblöcke unterscheiden sich in zwei wesentlichen Punkten:

• Ein Funktionsblock hat beliebig viele Ausgangsparameter, die Funktion maximal einen, wobei sich die Ausgangsparameter von Funktionen und Funktionsblöcken syntaktisch unterscheiden.

• Ein Funktionsblock kann ein Gedächtnis haben, eine Funktion nicht.

Funktionsblöcke mit Vergangenheitswerten (Gedächtnis):

Bei Funktionsblöcken mit Vergangenheitswerten ist zu beachten, dass Instanznamen nicht mehrfach vergeben werden dürfen, wenn unterschiedliche Datensätze aufgerufen werden sollen.

Funktionsblöcke ohne Vergangenheitswerte (Gedächtnis):

Bei Funktionsblöcken ohne Vergangenheitswerte braucht nur eine Instanz für den FB-Typ angelegt zu werden. Diese Instanz kann für mehrere Aufrufe des FB (auch mit unterschiedlichen E/A-Werten) genutzt werden.

Der Instanzname kann beliebig definiert werden. Der Typ ist vorgegeben und ist identisch mit dem Namen des Funktionsblockes.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 35 DeviceNet AC500 / Stand: 01.2007

Index

B

Bausteinübersicht, geordnet nach Aufrufnamen 3

Besonderheiten der DeviceNet-Bibliothek 2

Bestandteile der DeviceNet-Bibliothek 2

D

DNM_DEV_DIAG Abrufen von Diagnosedaten eines Slaves 4

DNM_GET_ATTR Lesen eines Attributes aus einem Objekt in einem Slave 11

DNM_RES_OBJ Rücksetzen eines Objektes in einem Slave 15

DNM_SET_ATTR Schreiben eines Attributes in ein Objekt in einem Slave 18

DNM_STATE Auslesen des Zustands des DeviceNet-Kopplers 22

DNM_SYS_DIAG Anzeigen von Statusübersichten aller Slaves 30

G

Glossar 33

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 36 DeviceNet AC500 / Stand: 01.2007

Softwarebeschreibung AC500

Skalierbare SPS für individuelle Automatisierung DC541- Bausteinbibliothek

DC541

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 1 DC541 AC500 / Stand: 04.2007

Inhalt

DC541-Bibliothek ............................................................................................................................. 2

Voraussetzung für die Verwendung der Bibliothek ......................................................................... 2

Besonderheiten der DC541-Bibliothek ................................................................................................ 2

Bestandteile der DC541-Bibliothek....................................................................................................... 2

Bausteinübersicht, geordnet nach Aufrufnamen.............................................................................. 3

Die integrierte Visualisierung der Bausteine der DC541-Bibliothek ............................................ 3

DC541_32BIT_CNT 32-Bit-Encoder .......................................................................................................... 5

DC541_FREQ Zeit- und Frequenzmessung ............................................................................................ 13

DC541_FREQ_FAST Schnelle Zeit- und Frequenzmessung .................................................................. 20

DC541_FREQ_OUT Frequenzausgabe................................................................................................... 26

DC541_FWD_CNT 32-Bit-Vorwärtszähler ............................................................................................... 31

DC541_GET_CFG Ausgabe der Konfiguration des DC541..................................................................... 37

DC541_INT_IN Ausgabe der Interruptquelle............................................................................................ 42

DC541_IO Lesen/Schreiben der Ein-/Ausgänge des DC541................................................................... 45

DC541_LIMIT Grenzwertüberwachung des 32-Bit-Zählers ..................................................................... 48

DC541_PWM Pulsweitenmodulator ......................................................................................................... 53

DC541_STATE Statusabfrage des DC541 .............................................................................................. 57

Glossar ....................................................................................................................................................... 60

Index............................................................................................................................................................ 62

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 2 DC541 AC500 / Stand: 04.2007

DC541-Bibliothek

Voraussetzung für die Verwendung der Bibliothek

Hinweis:

Die Bausteine der DC541-Bibliothek laufen nur im RUN-Modus der SPS, nicht im Simulationsmodus.

Die Bausteine der DC541_AC500_V11.lib sind in AC500-Steuerungen mit Laufzeitsystem ab Version V1.1.2 verfügbar.

Besonderheiten der DC541-Bibliothek

Die DC541-Bibliothek enthält alle Bausteine, die für den Einsatz des DC541 erforderlich sind. Die Konfiguration des DC541 erfolgt in der Steuerungskonfiguration. Die AC500-Steuerungskonfiguration ist im Kapitel Systemtechnik_CPU / Steuerungskonfiguration ausführlich beschrieben.

Die DC541_AC500_V11.lib wird nach dem Eintragen eines DC541 in die Steuerungskonfiguration beim nächsten Übersetzen des Projektes automatisch eingebunden.

Bestandteile der DC541-Bibliothek

Folgende Funktionsbausteine sind in der DC541-Bibliothek enthalten:

Gruppe: Diagnosis

DC541_GET_CFG Ausgabe der Konfiguration des DC541

DC541_STATE Statusabfrage des DC541

Gruppe: IO

DC541_INT_IN Ausgabe der Interruptquelle

DC541_IO Lesen/Schreiben der Ein-/Ausgänge des DC541

Gruppe: Counter

DC541_32BIT_CNT 32-Bit-Encoder

DC541_FREQ Zeit- und Frequenzmessung

DC541_FREQ_FAST Schnelle Zeit- und Frequenzmessung

DC541_FREQ_OUT Frequenzausgabe

DC541_FWD_CNT 32-Bit-Vorwärtszähler

DC541_LIMIT Grenzwertüberwachung des 32-Bit-Zählers

DC541_PWM Pulsweitenmodulation

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 3 DC541 AC500 / Stand: 04.2007

Bausteinübersicht, geordnet nach Aufrufnamen

Zeichenerklärung:

FBmV … Funktionsblock mit Vergangenheitswerten

FBoV … Funktionsblock ohne Vergangenheitswerte

F … Funktion

VE-Name Typ Funktion

DC541_32BIT_CNT FBmV 32-Bit-Encoder

DC541_FREQ FBmV Zeit- und Frequenzmessung

DC541_FREQ_FAST FBmV Schnelle Zeit- und Frequenzmessung

DC541_FREQ_OUT FBmV Frequenzausgabe

DC541_FWD_CNT FBmV 32-Bit-Vorwärtszähler

DC541_GET_CFG FBmV Ausgabe der Konfiguration des DC541

DC541_INT_IN FBmV Ausgabe der Interruptquelle

DC541_IO FBmV Lesen/Schreiben der Ein-/Ausgänge des DC541

DC541_LIMIT FBmV Grenzwertüberwachung des 32-Bit-Zählers

DC541_PWM FBmV Pulsweitenmodulation

DC541_STATE FBmV Statusabfrage des DC541

Die integrierte Visualisierung der Bausteine der DC541-Bibliothek

Folgende Bausteine der Bibliothek DC541_AC500_V11.LIB verfügen über eine integrierte Visualisierung:

Baustein Name der Visualisierung

DC541_32BIT_CNT visuDC541_32BIT_CNT

DC541_FREQ visuDC541_FREQ

DC541_FREQ_FAST visuDC541_FREQ_FAST

DC541_FREQ_OUT visuDC541_FREQ_OUT

DC541_FWD_CNT visuDC541_FWD_CNT

DC541_GET_CFG visuDC541_GET_CFG

DC541_LIMIT visuDC541_LIMIT

Mittels der Visualisierung können die Ausgänge der Bausteine angezeigt werden. Ist der Eingang der Bausteine EN_VISU = TRUE, können auch die Eingänge bedient werden. Damit die Eingänge der Bausteine sowohl aus dem Programm als auch aus der Visualisierung bedient werden können, sind diese Eingänge als VAR_IN_OUT deklariert und müssen dementsprechend mit Variablen belegt werden. Diese Eingänge dürfen nicht mit direkten Konstanten belegt werden.

Um die Visualisierung in ein Projekt einzubinden, geht man wie folgt vor:

• Erzeugen einer neuen Visualisierung mit Visualisierungen / Objekt einfügen (z. B. visuTestDC541)

• Einfügen einer Visualisierung mit

• Im sich öffnenden Fenster ist die entsprechende Visualisierung für den Baustein auszuwählen:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 4 DC541 AC500 / Stand: 04.2007

• Danach ist die eingebundene Visualisierung zu konfigurieren. Durch Einfachklick mit der linken Maustaste wird die Visualisierung markiert. Nach Rechte-Maus-Klick ist im Kontextmenü die Funktion "Konfigurieren.." zu wählen.

• Im sich öffnenden Dialog wird die Visualisierung konfiguriert. Es wird empfohlen, den Rahmen auf "Fest" einzustellen. Dann bleiben die Seitenverhältnisse und die Schrift in Originalgröße erhalten.

• Jetzt muss die Visualisierung noch mit der Instanz des Bausteines verknüpft werden. Das geschieht im Diaglog des Schalters "Platzhalter".

• Unter "Ersetzung" wird hier die Instanz des Bausteines direkt eingetragen oder mit der Eingabehilfe <F2> ausgewählt.

• Mit <OK> werden die Dialoge beendet. Danach wird die eingefügte Visualisierung noch an die richtige Größe angepasst.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 5 DC541 AC500 / Stand: 04.2007

DC541_32BIT_CNT 32-Bit-Encoder

Der Baustein DC541_32BIT_CNT ist ein 32-Bit-Zähler mit Richtungsdiskriminator und ist für den Anschluss eines Inkrementalgebers geeignet.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1.3 Anmerkung:

Verfügbar ab Firmware des DC541: V1.1

Enthalten in Bibliothek: DC541_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DC541_32BIT_CNT Instanzname

SLOT Eingang BYTE Steckplatz des DC541

CH Eingang BYTE =0, Kanalnummer, z. Zt. nur Kanal C0

EN_VISU Eingang BOOL Freigabe der Eingaben in der integrierten Visualisierung des Bausteins visuDC541_32BIT_CNT

EN Ein-/Ausgang BOOL Freigabe der Bausteinbearbeitung

SET Ein-/Ausgang BOOL Setzeingang

EN_REF Ein-/Ausgang BOOL Freigabe der Referenzpunktfahrt

EN_TOUCH Ein-/Ausgang BOOL Freigabe des Touchtriggers

EN_UD Ein-/Ausgang BOOL Auswahl der Zählart: =FALSE Inkrementalgeber (Spuren A/B) =TRUE C1-vorwärts / C0-rückwärts

EN_LIM Ein-/Ausgang BOOL Auswahl Endloszähler oder Begrenzungszähler

LIM_MAX Ein-/Ausgang DWORD Endwert des Zählers bei EN_LIM = TRUE

LIM_MIN Ein-/Ausgang DWORD Startwert des Zählers bei EN_LIM = TRUE

CNT_SET Ein-/Ausgang DWORD Setzwert des Zählers

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 6 DC541 AC500 / Stand: 04.2007

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

RDY_REF Ausgang BOOL Fertigmeldung der Referenzpunktfahrt

RDY_TOUCH Ausgang BOOL Fertigmeldung Touchtrigger

MAX_LIM Ausgang BOOL =TRUE: LIM_MAX erreicht (Endloszähler)

MIN_LIM Ausgang BOOL =TRUE: LIM_MIN erreicht (Endloszähler)

CNT_ACT Ausgang DWORD Aktueller Zählerwert (Zählerstand)

CNT_TOUCH Ausgang DWORD Touchtriggerwert

Beschreibung

Der 32-Bit-Zähler ist ein Vorwärts-/Rückwärtszähler mit Richtungsdiskriminator. Der Zähler kann in zwei Zählarten eingesetzt werden:

- EN_UD=FALSE: Anschluss eines Inkrementalgebers (Spur A / Spur B, 90° versetzt) Es können ca. 60-kHz-Signale gezählt werden. Das entspricht einem Motor mit 3600 U/min und einem Geber mit 1000 Impulsen pro Umdrehung. Eine Impulsvervielfachung (x2 oder x4) findet nicht statt.

- EN_UD=TRUE: Vor- / Rückwärtszähler Es können ca. 60-kHz-Signale gezählt werden. Signale auf Kanal C1 werden vorwärts gezählt, Signale auf Kanal C0 rückwärts.

Der Zähler belegt immer die Kanäle C0...C3 des DC541:

• C0: Spur A des Inkrementalgebers

• C1: Spur B des Inkrementalgebers

• C2 und C3: Referenznocken oder Touch-Trigger

Der Zähler kann in zwei verschiedenen Betriebsarten betrieben werden:

• Endloszähler (Endless mode)

• Begrenzungszähler (Limit mode)

Die Einstellung der Betriebsart erfolgt mit dem Eingang EN_LIM.

Bei Einstellung EN_LIM = FALSE arbeitet der Zähler als Endloszähler (Endless mode). Ein Überlauf ergibt sich entsprechend dem 32-Bit Wert bei 16#FFFFFFFF = 4.294.967.295. In diesem Mode wird ein Über- bzw. Unterschreiten der Grenzwerte LIM_MAX und LIM_MIN an den Ausgängen MAX_LIM bzw. MIN_LIM angezeigt.

Bei Einstellung EN_LIM = TRUE (Limit mode) zählt der Zähler zwischen LIM_MIN und LIM_MAX. Bei Überlauf, d. h. Erreichen von LIM_MAX beginnt der Zähler wieder bei LIM_MIN.

Der obere Grenzwert LIM_MAX muss größer als der untere Grenzwert LIM_MIN sein. Ist der untere Grenzwert LIM_MIN größer als der obere Grenzwert LIM_MAX, wird eine entsprechende Fehlermeldung an den Ausgängen ERR/ERNO gemeldet. In diesem Fall werden die Werte für LIM_MIN und LIM_MAX nicht an das DC541 übergeben. Die Differenz zwischen LIM_MIN und LIM_MAX muss mindestens doppelt so groß sein, wie die Frequenz der Zählimpulse pro DC541-Zyklus.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 7 DC541 AC500 / Stand: 04.2007

Beispiel:

- Frequenz der Zählimpulse = 40 kHz = 40000 Ink/s = 40 Ink/ms - Zykluszeit des DC541 = 100 µs - LIM_MIN = 0

-> Frequenz Zählimpulse pro DC541-Zyklus: 40 Ink/ms = 4 Ink/100 µs -> LIM_MAX > 8

Mit dem Eingang SET wird der Zähler auf den Wert CNT_SET gesetzt. Der Zähler wird so lange auf dem Wert CNT_SET gehalten, wie der Eingang SET = TRUE ist.

Wenn mit EN_REF die Referenzpunktfahrt freigegeben ist, wird der Zähler mit einer steigenden Flanke auf dem Kanal C2 oder C3 auf den Wert des Einganges CNT_SET gesetzt.

Mit EN_TOUCH wird eine Touch-Trigger-Messung freigegeben. Das bedeutet: Mit der steigenden Flanke auf dem Kanal C2 oder C3 wird der Wert des Zählerstandes gespeichert und auf den Ausgang CNT_TOUCH ausgegeben. Die Gültigkeit von TOUCH_CNT wird über RDY_TOUCH angezeigt. Diese Funktionalität kann genutzt werden, um den Wert des Zählers im Verhältnis zu einem externen Ereignis festzustellen. Die Ergebnisse sind inkrementgenau.

Es darf immer nur eine der Funktionen Referenzpunktfahrt oder Touch-Trigger-Messung freigegeben werden. Werden beide gleichzeitig freigegeben oder ist bei Freigabe einer Funktion die andere noch nicht abgeschlossen, so erfolgt eine entsprechende Fehlermeldung an den Ausgängen ERR/ERNO.

Eine neue Referenzpunktfahrt oder Touch-Trigger-Messung muss mit einer positiven Flanke auf der entsprechenden Freigabe gestartet werden.

Wird die Nullspur eines Inkrementalgebers auf den Kanal C2 oder C3 verdrahtet, so darf im Bereich des Referenznockens keine Touch-Trigger-Messung erfolgen!

Das Gerät DC541 muss als Zählgerät (Counter mode) konfiguriert sein.

Der Baustein DC541_32BIT_CNT verfügt über eine integrierte Visualisierung visuDC541_32BIT_CNT, über die alle Funktionen des Bausteines parallel zum Anwenderprogramm gesteuert werden können, wenn der Eingang EN_VISU = TRUE ist. Die Einbindung und Funktion der Visualisierung sind am Ende der Bausteinbeschreibung ausführlich beschrieben.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz (Kartennummer) des DC541 ausgewählt.

Die Steckplätze werden von rechts nach links durchnummeriert. Steckplatz 1 ist der Steckplatz unmittelbar links neben der CPU.

CH BYTE (channel)

Am Eingang CH wird der Eingang für den Zähler ausgewählt. Gültiger Wert ist z. Zt. nur 0. Das Gerät belegt die Eingänge C0...C3. Wird ein ungültiger Wert am Eingang CH eingetragen oder ist der gewählte Kanal nicht als 32-Bit-Zähler (32BIT_CNT) konfiguriert, so wird der Baustein mit DONE=ERR=TRUE und einer entsprechenden Fehlernummer in ERNO abgebrochen.

EN_VISU BOOL (enable input in visualization)

Wenn der Eingang EN_VISU = TRUE ist, können Eingänge des Bausteines (außer SLOT, CH und EN_VISU) auch über die integrierte Visualisierung des Bausteines bedient werden. Ist der Eingang EN_VISU = FALSE, ist die Eingabe über die Visualisierung abgeschaltet und die Beschriftung der entsprechenden Bedienelemente ausgegraut. Die Anzeige der aktuellen Werte erfolgt immer. Die Einbindung und Funktion der Visualisierung sind am Ende der Bausteinbeschreibung ausführlich beschrieben (siehe "Die integrierte Visualisierung des Bausteines DC541_32BIT_CNT").

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 8 DC541 AC500 / Stand: 04.2007

EN BOOL (enable)

Der Eingang EN ist konstant mit TRUE zu belegen, solange die Impulse am Eingang CH gezählt werden sollen. Ist der Eingang EN = FALSE, wird der Baustein nicht bearbeitet.

Beim ersten Aufruf werden die Eingänge auf Gültigkeit und Plausibilität sowie das entsprechende Gerät auf Konfiguration in der Betriebsart "Zähler-Mode" geprüft. Ist das nicht der Fall, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben.

SET BOOL (set)

Mit dem Eingang SET = TRUE wird der Zähler auf den Wert des Einganges CNT_SET gesetzt. Der Zähler wird solange auf dem Wert CNT_SET gehalten, wie der Eingang SET = TRUE ist. Mit der fallenden Flanke am Eingang SET wird das Zählen wieder freigegeben.

EN_REF BOOL (enable reference)

Mit einer steigenden Flanke am Eingang EN_REF wird die Referenzpunktfahrt freigegeben. Ist EN_REF = TRUE, wird mit einer steigenden Flanke am Eingang C2 oder C3 der Istwert des Zählers CNT_ACT auf den Wert des Einganges CNT_SET gesetzt.

Die nächste Messung wird wieder durch eine steigende Flanke am Eingang EN_REF gestartet.

Es darf immer nur eine der Funktionen Referenzpunktfahrt oder Touch-Trigger-Messung freigegeben werden. Werden beide gleichzeitig freigegeben oder ist bei Freigabe einer Funktion die andere noch nicht abgeschlossen, so erfolgt eine entsprechende Fehlermeldung an den Ausgängen ERR/ERNO.

EN_TOUCH BOOL (enable touchtrigger)

Mit einer steigenden Flanke am Eingang EN_TOUCH wird eine Touch-Trigger-Messung freigegeben. Ist EN_TOUCH = TRUE, wird bei einer steigenden Flanke am Eingang C2 oder C3 der aktuelle Zählerstand gespeichert und am Ausgang CNT_TOUCH ausgegeben.

Die nächste Messung wird wieder durch eine steigende Flanke am Eingang EN_TOUCH gestartet.

Es darf immer nur eine der Funktionen Referenzpunktfahrt oder Touch-Trigger-Messung freigegeben werden. Werden beide gleichzeitig freigegeben oder ist bei Freigabe einer Funktion die andere noch nicht abgeschlossen, so erfolgt eine entsprechende Fehlermeldung an den Ausgängen ERR/ERNO.

EN_UD BOOL (enable up/down)

Am Eingang EN_UD erfolgt die Auswahl der Zählart des 32-Bit-Zählers. Es gilt:

EN_UD=FALSE: Inkrementalgeberanschluss (Spur A/B 90° vesetzt) EN_UD=TRUE: Vorwärts-/Rückwärtszähler (C1-vorwärts, C0-rückwärts)

EN_LIM BOOL (enable limit)

Mit dem Eingang EN_LIM wird die Betriebsart des Zählers eingestellt:

EN_LIM = FALSE Endloszähler (Endless mode) EN_LIM = TRUE Begrenzungszähler (Limit mode)

Die Umschaltung zwischen den Betriebsarten kann auch im laufenden Betrieb erfolgen. Ebenso können der untere LIM_MIN und obere Grenzwert LIM_MAX im laufenden Betrieb geändert werden. Es ist darauf zu achten, dass der obere Grenzwert LIM_MAX immer größer als der untere Grenzwert LIM_MIN sein muss. Ist LIM_MIN > LIM_MAX, wird eine entsprechende Fehlermeldung an den Ausgängen ERR/ERNO gemeldet.

Bei einer steigenden Flanke am Eingang EN_LIM, d. h. Übergang vom Endloszähler (Endless mode) zum Begrenzungszähler (Limit mode), kann sich der aktuelle Zählerstand abhängig vom Wert des unteren (LIM_MIN) und oberen (LIM_MAX) Grenzwertes wie folgt ändern:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 9 DC541 AC500 / Stand: 04.2007

ACT_CNT < LIM_MIN ACT_CNT := LIM_MIN

LIM_MIN <= ACT_CNT <= LIM_MAX ACT_CNT := ACT_CNT (keine Änderung)

ACT_CNT > LIM_MAX ACT_CNT := LIM_MIN

LIM_MAX DWORD (limit maximum)

Am Eingang LIM_MAX wird der obere Grenzwert für den Zähler eingestellt. Es ist darauf zu achten, dass der obere Grenzwert LIM_MAX immer größer als der untere Grenzwert LIM_MIN sein muss. Ist LIM_MIN > LIM_MAX, wird eine entsprechende Fehlermeldung an den Ausgängen ERR/ERNO gemeldet.

LIM_MIN DWORD (limit minimum)

Am Eingang LIM_MIN wird der untere Grenzwert für den Zähler eingestellt. Es ist darauf zu achten, dass der obere Grenzwert LIM_MAX immer größer als der untere Grenzwert LIM_MIN sein muss. Ist LIM_MIN > LIM_MAX, wird eine entsprechende Fehlermeldung an den Ausgängen ERR/ERNO gemeldet.

CNT_SET DWORD (count set)

Am Eingang CNT_SET wird der Setzwert für den Zähler eingestellt.

Mit dem Eingang SET = TRUE wird der Zähler auf den Wert des Einganges CNT_SET gesetzt. Der Zähler wird solange auf dem Wert CNT_SET gehalten, wie der Eingang SET = TRUE ist. Mit der fallenden Flanke am Eingang SET wird das Zählen wieder freigegeben.

Bei einer Referenzfahrt EN_REF = TRUE wird mit der steigenden Flanke am Kanal C2 der aktuelle Wert des Zählers (ACT_CNT) auf den Wert des Setzwertes CNT_SET gesetzt.

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN wird die Statusabfrage aktiviert. Ist der Wert am Eingang SLOT nicht gültig, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben. Die Ausgänge des Bausteines werden solange aktualisiert, solange der Eingang EN = TRUE ist. Der Baustein ist immer dann beendet, wenn der Wert am Ausgang DONE auf TRUE wechselt. Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteines angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteines ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

RDY_REF BOOL (ready reference)

Am Ausgang RDY_REF wird die Fertigmeldung der Referenzpunktfahrt angezeigt.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 10 DC541 AC500 / Stand: 04.2007

RDY_TOUCH BOOL (ready touchtrigger)

Am Ausgang RDY_TOUCH wird die Fertigmeldung der Touch-Trigger-Messung angezeigt.

MAX_LIM BOOL (maximum limit)

Am Ausgang MAX_LIM wird in der Betriebsart Endloszähler (Endless mode) angezeigt, ob der aktuelle Zählwert größer als der am Eingang LIM_MAX eingestellte Wert ist.

In der Betriebsart Begrenzungszähler (Limit mode) ist der Ausgang MAX_LIM = FALSE.

MIN_LIM BOOL (minimum limit)

Am Ausgang MIN_LIM wird in der Betriebsart Endloszähler (Endless mode) angezeigt, ob der aktuelle Zählwert kleiner als der am Eingang LIM_MIN eingestellte Wert ist.

In der Betriebsart Begrenzungszähler (Limit mode) ist der Ausgang MIN_LIM = FALSE.

CNT_ACT DWORD (count actual)

Am Ausgang CNT_ACT wird der aktuelle Zählerstand des Vorwärtszählers angezeigt.

CNT_TOUCH DWORD (count touchtrigger)

Am Ausgang CNT_TOUCH wird das Ergebnis der Touch-Trigger-Messung angezeigt, d. h. der aktuelle Zählerstand zum Zeitpunkt der steigenden Flanke am Eingang C2 nach dem Start einer Touch-Trigger-Messung (durch steigende Flanke am Eingang EN_TOUCH).

Funktionsaufruf in AWL

CAL DC541Cnt32Bit ( SLOT := DC541Cnt32Bit_SLOT, CH := DC541Cnt32Bit_CH, EN_VISU := DC541Cnt32Bit_EN_VISU, EN := DC541Cnt32Bit_EN, SET := DC541Cnt32Bit_SET, EN_REF := DC541Cnt32Bit_EN_REF, EN_TOUCH:= DC541Cnt32Bit_EN_TOUCH, EN_UD := DC541Cnt32Bit_EN_UD, EN_LIM := DC541Cnt32Bit_EN_LIM, LIM_MAX := DC541Cnt32Bit_LIM_MAX, LIM_MIN := DC541Cnt32Bit_LIM_MIN, CNT_SET := DC541Cnt32Bit_CNT_SET)

LD DC541Cnt32Bit.DONE ST DC541Cnt32Bit_DONE

LD DC541Cnt32Bit.ERR ST DC541Cnt32Bit_ERR

LD DC541Cnt32Bit.ERNO ST DC541Cnt32Bit_ERNO

LD DC541Cnt32Bit.RDY_REF ST DC541Cnt32Bit_RDY_REF

LD DC541Cnt32Bit.RDY_TOUCH ST DC541Cnt32Bit_RDY_TOUCH

LD DC541Cnt32Bit.MAX_LIM ST DC541Cnt32Bit_MAX_LIM

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 11 DC541 AC500 / Stand: 04.2007

LD DC541Cnt32Bit.MIN_LIM ST DC541Cnt32Bit_MIN_LIM

LD DC541Cnt32Bit.CNT_ACT ST DC541Cnt32Bit_CNT_ACT

LD DC541Cnt32Bit.CNT_TOUCH ST DC541Cnt32Bit_CNT_TOUCH

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DC541Cnt32Bit (SLOT := DC541Cnt32Bit_SLOT, CH := DC541Cnt32Bit_CH, EN_VISU := DC541Cnt32Bit_EN_VISU, EN := DC541Cnt32Bit_EN, SET := DC541Cnt32Bit_SET, EN_REF := DC541Cnt32Bit_EN_REF, EN_TOUCH:= DC541Cnt32Bit_EN_TOUCH, EN_UD := DC541Cnt32Bit_EN_UD, EN_LIM := DC541Cnt32Bit_EN_LIM, LIM_MAX := DC541Cnt32Bit_LIM_MAX, LIM_MIN := DC541Cnt32Bit_LIM_MIN, CNT_SET := DC541Cnt32Bit_CNT_SET);

DC541Cnt32Bit_DONE := DC541Cnt32Bit.DONE; DC541Cnt32Bit_ERR := DC541Cnt32Bit.ERR; DC541Cnt32Bit_ERNO := DC541Cnt32Bit.ERNO; DC541Cnt32Bit_RDY_REF := DC541Cnt32Bit.RDY_REF; DC541Cnt32Bit_RDY_TOUCH := DC541Cnt32Bit.RDY_TOUCH; DC541Cnt32Bit_MAX_LIM := DC541Cnt32Bit.MAX_LIM; DC541Cnt32Bit_MIN_LIM := DC541Cnt32Bit.MIN_LIM; DC541Cnt32Bit_CNT_ACT := DC541Cnt32Bit.CNT_ACT; DC541Cnt32Bit_CNT_TOUCH := DC541Cnt32Bit.CNT_TOUCH;

Die integrierte Visualisierung des Bausteines DC541_32BIT_CNT

Der Baustein DC541_32BIT_CNT verfügt über eine integrierte Visualisierung visuDC541_32BIT_CNT, die in andere Visualisierungen eingebunden und instanziert werden kann. Im Offline mode des Control Builders sieht die Visualisierung wie folgt aus:

Wie eine Visualisierung in ein Projekt eingefügt und konfiguriert wird, ist am Anfang der Beschreibung der Bausteinbibliothek detailliert beschrieben (siehe Integrierte Visualisierung).

Im Online-Mode des Control Builders sieht die Visualisierung bei Einstellung EN_VISU = TRUE dann z. B. wie folgt aus:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 12 DC541 AC500 / Stand: 04.2007

Ist während der Bearbeitung des Bausteines ein Fehler aufgetreten, so wird die Fehlernummer rechts oben solange angezeigt, bis EN = FALSE wird.

Ist der Eingang EN_VISU = FALSE, können die Eingänge über die Visualisierung nicht geändert werden. Die entsprechenden Bedienelemente sind ausgegraut:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 13 DC541 AC500 / Stand: 04.2007

DC541_FREQ Zeit- und Frequenzmessung

Der Baustein DC541_FREQ dient zum Messen von Zeiten, Frequenzen und Drehzahlen mit einer Auflösung von 100 µs.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1.3 Anmerkung:

Verfügbar ab Firmware des DC541: V1.2

Enthalten in Bibliothek: DC541_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DC541_FREQ Instanzname

SLOT Eingang BYTE Steckplatz des DC541

CH Eingang BYTE Auswahl des Einganges C0...C7

EN_VISU Eingang BOOL Freigabe der Eingaben in der integrierten Visualisierung des Bausteins visuDC541_FREQ

EN Ein-/Ausgang BOOL Freigabe der Bausteinbearbeitung

EN_0 Ein-/Ausgang BOOL Messung negative Flanken

EN_1 Ein-/Ausgang BOOL Messung positive Flanken

EN_FREQ Ein-/Ausgang BOOL = TRUE: Freigabe der Berechnung von Frequenz und Drehzahl

PREC Ein-/Ausgang WORD Genauigkeit der Messung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

NEW Ausgang BOOL Anzeige, dass eine neue Messung fertig ist

SUBST Ausgang BOOL Anzeige, dass mit Ersatzwerten gerechnet wurde

DUR Ausgang DWORD Gemessene Zeit in [µs]

FREQ Ausgang LREAL Gemessene Frequenz in [Hz]

RPM Ausgang LREAL Gemessene Drehzahl in [U/min]

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 14 DC541 AC500 / Stand: 04.2007

Beschreibung

Der Baustein DC541_FREQ dient zum Messen von Zeiten, Frequenzen und Drehzahlen mit einer Auflösung von 100 µs.

Es können Frequenzen im Bereich von 0 bis 2000 Hz = 2 kHz gemessen werden. Um höhere Frequenzen (> 50 Hz) genau messen zu können, muss die Genauigkeit entsprechend hoch eingestellt werden. Empfohlen wird eine Genauigkeit von PREC = 1000, d. h. 0,001.

Der Baustein muss zyklisch, mindestens einmal pro Sekunde, aufgerufen werden.

Über die Eingänge EN_0, EN_1 und EN_FREQ wird festgelegt, welche Flanken gemessen werden. Ist der Eingang EN_FREQ = TRUE, wird zusätzlich zur Zeitmessung die Frequenz und die Drehzahl berechnet.

EN_0 EN_1 EN_FREQ Flanken für Messung FREQ/RPM

FALSE FALSE TRUE Es erfolgt keine Messung. Ja

FALSE TRUE TRUE Messung der Zeit zwischen zwei steigenden Flanken

Ja

TRUE FALSE TRUE Messung der Zeit zwischen zwei fallenden Flanken

Ja

TRUE TRUE TRUE Messung der Zeit zwischen jedem Flankenwechsel

Ja

FALSE FALSE FALSE Es erfolgt keine Messung. Nein

FALSE TRUE FALSE Messung der Zeit zwischen der fallenden und der nächsten steigenden Flanke

Nein

TRUE FALSE FALSE Messung der Zeit zwischen der steigenden und der nächsten fallenden Flanke

Nein

TRUE TRUE FALSE Messung der Zeit zwischen jedem Flankenwechsel

Nein

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 15 DC541 AC500 / Stand: 04.2007

Das folgende Beispiel gibt die unterschiedlichen Ergebnisse der Zeitmessung abhängig von der Belegung der Eingänge EN_0, EN_1 und EN_FREQ an.

Zeitmessung (DUR) in [µs] EN_0 EN_1 EN_FREQ

1 2 3 4

FALSE FALSE TRUE 0 0 0 0

FALSE TRUE TRUE - 500 - 450

TRUE FALSE TRUE - - 350 -

TRUE TRUE TRUE 300 200 150 300

FALSE FALSE FALSE 0 0 0 0

FALSE TRUE FALSE 300 - 150 -

TRUE FALSE FALSE - 200 - 300

TRUE TRUE FALSE 300 200 150 300

Am Ausgang NEW wird angezeigt, dass neue Messergebnisse vorliegen.

Das Gerät DC541 muss als Zählgerät (Counter mode) konfiguriert sein. Der Kanal CH muss als Frequency measurement konfiguriert sein.

Der Baustein DC541_FREQ verfügt über eine integrierte Visualisierung visuDC541_FREQ, über die alle Funktionen des Bausteines parallel zum Anwenderprogramm gesteuert werden können, wenn der Eingang EN_VISU = TRUE ist. Die Einbindung und Funktion der Visualisierung sind am Ende der Bausteinbeschreibung ausführlich beschrieben (siehe hierzu "Die integrierte Visualisierung des Bausteines DC541_FREQ").

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz (Kartennummer) des DC541 ausgewählt.

Die Steckplätze werden von rechts nach links durchnummeriert. Steckplatz 1 ist der Steckplatz unmittelbar links neben der CPU.

CH BYTE (channel)

Am Eingang CH wird der Kanal für die Zeit- und Frequenzmessung ausgewählt. Gültige Werte sind 0...7 für die Eingänge C0...C7. Wird ein ungültiger Wert am Eingang CH eingetragen oder ist der gewählte Kanal nicht als Frequency measurement konfiguriert, so wird der Baustein mit DONE=ERR=TRUE und einer entsprechenden Fehlernummer in ERNO abgebrochen.

EN_VISU BOOL (enable input in visualization)

Wenn der Eingang EN_VISU = TRUE ist, können Eingänge des Bausteines (außer SLOT, CH und EN_VISU) auch über die integrierte Visualisierung des Bausteines bedient werden. Ist der Eingang EN_VISU = FALSE, ist die Eingabe über die Visualisierung abgeschaltet und die Beschriftung der entsprechenden Bedienelemente ausgegraut. Die Anzeige der aktuellen Werte erfolgt immer. Die Einbindung und Funktion der Visualisierung sind am Ende der Bausteinbeschreibung ausführlich beschrieben (siehe hierzu "Die integrierte Visualisierung des Bausteines DC541_FREQ").

EN BOOL (enable)

Der Eingang EN ist konstant mit TRUE zu belegen, solange die Impulse am Eingang CH gezählt werden sollen. Ist der Eingang EN = FALSE, wird der Baustein nicht bearbeitet und die Impulse am Eingang CH gehen verloren.

Beim ersten Aufruf werden die Eingänge auf Gültigkeit und Plausibilität sowie das entsprechende Gerät auf Konfiguration in der Betriebsart „Zähler-Mode“ geprüft. Ist das nicht der Fall, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 16 DC541 AC500 / Stand: 04.2007

EN_0 BOOL (enable 0)

Mit dem Eingang EN_0 wird festgelegt, ob fallende Flanken gemessen werden:

EN_0 = TRUE: Fallende Flanken werden gemessen. EN_0 = FALSE: Fallende Flanken werden nicht gemessen.

EN_1 BOOL (enable 1)

Mit dem Eingang EN_1 wird festgelegt, ob steigende Flanken gemessen werden:

EN_1 = TRUE: Steigende Flanken werden gemessen. EN_1 = FALSE: Steigende Flanken werden nicht gemessen.

EN_FREQ BOOL (enable frequency)

EN_FREQ = FALSE: Messung der Zeit zwischen positiven oder negativen Flanken EN_FREQ = TRUE: Messung der Zeit zwischen einem Flankenwechsel und Berechnung der Frequenz und Drehzahl

PREC WORD (precision)

Am Eingang PREC wird die geforderte Genauigkeit der Messung angegeben.

PREC = 10 entspricht einer Genauigkeit von 0,1 (Zehntel)

PREC = 100 entspricht einer Genauigkeit von 0,01 (Hundertstel)

PREC = 1000 entspricht einer Genauigkeit von 0,001 (Tausendstel)

Abhängig von der Zykluszeit und der geforderten Genauigkeit verlängert das DC541 seine Messzeit und zählt mehrere Impulse. Diese Angabe wird nur in der Betriebsart Frequenzmessung (EN_FREQ = TRUE) verwendet. Die angezeigten Messwerte entsprechen dann dem gemessenen Mittelwert. Die Genauigkeit ist verbessert, weil Effekte durch Jitter und Latenz vermindert werden.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteines angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteines ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

NEW BOOL (new)

Am Ausgang NEW wird angezeigt, dass neue Messergebnisse vorliegen.

NEW = TRUE: Es liegen neue Messergebnisse vor. NEW = FALSE: Es liegen keine neuen Messergebnisse vor.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 17 DC541 AC500 / Stand: 04.2007

SUBST BOOL (substitute)

Am Ausgang SUBST wird angezeigt, ob die Ausgabewerte auf neuen Messserten basieren oder ob mit Ersatzwerten gerechnet wurde. Bei sinkender Fequenz würden ohne den Ersatzwert weiter eine kurze Zeit und hohe Drehzahl angezeigt werden, da für eine neue Messung eine neue Flanke nötig ist. Bei SUBST = TRUE wird der verlängerte Abstand zwischen den Flanken hochgerechnet. Voraussetzung für die Ersatzwertberechnung ist PREC > 0.

SUBST=FALSE: Neue Messwerte SUBST=TRUE: Rechnung mit Ersatzwerten

DUR DWORD (duration)

Am Ausgang DUR wird die gemessene Zeit in [µs] ausgegeben.

FREQ LREAL (frequency)

Ist der Eingang EN_FREQ = TRUE, so wird am Ausgang FREQ die aus der gemessenen Zeit berechnete Frequenz in [Hz] ausgegeben.

Ist der Eingang EN_FREQ = FALSE, so ist der Ausgang FREQ = 0.

RPM LREAL (revolutions per minute)

Ist der Eingang EN_FREQ = TRUE, so wird am Ausgang RPM die aus der gemessenen Zeit berechnete Drehzahl in [U/min] ausgegeben.

Ist der Eingang EN_FREQ = FALSE, so ist der Ausgang RPM = 0.

Funktionsaufruf in AWL

CAL DC541Freq( SLOT := DC541Freq_SLOT, CH := DC541Freq_CH, EN_VISU := DC541Freq_EN_VISU, EN := DC541Freq_EN, EN_0 := DC541Freq_EN_0, EN_1 := DC541Freq_EN_1, EN_FREQ := DC541Freq_EN_FREQ, PREC := DC541Freq_PREC)

LD DC541Freq.DONE ST DC541Freq_DONE

LD DC541Freq.ERR ST DC541Freq_ERR

LD DC541Freq.ERNO ST DC541Freq_ERNO

LD DC541Freq.NEW ST DC541Freq_NEW

LD DC541Freq.SUBST ST DC541Freq_SUBST

LD DC541Freq.DUR ST DC541Freq_DUR

LD DC541Freq.FREQ ST DC541Freq_FREQ

LD DC541Freq.RPM ST DC541Freq_RPM

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 18 DC541 AC500 / Stand: 04.2007

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DC541Freq(SLOT := DC541Freq_SLOT, CH := DC541Freq_CH, EN_VISU := DC541Freq_EN_VISU, EN := DC541Freq_EN, EN_0 := DC541Freq_EN_0, EN_1 := DC541Freq_EN_1, EN_FREQ := DC541Freq_EN_FREQ, PREC := DC541Freq_PREC);

DC541Freq_DONE := DC541Freq.DONE; DC541Freq_ERR := DC541Freq.ERR; DC541Freq_ERNO := DC541Freq.ERNO; DC541Freq_NEW := DC541Freq.NEW; DC541Freq_SUBST := DC541Freq.SUBST; DC541Freq_DUR := DC541Freq.DUR; DC541Freq_FREQ := DC541Freq.FREQ; DC541Freq_RPM := DC541Freq.RPM;

Die integrierte Visualisierung des Bausteines DC541_FREQ

Der Baustein DC541_FREQ verfügt über eine integrierte Visualisierung visuDC541_FREQ, die in andere Visualisierungen eingebunden und instanziert werden kann. Im Offline mode des Control Builders sieht die Visualisierung wie folgt aus:

Wie eine Visualisierung in ein Projekt eingefügt und konfiguriert wird, ist am Anfang der Beschreibung der Bausteinbibliothek detailliert beschrieben (siehe Integrierte Visualisierung).

Im Online mode des Control Builders sieht die Visualisierung bei Einstellung EN_VISU = TRUE dann z.B. wie folgt aus:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 19 DC541 AC500 / Stand: 04.2007

Ist während der Bearbeitung des Bausteines ein Fehler aufgetreten, so wird die Fehlernummer rechts oben solange angezeigt, bis EN = FALSE wird.

Ist der Eingang EN_VISU = FALSE, können die Eingänge über die Visualisierung nicht geändert werden. Die entsprechenden Bedienelemente sind ausgegraut:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 20 DC541 AC500 / Stand: 04.2007

DC541_FREQ_FAST Schnelle Zeit- und Frequenzmessung

Der Baustein DC541_FREQ dient zum Messen von Zeiten, Frequenzen und Drehzahlen mit einer Auflösung von 1 µs.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.2 Anmerkung:

Verfügbar ab Firmware des DC541: V1.3

Enthalten in Bibliothek: DC541_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DC541_FREQ_FAST Instanzname

SLOT Eingang BYTE Steckplatz des DC541

CH Eingang BYTE Auswahl des Einganges C0...C7

EN_VISU Eingang BOOL Freigabe der Eingaben in der integrierten Visualisierung des Bausteins visuDC541_FREQ_FAST

EN Ein-/Ausgang

BOOL Freigabe der Bausteinbearbeitung

PREC Ein-/Ausgang

WORD Genauigkeit der Messung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

NEW Ausgang BOOL Anzeige, dass eine neue Messung fertig ist

SUBST Ausgang BOOL Anzeige, dass mit Ersatzwerten gerechnet wurde

DUR Ausgang DWORD Gemessene Zeit in [µs]

FREQ Ausgang LREAL Gemessene Frequenz in [Hz]

RPM Ausgang LREAL Gemessene Drehzahl in [U/min]

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 21 DC541 AC500 / Stand: 04.2007

Beschreibung

Der Baustein DC541_FREQ_FAST dient zum Messen von Zeiten, Frequenzen und Drehzahlen mit einer Auflösung von 1 µs.

Es können Frequenzen im Bereich von 0 bis 50000 Hz = 50 kHz gemessen werden.

Der Baustein funktioniert "im Prinzip" wie der Baustein DC541_FREQ, erreicht allerdings eine Auflösung von 1us. Aus der höheren Genauigkeit ergeben sich einige wichtige Einschränkungen:

1. Der Baustein ist nur einmal pro DC541 und nur für den Channel 0 möglich.

2. Durch den Baustein werden die Ressourcen der ersten 4 Eingänge belegt, d. h. C1..C3 können nicht mehr verwendet werden.

3. Die Eingänge C0 bis C3 müssen gebrückt werden.

DC5418DCInput

24VDCOutput24VDC

0.5A

UP 24VDC100W

1.0 C0

1.1 C1

1.2 C2

1.3 C3

1.4 C4

1.5 C5

1.6 C6

1.7 C7

1.8 UP

1.9 ZP

CH-ERR1

Der Baustein muss zyklisch, mindestens einmal pro Sekunde, aufgerufen werden.

Es wird immer die Zeit bzw. Frequenz zwischen 2 positiven Flanken gemessen.

Am Ausgang NEW wird angezeigt, dass neue Messergebnisse vorliegen.

Das Gerät DC541 muss als Zählgerät (Counter mode) konfiguriert sein. Der Kanal CH muss als Fast Frequency Measurement konfiguriert sein.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 22 DC541 AC500 / Stand: 04.2007

Der Baustein DC541_FREQ_FAST verfügt über eine integrierte Visualisierung visuDC541_FREQ_FAST, über die alle Funktionen des Bausteines parallel zum Anwenderprogramm gesteuert werden können, wenn der Eingang EN_VISU = TRUE ist. Die Einbindung und Funktion der Visualisierung sind am Ende der Bausteinbeschreibung ausführlich beschrieben (siehe hierzu "Die integrierte Visualisierung des Bausteines DC541_FREQ_FAST").

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz (Kartennummer) des DC541 ausgewählt.

Die Steckplätze werden von rechts nach links durchnummeriert. Steckplatz 1 ist der Steckplatz unmittelbar links neben der CPU.

CH BYTE (channel)

Am Eingang CH wird der Kanal für die Zeit- und Frequenzmessung ausgewählt. Der einzige gültige Wert ist 0 für den Channel C0. Wird ein ungültiger Wert am Eingang CH eingetragen oder ist der gewählte Kanal nicht als Fast Frequency Measurement konfiguriert, so wird der Baustein mit DONE=ERR=TRUE und einer entsprechenden Fehlernummer in ERNO abgebrochen.

EN_VISU BOOL (enable input in visualization)

Wenn der Eingang EN_VISU = TRUE ist, können Eingänge des Bausteines (außer SLOT, CH und EN_VISU) auch über die integrierte Visualisierung des Bausteines bedient werden. Ist der Eingang EN_VISU = FALSE, ist die Eingabe über die Visualisierung abgeschaltet und die Beschriftung der entsprechenden Bedienelemente ausgegraut. Die Anzeige der aktuellen Werte erfolgt immer. Die Einbindung und Funktion der Visualisierung sind am Ende der Bausteinbeschreibung ausführlich beschrieben (siehe hierzu "Die integrierte Visualisierung des Bausteines DC541_FREQ_FAST").

EN BOOL (enable)

Der Eingang EN ist konstant mit TRUE zu belegen, solange die Impulse am Eingang CH gezählt werden sollen. Ist der Eingang EN = FALSE, wird der Baustein nicht bearbeitet und die Impulse am Eingang CH gehen verloren.

Beim ersten Aufruf werden die Eingänge auf Gültigkeit und Plausibilität sowie das entsprechende Gerät auf Konfiguration in der Betriebsart Zähler-Mode geprüft. Ist das nicht der Fall, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben.

PREC WORD (precision)

Am Eingang PREC wird die geforderte Genauigkeit der Messung angegeben.

PREC = 10 entspricht einer Genauigkeit von 0,1 (Zehntel)

PREC = 100 entspricht einer Genauigkeit von 0,01 (Hundertstel)

PREC = 1000 entspricht einer Genauigkeit von 0,001 (Tausendstel)

Abhängig von der Zykluszeit und der geforderten Genauigkeit verlängert das DC541 seine Messzeit und zählt mehrere Impulse. Diese Angabe wird nur in der Betriebsart Frequenzmessung (EN_FREQ = TRUE) verwendet. Die angezeigten Messwerte entsprechen dann dem gemessenen Mittelwert. Die Genauigkeit ist verbessert, weil Effekte durch Jitter und Latenz vermindert werden.

Da die Auflösung der Messung 1µs ist, entspricht PREC genau der Messzeit in µs. Bei Angaben < 100 wird das DC541 so schnell wie möglich, d. h. mit der aktuellen Zykluszeit von ca 100 µs messen. Für größere Genauigkeit werden die Impulse pro Messzeit ermittelt. Es werden die Anzahl der Impulse gezählt und die Zeit, in der die Impulse einliefen, in µs gemessen. Daraus wird die Frequenz berechnet.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 23 DC541 AC500 / Stand: 04.2007

1000 us

Messung

f = 3/1100 us = 2727 Hz

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteines angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteines ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

NEW BOOL (new)

Am Ausgang NEW wird angezeigt, dass neue Messergebnisse vorliegen.

NEW = TRUE: Es liegen neue Messergebnisse vor. NEW = FALSE: Es liegen keine neuen Messergebnisse vor.

SUBST BOOL (substitute)

Am Ausgang SUBST wird angezeigt, ob die Ausgabewerte auf neuen Messserten basieren oder ob mit Ersatzwerten gerechnet wurde. Bei sinkender Fequenz würden ohne den Ersatzwert weiter eine kurze Zeit und hohe Drehzahl angezeigt werden, da für eine neue Messung eine neue Flanke nötig ist. Bei SUBST = TRUE wird der verlängerte Abstand zwischen den Flanken hochgerechnet. Voraussetzung für die Ersatzwertberechnung ist PREC > 0.

SUBST=FALSE: Neue Messwerte SUBST=TRUE: Rechnung mit Ersatzwerten

DUR DWORD (duration)

Am Ausgang DUR wird die gemessene Zeit in [µs] ausgegeben.

FREQ LREAL (frequency)

Ist der Eingang EN_FREQ = TRUE, so wird am Ausgang FREQ die aus der gemessenen Zeit berechnete Frequenz in [Hz] ausgegeben.

Ist der Eingang EN_FREQ = FALSE, so ist der Ausgang FREQ = 0.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 24 DC541 AC500 / Stand: 04.2007

RPM LREAL (revolutions per minute)

Ist der Eingang EN_FREQ = TRUE, so wird am Ausgang RPM die aus der gemessenen Zeit berechnete Drehzahl in [U/min] ausgegeben.

Ist der Eingang EN_FREQ = FALSE, so ist der Ausgang RPM = 0.

Funktionsaufruf in AWL

CAL DC541FreqFast( SLOT := DC541FreqFast_SLOT, CH := DC541FreqFast_CH, EN_VISU := DC541FreqFast_EN_VISU, EN := DC541FreqFast_EN, PREC := DC541FreqFast_PREC)

LD DC541FreqFast.DONE ST DC541FreqFast_DONE

LD DC541FreqFast.ERR ST DC541FreqFast_ERR

LD DC541FreqFast.ERNO ST DC541FreqFast_ERNO

LD DC541FreqFast.NEW ST DC541FreqFast_NEW

LD DC541FreqFast.SUBST ST DC541FreqFast_SUBST

LD DC541FreqFast.DUR ST DC541FreqFast_DUR

LD DC541FreqFast.FREQ ST DC541FreqFast_FREQ

LD DC541FreqFast.RPM ST DC541FreqFast_RPM

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DC541FreqFast(SLOT := DC541FreqFast_SLOT, CH := DC541FreqFast_CH, EN_VISU := DC541FreqFast_EN_VISU, EN := DC541FreqFast_EN, EN_0 := DC541FreqFast_EN_0, EN_1 := DC541FreqFast_EN_1, EN_FREQ := DC541FreqFast_EN_FREQ, PREC := DC541FreqFast_PREC);

DC541FreqFast_DONE := DC541FreqFast.DONE; DC541FreqFast_ERR := DC541FreqFast.ERR; DC541FreqFast_ERNO := DC541FreqFast.ERNO; DC541FreqFast_NEW := DC541FreqFast.NEW; DC541FreqFast_SUBST := DC541FreqFast.SUBST; DC541FreqFast_DUR := DC541FreqFast.DUR; DC541FreqFast_FREQ := DC541FreqFast.FREQ; DC541FreqFast_RPM := DC541FreqFast.RPM;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 25 DC541 AC500 / Stand: 04.2007

Die integrierte Visualisierung des Bausteines DC541_FREQ_FAST

Der Baustein DC541_FREQ_FAST verfügt über eine integrierte Visualisierung visuDC541_FREQ_FAST, die in andere Visualisierungen eingebunden und instanziert werden kann. Im Offline mode des Control Builders sieht die Visualisierung wie folgt aus:

Wie eine Visualisierung in ein Projekt eingefügt und konfiguriert wird, ist am Anfang der Beschreibung der Bausteinbibliothek detailliert beschrieben (siehe Integrierte Visualisierung).

Ist während der Bearbeitung des Bausteines ein Fehler aufgetreten, so wird die Fehlernummer rechts oben solange angezeigt, bis EN = FALSE wird.

Ist der Eingang EN_VISU = FALSE, können die Eingänge über die Visualisierung nicht geändert werden. Die entsprechenden Bedienelemente sind ausgegraut.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 26 DC541 AC500 / Stand: 04.2007

DC541_FREQ_OUT Frequenzausgabe

Der Baustein DC541_FREQ_OUT dient zur Ausgabe von Impulsen mit einer einstellbaren Frequenz auf einem Kanal CH des Gerätes DC541.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1.3 Anmerkung:

Verfügbar ab Firmware des DC541: V1.2

Enthalten in Bibliothek: DC541_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DC541_FREQ_OUT Instanzname

SLOT Eingang BYTE Steckplatz des DC541

CH Eingang BYTE Auswahl des Ausganges C0...C7

EN_VISU Eingang BOOL Freigabe der Eingaben in der integrierten Visualisierung des Bausteins visuDC541_FREQ_OUT

EN Ein-/Ausgang BOOL Freigabe der Bausteinbearbeitung

START Ein-/Ausgang BOOL Start der Frequenzausgabe

STOP Ein-/Ausgang BOOL Stopp der Frequenzausgabe

FREQ Ein-/Ausgang LREAL Vorgabe der Sollfrequenz in [Hz]

PULSE Ein-/Ausgang DWORD Vorgabe der Sollimpulse: =0 - endlos >0 - Anzahl Impulse

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

RDY Ausgang BOOL Anzahl der Impulse, ausgegeben bei PULSE>0

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 27 DC541 AC500 / Stand: 04.2007

Beschreibung

Der Baustein DC541_FREQ_OUT dient zur Ausgabe von Impulsen mit fester Frequenz auf einem Kanal des DC541. Es können Impulse mit einer Frequenz von 0,2 Hz bis 2,5 kHz ausgegeben werden. Die Impulse haben einen Jitter entsprechend der Zykluszeit des DC541. Die Impulslänge ist immer ein Vielfaches der Zykluszeit des DC541.

Ist die Vorgabe PULSE=0, so werden endlos Impulse ausgegeben. Die Ausgabe wird mit einer positiven Flanke am Eingang START gestartet. Mit START = FALSE wird die Ausgabe abgebrochen. Mit einer positiven Flanke am Eingang STOP wird die Impulsausgabe unterbrochen. Mit STOP = FALSE wird die Ausgabe fortgesetzt.

Ist der Eingang PULSE>0, so wird die Anzahl PULSE Impulse mit der Frequenz FREQ am Kanal CH ausgegeben. Ist die Anzahl PULSE ausgegeben, so wird der Ausgang RDY=TRUE.

Das Gerät DC541 muss als Zählgerät (Counter mode) konfiguriert sein. Der Kanal CH muss als Frequency output konfiguriert sein.

Der Baustein DC541_FREQ_OUT verfügt über eine integrierte Visualisierung visuDC541_FREQ_OUT, über die alle Funktionen des Bausteines parallel zum Anwenderprogramm gesteuert werden können, wenn der Eingang EN_VISU = TRUE ist. Die Einbindung und Funktion der Visualisierung sind am Ende der Bausteinbeschreibung ausführlich beschrieben (siehe hierzu "Die integrierte Visualisierung des Bausteines DC541_FREQ_OUT").

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz (Kartennummer) des DC541 ausgewählt.

Die Steckplätze werden von rechts nach links durchnummeriert. Steckplatz 1 ist der Steckplatz unmittelbar links neben der CPU.

CH BYTE (channel)

Am Eingang CH wird der Kanal für die Frequenzausgabe. Gültige Werte sind 0...7 für die Ausgänge C0...C7. Wird ein ungültiger Wert am Eingang CH eingetragen oder ist der gewählte Kanal nicht als Frequency output konfiguriert, so wird der Baustein mit DONE=ERR=TRUE und einer entsprechenden Fehlernummer in ERNO abgebrochen.

EN_VISU BOOL (enable input in visualization)

Wenn der Eingang EN_VISU = TRUE ist, können Eingänge des Bausteines (außer SLOT, CH und EN_VISU) auch über die integrierte Visualisierung des Bausteines bedient werden. Ist der Eingang EN_VISU = FALSE, ist die Eingabe über die Visualisierung abgeschaltet und die Beschriftung der entsprechenden Bedienelemente ausgegraut. Die Anzeige der aktuellen Werte erfolgt immer. Die Einbindung und Funktion der Visualisierung sind am Ende der Bausteinbeschreibung ausführlich beschrieben (siehe hierzu "Die integrierte Visualisierung des Bausteines DC541_FREQ_OUT").

EN BOOL (enable)

Der Eingang EN ist konstant mit TRUE zu belegen, solange die Impulse am Eingang CH gezählt werden sollen. Ist der Eingang EN = FALSE, wird der Baustein nicht bearbeitet und die Impulse am Eingang CH gehen verloren.

Beim ersten Aufruf werden die Eingänge auf Gültigkeit und Plausibilität sowie das entsprechende Gerät auf Konfiguration in der Betriebsart „Zähler-Mode“ geprüft. Ist das nicht der Fall, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben.

START BOOL (start)

Mit einer positiven Flanke am Eingang START wird die Frequenzausgabe gestartet. Mit START = FALSE wird die Frequenzausgabe beendet.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 28 DC541 AC500 / Stand: 04.2007

STOP BOOL (stop)

Mit einer positiven Flanke am Eingang STOP wird die Frequenzausgabe unterbrochen. Falls eine bestimmte Anzahl von Impulsen ausgegeben werden soll, wird bei STOP = FALSE weitergezählt. Der STOP ist nicht mit der Frequenz synchronisiert.

FREQ LREAL (frequency)

Am Eingang FREQ wird die auszugebende Frequenz in [Hz] vorgegeben. Gültige Werte sind 0,2 Hz bis 2500,0 Hz (=2,5 kHz).

PULSE DWORD (pulse)

Am Eingang PULSE wird eingestellt, ob die Frequenzausgabe endlos erfolgen soll oder ob eine bestimmte Anzahl Impulse ausgegeben werden soll. Es gilt:

PULSE=0: Endlosausgabe PULSE>0: Ausgabe der Anzahl Impulse

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteines angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteines ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

RDY BOOL (ready)

Ist PULSE>0, so wird der Ausgang RDY=TRUE, wenn die eingestellte Anzahl Impulse ausgegeben wurde.

Funktionsaufruf in AWL

CAL DC541FreqOut( SLOT := DC541FreqOut_SLOT, CH := DC541FreqOut_CH, EN_VISU := DC541FreqOut_EN_VISU, EN := DC541FreqOut_EN, START := DC541FreqOut_START, STOP := DC541FreqOut_STOP, FREQ := DC541FreqOut_FREQ, PULSE := DC541FreqOut_PULSE)

LD DC541FreqOut.DONE ST DC541FreqOut_DONE

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 29 DC541 AC500 / Stand: 04.2007

LD DC541FreqOut.ERR ST DC541FreqOut_ERR

LD DC541FreqOut.ERNO ST DC541FreqOut_ERNO

LD DC541FreqOut.RDY ST DC541FreqOut_RDY

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DC541FreqOut(SLOT := DC541FreqOut_SLOT, CH := DC541FreqOut_CH, EN_VISU := DC541FreqOut_EN_VISU, EN := DC541FreqOut_EN, START := DC541FreqOut_START, STOP := DC541FreqOut_STOP, FREQ := DC541FreqOut_FREQ, PULSE := DC541FreqOut_PULSE);

DC541FreqOut_DONE := DC541FreqOut.DONE; DC541FreqOut_ERR := DC541FreqOut.ERR; DC541FreqOut_ERNO := DC541FreqOut.ERNO; DC541FreqOut_RDY := DC541FreqOut.RDY;

Die integrierte Visualisierung des Bausteines DC541_FREQ_OUT

Der Baustein DC541_FREQ_OUT verfügt über eine integrierte Visualisierung visuDC541_FREQ_OUT, die in andere Visualisierungen eingebunden und instanziert werden kann. Im Offline mode des Control Builders sieht die Visualisierung wie folgt aus:

Wie eine Visualisierung in ein Projekt eingefügt und konfiguriert wird, ist am Anfang der Beschreibung der Bausteinbibliothek detailliert beschrieben (siehe Integrierte Visualisierung).

Im Online mode des Control Builders sieht die Visualisierung bei Einstellung EN_VISU = TRUE dann z.B. wie folgt aus:

Ist während der Bearbeitung des Bausteines ein Fehler aufgetreten, so wird die Fehlernummer rechts oben solange angezeigt, bis EN = FALSE wird.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 30 DC541 AC500 / Stand: 04.2007

Ist der Eingang EN_VISU = FALSE, können die Eingänge über die Visualisierung nicht geändert werden. Die entsprechenden Bedienelemente sind ausgegraut:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 31 DC541 AC500 / Stand: 04.2007

DC541_FWD_CNT 32-Bit-Vorwärtszähler

Der Baustein DC541_FWD_CNT ist ein 32-Bit-Vorwärts-Zähler.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1.3 Anmerkung:

Verfügbar ab Firmware des DC541: V1.1

Enthalten in Bibliothek: DC541_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DC541_FWD_CNT Instanzname

SLOT Eingang BYTE Steckplatz des DC541

CH Eingang BYTE =0, Kanalnummer, z. Zt. nur Kanal C0

EN_VISU Eingang BOOL Freigabe der Eingaben in der integrierten Visualisierung des Bausteins visuDC541_FWD_CNT

EN Ein-/Ausgang BOOL Freigabe der Bausteinbearbeitung

SET Ein-/Ausgang BOOL Setzeingang

EN_LIM Ein-/Ausgang BOOL Auswahl Endloszähler oder Begrenzungszähler

LIM_MAX Ein-/Ausgang DWORD Endwert des Zählers bei EN_LIM = TRUE

LIM_MIN Ein-/Ausgang DWORD Startwert des Zählers bei EN_LIM = TRUE

CNT_SET Ein-/Ausgang DWORD Setzwert des Zählers

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

MAX_LIM Ausgang BOOL =TRUE LIM_MAX erreicht (Endloszähler)

MIN_LIM Ausgang BOOL =TRUE LIM_MIN erreicht (Endloszähler)

CNT_ACT Ausgang DWORD Aktueller Zählerwert

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 32 DC541 AC500 / Stand: 04.2007

Beschreibung

Der Baustein DC541_FWD_CNT realisiert einen 32-Bit-Vorwärtszähler, der mit max. 50 kHz auf den Eingängen C0 und C1 und mit max. 5 kHz auf den Eingängen C2..C7 zählen kann. Im DC541 ist der Zähler als 16-Bit-Zähler realisiert. Der aktuelle Wert ACT_CNT des Zählers wird im Baustein durch Addition der Zählerdifferenz pro Zyklus gebildet. Damit keine Zählimpulse verloren gehen, muss der Baustein zyklisch mit mindestens folgenden Intervall aufgerufen werden:

- Kanal 0...1: max. 50 kHz -> 32767 / 50 = 655 ms - Kanal 2...7: max. 5 kHz -> 32767 / 5 = 6550 ms

Wenn der Zähler z. B. in einer 100-ms-Task läuft, können keine Zählimpulse verloren gehen.

Der Zähler kann in zwei verschiedenen Betriebsarten betrieben werden:

- Endloszähler (Endless mode) - Begrenzungszähler (Limit mode)

Die Einstellung der Betriebsart erfolgt mit dem Eingang EN_LIM.

Bei Einstellung EN_LIM = FALSE arbeitet der Zähler als Endloszähler (Endless mode). Ein Überlauf ergibt sich entsprechend dem 32-Bit-Wert bei 16#FFFFFFFF = 4.294.967.295. In diesem Mode wird ein Über- bzw. Unterschreiten der Grenzwerte LIM_MAX und LIM_MIN an den Ausgängen MAX_LIM bzw. MIN_LIM angezeigt.

Bei Einstellung EN_LIM = TRUE (Limit mode) zählt der Zähler zwischen LIM_MIN und LIM_MAX. Bei Überlauf, d. h. bei Erreichen von LIM_MAX beginnt der Zähler wieder bei LIM_MIN.

Der obere Grenzwert LIM_MAX muss größer als der untere Grenzwert LIM_MIN sein. Ist der untere Grenzwert LIM_MIN größer als der obere Grenzwert LIM_MAX, wird eine entsprechende Fehlermeldung an den Ausgängen ERR/ERNO gemeldet.

Das Gerät DC541 muss als Zählgerät (Counter mode) konfiguriert sein.

Der Baustein DC541_FWD_CNT verfügt über eine integrierte Visualisierung visuDC541_FWD_CNT, über die alle Funktionen des Bausteines parallel zum Anwenderprogramm gesteuert werden können, wenn der Eingang EN_VISU = TRUE ist. Die Einbindung und Funktion der Visualisierung sind am Ende der Bausteinbeschreibung ausführlich beschrieben (siehe hierzu "Die integrierte Visualisierung des Bausteines DC541_FWD_CNT").

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz (Kartennummer) des DC541 ausgewählt.

Die Steckplätze werden von rechts nach links durchnummeriert. Steckplatz 1 ist der Steckplatz unmittelbar links neben der CPU.

CH BYTE (channel)

Am Eingang CH wird der Eingang für den Zähler ausgewählt. Gültige Werte sind 0 .. 7 für die Kanäle C0 .. C7. Wird ein ungültiger Wert am Eingang CH eingetragen oder ist der gewählte Kanal nicht als 32-Bit-Vorwärtszähler (FWD_CNT) konfiguriert, so wird der Baustein mit DONE=ERR=TRUE und einer entsprechenden Fehlernummer in ERNO abgebrochen.

EN_VISU BOOL (enable input in visualization)

Wenn der Eingang EN_VISU = TRUE ist, können Eingänge des Bausteines (außer SLOT, CH und EN_VISU) auch über die integrierte Visualisierung des Bausteines bedient werden. Ist der Eingang EN_VISU = FALSE, ist die Eingabe über die Visualisierung abgeschaltet und die Beschriftung der entsprechenden Bedienelemente ausgegraut. Die Anzeige der aktuellen Werte erfolgt immer. Die Einbindung und Funktion der Visualisierung sind am Ende der Bausteinbeschreibung ausführlich beschrieben (siehe hierzu "Die integrierte Visualisierung des Bausteines DC541_FWD_CNT").

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 33 DC541 AC500 / Stand: 04.2007

EN BOOL (enable)

Der Eingang EN ist konstant mit TRUE zu belegen, solange die Impulse am Eingang CH gezählt werden sollen. Ist der Eingang EN = FALSE, wird der Baustein nicht bearbeitet.

Beim ersten Aufruf werden die Eingänge auf Gültigkeit und Plausibilität sowie das entsprechende Gerät auf Konfiguration in der Betriebsart „Zähler-Mode“ geprüft. Ist das nicht der Fall, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben.

SET BOOL (set)

Mit dem Eingang SET = TRUE wird der Zähler auf den Wert des Einganges CNT_SET gesetzt. Der Zähler wird so lange auf dem Wert CNT_SET gehalten, wie der Eingang SET = TRUE ist. Mit der fallenden Flanke am Eingang SET wird das Zählen wieder freigegeben.

EN_LIM BOOL (enable limit)

Mit dem Eingang EN_LIM wird die Betriebsart des Zählers eingestellt:

EN_LIM = FALSE Endloszähler (Endless mode) EN_LIM = TRUE Begrenzungszähler (Limit mode)

Die Umschaltung zwischen den Betriebsarten kann auch im laufenden Betrieb erfolgen. Ebenso können der untere LIM_MIN und obere Grenzwert LIM_MAX im laufenden Betrieb geändert werden. Es ist darauf zu achten, dass der obere Grenzwert LIM_MAX immer größer als der untere Grenzwert LIM_MIN sein muss. Ist LIM_MIN > LIM_MAX, wird eine entsprechende Fehlermeldung an den Ausgängen ERR/ERNO gemeldet.

Bei einer steigenden Flanke am Eingang EN_LIM, d. h. beim Übergang vom Endloszähler (Endless mode) zum Begrenzungszähler (Limit mode), kann sich der aktuelle Zählerstand abhängig vom Wert des unteren (LIM_MIN) und oberen (LIM_MAX) Grenzwertes wie folgt ändern:

ACT_CNT < LIM_MIN ACT_CNT := LIM_MIN

Der Zähler liegt unterhalb LIM_MIN und wird deshalb auf LIM_MIN gesetzt.

LIM_MIN <= ACT_CNT <= LIM_MAX ACT_CNT := ACT_CNT (keine Änderung)

Der Zähler liegt innerhalb der Grenzwerte LIM_MIN und LIM_MAX und wird nicht geändert.

ACT_CNT > LIM_MAX + DIFF ACT_CNT := LIM_MIN (DIFF = Änderung im aktuellen Zyklus)

Der Zähler liegt schon mehrere Zyklen über LIM_MAX und wird deshalb auf LIM_MIN gesetzt.

ACT_CNT > LIM_MAX ACT_CNT := CNT_ACT - (LIM_MAX - LIM_MIN + 1)

Der Zähler hat im aktuellen Zyklus LIM_MAX übertroffen. Die Zähleränderung im letzten Zyklus wird beim Setzen des Zählers berücksichtigt.

Es wird immer erst der neue Zählerstand aus Zählerstand im letzen Zyklus + Änderung im aktuellen Zyklus (DIFF) gebildet. Danach erfolgt der Vergleich mit LIM_MIN und LIM_MAX und ggf. das Setzen des Wertes ACT_CNT.

LIM_MAX DWORD (limit maximum)

Am Eingang LIM_MAX wird der obere Grenzwert für den Zähler eingestellt. Es ist darauf zu achten, dass der obere Grenzwert LIM_MAX immer größer als der untere Grenzwert LIM_MIN sein muss. Ist LIM_MIN > LIM_MAX, wird eine entsprechende Fehlermeldung an den Ausgängen ERR/ERNO gemeldet.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 34 DC541 AC500 / Stand: 04.2007

LIM_MIN DWORD (limit minimum)

Am Eingang LIM_MIN wird der untere Grenzwert für den Zähler eingestellt. Es ist darauf zu achten, dass der obere Grenzwert LIM_MAX immer größer als der untere Grenzwert LIM_MIN sein muss. Ist LIM_MIN > LIM_MAX, wird eine entsprechende Fehlermeldung an den Ausgängen ERR/ERNO gemeldet.

CNT_SET DWORD (count set)

Am Eingang CNT_SET wird der Setzwert für den Zähler eingestellt.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteines angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteines ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

MAX_LIM BOOL (maximum limit)

Am Ausgang MAX_LIM wird in der Betriebsart Endloszähler (Endless mode) angezeigt, ob der aktuelle Zählwert größer als der am Eingang LIM_MAX eingestellte Wert ist.

In der Betriebsart Begrenzungszähler (Limit mode) ist der Ausgang MAX_LIM = FALSE.

MIN_LIM BOOL (minimum limit)

Am Ausgang MIN_LIM wird in der Betriebsart Endloszähler (Endless mode) angezeigt, ob der aktuelle Zählwert kleiner als der am Eingang LIM_MIN eingestellte Wert ist.

In der Betriebsart Begrenzungszähler (Limit mode) ist der Ausgang MIN_LIM = FALSE.

CNT_ACT DWORD (count actual)

Am Ausgang CNT_ACT wird der aktuelle Zählerstand des Vorwärtszählers angezeigt.

Funktionsaufruf in AWL

CAL DC541FwdCnt( SLOT := DC541FwdCnt_SLOT, CH := DC541FwdCnt_CH, EN_VISU := DC541FwdCnt_EN_VISU, EN := DC541FwdCnt_EN, SET := DC541FwdCnt_SET, EN_LIM := DC541FwdCnt_EN_LIM, LIM_MAX := DC541FwdCnt_LIM_MAX,

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 35 DC541 AC500 / Stand: 04.2007

LIM_MIN := DC541FwdCnt_LIM_MIN, CNT_SET := DC541FwdCnt_CNT_SET)

LD DC541FwdCnt.DONE ST DC541FwdCnt_DONE

LD DC541FwdCnt.ERR ST DC541FwdCnt_ERR

LD DC541FwdCnt.ERNO ST DC541FwdCnt_ERNO

LD DC541FwdCnt.MAX_LIM ST DC541FwdCnt_MAX_LIM

LD DC541FwdCnt.MIN_LIM ST DC541FwdCnt_MIN_LIM

LD DC541FwdCnt.CNT_ACT ST DC541FwdCnt_CNT_ACT

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DC541FwdCnt(SLOT := DC541FwdCnt_SLOT, CH := DC541FwdCnt_CH, EN_VISU := DC541FwdCnt_EN_VISU, EN := DC541FwdCnt_EN, SET := DC541FwdCnt_SET, EN_LIM := DC541FwdCnt_EN_LIM, LIM_MAX := DC541FwdCnt_LIM_MAX, LIM_MIN := DC541FwdCnt_LIM_MIN, CNT_SET := DC541FwdCnt_CNT_SET);

DC541FwdCnt_DONE := DC541FwdCnt.DONE; DC541FwdCnt_ERR := DC541FwdCnt.ERR; DC541FwdCnt_ERNO := DC541FwdCnt.ERNO; DC541FwdCnt_RDY_REF := DC541FwdCnt.RDY_REF; DC541FwdCnt_RDY_TOUCH := DC541FwdCnt.RDY_TOUCH; DC541FwdCnt_MAX_LIM := DC541FwdCnt.MAX_LIM; DC541FwdCnt_MIN_LIM := DC541FwdCnt.MIN_LIM; DC541FwdCnt_CNT_ACT := DC541FwdCnt.CNT_ACT;

Die integrierte Visualisierung des Bausteines DC541_FWD_CNT

Der Baustein DC541_FWD_CNT verfügt über eine integrierte Visualisierung visuDC541_FWD_CNT, die in andere Visualisierungen eingebunden und instanziert werden kann. Im Offline-Mode des Control Builders sieht die Visualisierung wie folgt aus:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 36 DC541 AC500 / Stand: 04.2007

Wie eine Visualisierung in ein Projekt eingefügt und konfiguriert wird, ist am Anfang der Beschreibung der Bausteinbibliothek detailliert beschrieben (siehe Integrierte Visualisierung).

Im Online mode des Control Builders sieht die Visualisierung bei Einstellung EN_VISU = TRUE dann z. B. wie folgt aus:

Ist während der Bearbeitung des Bausteines ein Fehler aufgetreten, so wird die Fehlernummer rechts oben solange angezeigt, bis EN = FALSE wird.

Ist der Eingang EN_VISU = FALSE, können die Eingänge über die Visualisierung nicht geändert werden. Die entsprechenden Bedienelemente sind ausgegraut:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 37 DC541 AC500 / Stand: 04.2007

DC541_GET_CFG Ausgabe der Konfiguration des DC541

Der Baustein DC541_GET_CFG dient zum Abfragen der Konfiguration des DC541 und dessen Kanäle.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1.3 Anmerkung:

Verfügbar ab Firmware des DC541: V1.1

Enthalten in Bibliothek: DC541_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DC541_GET_CFG Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz des DC541

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

MODE Ausgang BYTE Anzeige der Betriebsart des Gerätes

CYCLE Ausgang WORD Anzeige der Zykluszeit des Gerätes in [µs]

CFG0...CFG7 Ausgang BYTE Anzeige der Konfiguration der Kanäle C0...C7

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 38 DC541 AC500 / Stand: 04.2007

Beschreibung

Mit dem Baustein DC541_GET_CFG erfolgt die Abfrage der eingestellten Konfiguration für das Gerät DC541. Die Ausgabe der Informationen erfolgt so lange, wie der Eingang EN = TRUE ist. Es wird die Betriebsart des Gerätes, die Zykluszeit des Gerätes in [µs] und die Konfiguration der Kanäle C0 .. C7 gemeldet.

Die Konfiguration des Gerätes DC541 erfolgt in der Steuerungskonfiguration des Control Builders und ist in der Systemtechnik des Gerätes DC541 beschrieben (siehe auch Systemtechnik DC541 / Konfiguration des Gerätes DC541)

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN wird die Statusabfrage aktiviert. Ist der Wert am Eingang SLOT nicht gültig, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben. Die Ausgänge des Bausteines werden solange aktualisiert, solange der Eingang EN = TRUE ist. Der Baustein ist immer dann beendet, wenn der Wert am Ausgang DONE auf TRUE wechselt. Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz (Kartennummer) des DC541 ausgewählt.

Die Steckplätze werden von rechts nach links durchnummeriert. Steckplatz 1 ist der Steckplatz unmittelbar links neben der CPU.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteines angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteines ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

MODE BYTE (mode)

Am Ausgang MODE wird die eingestellte Betriebsart des Gerätes ausgegeben. Es gilt:

DC541_MODE_IO = 16#11 = 17 - IO-Gerät (IO mode)

DC541_MODE_COUNT = 16#22 = 34 - Zählgerät (Counter mode)

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 39 DC541 AC500 / Stand: 04.2007

CYCLE WORD (cycle time)

Am Ausgang CYCLE wird die Zykluszeit des Gerätes in [µs] ausgegeben. Die Zykluszeit wird bei der Konfiguration des Gerätes eingestellt und kann in Abhängigkeit von der Kanalkonfiguration folgende Werte haben:

IO-Gerät 50 µs

Zählgerät 1-2 Funktionen 50 µs

3-4 Funktionen 100 µs

5-8 Funktionen 200 µs

"Funktionen" sind:

- PWM Pulsweitenmodulator,

- FREQ Zeit- und Frequenzmessung,

- FREQ_OUT Frequenzausgabe

- 32BIT_CNT 32-Bit-Encoder - FWD_CNT 32-Bit-Vorwärtszähler

- LIMIT Grenzwertüberwachung des 32-Bit-Zählers

CFG0...CFG7 BYTE (config C0...C7)

An den Ausgängen CFG0...CFG7 wird die eingestellte Kanalkonfiguration der Kanäle C0...C7 angezeigt. Die Werte haben folgende Bedeutung:

CFGx Kanal Funktion

MODE = DC541_MODE_IO = 16#11 = 17

0 0...7 Normaler Eingang

1 0...7 Normaler Ausgang

255 0...7 Interrupteingang

MODE = DC541_MODE_COUNT = 16#22 = 34

0 0...7 Normaler Eingang

1 0...7 Normaler Ausgang

2 0...7 Pulsweitenmodulator (PWM)

3 0...1 50-kHz-Vorwärtszähler (FWD_CNT)

3 2...7 5-kHz-Vorwärtszähler (FWD_CNT)

4 0...7 Zeit- bzw. Frequenzmessung (FREQ)

5 4...7 Grenwerte auf 32-Bit-Zähler (LIMIT)

6 0 32-Bit-Zweirichtungszähler (belegt die Kanäle 0...3). Die Einstellung der Kanäle CFG1...CFG3 ist beliebig.

7 0...7 Frequenzausgabe

Funktionsaufruf in AWL

CAL DC541GetCfg ( EN := DC541GetCfg_EN, SLOT := DC541GetCfg_SLOT)

LD DC541GetCfg.DONE ST DC541GetCfg_DONE

LD DC541GetCfg.ERR ST DC541GetCfg_ERR

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 40 DC541 AC500 / Stand: 04.2007

LD DC541GetCfg.ERNO ST DC541GetCfg_ERNO

LD DC541GetCfg.MODE ST DC541GetCfg_MODE

LD DC541GetCfg.CYCLE ST DC541GetCfg_CYCLE

LD DC541GetCfg.CFG0 ST DC541GetCfg_CFG0

LD DC541GetCfg.CFG1 ST DC541GetCfg_CFG1

LD DC541GetCfg.CFG2 ST DC541GetCfg_CFG2

LD DC541GetCfg.CFG3 ST DC541GetCfg_CFG3

LD DC541GetCfg.CFG4 ST DC541GetCfg_CFG4

LD DC541GetCfg.CFG5 ST DC541GetCfg_CFG5

LD DC541GetCfg.CFG6 ST DC541GetCfg_CFG6

LD DC541GetCfg.CFG7 ST DC541GetCfg_CFG7

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DC541GetCfg (EN := DC541GetCfg_EN, SLOT := DC541GetCfg_SLOT);

DC541GetCfg_DONE := DC541GetCfg.DONE; DC541GetCfg_ERR := DC541GetCfg.ERR; DC541GetCfg_ERNO := DC541GetCfg.ERNO; DC541GetCfg_MODE := DC541GetCfg.DIAG; DC541GetCfg_CYCLE := DC541GetCfg.CYCLE; DC541GetCfg_CFG0 := DC541GetCfg.CFG0; DC541GetCfg_CFG1 := DC541GetCfg.CFG1; DC541GetCfg_CFG2 := DC541GetCfg.CFG2; DC541GetCfg_CFG3 := DC541GetCfg.CFG3; DC541GetCfg_CFG4 := DC541GetCfg.CFG4; DC541GetCfg_CFG5 := DC541GetCfg.CFG5; DC541GetCfg_CFG6 := DC541GetCfg.CFG6; DC541GetCfg_CFG7 := DC541GetCfg.CFG7;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 41 DC541 AC500 / Stand: 04.2007

Die integrierte Visualisierung des Bausteines DC541_GET_CFG

Der Baustein DC541_GET_CFG verfügt über eine integrierte Visualisierung visuDC541_GET_CFG, die in andere Visualisierungen eingebunden und instanziert werden kann. Im Offline-Mode des Control Builders sieht die Visualisierung wie folgt aus:

Wie eine Visualisierung in ein Projekt eingefügt und konfiguriert wird, ist am Anfang der Beschreibung der Bausteinbibliothek detailliert beschrieben (siehe Integrierte Visualisierung).

Im Online-Mode des Control Builders sieht die Visualisierung dann z. B. wie folgt aus:

Die Betriebsart des Gerätes DC541 (Mode) und die Kanalkonfiguration der Kanäle C0..C7 (Channel 0 .. 7) werden im Klartext ausgegeben.

Ist während der Bearbeitung des Bausteines ein Fehler aufgetreten, so wird die Fehlernummer rechts oben solange angezeigt, bis EN = FALSE wird.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 42 DC541 AC500 / Stand: 04.2007

DC541_INT_IN Ausgabe der Interruptquelle

Der Baustein DC541_INT_IN gibt aus, welcher Eingang C0...C7 den Interrupt ausgelöst hat.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1.2 Anmerkung:

Verfügbar ab Firmware des DC541: V1.0

Enthalten in Bibliothek: DC541_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DC541_INT_IN Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz des DC541

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

IN0...IN7 Ausgang BOOL =TRUE, entsprechender Eingang hat den Interrupt ausgelöst

Beschreibung

Mit dem Baustein DC541_INT_IN erfolgt im Interruptprogamm die Abfrage, welche Eingänge C0...C7 Interrupts seit dem letzten Aufruf des Bausteines ausgelöst haben. Die entsprechenden Ausgänge IN0...IN1 werden auf TRUE gesetzt.

Der Baustein DC541_INT_IN kann nur bei Konfiguration des Gerätes als IO-Geräte genutzt werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 43 DC541 AC500 / Stand: 04.2007

EN BOOL (enable)

Der Eingang EN ist konstant mit TRUE zu belegen.

Beim ersten Aufruf wird der Eingang SLOT auf Gültigkeit und das entsprechende Gerät auf Konfiguration in der Betriebsart "I/O-Mode" geprüft. Ist das nicht der Fall, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben. Die Ausgänge des Bausteines werden solange aktualisiert, solange der Eingang EN = TRUE ist.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz (Kartennummer) des DC541 ausgewählt.

Die Steckplätze werden von rechts nach links durchnummeriert. Steckplatz 1 ist der Steckplatz unmittelbar links neben der CPU.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteines angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteines ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

IN0...IN7 BOOL (input C0...C7)

An den Ausgängen IN0 .. IN7 wird angezeigt, welche Eingänge seit dem letzten Aufruf des Bausteines einen Interrupt ausgelöst haben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 44 DC541 AC500 / Stand: 04.2007

Funktionsaufruf in AWL

CAL DC541IntIn ( EN := DC541IntIn_EN, SLOT := DC541IntIn_SLOT)

LD DC541IntIn.DONE ST DC541IntIn_DONE

LD DC541IntIn.ERR ST DC541IntIn_ERR

LD DC541IntIn.ERNO ST DC541IntIn_ERNO

LD DC541IntIn.IN0 ST DC541IntIn_IN0

LD DC541IntIn.IN1 ST DC541IntIn_IN1

LD DC541IntIn.IN2 ST DC541IntIn_IN2

LD DC541IntIn.IN3 ST DC541IntIn_IN3

LD DC541IntIn.IN4 ST DC541IntIn_IN4

LD DC541IntIn.IN5 ST DC541IntIn_IN5

LD DC541IntIn.IN6 ST DC541IntIn_IN6

LD DC541IntIn.IN7 ST DC541IntIn_IN7

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DC541IntIn(EN := DC541IntIn_EN, SLOT := DC541IntIn_SLOT);

DC541IntIn_DONE := DC541IntIn.DONE; DC541IntIn_ERR := DC541IntIn.ERR; DC541IntIn_ERNO := DC541IntIn.ERNO; DC541IntIn_IN0 := DC541IntIn.IN0; DC541IntIn_IN1 := DC541IntIn.IN1; DC541IntIn_IN2 := DC541IntIn.IN2; DC541IntIn_IN3 := DC541IntIn.IN3; DC541IntIn_IN4 := DC541IntIn.IN4; DC541IntIn_IN5 := DC541IntIn.IN5; DC541IntIn_IN6 := DC541IntIn.IN6; DC541IntIn_IN7 := DC541IntIn.IN7;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 45 DC541 AC500 / Stand: 04.2007

DC541_IO Lesen/Schreiben der Ein-/Ausgänge des DC541

Der Baustein DC541_IO dient zum Lesen und Schreiben der Ein- bzw. Ausgänge des DC541.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1.2 Anmerkung:

Verfügbar ab Firmware des DC541: V1.0

Enthalten in Bibliothek: DC541_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DC541_IO Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz des DC541

OUT0...OUT7 Eingang BOOL Sollwert der Ausgänge der Kanäle C0...C7

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

IN0...IN7 Ausgang BOOL Istwert der Eingänge der Kanäle C0...C7

Beschreibung

Mit dem Baustein DC541_IO erfolgt das Lesen der "normalen" Eingänge und das Schreiben der Ausgänge des DC541. Das Lesen und Schreiben der Ein- und Ausgänge erfolgt solange, wie der Eingang EN=TRUE ist. Dieser Baustein kann sowohl bei Konfiguration des Gerätes als IO-Gerät (IO mode) als auch als Zählgerät (Counter mode) eingesetzt werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 46 DC541 AC500 / Stand: 04.2007

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN wird die Statusabfrage aktiviert. Ist der Wert am Eingang SLOT nicht gültig, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben. Die Eingänge und Ausgänge des DC541 werden solange bearbeitet, solange der Eingang EN = TRUE ist. Der Baustein ist immer dann beendet, wenn der Wert am Ausgang DONE auf TRUE wechselt. Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz (Kartennummer) des DC541 ausgewählt.

Die Steckplätze werden von rechts nach links durchnummeriert. Steckplatz 1 ist der Steckplatz unmittelbar links neben der CPU.

OUT0...OUT7 BOOL (output C0...C7)

An den Eingängen OUT0 .. OUT7 werden die Sollzustände der Ausgänge C0 .. C7 eingetragen. Nur als Ausgänge konfigurierte Kanäle werden tatsächlich geschrieben.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteines angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteines ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

IN0...IN7 BOOL (input C0...C7)

An den Ausgängen IN0 .. IN7 wird der aktuelle Istzustand der Kanäle C0 .. C7 ausgegeben.

Funktionsaufruf in AWL

CAL DC541Io ( EN := DC541Io_EN, SLOT := DC541Io_SLOT, OUT0 := DC541Io_OUT0, OUT1 := DC541Io_OUT1, OUT2 := DC541Io_OUT2, OUT3 := DC541Io_OUT3, OUT4 := DC541Io_OUT4, OUT5 := DC541Io_OUT5, OUT6 := DC541Io_OUT6, OUT7 := DC541Io_OUT7)

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 47 DC541 AC500 / Stand: 04.2007

LD DC541Io.DONE ST DC541Io_DONE

LD DC541Io.ERR ST DC541Io_ERR

LD DC541Io.ERNO ST DC541Io_ERNO

LD DC541Io.IN0 ST DC541Io_IN0

LD DC541Io.IN1 ST DC541Io_IN1

LD DC541Io.IN2 ST DC541Io_IN2

LD DC541Io.IN3 ST DC541Io_IN3

LD DC541Io.IN4 ST DC541Io_IN4

LD DC541Io.IN5 ST DC541Io_IN5

LD DC541Io.IN6 ST DC541Io_IN6

LD DC541Io.IN7 ST DC541Io_IN7

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DC541Io (EN := DC541Io_EN, SLOT := DC541Io_SLOT, OUT0 := DC541Io_OUT0, OUT1 := DC541Io_OUT1, OUT2 := DC541Io_OUT2, OUT3 := DC541Io_OUT3, OUT4 := DC541Io_OUT4, OUT5 := DC541Io_OUT5, OUT6 := DC541Io_OUT6, OUT7 := DC541Io_OUT7);

DC541Io_DONE := DC541Io.DONE; DC541Io_ERR := DC541Io.ERR; DC541Io_ERNO := DC541Io.ERNO; DC541Io_IN0 := DC541Io.IN0; DC541Io_IN1 := DC541Io.IN1; DC541Io_IN2 := DC541Io.IN2; DC541Io_IN3 := DC541Io.IN3; DC541Io_IN4 := DC541Io.IN4; DC541Io_IN5 := DC541Io.IN5; DC541Io_IN6 := DC541Io.IN6; DC541Io_IN7 := DC541Io.IN7;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 48 DC541 AC500 / Stand: 04.2007

DC541_LIMIT Grenzwertüberwachung des 32-Bit-Zählers

Der Baustein DC541_LIMIT dient zur Grenzwertüberwachung des 32 Bit - Zählers.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1.3 Anmerkung:

Verfügbar ab Firmware des DC541: V1.1

Enthalten in Bibliothek: DC541_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DC541_LIMIT Instanzname

SLOT Eingang BYTE Steckplatz des DC541

CH Eingang BYTE Auswahl des Einganges C4...C7

EN_VISU Eingang BOOL Freigabe der Eingaben in der integrierten Visualisierung des Bausteins visuDC541_LIMIT

EN Ein-/Ausgang

BOOL Freigabe der Bausteinbearbeitung

SIGNAL Ein-/Ausgang

BOOL Wahl des Signalpegels des Ausganges CH

LIM_MAX Ein-/Ausgang

DWORD Endwert des Zählers bei EN_LIM = TRUE

LIM_MIN Ein-/Ausgang

DWORD Startwert des Zählers bei EN_LIM = TRUE

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 49 DC541 AC500 / Stand: 04.2007

Beschreibung

Der Baustein DC541_LIMIT dient zur Grenzwertüberwachung des 32-Bit-Zählers. Der Baustein kann dazu verwendet werden, verschiedene Zählerstände des 32-Bit-Zählers (DC541_32BIT_CNT) direkt über binäre Ausgänge anzuzeigen. Mit dem Eingang SIGNAL kann ausgewählt werden, ob der zugehörige Ausgang auf FALSE oder TRUE geschaltet wird.

Der Baustein arbeitet mit einer zeitlichen Auflösung von < 100 µs, d. h. bis zu einer Frequenz von 10 kHz inkrementgenau.

Der obere Grenzwert LIM_MAX muss größer als der untere Grenzwert LIM_MIN sein. Ist der untere Grenzwert LIM_MIN größer als der obere Grenzwert LIM_MAX, wird eine entsprechende Fehlermeldung an den Ausgängen ERR/ERNO gemeldet.

Das Gerät DC541 muss als Zählgerät (Counter mode) und der Kanal C0 als 32-Bit-Zähler (32 bit counter) konfiguriert sein.

Der Baustein DC541_LIMIT verfügt über eine integrierte Visualisierung visuDC541_LIMIT, über die alle Funktionen des Bausteines parallel zum Anwenderprogramm gesteuert werden können, wenn der Eingang EN_VISU = TRUE ist. Die Einbindung und Funktion der Visualisierung sind am Ende der Bausteinbeschreibung ausführlich beschrieben (siehe auch "Die integrierte Visualisierung des Bausteines DC541_FWD_CNT“).

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz (Kartennummer) des DC541 ausgewählt.

Die Steckplätze werden von rechts nach links durchnummeriert. Steckplatz 1 ist der Steckplatz unmittelbar links neben der CPU.

CH BYTE (channel)

Am Eingang CH wird der Kanal für die Grenzwertüberwachung ausgewählt. Gültige Werte sind 4...7 für die Ausgänge C4...C7. Wird ein ungültiger Wert am Eingang CH eingetragen oder ist der gewählte Kanal nicht als Limit Channel 0 konfiguriert oder ist der Kanal C0 nicht als 32-Bit-Zähler (32 bit counter) konfiguriert, so wird der Baustein mit DONE=ERR=TRUE und einer entsprechenden Fehlernummer in ERNO abgebrochen.

EN_VISU BOOL (enable input in visualization)

Wenn der Eingang EN_VISU = TRUE ist, können Eingänge des Bausteines (außer SLOT, CH und EN_VISU) auch über die integrierte Visualisierung des Bausteines bedient werden. Ist der Eingang EN_VISU = FALSE, ist die Eingabe über die Visualisierung abgeschaltet und die Beschriftung der entsprechenden Bedienelemente ausgegraut. Die Anzeige der aktuellen Werte erfolgt immer. Die Einbindung und Funktion der Visualisierung sind am Ende der Bausteinbeschreibung ausführlich beschrieben (siehe auch "Die integrierte Visualisierung des Bausteines DC541_LIMIT“).

EN BOOL (enable)

Der Eingang EN ist konstant mit TRUE zu belegen, solange die Impulse am Eingang CH gezählt werden sollen. Ist der Eingang EN = FALSE, wird der Baustein nicht bearbeitet und die Impulse am Eingang CH gehen verloren.

Beim ersten Aufruf werden die Eingänge auf Gültigkeit und Plausibilität sowie das entsprechende Gerät auf Konfiguration in der Betriebsart "Zähler-Mode" geprüft. Ist das nicht der Fall, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 50 DC541 AC500 / Stand: 04.2007

SIGNAL BOOL (signal)

Mit dem Eingang SIGNAL kann ausgewählt werden, ob der zugehörige Ausgang CH auf TRUE oder FALSE geschaltet wird.

Zählerstand des 32-Bit-Zählers DC541_32BIT_CNT / ACT_CNT

Ausgang CH bei SIGNAL = TRUE

Ausgang CH bei SIGNAL = FALSE

ACT_CNT < LIM_MIN FALSE TRUE

LIM_MIN <= ACT_CNT <= LIM_MAX TRUE FALSE

ACT_CNT > LIM_MAX FALSE TRUE

Bei SIGNAL = TRUE ist der Ausgang CH = TRUE, wenn der Zählerstand des 32-Bit-Zählers zwischen den Grenzwerten LIM_MIN und LIM_MAX liegt. Ausserhalb der Grenzwerte ist der Ausgang CH = FALSE.

Bei SIGNAL = FALSE ist der Ausgang CH = FALSE, wenn der Zählerstand des 32-Bit-Zählers zwischen den Grenzwerten LIM_MIN und LIM_MAX liegt. Außerhalb der Grenzwerte ist der Ausgang CH = TRUE.

LIM_MAX DWORD (limit maximum)

Am Eingang LIM_MAX wird der obere Grenzwert für die Grenzwertüberwachung eingestellt. Es ist darauf zu achten, dass der obere Grenzwert LIM_MAX immer größer als der untere Grenzwert LIM_MIN sein muss. Ist LIM_MIN > LIM_MAX, wird eine entsprechende Fehlermeldung an den Ausgängen ERR/ERNO gemeldet.

LIM_MIN DWORD (limit minimum)

Am Eingang LIM_MIN wird der untere Grenzwert für die Grenzwertüberwachung eingestellt. Es ist darauf zu achten, dass der obere Grenzwert LIM_MAX immer größer als der untere Grenzwert LIM_MIN sein muss. Ist LIM_MIN > LIM_MAX, wird eine entsprechende Fehlermeldung an den Ausgängen ERR/ERNO gemeldet.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteines angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteines ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 51 DC541 AC500 / Stand: 04.2007

Funktionsaufruf in AWL

CAL DC541Limit( SLOT := DC541Limit_SLOT, CH := DC541Limit_CH, EN_VISU := DC541Limit_EN_VISU, EN := DC541Limit_EN, SIGNAL := DC541Limit_SIGNAL, LIM_MAX := DC541Limit_LIM_MAX, LIM_MIN := DC541Limit_LIM_MIN)

LD DC541Limit.DONE ST DC541Limit_DONE

LD DC541Limit.ERR ST DC541Limit_ERR

LD DC541Limit.ERNO ST DC541Limit_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DC541Limit (SLOT := DC541Limit_SLOT, CH := DC541Limit_CH, EN_VISU := DC541Limit_EN_VISU, EN := DC541Limit_EN, SIGNAL := DC541Limit_SIGNAL, LIM_MAX := DC541Limit_LIM_MAX, LIM_MIN := DC541Limit_LIM_MIN);

DC541Limit_DONE := DC541Limit.DONE; DC541Limit_ERR := DC541Limit.ERR; DC541Limit_ERNO := DC541Limit.ERNO;

Die integrierte Visualisierung des Bausteines DC541_LIMIT

Der Baustein DC541_LIMIT verfügt über eine integrierte Visualisierung visuDC541_LIMIT, die in andere Visualisierungen eingebunden und instanziert werden kann. Im Offline mode des Control Builders sieht die Visualisierung wie folgt aus:

Wie eine Visualisierung in ein Projekt eingefügt und konfiguriert wird, ist am Anfang der Beschreibung der Bausteinbibliothek detailliert beschrieben (siehe Integrierte Visualisierung).

Im Online mode des Control Builders sieht die Visualisierung bei Einstellung EN_VISU = TRUE dann z. B. wie folgt aus:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 52 DC541 AC500 / Stand: 04.2007

Ist während der Bearbeitung des Bausteines ein Fehler aufgetreten, so wird die Fehlernummer rechts oben solange angezeigt, bis EN = FALSE wird.

Ist der Eingang EN_VISU = FALSE, können die Eingänge über die Visualisierung nicht geändert werden. Die entsprechenden Bedienelemente sind ausgegraut:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 53 DC541 AC500 / Stand: 04.2007

DC541_PWM Pulsweitenmodulation

Der Baustein DC541_PWM gibt ein gepulstes Signal aus, dessen Puls-Pausen-Verhältnis variabel eingestellt werden kann.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1.3 Anmerkung:

Verfügbar ab Firmware des DC541: V1.1

Enthalten in Bibliothek: DC541_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DC541_PWM Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz des DC541

CH Eingang BYTE Auswahl des Ausganges C0...C7

PULSE Eingang BYTE Verhältnis TRUE-Signal

PAUSE Eingang BYTE Verhältnis FALSE-Signal

CYCLE Eingang WORD Minimale Schaltzeit [µs]

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Der Baustein DC541_PWM gibt ein gepulstes Signal aus, dessen Puls-Pausen-Verhältnis variabel eingestellt werden kann. Puls und Pause werden als 8-Bit Zahlen eingestellt.

Über den Eingang CYCLE wird die minimale Schaltzeit angegeben, d. h. wenn ein Ausgang durch den PWM auf FALSE oder TRUE geschaltet wurde, bleibt er für mindestens CYCLE µs im selben Zustand.

Die minimale Zeit am Eingang CYCLE darf nicht kleiner als die Zykluszeit des Gerätes DC541 sein.. Die Zykluszeit des DC541 kann in Abhängigkeit von der Konfiguration des DC541 50, 100 oder 200 µs betragen und kann mit dem Baustein DC541_GET_CFG (Ausgang CYCLE) abgefragt werden (siehe hierzu Baustein DC541_GET_CFG/CYCLE).

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 54 DC541 AC500 / Stand: 04.2007

Beispiele:

PULSE PAUSE CYCLE Ergebnis (x = Anzahl Zyklen des DC541)

Zykluszeit DC541 = 50 µs

1 2 500 10 x TRUE / 20 x FALSE / 10 x TRUE / 20 x FALSE / … d. h. 500 µs = TRUE und 1000 µs = FALSE

4 8 500 10 x TRUE / 20 x FALSE / 10 x TRUE / 20 x FALSE / … d. h. 500 µs = TRUE und 1000 µs = FALSE (wie Beispiel 1, d. h. Verhältnis 1 : 2)

3 2 3000 90 x TRUE / 60 x FALSE / 90 x TRUE / 60 x FALSE / … d. h. 4500 µs = TRUE und 3000 µs = FALSE

Zykluszeit DC541 = 100 µs

1 2 500 5 x TRUE / 10 x FALSE / 5 x TRUE / 10 x FALSE / … d. h. 500 µs = TRUE und 1000 µs = FALSE

4 8 500 5 x TRUE / 10 x FALSE / 5 x TRUE / 10 x FALSE / … d. h. 500 µs = TRUE und 1000 µs = FALSE (wie Beispiel 1, d. h. Verhältnis 1 : 2

3 2 3000 45 x TRUE / 30 x FALSE / 45 x TRUE / 30 x FALSE / … d. h. 4500 µs = TRUE und 3000 µs = FALSE

Zykluszeit DC541 = 200 µs

1 2 500 3 x TRUE / 6 x FALSE / 3 x TRUE / 6 x FALSE /... d. h. 600 µs = TRUE, 1200 µs = FALSE

4 8 500 3 x TRUE / 6 x FALSE / 3 x TRUE / 6 x FALSE / ... d. h. 600 µs = TRUE, 1200 µs = FALSE (wie Beispiel 1, d. h. Verhältnis 1 : 2

3 2 3000 22 x TRUE / 15 x FALSE / 23 x TRUE / 15 x FALSE / … d. h. 4400 µs = TRUE und 3000 µs = FALSE, dann 4600 µs = TRUE und 3000 µs = FALSE

Das Gerät DC541 muss als Zählgerät (Counter mode) konfiguriert sein.

EN BOOL (enable)

Der Eingang EN ist konstant mit TRUE zu belegen.

Beim ersten Aufruf wird der Eingang SLOT auf Gültigkeit, die Gerätekonfiguration auf Betriebsart "Zähler-Mode" und die Konfiguration des Kanales CH auf "PWM" geprüft. Ist das nicht der Fall, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben. Die Ausgänge des Bausteines werden solange aktualisiert, solange der Eingang EN = TRUE ist.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz (Kartennummer) des DC541 ausgewählt.

Die Steckplätze werden von rechts nach links durchnummeriert. Steckplatz 1 ist der Steckplatz unmittelbar links neben der CPU.

CH BYTE (channel)

Am Eingang CH wird der Ausgang ausgewählt, der gepulst werden soll.

PULSE BYTE (pulse)

Am Eingang PULSE wird die Verhältniszahl für das TRUE - Signal angegeben.

PAUSE BYTE (pause)

Am Eingang PAUSE wird die Verhältniszahl für das FALSE - Signal angegeben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 55 DC541 AC500 / Stand: 04.2007

CYCLE WORD (cycle)

Am Eingang CYCLE wird die minimale Schaltzeit in [µs] des Ausganges angegeben. Der Ausgang bleibt für mindestens die Zeit CYCLE im Zustand TRUE oder FALSE.

Die minimale Zeit am Eingang CYCLE darf nicht kleiner als die Zykluszeit des Gerätes DC541 sein. Die Zykluszeit des DC541 kann in Abhängigkeit von der Konfiguration des DC541 50, 100 oder 200 µs betragen und kann mit dem Baustein DC541_GET_CFG (Ausgang CYCLE) abgefragt werden (siehe hierzu Baustein DC541_GET_CFG/CYCLE).

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteines angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteines ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 56 DC541 AC500 / Stand: 04.2007

Funktionsaufruf in AWL

CAL DC541Pwm( EN := DC541Pwm_EN, SLOT := DC541Pwm_SLOT, CH := DC541Pwm_CH, PULSE := DC541Pwm_PULSE, PAUSE := DC541Pwm_PAUSE, CYCLE := DC541Pwm_CYCLE)

LD DC541Pwm.DONE ST DC541Pwm_DONE

LD DC541Pwm.ERR ST DC541Pwm_ERR

LD DC541Pwm.ERNO ST DC541Pwm_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DC541Pwm(EN := DC541Pwm_EN, SLOT := DC541Pwm_SLOT, CH := DC541Pwm_CH, PULSE := DC541Pwm_PULSE, PAUSE := DC541Pwm_PAUSE, CYCLE := DC541Pwm_CYCLE);

DC541Pwm_DONE := DC541Pwm.DONE; DC541Pwm_ERR := DC541Pwm.ERR; DC541Pwm_ERNO := DC541Pwm.ERNO;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 57 DC541 AC500 / Stand: 04.2007

DC541_STATE Statusabfrage des DC541

Der Baustein DC541_STATE dient zur Statusabfrage des DC541.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.1.3 Anmerkung:

Verfügbar ab Firmware des DC541: V1.1

Enthalten in Bibliothek: DC541_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz DC541_STATE Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

SLOT Eingang BYTE Steckplatz des DC541

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

DIAG Ausgang BYTE Diagnosemeldung des DC541

OV0...OV7 Ausgang BOOL Anzeige des Ausgangsstatus der Kanäle C0...C7

Beschreibung

Mit dem Baustein DC541_STATE erfolgt die Statusabfrage für das Gerät DC541. Die Ausgabe der Informationen erfolgt so lange, wie der Eingang EN = TRUE ist. Es werden die Gerätediagnose und der Ausgangsstatus der Kanäle C0 .. C7 gemeldet.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 58 DC541 AC500 / Stand: 04.2007

EN BOOL (enable)

Bei der Vorgabe einer FALSE->TRUE-Flanke am Eingang EN wird die Statusabfrage aktiviert. Ist der Wert am Eingang SLOT nicht gültig, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben. Die Ausgänge des Bausteines werden solange aktualisiert, wie der Eingang EN = TRUE ist. Der Baustein ist immer dann beendet, wenn der Wert am Ausgang DONE auf TRUE wechselt. Während der Bearbeitung einer Anforderung werden Zustandsänderungen am Eingang EN registriert, aber nicht ausgewertet.

SLOT BYTE (slot)

Am Eingang SLOT wird der Steckplatz (Kartennummer) des DC541 ausgewählt.

Die Steckplätze werden von rechts nach links durchnummeriert. Steckplatz 1 ist der Steckplatz unmittelbar links neben der CPU.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteines angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteines ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist. Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

DIAG BYTE (diagnosis)

Am Ausgang DIAG wird die Diagnosemeldung vom DC541 angezeigt. Ist DIAG = 0, so liegt keine Diagnosemeldung vor. Folgende Meldungen sind möglich: 16#01 = 1 -> Watchdogfehler

OV0...OV7 BOOL (overload C0...C7)

An den Ausgängen OV0..OV7 wird der Ausgangsstatus der Kanäle C0 .. C7 angezeigt. Ist das entsprechende Bit = TRUE, so kann der Ausgang z. B. wegen Überlast oder Kurzschluss nicht geschaltet werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 59 DC541 AC500 / Stand: 04.2007

Funktionsaufruf in AWL

CAL DC541State ( EN := DC541State_EN, SLOT := DC541State_SLOT)

LD DC541State.DONE ST DC541State_DONE

LD DC541State.ERR ST DC541State_ERR

LD DC541State.ERNO ST DC541State_ERNO

LD DC541State.DIAG ST DC541State_DIAG

LD DC541State.OV0 ST DC541State_OV0

LD DC541State.OV1 ST DC541State_OV1

LD DC541State.OV2 ST DC541State_OV2

LD DC541State.OV3 ST DC541State_OV3

LD DC541State.OV4 ST DC541State_OV4

LD DC541State.OV5 ST DC541State_OV5

LD DC541State.OV6 ST DC541State_OV6

LD DC541State.OV7 ST DC541State_OV7

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

DC541State(EN := DC541State_EN, SLOT := DC541State_SLOT);

DC541State_DONE := DC541State.DONE; DC541State_ERR := DC541State.ERR; DC541State_ERNO := DC541State.ERNO; DC541State_DIAG := DC541State.DIAG; DC541State_OV0 := DC541State.OV0; DC541State_OV1 := DC541State.OV1; DC541State_OV2 := DC541State.OV2; DC541State_OV3 := DC541State.OV3; DC541State_OV4 := DC541State.OV4; DC541State_OV5 := DC541State.OV5; DC541State_OV6 := DC541State.OV6; DC541State_OV7 := DC541State.OV7;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 60 DC541 AC500 / Stand: 04.2007

Glossar

BOOL

Variablen vom Typ BOOL können die Wahrheitswerte TRUE und FALSE annehmen. Es werden 8 Bit Speicherplatz reserviert.

DINT

DINT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DINT Untergrenze -2147483648 Obergrenze 2147483647 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

DWORD

DWORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DWORD Untergrenze 0 Obergrenze 4294967295 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

INT

INT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ INT Untergrenze -32768 Obergrenze 32767 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

WORD

WORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ WORD Untergrenze 0 Obergrenze 65535 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 61 DC541 AC500 / Stand: 04.2007

BYTE

BYTE gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ BYTE Untergrenze 0 Obergrenze 255 Speicherplatz 8 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

Funktionen

Funktionen sind Unterprogramme, die beliebig viele Eingangsparameter haben und genau ein Ergebnis-Element zurückliefern. Das zurückgelieferte Ergebnis kann von elementarem, aber auch von zusammengesetztem Datentyp sein. Eine Funktion darf also auch ein Feld, eine Struktur, ein Feld von Strukturen etc. zurückgeben.

Funktionen liefern bei gleicher Eingangsbeschaltung stets das gleiche Ergebnis (sie besitzen kein Gedächtnis.

Daraus abzuleiten sind folgende Regeln:

• Innerhalb von Funktionen dürfen globale Variablen weder gelesen noch geschrieben werden. • Innerhalb von Funktionen dürfen Absolutoperanden weder gelesen noch geschrieben werden • Innerhalb von Funktionen dürfen Funktionsblöcke nicht aufgerufen werden.

Funktionsblöcke

Funktionsblöcke sind Unterprogramme, die jeweils beliebig viele Eingangs-, Ausgangs- und interne Variablen haben. Sie werden von einem Programm aufgerufen oder von einem anderen Funktionsblock.

Da sie auch mehrfach genutzt werden können (mit jeweils anderen Datensätzen), können Funktionsblöcke (ihr Code und die Schnittstelle) als Typ betrachtet werden. Über die Zuordnung eines individuellen Datensatzes (Deklaration) wird eine Instanz des Funktionsblockes angelegt.

Anders als Funktionen können Funktionsblöcke statisch lokale Daten haben, die von einem Aufruf zum nächsten gerettet werden. Damit können z. B. Zähler realisiert werden, die ihren Zählerstand nicht vergessen dürfen. D. h. Funktionsblöcke können ein Gedächtnis haben.

Funktionen und Funktionsblöcke unterscheiden sich in zwei wesentlichen Punkten:

• Ein Funktionsblock hat beliebig viele Ausgangsparameter, die Funktion maximal einen, wobei sich die Ausgangsparameter von Funktionen und Funktionsblöcken syntaktisch unterscheiden.

• Ein Funktionsblock kann ein Gedächtnis haben, eine Funktion nicht.

Funktionsblöcke mit Vergangenheitswerten (Gedächtnis):

Bei Funktionsblöcken mit Vergangenheitswerten ist zu beachten, dass Instanznamen nicht mehrfach vergeben werden dürfen, wenn unterschiedliche Datensätze aufgerufen werden sollen.

Funktionsblöcke ohne Vergangenheitswerte (Gedächtnis):

Bei Funktionsblöcken ohne Vergangenheitswerte braucht nur eine Instanz für den FB-Typ angelegt zu werden. Diese Instanz kann für mehrere Aufrufe des FB (auch mit unterschiedlichen E/A-Werten) genutzt werden.

Der Instanzname kann beliebig definiert werden. Der Typ ist vorgegeben und ist identisch mit dem Namen des Funktionsblockes.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 62 DC541 AC500 / Stand: 04.2007

Index

B

Bausteinübersicht, geordnet nach Aufrufnamen 3

Besonderheiten der DC541-Bibliothek 2

Bestandteile der DC541-Bibliothek 2

D

DC541_32BIT_CNT 32-Bit-Encoder 5

DC541_FREQ Zeit- und Frequenzmessung 13

DC541_FREQ_FAST Schnelle Zerit- und Frequenzmessung 20

DC541_FREQ_OUT Frequenzausgabe 26

DC541_FWD_CNT 32-Bit-Vorwärtszähler 31

DC541_GET_CFG Ausgabe der Konfiguration des DC541 37

DC541_INT_IN Ausgabe der Interruptquelle 42

DC541_IO Lesen/Schreiben der Ein-/Ausgänge des DC541 45

DC541_LIMIT Grenzwertüberwachung des 32-Bit-Zählers 48

DC541_PWM Pulsweitenmodulator 53

DC541_STATE Statusabfrage des DC541 57

Die integrierte Visualisierung der Bausteine 3

G

Glossar 60

V

Voraussetzung für die Verwendung der Bibliothek 2

Softwarebeschreibung AC500

Skalierbare SPS für individuelle Automatisierung Counter- Bausteinbibliothek

Counter

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 1 Counter AC500 / Stand: 03.2007

Inhalt

Counter-Bibliothek ......................................................................................................................... 2

Voraussetzung für die Verwendung der Bibliothek ......................................................................... 2

Besonderheiten der Counter-Bibliothek.............................................................................................. 2

Bestandteile der Counter-Bibliothek .................................................................................................... 2

Bausteinübersicht, geordnet nach Aufrufnamen.............................................................................. 2

Die integrierte Visualisierung der Bausteine der Counter-Bibliothek ......................................... 2

CNT_DC551 Schneller Zähler des DC551-CS31....................................................................................... 5

CNT_IO Schneller Zähler der digitalen S500-E/A-Geräte......................................................................... 13

Glossar ....................................................................................................................................................... 21

Index............................................................................................................................................................ 23

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 2 Counter AC500 / Stand: 03.2007

Counter-Bibliothek

Voraussetzung für die Verwendung der Bibliothek

Hinweis:

Die Bausteine der Counter-Bibliothek laufen nur im RUN-Modus der SPS, nicht im Simulationsmodus.

Die Bausteine der Counter_AC500_V11.lib sind in AC500-Steuerungen mit Laufzeitsystem ab Version V1.1.7 und Firmwareversion der S500-E/A-Geräte ab Version V1.3 verfügbar.

Besonderheiten der Counter-Bibliothek

Die Counter-Bibliothek enthält Bausteine, die den Einsatz der Schnellen Zähler der S500-E/A-Geräte am I/O-Bus der AC500 CPUs bzw. des DC551 am CS31-Bus vereinfachen. Die Konfiguration der Schnellen Zähler erfolgt in der Steuerungskonfiguration. Die AC500-Steuerungskonfiguration ist im Kapitel Systemtechnik_CPU / Steuerungskonfiguration ausführlich beschrieben.

Die Counter_AC500_V11.lib wird nicht automatisch in ein Projekt eingebunden.

Bestandteile der Counter-Bibliothek

Folgende Funktionsbausteine sind in der Counter-Bibliothek enthalten:

Gruppe:

CNT_DC551 Schneller Zähler des DC551-CS31

CNT_IO Schneller Zähler der digitalen S500-E/A-Geräte

Bausteinübersicht, geordnet nach Aufrufnamen

Zeichenerklärung:

FBmV … Funktionsblock mit Vergangenheitswerten

FBoV … Funktionsblock ohne Vergangenheitswerte

F … Funktion

VE-Name Typ Funktion

CNT_DC551 FBmV Schneller Zähler des DC551-CS31

CNT_IO FBmV Schneller Zähler der digitalen S500-E/A-Geräte

Die integrierte Visualisierung der Bausteine der Counter-Bibliothek

Folgende Bausteine der Bibliothek Counter_AC500_V11.LIB verfügen über eine integrierte Visualisierung:

Baustein Name der Visualisierung

CNT_DC551 visuCNT_DC551

CNT_IO visuCNT_IO

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 3 Counter AC500 / Stand: 03.2007

Mittels der Visualisierung können die Ausgänge der Bausteine angezeigt werden. Ist der Eingang der Bausteine EN_VISU = TRUE, können auch die Eingänge bedient werden. Damit die Eingänge der Bausteine sowohl aus dem Programm als auch aus der Visualisierung bedient werden können, sind diese Eingänge als VAR_IN_OUT deklariert und müssen dementsprechend mit Variablen belegt werden. Diese Eingänge dürfen nicht mit direkten Konstanten belegt werden.

Um die Visualisierung in ein Projekt einzubinden, geht man wie folgt vor:

• Erzeugen einer neuen Visualisierung mit Visualisierungen / Objekt einfügen (z. B. visuTestCntIO)

• Einfügen einer Visualisierung mit

• Im sich öffnenden Fenster ist die entsprechende Visualisierung für den Baustein auszuwählen:

• Danach ist die eingebundene Visualisierung zu konfigurieren. Durch Einfachklick mit der linken Maustaste wird die Visualisierung markiert. Nach Rechte-Maus-Klick ist im Kontextmenü die Funktion "Konfigurieren.." zu wählen.

• Im sich öffnenden Dialog wird die Visualisierung konfiguriert. Es wird empfohlen, den Rahmen auf "Fest" einzustellen. Dann bleiben die Seitenverhältnisse und die Schrift in Originalgröße erhalten.

• Jetzt muss die Visualisierung noch mit der Instanz des Bausteines verknüpft werden. Das geschieht im Dialog des Schalters "Platzhalter".

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 4 Counter AC500 / Stand: 03.2007

• Unter "Ersetzung" wird hier die Instanz des Bausteines direkt eingetragen oder mit der Eingabehilfe <F2> ausgewählt.

• Mit <OK> werden die Dialoge beendet. Danach wird die eingefügte Visualisierung noch an die richtige Größe angepasst.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 5 Counter AC500 / Stand: 03.2007

CNT_DC551 Schneller Zähler des DC551-CS31

Der Baustein CNT_DC551 dient zur Steuerung des Schnellen Zählers des DC551.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0.2 Anmerkung:

Verfügbar ab Firmware des DC551: V1.3

Enthalten in Bibliothek: Counter_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CNT_DC551 Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

MODULE_ADR Eingang BYTE Adresse des DC551 (70...99)

COM Eingang BYTE COMx der AC500

EN_VISU Eingang BOOL Freigabe der Eingaben in der integrierten Visualisierung des Bausteins visuCNT_DC551

EN1 Eingang BOOL Freigabe Zähler 1

UD1 Eingang BOOL vorwärts = FALSE, rückwärts = TRUE, Zähler 1

EN_OUT1 Eingang BOOL Freigabe Ausgang für Ansteuerung aus SPS-Programm (nur im Mode 1 und Mode 2)

SET1 Eingang BOOL Setzeingang Zähler 1

START1 Eingang DWORD Startwert Zähler 1

END1 Eingang DWORD Endwert Zähler 1

EN2 Eingang BOOL Freigabe Zähler 2 (bei Modi mit 2 Zählern)

UD2 Eingang BOOL vorwärts = FALSE, rückwärts = TRUE, Zähler 2

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 6 Counter AC500 / Stand: 03.2007

EN_OUT2 Eingang BOOL reserviert (für Freigabe Ausgang Zähler 2)

SET2 Eingang BOOL Setzeingang Zähler 2

START2 Eingang DWORD Startwert Zähler 2

END2 Eingang DWORD Endwert Zähler 2

DONE Ausgang BOOL Baustein abgearbeitet

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

STATE Ausgang WORD Statusanzeige des Bausteines

CF1 Ausgang BOOL Überlauf Zähler 1

ACT1 Ausgang DWORD Aktueller Zählerstand Zähler 1

CF2 Ausgang BOOL Überlauf Zähler 2

ACT2 Ausgang DWORD Aktueller Zählerstand Zähler 2

Beschreibung

Der Baustein CNT_DC551 dient zur Bedienung des Schnellen Zählers des DC551.

Die Betriebsarten des Schnellen Zählers sind im Kapitel "Schneller Zähler" der S500-E/A-Module ausführlich beschrieben.

Um den Schnellen Zähler im DC551 zu aktivieren, muss am Adressschalter des DC551 eine Adresse im Bereich von 70 bis 99 eingestellt werden. Die eigentliche Moduladresse ist dann die eingestellte Adresse 70, d. h. sie liegt im Bereich von 0 bis 29.

Der Datenaustausch zwischen CPU und Schnellem Zähler erfolgt über Ein-/Ausgangsdaten. Für den Zähler werden benötigt:

- 2 Byte binäre Eingänge für Statusbyte 0 und 1 - 4 Worte analoge Eingänge für 2 Doppelworte Istwert Zähler 1 und 2 - 2 Byte binäre Ausgänge für Steuerbyte Zähler 1 und 2 - 8 Worte analoge Ausgänge für 4 Doppelworte Anfangswert/Endwert Zähler 1 und 2

Somit belegt ein DC551 (ohne S500-Erweiterungsmodule) mit aktiviertem Schnellen Zähler 2 CS31-Softwaremodule:

Modul 1: Binärmodul mit binären Eingängen (3 Byte) und binären Ausgängen (4 Byte)

Modul 2: Analogmodul mit analogen Eingängen (8 Worte) und analöogen Ausgängen (4 Worte)

Die Adresse beider Module ist gleich der am DC551 eingestellten Adresse − 70.

Achtung: Die Schnellen Zähler der S500-Erweiterungsmodule sind am DC551 nicht verfügbar. Sie stehen ausschließlich bei Anschluss der Module an den I/O-Bus der AC500 CPUs zur Verfügung.

Der Baustein CNT_DC551 verfügt über eine integrierte Visualisierung visuCNT_DC551, über die alle Funktionen des Bausteines parallel zum Anwenderprogramm gesteuert werden können, wenn der Eingang EN_VISU = TRUE ist. Die Einbindung und Funktion der Visualisierung sind am Ende der Bausteinbeschreibung ausführlich beschrieben.

EN BOOL (enable)

Der Eingang EN ist konstant mit TRUE zu belegen, solange die Impulse am Eingang CH gezählt werden sollen. Ist der Eingang EN = FALSE, wird der Baustein nicht bearbeitet.

Beim ersten Aufruf werden die Eingänge auf Gültigkeit und Plausibilität geprüft. Ist das nicht der Fall, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 7 Counter AC500 / Stand: 03.2007

MODULE_ADR BYTE (module address)

Am Eingang MODULE_ADR wird die am DC551 eingestellte Adresse eingetragen.

Gültige Werte sind:

70...99 (entspricht den CS31-Moduladressen 0...29)

COM BYTE (COM)

Am Eingang COM wird die Nummer der seriellen Schnittstelle, an der das DC551 angeschlossen ist, angegeben.

Gültige Werte sind 0 und 1 für COM1 der AC500.

EN_VISU BOOL (enable visu)

Wenn der Eingang EN_VISU = TRUE ist, können Eingänge des Bausteines (außer SLOT, CH und EN_VISU) auch über die integrierte Visualisierung des Bausteines bedient werden. Ist der Eingang EN_VISU = FALSE, ist die Eingabe über die Visualisierung abgeschaltet und die Beschriftung der entsprechenden Bedienelemente ausgegraut. Die Anzeige der aktuellen Werte erfolgt immer. Die Einbindung und Funktion der Visualisierung sind am Ende der Bausteinbeschreibung ausführlich beschrieben.

EN1 BOOL (enable counter 1)

Mit dem Eingang EN1 = TRUE erfolgt die Freigabe des Zählens der Impulse für den Zähler 1. Ist der Eingang EN1 = FALSE so werden keine Impulse gezählt und gehen verloren.

Der Eingang EN1 entspricht Bit 1 im Steuerbyte 0 (control byte 0).

UD1 BOOL (up/down counter 1)

Am Eingang UD1 wird die Zählrichtung in den Betriebsarten mit Vor-/Rückwärtszähler (Mode 3 .. 6) eingestellt.

Es gilt:

UD1 = FALSE → Zähler 1 zählt vorwärts UD1 = TRUE → Zähler 1 zählt rückwärts

Ist der Eingang SET1 = TRUE, wird dieser Wert in den Zähler übernommen.

Der Eingang UD1 entspricht Bit 0 im Steuerbyte 0 (control byte 0).

EN_OUT1 BOOL (enable output counter 1)

Über den Eingang EN_OUT1 kann die Ansteuerung des Ausganges in den Betriebsarten mit direkter Ansteuerung des Ausganges (Mode 1...2) gewählt werden.

EN_OUT1 = FALSE:

Bei EN1 = TRUE werden die Impulse gezählt. In den entsprechenden Betriebsarten mit Anschaltung des Ausganges wird dieser angesteuert.

Bei EN = FALSE wird nicht gezählt und der Ausgang wird entsprechend der Betriebsart angesteuert.

EN_OUT1 = TRUE:

Bei EN = TRUE werden die Impulse gezählt. In den entsprechenden Betriebsarten mit Anschaltung des Ausganges wird dieser aber NICHT gesetzt/rückgesetzt, d. h. es erfolgt keine Ausgabe auf den Ausgang.

Bei EN = FALSE wird nicht gezählt und der Ausgang wird ebenfalls NICHT angesteuert.

Ist EN_OUT1 = TRUE, kann der Ausgang direkt vom SPS-Programm aus angesteuert werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 8 Counter AC500 / Stand: 03.2007

Der Eingang EN_OUT1 entspricht Bit 3 im Steuerbyte 0 (control byte 0).

SET1 BOOL (set counter 1)

Mit dem Setzeingang SET1 = TRUE werden die Werte der Eingänge UD1, START1 und END1 in den Zähler 1 übernommen.

Solange der Eingang SET1 = TRUE ist, werden keine Impulse gezählt, da der Zähler immer wieder mit dem Startwert START1 überschrieben wird.

Der Eingang SET1 entspricht Bit 2 im Steuerbyte 0 (control byte 0).

START1 DWORD (start value 1)

Am Eingang START1 wird der Anfangswert des Zählers 1 eingetragen.

Ist der Eingang SET1 = TRUE wird dieser Wert in den Zähler 1 übernommen.

Der Eingang START1 entspricht den analogen Ausgängen 0 (Bit 16..31) und 1 (Bit 0..15) des DC551.

END1 DWORD (end value 1)

Am Eingang END1 wird der Endwert des Zählers 1 eingetragen.

Ist der Eingang SET1 = TRUE wird dieser Wert in den Zähler 1 übernommen.

Der Eingang END1 entspricht den analogen Ausgängen 2 (Bit 16..31) und 3 (Bit 0..15) des DC551.

UD2 BOOL (up/down counter 2)

Am Eingang UD2 wird die Zählrichtung in den Betriebsarten mit Vor-/Rückwärtszähler (Mode 3 .. 6) eingestellt.

Es gilt:

UD2 = FALSE → Zähler 2 zählt vorwärts UD2 = TRUE → Zähler 2 zählt rückwärts

Ist der Eingang SET2 = TRUE, wird dieser Wert in den Zähler übernommen.

Der Eingang UD2 entspricht Bit 0 im Steuerbyte 1 (control byte 1).

EN_OUT2 BOOL (enable output counter 2)

Der Eingang EN_OUT2 ist reserviert und ist mit einer Variablen=FALSE zu belegen.

Der Eingang EN_OUT2 entspricht Bit 3 im Steuerbyte 1 (control byte 1).

SET2 BOOL (set counter 2)

Mit dem Setzeingang SET2 = TRUE werden die Werte der Eingänge UD2, START2 und END2 in den Zähler 2 übernommen.

Solange der Eingang SET2 = TRUE ist, werden keine Impulse gezählt, da der Zähler immer wieder mit dem Startwert START2 überschrieben wird.

Der Eingang SET2 entspricht Bit 2 im Steuerbyte 1 (control byte 1).

START2 DWORD (start value 2)

Am Eingang START2 wird der Anfangswert des Zählers 2 eingetragen.

Ist der Eingang SET2 = TRUE wird dieser Wert in den Zähler 2 übernommen.

Der Eingang START2 entspricht den analogen Ausgängen 4 (Bit 16..31) und 5 (Bit 0..15) des DC551.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 9 Counter AC500 / Stand: 03.2007

END2 DWORD (end value 2)

Am Eingang END2 wird der Endwert des Zählers 2 eingetragen.

Ist der Eingang SET2 = TRUE wird dieser Wert in den Zähler 2 übernommen.

Der Eingang END2 entspricht den analogen Ausgängen 6 (Bit 16..31) und 7 (Bit 0..15) des DC551.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteines angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteines ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist.

Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

CF1 BOOL (carry flag 1)

Erreicht der Zähler 1 den programmierten Endwert (Eingang END1), dann wird der Ausgang Endwert erreicht CF1 = TRUE speichernd gesetzt. Beim Setzen des Zählers (Eingang SET1) wird CF1 = FALSE gesetzt.

Der Ausgang CF1 entspricht Bit 0 im Statusbyte 0 (state byte 0).

ACT1 DWORD (actual value 1)

Am Ausgang ACT1 wird der Istwert = Zählerstand des Zählers 1 als Doppelwort ausgegeben.

Der Ausgang ACT1 entspricht den analogen Eingängen 0 (Bit 16..31) und 1 (Bit 0..15).

CF2 BOOL (carry flag 2)

Erreicht der Zähler 2 den programmierten Endwert (Eingang END2), dann wird der Ausgang Endwert erreicht CF2 = TRUE speichernd gesetzt. Beim Setzen des Zählers (Eingang SET2) wird CF2 = FALSE gesetzt.

Der Ausgang CF2 entspricht Bit 0 im Statusbyte 1 (state byte 1).

ACT2 DWORD (actual value 2)

Am Ausgang ACT2 wird der Istwert = Zählerstand des Zählers 2 als Doppelwort ausgegeben.

Der Ausgang ACT2 entspricht den analogen Eingängen 2 (Bit 16..31) und 3 (Bit 0..15).

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 10 Counter AC500 / Stand: 03.2007

Funktionsaufruf in AWL

CAL CntDC551( EN := CntDC551_EN, MODULE_ADR := CntDC551_MODULE_ADR, COM := CntDC551_COM, EN_VISU := CntDC551_EN_VISU, EN1 := CntDC551_EN1, UD1 := CntDC551_UD1, EN_OUT1 := CntDC551_EN_OUT1, SET1 := CntDC551_SET1, START1 := CntDC551_START1, END1 := CntDC551_END1, EN2 := CntDC551_EN2, UD2 := CntDC551_UD2, EN_OUT2 := CntDC551_EN_OUT2, SET2 := CntDC551_SET2, START2 := CntDC551_START2, END2 := CntDC551_END2)

LD CntDC551.DONE ST CntDC551_DONE LD CntDC551.ERR ST CntDC551_ERR LD CntDC551.ERNO ST CntDC551_ERNO LD CntDC551.CF1 ST CntDC551_CF1 LD CntDC551.ACT1 ST CntDC551_ACT1 LD CntDC551.CF2 ST CntDC551_CF2 LD CntDC551.ACT2 ST CntDC551_ACT2

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

CntDC551 (EN := CntDC551_EN MODULE_ADR := CntDC551_MODULE_ADR, COM := CntDC551_COM, EN_VISU := CntDC551_EN_VISU, EN1 := CntDC551_EN1, UD1 := CntDC551_UD1, EN_OUT1 := CntDC551_EN_OUT1, SET1 := CntDC551_SET1, START1 := CntDC551_START1, END1 := CntDC551_END1, EN2 := CntDC551_EN2, UD2 := CntDC551_UD2, EN_OUT2 := CntDC551_EN_OUT2, SET2 := CntDC551_SET2, START2 := CntDC551_START2, END2 := CntDC551_END2);

CntDC551_DONE := CntDC551.DONE; CntDC551_ERR := CntDC551.ERR; CntDC551_ERNO := CntDC551.ERNO; CntDC551_CF1 := CntDC551.CF1; CntDC551_ACT1 := CntDC551.ACT1; CntDC551_CF2 := CntDC551.CF2; CntDC551_Act2 := CntDC551.ACT2;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 11 Counter AC500 / Stand: 03.2007

Die integrierte Visualisierung des Bausteines CNT_DC551

Der Baustein CNT_DC551 verfügt über eine integrierte Visualisierung visuCNT_DC551, die in andere Visualisierungen eingebunden und instanziert werden kann. Im Offline mode des Control Builders sieht die Visualisierung wie folgt aus:

Wie eine Visualisierung in ein Projekt eingefügt und konfiguriert wird, ist am Anfang der Beschreibung der Bausteinbibliothek detailliert beschrieben (siehe Integrierte Visualisierung).

Im Online mode des Control Builders sieht die Visualisierung dann z. B. für Betriebsart 1 wie folgt aus:

Ist während der Bearbeitung des Bausteines ein Fehler aufgetreten, so wird die Fehlernummer rechts oben solange angezeigt, bis EN = FALSE wird.

Ist der Eingang EN_VISU = FALSE, können die Eingänge über die Visualisierung nicht geändert werden. Die entsprechenden Bedienelemente sind ausgegraut:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 12 Counter AC500 / Stand: 03.2007

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 13 Counter AC500 / Stand: 03.2007

CNT_IO Schneller Zähler der digitalen S500-E/A-Geräte

Der Baustein CNT_IO dient zur Steuerung des Schnellen Zählers der digitalen S500-E/A-Geräte.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0.2 Anmerkung:

Verfügbar ab Firmware der S500-E/A-Geräte:

V1.3

Enthalten in Bibliothek: Counter_AC500_V11.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CNT_IO Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

MODULE Eingang BYTE Modulnummer (Extension) am I/O-Bus 1...7

EN_VISU Eingang BOOL Freigabe der Eingaben in der integrierten Visualisierung des Bausteins visuCNT_IO

EN1 Eingang BOOL Freigabe Zähler 1

UD1 Eingang BOOL vorwärts = FALSE, rückwärts = TRUE, Zähler 1

EN_OUT1 Eingang BOOL Freigabe Ausgang für Ansteuerung aus SPS-Programm (nur im Mode 1 und Mode 2)

SET1 Eingang BOOL Setzeingang Zähler 1

START1 Eingang DWORD Startwert Zähler 1

END1 Eingang DWORD Endwert Zähler 1

EN2 Eingang BOOL Freigabe Zähler 2 (bei Modi mit 2 Zählern)

UD2 Eingang BOOL vorwärts = FALSE, rückwärts = TRUE, Zähler 2

EN_OUT2 Eingang BOOL reserviert (für Freigabe Ausgang Zähler 2)

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 14 Counter AC500 / Stand: 03.2007

SET2 Eingang BOOL Setzeingang Zähler 2

START2 Eingang DWORD Startwert Zähler 2

END2 Eingang DWORD Endwert Zähler 2

DONE Ausgang BOOL Baustein abgearbeitet

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

STATE Ausgang WORD Statusanzeige des Bausteines

CF1 Ausgang BOOL Überlauf Zähler 1

ACT1 Ausgang DWORD Aktueller Zählerstand Zähler 1

CF2 Ausgang BOOL Überlauf Zähler 2

ACT2 Ausgang DWORD Aktueller Zählerstand Zähler 2

Beschreibung

Der Baustein CNT_IO dient zur Bedienung des Schnellen Zählers der digitalen S500-E/A-Module.

Die Betriebsarten des Schnellen Zählers sind im Kapitel "Schneller Zähler" der S500-E/A-Module ausführlich beschrieben.

Um den Schnellen Zähler eines digitalen S500-E/A-Gerätes zu aktivieren, muss in der Steuerungskonfiguration des jeweiligen E/A-Gerätes der Parameter "Fast counter" auf den gewünschten Zählermode eingestellt werden

Der Datenaustausch zwischen CPU und Schnellem Zähler erfolgt über Ein-/Ausgangsdaten. Für den Zähler werden benötigt:

- 2 Byte binäre Eingänge für Statusbyte 0 und 1 - 4 Worte analoge Eingänge für 2 Doppelworte Istwert Zähler 1 und 2 - 2 Byte binäre Ausgänge für Steuerbyte Zähler 1 und 2 - 8 Worte analoge Ausgänge für 4 Doppelworte Anfangswert/Endwert Zähler 1 und 2

Achtung: Die Schnellen Zähler der digitalen S500-E/-Geräte stehen ausschließlich beim Anschluss an den I/O-Bus der AC500-CPUs zur Verfügung. Beim Anschluss an den CS31-Bus (mit DC551) oder einen anderen Feldbus (mit DC505) stehen keine Schnellen Zähler zur Verfügung.

Der Baustein CNT_IO verfügt über eine integrierte Visualisierung visuCNT_IO, über die alle Funktionen des Bausteines parallel zum Anwenderprogramm gesteuert werden können, wenn der Eingang EN_VISU = TRUE ist. Die Einbindung und Funktion der Visualisierung sind am Ende der Bausteinbeschreibung ausführlich beschrieben.

EN BOOL (enable)

Der Eingang EN ist konstant mit TRUE zu belegen, solange die Impulse am Eingang CH gezählt werden sollen. Ist der Eingang EN = FALSE, wird der Baustein nicht bearbeitet.

Beim ersten Aufruf werden die Eingänge auf Gültigkeit und Plausibilität geprüft. Ist das nicht der Fall, wird die Bearbeitung abgebrochen und ein entsprechender Fehler am Ausgang ERR/ERNO ausgegeben.

MODULE BYTE (module)

Am Eingang MODULE wird die Modulnummer des digitalen S500-E/A-Gerätes am I/O-Bus der AC500-CPU eingetragen. Das erste Modul mit der Nummer 1 ist das Modul rechts unmittelbar neben der CPU.

Gültige Werte sind: 1 .. 7

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 15 Counter AC500 / Stand: 03.2007

EN_VISU BOOL (enable visu)

Wenn der Eingang EN_VISU = TRUE ist, können Eingänge des Bausteines (außer SLOT, CH und EN_VISU) auch über die integrierte Visualisierung des Bausteines bedient werden. Ist der Eingang EN_VISU = FALSE, ist die Eingabe über die Visualisierung abgeschaltet und die Beschriftung der entsprechenden Bedienelemente ausgegraut. Die Anzeige der aktuellen Werte erfolgt immer. Die Einbindung und Funktion der Visualisierung sind am Ende der Bausteinbeschreibung ausführlich beschrieben.

EN1 BOOL (enable counter 1)

Mit dem Eingang EN1 = TRUE erfolgt die Freigabe des Zählens der Impulse für den Zähler 1. Ist der Eingang EN1 = FALSE so werden keine Impulse gezählt und gehen verloren.

Der Eingang EN1 entspricht Bit 1 im Steuerbyte 0 (control byte 0).

UD1 BOOL (up/down counter 1)

Am Eingang UD1 wird die Zählrichtung in den Betriebsarten mit Vor-/Rückwärtszähler (Mode 3 .. 6) eingestellt.

Es gilt:

UD1 = FALSE → Zähler 1 zählt vorwärts UD1 = TRUE → Zähler 1 zählt rückwärts

Ist der Eingang SET1 = TRUE, wird dieser Wert in den Zähler übernommen.

Der Eingang UD1 entspricht Bit 0 im Steuerbyte 0 (control byte 0).

EN_OUT1 BOOL (enable output counter 1)

Über den Eingang EN_OUT1 kann die Ansteuerung des Ausganges in den Betriebsarten mit direkter Ansteuerung des Ausganges (Mode 1...2) gewählt werden.

EN_OUT1 = FALSE:

Bei EN1 = TRUE werden die Impulse gezählt. In den entsprechenden Betriebsarten mit Anschaltung des Ausganges wird dieser angesteuert.

Bei EN = FALSE wird nicht gezählt und der Ausgang wird entsprechend der Betriebsart angesteuert.

EN_OUT1 = TRUE:

Bei EN = TRUE werden die Impulse gezählt. In den entsprechenden Betriebsarten mit Anschaltung des Ausganges wird dieser aber NICHT gesetzt/rückgesetzt, d. h. es erfolgt keine Ausgabe auf den Ausgang.

Bei EN = FALSE wird nicht gezählt und der Ausgang wird ebenfalls NICHT angesteuert.

Ist EN_OUT1 = TRUE, kann der Ausgang direkt vom SPS-Programm aus angesteuert werden.

Der Eingang EN_OUT1 entspricht Bit 3 im Steuerbyte 0 (control byte 0).

SET1 BOOL (set counter 1)

Mit dem Setzeingang SET1 = TRUE werden die Werte der Eingänge UD1, START1 und END1 in den Zähler 1 übernommen.

Solange der Eingang SET1 = TRUE ist, werden keine Impulse gezählt, da der Zähler immer wieder mit dem Startwert START1 überschrieben wird.

Der Eingang SET1 entspricht Bit 2 im Steuerbyte 0 (control byte 0).

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 16 Counter AC500 / Stand: 03.2007

START1 DWORD (start value 1)

Am Eingang START1 wird der Anfangswert des Zählers 1 eingetragen.

Ist der Eingang SET1 = TRUE wird dieser Wert in den Zähler 1 übernommen.

Der Eingang START1 entspricht den analogen Ausgängen 0 (Bit 16..31) und 1 (Bit 0..15) des DC551.

END1 DWORD (end value 1)

Am Eingang END1 wird der Endwert des Zählers 1 eingetragen.

Ist der Eingang SET1 = TRUE wird dieser Wert in den Zähler 1 übernommen.

Der Eingang END1 entspricht den analogen Ausgängen 2 (Bit 16..31) und 3 (Bit 0..15) des DC551.

UD2 BOOL (up/down counter 2)

Am Eingang UD2 wird die Zählrichtung in den Betriebsarten mit Vor-/Rückwärtszähler (Mode 3 .. 6) eingestellt.

Es gilt:

UD2 = FALSE → Zähler 2 zählt vorwärts UD2 = TRUE → Zähler 2 zählt rückwärts

Ist der Eingang SET2 = TRUE, wird dieser Wert in den Zähler übernommen.

Der Eingang UD2 entspricht Bit 0 im Steuerbyte 1 (control byte 1).

EN_OUT2 BOOL (enable output counter 2)

Der Eingang EN_OUT2 ist reserviert und ist mit einer FALSE zu belegen.

Der Eingang EN_OUT2 entspricht Bit 3 im Steuerbyte 1 (control byte 1).

SET2 BOOL (set counter 2)

Mit dem Setzeingang SET2 = TRUE werden die Werte der Eingänge UD2, START2 und END2 in den Zähler 2 übernommen.

Solange der Eingang SET2 = TRUE ist, werden keine Impulse gezählt, da der Zähler immer wieder mit dem Startwert START2 überschrieben wird.

Der Eingang SET2 entspricht Bit 2 im Steuerbyte 1 (control byte 1).

START2 DWORD (start value 2)

Am Eingang START2 wird der Anfangswert des Zählers 2 eingetragen.

Ist der Eingang SET2 = TRUE wird dieser Wert in den Zähler 2 übernommen.

Der Eingang START2 entspricht den analogen Ausgängen 4 (Bit 16..31) und 5 (Bit 0..15) des DC551.

END2 DWORD (end value 2)

Am Eingang END2 wird der Endwert des Zählers 2 eingetragen.

Ist der Eingang SET2 = TRUE wird dieser Wert in den Zähler 2 übernommen.

Der Eingang END2 entspricht den analogen Ausgängen 6 (Bit 16..31) und 7 (Bit 0..15) des DC551.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 17 Counter AC500 / Stand: 03.2007

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteines angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteines ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist.

Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

CF1 BOOL (carry flag 1)

Erreicht der Zähler 1 den programmierten Endwert (Eingang END1), dann wird der Ausgang Endwert erreicht CF1 = TRUE speichernd gesetzt. Beim Setzen des Zählers (Eingang SET1) wird CF1 = FALSE gesetzt.

Der Ausgang CF1 entspricht Bit 0 im Statusbyte 0 (state byte 0).

ACT1 DWORD (actual value 1)

Am Ausgang ACT1 wird der Istwert = Zählerstand des Zählers 1 als Doppelwort ausgegeben.

Der Ausgang ACT1 entspricht den analogen Eingängen 0 (Bit 16..31) und 1 (Bit 0..15).

CF2 BOOL (carry flag 2)

Erreicht der Zähler 2 den programmierten Endwert (Eingang END2), dann wird der Ausgang Endwert erreicht CF2 = TRUE speichernd gesetzt. Beim Setzen des Zählers (Eingang SET2) wird CF2 = FALSE gesetzt.

Der Ausgang CF2 entspricht Bit 0 im Statusbyte 1 (state byte 1).

ACT2 DWORD (actual value 2)

Am Ausgang ACT2 wird der Istwert = Zählerstand des Zählers 2 als Doppelwort ausgegeben.

Der Ausgang ACT2 entspricht den analogen Eingängen 2 (Bit 16..31) und 3 (Bit 0..15).

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 18 Counter AC500 / Stand: 03.2007

Funktionsaufruf in AWL

CAL CntDC551( EN := CntIO_EN, MODULE := CntIO_MODULE, EN_VISU := CntIO_EN_VISU, EN1 := CntIO_EN1, UD1 := CntIO_UD1, EN_OUT1 := CntIO_EN_OUT1, SET1 := CntIO_SET1, START1 := CntIO_START1, END1 := CntIO_END1, EN2 := CntIO_EN2, UD2 := CntIO_UD2, EN_OUT2 := CntIO_EN_OUT2, SET2 := CntIO_SET2, START2 := CntIO_START2, END2 := CntIO_END2)

LD CntIO.DONE ST CntIO_DONE LD CntIO.ERR ST CntIO_ERR LD CntIO.ERNO ST CntIO_ERNO LD CntIO.CF1 ST CntIO_CF1 LD CntIO.ACT1 ST CntIO_ACT1 LD CntIO.CF2 ST CntIO_CF2 LD CntIO.ACT2 ST CntIO_ACT2

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

CntIO (EN := CntIO_EN MODULE := CntIO_MODULE, EN_VISU := CntIO_EN_VISU, EN1 := CntIO_EN1, UD1 := CntIO_UD1, EN_OUT1 := CntIO_EN_OUT1, SET1 := CntIO_SET1, START1 := CntIO_START1, END1 := CntIO_END1, EN2 := CntIO_EN2, UD2 := CntIO_UD2, EN_OUT2 := CntIO_EN_OUT2, SET2 := CntIO_SET2, START2 := CntIO_START2, END2 := CntIO_END2);

CntIO_DONE := CntIO.DONE; CntIO_ERR := CntIO.ERR; CntIO_ERNO := CntIO.ERNO; CntIO_CF1 := CntIO.CF1; CntIO_ACT1 := CntIO.ACT1; CntIO_CF2 := CntIO.CF2; CntIO_Act2 := CntIO.ACT2;

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 19 Counter AC500 / Stand: 03.2007

Die integrierte Visualisierung des Bausteines CNT_IO

Der Baustein CNT_IO verfügt über eine integrierte Visualisierung visuCNT_IO, die in andere Visualisierungen eingebunden und instanziert werden kann. Im Offline mode des Control Builders sieht die Visualisierung wie folgt aus:

Wie eine Visualisierung in ein Projekt eingefügt und konfiguriert wird, ist am Anfang der Beschreibung der Bausteinbibliothek detailliert beschrieben (siehe Integrierte Visualisierung).

Im Online mode des Control Builders sieht die Visualisierung dann z. B. für Betriebsart 1 wie folgt aus:

Ist während der Bearbeitung des Bausteines ein Fehler aufgetreten, so wird die Fehlernummer rechts oben solange angezeigt, bis EN = FALSE wird.

Ist der Eingang EN_VISU = FALSE, können die Eingänge über die Visualisierung nicht geändert werden. Die entsprechenden Bedienelemente sind ausgegraut:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 20 Counter AC500 / Stand: 03.2007

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 21 Counter AC500 / Stand: 03.2007

Glossar

BOOL

Variablen vom Typ BOOL können die Wahrheitswerte TRUE und FALSE annehmen. Es werden 8 Bit Speicherplatz reserviert.

DINT

DINT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DINT Untergrenze -2147483648 Obergrenze 2147483647 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

DWORD

DWORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DWORD Untergrenze 0 Obergrenze 4294967295 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

INT

INT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ INT Untergrenze -32768 Obergrenze 32767 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

WORD

WORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ WORD Untergrenze 0 Obergrenze 65535 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 22 Counter AC500 / Stand: 03.2007

BYTE

BYTE gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ BYTE Untergrenze 0 Obergrenze 255 Speicherplatz 8 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

Funktionen

Funktionen sind Unterprogramme, die beliebig viele Eingangsparameter haben und genau ein Ergebnis-Element zurückliefern. Das zurückgelieferte Ergebnis kann von elementarem, aber auch von zusammengesetztem Datentyp sein. Eine Funktion darf also auch ein Feld, eine Struktur, ein Feld von Strukturen etc. zurückgeben.

Funktionen liefern bei gleicher Eingangsbeschaltung stets das gleiche Ergebnis (sie besitzen kein Gedächtnis.

Daraus abzuleiten sind folgende Regeln:

• Innerhalb von Funktionen dürfen globale Variablen weder gelesen noch geschrieben werden. • Innerhalb von Funktionen dürfen Absolutoperanden weder gelesen noch geschrieben werden • Innerhalb von Funktionen dürfen Funktionsblöcke nicht aufgerufen werden.

Funktionsblöcke

Funktionsblöcke sind Unterprogramme, die jeweils beliebig viele Eingangs-, Ausgangs- und interne Variablen haben. Sie werden von einem Programm aufgerufen oder von einem anderen Funktionsblock.

Da sie auch mehrfach genutzt werden können (mit jeweils anderen Datensätzen), können Funktionsblöcke (ihr Code und die Schnittstelle) als Typ betrachtet werden. Über die Zuordnung eines individuellen Datensatzes (Deklaration) wird eine Instanz des Funktionsblockes angelegt.

Anders als Funktionen können Funktionsblöcke statisch lokale Daten haben, die von einem Aufruf zum nächsten gerettet werden. Damit können z. B. Zähler realisiert werden, die ihren Zählerstand nicht vergessen dürfen. D. h. Funktionsblöcke können ein Gedächtnis haben.

Funktionen und Funktionsblöcke unterscheiden sich in zwei wesentlichen Punkten:

• Ein Funktionsblock hat beliebig viele Ausgangsparameter, die Funktion maximal einen, wobei sich die Ausgangsparameter von Funktionen und Funktionsblöcken syntaktisch unterscheiden.

• Ein Funktionsblock kann ein Gedächtnis haben, eine Funktion nicht.

Funktionsblöcke mit Vergangenheitswerten (Gedächtnis):

Bei Funktionsblöcken mit Vergangenheitswerten ist zu beachten, dass Instanznamen nicht mehrfach vergeben werden dürfen, wenn unterschiedliche Datensätze aufgerufen werden sollen.

Funktionsblöcke ohne Vergangenheitswerte (Gedächtnis):

Bei Funktionsblöcken ohne Vergangenheitswerte braucht nur eine Instanz für den FB-Typ angelegt zu werden. Diese Instanz kann für mehrere Aufrufe des FB (auch mit unterschiedlichen E/A-Werten) genutzt werden.

Der Instanzname kann beliebig definiert werden. Der Typ ist vorgegeben und ist identisch mit dem Namen des Funktionsblockes.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 23 Counter AC500 / Stand: 03.2007

Index

B

Bausteinübersicht, geordnet nach Aufrufnamen 2

Besonderheiten der Counter-Bibliothek 2

Bestandteile der Counter-Bibliothek 2

C

CNT_DC551 Schneller Zähler des DC551-CS31 5

CNT_IO Schneller Zähler der digitalen S500-E/A-Geräte 13

D

Die integrierte Visualisierung der Bausteine der Counter-Bibliothek 2

G

Glossar 21

V

Voraussetzung für die Verwendung der Bibliothek 2

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 24 Counter AC500 / Stand: 03.2007

Softwarebeschreibung AC500

Skalierbare SPS für individuelle Automatisierung Diagnose- Bausteinbibliothek

Diagnose

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 1 Diagnose AC500 / Stand: 03.2007

Inhalt

Diagnose-Bibliothek ...................................................................................................................... 2

Voraussetzung für die Verwendung der Bibliothek ......................................................................... 2

Besonderheiten der Diagnose-Bibliothek ........................................................................................... 2

Bestandteile der Diagnose-Bibliothek ................................................................................................. 2

Bausteinübersicht, geordnet nach Aufrufnamen.............................................................................. 3

Die integrierte Visualisierung der Bausteine der Diagnose-Bibliothek ...................................... 3

CPU_DIAG Auslesen des AC500-Diagnosebuffers .................................................................................... 7

CPU_LOAD Ausgabe der Auslastung der CPU ........................................................................................ 11

CS31_DIAG Diagnose des CS31-Busses................................................................................................. 15

FBP_DIAG Diagnose der FBP-Slave-Schnittstelle.................................................................................... 21

Glossar ....................................................................................................................................................... 26

Index............................................................................................................................................................ 28

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 2 Diagnose AC500 / Stand: 03.2007

Diagnose-Bibliothek

Voraussetzung für die Verwendung der Bibliothek

Hinweis:

Die Bausteine der Diagnose-Bibliothek laufen nur im RUN-Modus der SPS, nicht im Simulationsmodus. Im Simulationsmodus wird in der integrierten Visualisierung "Simulation" angezeigt.

Besonderheiten der Diagnose-Bibliothek

Die Bausteine der Diagnose-Bibliothek bieten die Möglichkeit, direkt auf Daten des AC500-Diagnosesystems zuzugreifen.

Die Bausteine sind in der Bibliothek Diag_AC500_V10.lib enthalten. Die Bibliothek wird nicht automatisch in ein AC500-Projekt geladen.

Bestandteile der Diagnose-Bibliothek

Funktionsbausteine

Folgende Funktionsbausteine sind in der Diagnose-Bibliothek enthalten:

Gruppe: CPU_Diagnosis

CPU_DIAG Auslesen des AC500-Diagnosebuffers

CPU_LOAD Ausgabe der CPU-Auslastung

Gruppe: CS31_Bus_Diagnosis

CS31_DIAG Diagnose des CS31-Busses

Gruppe: FBP_Diagnosis

FBP_DIAG Diagnose der FBP-Slave-Schnittstelle

Datentypen

In der Diag_AC500_V10.lib sind folgende Datentypen definiert:

Gruppe: Type_CPU_Diagnosis

AC500_Diag_Entry Struktur eines AC500-Diagnoseeintrages

strCPU_LOAD Struktur der CPU-Auslastung

Gruppe: Type_CS31_Diagnosis

strCS31_DiagBus Struktur zur Diagnose des CS31-Masters

strCS31_DiagModule Struktur zur Diagnose aller Module

strCS31_DiagOneModule Struktur zur Diagnose eines Slaves am CS31-Bus

Gruppe: Type_FBP_Diagnosis

strFBP_Info Struktur zur Diagnose der FBP-Slave-Schnittstelle

strFBP_ModuleInfo Struktur zur Diagnose eines Modules der FBP-Slave-Schnittstelle

strFBP_Statistics Struktur mit statistischen Werten der FBP-Slave-Schnittstelle

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 3 Diagnose AC500 / Stand: 03.2007

Visualisierungen

In der Diag_AC500_V10.lib sind folgende Visualisierungen enthalten:

Gruppe:

Visu_CPU_Diag Visualisierung der CPU-Diagnose

Visu_CPU_Load Visualisierung der CPU-Auslastung

Visu_CS31_Diag Visualisierung der CS31-Diagnose

Visu_FBP_Diag Visualisierung der FBP-Slave-Schnittstellen-Diagnose

Globale Variablenlisten

Variablenliste: GL_AC500_Diagnosis

Variable Typ Beschreibung

CPU CPU_LOAD Instanz des Bausteines CPU-Auslastung

diagCPU CPU_DIAG Instanz des Bausteines CPU-Diagnose

diagCS31 CS31_DIAG Instanz des Bausteines CS31-Diagnose

diagFBP FBP_DIAG Instanz des Bausteines FBP-Slave-Diagnose

Variablenliste: GL_Diag_Constant

Variable Typ Beschreibung

wERNO_SIMULATION_MODE WORD 16#50FF = 20735 dez, Fehlernummer für Simulations-Mode

Bausteinübersicht, geordnet nach Aufrufnamen

Zeichenerklärung:

FBmV … Funktionsblock mit Vergangenheitswerten

FBoV … Funktionsblock ohne Vergangenheitswerte

F … Funktion

VE-Name Typ Funktion

CPU_DIAG FBmV Auslesen des AC500-Diagnosebuffers

CPU_LOAD FBmV Ausgabe der CPU-Auslastung

CS31_DIAG FBmV Diagnose des CS31-Busses

FBP_DIAG FBmV Diagnose der FBP-Slave-Schnittstelle

Die integrierte Visualisierung der Bausteine der Diagnose-Bibliothek

In diesem Kapitel wird beschrieben, wie die zu den Bausteinen gehörende Visualisierung in ein AC500-Projekt eingebunden werden kann.

Um die Visualisierung in ein Projekt einzubinden, geht man wie folgt vor:

• Erzeugen einer neuen Visualisierung mit Visualisierungen / Objekt einfügen (z. B. visuCPUDiag)

• Einfügen einer Visualisierung mit

• Im sich öffnenden Fenster ist die entsprechende Visualisierung für den Baustein auszuwählen: hier z. B. Visu_CPU_Diag

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 4 Diagnose AC500 / Stand: 03.2007

• Danach ist die eingebundene Visualisierung zu konfigurieren. Durch Einfachklick mit der linken Maustaste wird die Visualisierung markiert. Nach Rechte-Maus-Klick ist im Kontextmenü die Funktion "Konfigurieren.." zu wählen.

• Im sich öffnenden Dialog wird die Visualisierung konfiguriert. Es wird empfohlen, den Rahmen auf "Fest" einzustellen. Dann bleiben die Seitenverhältnisse und die Schrift in Originalgröße erhalten.

• Mit <OK> werden die Dialoge beendet. Danach wird die eingefügte Visualisierung an die richtige Größe angepasst.

In der Visualisierung des Bausteines CPU_DIAG sollen die Diagnosemeldungen sprachabhängig als Klartext ausgegeben werden. Um die entsprechende Textdatei "Errors.xml" einzubinden, ist wie folgt vorzugehen:

• Wechsel in den Visualisierungseditor

• Anwahl des Menüpunktes "Extras"/"Einstellungen". Im sich öffnenden Dialog die Kategorie "Sprache" anwählen, "Dynamische Texte" anwählen (Häkchen) und als Dateinamen "ERRORS.XML" eintragen. Im Feld "Sprache" kann dann die gewünschte Sprache ausgewählt werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 5 Diagnose AC500 / Stand: 03.2007

• Damit die Sprachdatei "ERRORS.XML" gefunden wird, muss sie noch in die Suchpfade eingetragen werden. Unter "Projekt"/"Optionen"/"Verzeichnisse" ist unter "Allgemein"/"Visualisierungsdateien" der Pfad der CoDeSys.exe einzutragen. Bei Standardinstallation ist das: C:\Program Files\3S Software\CoDeSys V2.3 bzw. C:\Programme\3S Software\CoDeSys V2.3. ERRORS.XML wird bei der Installation des PS501 in dieses Verzeichnis kopiert.

Nachfolgend wird an einem kleinen Beispiel beschrieben, wie alle 4 Diagnosebausteine in ein Projekt eingebunden werden und über eine zentrale Visualisierung bedient werden.

Auf die selbe Art und Weise, wie für den Baustein CPU_DIAG eben beschrieben, sind die Visualisierungen für die Bausteine CPU_LOAD (visuCPULoad), CS31_DIAG (visuCS31Diag) und FBP_DIAG (visuFBPDiag) zu erstellen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 6 Diagnose AC500 / Stand: 03.2007

Mittels einer kleinen Visualisierung PLC_VISU können die einzelnen Visualisierungen aufgerufen und freigegeben bzw. gesperrt werden. Dazu wird in das AC500-Projekt das Programm "PLC_Diagnosis()" eingebunden:

Das Programm beinhaltet folgende Deklarationen und Aufrufe:

PROGRAM PLC_Diagnosis

VAR bCPUEnable : BOOL := TRUE; bCS31Enable : BOOL := FALSE; bFBPEnable : BOOL := FALSE; bCPUDiagEnable : BOOL := TRUE;

END_VAR

(* Call AC500 diagnosis *) CPU(EN := bCPUEnable); diagCPU(EN := bCPUDiagEnable); diagCS31(EN := bCS31Enable, COM := 1); diagFBP(EN := bFBPEnable);

Die dazugehörige Visualisierung PLC_VISU sieht in Offline-Mode wie folgt aus:

Bei freigegebener CPU-Diagnose und CPU-Auslastung sieht PLC_VISU im Online-Mode wie folgt aus:

Mit den Tasten auf der linken Seite wird jeweils zur entsprechenden Visualisierung gesprungen. Mit den Schaltern "Enable" wird die Abarbeitung der jeweiligen Bausteine freigegeben.

Das Programm "PLC_Diagnosis()" und die Visualisierung PLC_VISU sind im Exportfile AC500_PLC_Diagnosis.exp enthalten und kann über Projekt/Importieren in ein AC500-Projekt eingefügt werden. Das Exportfile befindet sich auf der CD PS501 unter:

..\CD_AC500\Examples\PLC_Diagnosis.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 7 Diagnose AC500 / Stand: 03.2007

CPU_DIAG Auslesen des AC500-Diagnosebuffers

Der Baustein CPU_DIAG dient zum Auslesen der Einträge des AC500-Diagnosesystem.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0.2 Anmerkung:

Enthalten in Bibliothek: Diag_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CPU_DIAG Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Mit Hilfe des Bausteins CPU_DIAG können die Einträge des AC500-Diagnosesystems ausgelesen und in der integrierten Visualisierung im Klartext angezeigt werden.

In der globalen Variablenliste GL_AC500_Diagnosis ist die Instanz diagCPU des Bausteines CPU_DIAG deklariert. Die integrierte Visualisierung des Bausteines greift auf die Variablen dieser Instanz zu.

Um den Baustein in ein AC500-Projekt einzubinden, muss nur die Instanz dieses Bausteines aufgerufen werden. In ST z. B. mit

diagCPU(EN := TRUE);

Mittels Visualisierung Visu_CPU_Diag kann im Diagnosepuffer navigiert und anstehende Diagnoseeinträge können quittiert werden.

Die Bedienung der Visualisierung ist am Ende der Bausteinbeschreibung ausführlich beschrieben.

EN BOOL (enable)

Mit EN = TRUE wird die Bearbeitung des Bausteines freigegeben. Bei der FALSE->TRUE-Flanke am Eingang EN werden die letzten fünf Einträge aus dem Diagnosepuffer der CPU ausgelesen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 8 Diagnose AC500 / Stand: 03.2007

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Auftrags angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bausteinbearbeitung ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist.

Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

Wird der Baustein im Simulations-Mode aufgerufen, so wird Fehler 16#50FF = 20735 ausgegeben.

Funktionsaufruf in AWL

Hinweis: Die Instanz diagCPU des Bausteines CPU_DIAG ist in der globalen Variablenliste GL_AC500_Diagnosis der Bibliothek Diag_AC500_V10.LIB deklariert und braucht nur aufgerufen zu werden.

CAL diagCPU(EN := diagCPU_EN)

LD diagCPU.DONE ST diagCPU_DONE LD diagCPU.ERR ST diagCPU_ERR LD diagCPU.ERNO ST diagCPU_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

diagCPU(EN := diagCPU_EN);

diagCPU_DONE := diagCPU.DONE; diagCPU_ERR := diagCPU.ERR; diagCPU_ERNO := diagCPU.ERNO;

oder:

diagCPU(EN := TRUE);

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 9 Diagnose AC500 / Stand: 03.2007

Die integrierte Visualisierung des Bausteines CPU_DIAG

Zum Baustein CPU_DIAG gehört die Visualisierung Visu_CPU_Diag:

Die Einbindung und der Aufruf der Visualisierung in ein AC500-Projekt ist am Anfang der Bibliotheksbeschreibung detailliert beschrieben.

In diesem Kapitel wird die Bedienung der Visualisierung beschrieben.

Für jeden Diagnoseeintrag werden ausgegeben:

- laufende Fehlernummer "No."

- die Zeitstempel für Fehler gekommen, gegangen und quittiert

- die Fehlernummer "Error number"

- der Kurztext und der Fehlertext aus "ERRORS.XML"

Im oberen Teil wird der letzte Diagnoseeintrag angezeigt. Dieser kann mit der Taste <Ack / Quit> quittiert werden.

Im mittleren Teil werden bei der FALSE/TRUE-Flanke die letzten 5 Diagnoseeinträge angezeigt. Mit den Tasten am linken Rand kann im Diagnosespeicher navigiert werden:

- <Ack / Quit> - Quittieren des Diagnoseeintrages neben der Taste

- Pfeil hoch - 1 Eintrag vor

- Pfeil runter - 1 Eintrag zurück

- Doppelpfeil hoch - 5 Einträge vor

- Doppelpfeil runter - 5 Einträge zurück

- Newest - 5 Einträge ab dem neuesten Eintrag

- Oldest - 5 Einträge ab dem ältesten Eintrag

Mit den Tasten unter den Diagnoseeinträgen können die Fehler quittiert werden:

- <ACK all> - Quittieren aller Fehler

- <ACK E1> - Quittieren von E1-Fehlern (fatale Fehler)

- <ACK E2> - Quittieren von E2-Fehlern (schwere Fehler)

- <ACK E3> - Quittieren von E3-Fehlern (leichte Fehler)

- <ACK E4> - Quittieren von E4-Fehlern (Warnungen)

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 10 Diagnose AC500 / Stand: 03.2007

Zum Quittieren der Fehler werden die Bausteine DIAG_ACK bzw. DIAG_ACK_ALL der Bibliothek SysInt_AC500_V10.LIB aufgerufen.

Liegen keine Diagnoseeinträge vor, so sieht die Visualisierung im Onlinebetrieb wie folgt aus:

Anmerkung: Die Echtzeituhr (RTC) der SPS ist hier nicht gestellt.

Liegen Fehler vor, so kann die Visualisierung z.B. wie folgt aussehen:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 11 Diagnose AC500 / Stand: 03.2007

CPU_LOAD Ausgabe der Auslastung der CPU

Der Baustein CPU_LOAD dient zur Ausgabe der CPU-Auslastung.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0.2 Anmerkung:

Enthalten in Bibliothek: Diag_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CPU_LOAD Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Mit dem Baustein CPU_LOAD erfolgt die Ausgabe der CPU-Auslastung in [%].

Es werden angezeigt:

die momentane Auslastung (current) die minimale Auslastung (minimum) die maximale Auslastung (maximum) die durchschnittliche Auslastung (avg = average)

In der globalen Variablenliste GL_AC500_Diagnosis ist die Instanz CPU des Bausteines CPU_LOAD deklariert. Die integrierte Visualisierung des Bausteines greift auf die Variablen dieser Instanz zu.

Um den Baustein in ein AC500-Projekt einzubinden, muss nur die Instanz dieses Bausteines aufgerufen werden. In ST z. B. mit

CPU(EN := TRUE);

Die Werte werden in die interne Struktur strVisuData vom Typ strCPU_LOAD in die Instanz CPU des Bausteines CPU_LOAD als 0,01% -Werte eingetragen. Um die Werte in [%] zu erhalten, müssen sie durch 100 geteilt werden. Die Struktur hat folgende Einträge:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 12 Diagnose AC500 / Stand: 03.2007

TYPE strCPU_LOAD :

STRUCT

Current : WORD; (* current / aktueller Wert *)

Avg : WORD; (* average / Durchschnitt *)

Minimum : WORD; (* Minimum / Minimalwert *)

Maximum : WORD; (* Maximum / Maximalwert *)

Counter : DWORD; (* Counter / Zähler pro Messung *)

Conf : WORD; (* Bit 0 = 1 (1) --> Update CPU_load *)

(* Bit 1 = 1 (2) --> Heap check *)

END_STRUCT

END_TYPE

Soll aus dem Anwenderprogramm auf die Werte zugegriffen werden, so erfolgt der Zugriff über:

CPU.strVisuData.Variable.

Im nachfolgenden Beispiel wird der Wert der aktuellen CPU-Auslastung ausgelesen und der Variablen wCurrentCPULoad zugewiesen:

Mittels Visualisierung Visu_CPU_Load werden die Werte graphisch dargestellt. Die Bedienung der Visualisierung ist am Ende der Bausteinbeschreibung ausführlich beschrieben.

Die gleichen Werte können auch mit dem PLC-Browser-Kommando "cpuload" abgerufen werden

EN BOOL (enable)

Mit EN = TRUE wird die Bearbeitung des Bausteines freigegeben und die Werte werden bei jedem Aufruf aktualisiert.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteines angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteines ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist.

Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 13 Diagnose AC500 / Stand: 03.2007

Funktionsaufruf in AWL

Hinweis: Die Instanz CPU des Bausteines CPU_LOAD ist in der globalen Variablenliste GL_AC500_Diagnosis der Bibliothek Diag_AC500_V10.LIB deklariert und braucht nur aufgerufen zu werden.

CAL CPU(EN := CPU_EN)

LD CPU.DONE ST CPU_DONE LD CPU.ERR ST CPU_ERR LD CPU.ERNO ST CPU_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

CPU(EN := CPU_EN);

CPU_DONE := CPU.DONE; CPU_ERR := CPU.ERR; CPU_ERNO := CPU.ERNO;

oder:

CPU(EN := TRUE);

Die integrierte Visualisierung des Bausteines CPU_LOAD

Zum Baustein CPU_LOAD gehört die Visualisierung Visu_CPU_Load:

Die Einbindung und der Aufruf der Visualisierung in ein AC500-Projekt ist am Anfang der Bibliotheksbeschreibung detailliert beschrieben.

Ist der Eingang EN=TRUE, so werden zyklisch die Werte für die CPU-Auslastung in [%] als Wert und graphisch als Balkenanzeige ausgegeben. Mit der Taste <Reset> können die Werte zurückgesetzt werden.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 14 Diagnose AC500 / Stand: 03.2007

Mit der Taste <HEAP check> wird der interne HEAP-Speicher der CPU überprüft. Ist der HEAP-Check aktiviert, werden keine Auslastungswerte berechnet und ausgegeben.

Im Online-Mode kann die Visualisierung z. B. wie folgt aussehen:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 15 Diagnose AC500 / Stand: 03.2007

CS31_DIAG Diagnose des CS31-Busses

Der Baustein CS31_DIAG dient zur Diagnose des CS31-Busses.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0.2 Anmerkung:

Enthalten in Bibliothek: Diag_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz CS31_DIAG Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

COM Eingang BYTE Nummer der seriellen Schnittstelle des CS31-Masters: 0 oder 1 für COM1

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Mit dem Baustein CS31_DIAG werden dem Anwender Diagnosedaten des CS31-Busses zur Verfügung gestellt.

In der globalen Variablenliste GL_AC500_Diagnosis ist die Instanz diagCS31 des Bausteines CS31_DIAG deklariert. Die integrierte Visualisierung des Bausteines greift auf die Variablen dieser Instanz zu.

Um den Baustein in ein AC500-Projekt einzubinden, muss nur die Instanz dieses Bausteines aufgerufen werden. In ST z. B. mit

CPU(EN := TRUE, COM := 1);

Die Werte werden in interne Strukturen der Instanz diagCS31 eingelesen.

Struktur TYPE Belegung

strVisuData1 strCS31_DiagBus Diagnosedaten des CS31-Masters

strVisuData strCS31_DiagModule Diagnosedaten aller 31 CS31-Software-Module ARRAY[0..31] OF strCS31_DiagOneModule

CS31Mod strCS31_DiagOneModule Diagnosedaten eines CS31-Software-Modules

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 16 Diagnose AC500 / Stand: 03.2007

Die Struktur strCS31_DiagBus hat folgende Einträge:

TYPE strCS31_DiagBus : (* STRUCT infos about CS31 bus *) STRUCT

iCS31BusState : DINT; (* Bit 0=1 Warte auf Slave Bit 1=1 Initialisierung Bit 4=1 E/A-Datenaustausch := 19 alle Module am Bus *)

iNumberModule : DINT; (* aktuelle Anzahl CS31-Software-Module am CS31-Bus*)

iMaxNumberModule :

DINT; (* max. Anzahl Module am CS31-Bus seit Spannung EIN *)

iErrorSum : DINT; (* Summenfehler-Zähler *)

ulCycleCount : DWORD; (* Zähler der CS31-Bus-Zyklen*)

byStateDiag : BYTE; (* allgemeine Bus-Diagnose: 0=ok, 1=kein Modul am Bus*)

END_STRUCT END_TYPE

Die Struktur strCS31_DiagOneModule hat folgende Einträge:

TYPE strCS31_DiagOneModule : STRUCT

dwScheduleCycle : DWORD; (* interne Zeit *)

byPhysicalAdress : BYTE; (* Moduladresse x 2 *)

byCommState : BYTE; (* Kommunikations-Status:

00 = OK Bit 0=1 (1) Modul wieder abgetrennt Bit 1=1 (2) Modul nicht am Bus Bit 2=1 (4) Nicht konfiguriertes Modul am Bus Bit 3=1 (8) Unterschied in E/A-Umfang Bit 4=1 (16) E4 – Fehlermeldung Bit 5=1 (32) Bit 6=1 (64) *)

bySlaveType : BYTE; (* Slave-Type:

00 = digitale Eingabe 01 = analoge Eingabe 02 = diagitale Ausgabe 03 = analoge Ausgabe 04 = digitale Ein-/Ausgabe 05 = analoge Ein-/Ausgabe 06 = Spezialmodul

byInputBytes : BYTE; (* Anzahl Input-Bytes gemeldet *)

byOutputBytes : BYTE; (* Anzahl Output-Bytes gemeldet *)

byInputBytesConf : BYTE; (* Anzahl Input-Bytes in Konfiguration *)

byOutputBytesConf :

BYTE; (* Anzahl Output-Bytes in Konfiguration *)

byModuleConf : BYTE; (* 1-PLC config, 3- ignore module *)

byStateDiag : BYTE; (* interner Merker *)

byd1 : BYTE; (* interner Merker *)

usErrorCounter : WORD; (* Einzelfehler-Zähler *)

byDiagErr : BYTE; (* intern Fehlernummer *)

byDiagChannnel : BYTE; (* intern Fehlerkanal *)

byd2 : BYTE; (* interner Merker *)

byd3 : BYTE; (* interner Merker *)

pConfig : DWORD; (* interner Merker *)

END_STRUCT END_TYPE

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 17 Diagnose AC500 / Stand: 03.2007

In der Struktur strCS31_DiagModule ist ein ARRAY[0..31], d. h. mit 32 Einträgen der Struktur strCS31_DiagOneModule enthalten.

Somit kann mit den Strukturen strVisuData1 und strVisuData auf alle Diagnosedaten des CS31-Busses zugegriffen werden.

Soll aus dem Anwenderprogramm auf die Werte zugegriffen werden, so erfolgt der Zugriff über:

diagCS31.strVisuData1.Variable.

Im nachfolgendem Beispiel wird die aktuelle Anzahl CS31_Module ausgelesen und der Variablen byActNumCS31Module zugewiesen:

Die wichtigsten Daten sind in die zum Baustein gehörende Visualisierung Visu_CS31_Diag aufgenommen. Die Bedienung der Visualisierung ist am Ende der Bausteinbeschreibung ausführlich beschrieben.

EN BOOL (enable)

Mit EN = TRUE wird die Bearbeitung des Bausteines freigegeben und die Werte werden bei jedem Aufruf aktualisiert

COM BYTE (com)

Am Eingang COM wird die Nummer der seriellen Schnittstelle für den CS31-Master angegeben.

Gültige Werte sind: 0 und 1 für COM1

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteines angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteines ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist.

Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 18 Diagnose AC500 / Stand: 03.2007

Funktionsaufruf in AWL

Hinweis: Die Instanz diagCS31 des Bausteines CS31_DIAG ist in der globalen Variablenliste GL_AC500_Diagnosis der Bibliothek Diag_AC500_V10.LIB deklariert und braucht nur aufgerufen werden.

CAL diagCS31(EN := diagCS31_EN, COM := diagCS31_COM)

LD diagCS31.DONE ST diagCS31_DONE LD diagCS31.ERR ST diagCS31_ERR LD diagCS31.ERNO ST diagCS31_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

diagCS31(EN := diagCS31_EN, COM := diagCS31_COM);

diagCS31_DONE := diagCS31.DONE; diagCS31_ERR := diagCS31.ERR; diagCS31_ERNO := diagCS31.ERNO;

oder:

diagCS31(EN := TRUE, COM := 1);

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 19 Diagnose AC500 / Stand: 03.2007

Die integrierte Visualisierung des Bausteines CS31_DIAG

Zum Baustein CS31_DIAG gehört die Visualisierung Visu_CS31_Diag:

Die Einbindung und der Aufruf der Visualisierung in ein AC500-Projekt ist am Anfang der Bibliotheksbeschreibung detailliert beschrieben.

Ist der Eingang EN=TRUE, so werden zyklisch die Werte für die CS31-Diagnose ausgelesen und in die Strukturen eingetragen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 20 Diagnose AC500 / Stand: 03.2007

Im Online-Mode sieht die Visualisierung z. B. wie folgt aus:

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 21 Diagnose AC500 / Stand: 03.2007

FBP_DIAG Diagnose der FBP-Slave-Schnittstelle

Der Baustein FBP_DIAG dient zur Ausgabe der Diagnose der FBP-Slave-Schnittstelle.

Bausteindaten

Verfügbar ab Laufzeitsystem der SPS: V1.0.2 Anmerkung:

Enthalten in Bibliothek: Diag_AC500_V10.LIB

Bausteintyp

Funktionsblock mit Vergangenheitswerten

Parameter

Instanz FBP_DIAG Instanzname

EN Eingang BOOL Freigabe der Bausteinbearbeitung

DONE Ausgang BOOL Fertigstellung der Bausteinbearbeitung

ERR Ausgang BOOL Fehlermeldung des Bausteins

ERNO Ausgang WORD Fehlernummer

Beschreibung

Mit dem Baustein FBP_DIAG erfolgt die Ausgabe der Diagnose der FBP-Slave-Schnittstelle.

In der globalen Variablenliste GL_AC500_Diagnosis ist die Instanz diagFBP des Bausteines DIAG_FBP deklariert. Die integrierte Visualisierung des Bausteines greift auf die Variablen dieser Instanz zu.

Um den Baustein in ein AC500-Projekt einzubinden, muss nur die Instanz dieses Bausteines aufgerufen werden. In ST z. B. mit

diagFBP(EN := TRUE);

Die Werte werden in interne Strukturen der Instanz diagFBP eingelesen.

Struktur TYPE Belegung

strVisuData strFBP_Info Diagnosedaten der FBP-Slave-Schnittstelle

strVisuData1 strFBP_Statistics Statistische Daten der FBP-Slave-Schnittstelle

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 22 Diagnose AC500 / Stand: 03.2007

Die Struktur strFBP_Info hat folgende Einträge:

TYPE strFBP_Info : STRUCT

pbyBinInputs : POINTER TO BYTE; (* interne Variable*)

pbyBinOutputs : POINTER TO BYTE; (* interne Variable*)

pbyAnaInputs : POINTER TO BYTE; (* interne Variable*)

pbyAnaOutputs : POINTER TO BYTE; (* interne Variable*)

pParameter : POINTER TO BYTE; (* interne Variable*)

apsModule : ARRAY[1..8] OF POINTER TO strFBP_ModuleInfo;

(* Submodul-Infos *)

usNumModules : WORD; (* Anzahl Module *)

usSizeParameters : WORD; (* Parameterlänge in Byte *)

usNumParameters : WORD; (* Anzahl Parameter *)

usNumBinaryInputs : WORD; (* Anzahl digitale Eingang-Bytes *)

usSizeBinaryInputs : WORD; (* Länge digitale Eingang-Bytes *)

usNumBinaryOutputs : WORD; (* Anzahl digitale Ausgang-Bytes *)

usSizeBinaryOutputs : WORD; (* Länge digitale Ausgang-Bytes *)

usNumAnalogueInputs : WORD; (* Anzahl analoge Eingang-Worte *)

usSizeAnalogueInputs : WORD; (* Länge analoge Eingänge in Byte *)

usNumAnalogueOutputs : WORD; (* Anzahl analoger Ausgang-Worte *)

usSizeAnalogueOutputs : WORD; (* Länge analoge Ausgänge in Byte *)

ulBaudRate : DWORD; (* aktuelle Baudrate *)

byBusAddress : BYTE; (* an FBP gemeldete Bus-Adresse *)

bySelectedTelegramType : BYTE; (* Telegramm-Type (lt. FBP-Spec) *)

bySelectedBaudRate : BYTE; (* gewählte Baudrate (lt. FBP-Spec) *)

byPrmFormat : BYTE; (* Parameterformat (lt. FBP-Spec) *)

END_STRUCT END_TYPE

Die Struktur strFBP_Statistics hat folgende Einträge:

TYPE strFBP_Statistics : STRUCT

ulNumInitRequestsSent : DWORD; (* Anzahl Inits an FBP ab Konfiguration *)

ulNumRec : DWORD; (* Anzahl Telegramme vom FBP ab Konfig *)

ulNumSend : DWORD; (* Anzahl Telegramme an FBP ab Konfig *)

ulNumRecErrors : DWORD; (* Anzahl fehlerhafter Telegramme ab Konfig *)

ulNumTimeouts : DWORD; (* Anzahl Timeouts ab Konfiguration *)

ulNumChecksumErrors : DWORD; (* Anzahl Telgramme mit Prüfsummenfehler *)

ulNumInvalidRecs : DWORD; (* Anzahl falscher/unbekannter Telegramme *)

END_STRUCT END_TYPE

Soll aus dem Anwenderprogramm auf die Werte zugegriffen werden, so erfolgt der Zugriff über:

diagFBP.strVisuData.Variable.

Im nachfolgendem Beispiel wird die FBP-Slave-Adresse ausgelesen und der Variablen byFBPAddress zugewiesen:

diagFBP.strVisuData.byBusAddress---------------byFBPAddress

Mittels Visualisierung Visu_FBP_Diag werden die wichtigsten Werte dargestellt. Die Bedienung der Visualisierung ist am Ende der Bausteinbeschreibung ausführlich beschrieben.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 23 Diagnose AC500 / Stand: 03.2007

EN BOOL (enable)

Mit EN = TRUE wird die Bearbeitung des Bausteines freigegeben und die Werte werden bei jedem Aufruf aktualisiert.

DONE BOOL (done)

Am Ausgang DONE wird der Zustand der Bearbeitung des Bausteines angezeigt. Ist die Bearbeitung abgeschlossen oder wurde sie aufgrund eines Fehlers abgebrochen, wird für die Dauer eines Zyklus DONE = TRUE gesetzt. Dieser Ausgang muss immer im Zusammenhang mit dem Ausgang ERR ausgewertet werden. Ist ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERR BOOL (error)

Am Ausgang ERR wird angezeigt, ob während der Bearbeitung des Bausteines ein Fehler aufgetreten ist. Der Ausgang muss immer im Zusammenhang mit dem Ausgang DONE betrachtet werden. Ist DONE = TRUE und ERR = TRUE, liegt ein Fehler vor. Die Fehlernummer kann in diesem Fall über den Ausgang ERNO ausgelesen werden.

ERNO WORD (error number)

Am Ausgang ERNO wird eine Fehlerkennung ausgegeben, wenn an einem Eingang ein ungültiger Wert angegeben wurde oder während der Bearbeitung des Auftrags ein Fehler aufgetreten ist. ERNO muss immer im Zusammenhang mit den Ausgängen DONE und ERR betrachtet werden. Der an ERNO ausgegebene Wert ist nur gültig, wenn DONE = TRUE und ERR = TRUE ist.

Die Kodierung der Fehlermeldungen am Ausgang ERNO wird in einer gesonderten Tabelle "Fehlermeldungen der Bausteinbibliotheken" erläutert.

Funktionsaufruf in AWL

Hinweis: Die Instanz diagFBP des Bausteines CPU_LOAD ist in der globalen Variablenliste GL_AC500_Diagnosis der Bibliothek Diag_AC500_V10.LIB deklariert und braucht nur aufgerufen werden.

CAL diagFBP(EN := CPU_EN)

LD diagFBP.DONE ST diagFBP_DONE LD diagFBP.ERR ST diagFBP_ERR LD diagFBP.ERNO ST diagFBP_ERNO

Hinweis: Der Funktionsaufruf muss in der AWL einzeilig erfolgen.

Funktionsaufruf in ST

diagFBP(EN := diagFBP_EN);

diagFBP_DONE := diagFBP.DONE; diagFBP_ERR := diagFBP.ERR; diagFBP_ERNO := diagFBP.ERNO;

oder:

diagFBP(EN := TRUE);

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 24 Diagnose AC500 / Stand: 03.2007

Die integrierte Visualisierung des Bausteines FBP_DIAG

Zum Baustein FBP_DIAG gehört die Visualisierung Visu_FBP_Diag:

Die Einbindung und der Aufruf der Visualisierung in ein AC500-Projekt ist am Anfang der Bibliotheksbeschreibung detailliert beschrieben.

Ist der Eingang EN=TRUE, so werden zyklisch die Werte für die FBP-Diagnose ausgelesen und in die Strukturen eingetragen.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 25 Diagnose AC500 / Stand: 03.2007

Im Online-Mode sieht die Visualisierung z. B. wie folgt aus:

Es werden nur soviel Module angezeigt, wie in der Steuerungskonfiguration an die FBP-Slave-Schnittstelle angehängt sind.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 26 Diagnose AC500 / Stand: 03.2007

Glossar

BOOL

Variablen vom Typ BOOL können die Wahrheitswerte TRUE und FALSE annehmen. Es werden 8 Bit Speicherplatz reserviert.

DINT

DINT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DINT Untergrenze -2147483648 Obergrenze 2147483647 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

DWORD

DWORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ DWORD Untergrenze 0 Obergrenze 4294967295 Speicherplatz 32 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

INT

INT gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ INT Untergrenze -32768 Obergrenze 32767 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

WORD

WORD gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ WORD Untergrenze 0 Obergrenze 65535 Speicherplatz 16 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 27 Diagnose AC500 / Stand: 03.2007

BYTE

BYTE gehört zu den ganzzahligen Datentypen.

Die unterschiedlichen Zahlentypen decken einen unterschiedlichen Zahlenbereich ab. Für die ganzzahligen Datentypen gelten die folgenden Bereichsgrenzen:

Typ BYTE Untergrenze 0 Obergrenze 255 Speicherplatz 8 Bit

Dadurch kann es passieren, dass bei der Typkonvertierung von größeren auf kleinere Typen Information verloren geht.

Funktionen

Funktionen sind Unterprogramme, die beliebig viele Eingangsparameter haben und genau ein Ergebnis-Element zurückliefern. Das zurückgelieferte Ergebnis kann von elementarem, aber auch von zusammengesetztem Datentyp sein. Eine Funktion darf also auch ein Feld, eine Struktur, ein Feld von Strukturen etc. zurückgeben.

Funktionen liefern bei gleicher Eingangsbeschaltung stets das gleiche Ergebnis (sie besitzen kein Gedächtnis.

Daraus abzuleiten sind folgende Regeln:

• Innerhalb von Funktionen dürfen globale Variablen weder gelesen noch geschrieben werden. • Innerhalb von Funktionen dürfen Absolutoperanden weder gelesen noch geschrieben werden • Innerhalb von Funktionen dürfen Funktionsblöcke nicht aufgerufen werden.

Funktionsblöcke

Funktionsblöcke sind Unterprogramme, die jeweils beliebig viele Eingangs-, Ausgangs- und interne Variablen haben. Sie werden von einem Programm aufgerufen oder von einem anderen Funktionsblock.

Da sie auch mehrfach genutzt werden können (mit jeweils anderen Datensätzen), können Funktionsblöcke (ihr Code und die Schnittstelle) als Typ betrachtet werden. Über die Zuordnung eines individuellen Datensatzes (Deklaration) wird eine Instanz des Funktionsblockes angelegt.

Anders als Funktionen können Funktionsblöcke statisch lokale Daten haben, die von einem Aufruf zum nächsten gerettet werden. Damit können z. B. Zähler realisiert werden, die ihren Zählerstand nicht vergessen dürfen. D. h. Funktionsblöcke können ein Gedächtnis haben.

Funktionen und Funktionsblöcke unterscheiden sich in zwei wesentlichen Punkten:

• Ein Funktionsblock hat beliebig viele Ausgangsparameter, die Funktion maximal einen, wobei sich die Ausgangsparameter von Funktionen und Funktionsblöcken syntaktisch unterscheiden.

• Ein Funktionsblock kann ein Gedächtnis haben, eine Funktion nicht.

Funktionsblöcke mit Vergangenheitswerten (Gedächtnis):

Bei Funktionsblöcken mit Vergangenheitswerten ist zu beachten, dass Instanznamen nicht mehrfach vergeben werden dürfen, wenn unterschiedliche Datensätze aufgerufen werden sollen.

Funktionsblöcke ohne Vergangenheitswerte (Gedächtnis):

Bei Funktionsblöcken ohne Vergangenheitswerte braucht nur eine Instanz für den FB-Typ angelegt zu werden. Diese Instanz kann für mehrere Aufrufe des FB (auch mit unterschiedlichen E/A-Werten) genutzt werden.

Der Instanzname kann beliebig definiert werden. Der Typ ist vorgegeben und ist identisch mit dem Namen des Funktionsblockes.

____________________________________________________________________________________________________________

G6 AC500-Bausteinbibliotheken 28 Diagnose AC500 / Stand: 03.2007

Index

B

Bausteinübersicht, geordnet nach Aufrufnamen 3

Besonderheiten der Diagnose-Bibliothek 2

Bestandteile der Diagnose-Bibliothek 2

C

CPU_DIAG Auslesen des AC500-Diagnosebuffers 7

CPU_LOAD Ausgabe der Auslastung der CPU 11

CS31_DIAG Diagnose des CS31-Busses 15

D

Die integrierte Visualisierung der Bausteine der Diagnose-Bibliothek 3

F

FBP_DIAG Diagnose der FBP-Slave-Schnittstelle 21

G

Glossar 26

V

Voraussetzung für die Verwendung der Bibliothek 2

ABB STOTZ-KONTAKT GmbHEppelheimer Straße 82 69123 Heidelberg, DeutschlandPostfach 10 16 80 69006 Heidelberg, DeutschlandTelefon (06221) 701-0Telefax (06221) 701-1361Internet http://www.abb.de/stotz-kontaktE-Mail [email protected]

Dru

cksc

hrift

-Nr.:

2C

DC

125

021

M01

01