APM Terminals Maasvlakte II – Rotterdam – terrein

Wij verlichten jouw werk

Lees hier hoe Yourlight een van de meest geavanceerde containerterminals van Europa voorzag van dynamische LED-terrein- en kraanverlichting, met oog voor natuur, veiligheid en energiebesparing.

Kraanverlichting, Terreinverlichting

Klant

APM Terminals Maasvlakte II B.V.

Samenvatting

Yourlight verving ruim 300 conventionele 1000W SON-T armaturen op masten van 10, 25 en 45 meter door hoogwaardige Philips OptiVision LED-schijnwerpers, gekoppeld aan het SCADA Terminal Operations Managementsysteem via DALI-protocol. Lichthinder voor het nabijgelegen Natura 2000-gebied werd volledig uitgesloten.

Geleverde diensten

  • Lichtscan & analyse
  • Lichtplan op maat
  • Levering Philips OptiVision LED armaturen
  • Koppeling DALI/SCADA smart dimming
  • V&G-werkplan
  • Installatie (conform NEN-1010)
  • Controlemeting na oplevering

Lichtoplossingen op maat voor APM Terminals Maasvlakte II – Rotterdam – terrein

    Uitdagingen

    APM Terminals Maasvlakte II is een CO₂-emissievrije terminal met strenge duurzaamheidseisen. De ruim 300 verouderde 1000W SON-T armaturen moesten worden vervangen door een energiezuinige oplossing die koppelbaar is aan het SCADA-managementsysteem én die voldoet aan de strenge lichthindereisen nabij een Natura 2000-gebied.

    Oplossingen

    Yourlight leverde Philips OptiVision LED armaturen (BVP528, BVP518 en Luma) met geïntegreerde smart drivers en louvres die lichtverspilling buiten het terrein tegengaan. Via DALI-protocol zijn de armaturen volledig gekoppeld aan het bestaande SCADA Terminal Operations Managementsysteem voor smart dimming.

    Implementatie

    tandwiel

    De installatiewerkzaamheden werden uitgevoerd conform NEN-1010, op basis van een door Yourlight opgesteld V&G-werkplan. Na oplevering voerde Yourlight een controlemeting uit om te bevestigen dat alle armaturen conform het lichtplan zijn geïnstalleerd. De samenwerking met APM Terminals en facilitair dienstverlener ISS verliep vlekkeloos.

    Resultaat

    Een gelijkmatig en energiezuinig lichtbeeld op de gehele containerterminal, volledig geïntegreerd in het SCADA-systeem. Geen lichthinder voor de scheepvaart op de Nieuwe Waterweg, geen lichtuitstoot richting het Natura 2000-gebied, en een verkregen omgevingsvergunning als bewijs.

Licht dat rekening houdt met de omgeving

Duurzaam en verantwoord

APM Terminals Maasvlakte II is een van de meest geavanceerde en duurzame containerterminals van Europa. Vrijwel alle kraan- en transportbewegingen zijn geautomatiseerd, en de terminal is CO₂-emissievrij. Bij zo'n ambitie hoort ook verlichting die de omgeving respecteert. Het nabijgelegen Natura 2000-gebied stelde harde eisen: geen lichtuitstoot buiten de terminal. Dankzij de louvres op de Philips OptiVision armaturen wordt het licht precies daar geprojecteerd waar het nodig is, en nergens anders.

"Een geavanceerde terminal vraagt om geavanceerde verlichting: slim aangestuurd, energiezuinig en volledig afgestemd op de omgeving."

Geïntegreerd in het hart van de terminal

Slim. Snel. Samen.

De nieuwe verlichting is via DALI-protocol volledig gekoppeld aan het SCADA Terminal Operations Managementsysteem van APM Terminals. Dat betekent centrale sturing, smart dimming en real-time inzicht in het energieverbruik, allemaal vanuit één systeem. Yourlight zorgde van lichtplan tot controlemeting voor een volledig ontzorgd traject. Met een V&G-werkplan op maat, uitvoering conform NEN-1010 en een aantoonbaar correct geïnstalleerde eindoplevering.

Project in beeld

