infra:NET User
 
×
830 Rechenfunktionen
Im Arbeitsgebiet "830 Rechenfunktionen" können Rechenregeln (Formeln) zur Berechnung von Stücklisten- und Arbeitsplandaten verwaltet werden. Bedingungen, Anweisungen und Texte bzw. Kommentare können erfasst, geändert und gelöscht werden.
Rechenfunktionen können bei der Generierung der auftragsindividuellen Stücklisten und Arbeitspläne aufgerufen werden. Eine Rechenfunktion arbeitet vorher definierte Rechenregeln ab. Sie werden zeilenweise definiert (eingegeben). Rechenfunktionen haben einen Namen, über den sie aus Variantenstücklisten und Variantenarbeitsplänen aufgerufen werden können. Für die Namensbildung gelten die selben Konventionen wie für Variablennamen in Varianten. Zusätzlich zum Namen gibt es eine Bezeichnung und einen Suchbegriff. Rechnen in der Variantengenerierung kann nur über Rechenfunktionen erfolgen. Das Ergebnis aus einer Rechenfunktion kann bei der Variantengenerierung erfragt oder zugewiesen werden. Der Aufruf erfolgt über die Anweisung "RECHNE" zum Beispiel:
MENGE = RECHNE(Regel01)
Die Eingabe der Rechenfunktion erfolgt zeilenweise in freiem Textformat. Man kann Marken definieren, die angesprungen werden können.
In einer Satzart wird festgelegt, um welchen Zeilentyp es sich handelt. Es gibt folgende Typen:
"   "
bedingungslose Anweisungszeile
wenn
Bedingungszeile
dann
Anweisungszeile für "wahr"
sonst
Anweisungszeile für "falsch"
*
Kommentarzeile
marke
Marke für Sprünge
Durch Eingabe des ersten Buchstabens wird der Typ festgelegt. Der restliche Text wird erzeugt. Durch das freie Eingabeformat kann während der Eingabe keine Prüfung erfolgen. Bei der Bearbeitung stehen jedoch Schaltflächen zur Verfügung, die eine Syntaxprüfung vornehmen (vgl. auch Variantenstückliste). Wird ein syntaktischer Fehler bei der Generierung erkannt, so erfolgt eine Fehleranzeige und die Bearbeitung der Rechenfunktion wird abgebrochen. Für Testzwecke kann eine Protokollausgabe eingeschaltet werden.
Rechenfelder werden nur zu Anfang der Generierung einer kundenindividuellen Stückliste initialisiert. Bei Aufruf einer Rechenfunktion werden die Rechenfelder nicht initialisiert! Bei der Generierung der Erzeugnisstruktur bleiben einmal errechnete Werte erhalten. Sie können somit in einer Variantenstücklistenstruktur durchgereicht werden. Werden mehrere Rechenfunktionen aufgerufen, so muss hier auf Überschneidungen und Doppelverwendung von Rechenfeldern geachtet werden. Es ist deshalb ratsam für Rechenfelder (R01-R99), die Konstanten oder immer wiederkehrende Ergebnisse enthalten, bestimmte Bereiche festzulegen.
Beispiel
Konstanten:
R01-R20
Ergebnisfelder:
R80-R99
Beispiel für eine Rechenregel
Berechnung der Abmessungen des Tisches ELAR. Um die inneren Abmessungen der Tischplatte zu erhalten, müssen die Maße der gewünschten Stützen und Kanten von den im Typenblatt festgelegten äußeren Abmessungen abgezogen werden.
Eingang
Nennbreite (R01) = 600 mm
Dem Rechenfeld R01 wird die Nennbreite zugewiesen
Nennlänge (R02) = 1200 mm
Dem Rechenfeld R02 wird die Nennlänge zugewiesen
R03 = 0 cm
Initialisierung
 Ausgang
R01
= 600 mm
bereinigte Breite, wenn keine Kanten erwünscht sind
 
= 576 mm
bereinigte Breite, wenn Kanten erwünscht sind
R02
=1200 m
bereinigte Länge, wenn keine Kanten erwünscht sind.
 
=1176 m
bereinigte Länge, wenn Kanten erwünscht sind.
R03
= 0
Länge der Stütze, wenn keine erwünscht sind
 
= 0,472 m
Länge der Stütze, wenn sie erwünscht sind
R04
= 0,72 m2
Fläche in Quadratmetern, wenn keine Kanten erwünscht sind
 
= 0,677376 m2
Fläche in Quadratmetern, wenn Kanten erwünscht sind
Rechenregel: AbmTisch   Berechnung der Tischabmessungen
Anmerkung
Mit der Zuweisung ENDE=Rxx wird der Rechenfunktion ein Wert zugewiesen. Erfolgt diese Zuweisung nicht, so hat die Funktion den Wert 0.
Beispiel
Zerlegen einer Seitenwand in n ganze Füllungen und eine Restfüllung:
Eingang
R03
= 6,58 m
Länge der unteren und oberen Profile
Stegbreite
= 2 cm
bei Teilenummer = 127417
 
= 3 cm
bei anderer Teilenummer
Ausgang
R04
= 2,02 m
Breite einer Füllung mit Steg
R05
= 0,52 m
Restbreite
RECHNE
= 3
Anzahl ganze Füllungen (Funktionswert)
Rechenregel: REGEL04     Anzahl Füllungen und Restfüllung
Rechenoperatoren
Unäre Operatoren:
!
Verneinung eines Ausdruckes
-
unäres Minus
Binäre Operatoren
=
Zuweisung
+
Addition
-
Subtraktion
*
Multiplikation
/
Division
ABS(Rnn)
Absolutwert
REST(Rxx,Ryy)
Modulo
INT(Rxx,Ryy)
Integerdivision
Vergleichsoperatoren
==
gleich
<=
kleiner gleich
kleiner
<> 
ungleich
>=
größer gleich
größer
 logische Verknüpfungen
