Measure two separated points on the casting face, calculate the face angle, and apply that result through a controlled work-offset update before indexing the rotary axis. On this Siemens 840D installation, the measured angle is available as BL_R[08] when the Blum Quickstart two-point method is used. Keep angle acquisition, coordinate transformation, and physical axis motion as separate operations; writing a value into a frame does not by itself command the machine to swivel.
Symptom Interpretation
The Hermle C600 U application involves cast surfaces with angular error from 0 to 5 degrees, usually in one direction. The engineering objective is to probe two or more points on a nominally planar face, determine its slope, store the required correction in the selected work offset such as G54, and then orient the axes so the face is aligned before machining.
| Observed condition | Likely control-level cause | Diagnostic action |
|---|---|---|
A valid angle appears in BL_R[08], but the work coordinate system does not change |
The measurement cycle calculated a result without writing it to a user frame | Read the target $P_UIFR entry before and after the write operation |
| The work offset changes, but the rotary axis does not move | A frame transformation was activated, but no physical positioning command was executed | Compare the active frame display with the actual B-axis position |
| The probe moves diagonally between the first and second points | The cycle is interpolating toward the next measurement position rather than making the expected clearance and prepositioning moves | Run in single block above the part and inspect every intermediate target |
| The origin shifts after applying an angle | The translation was not transformed about the intended pivot, or a rotated and unrotated origin were mixed | Calculate the expected transformed X and Z values independently |
| The correction has the right magnitude but the wrong direction | The measured-angle sign, machining-angle sign, or rotary-axis convention is reversed | Test a small known tilt and compare the commanded correction with the displayed frame |
Measurement and Frame Mechanism
A two-point angular measurement uses the difference between two measured surface coordinates and their known spacing. Increasing the separation reduces the angular effect of repeatability error, provided both points remain on the same representative plane. Additional points can reveal local casting irregularity, but the cited Blum method returns its working angle from a two-point sequence.
The term work offset here means a user frame stored in $P_UIFR. A translational work offset relocates the program origin. A rotational frame changes the orientation of programmed coordinates. A rotary-axis coordinate, such as B in a transformation call, is not automatically equivalent to rotating a frame about a Cartesian axis. The machine kinematics, pivot location, active transformations, and sign convention decide whether the desired result requires a frame rotation, physical B-axis positioning, recalculated translation, or a combination.
The supplied calculation rotates an X-Z coordinate pair:
R3=SIN(DREHWINKEL)
R4=COS(DREHWINKEL)
R5=NULLPUNKT_X*R4
R6=NULLPUNKT_Z*R3
R7=NULLPUNKT_X*R3
R8=NULLPUNKT_Z*R4
R9=R5-R6
R10=R7+R8
This implements X' = X cos(a) - Z sin(a) and Z' = X sin(a) + Z cos(a). It rotates the stored origin in the X-Z plane before writing a translation and B value. That is different from merely copying the measured surface angle into an offset field.
Cycle Route Selection
Select the route from the measurement package installed on the control:
| Route | Available evidence | Implementation decision |
|---|---|---|
| Blum Quickstart | Measure one point, preposition at a second location, then call the second measurement with a nominal angle in the 12th call position. Read the result from BL_R[08]. |
Use this route when its cycle syntax and result variables are installed and documented on the machine. |
| Siemens measuring cycles | The installation produced a usable angle, but the probe traveled diagonally between the two probing points. | Validate the generated path at reduced feed and safe clearance before using the result in production. |
MEAFRAME |
Identified as a frame-measurement approach in the Siemens preparation documentation. | Check the installed control documentation for inputs, outputs, and frame behavior; the cited route is DIN/ISO rather than the ShopMill conversational surface. |
Cycle998 |
Suggested when a sufficiently large planar face is available. | Check the installed cycle documentation and required probing area; the cited route is also DIN/ISO. |
Do not mix Blum and Siemens result-variable conventions. First identify which cycle package executed, then use that package's documented output and alarm behavior.
Two-Point Angle Acquisition
- Calibrate the probe and confirm that the stylus can reach both locations without contacting clamps, raw casting projections, or rotary-axis hardware.
- Select two points on the same nominal plane. Use the greatest practical separation that stays within the usable flat region.
- Probe the first point in the desired measurement direction.
- Retract to a verified clearance position, then preposition for the second point. Do not rely on an untested automatic diagonal transition over a casting.
- For Blum Quickstart, supply the nominal angle in the 12th position of the second measurement call.
- Read the calculated angle from
BL_R[08]. Preserve the raw result separately if later logic will change its sign or add a nominal machining angle. - Compare the result with the expected casting range of 0 to 5 degrees. Treat a result outside the process range as a failed setup or a nonrepresentative surface until an independent measurement resolves it.
If the surface can tilt about more than one direction, two points are insufficient to define its full three-dimensional orientation. Use a multi-point plane measurement supported by the installed cycle package and apply the resulting frame through the documented kinematic workflow.
Offset Calculation and Writing Procedure
The example subprogram accepts a work-offset number, machining angle, unrotated X/Y/Z origin, and B value. Its stated mapping is 1=G54 through 40=G540:
%_N_WINKELRECHNUNG_SPF
;$PATH=/_N_CUS_DIR
PROC WINKELRECHNUNG(INT NP_NUMMER,REAL DREHWINKEL,
REAL NULLPUNKT_X,REAL NULLPUNKT_Y,
REAL NULLPUNKT_Z,REAL NULLPUNKT_B)
R3=SIN(DREHWINKEL)
R4=COS(DREHWINKEL)
STOPRE
R5=NULLPUNKT_X*R4
R6=NULLPUNKT_Z*R3
R7=NULLPUNKT_X*R3
R8=NULLPUNKT_Z*R4
R9=R5-R6
R10=R7+R8
STOPRE
$P_UIFR[NP_NUMMER]=CTRANS(XX,R9,YY,NULLPUNKT_Y,
ZZ,R10,B,NULLPUNKT_B)
RET
- Record the unrotated origin rather than coordinates already corrected by an active angular frame. The example declares
NULLPUNKT_X=-152.88,NULLPUNKT_Y=399.86,NULLPUNKT_Z=154.92, andNULLPUNKT_B=359.95. - Confirm which user frame
NP_NUMMERselects on the installed control before permitting a write. - Pass the required machining angle as
DREHWINKEL. The documented example call isWINKELRECHNUNG(1,254,NULLPUNKT_X,NULLPUNKT_Y,NULLPUNKT_Z,NULLPUNKT_B). A measured value such asBL_R[08]can replace the literal second argument after its sign and reference direction are verified. - Execute the subprogram with axes clear of the work. The
STOPREstatements create calculation boundaries before dependent values are consumed. - Activate the intended work offset and inspect all stored components before commanding an approach or rotary move.
A proposed alternative is $P_UIFR[1,Y,RT]=BL_R[08], which targets a rotational component of G54. That assignment was not proven on the cited installation. Verify its axis meaning and index syntax against the control documentation before testing it, because an incorrect rotational component can reorient every subsequent programmed coordinate.
Verification Checks
-
Check 1: measurement repeatability. Expect repeated probing of the same two points to return stable values in
BL_R[08]within the machine's accepted probing tolerance. -
Check 2: independent mathematics. Expect the displayed X and Z translations to match
X cos(a) - Z sin(a)andX sin(a) + Z cos(a)for the stored unrotated coordinates and applied angle. -
Check 3: target frame. Expect only the selected
$P_UIFR[NP_NUMMER]entry to change. Read a nonselected offset as a control sample. - Check 4: angle direction. Expect a known positive test tilt to produce the correction direction required by the machine's B-axis and frame conventions.
- Check 5: transformed reference point. Expect the probe or a trusted reference tool to reach the programmed datum after the target work offset is activated.
- Check 6: aligned face. Expect probing at two separated positions after correction to show no process-significant height change along the corrected direction.
Recurring Implementation Pitfalls
Writing the measured angle directly into a work offset without accounting for the pivot is wrong when the origin lies away from the rotation center. The angle may be correct while the translated datum moves. Transform the origin about the intended pivot or use the control's documented kinematic frame function.
Do not let a measurement cycle make an unverified diagonal move from the first contact region to the second. A valid cycle result does not prove that its intermediate path clears an irregular casting. Separate measurement, retract, prepositioning, and contact moves during commissioning.
Do not overwrite production offsets before validating the frame number and transformation sign. Save the original X, Y, Z, rotary, and rotational components so the setup can be restored. Also distinguish the casting's measured error from the machining angle: the correction may require the measured value, its negative, or a combination with the nominal orientation.
The example updates the complete selected frame with CTRANS. A complete assignment can replace components that were previously stored in that frame. Read the frame before the write and decide deliberately which values must be retained.
Frequently Asked Questions
Why does the Siemens 840D calculate an angle but leave G54 unchanged?
The measurement result and the user-frame write are separate operations. Read the angle from BL_R[08], apply the verified transformation, and then confirm that $P_UIFR[1] changed when G54 is the intended target.
Why does the probe move diagonally to the second measurement point?
The active measuring cycle is generating an interpolated transition to its next target. Test it in single block above the casting and insert a retract plus explicit prepositioning move when the installed cycle permits that sequence.
Why does the datum shift after applying the measured angle?
The origin has been rotated about a pivot, so its X and Z translations must change with the angle. Check them against X' = X cos(a) - Z sin(a) and Z' = X sin(a) + Z cos(a).
Why does writing a B value into the offset not swivel the machine?
A stored frame or rotary coordinate defines a coordinate relationship; it is not necessarily a motion command. Issue the machine's validated positioning sequence only after checking the active transformation, clearance, and target B position.
How do I verify the Siemens 840D angle correction before machining?
Activate the corrected offset, re-probe the same two separated surface locations, and expect no process-significant height difference along the corrected direction. Keep the tool clear until that final reading passes the setup tolerance.