Hoe kun je de prestaties van Kepware optimaliseren?

Tips & tricks om driver performance te verbeteren

Inleiding

In dit artikel vind je een aantal aanbevelingen waarmee je de prestaties van een KEPServerEx Server kunt optimaliseren.

Opdeling in Channels en devices

Een van de meest voorkomende oorzaken van slechte performance is het niet optimaal opdelen van je communicatie in channels en devices.

Een channel definieert bij de meeste drivers het protocol en de netwerkkaart, terwijl het device de PLC of het toestel zelf identificeert.

Binnen een channel worden de devices na elkaar - dus serieel -  afgevraagd. Dit zorgt ervoor dat 1 problematisch device de communicatie met al de andere devices kan verstoren en een vertragende werking op andere devices in dat channel geeft.

Channels werken onderling parallel, elk in een eigen thread. Een problematisch device heeft hierdoor geen impact op de devices in andere channels van dezelfde driver. Voor de meeste drivers is het geen probleem om meerdere channels op dezelfde netwerkkaart aan te maken. 

In sommige situaties dient u echter wel meerdere devices per channel toe te passen: bijvoorbeeld bij seriële protocollen, beperkte beschikbare bandbreedte, wanneer de toepassing vereist dat devices na elkaar aangesproken worden of wanneer het maximaal aantal channels voor de driver bereikt is. Kijk in de betreffende handleiding wat bij het gebruikte protocol van toepassing is.

Auto-demotion

Wanneer meerdere devices in een channel toch nodig zijn, dan kan de impact van een defect device geminimaliseerd worden mbv de auto-demotion setting. Op het moment namelijk dat er een aantal timeouts op een device opgetreden zijn, zal deze setting dat device tijdelijk uitschakelen voor de ingestelde periode (standaard 10 seconden). Gedurende deze periode kan KEPServer de andere devices weer op volle snelheid afvragen.

  1. Rechtsklik op het device, en selecteer 'Properties'
  2. Ga naar de tab 'Auto-demotion'

  3. Zet de setting 'Demote on failure' op 'Enable'
  4. Bij 'Timeouts to Demote' specifieert u het aantal opeenvolgende timeouts waarna de device tijdelijk uitgeschakeld wordt
  5. Bij 'Demotion Period' stelt u de tijdspanne in waarna het device terug ingeschakeld wordt
  6. Wanneer 'Discard Requests when Demoted' op 'Disable' staat, worden schrijfacties gedurende de demotion toch geprobeerd. Wanneer hij op 'Enable' staat, worden de schrijfacties op dit device vanuit clients genegeerd.

Blokgroottes

Veel drivers laten toe om de grootte in te stellen van de datablokken waarmee de driver een device afvraagt. Hoe groter het datablok, hoe meer data er met 1 request opgehaald kan worden. Bij elke request is er 'overhead' zoals adressering en  foutafhandeling nodig waardoor data in een groot blok ophalen dus meestal sneller is dan data in meerdere kleinere blokken ophalen. Let op, want wanneer de data verspreid in het geheugen van een device zit, haal je bij grotere blokken weer meer data op die uiteindelijk niet nodig is.

Door te testen en te benchmarken, kunt u zelf proberen welke instelling het beste is voor elk device. Zie het artikel 'Benchmarking van een device' voor meer uitleg hierover.

TIP: De gebruikte termen om de blokgrootte aan te duiden verschillen per driver/protocol. Zo spreekt ment bij Siemens TCP over 'PDU Size', bij Modbus over 'Block Sizes' en bij OPC UA over 'Max. Items per Read/Write'.

Subscription versus Polled

Bij sommige protocollen, zoals OPC, kan er gekozen worden om data polled op te vragen, of via subscription/exception based.

Polled wil zeggen dat alle data op een vast interval wordt opgevraagd, ook al is die niet gewijzigd sinds de vorige leesactie. Dit biedt de meeste zekerheid maar vraagt ook de meeste bandbreedte.

Bij subscription, of exception based communicatie, wordt aan het device gevraagd om enkel gewijzigde data op een bepaald interval naar KEPServerEX te zenden. Hierdoor wordt er minder bandbreedte gebruikt.

Meerdere connecties naar hetzelfde toestel

Soms heeft een bepaald protocol een maximum snelheid, of kan een communicatiekaart per connectie maar met een bepaalde maximum snelheid communiceren. Meerdere connecties, dus devices in KEPServerEX, kunnen dan voor een betere algemene performantie zorgen.

Zo kan men data die traag verandert in 1 connectie opvragen en snel veranderende data in een andere. Of in de ene connectie data polled opvragen, en in de andere via subscription.

Controlleer wel of het toestel meerdere connecties ondersteunt.

Optimalisatie van het PLC project

Wanneer het gebruikte protocol data opvraagt in blokken, is het aangeraden om de data in de PLC logisch te organiseren per update snelheid, datatype, etc.

Op die manier hebben de eerdere tips over de blokgroottes en meerdere connecties een maximaal effect.