&&
und
||
oder
Mit Klammern kann die Reihenfolge der Abarbeitung der Ausdrücke in Rechenregeln geändert werden. Klammern sind bis zu einer Schachtelungstiefe von 5 möglich. In einer Klammerstufe sind die logischen Verknüpfungen gleichwertig, d.h. sie werden der Reihe nach abgearbeitet.
Schlüsselworte zum Vergleichen aus S- oder A-Zeilen
STATUS
Satzstatus der Zeile
TEIL
Teilenummer
MENGE
Menge
VLZK
Vorlaufzeitkorrektur
VPREIS
Verrechnungspreis
GEWICHT
Gewicht in Kg
TYP
Typ Produktionsmittel
PM
Produktionsmittel
ZB
Kennzeichen Zeitberechnung
TR
Rüstzeit "tr"
TE
Ausführungszeit "te"
MC
Mengencode
SF
Splittfaktor
UELAP
Überlappungsfaktor
KZUEGZ
Kennzeichen Übergangszeit
UEGZFIX
Übergangszeit fix
UEGZVAR
Übergangszeit variabel
PERS
Personal
MST
Meilensteinkennzeichen
VARIANTE
Variante des Erzeugnisses (1. Stufe Stückliste)
Funktionsaufrufe
SPRINGE(Marke)
Springe nach Marke
ABS(Rnn)
Entferne das Vorzeichen von Rnn. Absolutwert: ABS (-8) = 8, ABS (+8) = 8
REST(Rxx,Ryy)
Rest aus der Division Rxx/Ryy. Modulo: REST(7,5) = 2
INT(Rxx,Ryy)
Ganzzahliger Teil aus der Division Rxx/Ryy. Integerdivision: INT(7,5) = 1
ENDE
Ende der Rechenregel (mit oder ohne Ergebnis)
Konstanten/ Variablen
"1234567"
Textkonstante (immer in Hochkomma)
1234567,123
Numerische Konstante (max 16 Stellen)
PARAM01
Variable - Parameter aus Typenblatt beginnt immer mit Buchstaben
Rechenfelder
Rnn      Rechenfelder R01-R99, Name als Variable nicht belegbar
Nur in Rechenfunktionen können Berechnungen der Rechenfelder durchgeführt werden. Bei der Generierung der auftragsindividuellen Stückliste können Rechenfelder verglichen und an Datenfelder oder Parameter zugewiesen werden. Die Rechenfelder haben die reservierten Namen R01-R99. Das Rechenergebnis selbst kann als Funktionswert durch die Zuweisung an den Funktionsaufruf "ENDE" übergeben werden.
In einer Anweisungszeile können mehrere Zuweisungen erfolgen. Eine Anweisung muss dabei jedoch mit ";" abgeschlossen bzw. von der nächsten getrennt werden. Bedingungen und Anweisungen können über mehrere Zeilen gehen.
Wird die Anweisung "ENDE" ausgeführt, wird die Bearbeitung der Rechenfunktion mit dieser Zeile beendet. Es kann eine Wertezuweisung an die Anweisung "ENDE" erfolgen. Erfolgt keine Zuweisung so ist der Funktionswert gleich Null. Die Anweisung "ENDE" ist nicht zwingend erforderlich.
Bei der Zuweisung der Rechenfelder oder des Funktionsergebnisses an Parameter oder Datenfelder werden diese in das entsprechende Format umgewandelt. Dies ist nur in einer Stückliste oder einem Arbeitsplan möglich.
Der Aufruf einer Rechenfunktion aus einer Rechenfunktion ist nicht möglich!
Kommentare in den Rechenfunktionen, die am Anfang stehen, können die Rechengeschwindigkeit ungünstig beeinflussen. Es ist deshalb ratsam die Kommentare an das Ende der Rechenfunktion zu setzen. Vor den Kommentaren sollte die Anweisung "ENDE" stehen. Damit wird die maximale Rechengeschwindigkeit erreicht. Zeilen in Rechenfunktionen mit Status <> " " werden nicht ausgeführt.
Rechenfunktionen mit Sprunganweisungen können während der Ausführung mit <ESC> abgebrochen werden. (Nur direkt vor "SPRINGE" wirksam, um Endlosschleifen entgegenzuwirken).
Protokollausgabe
Die Protokollausgabe kann je Rechenfunktion zu Testzwecken eingeschaltet werden. Im Programm Rechenfunktion bearbeiten muss dazu im Kopfsatz die Markierung «Protokoll» aktiviert werden. Der Name der Datei in die die Ausgabe erfolgen soll, kann über die Parameter "828 Generierung im Stapel" und "829 Einzelgenerierung" konfiguriert werden.
Es wird für jede Rechenfunktion eine Start- und eine Endezeile ausgegeben. Diese enthalten jeweils den Funktionsnamen.
Die Zeilen der Rechenfunktion werden dann eingerückt angezeigt. Es wird die Zeilennummer und die Zeilenart ausgegeben. Bei Bedingungen das Bedingungsergebnis "wahr" oder "falsch", bei Zuweisungen das Rechenfeld und der zugewiesene Wert. Im Fehlerfall wird die Fehlernummer ausgegeben und die fehlerhafte Zeile. Der Fehler selbst wird mit Pfeilen markiert.
Beispiel für Protokollausgabe siehe 828.02 Protokollausgabe zu "828 Generierung im Stapel".
Anmerkung
Eine Protokollausgabe kann auch für Variantenstücklisten und Variantenarbeitspläne eingeschaltet werden. Ein- und Ausschalten erfolgt im entsprechenden Variantenstammsatz im Feld «Protokoll».