24小时热门版块排行榜    

查看: 708  |  回复: 2

在路上henu

新虫 (小有名气)

[求助] 求大神帮忙理解什么意思?

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
回复此楼

» 猜你喜欢

明天会更好
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

somomo91

专家顾问 (职业作家)

Es ist Deutsch !
这是德语,是不懂德语,还是不懂程序?

» 本帖已获得的红花(最新10朵)

2楼2017-05-12 16:20:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

在路上henu

新虫 (小有名气)

送红花一朵
引用回帖:
2楼: Originally posted by somomo91 at 2017-05-12 16:20:41
Es ist Deutsch !
这是德语,是不懂德语,还是不懂程序?

不懂程序!可以帮我把程序改成,不用结构体和指针的C语言程序吗?

发自小木虫Android客户端
明天会更好
3楼2017-05-12 17:18:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 在路上henu 的主题更新
信息提示
请填处理意见