-Menü

Beiträge anzeigen

Dieser Abschnitt erlaubt es Ihnen, alle Beiträge anzusehen, die von diesem Mitglied geschrieben wurden. Beachten Sie, dass Sie nur Beiträge sehen können, die in Teilen des Forums geschrieben wurden, auf die Sie aktuell Zugriff haben.

Beiträge anzeigen-Menü

Beiträge - krajtl

#1
zur Inspiration...

Mein Beispiel, wie ich die Orgeleinstellungen in der Orgel löste und sie für die automatische Einrichtung vom Speicher auf die Ausgänge zurückrief:

(*declarationnnn...*)

TYPE OrgRgMEM :
STRUCT
   OrgRgMEM: ARRAY [0..11] OF BYTE; (*Speichergröße für 90 Bit Digitaleingänge*)
END_STRUCT
END_TYPE

VAR
   Crescendo   : INT;            (*0..30 Speicherzeiger für OrgRgCrA30MEM*)
   ArrDI_OrgRgstr    : ARRAY [0..89] OF BOOL;   (*array of digital inputs*)
   OrgRgCrA30MEM   : ARRAY [0..30] OF OrgRgMEM; (*Speicher für 31 Varianten*)
   ArrRegCresA    : ARRAY [0..89] OF BOOL;   (*array zum Schreiben auf digitale Ausgänge*)
END_VAR

(*programmm...*)


(*pack*)
   FOR i:=0 TO 11 BY 1 DO
   FOR j:=0 TO 7 BY 1 DO
      CASE j OF
      0:   OrgRgCrA30MEM[Crescendo].OrgRgMEM.0:=ArrDI_OrgRgstr[(i*8 )+j];
      1:   OrgRgCrA30MEM[Crescendo].OrgRgMEM.1:=ArrDI_OrgRgstr[(i*8 )+j];
      2:   OrgRgCrA30MEM[Crescendo].OrgRgMEM.2:=ArrDI_OrgRgstr[(i*8 )+j];
      3:   OrgRgCrA30MEM[Crescendo].OrgRgMEM.3:=ArrDI_OrgRgstr[(i*8 )+j];
      4:   OrgRgCrA30MEM[Crescendo].OrgRgMEM.4:=ArrDI_OrgRgstr[(i*8 )+j];
      5:   OrgRgCrA30MEM[Crescendo].OrgRgMEM.5:=ArrDI_OrgRgstr[(i*8 )+j];
      6:   OrgRgCrA30MEM[Crescendo].OrgRgMEM.6:=ArrDI_OrgRgstr[(i*8 )+j];
      7:   OrgRgCrA30MEM[Crescendo].OrgRgMEM.7:=ArrDI_OrgRgstr[(i*8 )+j];
      END_CASE
   END_FOR
   END_FOR
(*end pack*)

(*unpack*)
   FOR i:=0 TO 11 BY 1 DO
   FOR j:=0 TO 7 BY 1 DO
      CASE j OF
      0:   ArrRegCresA[(i*8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM.0;
      1:   ArrRegCresA[(i*8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM.1;
      2:   ArrRegCresA[(i*8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM.2;
      3:   ArrRegCresA[(i*8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM.3;
      4:   ArrRegCresA[(i*8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM.4;
      5:   ArrRegCresA[(i*8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM.5;
      6:   ArrRegCresA[(i*8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM.6;
      7:   ArrRegCresA[(i*8 )+j]:=OrgRgCrA30MEM[Crescendo].OrgRgMEM.7;
      END_CASE
   END_FOR
   END_FOR
(*end unpack*)

#2
Hallo, um mit Luft und Dampf unter verschiedenen Druckbedingungen zu arbeiten, habe ich lib erstellt, die einfach und gleichzeitig relativ genau ist. Vergleichen Sie die Ergebnisse hier http://www.michell.com/us/calculator/