De RWS-C-regelaar is de implementatie van de Basisstructuur voor het regelprogramma van Rijkswaterstaat. Aan deze structuur zijn een aantal standaarden toegevoegd. Hieronder kun je van deze standaarden documentatie en voorbeeldbroncode downloaden.
Standaard 1: Kiezen maximum groentijden
Standaard 2: Aftrekken tijden
Standaard 3: Fasebewaking
Standaard 4: Maatregelen bij detectiebewaking
Standaard 5: Richtinggevoelige hiaatmeting
Standaard 6: Filemeting
Standaard 7: Extra signaalgevers (alleen DOS) – vervallen
Standaard 8: Fiets- en voetgangersoversteekplaatsen
Standaard 9: Treiningreep
Standaard 10: Weergave interne signaalgroep toestanden (alleen DOS) – vervallen
Standaard 11: Piekmeting
Standaard 12: Bus
Standaard 13: Vergelijking datum, dag, tijd
Standaard 14: Rondeteller – vervallen
Standaard 16: CRSV-module
Standaard 17: Debug Eparms – vervallen
Standaard 19: Veiligheidsgroen
Terug naar de hoofdpagina van RWS-C-regelaar
Standaard 1: Kiezen maximum groentijden
De functie kiest op basis van twee spitsklokken en twee extra klokken met bijbehorende daginstelling de relevante MG_TIJD’en. De actieve set maximumgroentijden wordt in een teller vastgelegd. De functie wordt opgenomen in ‘voorwaarden_per_seconde()’.
Er wordt als volgt gekozen:
- MG_TIJD2 in de ochtendspits (MAANDAG t/m VRIJDAG)
- MG_TIJD3 in de avondspits (MAANDAG t/m VRIJDAG)
- MG_TIJD4 tijdens de 1e extra klokperiode op bijbehorende ingestelde dag(en)
- MG_TIJD5 tijdens de 2e extra klokperiode op bijbehorende ingestelde dag(en)
- MG_TIJD1 wordt gedurende de overige perioden gekozen (dalperiode).
Bij overlappende perioden wordt de hoogste set maximumgroentijden gekozen.
Standaard 2: Aftrekken tijden
De functie zal de instelling van de extra parameter (1e parameter) aftrekken van de instelling van de maximumgroentijd van de betreffende signaalgroep (3e parameter) en de aldus verkregen waarde, met een minimum van 0, als instelling meegeven aan de tijd (2e parameter).
Standaard 3: Fasebewaking
De functie Fasebewaking zorgt ervoor dat een instelbaar aantal seconden vanaf begin aanvraag voor een signaalgroep de regeling wordt herstart, indien de betreffende signaalgroep nog geen groen heeft gekregen. Dit gebeurt als volgt. Een teller (per signaalgroep) wordt elke seconde opgehoogd gedurende het aanwezig zijn van een aanvraag. Bij geen aanvraag of tijdens fixatie wordt de teller teruggezet naar 0. Als de teller een referentiewaarde overschrijdt, wordt de fasebewaking geset. De referentiewaarde wordt ingesteld met een extra geheel getal parameter (één voor de gehele regeling).
Het voordeel van deze oplossing is dat voortaan in de dump leesbaar is voor welke signaalgroep de fasebewaking heeft ingegrepen omdat de waarde van de desbetreffende teller eerst in de dump wordt weggeschreven en de tellers daarna, na herstart, pas weer op 0 worden gezet.
Gewijzigd april 2011: Aanpassing vanwege mogelijkheid kort afvallen door BL_OP, doorgevoerd op basis van voorstel IT&T.
Standaard 4: Maatregelen bij detectiebewaking
De functies kunnen diverse maatregelen uitvoeren op basis van de door de procesbesturing aangeboden detectorstatusinformatie (DFOUT(), DFOUT_OG() en DFOUT_BG()). Dit om nadelige effecten van deze detectorstoringen te verzachten.
Een belangrijk uitgangspunt is dat wanneer een detector stoort de betreffende ingang (D) continu niet waar is. (Als een detector bovengedrag vertoont, ziet de applicatie de lus als onbezet).
Binnen de RWS C-regelaar kan gekozen worden of tijdens een detectorstoring (DFOUT/DFOUT_OG/DFOUT_BG) de betreffende D binnen de regelaar continu waar of continu niet waar is met de toevoeging DFA c.q. DFU in de Signaalggroep_detectie tabel[].
Per functie is omschreven welke maatregel deze uitvoert.
Standaard 5: Richtinggevoelige hiaatmeting
De functie Richtinggevoelige hiaatmeting bestuurt de hiaattijd van een signaalgroep op basis van richtinggevoelige detectiemeting. De functie is geschikt voor een configuratie van twee korte lussen of een korte en een lange lus, die in de rijrichting gezien direct na elkaar zijn aangebracht. Met behulp van de schakelaar met_det_bew/zonder_det_bew kan wel of niet worden gekozen voor directe, niet-richtinggevoelige, aansturing van de hiaatmeting bij een DFOUT op een van beide detectoren.
Standaard 6: Filemeting
De functie Filemeting bepaalt de aanwezigheid van file op één detectorpaar aan de hand van detectie-informatie van dat detectorpaar, diverse hulpfuncties en tijden. De specificatie van deze filemelding komt geheel overeen met de specificatie van “een eenvoudig filemeetpunt” uit het het Voorbeeldenboek van de RWS C-regelaar, hoofdstuk 10.
Standaard 8: Fiets- en voetgangersoversteekplaatsen
De regeling bevat een fiets- voetgangersoversteek met de volgende kenmerken:
- voetgangersoversteek met twee signaalgroepen;
- fietsoversteek in één richting zonder volglicht;
- de fietsrichting en de voetgangers zijn in hetzelfde blok primair en alternatief toegedeeld;
- fietser krijgt een mee-aanvraag met de voetgangers;
- voetgangers krijgen alleen een mee-aanvraag met elkaar (zowel met binnen- als buitendrukknoppen);
- als de voetgangers aanvragen tijdens het groen van de fietser, mogen de voetgangers alsnog groen worden (uiteraard alleen indien ze nog in ROG staan of alternatief of versneld kunnen realiseren);
- indien zowel de fiets als de voetganger een aanvraag hebben, starten de drie richtingen gelijk;
- voetgangers krijgen een richtinggevoelige naloop welke kan starten op begin groen of einde vastgroen van de toevoerende voetganger (zie parameters);
- de fietser kan meeverlengen (WSRH);
- de regeling is een wachtstand rood regeling.
De functie HFRVG kan ook worden gebruikt voor het gelijktijdig groen geven aan bepaalde richtingen. Ook is het mogelijk bepaalde richtingen nooit eerder dan andere richtingen te laten starten. Denk hierbij bijvoorbeeld aan de afhandeling van deelconflicten.
Standaard 9: Treiningreep
Met behulp van de functies is het mogelijk om overzichtelijk een treiningreep te maken.
Er word een onderscheid gemaakt tussen verschillende soorten richtingen:
- toevoerrichtingen naar het spoor welke moeten worden afgekapt/geblokkeerd (in het voorbeeld SG02, SG06 en SG68);
- conflictrichtingen van geregelde afrijrichting(en) voorbij het spoor welke moeten worden afgekapt of in rood voor groen moeten worden gehouden (in het voorbeeld SG71);
- conflictrichtingen van de ongeregelde afrijrichting(en) voorbij het spoor welke moeten worden afgekapt of in rood voor groen moeten worden gehouden (in het voorbeeld SG04)
- afrijrichtingen van het spoor welke bijzonder gerealiseerd moet worden en/of moeten worden vastgehouden in VAG/MVG (in het voorbeeld SG62).
Standaard 11: Piekmeting
Een piekmeetpunt is bedoeld om, op grond van bijzondere omstandigheden ontstane, incidentele pieken in het verkeersaanbod op een bepaalde richting te detecteren zodat in een verkeerslichtenregeling op grond van de piekmelding bijzondere maatregelen, zoals b.v. het tijdelijk verhogen van de maximumgroentijd, kunnen worden genomen.
In de functie piekmeting() is een algoritme opgenomen dat dergelijke incidentele pieken vaststelt. Het algoritme is gebaseerd op een periodieke, exponentieel afgevlakte telling van het verkeer, die, na een vergelijking met een onder- en een bovengrenswaarde, al of niet een piekmelding oplevert.
Standaard 12: Bus
In de include file zijn drie functies opgenomen. De functie “bus_ingreep1” (1 rijstrook), “bus_ingreep2” (2 rijstroken, en per rijstrook een aparte in- en uitmeldlus) en de functie “beperk_busingreep”.
De functie bus_ingreep1 (of bus_ingreep2) zorgt voor het setten en resetten van een hulpfunctie die aangeeft of een of meerdere bussen aanwezig zijn waarvoor een ingreep in de regeling wenselijk is. De programmeur bepaalt zelf welke ingreep plaatsvindt en onder welke (overige) voorwaarden de ingreep plaatsvindt. De programmeur gebruikt hiervoor de hulpfunctie die daarvoor beschikbaar is gemaakt. Het aantal bussen dat zich tussen de inmeldlussen en uitmeldlussen van een bepaalde richting bevindt, wordt daartoe bijgehouden. Er wordt onderscheid gemaakt tussen bussen die zich inmelden tijdens de roodfase of het eerste deel van de groenfase (inmeldgebied) en bussen die zich buiten dit inmeldgebied inmelden. Bussen die binnen het inmeldgebied zijn ingemeld (te behandelen bussen) worden minimaal gedurende de minimale (ongehinderde) rijtijd van de bus en maximaal gedurende de in te stellen toelaatbare groentijd van de bus nog geholpen. De ingreep wordt echter afgebroken zodra zowel de 1e als de 2e hiaattijden niet meer lopen (geen verkeer in detectiegebied). Bussen die buiten het inmeldgebied zijn ingemeld, worden niet geholpen maar wel onthouden voor de volgende ingreep.
De functie beperk_ingreep zorgt voor het setten en resetten van een hulpfunctie die aangeeft wanneer een busingreep moet worden ingeperkt. Hierbij wordt in de regeling het aantal bijzondere realisaties bijgehouden. Indien het aantal bijzondere realisaties een instelbare waarde overschrijdt, wordt gedurende één cyclus een hulpfunctie geset, welke aangeeft dat de busingreep moet worden ingeperkt.
Standaard 13: Vergelijking datum, dag, tijd
Soms wil men op een bepaalde datum, dag van de week of tijdstip (of een combinatie van dag/tijd) bijzondere voorwaarden toepassen in de regeling. Dit kan worden bereikt door die bepaalde datum, weekdag en/of tijd in de regeling te vergelijken met de werkelijke datum, weekdag en/of tijd zoals die door in de procesbesturing wordt gehanteerd. Deze vergelijking is mogelijk met behulp van de functies:
- datum()
- dag() en
- tijd()
Als de te vergelijken datum, weekdag of tijd overeenkomen met de in de procesbesturing aanwezige datum, weekdag of tijd geven deze functies “waar” terug, anders “niet waar”.
In deze functies moeten de te vergelijken datum, weekdag en tijd op een bepaalde manier tussen de () worden opgegeven. De onderhavige standaard maakt het mogelijk deze te vergelijken datum, weekdag en tijd als getallen onder te brengen in extra geheel getal parameters, zodat op elk moment, tijdens het in bedrijf zijn van de regelaar de te vergelijken datum, weekdag en tijd kunnen worden gewijzigd.
De onderhavige standaard vervangt het gebruik van de functies datum(), dag(), en tijd() door de onderstaande nieuwe functies:
- vergelijk_datum()
- vergelijk_weekdag()
- vergelijk_tijd()
Standaard 16: CRSV-module
De CRSV-module (C-Regelaar Speciaal met Vaste Cyclustijd) is een module voor het regelen van (netwerken van) kruispunten op basis van fasendiagrammen voor starre regelingen. Alle kruispunten regelen met een vaste cyclustijd. Op basis van diverse instellingen per signaalgroep worden de vrijheden voor het realiseren aangegeven. Hierdoor kan het verloop van de regelingen worden beïnvloed, waardoor een door het fasendiagram begrensde voertuig-afhankelijke regeling ontstaat. De CRSV-module is gebouwd door Movensis in samenwerking met Rijkswaterstaat Water, Verkeer en Leefomgeving (WVL).
Voor de CRSV-module is een uitgebreide handleiding beschikbaar (CRSV, Functionele en programmatechnische handleiding).
De broncode van de CRSV-module is vanaf versie 6.01 vrij beschikbaar en dient in de CRAPCOD.C te worden opgenomen. Zie handleiding.
Standaard 19: Veiligheidsgroen
In de include file zijn twee functies opgenomen voor twee verschillende manieren van toepassen van veiligheidsgroen. Bij de eerste manier wordt veiligheidsgroen toegestaan als de H2e-tijd loopt. Bij de tweede manier wordt veiligheidsgroen toegestaan als er zich minstens twee voertuigen in de dilemmazone bevinden. Een van beide functies uit het include-bestand moet worden aangeroepen, afhankelijk van welke vorm van veiligheidsgroen gewenst is.