• Hardware :
    • Microcontrollers : 8051, AVR, ARM
    • Seriele communicatie : SPI, I2C, RS232, USB, CAN
    • PCB ontwerp
  • Embedded software :
    • Taal : C, assembly
  • Embedded applicaties :
    • Sensor interfacing
    • Motor besturing
    • Seriele communicatie
    • Gebruikers interface
  • Desktop software :
    • Taal : C, C++
    • Operating system : Linux, Windows
  • Desktop applicaties :
    • Ontwerp GUI
    • Database interface
    • Seriele communicatie

Conversie gef <--> bro-xml



1 - Cone Penetration Test (CPT)
    Bij een CPT test wordt een conus met sensoren met een constante snelheid (2 cm/s) de grond ingedrukt. Gedurende de beweging naar beneden word de data afkomstig van sensoren uiteindelijk geregistreerd in een "parent" gef bestand. Voorbeelden van te meten grootheden zijn : temperatuur, waterdruk, puntweerstand, trilling, wrijvingsweerstand, geleidbaarheid, korrelstructuur en helling.

2 - Dissipatietest
    De beweging van de sondeerstreng naar beneden kan worden gestopt i.v.m het uitvoeren van een dissipatietest. Hierbij wordt op een bepaalde diepte gedurende een bepaalde tijd waterdruk en conusweerstand geregistreerd. Per sondering zijn meerdere dissipatietesten mogelijk. Elke afzonderlijke dissipatietest wordt opgeslagen in een apart "child" gef bestand. Tijdens het conversieproces worden "parent" en één of meerdere "child" bestanden automatisch verwerkt tot één bro-xml bestand.

3 - Data acquisitie en besturing
Voor het uitvoeren van een Cone Penetration Test (mogelijk inclusief dissipatietest) word gebruik gemaakt van een microcontroller gebaseerd data-acquisitiesysteem. Een dergelijk systeem bestaat uit de volgende componenten :

Onderdeel Functie
Conus Voorheen werden conussen uitgerust met sensoren en analoge conditioneringselektronika. Een nadeel van de analoge conus was het versturen van "kleine" analoge signalen over relatief grote afstand. Tegenwoordig worden conussen uitgerust met digitale intelligentie. De intelligentie wordt bepaald door de onboard microcontroller. Deze microcontroller is o.a verantwoordelijk voor het uitlezen van sensoren en communicatie met de "bovenliggende" besturing. In een "typical" systeem bevinden zich in de conus sensoren voor punt- en wijvingsweerstand (rekstrookjes), waterdruk (druksensor) en helling (capacitief). De analoge sensorsignalen worden met 24-bit resolutie en een sampling frequentie van minimaal 10 Hz gedigitaliseerd. Dit laatste zodat bijvoorbeeld dunne lagen niet worden gemist. Op basis van ingestelde calibratiegegevens bewerkt de microcontroller de ruwe data en stuurt deze naar "boven".
Communicatie Voor de communicatie naar boven (hardware) zijn er meerdere mogelijkheden : CAN, RS485, optisch en audio. Elke methode heeft zijn eigen voor- en nadelen. In geval van bedrading word een kabel door de diverse sondeerbuizen getrokken. De "handling" van de buizen wordt hierdoor wel gecompliceerder. Het robuuste Controller Area Network (CAN) heeft o.a als voordeel t.o.v. RS485 dat transmissie fouten worden herkend en hersteld. Ook kan het multimaster CAN netwerk worden gekoppeld aan het reeds bestaande netwerk in vrachtauto's. De draadloze varianten (optisch en audio) hebben als nadeel dat er beperkingen zijn in connectiviteit, data-snelheid en data-betrouwbaarheid. Ook zijn beide laatstgenoemden nogal onderhoudsgevoelig. Wanneer er sprake is van geautomatiseerde buizentoevoer dan moet de voorkeur worden gegeven aan een niet-draadloze realisatie.
Datakoppelaar Deze eveneens microcontroller gebaseerde hardware ontvangt meetgegevens van de conus. Deze gegevens worden gekoppeld aan de positie van de conus (diepte). De diepte wordt verkregen door een roterende encoder mechanisch te koppelen aan de sondeerstreng. De gekoppelde datastroom (meetwaarden en diepte) word doorgestuurd naar een desktop computer. Voor nauwkeurige vastlegging van de positie is de datakoppelaar mogelijk uitgerust met een GPS ontvanger.
Desktop computer De desktop computer is met de datakoppelaar verbonden via een USB of (verouderde) RS232 poort. Het sondeerproces kan vanaf deze plaats worden gestart, gestopt of gepauzeerd. Ook kunnen diverse configuratie waarden voor conus en koppelaar hier worden ingesteld. Op de desktop wordt de ruwe meetdata verder verwerkt en gevisualiseerd. De meetdata en aanvullende informatie worden ingekapselt in standaard formaten zoals gef en bro-xml. Voor externe toegankelijkheid is mogelijk web- of fileserver functionaliteit geinstalleerd.

4 - Applicatie
    De conversie software is ontwikkeld onder Linux. Zoveel mogelijk is er gebruik gemaakt van open source software. De uiteindelijke applicatie draait native op een Ubuntu 24.04.1 LTS systeem (noble 24.04). In verband met snelheid en stabiliteit is er een technische voorkeur voor Linux. Toch kan door middel van crosscompiling ook een Windows versie worden gegenereerd. Het geheel kan daarom ook werken in een Microsoft omgeving.

