Jump to content

Save probe calibration report in CNC


---
 Share

Recommended Posts

Is it possible to save a report of the last calibration results of ALL EXISTING probes in a CNC run? I mean something like the built-in probe data report ("calibData......txt"), but this one only contains the probes used in the current program. I need the data of all probes in a text file, PDF or something.
Link to comment
Share on other sites

We use a 'Probing System Qualification' from the resources-> utilities menu to calibrate and then report using a result element.

So for each probe that needs to be qualified we have a 'Probing System Qualification' followed by a result element which uses a formula to pull the probe information.

In the result element we use a formula like the following to report standard deviation.

getProbe("1","002").stdProbeDev


Eric Moberg posted all these other getProbe() parameters a few days ago in another thread, so I would assume you would be able to use the same method to get any of this data as well and report it using a result element.

.anglePosA1 Angle
.anglePosA2 Angle
.calibMode Mode of the calibration
.calibration Calibrated yes / no
.confName Name of the configuration
.diameter Diameter
.radius Radius
.probeDate Date of the last calibration
.probe Force Force of the calibration
.probeTemp Temperature
.shaftDirection Shaftdirection
.shaftLen Shaftlength
.shaftRadius Shaftradius
.stdProbeDev Deviation of the calibration
.probeVector.x Probe coordinate in X
.probeVector.y Probe coordinate in Y
.probeVector.z Probe coordinate in Z


For your purposes maybe you could do the same but simply leave out the probe qualification part and only report the results.
Link to comment
Share on other sites

Yes, I also thought of something like that (btw. thanks for reposting the parameter list!)

BUT I don't like the thought that I would have to maintain such a program myself and keep everything up-to-date.
If I'd do it this way, the program would have to be capable of finding all probes and styli automatically, so I wouldn't have to change it all the time. But I have no idea how to write something like that, let alone the motivation.
Link to comment
Share on other sites

Amazing, but what I need is a list of ALL probes, independently from any measurement plan.
Is there a way how I can find and read all of them with PCM?

Maybe I should explain my problem:
In serial production we calibrate our probes based on the current part to be measured in Autorun. That means when a part uses probes 1, 2 and 3, there's a calibration program which only calibrates probes 1, 2 and 3.
Currently we investigate a discrepancy between the CMM measurements and other checks done during production. Part of that investigation is to keep track of the last calibration state of all probes we have. The people running the measurements are untrained in Calypso, so they need a quick way to see the last calibration result of any probe.

Now I could just let them recall the last protocol of the calibration programs, but I can't be sure that the state shown there is really from the LAST calibration, simply because the same probe may also be used in other calibration programs and nobody knows which one was run last.

That's why I need to have a global list of all probes, so anybody can quickly look up a certain probe at any time. And no, I don't want them to mess around in the stylus management...
Link to comment
Share on other sites

Oh, I misunderstood you. Thought that

Please sign in to view this quote.

was referring to that specific run.

Get all probes is even more straight forward. I'll post an example and leave you to be creative on your own.
for i = 1 to baseSystem().machine.machineAllProbeObjects.size
	display("Stylus system: "+getParameterNamed(baseSystem().machine.machineAllProbeObjects.asArray,i).confName)
	for j = 1 to getParameterNamed(baseSystem().machine.machineAllProbeObjects.asArray,i).allProbes.size
		display("Nr: "+getParameterNamed(getParameterNamed(baseSystem().machine.machineAllProbeObjects.asArray,i).allProbes.asArray,j).identifier+" - Dev "+getParameterNamed(getParameterNamed(baseSystem().machine.machineAllProbeObjects.asArray,i).allProbes.asArray,j).stdProbeDev)
	next j
next i
Link to comment
Share on other sites

Ok, thanks. I think I can make something out of this. But at the moment PCM is acting up a bit:
I was trying to replace the display commands with a string variable assignment and added some quotes characters (+chr(34)) and commas (+","). The goal was to write each probe's data to a CSV compatible file with addToFile so I can read it with Excel.
But as soon as I'm adding the chr(34) and commas, PCM goes wild. It throws a million of error messages at me, saying things like "parameter Dev is not defined" etc.
I suppose what's happening here is some kind of mix-up between what is handled as a string and what as an internal variable or parameter name, which I currently blame on an unexpected behavior of the involved PCM commands - or maybe today is just not my day. Anyway at the moment I don't quite grasp where my code is taking the wrong turn:
for i = 1 to baseSystem().machine.machineAllProbeObjects.size
	pst = chr(34)+"Stylus system: "+getParameterNamed(baseSystem().machine.machineAllProbeObjects.asArray,i).confName+chr(34)
	for j = 1 to getParameterNamed(baseSystem().machine.machineAllProbeObjects.asArray,i).allProbes.size
		pst=pst+","+chr(34)+"Nr: "+getParameterNamed(getParameterNamed(baseSystem().machine.machineAllProbeObjects.asArray,i).allProbes.asArray,j).identifier+" - Dev "+getParameterNamed(getParameterNamed(baseSystem().machine.machineAllProbeObjects.asArray,i).allProbes.asArray,j).stdProbeDev+chr(34)
	next j
	addToFile("probes.txt",pst)
next i
Link to comment
Share on other sites

I tried qm() but the result is still the same. I don't get why it's working without the additional characters, but errors when I add them. The output without the additional chars should be a string, right? PCM shouldn't interpret what's inside, so it shouldn't matter if I add quotes or whatever. But obviously it does.
Link to comment
Share on other sites

 Share

×
×
  • Create New...