Deutsch

79
SOFTING GmbH Richard-Reitzner-Allee 6 85540 Haar Tel.: 089/45656-0 Fax: 089/45656-499 INPA.DOC Version 2.5 INPA Interpreter für Prüfabläufe Benutzerdokumentation Autoren: Georg Luderböck Michael Koch Roland Stadtmüller Daniel Frey Datum: 07.01.2003

description

instruction

Transcript of Deutsch

  • SOFTING GmbH Richard-Reitzner-Allee 685540 HaarTel.: 089/45656-0 Fax: 089/45656-499

    INPA.DOC Version 2.5

    INPA

    Interpreter fr Prfablufe

    Benutzerdokumentation

    Autoren:Georg Luderbck

    Michael KochRoland Stadtmller

    Daniel Frey

    Datum: 07.01.2003

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 2

    1 Einleitung

    Bei der Einfhrung von neuen Steuergerten oder Steuergertevarianten in der Fertigung mu fr dieBehandlung von Problemfllen ein Diagnoseprogramm fr dieses Steuergert, z.B. fr die Nacharbeit,bereitgestellt werden. Bisher erfolgte dies durch eine Erweiterung der Diagnoseprogramme, die fr denEinsatz im Kundendienst entwickelt wurden.

    Um auf die Anforderungen im Werk flexibler und vor allem schneller reagieren zu knnen, wurdezunchst ein Prototyp, spter dann in der Ausbaustufe 1 ein eigenstndiges Prfablaufsystementwickelt, das es einem geschulten Bearbeiter vor Ort ermglicht, Nacharbeitsprogramme fr dasWerk zu entwickeln.

    Diese Nacharbeitsprogramme werden in einer Prfablauf-Beschreibungssprache formuliert, diewiederum in der jetzt vorliegenden Ausbaustufe 2 um die Anforderungen fr einen mglichstuniversellen Anwendungsbereich erweitert wurde. Das hier beschriebene Ablaufsystem INPA(INterpreter fr PrfAblufe) zeichnet sich durch die folgenden Eigenschaften aus:

    leicht zu erlernen

    sofortige Kontrolle des erzeugten Prfprogramms durch interaktiven Entwurf

    komfortable Mglichkeiten zur Bildschirmausgabe

    komfortable Mglichkeiten zur Ablaufsteuerung

    einfache Mglichkeit zur Formulierung von quasi-simultanen Aktionen

    umfangreiche Bibliothek mit Standardfunktionen, z.B.- Konfiguration des Bildschirmlayouts (Vorder- und Hintergrundfarbe, Schriftgre)- Konfiguration von Melde-Fenstern- Ausgabe auf Drucker- Bildschirmabzge- Dateizugriffe- String- und Umrechnungsfunktionen- Standard Schnittstelle (mit und ohne Ergebnisauswertung durch das INPA-System) zumElektronikDIAgnose-BAsis-System (EDIABAS)

    Entsprechend dem vorgesehenen Einsatzbereich des INPA erfolgt der Zugriff auf Informationen desFahrzeugs (bzw. des zu diagnostizierenden Steuergerts) ber das Elektronikdiagnose-Basis-SystemEDIABAS und ber die EDIC Hardware.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 3

    1.1 Inhaltsverzeichnis

    1 EINLEITUNG ........................................................................................................................................ 2

    1.1 Inhaltsverzeichnis.................................................................................................................. 3

    2 BERSICHT ......................................................................................................................................... 5

    2.1 nderungsstand .................................................................................................................... 6

    3 SYSTEMBESCHREIBUNG.................................................................................................................. 8

    4 INSTALLATION UND KONFIGURATION.......................................................................................... 11

    4.1 Installation............................................................................................................................ 114.1.1 Voraussetzung fr den Betrieb des Interpreters....................................................... 114.1.2 Dateien nach der Installation .................................................................................... 114.1.3 Einrichten des Interpreters ....................................................................................... 12

    4.2 Konfiguration ....................................................................................................................... 124.2.1 Allgemeine Programmkonfiguration ......................................................................... 134.2.2 Strukturierte Scriptauswahl....................................................................................... 164.2.3 Fehlerausblenddateien (nicht mehr untersttzt) ....................................................... 18

    4.2.3.1 Allgemeines................................................................................................. 184.2.3.2 Format und Inhalt ........................................................................................ 184.2.3.3 Verarbeitung in INPA................................................................................... 214.2.3.4 Beispiel........................................................................................................ 224.2.3.5 Beispiel AAB.FAB........................................................................................ 24

    4.2.4 Kommandozeilenoptionen........................................................................................ 26

    5 PRFABLAUFBESCHREIBUNGSDATEIEN .................................................................................... 27

    5.1 Dateistruktur ........................................................................................................................ 275.1.1 Pragmas ................................................................................................................... 275.1.2 Includes .................................................................................................................... 285.1.3 Importierte Funktionen ............................................................................................. 285.1.4 Externe Funktionsdeklarationen............................................................................... 295.1.5 Globale Datendefinitionen ........................................................................................ 305.1.6 Prfablaufbeschreibung ........................................................................................... 30

    5.2 Ablaufprinzip von Prfungen ............................................................................................. 305.3 Sprachelemente ................................................................................................................... 32

    5.3.1 Benutzerdefinierte Funktionen.................................................................................. 335.3.2 Importierte Funktionen ............................................................................................. 335.3.3 Bildschirmanzeige .................................................................................................... 365.3.4 Mensteuerung......................................................................................................... 385.3.5 Statemachines.......................................................................................................... 39

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 4

    5.3.6 Logiktabellen ............................................................................................................ 415.3.7 Kontrollstrukturen ..................................................................................................... 425.3.8 Funktionen der Standardbibliothek........................................................................... 44

    6 SOFTWARESTRUKTUR.................................................................................................................... 61

    6.1 Parser.................................................................................................................................... 626.2 Datenverwaltung.................................................................................................................. 636.3 Objektverwaltung ................................................................................................................ 636.4 Interpreter............................................................................................................................. 636.5 Libraryfunktionen und externe DLLs ............................................................................... 646.6 INPA-Localization-Support-DLLs....................................................................................... 646.7 Verwendete Entwicklungstools.......................................................................................... 64

    7 ANHANG A SPRACHDEFINITION .................................................................................................... 65

    8 ANHANG B BEISPIEL FR EINE PRFABLAUFBESCHREIBUNG ............................................... 72

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 5

    2 bersicht

    Das vorliegende Dokument dient dem Systemverstndnis zum Interpreter fr Prfablufe (INPA); derLeser dieser Benutzerdokumentation erhlt im Kapitel 3 einen berblick ber die mglichenAnwendungsgebiete und ber die fr den Benutzer sichtbaren Komponenten des INPA.

    Kapitel 5 beschreibt den Aufbau von Prfablaufbeschreibungsdateien, den prinzipiellen Ablauf vonPrfungen und die zur Beschreibung (und zur Ausfhrung) von Prfungen zur Verfgung stehendenSprachelemente (z.B. auch die Funktionen der Standardbibliothek). Damit wird der Leser in die Lageversetzt, Prfungen in einer Prfablauf-Beschreibungssprache zu formulieren und ablaufen zu lassen.Die Auflistung der Sprachelemente im Unterkapitel 5.3 ist auch zum Nachschlagen gedacht.

    Das Kapitel 6 gibt einen groben berblick ber die Softwarestruktur und die Komponenten des INPAAblaufsystems. Dieses Kapitel soll im Hinblick auf Softwarepflegemanahmen dieGrobzusammenhnge der Moduln erlutern.

    Diese INPA Benutzerdokumentation richtet sich an

    Mitarbeiter aus Abteilungen der Fa. BMW, die Prfablufe in der Fertigung in eigenerVerantwortung festlegen oder abndern

    Mitarbeiter aus Abteilungen der Fa. BMW, die Prfablufe im Labor festlegen

    Softwareentwickler, die fr die INPA Systempflege zustndig sind

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 6

    2.1 nderungsstand

    Ersterstellung Version 1.0, 20.09.1993

    berarbeitung V1.1 06.10.1993:Kapitel 2: eingefgtKapitel 3.3.7: Textformatierungen nher erlutert

    berarbeitung V1.2, 02.02.1994:Kapitel 3.3.7: DTM-Funktionen und Stringarrayfunktionen aufgenommen

    Hexdump-Beschreibung aktualisiertKapitel 3.3.2: 2. Parameter bei LINE-Konstrukt und setscreen-Funktion beschrieben

    berarbeitung V1.3, 08.07.1994:Kapitel 1: Systemstruktur und Beschreibung aktualisiertKapitel 2.1: Dateistruktur aktualisiertKapitel 2.2: Beschreibung der Konfigurationsdateien aktualisiertKapitel 3.1.1: neues Kapitel zur Beschreibung der pragmas aufgenommenKapitel 3.1.2: Beschreibung des Include-Mechanismus und der Scriptstruktur

    aktualisiertKapitel 3.3.3: zweite Funktionstastenebene beschriebenKapitel 3.3.7: Beschreibung der Bibliotheksfunktionen aktualisiertKapitel 4: INPA-Localization-Support beschriebenAnhang A: Sprachdefinition aktualisiert (Programmstruktur, pragma)Anhang B: Parametrierung bei analogout aktualisiert

    berarbeitung V1.4, 17.03.1995:Kapitel 2: Einarbeitung der neuen KonfigurationKapitel 3.7: Einarbeitung RK512-Funktionen

    Erweiterung DTM-FunktionenErsetzung sgselect durch scriptselectFunktion GetBinaryDataStringFunktion printfileFunktion calldos entfernt

    berarbeitung V1.5, 16.01.1996:Kapitel 2.2.1: Erweiterung der Setup-EinstellungenKapitel 3.2.3: FabdateienKapitel 3.3.7: Einarbeitung der neuen INPAapiFsLesen-Funktion und des Modes

    0x40Einarbeitung der INPAapiFsLesen2-FunktionEinarbeitung der ELDIStartOpenDialog-Funktionnderung der togglelist-Funktion

    Kapitel 4.2.3: AufgenommenKapitel 4.2.1: Sprache heit ENGLISCH

    berarbeitung V1.6, 03.04.1996:Kapitel 2.2.1: Ergnzung der Setup-EinstellungenKapitel 5.3.7: Funktionen

    fileread, Delay, stringtoreal, stringtoint, inttoreal, realtointaufgenommenFunktion fileopen um r-Parameter ergnztIS_LESEN-Sonderbehandlung eingefgt

    Kapitel 4.2.4: Kapitel Kommandozeilenoptionen aufgenommen

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 7

    berarbeitung V1.7, 28.05.1996:Kapitel 5.3.7: Funktion 'Delay' heit jetzt 'delay'

    berarbeitung V1.8, 05.06.1996:Kapitel 4.1.2: Dateinamen ergnztKapitel 5.3.7: Funktion 'Delay' heit jetzt wirklich 'delay'; Funktion 'stringtoint'

    angepasst; Grenzwert fr Min-Real angepasst; Defaultwert frINPAapiFsMode verbessert.

    berarbeitung V1.9, 30.07.1996:Kapitel 5.3.7: Funktionen 'getdate' und 'gettime' ergnztKapitel 4.1.2: File 'commdlg.dll' wird nicht mehr ausgeliefert

    berarbeitung V2.0, 17.02.1997:Kapitel 4.2.1: Konfiguration 'Splittingfile' ergnztKapitel 5.1.3 Kapitel "importierte Funktionen" eingefgtKapitel 5.1.5 Neue Datentypen eingefgtKapitel 5.3.1 Neue Datentypen eingefgtKapitel 5.3.2 Kapitel "importierte Funktionen" eingefgtKapitel 5.3.7 binre Verknpfungen ergnztKapitel 5.3.8 Speichermanipulationsroutinen ergnzt

    Funktionen. multianalogout, scriptchange und setitem ergnzt

    berarbeitung V2.1, 10.03.1997:Kapitel 4.1.2: Dateinamen gelscht/ergnztKapitel 5.3.8: Ergnzungen zur Funktion 'scriptchange'

    berarbeitung V2.2, 27.03.1997:Kapitel 6.7: Kompilernamen angepasstKapitel 5.3.8: Ergnzungen zur Funktion 'delay'

    berarbeitung V2.2, 11.04.1997:Kapitel 4.2.1: Konfiguartionseinstellung Dekodiertabellen angepasst

    berarbeitung V2.3, 11.02.1998:( nicht geliefert)Kapitel 5.3.8: DTM-Aufrufe geben Leerstrings zurck

    berarbeitung V2.4, 20.07.1999Neu formatiert

    berarbeitung V2.5, 12.11.200232 Bit Portierung von INPAKapitel 3: Keine ELDI-Anbindung mehrKapitel 5.1.3: 32-Bit DLLsKapitel 5.3.2: 32-Bit DLLsKapitel 5.3.8: neue Funktion setitemrepeat

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 8

    3 Systembeschreibung

    Das System INPA basiert auf WINDOWS (95, NT oder hher) und setzt deshalb zum problemlosenBetrieb einen PC 80386 (oder hher) mit 32 MB RAM (oder mehr) voraus. Desweiteren ist alsHardware Schnittstelle zum Fahrzeug, oder zu einem Steuergert, ein Enhanced Diagnostic InterfaceComputer (EDIC) vorgesehen.Die Kommunikation mit dem EDIC wird ber das Elektronikdiagnose-Basis-System abgehandelt, dasals Dynamic- Link-Library (DLL) zur Verfgung stehen mu.

    Typische Anwendungsgebiete fr INPA sind:

    Nacharbeitsprogramme, d.h. Stand Alone Programme zum Diagnostizieren eines einzelnenSteuergerts

    "schnelle Tests", d.h. Prfablufe die nur einmal oder wenige Male verwendet werden oderhufigen nderungen unterliegen, (z.B. Untersuchungen in der Entwicklung oder im Labor)

    Einbindung von ELDI Ablufen (ELDI ist 16 Bit) ist ab der INPA-Version 5.0.0 (32-Bit) nicht mehrmglich.

    Die Entwicklung von Prfablaufprogrammen erfolgt durch einen geschulten Bearbeiter vor Ort, demdazu eine entsprechend flexible Beschreibungssprache an die Hand gegeben wird. Mit einem(beliebigen) ASCII Editor werden dabei Prfablaufbeschreibungsdateien in der vorgenanntenBeschreibungssprache fr Prfablufe erstellt.

    Zur Laufzeit des INPA werden diese Beschreibungsdateien interpretativ abgearbeitet, wobei sich dasSystem auf die in Abbildung 1 schematisch dargestellten Komponenten sttzt.

    Um die Ladezeiten fr die Prfablaufbeschreibungsdateien zu verkrzen und um den Speicherbedarfzu minimieren wurde das INPA Sytem so implementiert, da es in konfigurierbaren Modi betriebenwerden kann, nmlich als:

    Integriertes System zum interaktiven Entwickeln von Prfablaufbeschreibungen und zumCompilieren der erzeugten Beschreibungen, so da diese zur Laufzeit des INPA mit minimalemZeit- und Speicheraufwand geladen und abgearbeitet werden knnen.

    INPA Loader zum Laden und Abarbeiten von vorcompilierten Prfablaufbeschreibungsdateien. DieKonfiguration INPA Loader wird am Einsatzort der Prfung verwendet.

    Das INPA System ermglicht, beliebige in der Prfablaufbeschreibungssprache (PABS) beschriebenePrfablufe ablaufen zu lassen; dies bedeutet fr die Prfungen:

    es knnen automatische Ablufe oder vom Benutzer ber die Tastatur gesteuerte Ablufeformuliert werden

    Prfergebnisse (oder andere Ausgaben) knnen auf dem Bildschirm oder in eine Datei (Protokoll)ausgegeben werden, oder sie knnen als Rckgabewert an ein aufrufendes Programmzurckgegeben werden

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 9

    Die in den Prfablaufbeschreibungsdateien (in PABS) formulierten Prfablufe enthaltentypischerweise folgende Aufgaben:

    - Beschreibung des Prfablaufbaumes durch eine Mensteuerung- Aufbau der Kommunikation mit einem Steuergert- Abfrage von Daten von einem Steuergert- Auswerten der Daten (Ergebnisse)- Verknpfen von mehreren Ergebnissen- Darstellen der (verknpften) Ergebnisse auf dem Bildschirm

    Daneben stellt die PABS noch Elemente zur Beschreibung des Bildschirmlayouts (Farben, Schrift),Kontrollstrukturen, wie Boolsche Operationen, bedingte Anweisungen und Schleifen zur Auswertungund Anzeige von Ergebnissen bereit.

    Komponenten des INPA:

    DLLDLL

    Abbildung 1

    Wie in Abbildung 1 dargestellt, besteht der Interpreter fr Prfablufe (INPA) aus mehrerenKomponenten und sttzt sich auch auf Dynamic Link Libraries (z.B. EDIABAS, Protokoll- und EtikettenManager sowie Lokalisierungs-DLL fr Mehrsprachlichkeit), die am vorgesehenen Einsatzort z.T. aus

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 10

    anderen Diagnosesystemen zur Verfgung stehen. Fr Einsatzorte, an denen diese DLLs nichtbereits vorhanden sind, knnen diese unverndert bernomen werden.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 11

    4 Installation und Konfiguration

    4.1 Installation

    4.1.1 Voraussetzung fr den Betrieb des Interpreters

    Zum Betrieb des Interpreters mu EDIABAS instaliert sein.

    4.1.2 Dateien nach der Installation

    README : Datei mit allgemeinen Informationen zur InstallationsdisketteREADME.xyz : versionsspezifisches Readme zu INPA Vx.y.z

    Verzeichnis BIN

    INPA.EXE : Interpreter fr Prfablufe, integriertesSystem mit Compiler, Loader und Interpreter

    INPACOMP.EXE : Compiler fr ScriptdateienINPALOAD.EXE : Laufzeitsystem mit Loader und InterpreterINPAGER.DLL : Fremdsprachenuntersttzung DeutschINPAUS.DLL : Fremdsprachenuntersttzung EnglischBRIDGE16.EXE : 16-Bit Programm, welches als Schnittstelle

    zwischen der INPA Laufzeitumgebung und16-Bit DLLs dient

    EDIERROR.TXT : Deutsche Sprachuntersttzung fr EDIABAS

    Verzeichnis CFGDAT

    INPA.INI : Konfigurationsdatei fr INPA ToolsINPASCR.INI : Scriptauswahldatei fr INPA und INPALOADSTARTGER.IPS : Startupscript fr Interpreter (Source), DeutschSTARTUS.IPS : Startupscript fr Interpreter (Source), EnglischSTARTGER.IPO : Startupscript fr Interpreter (Object), DeutschSTARTUS.IPO : Startupscript fr Interpreter (Object), Englisch

    Verzeichnis HELP

    INPAHELP.HLP : Windows-Hilfedatei zu INPA

    Verzeichnis PRT

    *.ini : Drucker-InitialisierungsdateienINPADOS.DMF : Druckmaskendatei fr INPA-Bildschirmabzge ber PEMINPAWIN.DMF : Druckmaskendatei fr INPA-Bildschirmabzge ber Windows-Standarddrucker./ENGLISCH bzw.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 12

    ./DEUTSCH : Sprachabhngige Versionen des:E3ETIKET.DMF : Etiketten-Druckmaskenfile (wird PEM-intern verwendet)E3PROTOK.DMF: Protokoll-Druckmaskenfile (wird PEM-intern verwendet)

    Verzeichnis TRACE

    (enthlt die Temporrdatei fr INPA-Bildschirmabzug bei Betrieb ohne Drucker)("DRUCKER=NEIN" in INPA-Konfigurationsdatei)

    Verzeichnis SGDAT

    INPA.H : Headerdatei mit Prototypes der INPA-Bibliotheksfunktionen

    (enthlt zustzlich die Scriptdateien des Anwenders)

    Verzeichnis DEMO

    (enthlt optional Demodateien zu speziellen INPA-Funktionen)

    4.1.3 Einrichten des Interpreters

    Die Installation erfolgt durch Aufruf von setup.exe unter Windows.Bei der Installation ist der Zielpfad anzugeben (Default: c:\inpa).

    4.2 Konfiguration

    Die Konfiguration von INPA erfolgt mit Hilfe von zwei Konfigurationsdateien, die im Verzeichnis.\CFGDAT enthalten sind:

    Konfigurationsdatei ..\CFGDAT\inpa.ini bestimmt die Konfiguration fr die INPA Tools Konfigurationsdatei ..\CFGDAT\inpascr.ini dient als Default-Scriptauswahldatei fr INPA und

    INPALOAD

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 13

    4.2.1 Allgemeine Programmkonfiguration

    Die allgemeine Konfiguration der INPA-Tools erfolgt mit Hilfe der Konfigurationsdatei inpa.ini.Diese hat folgenden Aufbau (Bsp.):

    [FAB]FABDATEIEN= \INPA\FAB

    [ENVIRON]DRUCKER=NEINNETZ=NEINBARCODE=NEINPEM=JADTM=JANETZDATEN=\inpa\bin\net.datDECODIERTABELLE_D_ALLE=c:\WINELDI\CFGDATEN\FP_D.DETDECODIERTABELLE_E_E36=c:\WINELDI\CFGDATEN\FP_E_36.DETSPLITTINGFILE=.. ..\CFGDAT\SPLIT.DET

    LANGUAGE=DEUTSCHEDITOR=DOSSCRIPTSELECT=LISTDEFINI=inpascr.ini

    Die Konfigurationsdateien haben das Format von Windows-INI-Dateien. Sie enthalten verschiedeneSektionen, deren Namen in eckigen Klammern stehen (Beispiel: [ENVIRON]), in denen verschiedeneEintrge enthalten sind. Diese haben folgende Bedeutung:

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 14

    Sektion [ENVIRON]:

    Druckereinstellungen fr Bildschirmabzge:DRUCKER=WIN - Bildschirmabzge werden ber den Windows-Druckmanager auf

    dem konfigurierten Windows-Standarddrucker ausgegeben.DRUCKER=PEM - Bildschirmabzge werden auf dem angeschlossenen WinEldi-

    Drucker ausgegebenDRUCKER=JA - Bildschirmabzge werden auf dem angeschlossenen WinEldi-

    Drucker ausgegebenDRUCKER=NEIN - Bildschirmabzge werden in die Datei .\TRACE\p.trc ausgegeben

    und knnen mit einem DOS-View-Programm angezeigt werden

    Einstellung der WINELDI-Protokollierung:PEM=JA - Aktiviert den Protokoll-Etiketten-Manager.

    Einstellungen fr den DatenTabellenManager(wird ab Version 5.0.0 nicht mehr untersttzt):DTM=NEIN - DTM ist eine Funktionalitt von Eldi, welches ab Version 5.0.0 nicht

    mehr untersttzt wird. Daher ist DTM=NEIN gleich zu setzen (bzw.aus der Ini-Datei komplett zu streichen), andernfalls erfolgt einWarnhinweis beim Start von INPA.

    Einstellung der Mehrsprachlichkeit:LANGUAGE=DEUTSCH - Programmtexte und -meldungen in deutscher SpracheLANGUAGE=ENGLISCH - Programmtexte und -meldungen in englischer Sprache

    Defaulteinstellung des verwendeten Editortyps:EDITOR=DOS - Scriptbearbeitung mit DOS-Editor als DefaulteinstellungEDITOR=WIN - Scriptbearbeitung mit Windows-Editor als Defaulteinstellung

    Einstellungen fr INPA und INPALOAD unter Verwendung des WINELDI-Eingangshandlers(wird ab Version 5.0.0 nicht mehr untersttzt):NETZDATEN=\inpa\bin\net.dat - Name Einstellungsdatei fr den Netzzugriff auf die AuftragsdatenDECODIERTABELLE_D_Alle= - Dekodiertabellen frAuftragsdatendekodierungDECODIERTABELLE_E_E36= - Dekodiertabellen fr AuftragsdatendekodierungSPLITTINGFILE= - Auftrennungsvorschrift fr Dekodierung (notwendig)

    ( Die genannten Eintrge sind Defaulteintrge und nur relevant, wenn der Eingangshandler von INPA bzw. INPALOAD aufgerufen wird )

    Art der Scriptauswahl fr INPA (nicht wirksam fr INPALOAD!):SCRIPTSELECT=LIST - Scriptauswahl ber Auswahlliste entsprechend der jeweiligen

    ScriptauswahldateiSCRIPTSELECT=DIALOG - Scriptauswahl ber einen Standarddialog

    Default-Scriptauswahldatei fr INPA und INPALOAD:DEFINI=inpascr.ini - Name der Default-Scriptauswahldatei im Verzeichnis .\CFGDAT

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 15

    Die brigen Eintrge dieser Sektion werden zur Zeit nicht verwendet und sollen unverndertbleiben.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 16

    4.2.2 Strukturierte Scriptauswahl

    Die Aktivierung der Scriptauswahl erfolgt durch die Funktion "scriptselect", welche alsFunktionsparameter den Namen der bei der Scriptauswahl zu verwendenden INI-Datei erhlt. Wirdhierbei ein Leerstring "" angegeben, so wird der in der Konfigurationsdatei unter dem Eintrag DEFINIenthaltene Name verwendet. Alle INI-Dateien zur Scriptauswahl mssen sich im Verzeichnis ".\cfgdat"befinden, der dazugehtige Pfad wird automatisch generiert.Die Strukturierung der Scriptauswahl erfolgt durch Aufteilung auf entsprechende Sections in derScriptauswahldatei. Die Sectionnamen knnen frei gewhlt werden, drfen allerdings keinenUnterstrich "_" enthalten, da dieser als Trennzeichen zwischen den Hierarchieebenen verwendet wird.Die Reihenfolge der Sections mu nach dem Top-Down-Prinzip erfolgen. Jede Section kann folgendeEintrge enthalten:

    DESCRIPTION=enthlt den Text, der in der Scriptauswahlstruktur dargestellt wird

    ENTRY=enthlt den Basisnamen der Scriptdatei (also OHNE Extension) und den Text,der in derScriptauswahlstruktur dargestellt wird. Die beiden Eintrge werden durch ein Kommagetrennt.

    Beispiel:

    Aufbau des folgenden Baumes:

    FahrzeugeBaureihe 1

    Steuergert 1Steuergert 2

    Baureihe 2Sonderprfungen

    KurztestSteuergert 3Steuergert 4

    Baureihe 3Steuergert 5Steuergert 6

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 17

    Dazu folgende Eintrge in der Scriptauswahl-Datei:

    [ROOT]DESCRIPTION=Fahrzeuge

    [ROOT_BAUREIHE1]DESCRIPTION=Baureihe 1ENTRY=sg1,Steuergert 1ENTRY=sg2,Steuergert 2

    [ROOT_BAUREIHE2]DESCRIPTION=Baureihe 2ENTRY=sg3,Steuergert 3ENTRY=sg4,Steuergert 4

    [ROOT_BAUREIHE2_SONDER]DESCRIPTION=SonderprfungenENTRY=kurztst,Kurztest

    [ROOT_BAUREIHE3]DESCRIPTION=Baureihe 3ENTRY=sg5,Steuergert 5ENTRY=sg6,Steuergert 6

    Im Beispiel ist dem Steuergert 1 die Scriptdatei "sg1.ips" fr den Interpreter bzw. "sg1.ipo" fr denLoader zugeordnet.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 18

    4.2.3 Fehlerausblenddateien (ab Version 5.0.0 nicht mehr untersttzt)

    4.2.3.1 Allgemeines

    Fehlerausblendung ist eine Teilfunktionialitt von Eldi und wird ab Version 5.0.0 nicht mehr untersttzt.

    Fr jede SG-Variante, fr die ein oder mehrere Fehler ausgeblendet werden sollen, mu jeweils eineeigene Fehlerausblenddatei existieren. Der Pfad auf die Fehlerausblenddateien wird in der Sektion[FAB] unter dem Eintrag FABDATEIEN= in der INPA.INI angegeben.

    4.2.3.2 Format und Inhalt

    Eine Fehlerausblenddatei fr eine SG-Variante hat den Namen

    .FAB

    wobei identisch sein mu mit dem Namen der zugehrigen SG-Variante bzw. dem Namen derSG-Beschreibungsdatei.

    Die neuen Fehlerausblenddateien haben folgendes Format und Inhalt:

    ; Kommentare sind durch ";" in der ersten Spalte gekennzeichnet

    ; ***** FAB-Section *******************************************************[FAB]Fehler=[ ...]

    ; ***** F-ORT-NR-Section **************************************************[]

    ; Auflistung der Ausblendbedingungen[AB=[ ...]]

    ; ***** AB-Section ********************************************************[]Bed1=Bed2=...Bedn=

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 19

    Beschreibung der Sections und deren Elemente:

    FAB-Section [FAB]:

    Fehler= Schlsselwort zur Kennzeichnung des Eintrags der auszublendenden Fehler

    Fehlernummer

    AB-Section []:

    Section, in der Ausblendbedingungen definiert sind, die alle erfllt sein mssen, damit ein Fehlerausgeblendet wird (Verundung)..

    Name der Section

    Bed1= Schlsselwort zur Kennzeichnung des Eintrags fr die1. Ausblendbedingung.

    Bed2= Schlsselwort zur Kennzeichnung des Eintrags fr die2. Ausblendbedingung.

    ....

    AB Beschreibungen :

    Im folgenden werden die vier Mglichkeiten zur Formulierung von Ausblendbedingungen beschrieben:

    1. AAB : Auftragsbezogene Ausblendbedingungen (Barcodemuster) :

    AAB [ ...]

    AAB Schlsselwort zur Kennzeichnung einer auftragsbezogenenAB-Bedingung

    Nummer der auftragsbezogenen Ausblendbedingung, die in der Datei AAB.FAB definiert wird. Eine auftragsbezogene Ausblendbedingung ist erfllt wenn mindestens eine der AAB_nr-Bedingungen erfllt ist (Veroderung).Format der AAB.FAB siehe Beispiel im Anhang.

    Es wird geprft, ob die aktuellen Auftragsdaten die Bedingungen erfllen. Bei nicht vorhandenenAuftragsdaten, z.B. an einem Nacharbeitsstand, gilt die Bedingung als nicht erfllt.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 20

    2. FS-LESEN : Ergebnisse des Jobs FS_LESEN

    FS_LESEN ...... ""

    FS_LESEN Schlsselwort zur Kennzeichnung von Bedingungen, die sich auf Ergebnisse des Jobs FS_LESEN beziehen

    Typ des Ergebnisses. Mgliche Werte:APIBINARY, APILONG, APICHAR, APIBYTE,APIDWORD, APIINTEGER, APIREAL, APITEXT und APIWORD

    Ergebnisname des Jobs FS_LESEN, z.B. F_UW1_WERT.

    Je nach sind folgende Operatoren mglich:< : kleiner> : grer== : gleich!= : ungleich

    Je nach werden die hier eingegebenen Zeichen als numerische Werte oder als String interpretiert.Eintrag mu innerhalb von " ... " stehen !

    Es wird geprft, ob der aus dem Steuergert mit FS_LESEN ausgelesene Wert des Ergebnisses die Bedingung erfllt.

    3. AUFTRAG : Symbolische auftragsbezogene Ausblendbedingungen

    AUFTRAG

    AUFTRAG Schlsselwort zur Kennzeichnung eines Auftragsdatum-Eintrags.

    Auftragsdatenname, wie er in der Decodiertabelle (DET) steht(Auftragsziel 'A' oder 'B')

    Sollwert, wie er in der Decodiertabelle (DET) steht, bzw. bei derAuftragsdatendecodierung generiert wird.

    Es wird verglichen, ob das Auftragsdatum den hat. Bei nichtvorhandenen Auftragsdaten, z.B. an einem Nacharbeitsstand, gilt die Bedingung als nicht erfllt.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 21

    4. JOB : Ergebnisse beliebiger Jobs

    JOB "" ...... ...... ""]

    JOB Schlsselwort zur Kennzeichnung eines Job-Eintrags.

    Name der Steuergerte-Beschreibungsdatei ohne Extensionz.B. KOMBI36 oder D_0010

    Name des aufzurufenden Jobs

    bergabeparameter fr den aufzurufenden Job.Eintrag mu innerhalb von " ... " stehen.

    SIEHE OBEN

    Ergebnisname des Jobs

    SIEHE OBEN

    SIEHE OBEN

    Es wird geprft, ob das aus dem Steuergert mit dem Job ausgeleseneErgebnis die Bedingung erfllt.Der Job darf nur aufgerufen werden, wenn das zugehrige Steuergert lt.Auftragsdaten auch verbaut ist. Ist dies nicht der Fall, so gilt die Bedingung als nicht erflltDer Job wird nur einmal gestartet, d.h. im Falle von APIFALSE erfolgt keine Wiederholung.

    4.2.3.3 Verarbeitung in INPA

    Fr jeden ausgelesenen Fehlercode F_ORT_NR wird untersucht, ob es in einer Datei .FABeine gleichnamige F-ORT-NR-Section gibt. Ist dies nicht der Fall, so wird der Fehler nichtausgeblendet. Ist dies der Fall, so wird untersucht, ob Eintrge fr Ausblendbedingungen angegebensind. Gibt es diese Eintrge nicht, so wird der Fehler ausgeblendet.

    Sind dagegen AB-Sections angegeben, wird untersucht, ob mindestens eine (d.h. Veroderung) der AB-Sections erfllt ist, d.h. alle (Verundung) AB-Einzelbedingungen einer AB-Section zutreffen. Ist diesder Fall, wird der Fehler ausgeblendet. Ist keine AB-Section erfllt, so wird der Fehler nichtausgeblendet.

    Fr einen Fehlercode knnen eine F-ORT-NR-Section und beliebig viele AB-Sections existieren.Verschiedene F-ORT-NR-Sections knnen auf dieselbe AB-Section verweisen.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 22

    In INPA wird die Fehlerausblendung von den FunktionenINPAapiFsLesenINPAapiFsLesen2APIJobFsLesenFABAPIResultFsLesenFAB

    verwendet.

    4.2.3.4 Beispiel

    Folgender Fall soll angenommen werden:

    Der Fehler 2, Leerlaufsteller/Schliesswicklung, der DME331 soll nur dann ausgeblendet werden,wenn die in der AAB.FAB formulierte auftragsbezogene Ausblendbedingung 10 erfllt ist, die FehlerartFehler nach Entprellung abgespeichert vorliegt, der Fehler bei einer Motordrehzahl(Umweltbedingung) zwischen 1500 U/min und 2300 U/min aufgetreten ist, laut Barcodevorgabe dasGurtstrammer-Beifahrer-Flag gesetzt ist und sich beim Steuergert ASC2E das TelegrammTest_Drosselklappe ausfhren ltODERwenn das Hex-Muster '02, 34, 0A, 0B, EF' vorliegt.

    Die Fehler 3, 5 und 7 sollen ausgeblendet werden, wenn die Fehlerart sporadisch vorliegt.

    Alle Fehler sollen ausgeblendet werden, die bei einer Motordrehzahl kleiner 650 U/min aufgetretensind.

    Es mu eine Fehlerausblenddatei mit dem Namen DME331.FAB existieren mit folgendem Inhalt:

    ; FAB-Section -----------------------------------------------------------[FAB]Fehler= 2 3 4 5 6 7

    ; F-ORT-NR - Sections -----------------------------------------------------

    ; fr Fehler 2, 'Leerlaufsteller/Schliesswicklung'[2]AB=AB1 AB2 AB4

    ; fr Fehler 3[3]AB=AB3 AB4

    ; fr Fehler 4[4]AB=AB4

    ; fr Fehler 5[5]AB=AB3 AB4

    ; fr Fehler 6[6]AB=AB4

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 23

    ; fr Fehler 7[7]AB=AB3 AB4

    ; AB - Sections -----------------------------------------------------------

    [AB1]Bed1=AAB 10Bed2=FS_LESEN APITEXT F_ART1_TEXT == "Fehler nach Entprellung abgesp."Bed3=FS_LESEN APIREAL F_UW1_WERT > "1500"Bed4=FS_LESEN APIREAL F_UW1_WERT < "2300"Bed5=AUFTRAG GURTSTRAMMER_BF == "1"Bed6=JOB ASC2E TEST_DROSSELKLAPPE "" APITEXT JOBSTAUS == "OKAY"

    [AB2]Bed1=FS_LESEN APIBINARY F_HEX_CODE == "02, 34, 0A, 0B, EF"

    [AB3]Bed1=FS_LESEN APITEXT F_ART5_TEXT == "Fehler sporadisch"

    ; fr alle Fehlercodes gemeinsam[AB4]Bed1=FS_LESEN APIREAL F_UW1_WERT < "650"

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 24

    4.2.3.5 Beispiel AAB.FAB

    ; AAB.fab; 5.11.92, 26.3.93 J.R.Romano;; AAB = Auftragsabhaengige AusblendBedingungen; fuer Eldi/3 - FS-Fehler-Ausblendung;; Diese Datei hat zwei Sections:;; [AB] AusblendBedingungen; 1=AEB1,AEB2,...,AEBn AB-Nr. (wie in *fab.dat)= AEB-Liste mit [symbolischen] Namen; 2=EML6 (werden programmintern "geundet");; [AEB] AusblendEinzelBedingungen; AEBi=Code,Stelle,Laenge,Muster[,N];; mit: Code: FG,E1,E2,E3, D1,D2,D3 oder D4 (2 chars); Stelle: 3

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 25

    13=N_ADV1_D,N_ADV2_D,N_ADV3_D,N_ADV4_D

    ; AB 14 fuer ZKE1 : Fehler 8 TSH D-Barcode14=N_TSH1_D,N_TSH2_D,N_TSH3_D,N_TSH4_D

    ; AB 15/16 fuer BC IV : Fehler Standheizung /-lueftung15=NO_SL_D16=NO_SH_D

    [AEB]NEIN=E1,11,2=xxJA=E1,15,1=x,N

    E32=FG,6,1=GE34=FG,6,1=HE31=FG,6,1=EE31_D=FP,6,1=E

    NO_SL=E3,3,1=0NO_SH=E3,3,1=2,N

    NO_SL_D=D2,19,1=0NO_SH_D=D2,19,1=3,N

    NO_SL_31=E3,4,1=0NO_SH_31=E3,4,1=2,N

    SA199=E1,14,1=A

    EMLVERB=E1,15,1=0,N

    NO_ADV1=E3,5,1=1,NNO_ADV2=E3,5,1=4,NNO_ADV3=E3,5,1=5,NNO_ADV4=E3,5,1=7,N

    NO_TSH1=E3,5,1=3,NNO_TSH2=E3,5,1=5,NNO_TSH3=E3,5,1=6,NNO_TSH4=E3,5,1=7,N

    N_ADV1_D=D2,15,1=4,NN_ADV2_D=D2,15,1=5,NN_ADV3_D=D2,15,1=6,NN_ADV4_D=D2,15,1=7,N

    N_TSH1_D=D2,15,1=1,NN_TSH2_D=D2,15,1=3,NN_TSH3_D=D2,15,1=5,NN_TSH4_D=D2,15,1=7,N

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 26

    4.2.4 Kommandozeilenoptionen

    Allen Programmen des INPA-Pakets knnen optional direkt auf der Kommandozeile ein zubearbeitendes INPA-Script angegeben werden; z.B.:

    INPALOAD.EXE \INPA\CFGDAT\STARTGER.IPO

    Beim INPA-Compiler knnen noch Wildcards d.h. Platzhalter fr Dateinamen wie * und ?angegeben werden. Zustzlich besitzt er eine Batchmodefunktion, die mit dem Parameter -B aktiviertwird. Der Compiler luft dann im Hintergrund und fordert keine Benutzerangaben an. Zudem kann derSchalter 16BIT gesetzt werden. In diesem Fall werden Objectfiles erzeugt, die von der letzten 16-BitVersion von INPA (Version 4.4) interpretiert werden knnen. Eine Kompilierung fr die Version 4.4 istnur mglich, wenn das Skript keine Funktionalitt (setitemrepeat, import32) verwendet, die erst abVersion 5.0.0 existiert.

    Syntax:

    INPACOMP.EXE [-16BIT] [-B []] (nur fr Batchmode des Compilers)

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 27

    5 Prfablaufbeschreibungsdateien

    5.1 Dateistruktur

    Abbildung 2 zeigt den schematischen Aufbau einer Prfablaufbeschreibungsdatei. Die Angaben in denPositionen "Includes", "externe Funktionsdeklarationen" und "globale Datendefinitionen" sind optional;dagegen ist das Vorhandensein einer Prfablaufbeschreibung mit den Funktionen "inpainit ()" zumStart und "inpaexit ()" zum Beenden des Prfablaufs (siehe auch 3.2 Ablaufprinzip) zwingendvorgeschrieben.

    Abbildung 2

    Zur bersetzungszeit wird ber der Prfablaufbeschreibungsdatei eine Syntaxberprfungdurchgefhrt, die gegebenenfalls zu einer Fehlermeldung fhrt. Prfablaufbeschreibungsdateien, dienicht fehlerfrei bersetzt werden konnten, sind zur Laufzeit nicht ausfhrbar.

    5.1.1 Pragmas

    Pragmas sind Anweisungen an den bersetzer zur Steuerung des bersetzungsvorganges. DieSyntax ist wie folgt definiert:

    #pragma

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 28

    Folgende Pragmas stehen zur Steuerung der Zeichenkonvertierung whrend desbersetzungsvorganges zur Verfgung:

    #pragma winedit Das Script wurde mit einem Windows-Editorgeschrieben. Es soll keine OEMToAnsi-Konvertierungdurchgefhrt werden.

    #pragma dosedit: Das Script wurde mit einem DOS-Editor geschrieben.Es soll eine OEMToAnsi-Konvertierung durchgefhrtwerden.

    Die o.g. Pragmas verndern die in der Konfigurationsdatei definierte Editor-Einstellung nur fr dieDauer des bersetzungsvorganges. Nach Abschlu der bersetzung wird wieder die in derKonfigurationsdatei definierte Default-Editor-Einstellung aktiviert.

    5.1.2 Includes

    Mit der "#include" Anweisung in der Prfablaufbeschreibungsdatei knnen andere INPA-Scriptdateieninkludiert werden. Hierbei ist zu beachten, da nur eine Include-Ebene untersttzt wird, d.h.geschachtelte Includes sind nicht mglich. In den Dateien knnen die Scriptelemente grundstzlich inbeliebiger Reihenfolge auftreten. Allerdings mssen Funktionen und Daten vor Gebrauch definiertwerden, bei Funktionen evtl. eine vorwrts-Deklaration mittels "extern" durchgefhrt werden. Daher istes zweckmig Headerdateien mit extern-Deklarationen am Scriptanfang zu includieren und danachalle globale Daten zu definieren. Anschlieend knnen z.B. Script-Includedateien mit Standard-Scriptelementen includiert werden, bevor weitere Definitionen von Scriptelementen folgen.

    Die Prototypen (extern-Deklarationen) aller Funktionen der INPA-Standardbibliothek befinden sich inder Datei "inpa.h", welche normalerweise in jedem INPA-Scipt includiert wird.

    Syntax:#include ""

    Beispiel:#include "inpa.h"

    5.1.3 Importierte Funktionen

    INPA bietet ab der Version 4.4.0 die Mglichkeit, Funktionen aus INPA-fremden 16-Bit-Bibliothekeneinzubinden, ab Version 5.0.0 auerdem zustzlich auch aus 32-Bit-Bibliotheken. Die zuimportierenden Funktionen mssen in INPA ber Funktionsdeklarationen bekanntgegeben werden.INPA ld dann die Bibliothek mit der entsprechenden Funktion zur Laufzeit des Skripts und fhrt dieFunktion - fr das Skript nicht unterscheidbar gegenber anderen Funktionen - wie eine INPA-Funktion aus. Die Deklaration der importierten Funktionen erfolgt hnlich der Deklaration internerFunktionen.Da bei der Deklaration die Parameter mit Richtungsinformation, Datentyp und Parameternamenangegeben werden mssen, kann der korrekte Gebrauch der Funktionsparameter innerhalb des INPA-Skripts durch den Parser berprft werden; allerdings kann die Konsistenz zu der tatschlichenAufrufkonvention nicht geprft werden.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 29

    Syntax fr 16-Bit DLLs:import [C | pascal ] lib DLLName[::DLLInternerFncName] functionname(r_info: , r_info: ,..., r_info: , [returns: ] );

    Beispiel:import pascal lib user.exe MessageBox(in: int Hwnd, in: string MyText, in: string Title, in: flags,returns: int ret );

    Syntax fr 32-Bit DLLs:import32 [C | pascal ] lib DLLName[::DLLInternerFncName] functionname(r_info: ,r_info: ,..., r_info: , [returns: ] );

    Beispiel:import32 "C" lib "kernel32.dll" GetSystemDirectoryA(out:string Path, in:int bufferlen);

    Technische Informationen zu den Aufrufkonventionen:

    Funktionsname functionnamewird zu

    Parameterreihenfolgeauf dem Stack

    Aufrumen desStacks

    16 Bit Pascal FUNCTIONNAME vorwrts Aufgerufene Funktion16 Bit C _functionname rckwrts Aufrufer32 Bit Pascal _functionname@x (wobei x die

    Gesamtgre der auf dem Stackbergebenen Parameter in Byte ist)

    rckwrts Aufgerufene Funktion

    32 Bit C functionname rckwrts Aufrufer

    Aufgrund der Implementierung von INPA spielt der Unterschied beim Aufrumen des Stacks keineRolle. Bei 32-Bit-DLL-Aufrufen besteht somit der einzige Unterschied zwischen C und Pascal somit inder Anpassung des Funktionsnamens.Bei Aufrufen von 32-System-DLLs ist dabei folgendes zu beachten:Funktionen in System-DLLs rumen den Stack gem der Pascal-Aufrufkonvention auf, der Nameist jedoch unverndert (wie in der C-Aufrufkonvention). Da das Aufrumen des Stacks nicht beachtetwerden mu, ist bei der Deklaration von 32-Bit-System-DLL-Funktionen die Aufrufkonvention C zubenutzen, damit der korrekte Funktionsname verwendet wird. Bei 16-Bit System-DLLs hingegen giltwie in alten INPA-Versionen die Konvention pascal.

    5.1.4 Externe Funktionsdeklarationen

    Externe Funktionsdeklarationen werden verwendet um Bibliotheksfunktionen zu deklarieren. Innerhalbeiner Prfablaufbeschreibungsdatei knnen sie auch zur Vorwrtsdeklaration verwendet werden; d.h.eine im Dateiheader extern deklarierte Funktion kann innerhalb der Datei benutzt werden, bevor siedefiniert ist.Da bei der extern Deklaration die Parameter mit Richtungsinformation, Datentyp und Parameternamenangegeben werden mssen, kann der korrekte Gebrauch der Funktionsparameter durch den Parserberprft werden.

    Syntax:extern functionname(r_info: par1, r_info: par2,..., r_info:

    parx);

    Beispiel:

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 30

    extern text_output (in: int zeile, in: int spalte, in: string ausgabetext);

    5.1.5 Globale Datendefinitionen

    Es knnen Variablen vereinbart werden, die in einem globalen Datenpool gehalten werden. Dabei sinddie folgenden Datentypen mglich:

    - byte ( 8-Bit Integer)- int (16-Bit-Integer)- long ( 32-Bit-Integer)- real (Fliepunktzahl mit doppelter Genauigkeit)- bool (Wahrheitswert, TRUE oder FALSE)- string ( Null-terminierte Zeichenreihe)

    Die vereinbarten globalen Variablen knnen initialisiert werden; Variable gleichen Typs knnen nachder Typangabe durch Komma getrennt werden.

    Syntax: varname;

    Beispiel:byte a = 41;int i;long l = -20000;real druck, temp;bool valid = FALSE;string zustand = "offen";

    5.1.6 Prfablaufbeschreibung

    Die Prfablaufbeschreibung besteht zumindest aus der Initialisierungsfunktion "inpainit()", die denPrfablauf startet, und der Terminierungsfunktion "inpaexit()", die den Prfablauf beendet (siehe auch3.2 Ablaufprinzip). ber die Initialisierungsfunktion "inpainit()" werden die anwendungsspezifischenPrfablufe aufgerufen, die aus Bildschirmbeschreibungen (siehe auch 3.3.2 Bildschirmanzeigen),Mensteuerung (siehe auch 3.3.3 Mensteuerung) und benutzerdefinierten Funktionen (siehe auch3.3.1 Funktionen) bestehen knnen.Die Verwendung von Bildschirmanzeigen und Mensteuerung fr einen Prfablauf ist optional, d.h. esknnen auch Prfablufe ohne Anzeigen auf dem Bildschirm definiert werden.

    5.2 Ablaufprinzip von Prfungen

    Der Ablauf der Prfung wird ber Funktionen aus der Standardbibliothek oder ber benutzerdefinierteFunktionen festgelegt. Mit Hilfe dieser Funktionen werden Bildschirme definiert, die dann durchMendefinitionen verbunden werden, so da sich ein Prfablaufbaum ergibt (Abbildung 3).

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 31

    Abbildung 3

    Die Wurzel des Prfablaufbaumes wird bestimmt durch die Funktion "inpainit ()", die in derPrfablaufbeschreibungsdatei vorhanden sein mu. Der Prfablauf wird beendet durch einen Aufrufder (Standard-) Funktion "exit ()", der von beliebiger benutzerdefinierter Stelle aus erfolgen kann. DieFunktion "exit ()" ruft die Funktion "inpaexit ()", in der benutzerspezifische Endebehandlungen definiertwerden knnen, auf, und fhrt dann eine Endebehandlung fr das System aus.

    Fr die Gestaltung eines Prfablaufs ist nur vorgeschrieben, da "inpainit ()" und "inpaexit ()"vorhanden sind, wobei "inpaexit ()" auch leer sein kann.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 32

    Aufbau der Funktionen "inpainit ()" und "inpaexit ()":

    inpainit (){settitle ("Titel des Eingangsbildschirms");setscreen ();setmenu ();}

    inpaexit (){/* Benutzerspezifische Endeanweisungen (optional)*/. . .. . .}

    Damit knnen nun Prfablufe festgelegt werden, die, wie in Abbildung 3 dargestellt, Anzeigen auf denBildschirm ausgeben und Benutzerinteraktionen zulassen, oder es knnen Prfablufe festgelegtwerden, die ohne Anzeigen und Eingriffsmglichkeiten automatisch ablaufen, wobei diePrfergebnisse z.B. in einer Datei abgelegt werden.

    Ein mgliches Vorgehen zur Erstellung eines Nacharbeitsprogrammes knnte etwa in folgendenSchritten beschrieben werden:

    - definieren der im Nacharbeitsprogramm vorgesehenen Bildschirme; dazu knnen Funktionenaus der Standardbibliothek oder benutzerdefinierte Funktionen verwendet werden.- definieren der jeweils zu einem Bildschirm gehrigen Mens, und Belegen derFunktionstasten der Menleisten (dadurch wird eine Baum- oder Netzstruktur fr denPrfablauf festgelegt)- Aufruf des Startfensters und des Einstiegsmens in die Funktion "inpainit()" eintragen- benutzerspezifische Endebehandlung in die Funktion "inpaexit()" eintragen (z.B. Aufruf von"INPAapiEnd ()")

    Zur Laufzeit erfolgt eine zyklische Bearbeitung der Bildschirmaktionen. Pseudoparallel hierzu werdenHintergrundablufe, die mit Hilfe von Statemachines beschrieben werden, bearbeitet. Dieserpseudoparallele Betrieb wird spter nher beschrieben werden.

    5.3 Sprachelemente

    Die Festlegung der Prfablufe erfolgt mit Hilfe von benutzerdefinierten Funktionen und Strukturen. Esstehen folgende Strukturen zur Verfgung: "SCREEN" zur Beschreibung des Bildschirmaufbaus und der dazugehrigen Ablufe "MENU" zur Beschreibung der mglichen Benutzerinteraktionen und zur Verknpfung der

    beschriebenen Bildschirme "STATEMACHINE" zur Beschreibung von Ablufen "LOGTABLE" zum Umsetzen von mehreren abhngigen Eingangsbedingungen in mehrere

    abhngige Ausgangsbedingungen

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 33

    5.3.1 Benutzerdefinierte Funktionen

    Benutzerdefinierte Funktionen knnen von beliebiger Stelle in der Prfablaufbeschreibung aufgerufenwerden. Wenn eine Funktion benutzt werden soll, bevor sie deklariert ist, so ist eineVorwrtsdeklaration gleich einer externen Funktionsdeklaration ntig.

    Syntax:function_name (richt_info: param_typ param_1, . . . , richt_info: param_typ param_n){/* lokale Daten */. . ./* Anweisungen */. . .}

    Jeder Parameter in der Deklaration mu vollstndig (mit drei Koeffizienten) angegeben werden. DieKoeffizienten haben die folgende Bedeutung:

    - Richtungsinformation- in: auf den Parameter darf nur lesend zugegriffen werden- out: auf den Parameter darf nur schreibend zugegriffen werden- inout:auf den Parameter darf lesend und schreibend zugegriffen werden

    - Parametertyp- byte ( 8-Bit Integer)- int (16-Bit-Integer)- long ( 32-Bit-Integer)- bool (Wahrheitswert, TRUE oder FALSE)- string ( Null-terminierte Zeichenreihe)

    - Parameternamekann vom Benutzer beliebig definiert werden

    5.3.2 Importierte Funktionen

    Ab der Version 4.4.0 kann INPA auch Funktionen aus fremden Bibliotheken zur Ausfhrung innerhalbeines Skripts verwenden.Als Funktionen aus fremden Bibliotheken werden Funktionen bezeichnet, die ausserhalb INPAsimplementiert worden sind. INPA untersttzt derzeit Aufrufe aus einem INPA-Skript in eine dynamischeWindowsbibliothek ( DLL ).INPA knnen importierte Funktionen ber import-Anweisungen fr 16-Bit DLLs und import32-Anweisungen fr 32-Bit DLLs im Skript bekannt gemacht werden:

    Syntax:

    import [ ] lib LibName[::LibFnc] ( [] );import32 [ ] lib LibName[::LibFnc] ( [] );

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 34

    Beschreibung:

    Jede Deklaration importierter Funktionen beginnt zwingend mit dem Schlsselwort import' oderimport32'

    Wahlweise kann zwischen dem Schlsselwort import und lib die verwendete Aufrufkonventionangegeben werden:

    CallConv:pascal ( defaultwert ) INPA verwendet die Pascal Aufrufkonvention

    C INPA verwendet die C Aufrufkonvention

    Bei 32-Bit DLLs ist die Aufrufkonvention nur fr die Modifizierung des Funktionsnamens relevant. Bei32-Bit-System-DLLs mu die Konvention C benutzt werden, damit der korrekte Funktionsnameverwendet wird (siehe Kapitel 5.1.3).

    Nach dem Schlsselwort lib mu der Name der Bibliothek angegeben werden. Hier sind folgendeAngaben mglich:

    LibName:

    C:\TMP\myLib.dll Angabe der Bibliothek mit absolutem oder relativem Pfad

    myLib.dll Angabe der Bibliothek ohne Pfad ( die Bibliothek muss entweder bereits in denArbeitsspeicher von Windows geladen sein, oder liegt in einem der in derDOS-Umgebungsvariablen PATH eingestellten Pfade bzw. im BIN-Verzeichniss des INPA-Systems

    myLib Referenziert eine bereits im Arbeitsspeicher des Rechners liegende Bibliothek(z.B. user.exe fr eine Kernel-Bibliothek oder api fr das EDIABAS-Laufzeitsystem ).

    Optional kann, getrennt durch zwei Doppelpunkte ( ::) der von der Bibliothek exportierte interneName ( ::LibFnc angegeben werden. Damit kann der im INPA-Skript bekannte Name der Funktionvon dem in der externen Bibliothek definierten Namen abweichen.

    Anschlieend ist der Funktionsname zu definieren, unter dem das Skript die externe Funktionansprechen kann.

    Die Deklaration der bergabeparameter fr importierte Funktionen unterscheidet von der extern-Deklaration in drei Punkten:

    - Es kann eine Skriptvariable als returns-Parameter ( Rckgabeparameter ) deklariert werden.

    - Die bergabe von Speicherbereichen ( Structures ) und deren Gltigkeitsprfung ist mglich.

    - Alle bergebenen Parameterwerte sind temporrer Natur.

    Whrend der letzte Punkt nur fr Entwickler von externen Bibliotheken von Interesse ist, sind dieersten beiden Punkte von entscheidender Bedeutung fr den Skriptentwickler.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 35

    Allgemeine Syntax einer Importparameterliste:

    import [...] fnc( [ | structure: [, ...]] [, returns: ]);

    Allgemeine Parameterliste:

    Die allgemeine Parameterliste hat das gleiche Format wie bei der Deklaration von 'extern -Funktionen:

    Richtung des Parameters:

    in: Der Parameter wird der Funktion bergeben; diese kann bzw. darf den Wert in der Variablennicht verndern ( bergabe einer temporren Variable )

    out: Die Funktion kann den Parameter beschreiben, aber nicht lesen. Importierten Funktionen knnen- entgegen extern deklarierten Funktionen - den Inhalt der Variablen auch lesen; der Wert derVariablen entspricht dem aktuellen Wert der Variablen. out: entspricht damit bei importiertenFunktionen eher dem Richtungsbezeichner inout:.

    inout: Die Funktion kann den Parameter sowohl lesen als auch beschreiben.

    Art des Parameters:

    byte: 8-Bit-integerwertint: 16-Bit-integerwertlong: 32-Bit-integerwertreal: 8-Byte-Fliekommawertstring: Nullterminierte Zeichenkette ( String)

    - Beliebiger ( nach Mglichkeit aussagekrftiger !) Bezeichner.

    structure:

    Der Deklarationstyp structure kann zur Typen bzw. bergabekontrolle an eine importierte Funktionherangezogen werden. Wird bei einem Aufruf der importierten Funktion ein Parameter mit demDeklarationstyp structure bergeben, so prft INPA vor dem Aufruf der Funktion, ob derParameterwert tatschlich einen gltigen Speicherbereich referenziert. Hier knnen folgendeSituationen auftreten:

    - Aufruf der Funktion mit gltigem Strukturwert:INPA ruft die Funktion auf.

    - Aufruf der Funktion mit ungltigem Strukturwert:INPA bricht das Skript mit einer Fehlermeldung ab.

    - Aufruf mit einem Null-Struktur:INPA bergibt der Funktion den globalen Skript-Speicherbereich

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 36

    - Funktion gibt NULL-Struktur zurck:INPA setzt den Wert der Strukturvariablen auf -1 ( ungltig )

    - Funktion gibt ungltige Struktur zurckINPA bricht das Skript mit Fehlermeldung ab

    returns:

    Der Deklarationstyp returns: mu am Ende der Deklaration stehen: Er gibt den Wert an, den dieimportierte Funktion zurckgibt. Wird kein Wert angegeben, so nimmt INPA an, das eine Procedure (Pascal) bzw. ein void Typ (C) vorliegt. Es besteht keine Notwendigkeit, den returns:-Parameteranzugeben, wenn der Rckgabewert der Funktion nicht ausgewertet werden mu..

    WICHTIG:

    - Die Parameterliste MUSS mit der tatschlich von der importierten Funktion verarbeitetenParameterliste bereinstimmen ( ausgenommen returns:); INPA kann diese Liste nicht selbstidentifizieren, oder sich - nach Aufteten eines Fehlers - wieder erholen.

    - INPA bricht - aufgrund des internen Aufbaus - das Script im Fehlerfall nicht sofort ab, sondernarbeitet den aktuellen Object-Block noch vollstndig ab. Zur Vermeidung sich aufhufenderFehlermeldung wird daher geraten, in einem Block nur eine importierte Funktion aufzurufen!

    - Jeder Aufruf einer importierten Funktion erzeugt einen groen Overhead an Verwaltungsaufwand imINPA, insbesondere bei 16-Bit-DLLs. Bei sehr hufigem Aufruf von importierten Funktionen kanndie Ablaufgeschwindigkeit des Skripts leiden!

    5.3.3 Bildschirmanzeige

    Die Bildschirmanzeigen werden ber SCREEN - Konstrukte beschrieben. Dabei stellt ein SCREENeine benannte Struktur dar, die ber einen "setscreen (s_name, FrequFlag)" - Aufruf aktiviert wird."s_name" steht fr den Namen des SCREENs, FrequFlag beeinflut die zyklische Bearbeitung(FrequFlag=TRUE fr zyklische Bearbeitung des Screens, FrequFlag=FALSE fr einmaligeBearbeitung).SCREENs beschreiben virtuelle Bildschirme mit einer unbeschrnkten Anzahl von logischen Zeilen(LINE). Logische Zeilen beinhalten die benutzerdefinierten Aktionen und knnen aus mehrerenAnzeigeelementen, und damit auch aus mehreren physikalischen Bildschirmzeilen, bestehen. DieKoordinatenangaben bei den Anzeigefunktionen einer logischen Zeile erfolgen relativ zum Beginn derjeweiligen logischen Zeile.Zur Laufzeit kann der sichtbare Bereich auf dem virtuellen Bildschirm verschoben werden.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 37

    Abbildung 4

    SCREENs werden zyklisch abgearbeitet (wenn FrequFlag=TRUE bei der Aktivierung mit setscreen),wobei Funktionen angegeben werden knnen, die zum SCREEN gehren, und die bei jedemDurchlauf aufgerufen werden. Die zu den LINEs gehrigen Funktionen werden nur aufgerufen, wenndie entsprechende LINE im sichtbaren Bereich liegt.

    Bsp: LINE( "LineSelectText", "API-String") { ..... }

    Jede logische Zeile besitzt einen eindeutigen Namen "LineSelectText" und wird durch das LINE-Statement eingeleitet. Logische Zeilen knnen zur Laufzeit ber ihren Namen aus einem Selektions -Men zur vergrerten Bildschirmdarstellung ausgewhlt werden.Die API-Strings dienen zur Optimierung der Resultabfragen beim EDIABAS-Betrieb. Sie enthalten dieinnerhalb der jeweiligen logischen Zeile verwendeten EDIABAS-Resultparameter. Die API-Strings allersichtbaren logischen Zeilen knnen in konkatenierter Form mit Hilfe der Bibliotheksfunktion"getapistring(...)" abgefragt werden, um sie anschlieend bei der EDIABAS-Resultabfrage zubergeben, was eine zeitliche Optimierung bewirkt.Eine logische Zeile kann einen CONTROL-Block zur Realisierung von Steuerfunktionen enthalten. Diedurch diesen CONTROL-Block geklammerten Anwenderfunktionen werden zur Laufzeit aufBenutzeranforderung ausgefhrt, wenn die logische Zeile im sichtbaren Bildschirmbereich liegt. EineAnwendung fr einen CONTROL-Block ist z.B. das Ansteuern von Bauteilen mit anschlieenderAusgabe des Ergebnisses.

    Beispiel eines typischen SCREENs:

    SCREEN s_main () { text( 1, 0, "Identifikationsdaten Steuergert XYZ"); text( 3, 0, ""); INPAapiJob("XYZ","IDENT","",""); /* Aufruf bei jedem Zyklus */

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 38

    INPAapiCheckJobStatus("OKAY");

    LINE ( "Teilenummer", "") /* Name der Zeile fr vergrerte Darstellung zur Laufzeit */ { text( 0, 1, "Teilenummer: "); /* Ausgabe des Texts "Teilenummer" in phys. Zeile 0, Spalte 1*/ INPAapiResultText(t0,"ID_NR",1,""); /* Abholen der Teilenummer von der Schnittstelle, Ablegen in t0 */ textout( t0, 0, 35); /* Ausgabe der Teilenummer in phys. Zeile 0, Spalte 35 */ text( 2, 0, ""); /* Leerzeile */ }

    LINE ( "Datum_KW", "") /* Name der Zeile fr vergrerte Darstellung zur Laufzeit */ { text( 0, 1, "Herstelldatum Woche: "); /* Textausgabe "Herstelldatum Woche:" in phys. Zeile 0, Spalte 1*/ INPAapiResultText(t1,"ID_DATUM_KW",1,"");/* Abholen von der Schnittstelle, Ablegen in t1 */ textout( t1, 0, 35); /* Ausgabe von t1*/ text( 2, 0, ""); /* Leerzeile */ }

    LINE ( "Datum_JAHR", "") /* Name der Zeile fr vergrerte Darstellung zur Laufzeit */ { text( 0, 1, "Herstelldatum Jahr: "); /* Textausgabe "Herstelldatum Woche:" in phys. Zeile 0, Spalte 1*/ INPAapiResultText(t3,"ID_DATUM_JAHR",1,"");/* Abholen von der Schnittstelle, Ablegen in t3 */ textout( t3, 0, 35); /* Ausgabe von t3*/ text( 2, 0, ""); /* Leerzeile */ }

    }

    5.3.4 Mensteuerung

    Die Mens (MENU) beschreiben vom Benutzer definierte Aktionen, die bei Bettigung einerFunktionstaste zur Laufzeit ausgefhrt werden sollen. In diese Aktionen knnen auchBibliotheksfunktionen eingebunden werden, wie z.B. das Wechseln von MENUs oder SCREENs.Dadurch lassen sich Prfablufe als Baum- oder Netzstruktur beschreiben.Zu einem Men knnen innerhalb einer Struktur INIT Funktionen angegeben werden, die einmaligbeim Aktivieren des Mens ausgefhrt werden sollen. Hier kann z.B. mit der Funktion "setmenutitle("Titeltext")" eine berschrift zum Men angegeben werden.In jedem Men knnen bis zu 20 Funktionstasten F1..F10 und F1..F10 mit Hilfe der ITEMKonstrukte belegt werden. Diese ITEM Konstrukte legen die Aktionen bei Bettigung derFunktionstaste durch den Anwender fest. Die Nummer und Beschriftung der Funktionstaste wird mitnr, bzw "Itemtext" angegeben, wobei die Nummern 1..10 sich auf die Tasten .. und dieNummern 11..20 auf die Tastenkombinationen ... beziehen. BeiBettigen der -Taste findet eine automatische Aktualisierung der Funktionsleiste statt.Innerhalb eines ITEM-Konstrukts knnen beliebig viele Funktionsaufrufe enthalten sein.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 39

    Beispiel:

    MENU m_main () /* Hauptmenue */ { INIT { /* Initialisierung wird einmal beim Start des MENUs ausgefhrt */ INPAapiInit(); setmenutitle( " Grundmenue"); }

    ITEM( 2 , "Ident") { /* Funktionstaste F2 mit "Ident" beschriften */ setscreen( s_ident ,TRUE); /* Aufruf von Ident SCREEN */ setmenu( m_ident ); /* und Ident MENU */ }

    ITEM( 5 , "Status") { /* Funktionstaste F5 mit "Status" beschriften */ setscreen( s_status ,TRUE); /* Aufruf von Status SCREEN */ setmenu( m_status ); /* und Status MENU */ }

    ITEM( 6 , "Steuern") { /* Funktionstaste F6 mit "Steuern" beschriften */ setscreen( cs_steuern ,TRUE); /* Aufruf des SCREEN zum Bauteile ansteuern*/ setmenu( m_steuern ); /* und des entsprechenden MENUs */ }

    ITEM( 20 , "Ende") { /* Funktionstaste , INPA verlassen */ exit(); } }

    5.3.5 Statemachines

    Statemachines dienen zur einfachen Formulierung von unterbrechbaren Hintergrundaktionen, diepseudoparallel zu den SCREENs und zu den Funktionstasten betrieben werden. Bei denStatemachines werden Blcke mit Anwendercode immer vollstndig ausgefhrt bevor ein Wechselzum parallel betriebenen Objekt (andere Statemachine, SCREEN oder Funktionstaste) stattfindet. AlsBlock wird dabei entweder eine logische Zeile eines SCREENs, oder ein einzelner Zustand einerStatemachine, oder der einer Funktionstaste zugeordnete Code betrachtet.Beispielsweise wird der Code der Logischen Zeile 1 ausgefhrt, anschlieend der des Zustands 3,danach der der logischen Zeile 4, dann wiederum der Code des Zustands 3, da noch keinZustandswechsel erfolgt ist, usw. Trifft dazwischen ein Funktionstastenereignis ein, so wird dessenCode mit hchster Prioritt, also direkt nach Beendigung des gerade bearbeiteten Codeblocks,ausgefhrt.

    Zur Aktivierung bzw. zum Wechsel von Statemachines, zur Zustandsweiterschaltung sowie zum Aufrufvon "Sub-Statemachines" stehen Bibliotheksfunktionen zur Verfgung. Die Verwendung von "Sub-Statemachines" erlaubt eine logische Aufteilung von Aufgaben, die unterbrechbar sein mssen, in dervon Funktionen bekannten Art und Weise (Aufrufhierarchie). Hierbei kann aus einer Statemachinedurch Aufruf der Bibliotheksfunktion "callstatemachine" eine neue Statemachine als untergeordneteStatemachine aktiviert werden. Die Aktionen dieser Statemachine sind im Gegensatz zu einer reinenFunktion unterbrechbar, d.h. die Wechsel zur SCREEN-Bearbeitung und die Behandlung derTastaturereignisse findet statt. Ist die Aufgabe der "Sub-Statemachine" beendet, erfolgt durch denAufruf der Bibliotheksfunktion "returnstatemachine" die Rckkehr zu der Codestelle in derbergeordneten Statemachine, von der aus der Substatemachine-Aufruf erfolgte.Die Schachtelungstiefe der Statemachines ist nicht begrenzt.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 40

    Jede Statemachine hat einen Initialisierungszustand ("INIT"), der immer vorhanden sein mu. Der hierenthaltene Anwendercode wird nach Aktivierung der Statemachine ausgefhrt. Die Verzweigung in dennchsten Zustand findet auch hier durch den Aufruf der Bibliotheksfunktion "Setstate" statt. Nebendiesem Initialisierungszustand kann eine unbegrenzte Anzahl von Zustnden in der Statemachineenthalten sein. Jeder Zustand wird durch einen vom Anwender frei definierbaren Namengekennzeichnet, wobei zu beachten ist, da die Zustandsnamen innerhalb der Statemachine eindeutigsein mssen. Jedem Zustand ist ein Block mit Anwendercode zugeordnet. Bei jeder zyklischenStatemachine-Abarbeitung wird der Codeblock des gerade aktiven Zustandes ausgefhrt. Erfolgt indem Zustand keine Verzweigung, so wird bei der nchsten Abarbeitung derselbe Codeblockausgefhrt.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 41

    Beispiel:

    STATEMACHINE sm_motorlaufsignal_ein(){

    int try_repeat_counter;int TRY_COUNTER_MAX;string job_state;string job_state;bool motor_lauf;

    INIT {

    try_repeat_counter = 0; TRY_COUNTER_MAX = 3;

    delete_screen(); print_line("GSA_TEST", 1,10); print_line("Prfung Motorlaufsignal", 4, 10); action_box_open("Bitte Motor einschalten"); delay(2000);

    setstate(MOTORLAUFSIGNAL_TELEGRAMM_SENDEN); }

    MOTORLAUFSIGNAL_TELEGRAMM_SENDEN {

    if (try_repeat_counter < TRY_COUNTER_MAX) { INPAapiJob("GSA","STATUS_LESEN","",""); INPAapiResultText(job_state, "JOB_STATUS", 1, ""); INPAapiResultDigital(motor_lauf, "STAT_MOTOR_SIGNAL_EIN", 1); try_repeat_counter = try_repeat_counter + 1;

    setstate(AUSWERTEN_MOTORLAUFSIGNAL); } else {

    callstatemachine( sm_fehlerbehandlung);. . .

    } }

    AUSWERTEN_MOTORLAUFSIGNAL {

    . . . }}

    5.3.6 Logiktabellen

    Logiktabellen ermglichen die Formulierung von Boolschen Ausdrcken und damit die Umsetzungvon verknpften Eingangsbedingungen in verknpfte Ausgangswerte. Dies erfolgt mit Hilfe vonBinrkonstanten, die durch einen Prfix "0y" bezeichnet werden. Die Bits der Binrkonstantenentsprechen der Reihenfolge der Logiktabellenparameter, und knnen folgende Werte annehmen:

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 42

    "1" entspricht "TRUE""0" entspricht "FALSE""x" oder "X" entspricht "beliebig"

    In der letzten (und nur in der letzten) Zeile knnen die Eingangsdefinitionen das Schlsselwort"OTHER" annehmen, fr den Fall, da keine der vorherigen Eingangsdefinitionen zutreffend war. Fallsdas Schlsselwort "OTHER" nicht angegeben ist, und keine der Eingangsdefinitionen zutrifft, bleibendie Ausgangswerte unverndert.Die Abarbeitung zur Laufzeit erfolgt durch zeilenweisen Vergleich der Eingangsvariablen mit denEingangsdefinitionen. Sobald eine Definition zutrifft, wird der Vergleich beendet und dieAusgangsvariablen werden entsprechend gesetzt.Die definierten Bedingungen werden nicht auf Widerspruchsfreiheit oder auf berschneidungenberprft.

    Hinweis zur Syntax:In der Kopfzeile der LOGTABLE werden die Ausgangsparameter von den Eingangsparametern durchKomma getrennt. Die Parameter selbst werden nicht durch Kommata sondern durch Blanks getrennt(siehe Beispiel).

    Beispiel:

    LOGTABLE testlog (out: bool out1 out2, in: bool in1 in2 in3){0y00: 0y000; /* alle Eingangsvariablen FALSE, dann out1, out2 ebenfalls beide FALSE */0y01: 0y101; /* in1, in3 TRUE, in2 FALSE, dann out1 FALSE, out2 TRUE */0y10: 0y010; /* . . . */0y11: OTHER; /* in allen anderen Fllen out1 = TRUE, out2 = TRUE */}

    Beispiel fr den Aufruf dieser LOGTABLE testlog:

    testfunction (){bool out1, out2;. . .

    testlog (out1, out2, TRUE, FALSE, TRUE) /* fhrt zu out1 = FALSE, out2 = TRUE */

    . . .}

    5.3.7 Kontrollstrukturen

    Zur Formulierung der Prfablufe knnen die im folgenden aufgefhrten Kontrollstrukturen verwendetwerden.

    - Zuweisung= (IST GLEICH, ERGIBT SICH ZU)

    Syntax siehe Anhang A: SprachdefinitionBeispiel:

    x1 = 5;

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 43

    - Vergleiche< (KLEINER), = (GRSSERODER GLEICH), > (GRSSER)

    Syntax siehe Anhang A: SprachdefinitionBeispiel:

    if (x1 == 5){. . .}

    - logische Verknpfungen fr Digitalvariablen:! (NOT), && (LOGISCH UND), | | (LOGISCH ODER), ^ ^ (EXCLUSIV ODER)

    - binre Verknpfungen:& (BINRES UND), | (BINRES ODER), ^ (EXCLUSIV ODER)Syntax siehe Anhang A: SprachdefinitionBeispiel:

    x1 = ((x2 & x3) | x4 *3;

    - SchleifenWHILE (expression){statements;}

    Syntax siehe Anhang A: SprachdefinitionBeispiel:

    while (x1 > x2){x1 = x1 - x2;}

    - bedingte AusfhrungIF ( expression){statements;}ELSE{statements;}

    Syntax siehe Anhang A: SprachdefinitionBeispiel:

    if (x1 > 0){x2 = x1;}else{x2 = 0;}

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 44

    5.3.8 Funktionen der Standardbibliothek

    In der Standardbibliothek stehen alle hartcodierten INPA-Bibliotheksfunktionen zur Verfgung. Dieseumfassen folgende Gruppen:

    Systemfunktionen Konvertierungsfunktionen Stringfunktionen Stringarray-Funktionen Eingabefunktionen Ausgabefunktionen Dateizugriffsfunktionen Userboxfunktionen Schnittstellenfunktionen zu Windows Speichermanipulationsfunktionen Fileviewer-Funktionen EDIABAS-Funktionen Schnittstellenfunktionen zum Protokoll-Etiketten-Manager Schnittstellenfunktionen zum Daten-Tabellen-Manager (ab Version 5.0.0 nicht mehr

    untersttzt) RK512-Funktionen (ab Version 5.0.0 nicht mehr untersttzt) WINELDI-Funktion (en) (ab Version 5.0.0 nicht mehr untersttzt)

    Die einzelnen Funktionen der o.g. Gruppen werden nachfolgend kurz beschrieben. Die genaueFunktionsdeklaration ist dem jeweiligen Prototyp in der Headerdatei inpa.h im Verzeichnis .\sgdat zuentnehmen.

    - INPA - Systemfunktionen

    -setmenu (menu)Aktivieren eines Mens (siehe auch 3.3.3 Mensteuerung)

    -setscreen (screen, frequ)Aktivieren eines Screen fr ein- (frequ = FALSE) oder mehrmaligen (frequ = TRUE)Durchlauf (siehe auch 3.3.2 Bildschirmanzeigen)

    -setmenutitle (menutitle)Angabe des Men -Titels

    -settitle (screentitle)Angabe des Screen - Titels

    -setstate (state)in einer Statemachine Zustand einstellen

    -setstatemachine (statemach)Aufruf einer Statemachine

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 45

    -callstatemachine (statemach)Aufruf einer Statemachine als Unterprogramm

    -returnstatemachine ()Rckkehr aus einer Statemachine als Unterprogramm

    -settimer (timernum, time)Timer mit Nummer timernum mit Zeit time in ms aufziehen

    -testtimer (timernum, flag)Timer mit Nummer timernum prfen, bei flag=TRUE ist Timer abgelaufen

    -delay(ms)INPA stoppt die Scriptabarbeitung fr ms - Millisekunden ( negative Werteentsprechen ( 65536 - |x| ) ms

    -getdate (date)Holen des Systemdatums in den String 'date'. Das Datum wird im Format dd.mm.yyyyabgelegt

    -gettime (time)Holen der Systemuhrzeit in den String 'time'. Die Uhrzeit wird im Format hh:mm:ssabgelegt.

    -setjobstatus ( jobstat)setzt den Job Status fr WINELDI

    -exit()Verlassen des Programmes

    -exitwindows()Verlassen von windows

    -scriptselect( ScriptIniName)Aufruf der Scriptauswahl unter Verwendung der angegebenen Scriptauswahldatei

    -scriptchange( ScriptFileName)Beenden des aktuellen Skripts und starten des Skripts 'SkriptFileName'. DieSkriptnamen knnen sowohl mit absoluten oder relativen Pfadnamen versehenwerden; die Endungen *.IPO bzw. *.IPS werden automatisch angefgt. Die aktuelleKodeliste wird noch vollstndig abgearbeitet, bevor das angegebene Skript gestartetwird.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 46

    -select(MultSelectFlag)Auswahl von logischen Zeilen; mit MultSelectFlag=FALSE lt sich nur eine Zeileauswhlen, mit MultSelectFlag=TRUE lassen sich mehrere Zeilen auswhlen.Auswahlkombinationen lassen sich unter einem logischen Namen (Set) speichern.Hierzu wird nach Zusammenstellung der Auswahl der Setname im Editfeld derDialogbox eingetragen und anschlieend der Button "Speichern" bettigt. Daraufhinerscheint derSetname in der darunterbefindlichen Set-Liste. Die Auswahlgespeicherter Sets erfolgt durch Positionierung des Cursors auf den gewnschtenSetnamen in der Set-Liste und Bettigen der Return-Taste. Bei der Positionierung desCursors wird die Auswahlanzeige so aktualisiert, da die zum angewhlten Setgehrige Auswahl direkt angezeigt wird. Die Speicherung der Sets erfolgt Screen- undScript-bezogen in einem INI-File mit dem Basename des Scripts und der Extension"INI" im SGDAT-Verzeichnis.

    -setitem(nr, text, enable)Wechseln des Mennamens zur Laufzeit. Der Text in der Auswahlleiste unter demMenpunkt 'nr' wird in 'text' gewechselt. 'Enable' gibt an, ob der Menpunkt anwhlbarist, oder grau dargestellt wird.

    -setitemrepeat(nr, enable)Normalerweise wird eine Menfunktion einmal ausfhrt, wenn die entsprechende F-Taste gedrckt wird (bzw. genaugenommen, wenn sie wieder losgelassen wird). Wirdfr den Menpunkt 'nr' mit dieser Funktion das Repeatflag auf TRUE gesetzt, so wirddie entsprechende Funktion immer wieder aufgerufen, solange die F-Taste gedrcktist. Beim Setzen einens neuen Mens wird das Repeatflag wird auf den DefaultFALSE gestellt.

    -deselect()Rckkehr von der vergrerten Darstellung zur Gesamtdarstellung

    - control()Aktivieren der Steuerfunktionen des aktiven Bildschirms

    - start()Starten der SCREEN - Abarbeitung

    - stop()Stoppen der SCREEN - Abarbeitung

    - getapistring( ArgNumFlag, FullScreenFlag, ApiString)Ermittlung der API-Result-Parameter fr den sichtbaren Bereich, beiFullScreenFlag=TRUE fr den Gesamtscreen ; Voranstellung der Result-Parameter-Anzahl mit Semikolon bei ArgNumFlag=TRUE, bei ArgNumFlag=FALSE nicht.

    - togglelist(MultipleSelectFlag, ArgNumFlag, ApiToggleString)Anzeige einer Listbox zur Anwahl von logischen Zeilen. Aufbau eines Strings mit denAPI-Result-Parametern der angewhlten logischen Zeilen unter Voranstellung derResult-Parameter-Anzahl mit Semikolon bei ArgNumFlag=TRUE, beiArgNumFlag=FALSE nicht.Bei MultipleSelectFlag= FALSE kann nur eine logische Zeile ausgewhlt werde; beiMultipleSelectFlag= TRUE mehrere.

    - printscreen()

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 47

    Ausdrucken des sichtbaren Bildschirmbereichs gem den Druckereinstellungen inder Konfigurationsdatei

    - setcolor(Vordergrund, Hintergrund)Konfigurieren der Bildschirm- und Textfarbe, Farbnummern: 0=wei, 1=schwarz,2=hellgrau, 3=grau, 4=leuchtend rot, 5=weinrot, 6=rotviolett, 7=rotlila, 8=leuchtendgelb, 9=oliv, 10=leuchtend grn, 11=dunkelgrn, 12=hell trkis, 13=gedeckt trkis,14=leuchtend blau, 15=blau

    - printfile( FileName, PrinterName, PrinterPort)Drucken der angegebenen Datei auf dem angegebenen Windows-Drucker

    - Konvertierungsfunktionen

    - realtostring( r, format, s);wandelt eine Real-Zahl in einen String um

    - stringtoreal( s , r );wandelt einen String in eine Real-Zahl um.Es gelten folgende Regeln:s < Min-Real -> r = Min-Real;s > Max-Real -> r = Max-Real;s = abc -> r = 0.0;s = 123 456 -> r = 123.0;s = 123.456.78 -> r = 123.456;

    - inttostring( i, s);wandelt einen Integer in String um

    - stringtoint ( s, i )wandelt einen String in einen Integer um.Es gelten folgende Regeln:s < Min-Integer -> i = Min-Integer;s > Max-Integer -> i = Max-Integer;s = abc -> i = 0;s = 123 456 -> i = 123;s = 0x10 -> i = 16 ( Hexadezimal; max.4 Ziffern);s = 010e2 -> i = 100 ;s = "0y11110101 -> i = 245 (Binr; max. 16 Ziffern)s = "0x8000" -> i = -32768s = "0xffe2" -> i = 0s = "0y1111" -> i = 0

    - inttoreal ( i, r )wandelt einen Integer in eine Real-Zahl um

    - realtoint ( r, i)wandelt eine Real-Zahl in einen Integer umEs gelten folgende Regeln:r > Max-Integer -> i = Max-Integerr < Max-Integer -> i = Min-Integer

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 48

    - bytetoint ( c, i )wandelt einen 8-Bit-Integer in einen 16-Bit-Integer um

    - inttolong ( i, l )wandelt einen 16-Bit-Integer in einen 32-Bit-Integer um

    - longtoreal ( l, r )wandelt einen 32-Bit-Integer in einen Fliekommawert um

    - hexconvert( HexString, high, mid, low, seg);zerlegt Hex String in Integer Werte

    Es gilt fr alle Konvertierungsfunktionen:

    Max-Integer = +32767;Min-integer = -32768;Max-Real = 3.4E +38Min-Real = -3.4E +38|Kleinster Wert| = 3.4E-38

    - Stringfunktionen

    - strcat( DestStr, SrcStr1, SrcStr2);Konkatenation von SrcStr1 und SrcStr2; das Ergebnis wird in DestStr abgelegt

    - strlen( length, SrcStr);liefert die Anzahl der Zeichen des bergebenen Strings SrcStr

    - midstr( DestStr, SrcStr, Index, Count);ab Position Index des Eingabestrings SrcStr wird die Anzahl Count von Characters imZielstring DestStr abgelegt.

    - Dynamische Stringarrays:

    - StrArrayCreate(out: bool rc, out: int hStrArray)Erzeugen eines neuen leeren Stringarrays und Rckgabe der Handle dazu

    - StrArrayDestroy( in: int hStrArray)Freigeben des Stringarrays mit dem bergebenen Handle. Das Stringarray ist nachdem Funktionsaufruf nicht mehr vorhanden.

    - StrArrayWrite( in: int hStrArray, in: int index, in: string str)Eintragen des bergebenen Strings in das Stringarray mit dem bergebenen Handleunter dem angegebenen Index. Das Array wird in der Gre dem Index entsprechenddynamisch verndert.

  • INPA V 2.5Benutzerdokumentation

    Copyright BMW AG. Ersteller Softing GmbH Seite 49

    - StrArrayRead( in: int hStrArray, in: int index, out: string str)Auslesen des Strings mit dem bergebenen Index aus dem Stringarray mit dembergebenen Handle. Bei Auslesen von nicht vorhandenen Elementen erfolgt eineFehlermeldung auf dem Bildschirm.Anmerkung: Bei Lesen in Programmschleifen ist die aktuelle Gre des Arrays vordem Lesevorgang vom Anwender mit der Funktion StrArrayGetElementCount(...) zuermitteln.

    - StrArrayGetElementCount( in: int hStrArray, out: int ElementCount)Rckgabe der Anzahl der im Stringarray mit dem bergebenen Handle enthaltenenElemente

    - StrArrayDelete( in: int hStrArray)Lschen des Stringarrays mit dem bergebenen Handle. Das Stringarray ist nach demFunktionsaufruf noch vorhanden, alle enthaltenen Elemente wurden gelscht und derdadurch belegte Speicher freigegeben.

    - Eingabefunktionen

    Allgemeines: Alle Funktionen zur Eingabe von Zahlenwerten bieten den Inhalt der jeweiligenAusgangsvariable als Defaultwert an, sofern dieser innerhalb der angegebenen Grenzwerte liegt. Liegter auerhalb der Grenzwerte, so wird kein Defaultwert angezeigt. Die Rckgabe der HEX-Werte erfolgtals String mit vorangestelltem