Tijd en datum toevoegen aan logfile

Nederlandse CNC controller op basis van de usb poort of Ethernet.

Moderator: Moderators

Gebruikersavatar
TomAndKobus
Berichten: 384
Lid geworden op: 12 feb 2020 12:43
Locatie: Gouda

Tijd en datum toevoegen aan logfile

Bericht door TomAndKobus »

Hallo allemaal,
Ik wil graag een logfile bijhouden van wat een macro doet. Ik kan inmiddels een logfile maken met bijvoorbeeld: LogFile "m_tool.txt" 1, dan wordt keurig de datum van het aanmaken in de file gezet vervolgens met LogMSG "....." komt er een regel in de logfile . Maar aanmaken van de file hoeft maar 1 keer. Daarna verander ik in de macro: LogFile "m_tool.txt" 0. Dan worden de nieuwe log regels toegevoegd. Wat ik nu handig zou vinden is dat voor elke log regel een tijd en datum wordt toegevoegd. Dan weet je wanneer wat is gebeurd. Kan dit?

Groeten, Tom.
Gebruikersavatar
Arie Kabaalstra
Berichten: 10520
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Tijd en datum toevoegen aan logfile

Bericht door Arie Kabaalstra »

Nee, nog niet, niet rechtstreeks in elk geval..

Kun je programmeren in C#?..
https://www.oosterhof-design.com/cncapi-netframework/
Ik heb dit stukje software ook gedownload, en daarmee kun je dat mogelijk wel voorelkaar krijgen..
Simpelste manier is om met dat Framework een kleine applicatie te maken die bijvoorbeeld de waarde van een bepaalde variabele in de gaten houdt met een timer.. , als je dan een LogMsg wilt wegschrijven, dan maak je een bepaalde parameter even "hoog".. en in je applicatie wordt dat afgevangen, en dan stel je gewoon een string samen met de tijd erin.. en dan schrijf je 't vanuit die applicatie weg in je logfile

Dat klinkt moeilijker dan het is.. je stelt de string samen, en dan programmeer je iets in de trant van "RunSingleLine ("logmsg\"Time is\" Time");

de precieze Syntax ken ik nog niet uit mijn hoofd.. maar iets in die trant moet het wel worden.
'k beloof nog niets.. maar ik kan wel eens kijken of ik een "Timestamper-Plugin" kan bouwen..lijkt me een leuk beginnersprojectje om C# te proggen..


Overigens.. 't is wel even zoeken.. maar ALLES.. staat sowieso in de EdingCNC Logfiles.. time and date!..

Code: Selecteer alles

05-03 10:56:17->CNC_EC_INFO CNC_RC_OK SetMCAGuardON:CCncKins.cpp(1313):MCAGuard switched ON
05-03 10:56:17->CNC_EC_INFO CNC_RC_OK SetTCAGuardON:CCncKins.cpp(1283):TCAGuard switched OFF because settings are zero
05-03 10:56:17->CNC_EC_INFO CNC_RC_OK Msg:intdefcmd.cpp(35):home complete
05-03 10:56:53->CNC_EC_INFO CNC_RC_OK RunLine:cnccommand.cpp(2659):Enter state =<READY>, line=<LOGFILE TESTX.TXT 1>
05-03 10:56:53->CNC_EC_INFO CNC_RC_OK RunLine:cnccommand.cpp(2709):logfile testx.txt 1
05-03 10:56:53->CNC_EC_INFO CNC_RC_OK RunLine:cnccommand.cpp(2928):Leave state=<RUNNING_LINE>
05-03 10:57:15->CNC_EC_INFO CNC_RC_OK RunLine:cnccommand.cpp(2659):Enter state =<READY>, line=<LOGMSG "KLOOI">
05-03 10:57:15->CNC_EC_INFO CNC_RC_OK RunLine:cnccommand.cpp(2709):logmsg "klooi"
05-03 10:57:15->CNC_EC_INFO CNC_RC_OK RunLine:cnccommand.cpp(2928):Leave state=<RUNNING_LINE>

