06.APR.2011/HvM; 15.APR.2012/HvM

 3. Doorlopende nummering “overige in- en uitgangssignalen”

Dit onderwerp behandel ik ook in de cursussen ‘Toolkit-CCOL’.
Voor meer informatie kunt u mij telefonisch of via het reactieformulier bereiken.

In het bestand  ……SYS.H  (of soortgelijke benaming) worden normaliter alle elementen achter elkaar opgesomd. Volgens de CVN-C-interface zijn de uitgangs­signalen opgedeeld in

  • fasecycli c.q. signaal­groepen; en
  • overige uitgangen.

Specifieke eigenschap is dat de nummering van de overige uitgangs­signalen helaas níet bij 0 begint! Dit veroorzaakt vooral veel fouten indien in een latere fase een signaal­groep wordt toegevoegd: in dat geval schuift de hele rij uitgangs­signalen vanaf de tussenvoeging met 1 op. Dan wordt het meeschuiven van de overige uitgangs­signalen nogal eens vergeten, dat kan heel nare gevolgen hebben.

Door nu de opsomming van de overige uitgangs­signalen niet doorlopend na de signaal­groepen te nummeren, maar met slim gebruik van de macro FCMAX opnieuw vanaf 0 te nummeren, komt zo’n typische edit­fout niet meer voor. Gebruik daarvoor bij voorkeur de volgende methode:


/* FASECYCLI */
/* ––––––––– */
   #define fc02            0
   #define fc03            1
   #define fc05            2
   #define fc06            3
   #define fc08            4
   #define fc11            5
   #define fc12            6
   #define FCMAX           7     /* aantal fasecycli c.q. signaalgroepen */

/* OVERIGE UITGANGSSIGNALEN */
/* –––––––––––––––––––––––– */
   #define us_ml1  (FCMAX+ 0)    /* merk op dat de nummering weer bij 0 begint! */
   #define us_ml2  (FCMAX+ 1)
   #define us_ml3  (FCMAX+ 2)
   #define us_ml4  (FCMAX+ 3)
   #define us_ov   (FCMAX+ 4)
   #define USMAX   (FCMAX+ 5)    /* aantal uitgangssignalen (signaalgroepen + overige uitgangssignalen) */

Op deze manier is de CVN-tabel “Uitgangssignalen” als volgt ingedeeld:

Als later bijvoorbeeld signaal­groep 09 wordt toegevoegd, dan zal de lijst minimaal hoeven te worden gewijzigd:


/* FASECYCLI */
/* ––––––––– */
   #define fc02            0
   #define fc03            1
   #define fc05            2
   #define fc06            3
   #define fc08            4
   #define fc09            5
   #define fc11            6
   #define fc12            7
   #define FCMAX           8     /* aantal fasecycli c.q. signaalgroepen */

/* OVERIGE UITGANGSSIGNALEN */
/* –––––––––––––––––––––––– */
   #define us_ml1  (FCMAX+ 0)    /* merk op dat de nummering nog steeds bij 0 begint! */
   #define us_ml2  (FCMAX+ 1)
   #define us_ml3  (FCMAX+ 2)
   #define us_ml4  (FCMAX+ 3)
   #define us_ov   (FCMAX+ 4)
   #define USMAX   (FCMAX+ 5)    /* aantal uitgangssignalen (signaalgroepen + overige uitgangssignalen) */


Nu is de CVN-tabel “Uitgangssignalen” als volgt ingedeeld:

Opmerkingen

  • Merk op dat de gehele tabel “Overige Uitgangs­signalen” gelijk blijft en toch (vanzelf) meeschuift met de tabel “Fasecycli”!
  • Vergeet nooit de ronde haken rondom de constructie (FCMAX+…). Indien de haken worden weggelaten dan kán in het programma iets fout gaan indien er rekenkundige bewerkingen mee worden verricht! Daarom veiligheids­halve altijd deze ronde haken toe­passen, zoals in het voor­beeld.
  • Hetzelfde als voor de uitgangs­signalen geldt natuurlijk ook voor de ingangs­signalen (de detec­toren/druk­knoppen en de overige ingangs­signalen).

Dit onderwerp behandel ik ook in de cursussen ‘Toolkit-CCOL’.
Voor meer informatie kunt u mij telefonisch of via het reactieformulier bereiken.


Index van CCOL-onderwerpen


Reageer op dit bericht