Ingezette producten in dit project

    Philips Optivision Gen 3 – Hoge mast – Toepassing op masten van 20m – 50m+ Vervanging voor 2000W

    Terreinverlichting

    • Wattage

      900W
    • Lumen output

      110.000lm – 259.000lm
    • IP/Trillingsbestendig

      IP66 – 3G
    • Omgevingstemp

      -40˚C – +55˚C

    Philips Luma gen2 – Mast – Toepassing op masten van 3m – 25m Vervanging voor 1000W

    Terreinverlichting

    • Wattage

      Tot 200 lm/W (UltraEfficient configuraties)
    • Lumen output

      1.000 lm – 89.000 lm
    • IP/Trillingsbestendig

      IP66 – 5G
    • Omgevingstemp

      -40˚C – +50˚C

Uitgelichte projecten

Batterijpark Espel — Alfen

Batterijpark Dronten — Alfen & Flevo BESS

Jan de Nul — Port of Vreed-en-Hoop, Guyana

Dit zijn het type projecten waar het team van Yourlight warm voor loopt en waar we goed in zijn: het vinden van innovatieve en creatieve lichtoplossingen voor complexe vraagstukken. Jan de Nul heeft een volledig nieuwe off-shore terminal opgespoten en gebouwd voor Exxon Mobile, waar voldoende verlichting moet zijn om veilig te kunnen werken. De…

Uitgelichte projecten

Bekijk alle projecten
    document.addEventListener('DOMContentLoaded', () => {
      console.log(window.bricksData?.splideInstances);
    });
    
    
    document.addEventListener('DOMContentLoaded', function() {
      const scriptId = 'tugclp'; // <-- YOUR data-bricks-script-id HERE
      const splide = window.bricksData?.splideInstances?.[scriptId];
    
      if (!splide) {
        console.warn('Splide instance not found for ID:', scriptId);
        return;
      }
    
      const sliderEl = splide.root; // the .splide element
    
      splide.on('move', function(newIndex, prevIndex) {
        const direction = newIndex > prevIndex ? 'next' : 'prev';
    
        // Add direction class to the slider root
        sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        sliderEl.classList.add('slide-dir-' + direction);
    
        // Auto-remove after animation (prevents stuck states)
        setTimeout(() => {
          sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        }, 1500); // longer than your transition
      });
    
      // Optional: initial direction on load
      splide.on('mounted', () => {
        console.log('Slider mounted, active index:', splide.index);
      });
    });
    
    document.addEventListener('DOMContentLoaded', () => {
      console.log(window.bricksData?.splideInstances);
    });
    
    
    document.addEventListener('DOMContentLoaded', function() {
      const scriptId = 'tugclp'; // <-- YOUR data-bricks-script-id HERE
      const splide = window.bricksData?.splideInstances?.[scriptId];
    
      if (!splide) {
        console.warn('Splide instance not found for ID:', scriptId);
        return;
      }
    
      const sliderEl = splide.root; // the .splide element
    
      splide.on('move', function(newIndex, prevIndex) {
        const direction = newIndex > prevIndex ? 'next' : 'prev';
    
        // Add direction class to the slider root
        sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        sliderEl.classList.add('slide-dir-' + direction);
    
        // Auto-remove after animation (prevents stuck states)
        setTimeout(() => {
          sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        }, 1500); // longer than your transition
      });
    
      // Optional: initial direction on load
      splide.on('mounted', () => {
        console.log('Slider mounted, active index:', splide.index);
      });
    });
    

    Jan de Nul — Port of Vreed-en-Hoop, Guyana

    Dit zijn het type projecten waar het team van Yourlight warm voor loopt en waar we goed in zijn: het vinden van innovatieve en…

    Bekijk project
    document.addEventListener('DOMContentLoaded', () => {
      console.log(window.bricksData?.splideInstances);
    });
    
    
    document.addEventListener('DOMContentLoaded', function() {
      const scriptId = 'tugclp'; // <-- YOUR data-bricks-script-id HERE
      const splide = window.bricksData?.splideInstances?.[scriptId];
    
      if (!splide) {
        console.warn('Splide instance not found for ID:', scriptId);
        return;
      }
    
      const sliderEl = splide.root; // the .splide element
    
      splide.on('move', function(newIndex, prevIndex) {
        const direction = newIndex > prevIndex ? 'next' : 'prev';
    
        // Add direction class to the slider root
        sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        sliderEl.classList.add('slide-dir-' + direction);
    
        // Auto-remove after animation (prevents stuck states)
        setTimeout(() => {
          sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        }, 1500); // longer than your transition
      });
    
      // Optional: initial direction on load
      splide.on('mounted', () => {
        console.log('Slider mounted, active index:', splide.index);
      });
    });
    

    Waterman Onions

    Bekijk project
    document.addEventListener('DOMContentLoaded', () => {
      console.log(window.bricksData?.splideInstances);
    });
    
    
    document.addEventListener('DOMContentLoaded', function() {
      const scriptId = 'tugclp'; // <-- YOUR data-bricks-script-id HERE
      const splide = window.bricksData?.splideInstances?.[scriptId];
    
      if (!splide) {
        console.warn('Splide instance not found for ID:', scriptId);
        return;
      }
    
      const sliderEl = splide.root; // the .splide element
    
      splide.on('move', function(newIndex, prevIndex) {
        const direction = newIndex > prevIndex ? 'next' : 'prev';
    
        // Add direction class to the slider root
        sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        sliderEl.classList.add('slide-dir-' + direction);
    
        // Auto-remove after animation (prevents stuck states)
        setTimeout(() => {
          sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        }, 1500); // longer than your transition
      });
    
      // Optional: initial direction on load
      splide.on('mounted', () => {
        console.log('Slider mounted, active index:', splide.index);
      });
    });
    

    Vanderlande Industries

    Yourlight verving meer dan 600 verouderde HPI-armaturen door energiezuinige LED-armaturen met een smart lighting systeem. Resultaat: fors lager energieverbruik, betere lichtopbrengst en real-time inzicht…

    Bekijk project
    document.addEventListener('DOMContentLoaded', () => {
      console.log(window.bricksData?.splideInstances);
    });
    
    
    document.addEventListener('DOMContentLoaded', function() {
      const scriptId = 'tugclp'; // <-- YOUR data-bricks-script-id HERE
      const splide = window.bricksData?.splideInstances?.[scriptId];
    
      if (!splide) {
        console.warn('Splide instance not found for ID:', scriptId);
        return;
      }
    
      const sliderEl = splide.root; // the .splide element
    
      splide.on('move', function(newIndex, prevIndex) {
        const direction = newIndex > prevIndex ? 'next' : 'prev';
    
        // Add direction class to the slider root
        sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        sliderEl.classList.add('slide-dir-' + direction);
    
        // Auto-remove after animation (prevents stuck states)
        setTimeout(() => {
          sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        }, 1500); // longer than your transition
      });
    
      // Optional: initial direction on load
      splide.on('mounted', () => {
        console.log('Slider mounted, active index:', splide.index);
      });
    });
    
    document.addEventListener('DOMContentLoaded', () => {
      console.log(window.bricksData?.splideInstances);
    });
    
    
    document.addEventListener('DOMContentLoaded', function() {
      const scriptId = 'tugclp'; // <-- YOUR data-bricks-script-id HERE
      const splide = window.bricksData?.splideInstances?.[scriptId];
    
      if (!splide) {
        console.warn('Splide instance not found for ID:', scriptId);
        return;
      }
    
      const sliderEl = splide.root; // the .splide element
    
      splide.on('move', function(newIndex, prevIndex) {
        const direction = newIndex > prevIndex ? 'next' : 'prev';
    
        // Add direction class to the slider root
        sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        sliderEl.classList.add('slide-dir-' + direction);
    
        // Auto-remove after animation (prevents stuck states)
        setTimeout(() => {
          sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        }, 1500); // longer than your transition
      });
    
      // Optional: initial direction on load
      splide.on('mounted', () => {
        console.log('Slider mounted, active index:', splide.index);
      });
    });
    
    document.addEventListener('DOMContentLoaded', () => {
      console.log(window.bricksData?.splideInstances);
    });
    
    
    document.addEventListener('DOMContentLoaded', function() {
      const scriptId = 'tugclp'; // <-- YOUR data-bricks-script-id HERE
      const splide = window.bricksData?.splideInstances?.[scriptId];
    
      if (!splide) {
        console.warn('Splide instance not found for ID:', scriptId);
        return;
      }
    
      const sliderEl = splide.root; // the .splide element
    
      splide.on('move', function(newIndex, prevIndex) {
        const direction = newIndex > prevIndex ? 'next' : 'prev';
    
        // Add direction class to the slider root
        sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        sliderEl.classList.add('slide-dir-' + direction);
    
        // Auto-remove after animation (prevents stuck states)
        setTimeout(() => {
          sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        }, 1500); // longer than your transition
      });
    
      // Optional: initial direction on load
      splide.on('mounted', () => {
        console.log('Slider mounted, active index:', splide.index);
      });
    });
    
    document.addEventListener('DOMContentLoaded', () => {
      console.log(window.bricksData?.splideInstances);
    });
    
    
    document.addEventListener('DOMContentLoaded', function() {
      const scriptId = 'tugclp'; // <-- YOUR data-bricks-script-id HERE
      const splide = window.bricksData?.splideInstances?.[scriptId];
    
      if (!splide) {
        console.warn('Splide instance not found for ID:', scriptId);
        return;
      }
    
      const sliderEl = splide.root; // the .splide element
    
      splide.on('move', function(newIndex, prevIndex) {
        const direction = newIndex > prevIndex ? 'next' : 'prev';
    
        // Add direction class to the slider root
        sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        sliderEl.classList.add('slide-dir-' + direction);
    
        // Auto-remove after animation (prevents stuck states)
        setTimeout(() => {
          sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        }, 1500); // longer than your transition
      });
    
      // Optional: initial direction on load
      splide.on('mounted', () => {
        console.log('Slider mounted, active index:', splide.index);
      });
    });
    

    Luchthaven Den Helder

    Bekijk project
    document.addEventListener('DOMContentLoaded', () => {
      console.log(window.bricksData?.splideInstances);
    });
    
    
    document.addEventListener('DOMContentLoaded', function() {
      const scriptId = 'tugclp'; // <-- YOUR data-bricks-script-id HERE
      const splide = window.bricksData?.splideInstances?.[scriptId];
    
      if (!splide) {
        console.warn('Splide instance not found for ID:', scriptId);
        return;
      }
    
      const sliderEl = splide.root; // the .splide element
    
      splide.on('move', function(newIndex, prevIndex) {
        const direction = newIndex > prevIndex ? 'next' : 'prev';
    
        // Add direction class to the slider root
        sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        sliderEl.classList.add('slide-dir-' + direction);
    
        // Auto-remove after animation (prevents stuck states)
        setTimeout(() => {
          sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        }, 1500); // longer than your transition
      });
    
      // Optional: initial direction on load
      splide.on('mounted', () => {
        console.log('Slider mounted, active index:', splide.index);
      });
    });
    
    document.addEventListener('DOMContentLoaded', () => {
      console.log(window.bricksData?.splideInstances);
    });
    
    
    document.addEventListener('DOMContentLoaded', function() {
      const scriptId = 'tugclp'; // <-- YOUR data-bricks-script-id HERE
      const splide = window.bricksData?.splideInstances?.[scriptId];
    
      if (!splide) {
        console.warn('Splide instance not found for ID:', scriptId);
        return;
      }
    
      const sliderEl = splide.root; // the .splide element
    
      splide.on('move', function(newIndex, prevIndex) {
        const direction = newIndex > prevIndex ? 'next' : 'prev';
    
        // Add direction class to the slider root
        sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        sliderEl.classList.add('slide-dir-' + direction);
    
        // Auto-remove after animation (prevents stuck states)
        setTimeout(() => {
          sliderEl.classList.remove('slide-dir-next', 'slide-dir-prev');
        }, 1500); // longer than your transition
      });
    
      // Optional: initial direction on load
      splide.on('mounted', () => {
        console.log('Slider mounted, active index:', splide.index);
      });
    });