|
|
[求助]
求大神帮忙理解什么意思?
Eingangskonnektoren/*输入接口*/
-------------------
PIN: Zeiger auf die Parameterstruktur der vorhergehenden Fahr-/Bremseinheit.
PIN wird mit dem Ausgang POU des Vorgaengers konnektiert.
Fuer die erste Fahr-/Bremseinheit wird PIN mit 0 belegt.
ID: Eindeutige Kennung der Fahr-/Bremseinheit.
Wertebereich: 1..16
FKF: Kannkraft Fahren ED
FKB: Kannkraft Bremsen ED
FKP: Kannkraft Bremsen EP
M: Masse
MRO: rotierende Masse
MA0: Leergewicht AW0
MYK: Kannwert Reibkoeffizient
DID: Gewichtungsfaktor ED
DIB: Gewichtungsfaktor EP
FID: Istkraft ED
FIP: Istkraft EP
QNF: Quittung Notfahrt
DIS: disable
Ausgangskonnektoren/*输出接口*/
-------------------
POU: Zeiger auf die Parameterstruktur der Fahr-/Bremseinheit.
POU wird mit dem Eingang PIN des Nachfolgers konnektiert. Ueber den
Ausgang POU der letzten Fahr-/Bremseinheit werden die Parameter aller
Fahr-/Bremseinheiten zur Verfuegung gestellt.
ERR: Anzeige fuer Projektierungsfehler
Funktionsbeschreibung
---------------------
Die ueber die Eingaenge spezifizierten Parameter der Fahr-/Bremseinheit
werden in eine Parameterstruktur uebernommen. Die Parameterstrukturen aller
Fahr-/Bremseinheiten werden mit Hilfe der Konnektoren PIN und POU
verkettet. Auf diese Weise werden die Parameter aller Fahr-/Bremseinheiten
den anderen Bausteinen der Fahr-/Bremssteuerung ueber den Ausgang POU der
letzten Fahr-/Bremseinheit zugaenglich gemacht.
Rechenzeit: typ. xx us, max. yy us
(6FH9263-3D / Watcom C/C++ 11.0a / Monitor V02.40)
@@DEF
P0 < $$PIN ;Zeiger auf Parameterstruktur des Vorgaengers
;PIN = 0: erste Fahr-/Bremseinheit
H1 < $$ID ;Kennung der Fahr-/Bremseinheit
;Wertebereich: 1..16
N2 < $$FKF (1) ;Kannkraft Fahren
N2 < $$FKB (1) ;Kannkraft E-Bremse
N2 < $$FKP (1) ;Kannkraft P-Bremse
N2 < $$M (2) ;Masse
N2 < $$MRO (2) ;rotierende Masse
N2 < $$MA0 (2) ;Leergewicht AW0
N2 < $$MYK ;Kannwert Reibkoeffizient
N2 < $$DIF (3) ;Gewichtungsfaktor Fahren
N2 < $$DIB (3) ;Gewichtungsfaktor Bremsen
N2 < $$FID (1) ;Istkraft, elektrodynamisch
N2 < $$FIP (1) ;Istkraft, pneumatisch
B1 < $$QNF ;Quittung Notfahrt
B1 < $$DIS ;disable
P0 > $$POU ;Zeiger auf Parameterstruktur
B1 > $$ERR ;Anzeige fuer Projektierungsfehler
@@LDE
struct GD_DB_Unit $%uPar;
/* Parameterstruktur */
BYTE $%ilim;
/* Begrenzung Eingangswert */
@@INI
{
UBYTE id;
$%uPar.next = (struct GD_DB_Unit *)$$PIN;
id = $@ID;
/* ID gueltig? */
/* if (($@ID > 0) && ($@ID <= GD_DB_NMAX)) */
if ((id > 0) && (id <= GD_DB_NMAX))
{
$%uPar.id = $@ID;
$$POU = (void *)&$%uPar;
$$ERR = 0x00;
}
else
{
$$POU = NULL;
$$ERR = 0x01;
}
}
@@NOR
{
double hm = 0.0;
/* Hilfsmasse */
if (not($$ERR) & 1)
{
/* disable? */
if ($$DIS == 0)
{
/* Einheit aktiv */
$%uPar.akt = 0x01;
/* Eingangskonnektoren auf zulaessige Werte begrenzen */
/* und in interne Parameter umrechnen (N2 in double) */
/* Kannkraefte */
$%uPar.fkf = GD_DB_N2inlimp( $$FKF, $#FKF, &$%ilim);
$%uPar.fkb = GD_DB_N2inlimn( $$FKB, $#FKB, &$%ilim);
$%uPar.fkp = GD_DB_N2inlimn( $$FKP, $#FKP, &$%ilim);
/* Leergewicht */
hm = GD_DB_N2inlimp( $$MA0, $#MA0, &$%ilim);
/* Massen */
$%uPar.m = GD_DB_N2inlimp( $$M, $#M , &$%ilim);
/* Masse mindestens Leergewicht */
if ($%uPar.m < hm)
{
$%uPar.m = hm;
}
$%uPar.mro = GD_DB_N2inlimp( $$MRO, $#MRO, &$%ilim);
/* Gewichtungsfaktoren */
$%uPar.dif = GD_DB_N2inlimp( $$DIF, $#DIF, &$%ilim)/$#DIF;
$%uPar.dib = GD_DB_N2inlimp( $$DIB, $#DIB, &$%ilim)/$#DIB;
/* Reibwert */
$%uPar.myk = GD_DB_N2inlimp( $$MYK, $#MYK, &$%ilim);
/* Istkraefte */
$%uPar.fid = $$FID * $#FID / (double)WORD_BZW;
$%uPar.fip = GD_DB_N2inlimn( $$FIP, $#FIP, &$%ilim);
/* Quittung Notfahrt */
$%uPar.qnf = $$QNF;
/* Abgeleitete Groessen */
$%uPar.mges = $%uPar.m + $%uPar.mro;
/* Gesamtmasse */
$%uPar.mrf = $%uPar.mges * $%uPar.dif;
/* Ersatzm. Fahren */
$%uPar.mrb = $%uPar.mges * $%uPar.dib;
/* Ersatzm. Bremsen*/
if ($%uPar.mges > 0.0)
{
/* Istwert Reibkoeffizient */
$%uPar.myi = ($%uPar.fid + $%uPar.fip)/(GD_DB_G*$%uPar.mges);
}
else
{
$%uPar.myi = 0.0;
}
/* Status ED */
if (($%uPar.fkf > 0.0) &&
($%uPar.fkb < 0.0) &&
($%uPar.mges > 0.0))
{
$%uPar.okd = 0x01;
}
else
{
$%uPar.okd = 0x00;
}
/* Status ED Fahren */
if (($%uPar.fkf > 0.0) &&
($%uPar.mges > 0.0))
{
$%uPar.okdf = 0x01;
}
else
{
$%uPar.okdf = 0x00;
}
/* Status ED Bremsen */
if (($%uPar.fkb < 0.0) &&
($%uPar.mges > 0.0))
{
$%uPar.okdb = 0x01;
}
else
{
$%uPar.okdb = 0x00;
}
/* Status EP */
if (($%uPar.fkp < 0.0) && ($%uPar.mges > 0.0))
{
$%uPar.okp = 0x01;
}
else
{
$%uPar.okp = 0x00;
}
}
else
{
/* Einheit inaktiv */
$%uPar.akt = 0x00;
}
}
}
![求大神帮忙理解什么意思?]()
DB_PARAM.PNG |
|