Einsprungpunkte > Modul Fertigung > Standardskript OPTLIB 

SBBWST: Unterscheidung Arbeitsplatzinstanzen.

Mit diesem Eingabepunkt kann in der Plantafel zwischen den Hauptarbeitsplatzinstanzen unterschieden werden (Konzept der Subarbeitsplätze).

Vorgehensweise:

-        bei Datenausgabe Arbeitsplatz (Aufsplittung der betroffenen Arbeitsplätze in so viele Instanzen wie notwendig)

-        bei Ausgabe der Arbeitsgänge (Zuweisung des Arbeitsgangs zu der korrekten Arbeitsplatzinstanz gemäß einem parametrisierbaren Kriterium)

-       bei Aktualisierung während der Plantafelausgabe (Aktualisierung des Kriteriums) - siehe Verarbeitung OPTLIBA

Beispiel:

Bei Unterscheidung anhand des Werkzeugs kann Arbeitsplatz 1 wie folgt aufgesplittet werden:

P1           - 00

P1           - 01 Werkzeug1

P1           - 02 Werkzeug2

Für die nicht anhand des Kriteriums zugewiesenen Arbeitsgänge steht stets die Instanz 00 zur Verfügung.          

Kontext und Funktionsmodus

Transaktion

Es gibt keine laufende Maskensteuerung.

Protokolldatei

Es kann eine Protokolldatei geöffnet sein (gemäß Startparameter der Plantafel).

Unterschiedliche Anwendungsfälle

Der Eingabepunkt wird zwei Mal aufgerufen, wobei jeder Aufruf über die globale Variable GSBBWST identifizierbar ist:

GSBBWST  = "LOADWST"                       

Ausgabe der Arbeitsplätze, über den Eingabepunkt muss die Liste der Ausfallkriterien des Arbeitsplatzes angegeben werden.

Vorgehensweise: Die Tabelle XSBBT(15)(100) muss so belegt werden, dass Index(0) leer ist. Die Variable NBSBB muss die Anzahl der belegten Zeilen enthalten. Wenn es sich um einen entsprechenden Arbeitsplatz handelt, muss die Variable GPE auf 1 gesetzt werden.

Beispiel:

XSBBT(0) = ""

XSBBT(1) = "OUTIL1"

XSBBT(2) = "OUTIL2"

NBSBB    = 3

GPE = 1

 

GSBBWST  = "LOADOPE"                        

Ausgabe der Arbeitsgänge. Dem Eingabepunkt muss das Unterscheidungsmerkmal in Form eines Feldes der Tabelle MFGOPE zu entnehmen sein. Hierfür muss die alphanumerische Variable XSCHSBB (Länge = 15) belegt werden.

Die Tabelle XSBBT muss neu geladen werden, sofern notwendig.

Beispiel:

XSCHSBB = "EQUNUM"     # Standardfeld Werkzeug

If [F:MWS]WST <> XWST

XSBBT(0) = ""

XSBBT(1) = "OUTIL1"

XSBBT(2) = "OUTIL2"

NBSBB    = 3

Endif

GPE = 1

 

Wichtiger Hinweis:                  