net even getest.. See?..
maar.. een "pluginnetje" die dat gewoon netjes in de Log gooit.. is eigenlijk ook een leuke..
Gebruikersavatar
TomAndKobus
Berichten: 384
Lid geworden op: 12 feb 2020 12:43
Locatie: Gouda

Re: Tijd en datum toevoegen aan logfile

Bericht door TomAndKobus »

Bedankt Arie, ik ga dit uitproberen, je hoort nog wel of het is gelukt 8)
Gebruikersavatar
TomAndKobus
Berichten: 384
Lid geworden op: 12 feb 2020 12:43
Locatie: Gouda

Re: Tijd en datum toevoegen aan logfile

Bericht door TomAndKobus »

Hallo Arie, Dit is toch wat te moeilijk voor mij. Ik laat dit voorlopig rusten.
Maar wat ik geleerd heb met het maken met de logfiles, is dat je heel goed kan controleren en volgen wat er gebeurd in een macro. Als ik iets aanpas, of in de toekomst nieuw maak, dan kan ik alles volgen als ik veel log in een logfile. Goed om fouten op te sporen. En als alles werkt, dan haal je de log regels weer ut de macro.
Bedankt voor de hulp, Tom.
Gebruikersavatar
Arie Kabaalstra
Berichten: 10520
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Tijd en datum toevoegen aan logfile

Bericht door Arie Kabaalstra »

TomAndKobus schreef: 06 mar 2021 08:18 Hallo Arie, Dit is toch wat te moeilijk voor mij. Ik laat dit voorlopig rusten.
Maar wat ik geleerd heb met het maken met de logfiles, is dat je heel goed kan controleren en volgen wat er gebeurd in een macro. Als ik iets aanpas, of in de toekomst nieuw maak, dan kan ik alles volgen als ik veel log in een logfile. Goed om fouten op te sporen. En als alles werkt, dan haal je de log regels weer ut de macro.
Bedankt voor de hulp, Tom.
Dat was, voor zover ik begrepen heb, ook het doel van Logfiles, het ontikkelen, en debuggen van macro's..
Dat ik er ook heel andere dingen mee doe, zoals NC bestanden aanmaken, of DXF's.. daar had Bert nooit aan gedacht.. (heeft ie me zelf toegegeven)..
Je kunt het ook toepassen als "Parts-counter".
Dan pak je gewoon een parameter, en die schrijf je weg naar de Logfile (overwrite), en aan het eind van je programma tel je er 1 bij op..,
Na een sessie kun je dan in die logfile kijken hoeveel parts er gemaakt zijn..
Gebruikersavatar
TomAndKobus
Berichten: 384
Lid geworden op: 12 feb 2020 12:43
Locatie: Gouda

Re: Tijd en datum toevoegen aan logfile

Bericht door TomAndKobus »

Ook een grappige toepassing, dat snap ik dan weer wel :P
Swake
Donateur
Berichten: 1451
Lid geworden op: 23 nov 2009 20:58
Locatie: (B)
Contacteer:

Re: Tijd en datum toevoegen aan logfile

Bericht door Swake »

Kan EdingCNC vanuit een makro een extern programma opstarten?

Want dan kan je een batch (naam.bat) bestand opstarten met dit erin:

Code: Selecteer alles

time /t > logfile.txt
Dat schrijft de tijd bij als laatste lijn in het bestand logfile.txt
Verander time door date en het schrijft de datum.
When it fits stop using the hammer.
Gebruikersavatar
Arie Kabaalstra
Berichten: 10520
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Tijd en datum toevoegen aan logfile

Bericht door Arie Kabaalstra »

Swake schreef: 06 mar 2021 18:17 Kan EdingCNC vanuit een makro een extern programma opstarten?

Want dan kan je een batch (naam.bat) bestand opstarten met dit erin:

