Siemens LOGO! gemeten tijd vasthouden tot nieuwe input puls

Goedemiddag,

Voor een projectje moet ik cyclustijd meten op een LOGO. Niet de cyclustijd van de LOGO zelf maar in feite de tijd tussen 2 pulsen op een digitale ingang.

Deze pulsen komen van een relais die minstens een pulslengte brengt van 1 seconde.

Ik krijg het zover voor elkaar dat ik de gemeten tijd op de webserver kan bekijken maar ik zou het liefst iets anders doen.
Op dit moment stop ik de output van een stopwatch in een max-min block die zijn max waarde uitspuugt naar de webserver.

Dit max-min block reset ik elke nieuwe cyclus aan de hand van een tijdvertraging die getriggerd word door dezelfde input die de pulsen van een nieuwe cyclus geeft.
D.m.v. hier nog een tijdvertraging tussen te zetten, blijft de laatst gemeten cyclustijd even staan om vervolgens weer de waarde weer te geven die de stopwatch ingeeft.

Echter op de webserver hapert de tijd nogal en omdat er uiteindelijk 11 cyclustijden op komen te staan, verwacht ik door de cyclustijd van de LOGO zelf dat het erg gaat haperen.

Dus, het zou ideaal zijn om de laatst gemeten cyclustijd in een variabele te kunnen zetten en hiermee de webserver elke cyclus te updaten met de laatst gemeten cyclustijd. Hier gaat het mis, want ik krijg het met diverse functieblokken niet voor elkaar.

Heeft iemand hier misschien een idee?

Bvd.

Toeternietoe

Dubbelgeïsoleerd

onder jouw programma is het moeilijk te oordelen.
Ik heb een voorbeeldje gemaakt, waarbij ik denk dat het werkt zoals jij bedoelt.
De cyclustijd van de vorige cyclus staat in blok B005.
De waarde Aq van B005 moet je dan overbrengen naar je webserver.
Het meet in 1/10 seconde.

Daar waar een schakeling rookt, vloeit de meeste stroom (1e hoofdwet van Toeternietoe)

Goedemorgen Toeternietoe,

Het programma wat ik had was 10 x complexer dan die wat u hebt gestuurd.
Na het zien van uw oplossing ging het spreekwoordelijke licht weer aan en zag ik dat het niet zo moeilijk hoeft te zijn.

De opzet is als volgt:

Op een grote smart tv die in de productie hangt, wil ik de status weergeven van 11 machines.

Ten eerste de cyclustijd, voor een centraal inzicht in deze tijden. zo hoef je niet langs alle machines te lopen.
Ten tweede een aantal mogelijke statussen:

* Machine in automaat bedrijf.
* Machine in storing.
* Machine in handmatig bedrijf.

Het automaat bedrijf schakel ik nu aan de hand van een merker die getriggerd word door een RS block die de pulsgenerator aanstuurt.

Handbedrijf word geschakeld door het verlopen van een max cyclustijd. Deze tijd is per machine verschillend en geef ik in in de counter. ON reset het RS block die de pulsgenerator triggert.

Storing word getriggerd door een extra input die vervolgens het cyclustellen blokkeert.

Zodra ik het programma aangepast heb op deze voorwaarden zal ik het posten. Dat zal nog een aantal dagen duren, daar ik tussen de bedrijven door moet programmeren. Ook de webserver zal ik dan proberen te posten.

Heel erg bedankt voor uw input, zoals gewoonlijk weer uitstekende hulp op dit forum.

Gr. R-Tronic

Dit heb ik nu draaiende op 1 machine. Even kijken hoe dat gaat over een weekend productie.

Mocht het maandag nog draaien, wat ik wel verwacht, dan ga ik het uitbreiden naar de andere 10 machines. Als dat allemaal draait, ga ik er tellers aan hangen die producten tellen en stilstanden/storingen.

Enige nadeel wat ik vind aan de webserver is dat ik een tijdsnotatie wil in seconden. Echter, als je dat kiest en de LOGO levert een ms tijd aan dan klopt de tijd niet. Een cyclustijd van 14.5 seconden was ineens 24.5 seconden.

Nu klopt de tijd wel, maar de notatie niet. 0:00:14:50 ms i.p.v. 0:00:14:50 sec
Ach ja. feitelijk klopt het wel. :)