Da es notwendig sein kann, zum Wiederfinden der verwendeten Kriterien die Tabelle MFGOPE zu durchlaufen, wurde die spezielle Klasse [F :MFO2] geöffnet. Die Klasse [F :MFO ist online und darf nicht geändert werden.

 

 

Verfügbare Variablen und Masken

Beim ersten Aufruf (GSBBWST = "LOADWST") ist die Klasse [F :MWS] online.

Beim zweiten Aufruf (GSBBWST = "LOADOPE") sind die Klassen [F :MWS] und [F :MFO] online.

Geöffnete Tabellen

In nachstehender Tabelle weist das Kennzeichen "Wichtiger Inhalt" auf Inhalte hin, die im Kontext kohärent sind.

Tabelle

Wichtiger Inhalt

Tabellentitel

MFGHEAD

Nein

FA-Kopfzeile

MFGITM

Nein

Gestartete Artikel

MFGMAT

Nein

Material

MFGOPE

Nein

Arbeitsgänge (MFO und MFO2)

SCHEDULING

Nein

Einplanungsdaten

WORKSTATIO

Nein

Arbeitsplätze

TABWEEDIA

Nein

Wöchentliche CRM-Pläne

ITMMASTER

Nein

Artikel

ITMFACILIT

Nein

Artikel-Standort

 

OPE_FOCUS: Hervorhebung der Arbeitsgänge beim Plantafelstart.

 

Mit diesem Eingabepunkt kann eine Liste von Arbeitsgängen definiert werden, die in der ersten GANTT-Anzeige hervorgehoben werden sollen.

Mit dem Eingabepunkt kann darüber hinaus der Inhalt der Arbeitsganginformationen ersetzt werden.

Kontext und Funktionsmodus

Transaktion

Es gibt keine laufende Maskensteuerung.

Protokolldatei

Es kann eine Protokolldatei geöffnet sein (gemäß Startparameter der Plantafel).

Unterschiedliche Anwendungsfälle

Der Eingabepunkt wird bei Ausgabe der einzelnen Arbeitsgänge aufgerufen.

Die Maske [M :OPTK] ist zum Zeitpunkt des Aufrufs online.

Die Klassen [F :MFG], [F :MFO] und [F :SCH] sind online, und ihr Inhalt ist bedeutsam.

Das Hervorherben eines Arbeitsgangs wird mithilfe eines Aufrufs des Unterprogramms WRITE_FOCUS der Verarbeitung OPTLIBB umgesetzt.          

Subprog WRITE_FOCUS(LFCY, LCOD, LOK, LMESS)

, wobei:

Char     LFCY  : Fertigungsstandort

Char     LCOD  : Antwortcode  

"000" = Aktion vom Typ Fokus (Konstante)

Integer  LOK   : Fokusindikator

0 = kein Fokus (nur Ersetzung des Infotexts)

1 = aktiver Fokus

Char     LMESS : Als Infotext anzuzeigende Meldung

Die Arbeitsgang-Id muss in der Maske [M :OPW1] (MFGNUM, OPENUM, OPESPLNUM) erfasst werden. 

Implementierungsbeispiel

###########################################################################

$ACTION

Case ACTION

 When "OPE_FOCUS"      : Gosub OPE_FOCUS

Endcase

Return

$OPE_FOCUS

Local Integer IOK     : IOK = 0

Local Char    XMESS(250)  

Local Char    WCHAIN, WSPECHAR

 

# Zu Testzwecken werden diejenigen Arbeitsgänge hervorgehoben, die über ein hervorzuhebendes Werkzeug verfügen

If [F:MFO]EQUNUM = "" : Return : Endif

# Wenn eine Zeichenkette geschrieben wird, darf diese weder Komma noch Strichpunkt enthalten

WCHAIN     = [M:OPTK]ITMREF

WSPECHAR   = ","

Gosub REMOVE_CHAR From OPTLIB

[M:OPTK]ITMREF = WCHAIN

 

WCHAIN     = [M:OPTK]ITMREF

WSPECHAR   = ";"

Gosub REMOVE_CHAR From OPTLIB

[M:OPTK]ITMREF = WCHAIN

 

# Wenn eine Zeichenkette geschrieben wird, darf diese weder Komma noch Strichpunkt enthalten

WCHAIN     = [M:OPTK]ITMDES1

WSPECHAR   = ","

Gosub REMOVE_CHAR From OPTLIB

[M:OPTK]ITMDES1 = WCHAIN

 

# Wenn eine Zeichenkette geschrieben wird, darf diese weder Komma noch Strichpunkt enthalten

WCHAIN     = [M:OPTK]ITMDES1

WSPECHAR   = ";"

Gosub REMOVE_CHAR From OPTLIB

[M:OPTK]ITMDES1 = WCHAIN

 

 

XMESS = [F:MFO]MFGNUM+"/"+num$([F:MFO]OPENUM)-[M:OPTK]ITMREF-[M:OPTK]ITMDES1-"____(Der Fokus ist auf diesem Arbeitsgang positioniert)    "

 

[M:OPW1]MFGNUM = [F:MFO]MFGNUM

[M:OPW1]OPENUM = [F:MFO]OPENUM

[M:OPW1]OPESPLNUM = [F:MFO]OPESPLNUM

 

Call WRITE_FOCUS([F:MFO]MFGFCY, "000", IOK, XMESS) From OPTLIBB

Return

 

 

 

 

 
Geöffnete Tabellen

In nachstehender Tabelle weist das Kennzeichen "Wichtiger Inhalt" auf Inhalte hin, die im Kontext kohärent sind.

Tabelle

Wichtiger Inhalt

Tabellentitel

MFGHEAD

Ja

FA-Kopfzeile

MFGOPE

Ja

Arbeitsgänge

SCHEDULING

Ja

Einplanungsdaten

INIT_JAL: Initialisierung der Plantafel.

Mit diesem Eingabepunkt können alle im Speicher gehaltenen Arbeitsgänge vor ihrer Ausgabe zur Plantafel geändert werden, wenn bestimmte Werte anzupassen sind.

Kontext und Funktionsmodus

Die Änderung betrifft die Liste der im Speicher gehaltenen Arbeitsgänge.

Folgende Variablen stehen für alle Arbeitsgänge zur Verfügung:

Local Shortint WOPENUM (NBOPMX)           : # Nummer Arbeitsgang
Local Shortint WOPESPLNUM (NBOPMX)        : # Teil Arbeitsgang
Local Char    WWST    (GLONWST) (NBOPMX)  : # Arbeitsplatz
Local Char    WLAB    (GLONWST) (NBOPMX)  : # Mitarbeiter
Local Decimal WSETLABC(NBOPMX)            : # Koeff. Einstellung Arbeit
Local Decimal WOPELABC(NBOPMX)            : # Koeff. Betrieb Arbeit
Local Integer WOPESTA (NBOPMX)            : # Status Arbeitsgang
Local Date    WOPESTR (NBOPMX)            : # Beginndatum
Local Date    WOPEEND (NBOPMX)            : # Endedatum
Local Integer WWSTN   (NBOPMX)            : # Anz. Arbeitsplätze
Local Integer WLABN   (NBOPMX)            : # Anz. Personen
Local Integer WPRPTIM (NBOPMX)            : # Vorbereitungszeit
Local Decimal WSETTIM (NBOPMX)            : # Einstellungszeit für 1 Stück
Local Decimal WOPETIM (NBOPMX)            : # Stückzeit
Local Decimal WWAITIM (NBOPMX)            : # Wartezeit
Local Decimal WPSPTIM (NBOPMX)            : # Nachbearbeitungszeit
Local Decimal WQTY (NBOPMX)               : # Restmenge
Local Date    WFRCSTRD (NBOPMX)           : # Erzwungenes Beginndatum
Local Date    WOPEEND (NBOPMX)            : # Erzwungene Beginnzeit
Local Char    WFRCHOU(5)(NBOPMX)            # Uhrzeit erzwungen im Format hh:mm          
Local Decimal WFRCSTRF(NBOPMX)            : # Tagesbruchteil erzwungener Beginn
Local Integer WFRCFLG (NBOPMX)            : # Betriebskennzeichen erzwungener Beginn
Local Integer WWSTTYP (NBOPMX)            : # Fremdbearbeitungscode
Local Decimal WSCOLTI (NBOPMX)            : # Fremdbearbeitungsfrist
Local Char    WWIPNUM (GLONVCR)(NBOPMX)   : # Lfd. Nummer Fremdbearbeitung
Local Char    WSCOITMREF(GLONITM)(NBOPMX) : # Artikel Fremdbearbeitung
Local Integer WSCDCOD (NBOPMX)            : # Einplanungscode
Local Integer WNEXOPEN (NBOPMX)           : # Nr. nächster Arbeitsgang
Local Integer WNEXSPLN (NBOPMX)           : # Anteil nächster Arbeitsgang (angelegt in PG)
Local Integer WOPERG (NBOPMX)             : # Rang Arbeitsgang
Local Integer WOPETRT (NBOPMX)            : # In Klassifizierung verarbeiteter Arbeitsgang
Local Decimal WSCDPCT (NBOPMX)            : # % Überlappung

 Verwendung

Codebeispiel für das Ersetzen der Einkaufsfrist eines Artikels in Fremdbearbeitung durch die Frist aus Artikel-Standort:

$ACTION

Case ACTION

      When "INIT_JAL" : Gosub INIT_JAL

Endcase

Return

$INIT_JAL

For I = 0 To NBOP-1

   If WWSTTYP(I) = 3

       Read [ITF]ITF0=WSCOITMREF(I);WMFGFCY

       If !fstat : WSCOLTI(I)= [F:ITF]OFS : Endif

   Endif

Next I

Return