Code: Selecteer alles

time /t > logfile.txt
Dat schrijft de tijd bij als laatste lijn in het bestand logfile.txt
Verander time door date en het schrijft de datum.
Jazeker kan dat, met het commando Exec , ik heb dat in mijn Draai-macro ook gebruikt, ik heb een kopie van Notepad in mijn EdingCNC map gezet, en met Exec notepad.exe partprogram.nc kan ik mijn partprogram openen.
er loopt ook nog ergens een draadje waarbij scripts gemaakt met AutoIt worden aangeroepen.
Ja!.. net even getest..

Code: Selecteer alles

 time/t >> logfile.txt
als je dat in een Batch file zet.. dan zet ie de tijd erin..
Waarbij aangetekend dient te worden dat:
> de file overschrijft (dat wil je niet)
>> de tekst toevoegt.. (dat wil je wel!)
"logfile.txt" de file is waar ie naartoe schrijft, daar zul je dus de filename in moeten zetten die je in je Logfile in EdingCNC opent (of.. je gebruikt in EdingCNC dezelfde naam als die in de Batchfile, dat maakt verder geen verschil.


Wel een goeie.. ik geef dit ook even door aan EdingCNC.

ik dacht weer eens veel te moeilijk.. we vergeten snel hoe krachtig DOS Batch ook al weer was.. terwijl ik er toch vroeger heel wat leuke dingen mee geschreven heb..
🙄🤪
Gebruikersavatar
TomAndKobus
Berichten: 384
Lid geworden op: 12 feb 2020 12:43
Locatie: Gouda

Re: Tijd en datum toevoegen aan logfile

Bericht door TomAndKobus »

Hier ga ik misschien wel uit komen. Bedankt, ik kom er nog op terug of het is gelukt.
Gebruikersavatar
Arie Kabaalstra
Berichten: 10520
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Tijd en datum toevoegen aan logfile

Bericht door Arie Kabaalstra »

TomAndKobus schreef: 06 mar 2021 19:52 Hier ga ik misschien wel uit komen. Bedankt, ik kom er nog op terug of het is gelukt.

Code: Selecteer alles

 echo %time% >> logfile.txt
zet dat in je batch file.. de vorige code gaf alleen de tijd in minuten.. maar als je minder dan een minuut tussen 2 logberichten hebt zitten.. dan staat er dezelfde tijd bij..

het is ook mogelijk om "elapsed time" te berekenen in Batch, maar dat vraagt wat meer code.. daarmee kun je in je log vastleggen hoe lang een bepaald programma loopt.. wat ik daarvoor moet doen. dat wordt nog een uitzoekerij..
Gebruikersavatar
TomAndKobus
Berichten: 384
Lid geworden op: 12 feb 2020 12:43
Locatie: Gouda

Re: Tijd en datum toevoegen aan logfile

Bericht door TomAndKobus »

Bedankt Arie en Swake. Laat mij dit morgen eerst proberen. Als het mij lukt, dan den ik niet meer nodig te hebben. Jullie horen nog van me :P
Swake
Donateur
Berichten: 1451
Lid geworden op: 23 nov 2009 20:58
Locatie: (B)
Contacteer:

Re: Tijd en datum toevoegen aan logfile

Bericht door Swake »

Goed gezien Arie van die seconden. Het was me niet opgevallen.
Het is dan wellicht ook mogelijk om variabelen/gegevens vanuit de makro mee te geven naar die batch file (uitlezen met %1 %2 %3 en aanverwante).

Krijg je vanuit de opgeroepen batch file ook iets naar Eding in diezelfde sessie terug gestuurd? Rechtstreeks, of via errorcodes of het inlezen van een ander tekstbestand.

Batch files zijn effectief zeer krachtig, het is wel een kunst op zich want een beetje eigenaardig programmeren. De laatste versies van Windows hebben nu ook PowerShell. Ongelooflijk krachtig (maar ik haat het want er is niets meer 'eenvoudig')

Notepad++ is een wereld van verschil met de standaard Notepad. Google het eens als je die nog niet kent.
When it fits stop using the hammer.
Gebruikersavatar
Arie Kabaalstra
Berichten: 10520
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Tijd en datum toevoegen aan logfile

Bericht door Arie Kabaalstra »

hij van hierboven schreef:Batch files zijn effectief zeer krachtig, het is wel een kunst op zich want een beetje eigenaardig programmeren.
ach.. wat heet eigenaardig programmeren.. moet je je eens verdiepen in "esoterische programmeertalen"

Code: Selecteer alles

 ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
Hello World! in "Brainfuck".. nou.. dan valt Batch nog mee.

Goed gezien Arie van die seconden. Het was me niet opgevallen.
Ik wist het ook niet.. maar Google is mijn beste vriend.. 't merendeel van wat ik weet van het programmeren in VB, en Alles wat ik weet van C#, alsmede veel van mijn kennis van VBA, komt rechtstreeks van Google.
Het is dan wellicht ook mogelijk om variabelen/gegevens vanuit de makro mee te geven naar die batch file (uitlezen met %1 %2 %3 en aanverwante).
Hmm.. dat weet ik zo niet... 't is zo dat je, als je gegevens uit EdingCNC in een andere applicatie wilt gebruiken, je moet verbinden met CNCServer.exe

in C# is dat niet moeilijk, maar dan moet je wel het .NET Framework hebben (maar die kun je zo downloaden), Bovenin je cs-files zet je dan "using OosterhofDesign" (het Framework)
en in de uitvoerende code (ik heb er een Forms application van gemaakt, dus staat ie bij mij in Form1_Load, zet je:

Code: Selecteer alles

 private void Form1_Load(object sender, EventArgs e)
        {
            G_GetCncServer.ConnectServer("");
            G_CommandsJobInterpreter.Reset();
            G_CommandsJobInterpreter.RunSingleLine("msg\"sono pazzi questi romani\"");
            timer1.Enabled = true;
        }
de Timer is er om de waarde van een bepaalde parameter in EdingCNC in de gaten te houden.. zodra die >0 is, wordt de applicatie actief.
Notepad++ is een wereld van verschil met de standaard Notepad. Google het eens als je die nog niet kent.
🤣🤣🤣

https://cnczone.nl/viewtopic.php?p=27574#p27574
van 11 jaar geleden!!!... zo lang gebruik ik het al.. minimaal..
Gebruikersavatar
Arie Kabaalstra
Berichten: 10520
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Tijd en datum toevoegen aan logfile

Bericht door Arie Kabaalstra »

Leuk dit...!

Code: Selecteer alles

echo Date: %date% >> test.txt
echo Time: %time% >> test.txt
Gooi bovenstaande in een Batchfile, roep em op vanuit EdingCNC met "exec time.bat" en in je bestandje "test.txt" komt:
Date: zo 07-03-2021
Time: 14:18:40,61
te staan..

nou zit ik te denken.. als je nou een batchfile maakt.. "time.bat, en je zet de aanroep in een subroutines, met een M-code, dan kun je in je postprocessor (als je vanuit Cam werkt) de M-codes in je programma laten invoegen.. de ene aan het begin, en de andere aan het eind..
zet je daar dan ook nog "exec notepad.exe test.txt" in de macro voor de eindtijd.

Code: Selecteer alles

sub m555
logfile test.txt 0
logmsg "Starttime"
exec time.bat
endsub

sub m556
logmsg "Endtime"
exec time.bat
exec notepad.exe test.txt
endsub
Zoiets dus.. ik heb voor m555 gekozen.. omdat 't 555 IC een Timer-IC is.. (Uncle bumblefuck AKA AVE op Youtube noemt ze daarom een "Triple Nickel Timer"), geef't beestje maar een naam..
Plaats reactie