Herunterladen Diese Seite drucken
B&R PC 300 Implementierungsanleitung
Vorschau ausblenden Andere Handbücher für PC 300:

Werbung

Panel PC 300
Implementierungsanleitung
Datum:
2. November 2009
Inhaltliche Änderungen dieses Dokuments behalten wir uns ohne Ankündigung vor. Die Bernecker + Rainer
Industrie-Elektronik Ges.m.b.H. haftet nicht für technische oder drucktechnische Fehler und Mängel in die-
sem Dokument. Außerdem übernimmt die Bernecker + Rainer Industrie-Elektronik Ges.m.b.H. keine Haftung
für Schäden, die direkt oder indirekt auf Lieferung, Leistung und Nutzung dieses Materials zurückzuführen
sind. Wir weisen darauf hin, dass die in diesem Dokument verwendeten Soft- und Hardwarebezeichnungen
und Markennamen der jeweiligen Firmen dem allgemeinen warenzeichen-, marken- oder patentrechtlichen
Schutz unterliegen.
Copyright © B&R - Änderungen vorbehalten
02.11.09
PPC300_Implementierungsanleitung_V1_02.doc
1/132

Werbung

loading

Inhaltszusammenfassung für B&R PC 300

  • Seite 1 Panel PC 300 Implementierungsanleitung Datum: 2. November 2009 Inhaltliche Änderungen dieses Dokuments behalten wir uns ohne Ankündigung vor. Die Bernecker + Rainer Industrie-Elektronik Ges.m.b.H. haftet nicht für technische oder drucktechnische Fehler und Mängel in die- sem Dokument. Außerdem übernimmt die Bernecker + Rainer Industrie-Elektronik Ges.m.b.H. keine Haftung für Schäden, die direkt oder indirekt auf Lieferung, Leistung und Nutzung dieses Materials zurückzuführen...
  • Seite 2: Tabelle 1: Versionsstände

    Panel PC 300 Einleitung Implementierungsanleitung I Versionsstände Version Datum Kommentar Bearbeiter 1.00 20.02.2007 Erste Ausgabe. 1.01 13.04.2007 Displayhelligkeit lesen und einstellen in ein Kapitel zusammengelegt. „CMOS“ ergänzt bei Batteriezustand lesen. CMOS Batteriezustand lesen zu Statistikwerte lesen verschoben. Hinweise „(nur PPC300)“ entfernt.
  • Seite 3: Inhaltsverzeichnis

    Panel PC 300 Einleitung Implementierungsanleitung III Inhaltsverzeichnis 1 Einleitung ........................6 2 Voraussetzungen ....................... 7 3 Übersicht........................7 4 Unterschiede zu Power Panel 300/400 ..............7 5 MTCX Schnittstelle..................... 8 5.1 Registerübersicht..........................8 5.2 MTCX Configuration Register.......................8 5.2.1 Version Register.............................. 9 5.2.2 Config COM Register ............................
  • Seite 4 Panel PC 300 Einleitung Implementierungsanleitung 7.2.1 Definitionen für MTCX Schnittstelle....................... 42 7.2.2 Fehlercodes der MTCX Schnittstellenfunktionen................... 48 7.2.3 Maximale Panelanzahl lesen......................... 49 7.2.4 Panel umschalten............................50 7.2.5 Basisfunktionen für MTCX Kommandoschnittstelle..................52 7.2.6 Daten lesen mit MTCX Kommando ....................... 55 7.2.7 Daten schreiben mit MTCX Kommando ......................
  • Seite 5 Panel PC 300 Einleitung Implementierungsanleitung 7.12.1 LED Anzahl lesen............................112 7.12.2 LED Matrix lesen/setzen..........................113 7.12.3 Einzelne LED lesen/setzen........................116 7.13 Watchdogbedienung, Software Reset ....................118 7.13.1 Watchdog Zeitfenster einstellen ........................ 119 7.13.2 Watchdog toggeln ............................. 121 7.13.3 Software Reset............................121 7.14 Anwenderfunktionen ........................122...
  • Seite 6: Einleitung

    Panel PC 300 Einleitung Implementierungsanleitung 1 Einleitung In diesem Dokument ist beschrieben, wie gerätespezifische Funktionen eines B&R Panel PC 300 (kurz: PPC300) aus einer PC Anwendung bedient werden können. Auf einem PPC300 sind z.B. folgende Funktionen möglich: • Lesen von Firmwareversionen •...
  • Seite 7: Voraussetzungen

    Panel PC 300 Voraussetzungen Implementierungsanleitung 2 Voraussetzungen Es wird empfohlen, dass Sie die aktuellsten BIOS und Firmwareversionen auf dem Gerät installieren. Sie können diese von www.br-automation.com downloaden. Information: Für einige Funktionen sind bestimmte BIOS oder Firmwareversionen Voraussetzung. Die notwen- digen Versionen sind bei den jeweiligen Register- und Kommandobeschreibungen und Codebei- spielen erwähnt.
  • Seite 8: Mtcx Schnittstelle

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5 MTCX Schnittstelle Die MTCX Schnittstelle ist großteils kompatibel zu der MTCX Schnittstelle des PP300/400, APC620 und PPC700. Das heißt, bereits vorhandene Funktionen für PP300/400, APC620 und PPC700 können bis auf wenige Ausnahmen übernommen werden. So wird z.B. auf dem PPC300 nur ein „Panel“ unterstützt (sie- he Panel Switch Register auf Seite 31).
  • Seite 9: Version Register

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.2.1 Version Register Dieses Register beinhaltet die Version der MTCX PX32 Firmware und liegt auf I/O Port 4100h. Version Register Name / Funk- Default Mode Bemerkung tion Minor Version Niederwertige Versionsnummer Major Version Höherwertige Versionsnummer Tabelle 5: MTCX Version Register 5.2.2 Config COM Register...
  • Seite 10: Config Specials Register

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.2.3 Config Specials Register Mit diesem Register können zusätzliche Einstellungen gelesen werden. Das Register liegt auf I/O Port 4108h. Config Specials Register Name / Funk- Default Mode Bemerkung tion Panel Count Anzahl der maximal unterstützten Panels:...
  • Seite 11: Mtcx Command Service Register (Kommandoschnittstelle)

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.3 MTCX Command Service Register (Kommandoschnittstelle) Die MTCX Command Service Register bilden die Kommandoschnittstelle des MTCX. Diese steht für all- gemeine, zeitunkritische Kommandos zur Verfügung und besteht aus mehreren Registern, die ab I/O Port 4110h liegen.
  • Seite 12: Mtcx Command Param Register

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.3.2 MTCX Command Param Register In diesem Register müssen von der PC Anwendung die Parameter des vom PX32 zu bearbeitenden Kommandos eingetragen werden. Das Register liegt auf I/O Port 4114h. MTCX Command Param Register...
  • Seite 13: Mtcx Command Data[0

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.3.3 MTCX Command Data[0..3] Register Die MTCX Command Data0 bis Data3 Register beinhalten den Datenbereich für das Lesen und Schrei- ben von Daten und liegen ab I/O Port 4118h. Maximal können bis zu 16 Bytes übertragen werden. Alle Register haben denselben Aufbau.
  • Seite 14: Mtcx Kommandos

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.3.5 MTCX Kommandos Diese Kommandos werden vom MTCX unterstützt. Kommando Kommando Bemerkung Code Version Info Firmwareversionen lesen Device Info Geräteinformationen lesen Key Layer Tastenebene einstellen Key Service Tastenbearbeitung steuern Flash / EPROM Flashspeicher und EPROM Daten lesen/schreiben...
  • Seite 15: Version Info Kommando

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.3.5.1 Version Info Kommando Mit diesem Kommando wird die Versionsinformation aus dem Flashspeicher des jeweiligen Geräts gele- sen. Kommandofunkti- Kommando Zielgerät Rich- Geräte- Adres- Daten- Bemerkung Code tung nummer länge FPGA Version Info Baseboard...
  • Seite 16: Device Info Kommando

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.3.5.2 Device Info Kommando Mit diesem Kommando wird die Geräteinformation aus den Factory Settings im EPROM des jeweiligen Geräts gelesen. Kommandofunkti- Kommando Zielgerät Rich- Geräte- Adres- Daten- Bemerkung Code tung nummer länge ID Service...
  • Seite 17: Tabelle 18: Model Number 0 Daten

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung Offset Name / Funktion Datenlänge Bemerkung Model Number Part 1 16 Byte Teil 1 (Byte 0 bis 15) der Bestellnummer als ASCII String (ohne Null- Zeichen) Tabelle 18: Model Number 0 Daten Offset Name / Funktion Datenlänge...
  • Seite 18: Key Layer Kommando

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.3.5.3 Key Layer Kommando Mit diesem Kommando wird die aktuelle Tastenebene eingestellt. Information: Die Tastenebene wird nur eingestellt, wenn eine gültige Tastenkonfiguration auf dem Gerät vor- handen ist – das Kommando liefert aber keinen Fehler! Der Status der Tastenkonfiguration kann...
  • Seite 19: Key Service Kommando

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.3.5.4 Key Service Kommando Mit diesem Kommando kann die Bearbeitung der Tasten (Scancodes, Panelsperre) gesteuert werden. Kommandofunkti- Kommando Zielgerät Rich- Geräte- Adres- Daten- Bemerkung Code tung nummer länge Scancode Lock Baseboard 4 Byte Scancodes des Panels sperren...
  • Seite 20 Panel PC 300 MTCX Schnittstelle Implementierungsanleitung Hinweis: Ob ein Panel gesperrt ist, kann auch direkt über das Panel Flags Register des MTCX (siehe Seite 35) gelesen werden. Copyright © B&R - Änderungen vorbehalten 02.11.09 PPC300_Implementierungsanleitung_V1_02.doc 20/132...
  • Seite 21: Flash / Eprom Service Kommando

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.3.5.5 Flash / EPROM Service Kommando Mit diesem Kommando werden Flashspeicher und EPROM Daten gelesen und programmiert. Kommandofunkti- Kommando Zielgerät Rich- Geräte- Adres- Daten- Bemerkung Code tung nummer länge FPGA Baseboard 16 Byte MTCX FPGA Firmware le- sen/schreiben Max.
  • Seite 22: Statistics Info Kommando

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.3.5.6 Statistics Info Kommando Die Statistikwerte werden auf Grund von Synchronisation über die MTCX Kommandoschnittstelle ausge- lesen. Kommandofunkti- Kommando Zielgerät Rich- Geräte- Adres- Daten- Bemerkung Code tung nummer länge Baseboard Sta- Baseboard 8 Byte Betriebsstunden etc.
  • Seite 23: Led Service Kommando

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.3.5.7 LED Service Kommando Mit diesem Kommando können die LEDs des Panels geschaltet werden. Kommandofunkti- Kommando Zielgerät Rich- Geräte- Adres- Daten- Bemerkung Code tung nummer länge LED Service 0 Panel 16 Byte 64 LEDs der 1. Ebene lesen/setzen...
  • Seite 24: Display Service Kommando

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.3.5.8 Display Service Kommando Mit diesem Kommando können Einstellungen des Displays gelesen und geändert werden. Kommandofunkti- Kommando Zielgerät Rich- Geräte- Adres- Daten- Bemerkung Code tung nummer länge Display Settings Panel 4 Byte Einstellungen des Displays le- sen/schreiben.
  • Seite 25: Watchdog Service Kommando

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.3.5.9 Watchdog Service Kommando Mit diesem Kommando wird der Watchdog konfiguriert und kann ein Reset des PC per Software durchge- führt werden. Kommandofunkti- Kommando Zielgerät Rich- Geräte- Adres- Daten- Bemerkung Code tung nummer länge...
  • Seite 26: Baseboard Service Register

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.4 Baseboard Service Register Die Baseboard Service Register beinhalten Daten und Einstellungen des Baseboard und liegen ab I/O Port 4130h. 4130h+ Register Beschreibung Offset 0000h Baseboard Support NMI Status und Watchdog Toggle 0004h Baseboard TempBoard...
  • Seite 27: Baseboard Support Register

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.4.1 Baseboard Support Register Dieses Register beinhaltet das Watchdog Toggle Bit sowie Einstellungen für die SMC Bearbeitung und liegt auf I/O Port 4130h. Baseboard Support Register Name / Funk- Default Mode Bemerkung tion SMC Status...
  • Seite 28: Baseboard Tempboard Register

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.4.2 Baseboard TempBoard Register Dieses Register beinhaltet die Board I/O Temperatur und CPU Temperatur und liegt auf I/O Port 4134h. Baseboard TempBoard Register Name / Funk- Default Mode Bemerkung tion Temp 1 Temperatur des Board I/O in °C: 0 bis 127 Temp 2 Temperatur der CPU in °C: 0 bis 127...
  • Seite 29: Baseboard Keystate Register

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.4.4 Baseboard KeyState Register Dieses Register beinhaltet spezielle Einstellungen für die Behandlung der Matrixtasten und Tastenkonfi- guration und liegt auf I/O Port 4148h. Baseboard KeyState Register Name / Funk- Default Mode Bemerkung tion Level...
  • Seite 30: Baseboard Specials Register

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.4.5 Baseboard Specials Register Dieses Register beinhaltet spezielle Einstellungen des PC und liegt auf I/O Port 414Ch. Baseboard Specials Register Name / Funk- Default Mode Bemerkung tion User LED Zustand der User LED: State...
  • Seite 31: Panel Switch Register

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.5 Panel Switch Register Dieses Register dient zum Umschalten der Panel Service Register des MTCX (siehe Seite 32) und liegt auf I/O Port 415Ch. Der MTCX stellt einige Daten des Panels – z.B. die Tastenmatrix - über die Panel Service Register zur Verfügung.
  • Seite 32: Panel Service Register

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.6 Panel Service Register Diese Register beinhalten die Daten und Einstellungen des mit dem Panel Switch Register (siehe Seite 31) ausgewählten Panels und liegen ab I/O Port 4160h. Die Daten für die einzelnen Panels werden vom MTCX zyklisch im System abgefragt und in die Panel Service Register abgelegt.
  • Seite 33: Panel Tempfan Register

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.6.1 Panel TempFan Register Dieses Register beinhaltet die Temperatur (Umgebungstemperatur des Displays) und Lüfterdrehzahl des Panels und liegt auf I/O Port 4164h. Panel TempFan Register Name / Funk- Default Mode Bemerkung tion Temp Temperatur in °C: 0 bis 127 Fan Speed Lüfterumdrehungen pro Minute / 4 (wird derzeit nicht unterstützt)
  • Seite 34: Panel Specials Register

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.6.2 Panel Specials Register Dieses Register beinhaltet spezielle Einstellungen und Informationen des Panels (Hintergrundbeleuch- tung, Schlüsselschalterstatus und die Anzahl der Tasten und LEDs) und liegt auf I/O Port 4168h. Panel Specials Register Name / Funk-...
  • Seite 35: Panel Flags Register

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.6.3 Panel Flags Register Dieses Register beinhaltet Kennungen und spezielle Einstellungen des Panels und liegt auf I/O Port 416Ch. Panel Flags Register Name / Funk- Default Mode Bemerkung tion Detected Zeigt an, ob das Panel einmal erkannt wurde:...
  • Seite 36: Panel Key Matrix[0

    Panel PC 300 MTCX Schnittstelle Implementierungsanleitung 5.6.4 Panel Key Matrix[0..3] Register Diese Register beinhalten die Zustände der Matrixtasten des Panels und liegen auf I/O Port 4170h bis 417Fh. Es gibt 4 Register für die gesamte Matrix. Die Tastenmatrix ist bereits entprellt.
  • Seite 37: Codierhinweise

    Panel PC 300 Codierhinweise Implementierungsanleitung 6 Codierhinweise In den nächsten Kapiteln finden Sie allgemeine Hinweise für die Anwendung der in diesem Dokument enthaltenen Codebeispiele. 6.1 TODO: Anweisungen In den Codebeispielen sind TODO: Anweisungen enthalten. Ersetzen Sie diese durch entsprechenden Code.
  • Seite 38: Read_Port_X, Write_Port_X

    Panel PC 300 Codierhinweise Implementierungsanleitung 6.3 READ_PORT_x, WRITE_PORT_x Sie müssen die in den Codebeispielen enthaltenen READ_PORT_x und WRITE_PORT_x Funktionen durch die entsprechenden I/O Port Zugriffsfunktionen Ihrer Entwicklungsumgebung ersetzen. Beispiel für Implementierung der READ_PORT_x und WRITE_PORT_x Funktionen mit inp und outp (z.B.
  • Seite 39: Read_Register_X

    Panel PC 300 Codierhinweise Implementierungsanleitung 6.4 READ_REGISTER_x Sie müssen die in den Codebeispielen enthaltene READ_REGISTER_x Funktion durch die entsprechen- de Speicherzugriffsfunktion Ihrer Entwicklungsumgebung ersetzen. Beispiel für Implementierung der READ_REGISTER_x Funktionen für MS-DOS: // Convert linear address into segment offset address // for example 000F0000h ->...
  • Seite 40: Codebeispiele

    Panel PC 300 Codebeispiele Implementierungsanleitung 7 Codebeispiele In den folgenden Kapiteln sind die Codebeispiele für die gerätespezifischen Funktionen beschrieben, z.B.: Lesen von Temperaturen und Geräteinformationen. Hinweis: Obwohl auf PPC300 nur ein Panel unterstützt wird, ist in allen panelspezifischen Codebeispielen der „Panelnummer“...
  • Seite 41 Panel PC 300 Codebeispiele Implementierungsanleitung Copyright © B&R - Änderungen vorbehalten 02.11.09 PPC300_Implementierungsanleitung_V1_02.doc 41/132...
  • Seite 42: Mtcx Schnittstellenfunktionen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.2 MTCX Schnittstellenfunktionen Die folgenden Codebeispiele zeigen, wie die MTCX Schnittstelle in C angesprochen werden kann. 7.2.1 Definitionen für MTCX Schnittstelle Dieses Listing enthält allgemeine C Definitionen der MTCX Schnittstelle: I/O Portadressen, Strukturen der MTCX Register usw.
  • Seite 43 Panel PC 300 Codebeispiele Implementierungsanleitung // MTCX command (target) device types. #define MTCX_DEV_COMMON 0x00 #define MTCX_DEV_BASEBOARD 0x01 #define MTCX_DEV_SCANCODE 0x02 #define MTCX_DEV_PANEL 0x03 #define MTCX_DEV_PANELSET 0x04 // MTCX command device numbers. #define MTCX_DEVNUM_FPGA 0x00 // MTCX FPGA #define MTCX_DEVNUM_PX32 0x01...
  • Seite 44 Panel PC 300 Codebeispiele Implementierungsanleitung unsigned long Dir // 1 = Read, 0 = Write (see MTCX_DIR_x constants) unsigned long Reserve unsigned long DevNum // see MTCX_DEVNUM_x constants unsigned long Target // see MTCX_DEV_x constants unsigned long Command // see MTCX_CMD_x constants } MTCX_CMD_PARAM_REG;...
  • Seite 45 Panel PC 300 Codebeispiele Implementierungsanleitung typedef struct unsigned long UserLedState :1; // 0 = off, 1 = = on unsigned long UserLedMode :1; // 0 = Power LED, 1 = User LED unsigned long Reserve1 unsigned long BatState :2; // CMOS battery state: 00b = good, 11b = bad unsigned long Reserve2 :22;...
  • Seite 46 Panel PC 300 Codebeispiele Implementierungsanleitung unsigned long VendorId; char HwRevision[5]; // incl. 0 byte char Reserve; } MTCX_MANUFACTURER_INFO_DATA; typedef struct unsigned long DeviceId; unsigned short CompatId; char Reserve[2]; } MTCX_PARENT_INFO_DATA; typedef struct char SerialNumber[12]; // incl. 0 byte char Reserve[4];...
  • Seite 47 Panel PC 300 Codebeispiele Implementierungsanleitung #define MTCX_MAX_LEDS // Maximum number of LEDs per layer // Key layer modes. #define MTCX_LAYER_SHIFT 0x00 // Layer shift mode #define MTCX_LAYER_TOGGLE 0x01 // Layer toggle mode #define MTCX_LAYER_ONESHOT 0x02 // Layer one-shot mode // LED states.
  • Seite 48: Fehlercodes Der Mtcx Schnittstellenfunktionen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.2.2 Fehlercodes der MTCX Schnittstellenfunktionen Dieses Listing enthält die Fehlercodes der MTCX Schnittstellenfunktionen. Diese Fehlercodes werden in den Codebeispielen in diesem Dokument verwendet. // MTCX function return values. // TODO: These return values are used in the code examples.
  • Seite 49: Maximale Panelanzahl Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.2.3 Maximale Panelanzahl lesen Durch Lesen des Config Specials Register des MTCX (siehe Seite 10) kann ermittelt werden, wie viele Panels vom MTCX unterstützt werden, z.B. nur 1 Panel auf PPC300 und PP300/400 oder 16 Panels auf APC620 und PPC700.
  • Seite 50: Panel Umschalten

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.2.4 Panel umschalten Durch Beschreiben des Panel Switch Register des MTCX (siehe Seite 31) kann das Panel ausgewählt werden, auf dessen Daten und Einstellungen über die Panel Service Register des MTCX anschließend zugegriffen werden kann.
  • Seite 51 Panel PC 300 Codebeispiele Implementierungsanleitung Durch das zusätzliche Auswerten der „linked“ Kennung im Panel Flags Register des MTCX (siehe Seite 35) kann eine Funktion erstellt werden, mit der auf ein angeschlossenes Panel umgeschaltet wird. Aus Performancegründen wird in MtcxSwitchToLinkedPanel ebenfalls nur das niederwertigste Byte des Pa- nel Flags Register angesprochen.
  • Seite 52: Basisfunktionen Für Mtcx Kommandoschnittstelle

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.2.5 Basisfunktionen für MTCX Kommandoschnittstelle Diese Funktionen sind für die Bearbeitung von MTCX Kommandos notwendig (Basisfunktionen) und wer- den von MtcxReadCommand und MtcxWriteCommand aufgerufen. // Lock the command interface. // Return 0 if interface is already locked and // 1 if interface is locked successfully now.
  • Seite 53 Panel PC 300 Codebeispiele Implementierungsanleitung // Lock command interface. if (! MtcxLockCommand()) return MTCX_FAIL_LOCKED; // Write command data. if (Data && Size) int Port = MTCX_CMD_DATA0_ADDR; unsigned char *p = (unsigned char*)Data; while (Size-- > 0) WRITE_PORT_UCHAR(Port++, *p++); // Write command parameters.
  • Seite 54 Panel PC 300 Codebeispiele Implementierungsanleitung while ((retvalue = MtcxGetCommandStatus(ErrorCode)) == MTCX_WORKING) // TODO: add timeout handling and terminate loop after timeout with retvalue = MTCX_FAIL_TIMEOUT return retvalue; Listing 10: Basisfunktionen für MTCX Kommandoschnittstelle Die verwendeten Definitionen finden Sie auf Seite 42.
  • Seite 55: Daten Lesen Mit Mtcx Kommando

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.2.6 Daten lesen mit MTCX Kommando Mit dieser Funktion wird ein MTCX Kommando zum Lesen von Daten abgesetzt. Diese Funktion wird in weiteren Codebeispielen aufgerufen. // Read data via MTCX command. // Parameters Command [in] Specifies the command code (see MTCX_CMD_x constants).
  • Seite 56: Daten Schreiben Mit Mtcx Kommando

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.2.7 Daten schreiben mit MTCX Kommando Mit dieser Funktion wird ein MTCX Kommando zum Schreiben von Daten abgesetzt. Diese Funktion wird in weiteren Codebeispielen aufgerufen. // Write data via MTCX command. // Parameters Command [in] Specifies the command code (see MTCX_CMD_x constants).
  • Seite 57: Panelfunktionen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.3 Panelfunktionen Die Panelfunktionen werden vom MTCX auf dem PPC300 ausgeführt. Mit einem PPC300 kann nur ein Automation Panel verwendet werden. Die Panelnummern 1 bis 15 kön- nen daher nicht verwendet werden. Da der PPC300 anstelle eines SDL Einschubs im Automation Panel eingebaut, können bis auf Ausnah- me der SDL spezifischen Funktionen (z.B.
  • Seite 58: Panel „Unterstützt" Prüfen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.3.1 Panel „unterstützt“ prüfen Ob ein Panel unterstützt wird, kann über das Baseboard Specials Register des MTCX (siehe Seite 30) geprüft werden. Das folgende C Codebeispiel zeigt, wie geprüft werden kann, ob ein Panel „unterstützt“ wird.
  • Seite 59: Panel „Erkannt" Prüfen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.3.2 Panel „erkannt“ prüfen Ob ein Panel erkannt wurde, kann über das Panel Flags Register des MTCX (siehe Seite 35) geprüft werden. Das folgende C Codebeispiel zeigt, wie geprüft werden kann, ob ein Panel „erkannt“ wurde.
  • Seite 60: Panel „Verbunden" Prüfen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.3.3 Panel „verbunden“ prüfen Ob ein Panel verbunden ist (d.h. die Kommunikation mit dem Panel funktioniert), kann über das Panel Flags Register des MTCX (siehe Seite 35) geprüft werden. Das folgende C Codebeispiel zeigt, wie geprüft werden kann, ob ein Panel angeschlossen ist.
  • Seite 61: Panel „Gesperrt" Prüfen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.3.4 Panel „gesperrt“ prüfen Ob ein Panel gesperrt ist, kann über das Panel Flags Register des MTCX (siehe Seite 35) geprüft wer- den. Das folgende C Codebeispiel zeigt, wie geprüft werden kann, ob ein Panel gesperrt ist.
  • Seite 62: Scancodes „Gesperrt" Prüfen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.3.5 Scancodes „gesperrt“ prüfen Ob die Scancodes des Panels gesperrt sind, kann über das Panel Flags Register des MTCX (siehe Sei- te 35) geprüft werden. Die Scancodes sind in der Tastenkonfiguration definiert. Eine Tastenkonfiguration kann mit dem B&R Key Editor erstellt und auf das Gerät geladen werden.
  • Seite 63: Panelsperre Lesen/Setzen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.3.6 Panelsperre lesen/setzen Die Sperre des Panels kann mit dem Key Service Kommando des MTCX (siehe Seite 19) gelesen und manuell gesetzt werden. Das folgende C Codebeispiel zeigt, wie die Sperre des Panels gelesen werden kann.
  • Seite 64 Panel PC 300 Codebeispiele Implementierungsanleitung // Return 0 at success and -1 at failure. int SetPanelLock(unsigned int PanelNumber, int Lock) MTCX_PANEL_LOCK_DATA data; unsigned char ErrorCode; int retvalue; // Note: LockBits bit x represents the lock state of panel x: bit value 0 = lock OFF, 1 = lock ON.
  • Seite 65: Versionen Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.4 Versionen lesen Die folgenden Codebeispiele zeigen, wie Sie auf einem PPC300 die Version des BIOS und der Firmware lesen können, die auf dem Gerät installiert ist. 7.4.1 Version des BIOS lesen Die Version des BIOS kann durch Suche und Auswertung des B&R Vendor Strings im BIOS ROM Spei- cher gelesen werden.
  • Seite 66: Version Des Mtcx Px32 Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.4.2 Version des MTCX PX32 lesen Die Version der MTCX PX32 Firmware kann über das Version Register des MTCX (siehe Seite 9) gele- sen werden. Das folgende C Codebeispiel zeigt, wie die MTCX PX32 Version gelesen werden kann.
  • Seite 67: Version Des Mtcx Fpga Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.4.3 Version des MTCX FPGA lesen Die Version der MTCX FPGA Firmware kann mit dem Version Info Kommando des MTCX (siehe Seite 15) gelesen werden. Das folgende C Codebeispiel zeigt, wie die MTCX FPGA Version gelesen werden kann.
  • Seite 68: Version Der Scancode Daten Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.4.4 Version der Scancode Daten lesen Die Version der Scancode Daten kann mit dem Version Info Kommando des MTCX (siehe Seite 15) ge- lesen werden. Information: Die Version der Scancode Daten gibt nur über das Format der Datenstruktur Auskunft und ist un- abhängig von der Version, die im B&R Key Editor beim Erstellen der Tastenkonfiguration einge-...
  • Seite 69: Geräteinformationen Des Pc Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.5 Geräteinformationen des PC lesen Die folgenden Codebeispiele zeigen, wie Sie auf einem PPC300 von B&R programmierte Informationen (z.B. Seriennummer oder Hardwarerevision) über das Gerät lesen können. 7.5.1 Gerätekennung des PC lesen Die Gerätekennung des PC entspricht der B&R-internen Produktnummer und kann mit dem Device Info Kommando des MTCX (siehe Seite 16) gelesen werden.
  • Seite 70: Kompatibilitätskennung Des Pc Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.5.2 Kompatibilitätskennung des PC lesen Die Kompatibilitätskennung des PC dient zur Erkennung von Hardwareänderungen, die für gerätespezifi- sche Software von Bedeutung sind und kann mit dem Device Info Kommando des MTCX (siehe Seite 16) gelesen werden.
  • Seite 71: Herstellerkennung Des Pc Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.5.3 Herstellerkennung des PC lesen Die Herstellerkennung des PC ist bei B&R immer 0 und kann mit dem Device Info Kommando des MTCX (siehe Seite 16) gelesen werden. Das folgende C Codebeispiel zeigt, wie die Herstellerkennung des PC gelesen werden kann.
  • Seite 72: Hardwarerevision Des Pc Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.5.4 Hardwarerevision des PC lesen Die Hardwarerevision des PC kann mit dem Device Info Kommando des MTCX (siehe Seite 16) gele- sen werden. Das folgende C Codebeispiel zeigt, wie die Hardwarerevision des PC gelesen werden kann. Geben Sie für HardwareRev eine mindestens 5 char große Variable an.
  • Seite 73: Seriennummer Des Pc Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.5.5 Seriennummer des PC lesen Die Seriennummer des PC kann mit dem Device Info Kommando des MTCX (siehe Seite 16) gelesen werden. Das folgende C Codebeispiel zeigt, wie die Seriennummer des PC gelesen werden kann. Geben Sie für SerialNumber eine mindestens 12 char große Variable an.
  • Seite 74: Bestellnummer Des Pc Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.5.6 Bestellnummer des PC lesen Die Bestellnummer des PC kann mit dem Device Info Kommando des MTCX (siehe Seite 16) gelesen werden. Das folgende C Codebeispiel zeigt, wie die Bestellnummer des PC gelesen werden kann. Geben Sie für ModelNumber eine mindestens 41 char große Variable an.
  • Seite 75: Parent Gerätekennung Des Pc Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.5.7 Parent Gerätekennung des PC lesen Die Parent Gerätekennung des PC gibt die Gerätekennung des PC an, von dem das aktuelle Gerät „ab- geleitet“ wurde (z.B. bei einer kundenspezifischen Variante eines Standardgeräts). Die Parent Geräte- kennung kann mit dem Device Info Kommando des MTCX (siehe Seite 16) gelesen werden.
  • Seite 76: Parent Kompatibilitätskennung Des Pc Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.5.8 Parent Kompatibilitätskennung des PC lesen Die Parent Kompatibilitätskennung des PC gibt die Kompatibilitätskennung des PC an, von dem das ak- tuelle Gerät „abgeleitet“ wurde (z.B. bei einer kundenspezifischen Variante eines „Standard“ Geräts). Die Parent Kompatibilitätskennung kann mit dem Device Info Kommando des MTCX (siehe Seite 16) gele- sen werden.
  • Seite 77: Geräteinformationen Des Panels Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.6 Geräteinformationen des Panels lesen Die folgenden Codebeispiele zeigen, wie Sie auf einem PPC300 von B&R programmierte Informationen (z.B. Seriennummer oder Hardwarerevision) des Automation Panels lesen können. Die in den folgenden Codebeispielen gelesenen Informationen sind Bestandteil der Factory Settings des Automation Panels und liegen in folgender Datenstruktur vor (Startoffset in den Factory Settings ist 80h): #define BR_INT_DATA_HEADER_ID "\xff\x55\xaa\xff\x00\x00\xff\xff"...
  • Seite 78 Panel PC 300 Codebeispiele Implementierungsanleitung Diese Daten können mit der nächsten Funktion gelesen werden: // Read internal data of panel. // Parameters PanelNumber [in] Specifies the panel number: 0 to 14. Note: PPC300 supports only panel number 0. Data [out] Points to a buffer that receives the B&R internal data.
  • Seite 79: Gerätekennung Des Panels Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.6.1 Gerätekennung des Panels lesen Die Gerätekennung des Automation Panels entspricht der B&R-internen Produktnummer und kann aus den Factory Settings des Panels mit dem Flash / EPROM Service Kommando (siehe Seite 21) des MTCX gelesen werden.
  • Seite 80: Kompatibilitätskennung Des Panels Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.6.2 Kompatibilitätskennung des Panels lesen Die Kompatibilitätskennung des Automation Panels kann aus den Factory Settings des Panels mit dem Flash / EPROM Service Kommando des MTCX (siehe Seite 21) gelesen werden. Das folgende C Codebeispiel zeigt, wie die Kompatibilitätskennung des Panels gelesen werden kann.
  • Seite 81: Herstellerkennung Des Panels Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.6.3 Herstellerkennung des Panels lesen Die Herstellerkennung des Automation Panels kann aus den Factory Settings des Panels mit dem Flash / EPROM Service Kommando des MTCX (siehe Seite 21) gelesen werden. Das folgende C Codebeispiel zeigt, wie die Herstellerkennung des Panels gelesen werden kann.
  • Seite 82: Hardwarerevision Des Panels Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.6.4 Hardwarerevision des Panels lesen Die Hardwarerevision des Automation Panels kann aus den Factory Settings des Panels mit dem Flash / EPROM Service Kommando des MTCX (siehe Seite 21) gelesen werden. Das folgende C Codebeispiel zeigt, wie die Hardwarerevision des Panels gelesen werden kann. Geben Sie für HardwareRev eine mindestens 5 char große Variable an.
  • Seite 83: Seriennummer Des Panels Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.6.5 Seriennummer des Panels lesen Die Seriennummer des Automation Panels kann aus den Factory Settings des Panels mit dem Flash / EPROM Service Kommando des MTCX (siehe Seite 21) gelesen werden. Das folgende C Codebeispiel zeigt, wie die Seriennummer des Panels gelesen werden kann. Geben Sie für SerialNumber eine mindestens 12 char große Variable an.
  • Seite 84: Bestellnummer Des Panels Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.6.6 Bestellnummer des Panels lesen Die Bestellnummer des Automation Panels kann aus den Factory Settings des Panels mit dem Flash / EPROM Service Kommando des MTCX (siehe Seite 21) gelesen werden. Das folgende C Codebeispiel zeigt, wie die Bestellnummer des Panels gelesen werden kann. Geben Sie für ModelNumber eine mindestens 41 char große Variable an.
  • Seite 85: Statistikwerte Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.7 Statistikwerte lesen Auf einem PPC300 können Sie folgende Statistikwerte lesen: • Einschaltzyklen des PC • Betriebsstunden des PC • Betriebsstunden des PC Lüfters • Betriebsstunden (der Hintergrundbeleuchtung) des Panels • Einschaltzyklen (der Hintergrundbeleuchtung) des Panels •...
  • Seite 86: Betriebsstunden Des Pc Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.7.2 Betriebsstunden des PC lesen Die Betriebsstunden des PC (des Baseboard) können mit dem Statistics Info Kommando des MTCX (siehe Seite 22) gelesen werden. Das folgende C Codebeispiel zeigt, wie die Betriebsstunden des PC gelesen werden können.
  • Seite 87: Betriebsstunden Des Pc Lüfters Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.7.3 Betriebsstunden des PC Lüfters lesen Die Betriebsstunden des PC Lüfters können mit dem Statistics Info Kommando des MTCX (siehe Seite 22) gelesen werden. Das folgende C Codebeispiel zeigt, wie die Betriebsstunden des PC Lüfters gelesen werden können.
  • Seite 88: Einschaltzyklen Des Panels Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.7.4 Einschaltzyklen des Panels lesen Die Einschaltzyklen (der Hintergrundbeleuchtung) des Automation Panels können mit dem Statistics In- fo Kommando des MTCX (siehe Seite 22) gelesen werden. Das folgende C Codebeispiel zeigt, wie die Einschaltzyklen des Panels gelesen werden können.
  • Seite 89: Betriebsstunden Des Panels Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.7.5 Betriebsstunden des Panels lesen Die Betriebsstunden (der Hintergrundbeleuchtung) des Automation Panels können mit dem Statistics In- fo Kommando des MTCX (siehe Seite 22) gelesen werden. Das folgende C Codebeispiel zeigt, wie die Betriebsstunden des Panels gelesen werden können.
  • Seite 90: Cmos Batteriezustand Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.7.6 CMOS Batteriezustand lesen Der CMOS Batteriezustand kann über das Baseboard Specials Register des MTCX (siehe Seite 30) gelesen werden. Der Zustand der CMOS Batterie wird als Integer Wert geliefert: 0 = gut, 3 = schlecht Das folgende C Codebeispiel zeigt, wie der CMOS Batteriezustand gelesen werden kann.
  • Seite 91: Temperaturen Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.8 Temperaturen lesen Auf einem PPC300 können Sie folgende Temperaturen auslesen: • Temperatur des Board I/O Bereichs • Temperatur der CPU • Temperatur des Panels Alle Temperaturen werden vom MTCX auf dem PPC300 erfasst und zur Verfügung gestellt.
  • Seite 92: Temperatur Von Board I/O Und Cpu Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.8.1 Temperatur von Board I/O und CPU lesen Die Temperatur des Board I/O Bereichs und der CPU kann über das Baseboard TempBoard Register des MTCX (siehe Seite 28) gelesen werden. Das folgende C Codebeispiel zeigt, wie die Board I/O und CPU Temperatur gelesen werden können.
  • Seite 93: Temperatur Des Panels Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.8.2 Temperatur des Panels lesen Die Temperatur des Automation Panels (Umgebungstemperatur des Displays) kann über das Panel TempFan Register des MTCX (siehe Seite 33) gelesen werden. Das folgende C Codebeispiel zeigt, wie die Temperatur des Panels gelesen werden kann.
  • Seite 94: Lüfterdrehzahlen Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.9 Lüfterdrehzahlen lesen Auf einem PPC300 können Sie folgende Lüfterdrehzahlen auslesen: • Lüfterdrehzahl des PC • Lüfterdrehzahl des Panels Alle Lüfterdrehzahlen werden vom MTCX auf dem PPC300 erfasst und zur Verfügung gestellt. Die folgenden Codebeispiele zeigen, wie Sie auf einem PPC300 die Lüfterdrehzahlen des PC und Panels lesen können.
  • Seite 95: Lüfterdrehzahl Des Panels Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.9.2 Lüfterdrehzahl des Panels lesen Die Lüfterdrehzahl des Automation Panels kann über das Panel TempFan Register des MTCX (siehe Seite 33) gelesen werden. Das folgende C Codebeispiel zeigt, wie die Lüfterdrehzahl des Panels gelesen werden kann.
  • Seite 96: Displayfunktionen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.10 Displayfunktionen Der PPC300 wird in einem Automation Panel eingebaut. Für das Display dieses Panels können Sie folgende Funktionen ausführen • Displayhelligkeit lesen und einstellen • Displaystandardhelligkeit einstellen • Displayauflösung lesen Die folgenden Codebeispiele zeigen, wie Sie auf einem PPC300 die Displayfunktionen ausführen kön- nen.
  • Seite 97 Panel PC 300 Codebeispiele Implementierungsanleitung Hinweise: Auf dem PPC300 wird nur die Panelnummer 0 unterstützt. // Set display brightness (backlight). // Parameters PanelNumber [in] Specifies the panel number: 0 to 15. Note: PPC300 supports only panel number 0. Percent [in] Specifies the brightness in percent: 0 to 100, 101 forces the default brightness.
  • Seite 98: Displaystandardhelligkeit Einstellen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.10.2 Displaystandardhelligkeit einstellen Die Displaystandardhelligkeit (der Hintergrundbeleuchtung) des Panels kann über das Display Service Kommando des MTCX (siehe Seite 24) gelesen und eingestellt werden. Die mit diesem Kommando eingestellte Standardhelligkeit wird auch beim Booten des PC verwendet, wenn im BIOS Setup AUTO für die Helligkeit (Brightness) eingestellt ist.
  • Seite 99: Displayauflösung Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.10.3 Displayauflösung lesen Die Displayauflösung kann aus dem Virtual Extended Register VG_FP_TYPE des SoftVGA gelesen werden. Das folgende C Codebeispiel zeigt, wie die Displayauflösung (in Pixel) gelesen werden kann. // Get display resolution. // Parameters PanelNumber [in] Specifies the panel number: 0 to 15.
  • Seite 100 Panel PC 300 Codebeispiele Implementierungsanleitung *VRes = 1200; break; default: // Unknown resolution. return -1; return 0; Listing 55: GetDisplayResolution – Displayauflösung (in Pixel) lesen Copyright © B&R - Änderungen vorbehalten 02.11.09 PPC300_Implementierungsanleitung_V1_02.doc 100/132...
  • Seite 101: Tastenfunktionen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.11 Tastenfunktionen Auf einem PPC300 können jeweils bis 128 Matrixtasten vorhanden sein, die in 4 Tastenebenen bedient werden können und für die Sie folgende Funktionen ausführen können: • Tastenanzahl lesen • Tastenmatrix lesen • Schlüsselschalter lesen •...
  • Seite 102: Tastenanzahl Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.11.1 Tastenanzahl lesen Die Anzahl der unterstützen Tasten des Panels kann durch Lesen des Panel Specials Register des MTCX (siehe Seite 33) ermittelt werden. Information: Derzeit wird technisch bedingt von allen B&R Geräten, die Tasten unterstützen können, die An- zahl der Tasten mit 128 gemeldet.
  • Seite 103: Tastenmatrix Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.11.2 Tastenmatrix lesen Die Zustände der Matrixtasten des Panels können über die Panel Key Matrix[0..3] Register des MTCX (siehe Seite 36) gelesen werden. Hinweis: Die Tastenzustände können auch gelesen werden, wenn keine gültige Tastenkonfiguration im System vorhanden ist.
  • Seite 104: Schlüsselschalterzustände Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.11.3 Schlüsselschalterzustände lesen Die Zustände der Schlüsselschalter des Panels können durch Lesen des Panel Specials Register des MTCX (siehe Seite 33) gelesen werden. Die Schalterzustände können nur gelesen werden, wenn eine gültige Tastenkonfiguration im System vor- handen ist.
  • Seite 105: Scancodesperre Der Matrixtasten Lesen/Setzen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.11.4 Scancodesperre der Matrixtasten lesen/setzen Die Scancodesperre der Matrixtasten des Panels können mit dem Key Service Kommando des MTCX (siehe Seite 19) gelesen und gesetzt werden. Diese Funktion kann zum Sperren der Scancodes verwendet werden, wenn z.B. für Testzwecke die Tas- tenmatrix gelesen wird und das Betriebssystem währenddessen nicht auf Tastendrücke reagieren soll.
  • Seite 106 Panel PC 300 Codebeispiele Implementierungsanleitung // Return 0 at success and -1 at failure. int SetScanCodeLock(unsigned int PanelNumber, int Lock) MTCX_SCANCODE_LOCK_DATA data; unsigned char ErrorCode; int retvalue; // Read, modify, write scan code lock bits. retvalue = MtcxReadCommand(MTCX_CMD_KEY_SERVICE, 0, 0, MTCX_DEV_BASEBOARD, &data, sizeof(data), &ErrorCode);...
  • Seite 107: Status Der Tastenkonfiguration Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.11.5 Status der Tastenkonfiguration lesen Der Status der Tastenkonfiguration im Flashspeicher (gültig/ungültig) kann durch Lesen des Baseboard KeyState Register des MTCX (siehe Seite 29) ermittelt werden. Eine Tastenkonfiguration kann mit dem B&R Key Editor erstellt und auf das Gerät geladen werden.
  • Seite 108: Modus Der Tastenebene Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.11.6 Modus der Tastenebene lesen Der Modus der Tastenebene kann über das Baseboard KeyState Register des MTCX (siehe Seite 29) ermittelt werden. Die Tasten eines B&R Geräts können in vier verschiedenen Ebenen bedient werden, d.h. eine Taste kann bis zu vier verschiedene Tastencodes senden.
  • Seite 109: Tastenebene Lesen/Einstellen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.11.7 Tastenebene lesen/einstellen Die aktuelle Tastenebene kann über das Baseboard KeyState Register des MTCX (siehe Seite 29) ge- lesen und eingestellt werden. Die Tasten eines B&R Geräts können in vier verschiedenen Ebenen bedient werden, d.h. eine Taste kann bis zu vier verschiedene Tastencodes senden.
  • Seite 110 Panel PC 300 Codebeispiele Implementierungsanleitung Listing 64: SetKeyLayer – Tastenebene einstellen Die verwendeten Definitionen finden Sie auf Seite 42. Die aufgerufene Funktion MtcxWriteCommand finden Sie auf Seite 56. Copyright © B&R - Änderungen vorbehalten 02.11.09 PPC300_Implementierungsanleitung_V1_02.doc 110/132...
  • Seite 111: Led Funktionen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.12 LED Funktionen Auf einem PPC300 können analog zu den Matrixtasten auch jeweils bis zu 128 LEDs vorhanden sein, die in 4 Ebenen angesteuert werden können und für die Sie folgende Funktionen ausführen können: • LED Anzahl lesen •...
  • Seite 112: Led Anzahl Lesen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.12.1 LED Anzahl lesen Die Anzahl der unterstützten LEDs des Panels kann durch Lesen des Panel Specials Register des MTCX (siehe Seite 33) ermittelt werden. Information: Derzeit wird technisch bedingt von allen B&R Geräten, die LEDs unterstützen können, die Anzahl der LEDs mit 128 gemeldet.
  • Seite 113: Led Matrix Lesen/Setzen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.12.2 LED Matrix lesen/setzen Die Zustände der Matrix-LEDs des Panels können mit dem LED Service Kommando des MTCX (siehe Seite 23) gelesen und gesetzt werden. LEDs können wie die Tasten in vier verschiedenen Ebenen bedient werden.
  • Seite 114 Panel PC 300 Codebeispiele Implementierungsanleitung return 0; Listing 67: GetLedMatrix – LED Matrix lesen Das folgende C Codebeispiel zeigt, wie die gesamte LED Matrix des Panels geschrieben werden kann. Information: Diese Funktion darf nur aufgerufen werden, wenn LEDs vorhanden sind – andernfalls werden nachfolgende Kommandos vom MTCX nicht mehr bearbeitet! // Write LED matrix.
  • Seite 115 Panel PC 300 Codebeispiele Implementierungsanleitung Die verwendeten Definitionen finden Sie auf Seite 42. Die aufgerufene Funktion MtcxReadCommand finden Sie auf Seite 55. Die aufgerufene Funktion MtcxWriteCommand finden Sie auf Seite 56. Copyright © B&R - Änderungen vorbehalten 02.11.09 PPC300_Implementierungsanleitung_V1_02.doc 115/132...
  • Seite 116: Einzelne Led Lesen/Setzen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.12.3 Einzelne LED lesen/setzen Der Zustand einer einzelnen LED des Panels kann ebenfalls mit dem LED Service Kommando des MTCX (siehe Seite 21) gelesen und gesetzt werden. LEDs können wie die Tasten in vier verschiedenen Ebenen bedient werden.
  • Seite 117 Panel PC 300 Codebeispiele Implementierungsanleitung [in] Specifies the panel number: 0 to 15. Note: PPC300 supports only panel number 0. Layer [in] Specifies the layer: 0 to 3. LedNumber [in] Specifies the LED number: 0 to 127. LedState [in] Specifies the LED state: 0 = off, 1 = slow blinking, 2 = fast blinking, 3 = on.
  • Seite 118: Watchdogbedienung, Software Reset

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.13 Watchdogbedienung, Software Reset Der Watchdog ist eine Lebensüberwachung, die von einer PC Anwendung jederzeit ein- und ausgeschal- ter werden kann. Die Watchdog Überwachung wird vom MTCX auf dem PPC300 durchgeführt. Der Watchdog muss von der PC Anwendung über die MTCX Kommandoschnittstelle konfiguriert werden.
  • Seite 119: Watchdog Zeitfenster Einstellen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.13.1 Watchdog Zeitfenster einstellen Damit der Watchdog verwendet werden kann, muss als erstes mit dem Watchdog Service Kommando des MTCX (siehe Seite 24) das Zeitfenster für das Quittieren (Toggeln) des Watchdog eingestellt werden. Das Zeitfenster wird über eine Minimal- und Maximalzeit in Millisekunden angegeben. Im Normalfall wird die Minimalzeit mit 0 Millisekunden eingestellt.
  • Seite 120 Panel PC 300 Codebeispiele Implementierungsanleitung MTCX_WATCHDOG_CONFIG_DATA data; int retvalue; unsigned char ErrorCode; data.MinTime = MinTime; data.MaxTime = MaxTime; retvalue = MtcxWriteCommand(MTCX_CMD_WDOG_SERVICE, 0, 0, MTCX_DEV_BASEBOARD, &data, sizeof(data), &ErrorCode); if (retvalue != MTCX_OKAY) // TODO: add your error handling here return -1;...
  • Seite 121: Watchdog Toggeln

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.13.2 Watchdog toggeln Nachdem das Zeitfenster des Watchdog eingestellt wurde, kann der Watchdog durch erstmaliges Be- schreiben des Toggle Bit im Baseboard Support Register aktiviert werden. Anschließend muss das Toggle Bit innerhalb des konfigurierten Zeitfensters beschrieben werden, bis der Watchdog durch Einstel- len eines neuen Zeitfensters wieder deaktiviert wird.
  • Seite 122: Anwenderfunktionen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.14 Anwenderfunktionen Auf einem PPC300 wird die Vergabe einer User Serial ID unterstützt. Die User Serial ID ist ein 32 Bit großer, frei definierbarer Wert. Mit der User Serial ID können Sie das verwendete B&R Gerät mit Ihrer ei- genen Erkennungsnummer versehen.
  • Seite 123 Panel PC 300 Codebeispiele Implementierungsanleitung The PC must be rebooted to take over the new User Serial ID. int SetUserSerialId(unsigned long Id) MTCX_ID_SERVICE_DATA data; int retvalue; unsigned char ErrorCode; data.Reserve = 0; data.User = Id; retvalue = MtcxWriteCommand(MTCX_CMD_DEVICE_INFO, 0, 0, MTCX_DEV_BASEBOARD, &data, sizeof(data), &ErrorCode);...
  • Seite 124: User Led Lesen/Setzen

    Panel PC 300 Codebeispiele Implementierungsanleitung 7.14.2 User LED lesen/setzen Die User LED befindet sich bei einem PPC300 auf der Rückseite des Gerätes. Die User LED kann über das Baseboard Specials Register des MTCX (siehe Seite 30) gelesen und eingestellt werden.
  • Seite 125 Panel PC 300 Codebeispiele Implementierungsanleitung // Parameters State [in] Specifies the LED state: 0 = off, 1 = on. // Return 0 at success and -1 at failure. int SetUserLed(int State) MTCX_BASEBOARD_SPECIALS_REG reg; *(unsigned long*)&reg = READ_PORT_ULONG(MTCX_BASEBOARD_SPECIALS_ADDR); // User LED is working as Power LED? if (reg.UserLedMode == 0)
  • Seite 126: Abbildungsverzeichnis

    Panel PC 300 Abbildungsverzeichnis Implementierungsanleitung 8 Abbildungsverzeichnis Abbildung 1: MTCX Kommandobearbeitung....................13 Abbildung 2: Watchdog Zeiten ........................118 Copyright © B&R - Änderungen vorbehalten 02.11.09 PPC300_Implementierungsanleitung_V1_02.doc 126/132...
  • Seite 127: Tabellenverzeichnis

    Panel PC 300 Tabellenverzeichnis Implementierungsanleitung 9 Tabellenverzeichnis Tabelle 1: Versionsstände..........................2 Tabelle 2: Gestaltung von Sicherheitshinweisen ..................2 Tabelle 3: MTCX Registerübersicht ......................8 Tabelle 4: MTCX Configuration Register Übersicht ..................8 Tabelle 5: MTCX Version Register........................9 Tabelle 6: MTCX Config COM Register ......................9 Tabelle 7: MTCX Config Specials Register....................10...
  • Seite 128 Panel PC 300 Tabellenverzeichnis Implementierungsanleitung Copyright © B&R - Änderungen vorbehalten 02.11.09 PPC300_Implementierungsanleitung_V1_02.doc 128/132...
  • Seite 129: Listingverzeichnis

    Panel PC 300 Listingverzeichnis Implementierungsanleitung 10 Listingverzeichnis Listing 1: Beispielimplementierung der READ_PORT_x und WRITE_PORT_x Funktionen ......38 Listing 2: Beispielimplementierung der READ_REGISTER_UCHAR Funktion ..........39 Listing 3: swapw – 2-Byte Wert swappen ....................40 Listing 4: swapl – 4-Byte Wert swappen .....................40 Listing 5: Definitionen für MTCX Schnittstelle .....................47 Listing 6: Fehlercodes der MTCX Schnittstellenfunktionen ................48...
  • Seite 130 Panel PC 300 Listingverzeichnis Implementierungsanleitung Listing 53: SetDisplayBrightness – Displayhelligkeit einstellen ..............97 Listing 54: SetDisplayDefaultBrightness – Displaystandardhelligkeit einstellen.........98 Listing 55: GetDisplayResolution – Displayauflösung (in Pixel) lesen ............100 Listing 56: GetKeyCount – Tastenanzahl lesen ..................102 Listing 57: GetKeyMatrix – Tastenmatrix lesen..................103 Listing 58: GetKeySwitches –...
  • Seite 131: Stichwortverzeichnis

    Panel PC 300 Stichwortverzeichnis Implementierungsanleitung 11 Stichwortverzeichnis Schlüsselschalterzustände lesen....104 Seriennummer des Panels lesen ....83 Seriennummer des PC lesen ......73 Abbildungsverzeichnis........126 Software Reset..........121 Anwenderfunktionen.........122 Status der Tastenkonfiguration lesen ...107 Tastenanzahl lesen ........102 Tastenebene lesen/einstellen .......109 Tastenmatrix lesen........103 Codebeispiele.............40 Temperatur der CPU lesen ......92 2-Byte Wert swappen........40...
  • Seite 132 Panel PC 300 Stichwortverzeichnis Implementierungsanleitung MTCX Configuration Register.......8 MTCX Kommandobearbeitung......13 Panelfunktionen ..........57 MTCX Kommandos ..........14 Device Info ............16 Display Service ..........24 Flash / EPROM Service ........21 READ_PORT_x, WRITE_PORT_x ....38 Key Layer............18 READ_REGISTER_x..........39 Key Service.............19 LED Service ............23 Statistics Info...........22 Version Info.............15 Sicherheitshinweise ..........2...