CCS Modul   L_KAM_KONFIG
 
 Funktionsbeschreibung:                                            
                                                                   
    Festlegung der Grundkonfiguration fuer das KAM                 
                                                                   
    Dieses Modul stellt - ebenso wie das 'F_ANSTEUER'-Modul -      
    die Schnittstelle vom GAUDI zum nachgeordneten Hardware-       
    Treiber dar.                                                   
    Der Hardwaretreiber fuer das KAM kann sowohl durch aus-        
    schliesslichen Aufruf des 'F_ANSTEUER'-Moduls (mit den         
    entsprechenden, in der Datei 'hw_units_....cnf',               
    angegebenen Ansteuerunits) bedient werden, als auch            
    zusaetzlich mit diesem Modul.                                  
    Dieses Modul wird nur fuer spezielle Features , die in der     
    PAV keine Erwaehnung finden (EIN-/ZWEI-Konstanter-Betrieb,     
    Kaskadierung) benoetigt.                                       
    Seine Verwendung ist auf solche PAM's beschraenkt, die mit     
    neuer Hardware (6278) ausgestattet sind!                       
                                                                   
                                                                   
    Die 6278 verfuegt ueber insgesamt 6 Ausgangskanaele:           
                  ULAST, UBATT 1 - 5                               
    Mit dem 'F_ANSTEUER'-Modul koennen diese gesteuert werden,     
    benutzt man die Ansteuerunits:                                 
       U_KON_ULx,                                                  
       U_KON_UAx, U_KON_UBx, U_KON_UCx, U_KON_UDx, U_KON_UEx       
       (mit x = 2, 4)                                              
                                                                   
     Vorgehensweise fuer die Nutzung des F_ANSTEUER-Moduls:        
       - Auswahl der Ansteuer-Unit;                                
       - Vergabe eines Ansteuernamens;                             
       - Vorbelegung der Parameter ANSTEUER_PIN und ANSTEUER_BEZUG 
         mit den im Adapterfile definierten Bezeichnern;           
       - Vorbelegung des Parameters ANSTEUER_ART auf ANSTEUER_PAR  
       - zum Schalten der UBatt-/ULast-Zweige ist im Ansteuerblock 
         nur noch der Parameter fuer den ANSTEUER_WERT zu belegen, 
         z.B. mit dem Namen UB (fuer U-Batterie);                  
         zum einfachen Abschalten wird ANSTEUER_WERT mit dem       
         Minus-Zeichen ('-') belegt;                               
                                                                   
                                                                   
   Zuordnung der Unit-Namen zu den Ausgangs-Pin's:                 
         U_KON_UAx - d18/d24                                       
         U_KON_UBx - d28/d30      kompatibel zu KON_UB_x (in SaW)  
         U_KON_UCx - b18/b24                                       
         U_KON_UDx - z28/z30      kompatibel zu KON_UD_x (in SaW)  
         U_KON_UEx - z18/z24                                       
         U_KON_ULx - dbz16/dbz32  kompatibel zu KON_UL_x (in SaW)  
                                                                   
       Die Zuordnung der Units U_KON_UBx, U_KON_UDx, U_KON_ULx     
       ist derart gewaehlt, dass sie kompatibel zu den bisher      
       fuer das aeltere KAM (6267) festgelegten  Units sind        
                                                                   
    Besonderheit:                                                  
    Der fuenfte UBATT-Zweig (U_KON_UEx) kann verpolt (durch        
    Vertauschen von PIN und BEZUG im 'F_ANSTEUER'-Modul)           
    angeschaltet werden.  Dann darf jedoch kein weiterer           
    UBATT-Zweig angeschaltet sein!                                 
                                                                   
                                                                   
    Dieses Modul wird mit der Ansteuerunit U_KON_KONFIGx           
    kontrolliert (vgl. L_KAM_ZUSATZ), welche nicht im Modul        
    F_ANSTEUER benutzt werden darf!                                
                                                                   
    Beschreibung der Modulparameter:
1 PRUEFSCHRITT
                                               
         GAUDI Pruefschritt                                        
    ------------------------------
2 POSITION
                                                   
         PAV- Position                                             
    ------------------------------
3 ANSTEUER_UNIT
                                              
         aktueller Unitname (siehe 'hw_units....cnf')              
         z.Zt. gemaess Uebereinkunft RtW/SaW: U_KON_KONFIG2        
                                              U_KON_KONFIG4        
    ------------------------------
4 KON_A
                                                      
         A-Eingang des KAM's                                       
         hier wird angegeben, welcher der beiden Ausgaenge von     
         dem hieran angeschlossenen Konstanter versorgt werden     
         soll;                                                     
         Prmtr.: UBATT_ULAST (EIN-Konstanter-Betrieb)              
                 ULAST       (nur ULAST-Anschaltung oder bei       
                              ZWEI-Konstanter-Betrieb)             
                 UBATT       (nur UBATT-Anschaltung)               
                 -           (entspricht UBATT_ULAST = Default)    
                                                                   
         An diesen Eingang wird in der Regel der erste Konstanter  
         (siehe Datei "hw_units_....cnf") verdrahtet.              
    ------------------------------
