CCS Modul   S_PFK
 
   $Id: s_pfk.C,v 1.15 2005/11/29 13:33:44 krf3rt Exp $
   ---------------------------------------------------------------------
   Kurzbeschreibung: 	Routine zur Ermittlung der Prueffortschrittskennung
   ---------------------------------------------------------------------
   Projekt:		CCS 
   Sourcefile:		s_pfk.C  
   Autor:		RtW2/TEF72-Keppler (13.10.00)
   Zielsystem:		HP9000/V743 (HP-RT 3.01), /7/C/D (HP-UX 10.20)
   Sprache:		C++
   ---------------------------------------------------------------------
   Prototype:
   MPI Schnittstelle
   void p_pfk(shm_stringpointer *zeilen_info
	   ,shm_stringpointer    *zeilen_wert
	   ,long index1
	   ,long anzahl)
   
   ---------------------------------------------------------------------
   Aufruf: im Vectorinterpreter 
   
	 (*funktionen[modulnummer])
	    (Ssp_expand_zeile
	     ,Ssp_expand_wert
	     ,p_verwaltung->begin_modulblock
	     ,p_verwaltung->anzahl_modulparameter); 
   
   
 
   ---------------------------------------------------------------------
   ---------------------------------------------------------------------
   Funktionsbeschreibung:
   

   Beschreibung der Moduluebergabeparameter:
1 PRUEFSCHRITT
   	GAUDI PrÏfschritt
   ------------------------------
2 POSITION
   	PAV- Position
   ------------------------------
3 MODUS
	
	      START	Wird eingetragen wenn das Modul am Anfang des Pruef-
			programmes aufgerufen wird.
			Es werden die unten beschriebenen Zaehler hochgezaehlt
			und die entsprechenden Aktionen durchgefuehrt.
	      STOP	Wird eingetragen wenn das Modul am Ende des Pruef-
			programmes aufgerufen wird.
			Es werden die unten beschriebenen Aktionen ausgefuehrt
4 PFKBYTE_IN1
 Eingabe des aus dem SG ausgelesenen PFK-Bytes 1
5 PFKBYTE_IN2
 Eingabe des aus dem SG ausgelesenen PFK-Bytes 2
6 PFKBYTE_IN3
 Eingabe des aus dem SG ausgelesenen PFK-Bytes 3
7 PFKBYTE_IN4
 Eingabe des aus dem SG ausgelesenen PFK-Bytes 4
8 PFKBYTE_IN5
 Eingabe des aus dem SG ausgelesenen PFK-Bytes 5
    
       Bemerkung: Das Eingabeformat ist CCS-ueblich in INT (zur Basis 10)	
    
    Modulrueckgabeparameter
9 PFKBYTE_OUT1
 Rueckgabe des errechneten PFK-Bytes 1
10 PFKBYTE_OUT2
 Rueckgabe des errechneten PFK-Bytes 2
11 PFKBYTE_OUT3
 Rueckgabe des errechneten PFK-Bytes 3
12 PFKBYTE_OUT4
 Rueckgabe des errechneten PFK-Bytes 4
13 PFKBYTE_OUT5
 Rueckgabe des errechneten PFK-Bytes 5	
   
      Bemerkung: Das Rueckgabeformat ist ein String mit den Byte als 
		 Hexwerte (z.B. F8) immer 2 Zeichen.
14 FEHLERFLAG
   Wird != 0 gesetzt wenn im Modul ein Fehler aufgetreten ist.
15 ERGEBNIS
    Rueckgabe eines Ergebnisstrings (OK- oder Fehlermelung)
   
    
    
    		

Umsetzung  fuer SG2000

	 		Bit	7 6 5 4 3 2 1 0
PFK-Bytes
			Byte1	1 1 1 1 1 1 1 1
