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