|
CCS Modul F_RDEK_ZUSATZ |
Funktionsbeschreibung:
- Beschreibung der Moduluebergabeparameter anhand der Modglobal.stl :
MD,f_rdek_zusatz
,PRUEFSCHRITT 1
,POSITION 2
,ANST_UNIT 3
,FUNK_UMPROG 4
,MESSKANAL_HIGH 5
,MESSKANAL_LOW 6
,SENSE_HIGH 7
,SENSE_LOW 81 PRUEFSCHRITT:
Prueflisten Schrittnummer2 POSITION:
PAV Position fuer diesen Pruefschritt3 ANST_UNIT:
Symbolischer Name aus dem HW-Beschreibungsfile
fuer R-Dekade4 FUNK_UMPROG:
Auswahl des Schaltverhalten beim Umprogrammieren der R-Dekade.
Parameter: "HIGH" -> Widerstand wird beim Umprogrammieren hochohmiger.
"-" -> " " " " "
"LOW" -> " " " " niederohmiger.
Die Default-Einstellung ist "-"5 MESSKANAL_HIGH:
Angabe des Messkanal zum Ruecklesen des eingestellten Widerstand.
Eingabe: SG-PIN z.B. 55 oder PIN-Nummer der 6070 z.B. >a31
"-" fuer don't care6 MESSKANAL_LOW:
Angabe des Messkanal zum Ruecklesen des eingestellten Widerstand.
Eingabe: SG-PIN z.B. 73 oder PIN-Nummer der 6070 z.B. >c31
"-" fuer don't care7 SENSE_HIGH:
Angabe des Sensekanal zum Ruecklesen des eingestellten Widerstand.
Mit der Angabe des Sensekanal wird eine 4-Draht-Messung realisiert.
Eingabe: SG-PIN z.B. 12 oder PIN-Nummer der 6070 z.B. >a32
"-" fuer don't care8 SENSE_LOW:
Angabe des Sensekanal zum Ruecklesen des eingestellten Widerstand.
Mit der Angabe des Sensekanal wird eine 4-Draht-Messung realisiert.
Eingabe: SG-PIN z.B. 24 oder PIN-Nummer der 6070 z.B. >c32
"-" fuer don't care
- SW technische Beschreibung
Aufgabe dieses Modules ist es, die Modulparameter fuer eine 6070 FU-Karte
an den Hardwaretreiberprozess zu geben.
Die Ansteuerwerte werden per F_ANSTEUER Modul an den Hardwaretreiber gegeben.
Die Modulparameter sind in der Regel kein Bestandteil der Std.-PAV und werden
ueber dieses spezielle GAUDI-Modul eingestellt.
-----------------------------------------------------------
Input:
shm_stringpointer *zeilen_info - dieser Pointer liefert den
Zugriff auf die komplette
Parameterzeile;
shm_stringpointer *zeilen_wert - hierueber erhaelt die Funktion
den Zugriff auf den tatsaechl.
Inhalt, naemlich den Wert,
in der Parameterzeile;
long index_oePrfL - die Positionsangabe der Parameter im
Parameterarray des SHM;
long anzahl - die Anzahl der fuer dieses Modul
relevanten Parameter;
Output:
none
----------------------------------------------------------
Return Value:
= 0: normaler Durchlauf oder der Schrittbetrieb ist
aktiviert und die Pruefschrittnummer ungleich 1;
> 1:
----------------------------------------------------------
Beispiel (optional):
<\userdoc>
----------------------------------------------------------
History:
$Log: f_rdek_zusatz.C,v $
Revision 1.4 2004/12/23 10:33:40 jsj3rt
_VI_5.2.0_R5200000_TT945_JU_GCC3 Portabel
Revision 1.3 2003/04/17 09:36:11 wiese
$Head -> $Id wegen log_message
* Revision 1.2 2002/02/14 08:04:40 PIJ3SA
* userdoc for html-page inserted
*
* Revision 1.1 2001/12/18 10:17:07 sgc3sa
* Anpassungen fuer Linux und QT
*
* Revision 1.5 2001/06/12 10:27:02 lehmann
* Put_unitaenderung eingefuegt
*
* Revision 1.4 2000/02/15 11:18:10 KLM3SA
* Sourcen aus testsystem_21 kopiert.
*
Revision 1.0 97/03/19 lea3sa
Erstellt
----------------------------------------------------------
C4
int f_rdek_zusatz ( shm_stringpointer *zeilen_wert
,long index_on_expPrfLst
,long anzahl_parameter )
{
define lokale Variablen
char ident[] = "@(#)f_rdek_zusatz.C lea3sa "; // modul identification
long index_oePL; // Zeiger in die expandierte Pruefliste
long unit_indexPtr; // Index Zeiger auf Unit
// long unitnummer;
STRING wert[ANZAHL_PARAMETER+ 1]; // Werte fuer Modulparameter
long i; // Laufvariable fuer Parameteruebergabe
int schritt; // Step-Betrieb ja/nein
int ret_val = 0; // Returnparameter des Gaudi-Modul
Umladen der Modulparameter aus dem Shared Memorybereich in den lokalen Bereich;
index_oePL = index_on_expPrfLst;
for ( i = 1; i <= (anzahl_parameter + 1); i++ ) {
wert[i] = *zeilen_wert->ptr[index_oePL];
index_oePL++;
}
Modul-Parameter fuer eine R-Dekade der 6070 werden in den Stringspeicher umgeladen.
// unit_indexPtr = suche_unit_index( wert[ANST_UNIT],unitnummer );
unit_indexPtr = suche_unit_index( wert[ANST_UNIT] );
if ( unit_indexPtr < 0 ) {
ret_val = -1;
}
else {
Ssp_pp_verwaltung->unit_ablage[unit_indexPtr].put_unit_aenderung(1);
i = get_platzmemory( STRING_VERWALTUNG
,unit_indexPtr
,ANZ_MODPAR );
Ssp_pp_verwaltung->string_f[i + 0] = wert[FUNK_UMPROG];
Ssp_pp_verwaltung->string_f[i + 1] = wert[MESSKANAL_HIGH];
Ssp_pp_verwaltung->string_f[i + 2] = wert[MESSKANAL_LOW];
Ssp_pp_verwaltung->string_f[i + 3] = wert[SENSE_HIGH];
Ssp_pp_verwaltung->string_f[i + 4] = wert[SENSE_LOW];
debug_message( __FILE__, __LINE__, DEB_GAUDI
,"\nf_rdek_zusatz Unit-Indexpointer: %d\
\nF-rdek_zusatz anzahl_parameter : %d\
\nf_rdek_zusatz PRUEFSCHRITT : %s\
\nf_rdek_zusatz PRUEFPOSITION : %s\
\nf_rdek_zusatz ANST_UNIT : %s\
\nf_rdek_zusatz FUNK_UMPROG : %s\
\nf_rdek_zusatz MESSKANAL_HIGH : %s\
\nf_rdek_zusatz MESSKANAL_LOW : %s\
\nf_rdek_zusatz SENSE_HIGH : %s\
\nf_rdek_zusatz SENSE_LOW : %s\n"
,unit_indexPtr
,anzahl_parameter
,wert[PRUEFSCHRITT].get_string()
,wert[PRUEFPOSITION].get_string()
,wert[ANST_UNIT].get_string()
,wert[FUNK_UMPROG].get_string()
,wert[MESSKANAL_HIGH].get_string()
,wert[MESSKANAL_LOW].get_string()
,wert[SENSE_HIGH].get_string()
,wert[SENSE_LOW].get_string() );
}
Pruefprogramm Stepbetrieb
schritt = schrittbetrieb( zeilen_wert, index_oePL );
if ( schritt != 1 ) {
return( ret_val );
}
return( ret_val );
}