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.
Anmerkung
Eine Protokollausgabe kann auch für Variantenstücklisten und Variantenarbeitspläne eingeschaltet werden. Ein- und Ausschalten erfolgt im entsprechenden Variantenstammsatz im Feld «Protokoll».
