FORTRAN IV-programma's t.b.v. selectie en inplanning van
draadcombinaties op ARTOS-MM25
Citation for published version (APA):
Mathijssen, M. J. H. (1986). FORTRAN IV-programma's t.b.v. selectie en inplanning van draadcombinaties op ARTOS-MM25. (TH Eindhoven. Afd. Werktuigbouwkunde, Vakgroep Produktietechnologie : WPB; Vol. WPB0233). Technische Hogeschool Eindhoven.
Document status and date: Gepubliceerd: 01/01/1986
Document Version:
Uitgevers PDF, ook bekend als Version of Record
Please check the document version of this publication:
• A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website.
• The final author version and the galley proof are versions of the publication after peer review.
• The final published version features the final layout of the paper including the volume, issue and page numbers.
Link to publication
General rights
Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain
• You may freely distribute the URL identifying the publication in the public portal.
If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, please follow below link for the End User Agreement:
www.tue.nl/taverne Take down policy
If you believe that this document breaches copyright please contact us at: openaccess@tue.nl
providing details and we will investigate your claim.
1-1 verslag, rapportnummer 0233
Door : Mark Mathijssen, M.J.H
Datum: 16-12-'86
8..TAGEVERSLAG:
*
..
*'
T\lE
K
y~ 8~&A.~·' ~
l
-'It
'C\..."J...g.~It
~
~
\1
~o...Q.v.
*'-~~t~~
~~.y~.Bevat de beschrijving van de fortran-IV programma's:
ARTKOM: sortering "artoskombinaties" vanuit aderhulpbestand. ARTPLN: inplanning "artoskombinaties" op Artos MM-25.
Stage bedrijf Ergon Bedrijven Eindhoven
Stage peri ode 05-04-'86 tim 31-08-'86
Datum verslag 10-12-'86
Opleiding TH-Werktuigbouw
Stagier Mark Mathijssen
I INLEIDING ... It .. .. .. .. .. . . . . 2 II ERGONBEDRIJVEN EINDHOVEN 2 .. 1. Al gemeen ... It .. .. .. .. .. .. .. .. • .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . . . . 3 2.2. Draadboomconfectie 2.2.1. Algemeen ...•...•••...••••...••.. 6 2.2.2. Het productieproces ....•.•.•....•....•... 8 2.2.3. Aanwezige productiecapaciteit ...•••.... 10
III STAGE OPDRACHT 3 .. 1.. A1 gemeen ... 11
3.2. Stage opdracht ... 13
3 .. 3.. Ui twerking ... 14
IV COMPUTER PROGRAMMA'S 4.0. Wijzigingen niet doorgevoerd in verslag ...••.. 15
4.1. Beknopte beschrijv1ng ...•.•..•••.•...••••.. 16
4.2. Gebruikers handle1d1ng .••..•.•...•..•. 17
4.3. Beschrijving totale programma •...••...•..•.•.. 19
4.4. Enkele kritische kanttekeningen .••...••••...•.•• 64
4.5. Te verwachten werkzaamheden .•.••...••..•... 67
4.6. Toekomst1ge programma- en bestanden-struktuur K.S.A.-afdeling . . . 69 V SLOT ... ... .. 70 BIJLAGE I BIJLAGE II BIJLAGE II I: BIJLAGE IV :
Specif1cat1es van de artos MM-25
Recordslayouts van de versch111ende files Programma teksten (los bijgevoegd)
:Y'" ~""~ V k ,I).t)\-,(r,,"-l D~ '\~. ~
~"~.
~ ~~ ~~~
v--":.
4-2- \\ 1lWI-~'\", (~~
-Hoofdstuk I: INLEIDING
In dit rapport vindt u het verslag van de werktuigbouwkundige stage, de zogenaamde "Il-stage". welke ik heb verricht in het kader van mijn studie tot werktuigbouwkundig ingenieur aan de Technische Hogeschool in Eindhoven.
Deze stage heb ik verricht bij de Ergonbedrijven,
Rooyakkersstraat 3 in Eindhoven, in de periode van 7 april .~
1986 tot eind augustus 1986. Ik heb gewerkt op het ~ , I).#' ...
productiebureau van de afdeling draadconfectie. . ~ JY o~ J
~~
u~_~::::::->~.
Oorspronke11jk was de stageopdracht erg vaag: omsteltijden verkorten op een nog niet aanwezige machine.
Na een kle1ne ori~ntat1e omtrent de organisat1e en indeling van de Ergonbedrijven ben ik me gaan toeleggen op de reeds aangeschafte maar nog niet aanwezige machine: de Artos MM-25.
Al snel werd duidelijk dat de stage-opdracht zou neerkomen op het leveren van twee computerprogramma's.
Een programma welke uitgaande van het aderhulpbestand per draadboom kan bepalen welke aders als kombinatie-aders door de Artos-MM25 kunnen worden geproduceerd.
Een tweede programma welke de product1evolgorde van de te produceren kombinatie-aders bepaalt en welke de hiervoor de benodigde draadsoorten en applicaties inplant op de
Artos-MM25.
Eind augustus, drie maanden later zijn beide programma's gereed en klaar voor g~bruik.
_~ ~
~.~
~
~~
(J~ ~ p-vcp~
~.~
v,,~"Vfo~~o..
:)
CvV\,,~oc..VvLopbo~ (~~~~)
:=:)S~~/~~
c:-)
V~
U~
.C rlo-vv
~)
~~~~U~()~
~~Wr)~
.~
/p"rJf't~
/vtA.A-~
ck
~
l.
O~~~
UO-AA-C~\l~~)'
Hoofdstuk II: ERGONBEDRIJVEN - EINDHOVEN
2.1. Algemeen
Ergonbedrijven is een zelfstand1ge dienst van de gemeente Eindhoven voor de uitvoer1ng van de Wet Sociale Werkvoorz1en1ng.
Op grond van deze wet is namelijk elke gemeente
verplicht om zorg te dragen voor werkgelegenheid voor personen, die tot arbe1d in staat zijn, doch voor wie, in belangrijke mate t.g.v. bij hen gelegen factoren gelegebeid om onder normale omstandigheden arbeid te verrichtten niet, of voorhands niet aanwezig is. Via de Regeling Regionale Werkvoorziening Eindhoven werken de omringende gemeenten samen met de gemeente Eindhoven en laten zodoende de E~gonbedrijven Eindhoven zorg dragen voor ook hun uitvoeringen van de W.S.W. De werkverbanden binnen de Ergonbedrijven kunnen worden gezien als arbeidsgemeenschappen met een heel eigen aard en doelstelilng, afwijkend van de situatie zowel in het bedrijfsleven als bij de overheid.
Ergonbedrijven heeft ± 1500 werknemers in dienst via de W.S.W. Hiernaast heeft het 150 werknemers in dienst van de gemeente Eindhoven.
Ergonbedrijven is onderverdeeld in drie sectoren: 1. Industriele sectorj hier werken ongeveer
750 werknemers.
2. Buiten objectenj hier werken ongeveer 375 werknemers. Hieronder staan o.a. plantsoenen, kwekerij etc.
3. Administratief Dlensten Centrum; hier werken ongeveer 375 werknemers.
Hieronder staan o.a. de drukkerij, detacheringen.
Ergonbedrijven heeft deze drie sectoren verdeeld over een aantal vestigingen. De belangrijkste zijn:
1. De Hurk.
/ Bier werken ongeveer 400 werknemers.
/ / / Bier zijn ondergebracht: - een deel van de industrHHe
,/ sector
./'
- een deel van het admini-stratief diensten centrum - de stafafdelingen voor
aIle nederzettingen . Ook is hier ondergebracht de Stichting Bevordering Werkgelegenheid Sociale Werkvoorziening (S.B.W.S.W.). Deze stichting is opgericht door de gemeente ,
Eindhoven en stelt zich ten doel het bevorderen van de werkgelegenheid in de sociale werkvoorziening en de vermindering van de jeugdwerkloosheid, In deze stichting werken ongeveer 60 werknemers onder zogenaamde "twee-jaar- contractenl t
,
2. Achtse Barrier.
Hier werken ongeveer 350 werknemers.
Ondergebracht is een deel van de industriele sector.
3. Valkenswaard.
Hier werken ongeveer 100 werknemers.
4. Kwekerij.
Bet organisatieschema van de Ergonbedrijven staat op de volgende bladzijde.
Binnen de Ergonbedrijven werken 300 werknemers via de W.S.W. aan de draadconfectie, verdeeld' over 3 vesti-gingen. Het groots~te gedeelte 113 gevestigd op
vestiging De Hurk.
AIle werknemers binnen de Stichting B.W.S.W. werken aan de draadconfectie.
r
I I Bedrijfs-geneeskunde Draadfabri-cage de Hurk 14/ '
Controller 26•
I Automatiserine I Staffunctie/
d t us r:Le e '''1 16 In pr de Adm oducten Hurk + .Diensten -Techn.adj.di 1 L-
-Kwaliteit materiaal management -11 Person eels-zaken Industriele producten Acht + V'waard -
-
Hoof dproduc t it planning 1 Buiten objecten 24 Totaal 150 ORGANISATIESCHEMA VAN DE ERGONBEDRIJVEN2.2. Draadconfectie binnen Ergonbedrijven Eindhoven.
2.2. 1. Algemeen.
Binnen de afdeling draadconfectie worden draadbomen geproduceerd, hoofdzakelljk v~~r Volvo Car.
Een draadboom kan worden gezien als het elektriscbe circuit van een auto.
Een draadboom bevat een aantal verschillende soorten aders (dit zljn met P.V.C. omspoten koperen draden). Aan aIle draadeinden zijn terminals (contactdoosjes) bevestigd. Sommige draadeinden zijn met elkaar
verbonden via een terminal, een soldeerverbinding of een ultra-soon las.
Binnen de draadconfectle kan men onderscheiden de
productle van grote hoofddraadbomen en die van klelnere draadbomen. Een hoofddraadboom bevat tussen de 120 en
-160 aders, een klelnere draadboom bevat 2 tot 20 aders.=
--.
--Enige cijfers:
Productle per jaar: 60.000 hoofddraadbomen 600.000 klelnere draadbomen
50.000 flat cables (platte kleinere draadbomen). Het orderpakket bevat doorlopend ongeveer:
5 verschlllende hoofddraadbomen 9 verschl11ende kleinere draadbomen
Een draadboom bevind zlch gemlddeld een jaar in het productle-pakket.
Tijdens dit jaar ondergaat deze gemlddeld 3 wljzlglngen.
Voor de totale productle gebrulkt men: ± 120 verschlilende soorten aders.
± 75 terminals.
Een hoofddraadboom bevat tfmaximaalff: ± 50 verschl1lende soorten aders.
Serlegrootte bedraagt: 250 - 5.000 stuks. Gemiddelde aderlengte: 1,5 m.
1% van aIle aders heeft een lengte 1anger dan 3 m.
Het organisatleschema van de draadboomconfectie staat op de volgende paglna.
Productie halffabri-katen 3 de Hurk ~~~---~ ass. bedrijfl: leider r---I---.---~---Productie bureau 5 Montage stichting Montage deHurk
W.S.W.
3 . Technische Dienst 1 Coordinatie uitbestedingo
ORGANISATIESCHEMA DRAADBOOMCONFECTIE2.2.2. Het productieproces.
Het productieproces van een draadboom wordt
onderverdeeld in twee stappen te weten (1) de productie van halffabrikaten en (2) montage.
1. Productie halffabrikaten.
Ala ingangsmateriaal worden in tonnen opgerolde draad gebruikt.
De aders worden eerst op maat geknipt. Daarna worden de beide uiteinden op maat gestript. Hterna voIgt het aanslaan van de contactdoos (de zogeheten
terminals) m.b.v. persen (de zogeheten applicators). Ook moeten meerdere aders aan een uiteinde met
elkaar gecombineerd worden waardoor de Beleaelea combinatie-aders ontstaan.
De productie van halffabrikaten vindt plaats op de Knip-, Strip- en Aanslag-afdeling (K.S.A.-afdeling) op de vestiging De Hurk.
2. Montage.
De halffabrikaten geproduceerd op de K.S.A.-afdeling worden gemonteerd tot een draadboom.
Op de vestiging De Hurk worden per jaar gemiddeld 25.000 hoofddraadbomen gemonteerd. De overige draadbomen worden gemonteerd op de vestiglng
De Achtse Barrier of op andere uitbestedingsadressen.
Het productiebureau geeft de orders ult. Tot nu toe geeft men orders per type draadboom.
Een order bestaat uit: - shop packet work sheet:
Bevat de routing met bijbeborende uren.
- materiaal picking list Bevat de materiaallijsten - totaallijsten
Dit is een computeruitdraai waarop aIle aders staan welke behoren bij de bescbouwde draadboom met
Deze aders staan ala voIgt onderverdeelt: aangespoten aders lijst filomat aders lijst comax 1 aders lijst comax 2 aders lijat aanslag lijst
Aangespoten adera worden ala zodanig ingekocht. Filomat, Comax 1 en Comax 2 zijn de machines waarop de desbetreffende aders worden verwerkt (zte volgende paragraaf).
Op de aanslaglijst staan die aders waarop terminals met de hand aangeslagen moeten worden.
2.2.3. Aanwezige productiecapaciteit.
Knip-, Strip- en Aanslag-afdeling op De Hurk: Machines: Filomat: aanwezig 3 machines
bewerkingen zijn knippen, strippen, markeren
stamtijd: ± 1,8 min./lOO aders. Komax: aanwezig 4 machines
bewerkingen zijn knippen, strippen en aanslaan
stamtijd: ± 2,3 min./100 aders voor enkelzijdige aanslaan ± 3,0 min./100 aders voor tweezijdige aanslaan Handaanslag machine:
aanwezig 16 stuks
bewerking is handaanslag stamtijd: ± 5 min./lOO aders Ultra-Soon las machine:
aanwezig 2 stuks
bewerking is ultra-soon lassen van meerdere draadeinden
stamtijd: ± 30 min./lOO aders (voor 5 aders in 1 las)
Medewerkers: op de afdeling K.S.A. zijn 45 medewerkers werkzaam.
Montage-afdeling op De Hurk:
Er staan hier geen speciale machines.
De draadboom wordt samengesteld uit de aangeboden aders op een speciaal voor die draadboom vervaardigd
montagegebord.
Hoofdstuk III: DE STAGE OPDRACHT. 3.1. Algemeen.
De grootste klant van de draadconfectie. Volvo car, eist een productie verhoging van 60.000 naar 80.000
hoofddraadbomen per jaar.
Om aan deze eis te kunnen voldoen is het noodzakelijk dat vooral de K.S.A.-afdeling zijn productie verhoogd. Men hoopt deze productieverhoging mede te verkrijgen door de aankoop van een nieuwe machine: de Artos-MM25 (Multi Module).
Deze machine heeft de mogelijkheid aders te knippen, te strippen en aan te slaan, en kan zelfs 2 aders in een terminal combineren zodat er combinatie-aders ontstaan. Verdere mogelijkheden en randvoorwaarden van de Artos- MM25:
- op maat knippen van een ader - op maat strippen van een ader - het aanslaan van een terminal
- het "dubbelen" van 2 aders in een terminal - markeringen zijn niet mogelijk
- aderlengten groter dan 500 mm., no problem
- aderlengten tUBsen 270 en 500 mm. kunnen aIleen als
~ laatste ader uit een combinatie doo~~artos worden verwerkt
- aderlengten tUBBen 80 en 270 mm. kunnen aIleen aan een zijde gestript en aangesl~gen worden
- aderlengten kleiner dan 80 mm. kunnen niet worden verwerkt door de art os- machine
- het opzetten van kousjes of tules is niet mogelijk - aderdiameters groter dan 2,5 mm. en kleiner dan 0,3 mm.
kunnen niet worden verwerkt door de artos-machine - er kunnen 16 draden gelijktijdig op de machine
aangesloten worden
- er kunnen 8 applicators gelijktijdig op de machine staan
- stamtijd: 2,5 sec./draad Zie verder bijlage I.
Het in gebruik nemen van de Artos- MM25 heeft als
consequentie dat de tot nu toe gebruikte aderlijsten voor de verschillende machines, (de Filomat-lijst, de
Comax-l-1ijst en de Comax-2-lijst en aanslaglijst, zie paragraaf 2.2.2.) niet meer voldoen.
9 I
Namelijk. kombinatie-aders welke voldoen aan de hierboven gestelde rand- voorwaarden zullen van de bestaande
aderlijsten afgehaald moeten worden en overgeschreven moeten worden naar een nieuwe lijst: de lijst
artos-kombinaties.
Zodra men de lijst artos-kombinaties behorend bij een draadboom heeft vervaardigd rijst de volgende vraag:"wat is de optimale fabricagevolgorde van de te fabriceren artos-kombinaties.
Na een kleine inventarisatie van het bedrijf is mij de volgende opdracht gesteld.
3.2. De stage opdracht.
~
.
~~
Mijn stageopdracht luidt als voIgt:
Ontwerp, sehrijf en test de volgende computerprogramma's: tot ale
1. Programma 1, welk uitgaande van het
aderhulpbestand,bepaalt welke aders geschikt zi1n voor fabricage door de Artos-MM 25.
Alle randvoorwaarden van de Artos-MM25 moeten indit
~
programma logischerwljze worden verwerkt.
Het programma moet drie bestanden onderhouden namelijk: een best and aangespoten aders
een bestand artoskombinaties een bestand overige aders
()V...C1...
2. Programma 2, ~de optimale fabricage-volgorde van
de door de Artos-MM 25 te fabriceren comblnaties bepaalt. De optimale fabricage volgorde van kombinatie-aders is die volgorde waarbij de tijd, nodig om aIle gewenste kombinatie-aders te produceren, het kleinst is.
t~~ock
Hierna moeten draadsoorten en terminals voor de gehele produktie ingepland worden. Het programma moet een of~~
~~~
~
~~.
meerdere draadbomen tegelijk kunnen inplannen.
Aan beide programma's worden de volgende eisen gesteld: - de programma's dienen gebruikersvriendeliJk te zijn - de programma's dienen snel te zijn
- de programma's dienen overzichtelijk, leesbaar en goed gestruktureerd te zijn
- de programma's dienen te zijn voorzien van duidelijk commentaar
- de beide programma's mogen geen direct access files '
-
---afleveren3.3. Uitwerking
Op de Ergonbedrijven staat een IBM computer S 38. Belaas is aIleen een RPG-II compiler aanwezig.
RPG-II is een al wat verouderde taal en is vooral voor de in de vorige paragraaf genoemde programma's een zeer omsIachtige taal.
Als programma-taal is nu gekozen FORTRAN-IV. Dit omdat de mogelijkheid bestond, op een computer in een bijkantoor van IBM te Eindhoven te werken waar een FORTRAN-IV compiler aanwezig is.
Omdat de beschikbare tijd bij IBM gelimiteerd is heb ik genoemde programma's eerst op de TH op de
Burroughs-computer ingevoerd en getest.
Nadat op de Burroughs beide programma's naar wens
functioneerden heb ik ze overgebracht naar de IBM-S36 in het IBM gebouw waar de programma's zijn vertaald naar
IBM-machinetaaI.
Deze vertaalde versies heb ik daarna geinstalleerd op de IBM-~op de Ergonbedrijven.
De beschrijving van beide programma's vindt U in het volgende hoofdstuk.
Hoofdstuk IV: HET PROGRAMMA
4.0. Wijzigingen niet doorgevoerd in het verslag.
1. In de eisen gesteld aan beide programma's staat o.a. dat geen direct access-files afgeleverd mogen worden.
Deze eis heeft de afdeling Automatisering in een zeer laat stadium laten vallen .
.0
Nu was het mogelijk om prgramma ARTKOM te versnellen door de subroutine BASIS te veranderen en om programma ARTPLN te verbeteren door deze los te koppelen van een eventuele printing van de gemaakte planning. Deze verbetering heeft vooral voor subroutine SeHR80 gevolgen.
2. Uiteindelijk is geen onderscheid gemaakt tussen aan-gespoten aders en overige aders en vallen beide soorten onder de naam "overige aders".
Dit heeft tot gevolg dat file 30 (aangespoten aders) niet meer nodig is.
3. Aders met een Iengte korter dan 270 mm. kunnen niet
door de Artos MM-25 worden behandeld. In het ~
ligt deze waarde nog op 80 mm. \ • L
IU'-'~~~
4.1. Beknopte beschrijving van het programma:
In principe'zijn er twee verschillende programma's: 1. ARTKOM
2. ARTPLN ad 1: ARTKOM
Het programma ARTKOM kan, uitgaande van het hulpbestand, per draadboom bepalen welke aders aangespoten aders zijn, welke aders als combi;atie door de artos-machine gemaakt kunnen worden (zogenaamde artos-aders) en wat de overige aders zijn. Gelijktijdig wordt het hulpbestand
gecontroleerd op eventuele fouten in de kolommen "kombinatie x-zijdefi en "kombinatie y-zijde". Bij
constatering-van een fout wordt een-rQutmelding gegeven. De artos-aders worden samengevoegd tot kombinaties. Daarna worden deze kombinattes ondergebracht in de bijbehorende totaallijst.
Indien de draadboom reeds in het verleden is behandeld worden deze oude gegevens utt de totaallijsten gehaald. ad 2: ARTPLN
Het programma ARTPLN bestaat utt 2 hoofdprogramma's: PRMARK: T.b.v. het uitprinten van de lijsten aangespoten
adersd artos~binaties, overige aders of het
aderhulpbestand
ARTOPT: Creiert een optimale inplanning van terminals, draadsoorten en kombinaties op de art os-machine van een of meer draadbomen
Vanzelfsprekend zijn de randvoorwaarden van de Artos-MM25 genoemd in paragraaf 3.1 verwerkt in beida programma's.
4.2. Gebruikers handleiding
De programma menu's geven de gebruiker voldoende
informatie om een juist gebruik van de beide programma's mogelijk te maken.
Toch wil ik een aantal punt en verduidelijken:
1. Wanneer er een kombinatie is gecreeerd waarbij een ader een kous of tule bezit of waarvan een ader een lengte heeft, korter dan 500 mm, dan wordt deze kombinatie aan de gebruiker getoond en wordt gevraagd hoe de kombinatie in delen opgesplitst dient te worden.
?
De gebruiker dient hierbij het volgende te weten: - ook wanneer de gehele combinatie intact kan blijven
moet dit opgegeven worden.
Dus druk op !tenter", daarna ingeven dat er sen deel wordt gecreeerd, daarna aIle b1jbehorende adernummers 1ntoetsen.
- bij het opdelen van de gegeven combinatie moet men rekening houden met de specificat1es van de
artos-machine en met de mogelijkheden van de handmatige bewerkingen.
- wanneer in een kombinatie de laatste ader korter 1s dan 270 mm zal het programma ervoor zorgen dat de
niet-gekombtneerde zijde "GEEN" terminal aan zal geven. - wannser een kombinatie aan sen bepaalde zijde een kous
of tale heeft dan zal aan deze zijde "GEEN" terminal aangegeven worden. Tenzij de ader aan deze zijde is gecombineerd met een andere ader; dan wordt aan de ANDERE zijde "GEENII
terminal aangegeven.
2,
Het hulpbestand dient als invoer voor het programma ARTKOM.De vereiste record-layout vindt men in bijlage II in dit verslag. Kritiek is echter de invulling van de
specificaties tfkombinatie x-zijde" en "kombinatie y-zijde".
Formeel mogen hier alIGn ingevuld worden die adernummers waarmee de beschouwde ader is gekombineerd. Indien men aanvullende informatie wilt geven onder deze
specificaties, dan kan dat. Men moet hierbij het volgende in acht nemen:
- het eerste adernummer dat men ingeeft dient men altijd in te geven in 3 karakters. Dus geen " 13 !t maar "013". - wanneer men en adernummers en aanvullende informatie
wilt geven dan mag deze aanvullende informatie nooit ingetoetst worden v66r de plaats 10. DUB "0131..JLH ... w1..JW aanv.inf".
- wanneer aIleen aanvuIIende informatie wordt gegeven dan mag dit nooit voor de vierde plaats ingetoetst worden.
4.3. Beschrijving totale programma
Algemene opmerkingen bij de beschrijving van het programma: 1. Variabelen. welke in een subroutine gedeclareerd zijn,
enkel en aIleen omdat ze voorkomen in het COMMON-blok, worden niet besproken bij de beschrijving van deze subroutine.
2. Met "de ader specificaties" worden de volgende variabelen bedoeld: ARTNR, EXTNR, KLEUR, TERMX. TERMY, KOMBXZ. KOMBYZ. MARX, MARY, KOUBX, KOUBY, DELKOD
3. De beschrijving van de procedures vindt U bij de programma-tekst van deze procedures.
Er zijn twee procedures welke direct nodig zijn bij het gebruiken van de twee programma's, namelijk PARTKOM en PARTPLN.
Verder bestaan er de volgende procedures: POUNIFO
PNIOUFO
4. Alle door mij geschreven programmateksten en de bijbehorende vertaalde versies bevinden zich in een bilbiotheek, genaamd MKLIBR.
5. De recordbeschrijving van de genoemde files vindt U in bijlage II.
Programma ARTKOM Ingang gegevens: Funetie: - De door de gebruiker draadboom (HFDBM) - Sequentiele files: nr. 93: AANGESTT: in te toetsen te behandelen
bevat van aIle in het verleden behandelde draadbomen de
aangespoten aders.
nr. 94: ARTKOMTT: bevat van aIle in het verleden behandelde draadbomen die aders welke ala kombinatie door de artos-machine gemaakt kunnen worden.
nr. 95: OVERIGTT: bevat van aIle in het verleden behandelde draadbomen die aders welke ala overige aders
beschoud worden. nr. 10: ADDNI
~
het aderhulpbestand. (met nieuwe format)
Het programma ARTKOM kan uttgaande van het hulpbestand per draadboom bepalen welke aders aangespoten aders zijn, welke aders ala kombinatte door de artos-machine gemaakt kunnen worden
(zogenaamde artos-aders) en wat de overige aders zijn. De artos-aders worden samengevoegd tot kombinaties. Daarna worden de aders ondergebracht in de
bijbehorende totaallijat. Indien de draadboom reeds in het verleden behandeld is worden deze oude
gegevens uit de totaallijsten gehaald. Uitgang gegevens:
File nr. 30.40.50 welke beachouwd kunnen worden ala de ge-update versies van file 93.94.95.
Variabelen: Integer: E A KOMB KOM ADER DIAM LEN STLENX STLENY DELKOD
duidt het recordnummer uit file 45 aan geeft aan hoeveel aders het eerste record uit file 45 a&n x-zijde heeft (zie KREATI) wordt niet gebruikt in ARTKOMM zelf
kombinatie nummer welke gemaakt wordt adernummer diameter lengte striplengte x-zijde atriplengte y-zijde delition code
Real*8: ARTNR EXTNR KLEUR TERMX TERMY KOMBXZ KOMBYZ MARX MARY KOUSX KOUSY Logical: Mapics artikelnummer Extern artikelnummer Kleur
Terminal aan x-zijde Terminal aan y-zijde Kombinatie aan x-zijde Kombinatie aan y-zijde Markering x-zijde Markering y-zijde Kous/Tule x-zijde Kous/Tule y-zijde
GEEN
=
TRUE wanneer subroutine ZOEK de gezochte ader niet kan vindenEIND20 FOUT1 CONTRO
=
TRUE wanneer subroutine laatste record van file wordt niet gebruikt=
TRUE wanneer subroutineKREAT1 bij het 20 is beland
ARTOS merkt dat de gebruiker zelf kombinaties moet creeren F50
=
TRUE wanneer subroutine ARTOS ziet dat de infile 45 geplaatste kombinatie maar uit een adernummer bestaat
LAATST
=
FALSE; behalve bij gebruik van subroutine CONTRO (zie CONTRO)EERST
=
FALSE; behalve bij gebruik van subroutine CONTRO (zie CONTROlGlobale werking: statement: //READ DEVICE-KEYBD //PRINT DEVICE-PRTR //DISPLAY DEVICE-CRT: //SEQ UNITO //DAD UNITO
file 5 wordt gedefinUerd als keyboard
file 3 wordt gedefinieerd printerfile
file 6 wordt gedefinieerd als display
sequentiele files direct access files CALL POTART: subroutine potart genereert 3 verschillende files:
10 CALL KaEATI
nr. 20 uitgangaders nr. 30 aangespoten aders nr. 50 overige aders
uitgaande van file 20 creeert KREATI een komblnatie van aders en plaatst deze in file 45
IF (EIND20) GO TO 50 CALL ARTOS IF (CONTR) go to 30 IF (F50) GO TO 40 CALL SCHR40 30 CALL CONTRO 40 KOM
=
KOM + 1 GOTO 10 50 CALL BASIS 60 STOPals EIND20 is = TRUE ga door naar 50
ARTOS heeft de kombinatie uit file 45 en plaatst deze in file 46 in de
juiste volgorde
als CONTRO = TRUE ga door na 30; dit houdt in dat de gebruiker zelf kombinaties moet creeeren.
ala (F50)= TRUE ga door naar 40; dit houdt in dat de door KREATI in file 45 geplaatate kombinatie maar uit een draadsoort
bestaat.
SCHR40 schrijft de
komb1natie welke staat in file 46 weg in file 40 de gebruiker zelf creeert kombinat1es welke in file 40 worden weggeschreven
de volgende kombinatie wordt gecreeerd
file 30, 40 en 50 worden aangevuld met records uit resp. file 93, 94 en 95 welke niet behoren tot de beschouwde draadboom einde
Bijbehorende subroutines: POTART KREATI VOLGKO INLWEG ZOEK SCHRX SCHRY ARTOS CONTRO ZOEKl SCHR40 LAAT40 SCHR50 BASIS BAS93 BAS94 BAS95
Subroutine POT ART Funktie:
Selecteert uit het tot ale hulpbestand die aders welke behoren bij het opgegeven mapies artikelnummer. Deze geseleeteerde aders worden naar gelang hun
specifieaties verdeeld over file 30 (aangepaste aders), file 20 (uitgangsaders) en file 50 (overige aders).
Specificaties overlge aders:
Diameter groter dan 2,5 mm Lengte kleiner dan 80 mm
Meerdere aders in een terminal Geen kombinatie aan x- en y-zijde Markering aan x-zijde of aan y-zijde Speciflcaties aangespoten aders:
Terminal aan x- of y-zijde met nummer 949625, 968512 of 949626.
Aders welke niet aan bovengenoemde specificaties voldoen komen in file 20 (de uitgangs-file voor het verdere programma) Variabelen: Werking: De Z F G H ader specificaties. '949625 '949626 '968512'
HFDBM: De draadboom welke behandeld wordt
Er wordt ingelezen welke draadboom gewenst is. Achtereenvolgens wordt elk record uit file 10 het artikelnummer gelezen. Behalve de records welke DELKOD
=
1 bevatten. Indien ARTNR=
HFDBM dan wordt het hele record ingelezen. Al naar gelang despecificaties wordt naar statement 100, 150 of 200 gesprongen al waar het wordt weggeschreven naar respectievelijk file 30, 50 of 20.
Subroutine KREATI Functie:
Het creeren van een kombinatie van adere welke door de artos-machnine gemaakt kan worden.
Deze kombinat1e wordt gebouwd in file 45.
Wanneer de kombinatie compleet is staan de aders nog niet in de goede volgorde.
De goede volgorde wordt door de subroutine ARTOS bepaald. Variabelen: De ader HFDBM N~ GN VOLGEN: DE E A GEEN specificaties: de beschouwde draadboom 'GEEN 'VOLGEN 'DE TER'
geeft aan met welk record uit file 45 men bezig is
geeft aan hoeveel aders het eerate record uit file 45 aan x-zijde heeft
indien subroutine ZOEK de gewenste ader niet kan vinden: GEEN
=
TRUEEIND20: TRUE wanneer aIle records uit file 20 behandeld z1jn
Werking statement:
CALL VOLGKO Het, vanaf het begin getelde, eerstvolgende record uit file 20 welke nog niet behandeld is door
KREATI wordt in file 45, record 1 gezet.
60 Indien file 45 record E een kombinatie aan x-zijde heeft --- 80
Zo niet, dan kan voor TERMX (1,2) de werkelijke terminal aan x-zijde in file 45 worden geschreven. Daarna naar 200
80 Ale TERMY een kostal verbinding is --- 85 Zo niet, zoek dan KOMBXZ op in file 20
Als je deze niet vindt of wanneer meerdere aders aan x-zijde zijn verbonden --- 85
Ga naar 90
85 Er mag geen terminal aan x-zijde gemaakt worden 90 De terminal aan x-zijde van record E uit file 45 is
hetzelfde als die van het volgende record in file 45 en schrijf VOLGEND TE i.p.v. TERMI(l,2)
E = E + 1
Het volgende record kan uit file 20 ingelezen worden en weggeschreven worden in file 45, record E
Voor TERMX(I,2) kan de werkelijke waarde ingescbreven worden
(Bescbouw nu record E)
Heeft record E een kombinatie aan y-zijde? Zo ja ga naar 100
Zo niet, dan kan voor TERMY(1,2) de werkelijke waarde worden ingeschreven en naar 200
100 Is TERMY een kostal verbinding --- 110 Zo niet, zoek KOMBYZ op in file 20
Ais deze niet gevonden wordt of wanneer meer aders verbonden zijn aan de
y-zijde van deze ader --- 110 Zo niet, ga naar 120
110 Er mag geen terminal aan y-zijde worden aangeslagen Ga naar 200
120 De terminal aan y-zijde van record E is gelijk aan die van het volgende record in file 45 en schrijf door VOLGENDE TE i.p.v. TERMY(1,2)
E
=
E + 1De volgende ader kan uit file 20 worden gelezen en in file 45 worden gescbreven
(Beschouw nu record E) Ga naar 60 200 A
=
EE
=
E + 1Lees record 1 uit file 45 en schrijf deze weg op plaats E
(Bescbouw nu dit record E)
De opeenvolging van instructies is nu gelijk aan die van statement 60 met dien verstande dat nu begonnen wordt met y-zijde voor bet eerste record uit file 45 Bijbehorende subroutines: VOLGKO INLWEG SCHRX SCBRY ZOEK
Subroutine VOLGKO Functie:
Leest uit file 20 bet eerste record in welke nog niet bebandeld is (geteld vanaf bet begin van file 20 en scbrijft deze gedeeltelijk weg op bet eerste record van file 45).
"Gedeeltelijk" omdat de ruimten voor TERMX 0,2) nog opengelaten worden. Variabelen: Werking: De ader E EIND20 specificaties
geeft bet record in file 45 aan welke bescbouwd wordt
=
TRUE wanneer bet eind van file 20 bereikt is Het eerste record uit file 20 waarin DELKOD=
0 wordt ingelezen en weggescbreven in file 45Ook wordt in file 20 bij bet ingelezen record DELKOD
=
1 gemaaktIndien bet einde van file 20 is bereikt dan wordt EIND20
=
TRUESubroutine SCHRX (Sl, 82) Functie:
Schrijft in file 45 record E 81 en 82 op de plaatsen van TERMX(l) en TERMX(2)
Variabelen:
De ader specificaties:
E recordnummer in file 45
M de ingelezen waarde voor TERMY (1,2)
Sl, S2: Datgene wat geschreven moet worden op de plaats van TERMX(1,2)
Werking: statement:
Voor record E wordt gelezen TERMY(1,2) (genoemd M (1,2»
Als M (1,2) = 0 --- 20
Zo niet, schrijf dan in file 45, record E:
Sl, S2 op de plaatsen van TERMX(1,2) spaties t I " " It TERMY(l,2) 20 Schrijf in file 45, recotd E:
Sl, S2 op de plaatsen van TERMX(l,2)
Subroutine SCHRY(St, S2) Funktie:
Schrijft in file 45, record E de de waarden van St en S2 op de plaats van TERMY(t,2)
Variabelen:
Werking:
De ader specif1caties:
E recordnummer in file 45
St, S2 Datgene wat gekozen moet worden op de plaats van TERMY (1.2)
Subroutine ZOEK (KOMB.Q) Funetie:
Zoekt in file 20 de gezoehte ader KOMB.
Controleert tevens of KOMBXZ of KOMBYZ van de gevonden ader gelijk is aan het adernummer van de laats behandelde ader.
Indien dit niet bet geval is wordt dit gemeld. Variabelen:
Werking:
De ader specificaties: KOMB De gezoehte ader
K Het ingelezen adernummer
L De nagelezen KOMBXZ(l) van de gevonden ader
M De nagelezen KOMBYZ(l) van de gevonden ader
GEEN
=
TRUE wanneer de gezochte ader niet gevonden is in file 20Q
=
1: wanneer de gezochte ader aan x-zijde is verbonden met de behandelde ader=
2: wanneer de gezochte ader aan y-zijde is verbonden met de bebandelde aderSubroutine INLWEG Functie:
Leest uit file 20 de door subroutine ZOEK gevonden ader in en schrijft deze weg in file 45, record E, en laat hierbij open plaatsen voor TERMX(1,2)
TERMY(l,2).
Schrijft bij de ingelezen ader in file 20 DELKOD
=
1. Variabelen:De ader specificaties:
E : geeft het recordnummer in file 45 aan Werking:
Subroutine ARTOS Funetie:
Beschouwd de gegeven kombinatie in ader 45.
Indien deze ader uit enkel e~n ader bestaat dan wordt subroutine SCHR50 aangeroepen en wordt deze ader in file 50 weggeschreven.
In de overige gevallen worden de aders uit file 45 gelezen en in de juiste volgorde in file 46
geplaatst.
Indien de kombinatie een ader bevat waardoor de lengte kleiner dan 500 mm is of welke een kous of tule bevat wordt dit bier opgemerkt en CONTRO: = TRUE.
Variabelen:
De ader specificaties:
E geeft bet adernummer in file 45 aan
F tot ale santal records in file 45
A KOM HFDBM CONTR F50 Werking: statement: F
=
Egeeft aan hoeveel aders record c.q. ader 1 aan x-zijde heeft bangen.
Dus in feite het aantal records, totdat record 1 herhaalt wordt in record (A+1) in file 45
de bescbouwde kombinatie de beschouwde draadboom
= TRUE wanneer van de ingelezen ader LEN
4
500 of KOUS(l): I f ofKOUS(2)= f •
=
TRUE wanneer file 45 enkel een ader bevatF50 = FALSE CONTR
=
FALSERecord E uit file 45 wordt ingelezen
Indien E
=
2 (d.w.z. file 45 bevat een adernummer) --- 20Zo niet, ga dan naar 30
20 Schrijf deze ader weg in file 50
Verminder KOM met Itl " omdat ARTKOM altijd KOM met "1" verboogd.
Ga. naar 100
30 Als LEN
<
500 mm, KOUSX(l)= of KOUSY(2)= --- 28Zo niet, ga naar 32 28 CONTR = TRUE
32 Schrijf het ingelezen record weg in file 46 Als E
=
A + 1 (d.w.z. wanneer de ingelezen ader gelijk is aan de allereerste ader in file 45) ga dan naar 50Zo niet, ga naar 40 40 Verminder E met "1"
Lees uit file 45 record E
Ga naar 30
50 E
=
2 (omdat record "1" al behandeld is n1. ala record (A +1»
Als E
=
A=
1 (d.w.z. wanneer record E gelijk is aan de allerlaatste ader in file 45) ga dan naar 100Zo niet, ga naar 52
52 Lees record E uit file 45
Als LEN< 500, KOUSX(l)='
dan naar 55
Zo niet, ga naar 60 55 CONTR
=
TRUEof KOUSY(l)='
60 Schrijf de ingelezen ader weg in file 45
E
=
E + 1Ga naar 51 100 Elnde
Subroutine CONTRO (KOM, HFDBM, E) Funetie:
Deze subroutine wordt aangeroepen indien de door ARTOS in file 46 geplaatste kombinatie een ader bevat waarvan de lengte~ 500 mm of welk een tule of kous bezit.
CONTRO biedt de mogelijkheid aan de gebruiker om nu ultgaande van de kombinatie in fl1e 46 zelf
kombinaties of losse aders te creeeren. Variabelen: De A AD ader specificaties:
c
B KOMBIN KOM NUL KLAAR LAATST EERST FOUTZ 1 E Werking: statement: 5 - REWIND 46teller voor array AD
array bestaande uit adernummers welke door de gebruiker in een kombinatie worden geplaatst
aantal kombinaties welke de gebruiker wenst te maken
'KLAAR' of '
kombinatienummer welke door de gebruiker gemaakt wordt
kombinatienummer bezien in het totaal van kombinatienummers welke reeds door het programma zijn gemaakt
,
,'KLAAR'
geeft aan of het beschouwde adernummer de laatate is in de door de gebruiker gemaakte kombinaties
geeft aan of het bescbouwde adernummer het eerste adernummer in de door de gebruiker gemaakte kombinatie
=
TRUE wanneer subroutine ZOEK1 de gezochte ader niet kan vinden.(aantal records in file 45)
- al s E ;f 3 - - - - 9
Als E
=
3 dan staan er 2 aders in file 45. Voor een combinatie van twee aders kan de subroutine CONTRO onder bepaalde voorwaarden zelf de verwerking aan. Deze voorwaarden luiden: geen kousen of tules, lengtes.c,80 mm in de kombinaties, en geen 2 lengtes
<:.
500 mm. Wanneer hieraan wordt voldaan dan:REWIND 46
- AD(l) en AD(2) worden gevuld met de twee adernummers. - Ga naar 126
9 - REWIND 46
50 - Als de gebruiker klaar is --- 200 Zo niet, ga naar 90
90 95 100
Als er tets verkeerds is ingetoetst --- 50
105 C bevat het aantal door de gebruiker te maken kombinaties
110
125 Het array AD(1.4) bevat de aders voor kombinatie KOMBIN Als AD(2)
=
0 dan bestaat, de kombinatie uit een ader --- 135Zo niet, --- 126 126
A
=
1
EERST
=
TRUE (de eerste ader) 127 LAATST=
FALSE (de laatste ader) 128 Zoek AD(A) op in file 46Wanneer LAATST
=
TRUE in file 20Als deze niet gevonden is, dan FOUTZ1
=
TRUE en overnieuw beginnen --- 9Als de ader weI gevonden is, schrijf deze dan weg in file 40
EERST
=
FALSE (de eerste ader is voorbij) 130 A=
A + tAls AD(A)
=
0 --- 140132 Ala AD(A+1)
=
0 (dus AD(A) is de laatste ader) --- 134 Zo niet, dan naar 127134 LAATST
=
TRUE (laatste ader) Ga naar 128135 Schrijf AD(l) weg in file 50
KOM
=
KOM - 1 (omdat KOM en ARTKOM automatisch met "1ft verhoogd wordt)140 Wanneer aIle opgegeven kombinaties zijn gemaakt
--- 200
Anders naar 150 150 KOMBIN
=
KOMBIN + 1KOM :: KOM + 1
Maak array AD gelijk aan 0 Bijbehorende subroutines
SCHR40 SCBR50 ZOEK1
Subroutine ZOEKl Funetie:
Zoekt de gezoehte ader (GEZAD) op in file 46 (als LAATST
=
FALSE) of in file 20 (als LAATST=
TRUE). Tevena wordt gemeld wanneer de gezoehte ader niet te v1nden is.Var1abelen:
GEZAD De gezoehte ader
ADER De ingelezen ader
FOUTZ1:
=
TRUE wanneer de GEZAD niet is te vindenWerking:
Subroutine SCHR40(KOM, LAATST, EERST,E) Funetie:
Schrijft een of meerdere records (afhankelijk van de waarde E) weg in file 40
Variabelen: De ader KOM
E
specificaties:
kombinatienummer wat behoort bij het weggeschreven record
(E-l) is het aantal records dat weggeschreven wordt
LAATST: Geeft aan of het weg te schrijven record het laatste record van de kombinatie is
EERST : Geeft aan of het weg te schrijven record het eerste record van de kombinatie is
Werking: statement:
A = 1
Als LAATST IS TRUE (d.w.z. wanneer de laatste ader van een kombinatie geschreven moet worden in file 40) ---' 70
Het desbetreffende record wordt gelezen.
Ala er een kous of tule aan x- of y-zijde zit dan zal tot hier geen terminal komen. Tenzij de ader aan deze
15 zijde gecombineerd is, dan zal aan de andere zijde geen terminal komen.
15 Wanneer EERST=TRUE (d.w,z. wanneer het een eerste
ader betreft) 17.
Zo niet --- 25.
17 Men beschouwt nu een ader, welke eerst is in een kombinatie. Het kan zijn dat deze ader uit een kombinatie van aders is gehaald. Deze kombinatie is dus gebroken. Men mag dus aan x- of y-zijde geen terminal plaataen.
Als 80 ~lengte~ 270 dan kan deze ader maar aan een zijde aangeslagen worden. De andere zijde dient later met de hand te gebeuren.
25 De ader wordt weggeschreven in file 40
Ala A
=
E - 1 dan behoeven er niet meer records worden weggeschreven --- 100 Zo niet --- 30 30 A=
A + 1 (het volgende record uit file 46 wordtweggeschreven) --- 50 70 Roep aan LAAT 40 (KOM)
Subroutine LAAT40 (KOM) Functie:
Schrijft het laatste record van een door CONTRO gemaakte combinatie weg in file 40
Tevena voert het een controle op de aanwezigheid van terminals.
Variabelen:
De ader specificaties
KOM: geeft aan bij welke kombinatie het weggeschreven record behoort.
Werking: statement:
Bet door ZOEKl opgezochte record wordt uit file 20 gelezen
BACKSPACE 40
TERMX en TERMY van het een na laatste record van de beschouwde kombinatie worden gelezen en worden genoemd TX en TY
12 - 24 Zie SCHR 40 IT-totl5 "
24 Als LEN ~270 mm --- 25
Als TX= VOLGEN 30
Ala TY= VOLGEN --- 50
25 Er geldt nu dat LEN
<
270 dus de beschouwde ader kanmaar aan een zijde aangeslagen worden 35 of 55
30 Bier geldt dat de beschouwde ader aan x-zijde is verbonden met de voorgaande. Indien de ader in de uiteindelijke kombinatie ook aan y-zijde wordt gekombineerd mag daar nu GEEN terminal aangeslagen worden --- 35.
50 Bier geldt dat de beschouwde ader aan y-zijde is verbonden met de voorgaande. Indien de ader is de uiteindelijke combinatie ook aan x-zijde wordt gecombineerd mag daar nu GEEN terminal aangeslagen worden --- 55
100 Schrijf het laatste record weg in file 40 Einde
Subroutine SCHR50(ADER,HFDBM) Functie:
Schrijft adernummer ADER weg in file 50 zoals deze geschreven staat in file 20
Variabelen:
Werking:
De ader specificaties:
HFDBM: de bestaande draadboom AD : het gelezen adernummer
Subroutine BASIS(HFDBM) Functie:
Het aanvullen van files 30, 40 en 50 met records uit files 93, 94 en 95 welke niet behoren tot de
bestaande draadboom Bijbehorende subroutines:
Werking:
BAS93 behandeld file 30 en 93 BAS94 behandeld file 40 en 94 BAS95 behandeld file 50 en 95
Programma ARTPLN Functie:
Biedt de gebruiker de mogelijkheid om de keuze te maken tussen de programma's PRMARK of ARTOPT
Invoer gegevens: Sequentiele files:
nr. 93 ANGESTT
nr. 94 ARTKOMTT
nr. 95 OVERIGTT
nr. 10 ADDNI aderhulpbestand (met nieuwe format)
Uitvoer gegevens: Printer tiles Bijbehorende subroutines
ARTOPT PRMARK
Subroutine ARTOPT Functie:
Creeert een optimale inplanning van terminals,
draadsoorten en kombinaties op de artoa-machine voor de productie van een of meer draadbomen
Variabelen:
Integer:
MEEST(I) array, bevat de voorkomende draadsoorten,
welke vast op de machine mogen komen APPLGT PRODX tim LEEG N Logical: EIND40 OMKEER VOLGEN Werking: statement: te staan
bevat de meest voorkomende terminal RFDBM: Zie subroutine PLANVB
=
TRUE als OPTVOL het etnde van fUe bereikt heeft=
TRUE als OPTVOL vindt dat TERMI en TERMY onderling verwisselt moeten worden=
FALSE voor de eerate planning welke SeRRSO wegschrijft40
file 40 wordt gevuld met te behandelen kombinaties tot
6
6 file 40 wordt uitgeprint wanneer de gebruiker dit wil tot
10
10 CALL SRTDRD
CALL APPLIC CALL FIRSTK
13 de arrays PRODX tim DUMY worden met spaties gevuld tot
21
M
=
1CALL PLANVB : de eerste kombinatie wordt ingevuld in VOORBX(M,F) , VOORBY(M,F)
CALLSCHRSO : deze wordt geschreven planning 'M' 30 M
=
M + 135 CALL PLANPD ; hetgeen wat voorbereid is in planning (M-l) wordt nu in productie g.epland Ais dit de laatste komblnatie uit file 40 --- 100 Zo niet, CALL OPTVOL
Als de laatste kombinatie uit file 40 is gebaald
--- 35
Zo niet, CALL PLANVB
CALL SCHR80j planning 'M' wordt geschreven GO TO 30
100 VKOM
=
0CALL SCHR80 weggescbreven
Bijbehorende subroutines: EERST PR40 SRTORD APPLIC FIRSTK PLANVB SCHR80 VASTDR VERGEL PLANPD OPTVOL ZKSCHR TERXGL TERYGL
Subroutine EERST(HFDBM,I) Funette:
Plaats aIle aders behorende bij draadboom HFDBM welke in file 94 staan in file 40.
Wanneer er meerdere draadbomen in file 40 komen worden de kombinatie- nummers opeenvolgend genummerd vanaf 1. Variabelen; Integer: Werking: De ader speeifieattes 10M ingelezen kombinatienummer I weggesehreven kombinatienummer Real*8: HFDBM H Logical: te besehouwen draadboom ingelezen draadboom
GEVOND :
=
TRUE wanneer de draadboom is gevondenSubroutine PR40 Functie:
Schrijft de inhoud van file 40 weg naar printer Variabelen:
De ader specificaties:
KOM kombtnatte nummer
A : bezit de laatst gekozen waarde van KOM, of
=
0 Werking:Subroutine SRTDRD FuncUe:
Bepaalt aIle voorkomende draadsoorten in file 40, en tevens het aantal malen dat een draadsoort voorkomt. Hierna worden de draadsoorten in volgorde gezet afhankelijk van het aantal malen dat deze
draadsoorten voorkomen in file 40. (array GESORT) Uiteindelijk komen in array MEEST die draadsoorten welke bij productie van aIle kombinaties op de
artos-machine constant op de machine kunnen blijven. Variabelen: Integer: DIAM A (AMAX+2)/3 C F Real*8: MEEST(I) DIAKLE(I) SOORT (I,J) GESORA(I) GESORT(I) LEEG Logical: diameter
variabele met meerdere functies, zie "werking"
tot dan toe gevonden aantal draadsoorten variabele
indices voor de tot dan toe meest voorkomende draadsoort in SOORT array. bevat die draadsoorten welke bij productie van aIle kombinaties uit file 40 op de artos-machine constant op de machine kunnen blijven
array, bevat die draadsoort specificatie van de beschouwde ader
array, - SOORT (1,1), SOOR(1 + 1,1)
en SOOR (I + 2, 1) b i j I
=
1, 3 , 6 , 9 .... bevatten de draadsoort- SOORT (1,2) bij 1=1,3,6,9 .... bevat het aantal malen dat de draadsoort is voorgekomen array, bevat het aantal malen dat GESORT(I) voorkomt
array, bevat de draadsoorten uit file 40 in volgorde van voorkomen in deze file 40
EIND40: wordt niet gebruikt OMKEER: wordt niet gebruikt
Werking: statement:
Eerst worden de array's SOORT, GESORT en MEEST gevuld met 0 of •
Dan wordt van record 1 uit file 40 de draadsoort in DIAKLE (1 tIm 3) gezet
DIAKLE wordt de eerst soort en als zodan1g 1n SOORT
(1 tim 3, 1) gezet, en de draadsoort 1s nu dus 1 x
voorgekomen; SOOR(l,2)
=
110 A
=
1DIAKLE(l tim 3) bevat de draadsoort van het volgende record, als er geen volgend record ~eer 1s --- 100 25 Als DIAKLE(1 tim 3)
=
SOORT(A tim A+2,1) --- stat. 30Zo n1et, dan 1s SOORT(A tim A+2,1) alweer een keer voorgekomen dus SOORT(A,2) wordt met een verhoogd Ga naar 10
30 Als A
=
AMAX --- 40 Zo n1et, ga dan naar 50 40 A=
A + 3GO TO 25 DIAKLE(l tim 3) wordt vergeleken met de
volgende tot dan toe bekende draadsoort 50 Een n1euwe draadsoort wordt gemaakt 55 Ga naar 10
100
tot De draadsoorten 1n SOORT(I tim 1+2,1) worden in volgorde van voorkomen 1n array GESORT(J) gezet 170
300 F
=
(AMAX + 2)/3: werkelijk totaa1 aantal voorkomende draadsoorten in file 40305
300 Het array GESORT(l tim M) wordt in het array MEEST(1
tim M) gezet 320
320 tot
Voor M geldt de volgende voorwaarde: - indien F 16: M = F
- indien F 16: M
=
13360 AIle voorkomende draadsoorten worden gepr1nt
Subroutine APPLIC Functie:
Bepaalt de meest voorkomende terminal in file 40 Variabelen: APPLGT(I) GT APPL(I,J) VOLGEN GEEN Werking: statement: array APPLGT (1
=
l,~bevat meest voorkomende terminalsoort tot dan toe
aantal malen dat de meest voorkomende terminal voorkomt
array, APPL I tim (I + 1,1) met I
=
1, 3, 5, 7, bevat terminalsoort APPL (1,2) metI
=
1, 3, 5, 7 bevat hetaantal malen dat deze terminal is voorgekomen
'VOLGEN' 'GEEN'
5 AIle terminals aan x-zijde worden ingelezen. Worden
tim daarna vergeleken met de reeds ingelezen
150 terminalsoort. Is de ingelezen terminal gelijk aan een reeds bekende terminalsoort dan wordt hierbij de APPL(I,2) opgehoogd. Zo niet, dan wordt een nieuwe terminalsoort aangemaakt: APPL(I tim I
=
1,2). 100 Hetzelfde gebeurt met de terminals aan y-zijdetim
150
200 Van aIle terminalsoorten wordt de meest voorkomende bepaald
tim Deze wordt APPLGT(l tim 2) genoemd 230
Subroutine FIRSTK(TELLER) Functie:
8epaald in welke kombinatie uit file 40 de terminal APPLGT (de meest voorkomende terminal) het meest voorkomt.
Daarna wordt subroutine ZKSCHR aangeroepen welke deze kombinatie in file 60 schrijft.
Variabelen: Real*8 TERMX(I) TERMY(I) APPLGT Integer: KOMTOT(I) KOM KOMEEN A TELLER Logical:
array bevat de terminal welke aan de x-zijde van een ader is verbonden array bevat de terminal welke aan de y-zijde van een ader is verbonden meest voorkomende terminal in file 40
array, bevat het aantal malen dat kombinatie nr. I, de terminal APPLGT bevat
kombinatie nummer
kombinatienummer van die kombinatie waarvan KOMTOT het hoogste is tot dan toe
variabele
telt hoeveel records de subroutine ZKSCHR in file 60 plaatst
EIND40: wordt niet gebruikt
OMKEER: wordt niet gebruikt of toegepast in FIRSTK (ingangsvariabele voor ZKSCHR)
Werking: statement:
5 : KOMTOT(KOM) wordt voor elke kombinatie bepaald tot
50
50 KOMEEN wordt bepaald
tim
90
100 Subroutine ZKSCHR schrijft kombinatie KOMEEN weg in file 1)0
Subroutine PLANVB(TELLER) Functie:
De terminals behorend bij de kombinatie welke is gegeven in file 60 worden ingepland in planning M als kombinatie welke voorbereid moet worden.
Variabelen: Intege.r: M VKOM PKOM F,G,Z,I,U TELLER T
o
DIAM(O) REAL*8: PRODX(M,F) PRODY (M,F) VOORBX(M,F) VOORBY(M,F) DUMX (M,F) DUMY (M,F) KLEUR1(O) KLEUR2(O) planning nummerkombinatie welk voorbereid wordt kombinatie welke in planning M in productie is
willekeurige indices
geeft aan hoeveel records in file 60 zijn geplaatst
geeft aan hoeveel records door PLANVB behandeld zijn
indices voor de arrays DIAM, KLEUR1, KLEUR2
array, bevat de diameter welke voorkomt in de beschouwde kombinatie
array, bevat die terminals welke onder 'productie' ingepland zijn in planning M aan x-zijde: F duidt de plaats aan (1 ~ F ~ 8) zie PRODX, maar nu y-zijde zie PRODX, maar nu ingepland onder 'voorbereiden'
zie PRODY, maar nu ingepland onder 'voorbereiden'
zie PRODX, maar nu ingepland onder 'dummy'
zie PRODY, maar nu ingepland onder 'dummy'
array, bevat de eerste zes karakters van de kleuren welke voorkomen in de beschouwde kombinatie
array, bevat het laatste karakter van de kleuren welke voorkomen in de beschouwde kombinatie TERMX(O).TERMX(O+f): bevat de terminal aan x-zijde
van de beschouwde ader
TERMY(O),TERMY(o+i): bevat de terminal aan y-zijde LEEG
VOLGEN GEEN
van de beschouwde ader 'VOLGEN'
Werking: statement:
De arrays DIAM, KLEUR1, KLEUR 2 worden leeg gemaakt REWIND 60
T = 1 0=1 10 F
=
1U1t f11e 60 wordt ingelezen KOM. TERMX(O en O+() TERMY(O en 0+4) I (m.b.v. DIAM, KLEUR1, KLEUR2)
20 Wanneer TERMX geUjk 1s aan 'VOLGEN' of 'GEEN" dan hoeft deze niet ingepland te worden.
25 Wanner TERMX gelijk 1s aan een a1 eerder ingeplande
terminal uit dezelfde kombinatie dan moet worden nagegaan of deze nog eens moet worden ingepland --- CALL TERXGL 30 Als PRODX(M,F) gelijk is aan TERMX en ala VOORBX (M,F) tot leeg 1s dan kan TERMX hier ingepland worden.
50 Doe di t voor 1 ~ F 5: 8
51 Als DUMX(M,F) gelijk is aan TERMX en als VOORBX(M,F) tot leeg dan kan TERMX hier ingepland worden.
57 Doe dit voor 1 5:. F ~ 8
60 Als PRODX(M,F), VOORBX(M,F) en DUMX(M,F) leeg zijn tot dan kan TERMX bier ingepland worden.
90 Doe dit voor 1 f F:!: 8
91 Als PRODX(M,F) en VOORBX(M,F) leeg zijn dan kan TERMX tot hier ingepland worden.
97 Doe dit voor 1 ~ F
£
8100 Als VOORBX(M,F) en DUMX(M,F) leeg zijn dan kan
tot TERM! hier ingepland worden.
130 Doe dit voor 1 f: F
=
8140 Ala VOORBX(M,F) leeg is dan kan TERM! hier ingepland
tot worden.
147 Doe dit voor 1 ~ F
!E
8150 Het inp1annen van TERMX op VOORBX(M,F)
160 Wanneer TERMX nog steeds niet is ingepland dan is de gegeven kombinat1e te groot
200 Hler gebeurt betzelfde als in statement 20 tim 160
tot maar nu voor y-z1jde
400
400 0
=
0 + 1Als TELLER ~ T dan wordt het volgende records ingelezen --- 405
Als TELLER
=
T dan Is de hele kombinatie 1ngepland --- 410405 T
=
T + 1 GO TO 10410 DUMX(M + 1,Z) wordt daar ingepland in planning M + 1 tIm waar in planning M geldt dat VOORBY(M,Z) = 'LEEG' en
430 PRODY(M,Z)
=
'LEEG'440 DUMY (M + 1,Z) wordt daar ingepland in planning M + 1 tIm waar in planning M geldt dat VORBY(M,Z)
=
'LEEG' en460 PRODY(M,Z)
=
'LEEG'520 Voor de huidige planning M wordt gecontroleerd of tIm overal voldaan wordt aan de ei6 dat DUMX(M,I)
=
550 'LEEG' wanneer VOORBX(M,I)=
'LEEG'VKOM
=
KOM : In PLANVB is kombinatie KOM voorbereidt Bijbehorende subroutines:TERXGL TERYGL
Deze beide subroutines zijn nog niet klaar bij het ter perse gaan van dit verslag. Een beschrijving voor deze subroutines is te vinden bij de programma-tekst.
Subroutine PLANPD Functie:
Die terminals welke in planning M-l onder de
categorie 'voorbereiden' stonden worden hier onder de categorie 'productie' geplaatst.
Variabelen:
Werking:
Zie PLANVB
Wanneer VOORBX(M-l,Z) ongelijk is aan nul dan wordt PRODX(M,Z)
=
VOORBX(M-l.Z)Zo ook voor PRODY
Subroutine SCHR80 Functie:
SCHR80 schrijft de door de subroutine PLANVB en PLANPD ingeplande kombinatie weg op een mooie en overzichtelijke manier in een printerfile
Variabelen: Integer: DIAM(I) M VKOM PKOM (VAST_1)13 B C I J VAST1 A Real*8: DEST(I) PRODX tim HFDBH - : Logical: VOLGEN NGELYK Werking: statement:
array. bevat de diameter van de beschouwde kombinaties
planning nummer
kombinatie welke in planning M voorbereid wordt
kombinatie welke in planning M in productie is
aantal draden dat constant op de artos-machine kan blijven zitten bij productie van aIle gewenste kombinaties
duidt de plaats op de artos-machine aan duidt de eerste draadhouder aan welke met een willekeurige draadsoort mag worden gevuld
variabele 1-1
VAST-1
nummer van de draadhouder
bevat die draadsoorten welke bij
productie van aIle kombinaties uit file 40 op de art os-machine constant
ingeplugt kunnen blijven KLEUR2 zie subroutine PLANVB de beschouwde draadboom
TRUE zodra de eerste kombinatie is ingepland
TRUE wanneer een in te plannen draadsoort gelijk is aan een draadsoort genoemd in MEEST(I)
CALL VASTDRD, de variabele VAST wordt bepaald 10 De kop van de printerfile wordt geprint
tim 20 100
tot De kop van de planning wordt geprint
A
=
«VAST_l)/3) + 1C
=
A1=1
Eerste "vrije" draadhouder
120 Zodra DIAM(I)=O zijn aIle draadsoorten van de in te plannen kombinatie geweest en kan men naar 160
130 tot aan 160 160 180 tim 220 J
=
I 1 CALL VERGELAls NGELIJK = TRUE (d.w.z. wanneer de beschouwde draadsoort niet gelijk is aan een draadsoort uit array MEEST(I) of aan een andere reeds beschouwde ) --- 130
Zo niet dan:
I
=
I + 1GO TO 120
De beschouwde draadsoort wordt ingepland in draadhouder A
Wanneer A = 16 dan wordt overgegaan op A = 1. Dit is heel gevaarlijk omdat nu een reeds behandelde
draadsoort welke ingepland was op MEEST(l), MEEST(2) en MEEST(3) in het gedrang komt. De gebruiker moet nu zeIt controleren of dit niet gebeurt en zonodig het nummer van de draadhouder zelf aanpassen.
Als A =
C
dan bevat MEEST(I) aIle draadsoorten van de beschouwde kombinatie.De arrays PRODX(M.F) tim DUMY(M,F) worden ingepland
Bijbehorende subroutines: VERGEL
Subroutine VERGEL (DIA.KLE1,KLE2,J,NGELYK) Funetie:
Vergelijkt de waarden van DIA, KLEl EN KLE2 met de draadsoorten uit het array MEEST en met de elementen uit de arrays DIAM(I), KLEUR1(I) en KLEUR2(I) waarbij voor I geldt: I 5= J Variabelen: Werking: Integer: I J Real*8: MEEST(I) KLEURl KLEUR2 DIAM DIA KLEl KLE2 Logical: NGELYK : ) willekeurige variabele
bij het aanroepen van de subroutine VERGEL geldt: J
=
1-1('IfI.Ii"I-uJ SCl?tiO)
"..,
) Zie subroutine PLANVB : ) : ) : ) : ) :) De nu besehouwde draadsoort : )
=
TRUE wanneer er geen gelijkenis is gevondenSubroutine VASTDR(VAST) Functie:
Bepaald de uitgangswaarde van VAST welke gelijk is aan «het aantal elementen in het array MEEST welk niet gelijk aan "0" is )-1)
Het aantal draadsoorten in MEEST is dan gelijk aan (VAST_l)/3)
Variabelen:
Integer:
VAST (zie functie VASTDR)
Real*8:
MEEST (zie subroutine SRTDRD)
Werking:
Subroutine ZKSCHR (KOMEEN,OMKEER,TELLER) Functie:
Zoekt de kombinatie KOMEEN op in file 40 en schrijft deze weg in file 60.
Tevens wordt in file 40 de kombinatie KOMEEN vervangen door spaties.
Variabelen: Werking: De ader specificaties: Integer: KOM TELLER KOMEEN / Real*8: LEEG D(I) Logical: OMKEER
ingelezen kombinatie nummer
houdt bij hoeveel records weggeschreven worden in file 60
het beschouwde kombinatienummer
array. bevat (als OMKEER
=
TRUE de waarde van TERMXwanneer OMKEER
=
TRUE dan moe ten de ingelezen waarden van TERMX en TERMY onderling verwisseld wordenSubroutine OPTVOL Functie:
Het bepalen van de kombinatie welke voIgt op de nu geproduceerde kombinatie.
Dit gebeurt op grond van de hoeveelheid terminals welke overeenkomen tussen nu de aanwezige applicators op de artos-machine en elke ander kombinatie die geschreven staat in file 40.
De kombinatie uit file 40 die het meeste overeenkomst qua terminals vertoont wordt de volgende te
produceren kombinatie. Variabelen: Integer: KOMT1(KOM) KOMT2(KOM) KOM Z,A MAXl MAX2 Z Real*8: TERMX TERMY LEEG B Logical: EIND40 OMKEER NDOOR
array, bevat voor elke kombinatie KOM het aantal overeenkomsten tussen aanwezige applicators op de artos-machine en terminals in de kombinatie KOM wanneer men TERMX en TERMY niet onderling verwisselt
: array gelijk aan KOMTl maar nu bij onderlinge verwisseling van TERMX en TERMY
de ingelezen kombinatie willekeurige variabele
die kombinatie waarvoor KOMTl het nummer heeft
die kombinatie waarvoor KOMT2 het nummer heeft
Z en Z + 1 wijzen een plaats aan op de artos-machine aan x- en y-zijde aan x- en y-zijde
array. bevat de terminal aan x-zijde van de ader
array, bevat de terminal aan y-zijde van de ader
dummy variabele
=
TRUE wanneer file 40 enkel lege records bevat=
TRUE wanneer KOMT2 (MAX2) (MAX1)KOMTl
=
TRUE wanneer file 40 enkel legerecords bevat (dus hetzelfde alB EIND40)