PZ -  PF	PZ-FO	Byte2	b b b b a a a a 						       
PZ-IR		PZ-FR	Byte3	d d d d c c c c 				      
IOZ-HT		PZ - HT	Byte4	f f f f e e e e
PZ - Rep	PZ-LT	Byte5	h h h h g g g g       

	
Beschreibung von Byte 1															
PFK-Definition		Bit	7 6 5 4 3 2 1 0
ICT			IC	1 1 1 1 1 1 1 0
Flashen			PF	1 1 1 1 1 1 0 1
Funktionspruefung	AB	1 1 1 1 1 0 1 1 						      
TT		        TT      1 1 1 1 0 1 1 1
HT			HT	1 1 1 0 1 1 1 1
EP  nach IRI		EP	1 1 0 1 1 1 1 1
Reparaturplatzflag	Rp	1 0 1 1 1 1 1 1
Run-in			IR	0 1 1 1 1 1 1 1


	
									
Standtypen																				
Work-CCS
Repair-CCS
Service-CCS
																	
Prueftypen     *)															
IC	In-Circuit-Test													
PF	Flashprogrammierung																
FO	Funktionspruefung an offenem Geraet												
LT	Tieftemperatur an geschlossenem Geraet													
HT	Hochtemperatur angeschlossenem Geraet													
IR	Inline- Run-In														
FR	Endpruefung nach IRI oder Screening										

*) Die Bezeichnungen sind vorlaeufig und sind vom AK PAV ggf. zu bestaetigen bzw zu korrigieren																							

Zaehler fuer SG2000				Beschreibung			Zusatzbed.	wer schreibt						
IC- PZ		Zaehler fuer ICT								(ICT)
	wer incrementiert:		ICT explizit bei "Start"		b), c)									
PF - PZ		Zaehler fuer Erstprogrammierung , , Umprogrammierung				Work-CCS
     	wer incrementiert:		alle PAM bei "Start" und Typ = PF	b), c)		Repair-CCS
FO -PZ		Zaehler fuer Funktionspruefung (Zwischenpruefung)				Work-CCS
	wer incrementiert:		alle Work-CCS bei "Start" und Typ = FO	b), c)		Repair-CCS
LT- PZ		Zaehler fuer Tieftemperatur (100% , Stichrobe)					Work-CCS
	wer incrementiert:	alle Work-CCS bei "Start" und Typ =LT		b), c)		Repair-CCS
HT-PZ		Zaehler fuer LI (Endpruefung bei Hochtemperatur)
	wer incrementiert:	alle Work-CCSbei "Start" und Typ = HT		b), c)		Repair-CCS
HT-IOZ		Zaehler fuer LI (Endpruefung bei Hochtemperatur)
	wer incrementiert:	alle Work-CCS bei "Stop" und "SG-Gut" und Typ =HT
										b), c)		Repair-CCS bei "Gut"
FR - PZ		Zaehler fuer Endpruefung bei Raumtemperatur nach IRI				Work-CCS
	wer incrementiert:	alle Work-CCS bei "Start" und Typ = FR		b), c)		Repair-CCS
Rep - PZ	Zaehler fuer Durchlaeufe am Rep-Platz						Rep-CCS	
	wer incrementiert:	alle Rep-CCS bei "Start" 			c)





PFK-Bits fuer SG2000																									
	wer setzt:	(ICT bei "SG-Gut", 	"Stop",Typ = IC)   b)	   IC 1 1 1 1 1 1 1 0
	wer setzt:	Work-CCS bei "SG-Gut",	"Stop", Typ = PF   a) , b) PF 1 1 1 1 1 1 0 1
	wer setzt:	Work-CCS bei "SG-Gut", 	"Stop", Typ = FO   b)	   FO 1 1 1 1 1 0 1 1
	wer setzt:	Work-CCS bei "SG-Gut",	"Stop", Typ =LT	   b)	   LT 1 1 1 1 0 1 1 1
	wer setzt:	Work-CCS bei "SG-Gut",	"Stop", Typ = HT   b)	   HT 1 1 1 0 1 1 1 1
	wer setzt:	Work-CCS bei "SG-Gut", 	"Stop", Typ = FR   b)	   FR 1 1 0 1 1 1 1 1
	wer setzt:	Rep-CCS bei "Start"			   	   Rep1 0 1 1 1 1 1 1
	wer setzt:	Work-CCS bei "SG-Gut", "Stop", Typ = IR	   b)	   IR 0 1 1 1 1 1 1 1

