Ik ben bezig aan een projectje waarbij ik een aantal zeer nauwkeurige tijdsmetingen moet maken. Bij voorkeur zou ik het hele project met een (bij voorkeur Siemens) PLC maken. Er is echter een nauwkeurigheid van ongeveer 0,1ms vereist. Een gewone plc uitgang gaat dit niet halen, maar nu vraag ik mij af of er verder nog mogelijkheden zijn. Na wat opzoekingswerk heb ik wel al op een paar plaatsen mensen 'hoge snelheid tellerkaarten' horen vernoemen, maar hier vind ik spijtig genoeg amper informatie over en ik betwijfel of de prijs van deze verantwoordbaar gaat blijven.
Iemand die mij misschien een beetje opweg kan zetten in deze richting of andere suggesties heeft? (Ik weet dat microcontrollers ook een optie zijn voor dit project maar aangezien er in het bedrijf waarvoor het project bestemd is niemand hier ervaring mee heeft zien ze dit liever niet gebeuren.)
Mvg,
Thierry
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Moet kunnen, er zijn speciale tellerkaarten voor Siemens.
Voor de S7-300 serie, de FM350-1 en de FM350-2 bijvoorbeeld.
Vipa heeft ook in het SLIO systeem een frequentie counter module met twee ingangen.
De 050-1BB40 bijvoorbeeld maar ze hebben nog wat meer. Met een profibus kopstation kun je die zo met Siemens koppelen.
Wil je geheel nieuwbouw zou ik een SLIO CPU pakken, knoop je direct aan elkaar, en kosten effectiever. (Is met de Siemens software ook te programmeren).
-edit- Even opgezocht de universele (1 channel) unit 050-1BA00 gaat tot 400kHz.
Een beetje onhandig te vinden (maar een verademing t.o.v. de Siemens site):
http://www.vipa.nl/index.php?id=487&L=2
Daar kun je ze allemaal vinden, dus de spec's mag je zelf even opduiken.
Beckhoff heeft kaarten waarmee je dit kunt doen
in denk bv aan een EL1258 of EL1252 , waarmee je tot op 1µs nauwkeurig kan meten
Vipa heeft standaard teller ingangen op iedere 100 serie PLC. Gewoon programmeren met step7 (als een CPU315)
Op 25 februari 2014 18:00:43 schreef henri62:
Vipa heeft ook in het SLIO systeem...
Mooi systeem, maar wel step7 vanaf versie 5.5 SP2 gebruiken.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Jep, voor een klein projectje prima bruikbaar. En als je inderdaad alleen maar relatief weinig I/O nodig hebt ook kosten effectief.
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Het is alweer een aantal jaar geleden dat ik iets met Siemens PLC's gedaan heb, maar zelfs met de DC varianten van de S7-200 micro PLC's kon je gewoon pulsjes tellen.
Een nauwkeurigheid van 100us valt bij mij eigenlijk niet onder "zeer nauwkeurig", of in ieder geval niet zodanig dat het echt spannend wordt. Als we het over een paar nanoseconden of zelfs picoseconden gaan hebben wordt het wat anders; een resolutie in de orde van grootte van een tiental nanoseconden is nog goed te doen met de input capture hardware van een leuke, snelle microcontroller (geen trage 8-bitter op een paar MHz natuurlijk), en daarna wordt het pas echt leuk.
Maar wat voor signaal is het eigenlijk? Moet je het aantal pulsjes tellen binnen een bepaalde tijd, of de lengte van een pulsje meten, of de interval tussen twee opgaande of neergaande flanken? Als dat het geval is, wat is dan de frequentie van de pulsjes die je wilt meten?
Kun je iets meer vertellen over het systeem dat de pulsjes produceert, en wat je met die informatie wilt gaan doen?
Let wel, de genoemde 100 n us is enkel een resolutie, deze zegt nog niets over de nauwkeurigheid.
100 us op een seconde is gemakkelijk te doen, per jaar wordt aanzienlijk uitdagender.
Wellicht niet geschikt voor TS, maar wel leuk voor techneuten: White Rabbit.
Sub-ns timing accuracy over afstanden van meer dan 10km!
@Aart: GPS geeft 10ns accuracy, en doet het al ruim langer dan een jaar 
[Bericht gewijzigd door blurp op (16%)]
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Op 25 februari 2014 16:07:06 schreef Thierry400: (Ik weet dat microcontrollers ook een optie zijn voor dit project maar aangezien er in het bedrijf waarvoor het project bestemd is niemand hier ervaring mee heeft zien ze dit liever niet gebeuren.)
Kortom niet doen dus: in een industriële omgeving is het zelf in elkaar knutselen/hobbyen van een stuk hardware gewoon "NOT DONE".
De onderhoudbaarheid is nul komma nul of je moet alles meteen twee keer bouwen zodat je een spare op de plank hebt liggen, alles perfect documenteren zodat iemand anders het ook kan repareren. En dan hebben we het nog niet eens over de "robuustheid" die de schakeling moet bezitten.
Dan vallen al die hobbybordjes dus gewoon af.
Of je moet zoiets unieks willen hebben dat het echt niet te koop is. (Kan maar lijkt me in dit geval geen issue)
Excuses, ik maak ook wel eens een fout 
De standaardoplossing voor tijds- en periodemetingen met een gespecificeerde nauwkeurigheid lijkt mij een moderne "universal counter" frequentieteller aangevuld met die extra's welke nodig zijn om de gewenste specs te halen en functies (logging ? ) te implementeren.
Als referentie over zowel korte ( < 1h) als langere perioden schijnt Rb gelocked aan GPS op dit moment inderdaad het beste te zijn. Maar allicht is dat hier schromelijk overdreven. "Zeer nauwkeurig" is een rekbaar begrip.
joopv
Golden Member
Zolang de topicstarter niet zegt of hij een absolute of relatieve meting doet, cq nauwkeurigheid nodig heeft - en indien relatief, dan verder specificeren - is iedere discussie tamelijk zinloos.
Alvast bedankt voor al jullie antwoorden. Ik ga mij al eens verdiepen in de specificaties van de vernoemde kaarten
Om nog wat duidelijkheid te geven over het projectje dat ik moet ontwikkelen:
Ik heb een systeem waar ik met de plc een signaal van exact 32ms instuur en ik moet dan meten hoe lang het duurt voor dit systeem om hier feedback op te geven (deze feedback moet tussen de 18ms en 32ms hierna komen). Als het systeem feedback geeft moet ik ook exact meten hoe lang dit feedback signaal is (normaal 0,3ms tot 3ms). Het is dus de lengte van de pulsen meten en niet het aantal pulsen tellen. Vallen de metingen buiten de marges dan moet de plc een alarm aansturen. Ik moet dus minstens 1 uitgang nauwkeurig kunnen aansturen en op 1 ingang de feedback nauwkeurig meten.
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Nou, dat niet alleen, de relatie tussen die 2 moeten dus ook met een bepaalde nauwkeurigheid bekend zijn, of je zou het signaal dat je zelf uitstuurt moeten "mengen" met het signaal dat je terugkrijgt, zodat je met een aantal metingen op dezelfde ingang de relatieve tijden kunt bepalen.
Wat je nodig hebt is dus eerder een input capture functie, in plaats van een teller, waarbij je ook meerdere flanken moet kunnen meten binnen korte tijd (min. 0.3ms), wat waarschijnlijk korter is dan de cyclustijd van je PLC. Dat betekend dus dat er een buffer moet zijn voor de timestamps van die gebeurtenissen.
Er zijn ook teller ingangen / kaarten die een bepaald kloksignaal kunnen tellen zolang een ingang hoog of laag is, die dan dus als gate gebruikt wordt, maar dan kun je waarschijnlijk met 1 ingang niet zowel de tijd tot het begin van de puls als de lengte van de puls meten. Als je hetzelfde signaal aanbied op 2 dergelijke ingangen, zou dus misschien wel weer kunnen. Een ander bijkomend probleem is dat de teller waarmee je de tijd tot de puls meet, weer verder zou gaan tellen zodra de puls afgelopen is. Aangezien de puls zo kort kan zijn, kun je moeilijk garanderen dat je de tellerwaarde hebt uitgelezen voordat de puls voorbij is en de teller alweer gaat lopen.
Je zou het eventueel ook met een analoge ingang kunnen doen, als je die met 10kHz of meer kunt bemonsteren (geen idee of dat bestaat), en het aantal samples boven of onder een bepaalde grenswaarde tellen om de lengte te bepalen.
Wat jij wilt doen lijkt me een beetje ongebruikelijk in de automatisering, en dat betekend meestal dat het ook moeilijk op te lossen is met dergelijke standaard componenten. Technisch gezien is het eigenlijk een heel eenvoudig probleem, het lastige is om een inkoop component te vinden waarmee het kan.
Gatze
Congratulations on your purchase. To begin using your quantum computer, set the power switch to both off and on simultaneously
Op 25 februari 2014 21:44:06 schreef henri62:
[...]Kortom niet doen dus: in een industriële omgeving is het zelf in elkaar knutselen/hobbyen van een stuk hardware gewoon "NOT DONE".
De onderhoudbaarheid is nul komma nul of je moet alles meteen twee keer bouwen zodat je een spare op de plank hebt liggen, alles perfect documenteren zodat iemand anders het ook kan repareren. En dan hebben we het nog niet eens over de "robuustheid" die de schakeling moet bezitten.Dan vallen al die hobbybordjes dus gewoon af.
Of je moet zoiets unieks willen hebben dat het echt niet te koop is. (Kan maar lijkt me in dit geval geen issue)
Daar ben ik door schade en schande en heel veel stress ook achter gekomen 
Ik denk dat dit eenvoudiger kan met een of twee timermodules, gewoon buiten de PLC. Een om het signaal te "maken" en een om de tijd te meten tot het signaal terugkomt.
Bijvoorbeeld Pepperl&Fuchs heeft wat timer/counter modules voor 48x48 inbouw en/of dinrail montage die dit zouden moeten kunnen.
Op 26 februari 2014 13:16:19 schreef SparkyGSX:
maar dan kun je waarschijnlijk met 1 ingang niet zowel de tijd tot het begin van de puls als de lengte van de puls meten.
Een ander bijkomend probleem is dat de teller waarmee je de tijd tot de puls meet, weer verder zou gaan tellen zodra de puls afgelopen is.
Aangezien de puls zo kort kan zijn, kun je moeilijk garanderen dat je de tellerwaarde hebt uitgelezen voordat de puls voorbij is en de teller alweer gaat lopen.
Het belangrijkste is eigelijk dat het systeem binnen de opgelegde marges zit. Als het ertussen zit is het systeem goed. Dus misschien kan de teller eerst 18ms tellen en controleren dat er in die tijd geen feedback komt, daarna op feedback wachten en vannaf deze komt de lengte van deze puls meten en deze vergelijken met de marge (0,3ms tot 3ms) en op het einde kijken hoe lang het hele programma geduurt heeft? (om de 32ms maximum reactietijd te controleren)
Ik ga het denk ik proberen met een FM350-2 en S7-300 plc zoals henri62 had voorgesteld. (aangezien ze nog zo een plc op stock hebben). Tenminste als het mogenlijk is om daar ook pulsbreedte met te meten. Kan iemand bevestigen of dit ook echt kan? (gebaseerd op de datasheet vermoed ik van wel in de "Period duration measurement" mode)
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
De verassing hier zit in het feit dat je een uitgangssignaal ook nauwkeurig met kunnen sturen (32mS) en ook nog de relatie van je response t.o.v. dat signaal moet kunnen meten.
Dat wordt even puzzelen om te kijken of dat kan, ik ben bang dat je zowiezo een extra device nodig hebt om die 32 mS precies te timen (Mischien dat ding wat GJ_ aanhaalt) en dan dat signaal gebruiken als GATE voor de timer module die je dan weer in de PLC terugleest.