|
CCS Modul R_PAS4_RPULSE |
$Id: r_pas4_rpulse.cpp,v 1.5 2005/09/21 12:28:57 pv73rt Exp $
---------------------------------------------------------------------
Kurzbeschreibung: Auswertung des Leseimpuls bei PAS4/Zapper
---------------------------------------------------------------------
Projekt: CCS
Sourcefile: r_pas4_rpulse.C
Autor: Rtp/TEF32-Rapp (06.06.2005)
Zielsystem: Linux
Sprache: C++
---------------------------------------------------------------------
Prototyp:
MPI Schnittstelle
void r_pas4_rpulse(
,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:
Auswertung des Leseimpulses des PAS4 Zappers ueber die gesampelten Daten
von Spannung und Strom.
Auswertung:
1. Die Spannungdaten werden mit der Schrittweite 0.75 * PULSE_WIDTH nach
einem Leseimpuls durchsucht.
Um Fehler durch Ausreisser auszuschliessen, wurde eine erlaubte Anzahl
von Ausreissern definiert (zurzeit 1).
Für die Pulserkennung wird ein Bereich von Messwerten ausgewertet
(erlaubte Ausreisser+2), ist in diesem Bereich die Anzahl erlaubter
Ausreisser nicht ueberschritten worden, wird dieser Bereich als
innerhalb des Leseimpulses gewertet.
Ein Messwert ist ein Ausreisser falls er ausserhalb den Bereichen
MIN_IMP1 und MAX_IMP1 bzw. MIN_IMP2 und MAX_IMP2 liegt.
2. Startflanke des Leseimpulses suchen.
3. DELTA_T wird zur Startzeit des Leseimpulses hinzugefügt und über die
Messzeit MEASURE_T werden die Stromdaten gemittelt. Liegt der
gemittelte Stromwert in den Grenzen CUR_0_MIN - CUR_0_MAX wird
das Bit als 0 interpretiert, liegt er in den Grenzen
CUR_1_MIN - CUR_1_MAX dann wird das Bit als 1 interpretiert, liegt
er ausserhalb beider Bereiche wird eine Fehlermeldung erzeugt.
4. Vergleich der Bitmaske mit den ermittelten Bits.
5. Wandlung der ermittelten Bits in ein Hexstring.
ARRAY_1 --> PULSE_WIDTH <--
10V (MIN_IMP2 bzw. MAX_IMP2) +------------------------+
| |
----+ | |
| | |
+----------+ +----------------
ARRAY_2
+-------------+
/ /
LEVEL -> / /
/ /
----------------------+ +--------------------
DELTA_T -> <-
MEASURE_T -> <-
Beschreibung der Modulübergabeparameter:1 PRUEFSCHRITTGAUDI Pruefschritt ------------------------------2 POSITION
PAV- Position ------------------------------3 ARRAY_1
Variablen Name in der die gesampelte Lesesapannung gespeichert ist ------------------------------4 ARRAY_2
Variablen Name in der der gesampelte Strom gespeichert ist ------------------------------5 SAMPLE_RATE
Abtastrate in us der gesampelten Daten. ------------------------------6 MIN_IMP1
Untere Grenze der ersten Lesespannung, wird zur Erkennung eines Leseimpulses verwendet. ------------------------------7 MAX_IMP1
Obere Grenze der ersten Lesespannung, wird zur Erkennung eines Leseimpulses verwendet. ------------------------------8 MIN_IMP2
Untere Grenze der zweiten Lesespannung, wird zur Erkennung eines Leseimpulses verwendet. ------------------------------9 MAX_IMP2
Obere Grenze der zweiten Lesespannung, wird zur Erkennung eines Leseimpulses verwendet. ------------------------------10 PULSE_WIDTH
Erwartete Pulsbreite des Leseimpulses, damit bei hohen Abtastraten nicht jeder Messwert überprueft werden muss, wird 0.75 * PULSE_WIDTH als Schrittweite fuer die Erkennung des Leseimpulses verwendet. ------------------------------11 BITMASK
Bitmaske die mit der aus den Daten ermittelten Bits verglichen wird. Mögliche Werte sind 01X, wobei das Bit mit X nicht überprüft wird. ------------------------------12 CUR_0_MIN
Untere Grenze bis zu der der Stromwert als 0 erkannt wird. ------------------------------13 CUR_0_MAX
Obere Grenze bis zu der der Stromwert als 0 erkannt wird. ------------------------------14 CUR_1_MIN
Untere Grenze bis zu der der Stromwert als 1 erkannt wird. ------------------------------15 CUR_1_MAX
Obere Grenze bis zu der der Stromwert als 1 erkannt wird. ------------------------------16 DELTA_T
Zeit vom Start des Leseimpulses bis zur Auswertung des Stromimpulses ------------------------------17 MEASURE_T
Waehrend der Messzeit wird der Stromimpuls ausgewertet ------------------------------18 HEX_STRING
Rueckgabe des erkannten Bitmusters als Hexstring ------------------------------19 ERGEBNIS
100 = Ergebnis Ok
0-n = bei Bit Sollwert = 1 und der Stromwert für dieses Bit 0 ist bzw.
nicht in den definierten Grenzen liegt, wird die Adresse des Bits
zurueckgegeben.
-1 = Anzahl der gelesenen Bits unterscheidet sich von der vorgegebenen
-2 = die Bits mehrerer Adressen sind nicht mit der Bitmaske identisch
-3 = Soll Bit = 0 Strom nicht innerhalb der Grenzen fuer 0 Wert
-4 = Strommittelwert nicht innerhalb der vorgegebenen Grenzen
-5 = Die Spannung des Leseimpuls ist innerhalb der vorgegebenen
Messzeit ausserhalb der vorgegebenen Grenzen.
-6 = Start des Leseimpulses nicht gefunden
------------------------------20 FEHLERFLAGFehlerflag