Bewerkings volgorde logische acties
Geprint door: Koploperforum Digitale Treinbesturing
Webadres onderwerp: https://www.koploperforum.nl/topic.asp?TOPIC_ID=7237
Geprint op: 08 dec 2024
Onderwerp:
Auteur onderwerp: henkvegter
Onderwerp: Bewerkings volgorde logische acties
Geplaatst op: 11 nov 2024 19:56:06
Bericht:
Weet iemand in welke volgorde door Koploper de logische acties worden geëvalueerd en dan op TRUE of FALSE worden gezet? Is dat bv. de volgorde die je in het venster "Onderhouden logische acties" ziet? Die lijkt alfabetisch.
Ik stel de vraag omdat ik enkele logische acties afleidt van andere logische acties (dus met gebruik van EN/OF poorten). Daarbij valt me op dat niet alle afgeleide acties correct worden gezet. Hiervoor zou een verklaring kunnen zijn, dat deze afgeleide acties éérder worden bewerkt dan de input acties. Waardoor de EN/OF poort niet met de juiste input werkt.
Dank alvast.
Reacties:
Reageer op auteur: hubertus
Gereageerd: 11 nov 2024 21:04:09
Bericht: Het is logica, die kijkt puur naar een status, is iets waar of niet waar. Dan zou de volgorde afhandelingsvolgorde eigenlijk niks uit mogen maken, hoogstens dat een afgeleide actie net een cyclus later de status verandert. Maar dat zou niet merkbaar mogen zijn in wat je wilt bereiken. Heb je een voorbeeld waar het volgens jou een probleem geeft?
groet, Huub
Reageer op auteur: henkvegter
Gereageerd: 11 nov 2024 22:43:05
Bericht: Dank je Huub. Ik zal de database meesturen. Het gaat om voorwaarden in de vaste routes.
Het gaat om het oprijden van het eerste blok van de vaste routes, vanuit blok 8, 9 en 17. Met dat oprijden start dus de route. Dat starten wilde ik op elkaar vergrendelen zodat er maar één tegelijk start. Dat zijn namelijk lange treinen die ik niet tegelijk rond wil laten rijden. Ze beslaan (op de parade cirkel 5 --> 11 --> 1) meerdere blokken, ik heb maar een kleine baan.
Deze vergrendeling werkte aanvankelijk goed, toen echter alleen het starten vanuit blok 8 en blok 9 op elkaar vergrendeld waren, zoals in bijgaande database. Om vanuit blok 8 te kunnen gaan rijden (naar blok 16) moet in blok 9 een trein stilstaan. Om vanuit blok 9 te kunnen gaan rijden (naar blok 6) moet in blok 8 een trein stil staan. Zo wisselen ze elkaar heel netjes af! Die logische acties zie je in de lijst staan.
Toen wilde ik blok 17 in dit spel betrekken, maar die had al een voorwaarde om te vertrekken (naar blok 5) namelijk dat blok 11 vrij moet zijn.
Daarom had ik de vergrendelingen als volgt uitgebreid: --> Een gecombineerde voorwaarde vanuit blok 17 (naar blok 5) namelijk "blok 11 is vrij EN in blok 8 staat een trein stil EN in blok 9 staat een trein stil". --> Een gecombineerde voorwaarde vanuit blok 8 (naar blok 16) namelijk "In blok 17 staat een trein stil EN in blok 9 staat een trein stil" --> Een gecombineerde voorwaarde vanuit blok 9 (naar blok 6) namelijk "In blok 17 staat een trein stil EN in blok 8 staat een trein stil".
De gecombineerde voorwaarden zie je ook in de "lijst logische acties staan". Maar toen ik die gecombineerde voorwaarden echt in de vaste route's opnam, starten er toch twee vaste vaste route's tegelijk. En dat was natuurlijk niet de bedoeling...
Dus toen kreeg ik het idee dat het aan de uitvoerings volgorde kon liggen. De info hoeft maar 1 programmacyclus achter te lopen en dan starten er toch twee route's (was mijn idee).
Lang verhaal, dank voor alle aandacht. Vriendelijke groet Henk.
Download Attachment: Extrarangeersp_20241111_202056.zip 15,36 KB
Reageer op auteur: hubertus
Gereageerd: 12 nov 2024 19:46:49
Bericht: Niet helemaal zeker, er kan nog meer meespelen, maar ik denk dat het komt door de vertrekvertraging. In die tijd is de logische actie trein 'staat stil nog' steeds waar. Pas als er een snelheidsstap naar de loc wordt gestuurd, is die logische actie niet meer waar.
Stel, in alle drie de blokken staat een trein stil. De eerste trein waarvan de wachttijd is verstreken, kan dan vertrekken, want in de twee andere blokken staat een trein stil. Als gedurende de vertrekvertraging van de eerste trein ook de wachttijd van een tweede trein is verstreken, zal die ook mogen vertrekken, want op dat moment geldt ook voor die trein dat in de andere twee blokken een trein stilstaat.
groet, Huub
Reageer op auteur: henkvegter
Gereageerd: 14 nov 2024 17:32:14
Bericht: Dank je Huub. Het probleem deed zich voor als ik de vaste route's vanuit blok 17, blok 8 en blok 9 (qua starten) op elkaar wilde vergrendelen. Zodat er maar één van deze drie vaste route's tegelijk actief is (dat was het doel).
Zou het een optie zijn om rechstreeks vanuit deze drie route's één variabele (of een teller) te setten (en bij einde route te resetten) zodat voor de andere twee duidelijk is dat ze nog niet mogen starten. En hoe zou ik dat moeten bouwen in Koploper, heb je daarvoor hints?
Alvast dank. Vriendelijke groet Henk.
Reageer op auteur: hubertus
Gereageerd: 14 nov 2024 20:39:50
Bericht: Ik zou een blokgroep aanmaken van blok 8, 9 en 17, met een minimale bezetting van 2 locs. De niet inrijden-voorwaarden in het eerste blok van de vaste routes kunnen dan verdwijnen.
groet, Huub
Reageer op auteur: henkvegter
Gereageerd: 18 nov 2024 19:52:23
Bericht: Dank je Huub, ik ga dat proberen.
Koploperforum Digitale Treinbesturing : https://www.koploperforum.nl/
© EKweb 2006
|