Definition der Zusatzbedingungen:																									
a)	Betroffenes Bit wird bei "Start" auf "1" zurueckgesetzt 
b)	Beim ersten Durchlauf am ersten Prueftor  und "Start" PFK-Bits auf 1, alle Zaehler auf 0, 
	eigenen Prueftorzaehler auf 1.					
	Bedingung hierzu: eigener PZ-Zähler steht bei "Start "auf 00 oder FF											
c)	Zaehlerstand wird nach erreichen von "14" (FE) nicht mehr erhöht

Stichproben:
        Es wird von einer Stichprobenprüfung ausgegangen, wenn Standtyp != Prueftyp ist. Dann wird der
        Prueftorzaehler incrementiert. Es wird allerdings nicht die Vorgeschichte überprüft.
        Die Stichproben, die vorkommen koennen muessen im s_pfkconfig eingetragen sein.
																								
Abfragen:			
	Bei Start: Nach Konfigurationsliste Abfrage Bit von vorgehendem Prueftor (ermitteln) . 
	Entfaellt beim 1. Prueftor		
	Abbruch bei Fehler		
	Medsswert-Ausgabe der 5 PFK-Bytes in Hex-Form		

	Parameter fuer das PFK-Modul		
	Funktion:		Start, Stop
			

	Parameter fuer das Konfigurations-Modul		
			
	Bedeutung:	Funktion: zulaessige Variablen:
	PFK-Bit 0	IC	ja,nein
	PFK-Bit 1	PO	ja,nein
	PFK-Bit 2	AB	ja,nein
	PFK-Bit 3	TT	ja,nein
	PFK-Bit 4	HT	ja,nein
	PFK-Bit 5	FR	ja,nein
	PFK-Bit 6	Rep	
	PFK-Bit 7	RI	ja,nein
			
	Ja: Dieses Prueftor muss durchlaufen werden. Muß bei dem in der Fertigung  nachfolgenden Prueftor als "Gut" abgedragt werden.		
	nein: bei nachfolgenden Prueftoren wird dieses Bit nicht beruecksichtigt.		


Beschreibung:			
PFK-Modul			
Das PFK-Modul verwaltet die fuer SG2000  definierten 5 PFK-Bytes . Im ersten Byte sind in den einzelnen Bits die durchlaufenen			
Prueftore abgebildet. Die folgenden 4 Bytes sind jeweils unterteilt in insgesamt 8 Halbbytes. In diesen Halbbytes werden Zähler 			
dargestellt (s. o.).  Je nach Betriebszustand  werden beim Durchlaufen des Moduls ein Bit im PFK-Byte und  1 Zahler geändert. 			
Das Modul enthält ausschließlich die Aufbereitung der PFK-Bytes. Die Kommunikation  ( PFK lesen und schreiben) ist 
prueflingsindividuell und wird vor und nach dem Modul mit bestehenden Kommunikationsmodulen realisiert.

Konfigurationsmodul
Im Konfigurationsmodul werden die Prueftore, die das Erzeugnis zu durchlaufen hat definiert und den PFK-Bits zugeordnet.

Implementierung im Pruefprogramm:
das Konfigurationsmodul und das PFK-Modul im Modus "Start"  wird in der Pruefliste mit der
erforderlichen kommunikation am Listen-Anfang aufgerufen.
Am Ende der Pruefliste wird das PFK-Modul  mit den notwendigen Kommunikationsmodulen im Modus Stop aufgerufen
Um keine Informationen zu verlieren, ist sowohl  bei "Start" als auch bei "Stop" ein Beschreiben des EEProms mit
PFK-Informationen angebracht
 

   Revision 1.1  2001/12/18 10:08:00  sgc3sa
   Anpassungen fuer Linux und QT

   Revision 1.7  2001/02/16 10:16:25  keppler
   Only Preint

   Revision 1.6  2000/12/18 10:16:50  keppler
   *** empty log message ***

   Revision 1.5  2000/11/29 15:49:59  keppler
   ermittle prueftyp immer

   Revision 1.4  2000/11/27 13:48:02  keppler
   Doku ueberarbeitet

   Revision 1.3  2000/11/27 09:38:59  keppler
   *** empty log message ***

   Revision 1.2  2000/11/24 13:12:20  keppler
   Ermittlung der Standtypen aus Configfile

   Revision 1.1  2000/10/23 13:15:25  keppler
   Initial Version

   ---------------------------------------------------------------------