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...
ParamVarDescription
E#8Tool number to correct (required). Geometry vs. wear memory is set in the SET TOOL macro variables
T#20Upper tolerance for the correction (reference: set value)
U#21Lower tolerance for the correction (reference: set value)
I#4Non-intervention limit (absolute). Below this deviation the tool is NOT corrected. E.g. I0.15 with a +0.1 result = no correction
J#5Fixed offset (empirical value) added only when a correction actually happens
K#6Correction factor to damp oscillation. K0.7 with a +0.1 result corrects the tool by -0.07
R#18Select 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 TChecksExample
PositiveSurface, corner, inside/outside width, diameter (the contour size)G65 P8700 A1. S60. T+0.2 — Ø60 ±0.2
NegativePosition or center point of a contourG65 P8700 A1. S60. T-0.2 — center within ±0.2
Negative + set positionPosition against explicit nominalsG65 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.

ParamVarDescription
T#20Upper tolerance, contour (size)
U#21Lower tolerance, contour (size)
I#4Upper tolerance, position
J#5Lower 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.

CallBehavior
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 valueFunctionResults
D >= 0Distance 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 < 0Angle 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.

ParamVarDescription
X / Y#24 / #25Traverse path between the two measuring positions (always relative)
U#21Measuring direction: 1./undefined = positive axis direction, -1. = negative
D#7Set angle (position of the edge / component torsion)
Z#26Probing position in Z — for measurement past an obstacle
A#1Z travel dimensioning: 0./undefined = absolute, 1. = relative
W#23WCS 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).

ParamVarDescription
R#18Corner position/type and initial position for the traverse paths (negative = internal angle, positive = external)
X#24Relative path from initial position to 1st measuring position, side 1 (counterclockwise order)
U#21Relative path to 2nd measuring position, side 1 (optional with 3-point measurement)
Y#25Relative path to 1st measuring position, side 2 (clockwise order)
V#22Relative path to 2nd measuring position, side 2 (negative sign also outputs a log file)
D#7Angular position of the corner; side 1 (X/U) is the reference; default 0°, range ±45°
K#6Set angle of the corner (default 90°; always 90° with 3 points). Order in call: I... J... K...
I / J#4/#5Set position in X / Y
Z#26Probing position in Z for measurement from the safety plane
A#1Z travel dimensioning: 0./undefined = relative, 1. = absolute
T#20Tolerance check (sign convention as above)
W#23WCS 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.

VariablePurposeDefault
#2Error-text language: 0 = English, 1 = German, 2 = French, 99 = user-defined1
#3Axis configuration XYZ as 3 digits (hundreds = X, tens = Y, units = Z)123
#4/#5/#6Axis number of A / B / C rotary axis (negative = counterclockwise rotation)0
#7Main rotary axis for the angle-correction function: 1 = A, 2 = B, 3 = C0
#111Base address of the 10 result parameters (#110–#149 not allowed)100
#117/#118/#119Input addresses for ERROR / STATUS / BATTERY probe signals (sign = signal flank; 0 = not connected)0
#128Option bit field 1 — see below

Option bits in #128 (add the values you want)

BitValueWhen set
BIT01Feed override disabled during measurement
BIT12P8703 moves run as plain G0 (NOT protected) — collision risk, ensure clear path
BIT24Machine has no spindle orientation
BIT38DPRNT output with comments (results labeled)
BIT416No PCLOS after DPRNT writes (you close the log yourself)
BIT532ATAN format ATAN[#i]/[#j] instead of ATAN[#i/#j]
BIT664Distance/angle background data not written (time savings)
BIT71288710 runs only on M1. calls (quickstart chains only; no G-code between calls)
BIT8256On measurement error, retract to block position instead of start position
BIT9512Angle results shown 0°–359° instead of -180°–180°
BIT101024Probe oriented into measuring direction (mono-directional; requires spindle orientation)
BIT112048Probe orientation counterclockwise (requires BIT10)

Setup Variables — 8717 TC-USER 1

Per-probe settings (8718/8719 are the same for optional probes 2 and 3).

VariablePurposeDefault
#1Tool correction number of the probe (H number = magazine slot; or #4111 = active H, #4120 = active T)
#2Base address of the 6 calibration parameters (copied to #110; must survive power-off; #100–#199 not allowed)500
#3 / #4Probe ball radius XY / Z (#3 = 0 reads the radius from the tool table — ball styli only)
#5 / #6Overtravel / measuring distance XY / Z (XY value also used as overtravel when Q is not transferred)5 / 3
#7Feed of the 1st measuring block (1000–5000 mm/min)2000
#8Feed of the 2nd measuring block (100–1000 mm/min; 0 = no 2nd block)500
#9Protected travel block feed5000
#10Retraction speed: 0 = G00, else G01 at that feed0
#16 / #17Base address of tool length / tool radius memory11000 / 13000
#20 / #21NC output addresses MODE TC / START TC for pulse-controlled probe switch-on0

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