Dies Programm wurde mit Step 7-Micro/Win 32, Version 3.0.1.000 erstellt. Es besteht aus einem Hauptprogramm und der SBR1. Im Hauptprogramm werden die Flags zum Ansprechen der richtigen AS-Interface Bank gesetzt. Das Unterprogramm wird ange- sprungen, wenn der Master im RUN-Modus ist. Die SBR1 verwendet die Eingänge E0.0 bis E0.7 sowie die Ausgänge A0.0 bis A0.7 der CPU224. Sie kommuniziert über einen AS-Interface Master mit einem 8E/8A-Modul PB020, das an Adresse 1 / 1A angeschlossen sein muss. Die Eingänge E0.0 bis E0.7 werden an den AS-Interface Modulausgängen O1 bis O8 ausgegeben. Die AS-Interface Moduleingänge I1 bis I8 werden an den Ausgängen A0.0 bis A0.7 ausgegeben. Der Kommunikation liegt das CTT3 zugrunde (siehe AS-Interface Spezifikation). Das Programm ist ein Demo-Programm zum Zeigen der Funktion des 8E/8A-Moduls PB020. Es ist keine Funktionsüberwachung der CTT3 Kommunikation implementiert. Andreas Schiff, ICS GmbH, Tettnang, Germany 18.11.2005 ORGANIZATION_BLOCK OB1 TITLE=************************************************************************ // Programm für das Auslesen und Schreiben der 8 Datenbits vom ICS-Produkt PB020 // AS-Interface (CTT3). Die E/A-Daten werden aus dem Eingabebyte E0.0 bis E0.7 // genommen und die Ausgabedaten in das Ausgabebyte A0.0 bis A0.7 geschrieben. // // Konfiguration: Es wird erwartet, dass der AS-Interface Master (CP243-2) neben // der CPU 224 gesteckt ist. Es wird weiter erwartet, dass der PB020 als Slave 1A // im AS-Interface Netzwerk vorhanden ist. // // Dies ist ein Beispielprogramm, das lediglich die Funktion des CTT3 simuliert. // Es kann keine Gewähr für einwandfreie Funktion in einem Automatisierungsprojekt // übernommen werden. // Autor: ICS GmbH, A. Schiff Version 0.1 Datum: 18.11.2005 //************************************************************************ BEGIN NETWORK 1 //Initialisieren des ASI-Masters LD SM0.1 SI A2.7 1 // Hier wird E/A-Bank selektiert RI A2.0 4 // Hier wird E/A-Bank selektiert NETWORK 2 // Hauptprogramm LD E2.1 CALL 1 NETWORK 3 // Programmende // MEND // Ende des Hauptteils SUBROUTINE_BLOCK SBR1 TITLE=************************************************************************* // Dieses Unterprogramm liest die AS-Interface Eingangsdaten in einen Merker- // bereich ein, kommuniziert mit dem Slave unter der Adresse 1 / 1A entsprechend // dem Protokoll CTT3 und schreibt die Ausgangsdaten aus einem Merkerbereich // wieder an den AS-Interface Master zurück. //************************************************************************* BEGIN NETWORK 1 LD SM0.0 BMW AEW0 VW800 8 // Zustand 1 der State Machine NETWORK 2 LBL 0 NETWORK 3 // Teste Zustand 1: Bit 3 = 0 und Bit 4 = 0: LDN V800.3 // Bit 4 von Slave 1 UN V800.2 // Bit 3 von Slave 1 NOT JMP 10 // Springe zum nächsten State NETWORK 4 LD V800.1 // Lade Bit 1 von Slave 1 = A0.7 // Setze Ausgang 7 NETWORK 5 LD V800.0 // Lade Bit 0 von Slave 1 = A0.6 // Setze Ausgang 6 NETWORK 6 LD E0.7 // Lade Eingang 7 = V900.1 // Setze Bit 1 von Slave 1 NETWORK 7 LD E0.6 // Lade Eingang 6 = V900.0 // Setze Bit 0 von Slave 1 NETWORK 8 JMP 40 // Fertig mit Zustand 1 // Zustand 2 der State Machine NETWORK 9 LBL 10 NETWORK 10 // Teste Zustand 2: Bit 3 = 1 und Bit 4 = 0: LDN V800.3 // Bit 4 von Slave 1 U V800.2 // Bit 3 von Slave 1 NOT JMP 20 // Springe zum nächsten State NETWORK 11 LD V800.1 // Lade Bit 1 von Slave 1 = A0.5 // Setze Ausgang 5 NETWORK 12 LD V800.0 // Lade Bit 0 von Slave 1 = A0.4 // Setze Ausgang 4 NETWORK 13 LD E0.5 // Lade Eingang 5 = V900.1 // Setze Bit 1 von Slave 1 NETWORK 14 LD E0.4 // Lade Eingang 4 = V900.0 // Setze Bit 0 von Slave 1 NETWORK 15 JMP 40 // Fertig mit Zustand 2 // Zustand 3 der State Machine NETWORK 16 LBL 20 NETWORK 17 // Teste Zustand 3: Bit 3 = 0 und Bit 4 = 1: LD V800.3 // Bit 4 von Slave 1 UN V800.2 // Bit 3 von Slave 1 NOT JMP 30 // Springe zum nächsten State NETWORK 18 LD V800.1 // Lade Bit 1 von Slave 1 = A0.3 // Setze Ausgang 3 NETWORK 19 LD V800.0 // Lade Bit 0 von Slave 1 = A0.2 // Setze Ausgang 2 NETWORK 20 LD E0.3 // Lade Eingang 3 = V900.1 // Setze Bit 1 von Slave 1 NETWORK 21 LD E0.2 // Lade Eingang 2 = V900.0 // Setze Bit 0 von Slave 1 NETWORK 22 JMP 40 // Fertig mit Zustand 3 // Zustand 4 der State Machine NETWORK 23 LBL 30 NETWORK 24 // Teste Zustand 4: Bit 3 = 1 und Bit 4 = 1: LD V800.3 // Bit 4 von Slave 1 U V800.2 // Bit 3 von Slave 1 NOT JMP 40 NETWORK 25 LD V800.1 // Lade Bit 1 von Slave 1 = A0.1 // Setze Ausgang 1 NETWORK 26 LD V800.0 // Lade Bit 0 von Slave 1 = A0.0 // Setze Ausgang 0 NETWORK 27 LD E0.1 // Lade Eingang 1 = V900.1 // Setze Bit 1 von Slave 1 NETWORK 28 LD E0.0 // Lade Eingang 0 = V900.0 // Setze Bit 0 von Slave 1 NETWORK 29 JMP 40 // Fertig mit Zustand 4 // Abschluss und Unterprogramm-Ende NETWORK 30 LBL 40 NETWORK 31 // Bit 2 Toggeln lassen (Eingangsbit invertiert wieder ausgeben) UN V800.2 // Bit 2 von Slave 1 = V900.2 // Bit 2 von Slave 1 NETWORK 32 // Speichern der ASI-Ausgangsdaten aus Merkerbereich 900 LD SM0.0 BMW VW900 AAW0 8 NETWORK 33 // Ende des Unterprogramms CRET END_SUBROUTINE_BLOCK