ASi_3422: AS-i-Masterverhalten steuern (S7-300, S7-400) - STEP 7

Erweiterte Anweisungen (S7-300, S7-400)

ft:publication_title
Erweiterte Anweisungen (S7-300, S7-400)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
de-DE
ASi_3422: AS-i-Masterverhalten steuern

Beschreibung

Die Anweisung "ASi_3422" wird zur Verwendung der Betriebsart "Erweiterter Betrieb" bei dem CP 342-2 benötigt. Der erweiterte Betrieb ermöglicht die vollständige Steuerung des Masterverhaltens über das Anwenderprogramm. Der Zugriff auf die Ein- und Ausgänge erfolgt nach wie vor wie im Standardbetrieb des CP 342-2.

Kommandoaufrufe an den CP342-2 erfolgen aus dem Anwenderprogramm über die Anweisung. Hierfür spezifizieren Sie in einem Sendepuffer einen Kommandoaufruf und starten den Auftrag.

Die Anweisung "ASi_3422" übergibt den Kommandoaufruf an den CP342-2 weiter. Mit Abschluss des Auftrags wird der Auftragsstatus übergeben und mögliche Antwortdaten in einem Empfangspuffer zur Verfügung gestellt.

Aufruf

Die Anweisung muss für jeden vorhandenen CP342-2 zyklisch aufgerufen werden. Zu einem Zeitpunkt kann je CP342-2 immer nur ein Auftrag bearbeitet werden. Ein laufender Auftrag ist nicht unterbrechbar und wird von der Anweisung zeitlich nicht überwacht. Die Anweisung "ASi_3422" ist nicht unterbrechbar ablauffähig. Aufrufe dürfen daher nicht in Programmablaufebenen programmiert werden, die sich gegenseitig unterbrechen (z.B. durch Aufruf in OB 1 und in OB 35).

Gestalten Sie im Anwenderprogramm die Kommandobearbeitung wie folgt:

  1. Bei Neustart des S7−Anwenderprogrammes rufen Sie "ASi_3422" einmalig mit dem Parameterwert STARTUP = TRUE auf.

  2. Im Anwenderprogramm spezifizieren Sie in einem Sendepuffer den Kommandoaufruf. Diesen Sendepuffer übergeben Sie mit dem Aufrufparameter SEND.

    Weitere Informationen zu der Kommandoschnittstelle des CPs und den ASi-Slave-Kommandos finden Sie in der Hardwaredokumentation des Kommunikationsprozessors.

  3. Je nach Kommandotyp benötigen Sie einen Antwortpuffer. Diesen Antwortpuffer übergeben Sie mit dem Aufrufparameter RECV. Für Statusinformationen wird der Antwortpuffer bei dieser Schnittstelle nicht benötigt.

  4. Aktivieren Sie den Auftrag über den Parameter ACT=1.

  5. Anschließend fragen Sie die Parameter DONE, ERROR und STATUS ab.

Parameter

Die folgende Tabelle zeigt die Parameter der Anweisung "ASi_3422":

Parameter

Deklaration

Datentyp

Speicherbereich

Beschreibung

ACT

Input

BOOL

E, A, M, D, L

Die Kommandobearbeitung durch die Funktion erfolgt pegelgetriggert, d.h., solange ACT = 1 ist, wird eine Kommandobearbeitung gestartet, falls nicht bereits ein Aufruf in Bearbeitung ist.

STARTUP

Input

BOOL

E, A, M, D, L

Ein CPU-Anlauf wird der Anweisung durch STARTUP = 1 mitgeteilt. Nach dem ersten Durchlauf der Funktion muss STARTUP vom Anwender rückgesetzt werden.

LADDR

Input

WORD

E, A, M, D, L oder Konstante

Baugruppen-Anfangsadresse

Die Baugruppen-Anfangsadresse ist gemäß den Angaben über die steckplatzorientierte Adressvergabe bei Signalbaugruppen zu ermitteln.

SEND

Input

ANY

E, A, M, D, L

Sendepuffer

Der Parameter verweist auf einen Speicherbereich, in dem das Kommando vom Anwender zu spezifizieren ist. z.B.: P#DB20.DBX 20.0 Byte 10.

RECV

Input

ANY

E, A, M, D, L

Empfangspuffer

Dieser Puffer ist nur bei Kommandos relevant, die Antwortdaten liefern. Der Parameter verweist auf einen Speicherbereich, in dem eine Kommandoantwort abgelegt wird. Die Länge des hier parametrierten Datenbereiches ist irrelevant. z.B.: P#DB30.DBX 20.0 Byte 1

DONE

Output

BOOL

A, M, D, L

Mit DONE = 1 wird ‘Auftrag fertig ohne Fehler’ signalisiert.

ERROR

Output

BOOL

A, M, D, L

Mit ERROR = 1 wird 'Auftrag fertig mit Fehler' signalisiert.

STATUS

InOut

DWORD

M, D

1. Wort: Auftragsstatus / Fehlercode (siehe nachfolgende Tabelle); Bei ‘Auftrag fertig mit Fehler’ wird zur näheren Fehlerbeschreibung ein Fehlercode generiert.

2. Wort: Wird von der Anweisung für interne Zwecke benötigt und darf nicht verändert werden.

Für Anweisungs−Aufrufe an unterschiedlichen logischen Adressen (LADDR) müssen unterschiedliche Doppelworte für den Parameter STATUS vergeben werden!

Weitere Informationen zu den gültigen Datentypen finden Sie unter "Übersicht über die gültigen Datentypen".

Parameter LADDR

Die Anfangsadresse dieses Adressbereiches ist durch den Steckplatz des CP 342-2 bestimmt.

Der CP 342-2 belegt 16 Eingangsbyte und 16 Ausgangsbyte im E/A-Adressraum des S7-Automatisierungsgerätes (Analogbereich des AS). Von den 16 Byte Adressbereich des CP 342-2 werden 31 x 4 Bit für die AS-i-Slave-Daten belegt. Die restlichen 4 Bit sind für spätere Anwendungen reserviert.

Parameter DONE, ERROR und STATUS

Tritt während der Bearbeitung der Funktion ein Fehler auf, dann steht zusätzlich zu den o.g. Informationen in ERROR und STATUS im BIE-Bit eine "0". Die Abfrage des BIE-Bits erfolgt unterschiedlich bei KOP- und AWL Anwenderprogrammen:

  • KOP: Abfrage über Ausgangsparameter ENO

  • AWL: Direktabfrage des BIE-Bits

Die folgende Tabelle enthält die möglichen Anzeigen im 1. Wort von STATUS in Abhängigkeit von DONE und ERROR.

DONE

ERROR

STATUS

Bedeutung

0

0

8181

Auftrag läuft.

1

0

0000

Auftrag fertig ohne Fehler.

0

1

8090

Adresse am Parameter LADDR ungültig.

0

1

80A0

Negative Quittung beim Lesen von Baugruppe.

0

1

80A1

Negative Quittung beim Schreiben zur Baugruppe.

0

1

80B0

Baugruppe kennt den Datensatz nicht.

0

1

80B1

Angegebene Datensatzlänge ist falsch.

0

1

80C0

Datensatz kann nicht gelesen werden.

0

1

80C1

Der angegebene Datensatz ist gerade in Bearbeitung.

0

1

80C2

Es liegt ein Auftragstau vor.

0

1

80C3

Betriebsmittel (Speicher) belegt.

0

1

80C4

Kommunikationsfehler

0

1

8182

Bedeutung: Kennung nach Neustart mit STARTUP=TRUE (kein Fehler).

0

1

8184

Datentyp des Formaloperanden RECV unzulässig.

0

1

8381

Slave-Adresse falsch

0

1

8382

Slave ist nicht aktiviert (nicht in LAS).

0

1

8383

Fehler am AS-Interface

0

1

8384

Kommando (im Zustand des CPs) nicht zulässig.

0

1

8385

Slave 0 existiert.

0

1

83A1

Slave mit zu ändernder Adresse nicht an AS-Interface gefunden.

0

1

83A2

Slave 0 vorhanden.

0

1

83A3

Slave mit neuer Adresse bereits am AS-Interface vorhanden.

0

1

83A4

Slave-Adresse lässt sich nicht löschen.

0

1

83A5

Slave-Adresse lässt sich nicht setzen.

0

1

83A6

Slave-Adresse lässt sich nicht permanent speichern.

0

1

83F8

Auftragsnummer unbekannt.

0

1

83F9

EEPROM-Fehler

0

1

8F22

Bereichslängenfehler beim Lesen eines Parameters.

8F23

Bereichslängenfehler beim Schreiben eines Parameters.

Dieser Fehlercode zeigt an, dass sich ein Parameter vollständig oder teilweise außerhalb des Operandenbereichs befindet oder die Länge eines Bitfelds bei einem ANY-Parameter nicht durch 8 teilbar ist.

0

1

8F24

Bereichsfehler beim Lesen eines Parameters.

8F25

Bereichsfehler beim Schreiben eines Parameters. Dieser Fehlercode zeigt an, dass sich ein Parameter in einem Bereich befindet, der für eine Systemfunktion unzulässig ist.

0

1

8F28

Ausrichtungsfehler beim Lesen eines Parameters.

8F29

Ausrichtungsfehler beim Schreiben eines Parameters. Dieser Fehlercode zeigt an, dass der Verweis auf einen Parameter ein Operand ist, dessen Bitadresse ungleich "0" ist.

0

1

8F30

Parameter liegt im schreibgeschützten Global-DB.

8F31

Parameter liegt im schreibgeschützten Instanz-DB.

Dieser Fehlercode zeigt an, dass ein Parameter sich in einem schreibgeschützten Datenbaustein befindet.

0

1

8F32

Parameter enthält zu große DB-Nummer

0

1

8F3A

Der Parameter enthält die Nummer eines DB, der nicht geladen ist.

0

1

8F42

Es ist ein Zugriffsfehler aufgetreten, während das System einen Parameter aus dem Peripheriebereich der Eingänge auslesen wollte.

8F43

Es ist ein Zugriffsfehler aufgetreten, während das System einen Parameter in den Peripheriebereich der Ausgänge schreiben wollte.

0

1

8F44

Dieser Fehlercode zeigt an, dass der lesende Zugriff auf einen Parameter verweigert wurde.

8F45

Dieser Fehlercode zeigt an, dass der schreibende Zugriff auf einen Parameter verweigert wurde.

0

1

8F7F

Interner Fehler