5 KON_B
                                                      
         B-Eingang des KAM's                                       
         hier wird angegeben, welcher der beiden Ausgaenge von     
         dem hieran angeschlossenen Konstanter versorgt werden     
         soll;                                                     
         Prmtr.: UBATT_ULAST (EIN-Konstanter-Betrieb)              
                 ULAST       (nur ULAST-Anschaltung bei            
                              ausschliesslicher Versorgung der     
                              ULAST)                               
                 UBATT       (UBATT-Anschaltung bei ZWEI-          
                              Konstanter-Betrieb)                  
                 -           (keine Anschaltung = Default)         
                                                                   
         An diesen Eingang wird in der Regel der zweite            
         Konstanter (siehe Datei "hw_units_....cnf") verdrahtet.   
                                                                   
         Wichtig:                                                  
         Bei ZWEI-Konstanter-Betrieb muss KON_A = ULAST            
         und KON_B = UBATT sein!                                   
         Das bedeutet: der erste Konstanter versorgt nur ULAST     
         der zweite nur UBATT.                                     
    ------------------------------
6 KON_KASK
                                                   
         Kaskadierung der beiden angeschlossen Konstanter (fuer    
         hoehere Ausgangsspannungen);                              
         Prmtr.: NEIN   (keine Kaskadierung)                       
                 JA     (Kaskadierung schalten, naeheres siehe     
                         HW-Doku)                                  
                 -      (wie NEIN = Default)                       
                                                                   
         Wichtig:                                                  
         Kaskadierung ist nur mit zwei angeschlossenen             
         Konstantern sinnvoll!  Entsprechend muessen die           
         Parameter fuer ZWEI-Konstanter-Betrieb gesetzt sein.      
                                                                   
                                                                   
 Input:                                                            
                                                                   
 Output:                                                           
    none                                                           
                                                                   
 ----------------------------------------------------------        
 Return Value:                                                     
    = 0:    Successful completion                                  
    sonst   Fehler                                                 
 ----------------------------------------------------------        
 Beispiel (optional):                                              
                                                                   
 ----------------------------------------------------------        
 <\userdoc> 
 C4                                                                
int l_kam_konfig( shm_stringpointer  *zeilen_wert
               ,long               index_on_expPrfLst
               ,long               anzahl_parameter )
{
	
	 define lokale Variablen 	
	int ret_val = 0;
	int unit_index = -1;
	int i;
	int schritt;
	
	
	 Modul-Parameter fuer KAM_KONFIG umladen 	
	unit_index = suche_unit_index( *zeilen_wert->ptr[index_on_expPrfLst + ANST_UNIT] );
	
	if ( unit_index >= 0 )  {
		i = get_platzmemory( STRING_VERWALTUNG, unit_index, ANZAHL_PARAMETER ); 
		
		Ssp_pp_verwaltung->unit_ablage[unit_index].put_unit_aenderung(1);
		Ssp_pp_verwaltung->string_f[i + 0] = *zeilen_wert->ptr[index_on_expPrfLst + KON_A];
		Ssp_pp_verwaltung->string_f[i + 1] = *zeilen_wert->ptr[index_on_expPrfLst + KON_B];
		Ssp_pp_verwaltung->string_f[i + 2] = *zeilen_wert->ptr[index_on_expPrfLst + KON_KASK];
		
		debug_message( __FILE__, __LINE__, DEB_GAUDI
		        ,"\nkam_konfig Unit-Index       : %d"
		         "\nkam_konfig Anzahl Parameter : %d"
		         "\nkam_konfig Pruefschritt     : %s"
		         "\nkam_konfig Pruefposition    : %s"
		         "\nkam_konfig Ansteuer Unit    : %s"
		         "\nkam_konfig KON_A            : %s"
		         "\nkam_konfig KON_B            : %s"
		         "\nkam_konfig KON_KASK         : %s\n"
		        ,unit_index 
		        ,anzahl_parameter
		        ,(const char*) *zeilen_wert->ptr[index_on_expPrfLst + PRUEFSCHRITT]
		        ,(const char*) *zeilen_wert->ptr[index_on_expPrfLst + PRUEFPOSITION]
		        ,(const char*) *zeilen_wert->ptr[index_on_expPrfLst + ANST_UNIT]
		        ,(const char*) *zeilen_wert->ptr[index_on_expPrfLst + KON_A]
		        ,(const char*) *zeilen_wert->ptr[index_on_expPrfLst + KON_B]
		        ,(const char*) *zeilen_wert->ptr[index_on_expPrfLst + KON_KASK] );
	
	}
	else  {
		 ret_val = -1;
	
	}
	
	 Pruefprogramm Stepbetrieb 	
	schritt = schrittbetrieb( zeilen_wert, index_on_expPrfLst );
	
	if ( schritt != 1 ) {
		ret_val = 0;
	
	}
	return( ret_val );

}