5 - Conversie gef naar bro-xml
    Alle benodigde gegevens worden door de gebruiker middels een HTML formulier aangeboden aan de Apache webserver. Na verzending zorgt CGI functionaliteit (common gateway interface) ervoor dat genoemde gegevens op de juiste plaats worden opgeslagen. Hierbij wordt ook een eerste controle uitgevoerd m.b.t. de juistheid van de aangeboden data.
    Bij de verder verwerking is gebruik gemaakt van technieken welke worden toegepast in de compilerbouw (compilatie, interpretatie, translatie). Een aangeboden gef bestand wordt als eerste verwerkt door een lexer. De output van de lexer (tokenstream) is vervolgens de input voor de parser. De parser herkent structuren (syntax) in het originele gef bestand. Tijdens parsing wordt een zogenaamde Abstract Syntax Tree (AST) aangemaakt. Met de AST als uitgangspunt vindt een semantische analyse plaats. Er wordt o.a gecontroleerd op volledigheid, tegenstrijdigheid en samenhang. Vervolgens vindt de eigenlijke vertaling plaats. Hierbij wordt een datamodel gevuld met data en metadata.
    De informatie welke nu aanwezig is in het datamodel kan worden geexporteerd als een bro-xml bestand. Dit bestand wordt tenslotte gevalideerd met de BRO specificatie als uitgangspunt.

6 - Graphische representatie
    Een gef of bro-xml bestand bevat alle noodzakelijke data (grootheden, eenheden, metadata en data) om een correcte grafische weergave te genereren. Deze gegevens worden als vectoren weggeschreven naar één of meer pdf bestanden.

7 - Foutrapportage
    Fouten of tekortkomingen in aangeleverde bestanden kunnen ertoe leiden dat een voltooien van de conversie niet mogelijk is. In een later gestuurde email word vermeld welke fouten zijn opgetreden en waarom de conversie niet is gelukt.

8 - Conversietijd
    Het algehele conversieproces per sondering kan maximaal 5 seconden duren. De totale verwerkingstijd is mede afhankelijk van externe factoren zoals mailservers en internetsnelheid.

9 - Kwaliteitsregime
    Op basis van de BRO documenten "Een handreiking voor conversie" en XML Schema Design bestanden (XSD) wordt softwarematig de beslissing gemaakt of het resulterende XML document voldoet aan IMBRO of IMBRO/A. Een geretourneerd txt bestand geeft informatie waarom het systeem heeft gekozen voor IMBRO of IMBRO/A. Het kan ook voorkomen dat aan geen van beide kwaliteitsregimes wordt voldaan.

10 - Aanpassen conversie software
    Het gef formaat kan worden omschreven als tolerant. Voorbeelden : tekst welke voor kan komen op niet voor de hand liggende plaatsen, volgorde van sommige "keywords" belangrijk maar andere weer niet, voorkomen van speciale tekens in verschillende contexten. De verwerkingssoftware moet al deze gevallen onderkennen en op de juiste manier verwerken. Omdat er veel combinaties mogelijk zijn kan het in de testfase gebeuren dat zo'n combinatie nog niet wordt herkend. Team www.cptdata.nl zal in dat geval de software aanpassen zodat een dergelijk geval in de toekomst wel op de juiste manier automatisch wordt verwerkt.

11 - Opmerkingen gef versus bro-xml
- In een gef document mogen kolommen met data in elke volgorde voorkomen. De #COLUMNINFO nummers geven aan welke kolom correspondeert met welke meetwaarde. Voor iedere kolom wordt ook het meetkanaal gespecificeerd. In het bro-xml formaat hebben kolommen een vaste volgorde. Het meetkanaal is niet aanwezig.
- In #SPECIMENVAR worden enkel de bovengrens van de verschillende verwijderde lagen gespecificeerd. In de bro-xml wordt voor iedere verwijderde laag ook de ondergrens toegevoegd.
- De #FIRSTSCAN waarde is niet overgenomen.
- De #LASTSCAN waarde is niet overgenomen maar wel impliciet aanwezig in de meetdata.
- De #COLUMNMINMAX waarden zijn niet overgenomen maar wel impliciet aanwezig in de meetdata.
- Het totaal aantal aanwezige kolommen in #COLUMN is niet overgenomen maar wel impliciet aanwezig in de meetdata.
- Meetdata in bestaande bro-xml bestanden bestaat uit een lange rij van numerieke waarden. Dit is niet erg overzichtelijk en daarom is in gegenereerde bestanden de data op een meer ordelijke manier gerangschikt. De originele kolomstructuur in het gef formaat is overgenomen.

12 - BRO : Basisregistratie ondergrond
    De BRO heeft mogelijkheden voor inname en uitgifte van bro-xml bestanden.
Inname : Bestanden met root-element "registrationRequest" of "correctionRequest"
Uitgifte : Bestanden met root-element "dispatchDataResponse" of "CPT"
Bro-xml bestanden met genoemde root-elementen worden door de conversie software herkend of ondersteund.

13 - Bronvermelding
    Voor de totstandkoming van de conversie software zijn meerdere bronnen geraadpleegd. Hierbij de meest relevante :

1 Gef 1.1.2 CPT
2 Gef 1.1.3
3 Gef 1.1.3 release notes
4 Gef 1.1.3 beschrijving
5 Gef dissipation test
6 BRO : Een handreiking voor conversie
7 Basisregistratie Ondergrond Catalogus Geotechnisch Sondeeronderzoek (CPT)
8 XML schema design files
9 XML tutorial
10 XML schema tutorial
11 Book : Compilers (Principles, Techniques & Tools) by Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman