APM Terminals Maasvlakte II – Rotterdam – kranen

Wij verlichten jouw werk

Lees hier hoe Yourlight samen met kranenbouwer Kalmar de verlichtingsoplossing ontwierp voor de volledig automatische Super Quay Cranes van APM Terminals, ruim 200 lux vanaf 62 meter hoogte, onder alle weersomstandigheden aan de Noordzee.

Havenkraanverlichting, Kraanverlichting

Klant

APM Terminals Maasvlakte II B.V. — Rotterdam

Samenvatting

Yourlight ontwierp in samenwerking met de ingenieurs van Kalmar een geoptimaliseerde verlichtingsoplossing voor de volledig automatische Super Quay Cranes (SQC) op de tweede Maasvlakte. Super robuuste armaturen, bestand tegen trillingen, zilte lucht en de extreme weersomstandigheden aan de Noordzee, leveren vanaf 62m hoogte ruim 200 lux op de kade.

Geleverde diensten

  • Lichtadvies & co-design met Kalmar ingenieurs
  • Lichtplan op maat (SQC kraanverlichting)
  • Levering super robuuste kraanarmaturen (trilling bestendig, maritime proof)
  • Installatieadvies

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

    Uitdagingen

    De Super Quay Cranes van Kalmar op de tweede Maasvlakte zijn volledig automatisch, er komen geen kraanmachinisten meer aan te pas. Containers worden op afstand geladen en gelost via camera's. Die camera's hebben onder alle weersomstandigheden goed zicht nodig: ook bij regen, wind en zilte zeelucht, vanaf een kraanhoogte van 62 meter. De armaturen moeten bestand zijn tegen trillingen, corrosie en de zware omstandigheden vlak aan de Noordzee.

    Oplossingen

    Yourlight leverde super robuuste armaturen die bestand zijn tegen trillingen, zilte lucht en alle weersomstandigheden op de Maasvlakte. In samenwerking met de ingenieurs van Kalmar werd een geoptimaliseerd lichtplan ontwikkeld voor de specifieke geometrie van de SQC-kranen, zodat zowel de hoogst gestapelde containers als de diepste containerlagen in het ruim uitstekend worden verlicht.

    Implementatie

    tandwiel

    De ruwbouw van de Super Quay Cranes vond plaats in China, waarna de kranen per schip naar Rotterdam werden gebracht en op de kade van APM Terminals werden afgebouwd en in gebruik gesteld. Yourlight leverde de kraanverlichting als onderdeel van dit internationale nieuwbouwtraject, in nauwe samenwerking met Kalmar.

    Resultaat

    Ruim 200 lux op de kade vanaf een hoogte van 62 meter, onder alle weersomstandigheden, continu en betrouwbaar. Zowel de hoogst gestapelde containers als die diep in het ruim liggen worden uitstekend verlicht, zodat het camerasysteem van de automatische kranen altijd scherp beeld heeft.

Geen kraanmachinist meer, des te belangrijker dat het licht klopt

Automatisering vraagt feilloos licht

De Super Quay Cranes op de tweede Maasvlakte behoren tot de meest geavanceerde containerkranen ter wereld. Ze zijn volledig automatisch: containers worden geladen en gelost via camerasystemen op afstand, zonder dat er kraanpersoneel aan te pas komt. Dat camerasysteem heeft altijd goed zicht nodig, ook 's nachts, bij regen en bij de constante zeewind vlak aan de Noordzee. Als het licht faalt, faalt het camerasysteem, en daarmee de hele kraanoperatie. De armaturen moeten het dan ook altijd doen: bestand tegen trillingen van de kraan, corrosie door zilte zeelucht en de extreme weersomstandigheden op de Maasvlakte.

"Vanaf 62 meter hoogte ruim 200 lux op de kade, onder alle weersomstandigheden aan de Noordzee. Zo werkt kraanverlichting die écht betrouwbaar is."

Co-design met Kalmar, van China tot de kade in Rotterdam

Slim. Snel. Samen.

Yourlight werkte vanaf de ontwerpfase samen met de ingenieurs van kranenbouwer Kalmar om tot de meest optimale verlichtingsoplossing te komen voor de specifieke geometrie van de SQC-kranen. Het lichtplan moest garanderen dat zowel de hoogst gestapelde containers als die diep in het ruim liggen altijd uitstekend verlicht zijn, ongeacht de kraanpositie. De kranen werden in China gebouwd en per schip naar Rotterdam verscheept. Yourlight leverde de kraanverlichting als integraal onderdeel van dit internationale nieuwbouwtraject. Van lichtplan tot gemonteerde armatuur op 62 meter hoogte, volledig op maat voor één van de modernste containerterminals van Europa.

Project in beeld

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);
      });
    });