Brother Blum V4B Programming: Process Control & Setup
This article covers the process-control and machine-setup side of the Blum V4B software on Brother controls (Blum manual 260605, V4B): correcting cutting tools from measurement results, in-process tolerance gates, data logging via DPRNT, thermal compensation, tilted-plane measuring, the corner/angle helper programs, and the configuration variables in USER GLOBAL and TC-USER. For the architecture, G65 P8700 parameter reference, protected moves, result variables, and error codes, see Brother Blum-Novotest V4B Probing.
Tool Correction — P8706 SET TOOL
Program 8706 corrects the wear value of a cutting tool using the last measurement result (single point or contour — it cannot be used on corner measurements). Call it exactly once, immediately after the measurement. You can also call it inline by adding E to the P8700 measurement call. The software caps corrections at a maximum of 2 mm and correction factors at ±2.
G65 P8706 E...
| Param | Var | Description |
|---|---|---|
E | #8 | Tool number to correct (required). Geometry vs. wear memory is set in the SET TOOL macro variables |
T | #20 | Upper tolerance for the correction (reference: set value) |
U | #21 | Lower tolerance for the correction (reference: set value) |
I | #4 | Non-intervention limit (absolute). Below this deviation the tool is NOT corrected. E.g. I0.15 with a +0.1 result = no correction |
J | #5 | Fixed offset (empirical value) added only when a correction actually happens |
K | #6 | Correction factor to damp oscillation. K0.7 with a +0.1 result corrects the tool by -0.07 |
R | #18 | Select inner or outer contour |
(MEASURE, THEN CORRECT TOOL 12 WITH DAMPING)
G65 P8700 A1. X0. (MEASURE SINGLE POINT)
G65 P8706 E12. T0.05 U-0.02 I0.005 K0.8 (CORRECT T12, 80 PCT GAIN)
Tolerance Checking
Two ways to gate a measurement: inline with parameter T on the measurement call, or after the fact with program 8707. If the tolerance is exceeded, the program stops with a Tolerance exceeded error.
Inline — parameter T on P8700
The sign of T selects what is checked. The check is absolute, so the set value (S or I/J/K) must sit in the center of the tolerance field.
| Sign of T | Checks | Example |
|---|---|---|
| Positive | Surface, corner, inside/outside width, diameter (the contour size) | G65 P8700 A1. S60. T+0.2 — Ø60 ±0.2 |
| Negative | Position or center point of a contour | G65 P8700 A1. S60. T-0.2 — center within ±0.2 |
| Negative + set position | Position against explicit nominals | G65 P8700 A1. S60. I50.15 J50.15 T-0.15 |
Unilateral tolerances work by shifting the set value: for Ø60 +0.2/-0 call G65 P8700 A1. S60.1 T+0.1.
After the fact — P8707 TOLERANCE
Program 8707 checks the results of the previous measurement and supports asymmetric limits. At least one parameter must be transferred.
| Param | Var | Description |
|---|---|---|
T | #20 | Upper tolerance, contour (size) |
U | #21 | Lower tolerance, contour (size) |
I | #4 | Upper tolerance, position |
J | #5 | Lower tolerance, position |
(BORE DIA 60 +0.2/-0.3, POSITION +/-0.1)
G55
G65 P8700 S60. (MEASURE INSIDE DIAMETER)
G65 P8707 T+0.2 U-0.3 I+0.1 J-0.1
Component Presence Check — P8703 + T
A protected move with parameter T becomes a part-present check: if the stylus deflects on the way to the target, the part is there; if it reaches the target, it is not. Give the move enough travel distance to detect reliably.
| Call | Behavior |
|---|---|
G65 P8703 Z... T1. | Check presence, return to start position (error message if absent) |
G65 P8703 Z... T-1. | Check presence, remain at target position (if the part IS present, it always returns to start) |
Result in #[#111+8]: 1 = component present, -1 = not present. Optional A selects absolute (A1., default) or relative (A0.) dimensioning: G65 P8703 A0. Z-10. T1.
Zero Point Correction in a Rotary Axis — P8705
The extended function of program 8705 (SET WCS) writes the angle stored in #[#111+9] into a rotary axis of the WCS. Determine the angle first with any angle measurement (e.g. two single points, or P8715). Only one axis per call; call the program once only, or the corrections sum; never during active rotation.
G65 P8715 X20. (MEASURE EDGE ANGLE - RESULT IN #[#111+9])
G65 P8705 W54. C1. (CORRECT C AXIS OF G54)
Parameters A/B/C select the axis; 1. applies the result in the defined direction of rotation, -1. opposite. Clear #[#111+9] afterward.
Temperature Compensation — W53.
Thermal drift is compensated by probing a fixed reference (a block or calibration master in the machining area) in 3 axes cold, then re-probing after warm-up with W53. — the deviation is written into the machine's external zero point offset, shifting every WCS. Use identical protected-move approach conditions for both measurements; any number of comparative measurements may follow one reference measurement.
(REFERENCE MEASUREMENT - MACHINE COLD)
G54
G65 P8700 A1. X10. Y10. Z-10. W54.
(COMPARATIVE MEASUREMENT - AFTER WARM-UP, SAME PARAMS + W53.)
G54
G65 P8700 A1. X10. Y10. Z-10. W53. (DEVIATION -> EXTERNAL OFFSET)
Measuring in a Tilted Plane — G68.2
With G68.2 active (machine-builder option), approach moves, skip data, and results are all converted to the tilted coordinate system — the measurement calls themselves need no extra parameters. Set probe concentricity precisely and probe orthogonal to the contour, or the probe center offset produces measuring error.
G54
G68.2 X0. Y0. Z0. I0. J30. K0. (TILT WORKING PLANE 30 DEG)
G53.1 (ALIGN TOOL AXIS)
G65 P8703 X50. Y20. Z10. M1.
G65 P8703 X50. Y20. Z-5. M3.
G65 P8700 S20. M3. (MEASURE BORE IN TILTED PLANE)
G65 P8703 Z10. M3.
G65 P8700 S20. X1. M2. (MEASURE INSIDE WIDTH IN X)
G69 (CANCEL)
Angle & Distance Between Two Measurements
Parameter D on P8700
Measure a first point, reposition, then measure a second point with D added — the software computes the distance or angle between the two. Compare like with like (point to point, diameter to diameter), keep the same WCS between the two measurements, and don't disturb the global parameters in between.
| D value | Function | Results |
|---|---|---|
D >= 0 | Distance measurement; D is the set distance (single-point measurements in one axis only for set-value comparison) | #144/#145/#146 = distance in X/Y/Z |
D < 0 | Angle measurement; D-360. means a set angle of 0° | #142 = angle, #143 = deviation from set value, #[#111+9] = angle for rotary-axis correction |
G65 P8700 A1. Y0. (1ST POINT)
G65 P8703 X50. (REPOSITION)
G65 P8700 A1. Y50. D50. (2ND POINT, SET DISTANCE 50 -> #145)
P8715 ANGLE-DISTANCE
One-call edge-angle measurement: the probe takes two measuring blocks orthogonal to the transferred traverse axis (X or Y only), spaced by the transferred travel. The measuring path is fixed at 10 mm from pre-position to edge.
| Param | Var | Description |
|---|---|---|
X / Y | #24 / #25 | Traverse path between the two measuring positions (always relative) |
U | #21 | Measuring direction: 1./undefined = positive axis direction, -1. = negative |
D | #7 | Set angle (position of the edge / component torsion) |
Z | #26 | Probing position in Z — for measurement past an obstacle |
A | #1 | Z travel dimensioning: 0./undefined = absolute, 1. = relative |
W | #23 | WCS selection |
G65 P8715 X20. (ANGLE ALONG X, POSITIVE DIRECTION)
G65 P8715 Y20. U-1. (ANGLE ALONG Y, NEGATIVE DIRECTION)
Corner Point From 3 or 4 Points — P8712 CORNER MAIN
Program 8712 locates a corner by probing 2 points per side (or 3 points total, in which case the lines are taken perpendicular and no component/position angles are determined). R selects the corner quadrant/type: negative = inside corner, positive = outside corner (values 1.–4. / -1.–-4. select the corner position).
| Param | Var | Description |
|---|---|---|
R | #18 | Corner position/type and initial position for the traverse paths (negative = internal angle, positive = external) |
X | #24 | Relative path from initial position to 1st measuring position, side 1 (counterclockwise order) |
U | #21 | Relative path to 2nd measuring position, side 1 (optional with 3-point measurement) |
Y | #25 | Relative path to 1st measuring position, side 2 (clockwise order) |
V | #22 | Relative path to 2nd measuring position, side 2 (negative sign also outputs a log file) |
D | #7 | Angular position of the corner; side 1 (X/U) is the reference; default 0°, range ±45° |
K | #6 | Set angle of the corner (default 90°; always 90° with 3 points). Order in call: I... J... K... |
I / J | #4/#5 | Set position in X / Y |
Z | #26 | Probing position in Z for measurement from the safety plane |
A | #1 | Z travel dimensioning: 0./undefined = relative, 1. = absolute |
T | #20 | Tolerance check (sign convention as above) |
W | #23 | WCS selection |
Results: #[#111+0]/#[#111+1] = corner edge X/Y in the active WCS, #[#111+3]/#[#111+4] = deviations from I/J, #[#111+7] = corner length result, #[#111+8] = corner angle result.
G65 P8712 R-2. X20. U50. Y10. V60. (INSIDE CORNER)
G65 P8712 R1. X20. U50. Y20. V60. K100. (OUTSIDE CORNER, 100 DEG SET ANGLE)
G65 P8712 R4. X20. U60. Y30. V50. D5. Z-15. (5 DEG TWIST, PROBE AT Z-15)
Data Output via DPRNT
Passing parameter V with a negative sign logs results via DPRNT. For 3-point contour measurements, make the 3rd probing angle negative to trigger the log. Formatting is controlled by option bits in #128 (USER GLOBAL): BIT3 = output with/without comments, BIT4 = PCLOS after each write vs. closed manually by your main program.
G65 P8700 A1. X0. V-1. (LOG SINGLE POINT)
G65 P8700 A1. S50. H0. U120. V-240. (LOG 3-POINT BORE, 3RD ANGLE 240)
System of Units
The active unit system is read at the start of each cycle and the internal settings in 8710/8717 rescale automatically — but calibration must be performed in the units you intend to run. Inch example: G65 P8700 Z-0.394 C1. then G65 P8700 S1.9685 C1. (1.9685 in ring); metric: G65 P8700 Z-10. C1. then G65 P8700 S50.002 C1.
Setup Variables — 8710 USER GLOBAL
Program 8710 holds the installation-level settings. Edit with care — several bits carry collision warnings.
| Variable | Purpose | Default |
|---|---|---|
#2 | Error-text language: 0 = English, 1 = German, 2 = French, 99 = user-defined | 1 |
#3 | Axis configuration XYZ as 3 digits (hundreds = X, tens = Y, units = Z) | 123 |
#4/#5/#6 | Axis number of A / B / C rotary axis (negative = counterclockwise rotation) | 0 |
#7 | Main rotary axis for the angle-correction function: 1 = A, 2 = B, 3 = C | 0 |
#111 | Base address of the 10 result parameters (#110–#149 not allowed) | 100 |
#117/#118/#119 | Input addresses for ERROR / STATUS / BATTERY probe signals (sign = signal flank; 0 = not connected) | 0 |
#128 | Option bit field 1 — see below | — |
Option bits in #128 (add the values you want)
| Bit | Value | When set |
|---|---|---|
| BIT0 | 1 | Feed override disabled during measurement |
| BIT1 | 2 | P8703 moves run as plain G0 (NOT protected) — collision risk, ensure clear path |
| BIT2 | 4 | Machine has no spindle orientation |
| BIT3 | 8 | DPRNT output with comments (results labeled) |
| BIT4 | 16 | No PCLOS after DPRNT writes (you close the log yourself) |
| BIT5 | 32 | ATAN format ATAN[#i]/[#j] instead of ATAN[#i/#j] |
| BIT6 | 64 | Distance/angle background data not written (time savings) |
| BIT7 | 128 | 8710 runs only on M1. calls (quickstart chains only; no G-code between calls) |
| BIT8 | 256 | On measurement error, retract to block position instead of start position |
| BIT9 | 512 | Angle results shown 0°–359° instead of -180°–180° |
| BIT10 | 1024 | Probe oriented into measuring direction (mono-directional; requires spindle orientation) |
| BIT11 | 2048 | Probe orientation counterclockwise (requires BIT10) |
Setup Variables — 8717 TC-USER 1
Per-probe settings (8718/8719 are the same for optional probes 2 and 3).
| Variable | Purpose | Default |
|---|---|---|
#1 | Tool correction number of the probe (H number = magazine slot; or #4111 = active H, #4120 = active T) | — |
#2 | Base address of the 6 calibration parameters (copied to #110; must survive power-off; #100–#199 not allowed) | 500 |
#3 / #4 | Probe ball radius XY / Z (#3 = 0 reads the radius from the tool table — ball styli only) | — |
#5 / #6 | Overtravel / measuring distance XY / Z (XY value also used as overtravel when Q is not transferred) | 5 / 3 |
#7 | Feed of the 1st measuring block (1000–5000 mm/min) | 2000 |
#8 | Feed of the 2nd measuring block (100–1000 mm/min; 0 = no 2nd block) | 500 |
#9 | Protected travel block feed | 5000 |
#10 | Retraction speed: 0 = G00, else G01 at that feed | 0 |
#16 / #17 | Base address of tool length / tool radius memory | 11000 / 13000 |
#20 / #21 | NC output addresses MODE TC / START TC for pulse-controlled probe switch-on | 0 |
Note: an M0 during a measurement deletes parameters #110–#149 (error 116) — never stop the machine with M0 mid-cycle.
Worked Example — Full Part Check
From the manual: set the zero point, measure the part length and width, gauge a toleranced bore, and measure an inside width — saving each result.
O1(EXAMPLE 1)
G54 (ACTIVATE ZERO POINT)
G65 P8703 X-5. Y-5. M1. (POSITION PROBE, SWITCH ON)
G65 P8703 Z5. M3.
G65 P8700 X10. Y10. Z-10. W54. M3. (CORRECT ZERO POINT IN XYZ)
G65 P8703 X75. Y50. M3.
G65 P8700 A1. S100. Y1. Z-5. M3. (MEASURE WORKPIECE IN Y)
#151=#[#111+6] (SAVE RESULT)
G65 P8700 A1. S150. X1. Z-5. M3. (MEASURE WORKPIECE IN X)
#150=#[#111+6]
G65 P8703 X30. Y30. M3.
G65 P8703 Z-5. M3.
G65 P8700 A1. S30. T0.02 M3. (MEASURE BORE, TOLERANCE +/-0.02)
#152=#[#111+6]
G65 P8703 Z5. M3.
G65 P8703 X110. Y50. M3.
G65 P8703 Z-5. M3.
G65 P8700 A1. S20. X1. M3. (MEASURE INSIDE WIDTH IN X)
#153=#[#111+6]
G65 P8703 Z5. M2. (RETRACT, SWITCH PROBE OFF)
M30
References
- Blum-Novotest, Quickstart BLUM Software Programming Instructions, Article 260605, Version V4B, Machine Control Brother (04-2024), Blum-Novotest GmbH.
- Brother, Operator’s Manual, Brother Industries, Ltd.
Have a question or want to contribute?
Contact us with corrections, additions, or topics you'd like covered.
Get in Touch