Antrieb
A cam transforms rotary motion into precisely profiled linear or oscillating motion. From the simplest eccentric disc to a multi-lobe conjugate cam driving a 1200-part-per-minute packaging machine, the same mathematics, material science, and control engineering principles apply. This guide takes you from the absolute fundamentals of what a cam is, through every motion law and profile type, to advanced electronic cam (e-cam) implementation in modern PLCs — from beginner to expert level.
A cam is a mechanical element that converts continuous rotary input into a prescribed output motion of a follower. The shape of the cam profile is the "program" — it encodes exactly how the follower moves for every degree of cam rotation. Cams are found in internal combustion engines (valve cams), textile looms, packaging machines, printing presses, and electronic form (e-cams) in every modern servo drive.
Every cam system has four elements: the cam (rotating body whose profile drives the follower), the follower (translating or oscillating body that contacts the cam), the frame (constrains follower motion), and the force-closure element (spring, conjugate cam, or gravity — keeps follower in contact). Key terms: base circle (smallest circle centred on cam axis, defines minimum follower position), pitch curve (path traced by follower centre — offset from cam surface by roller radius), lift (total follower displacement from lowest to highest position), dwell (region where follower does not move despite cam rotation).
// Cam system fundamental relationships
//
// Base circle radius: r_b (smallest radius of cam)
// Roller radius: r_r (follower roller radius)
// Pitch curve radius: r_p = r_b + r_r (at base circle)
// Lift / stroke: h (total follower travel, mm)
// Total radius at max: r_max = r_b + h (at full lift)
//
// Cam rotation angle: θ (0–360°, degrees or radians)
// Follower displacement: s(θ) — the cam profile function
// Follower velocity: v(θ) = ds/dθ × ω [mm/s]
// Follower accel.: a(θ) = d²s/dθ² × ω² [mm/s²]
// Follower jerk: j(θ) = d³s/dθ³ × ω³ [mm/s³]
//
// where ω = cam angular velocity (rad/s) = 2π × RPM / 60
//
// Example: cam at 300 RPM, h = 25 mm, rise over 120°
// ω = 2π × 300/60 = 31.4 rad/s
// β = 120° = 2.094 rad
// For cycloidal: peak accel = 6.28 × h × ω² / β²
// = 6.28 × 25 × 31.4² / 2.094² = 35,400 mm/s² = 36.1 g
The follower type fundamentally affects cam profile geometry, pressure angle limits, and contact stress. Knife-edge followers have a sharp point contact — highest pressure angle sensitivity, used only for low-speed light-duty or teaching demonstrations. Roller followers use a rolling contact bearing — most common, suitable for all speeds, lower friction, but cam profile must avoid undercutting. Flat-face (mushroom) followers have a flat contact face — zero pressure angle force component, no undercutting possible, but cam must always be convex at contact (cannot have concave sections), and lubrication is harder. Spherical-face followers are a compromise — tolerant of minor misalignment.
// Follower force analysis — roller follower
//
// Forces on follower during motion:
//
// F_spring = spring preload + k × s(θ) [N]
// (must exceed inertia force at all times)
//
// F_inertia = m_follower × a(θ) [N]
// (opposes spring during deceleration)
//
// Condition for no follower jump:
// F_spring > F_inertia at all positions
// k × s_preload > m × |a_max| (during decel)
//
// Contact force:
// F_contact = F_spring - F_inertia (must be > 0 always)
//
// Side force on follower stem:
// F_side = F_contact × tan(α) [N]
// α = pressure angle (degrees)
//
// Friction force:
// F_friction = μ × F_side (μ ≈ 0.05 for lubricated steel)
//
// Hertz contact stress (roller on cam):
// σ_H = 0.418 × √(F_contact × E* / (r_roller × L_contact))
// where E* = reduced modulus (steel: ~115 GPa)
// L_contact = effective contact length (cam width)
// Limit: σ_H < 1500 MPa for hardened steel (55–60 HRC)
The motion law defines how the follower displacement s varies with cam angle θ during a rise or fall segment. Choosing the right motion law is the most critical design decision — it determines peak velocity, peak acceleration, jerk, vibration, noise, and wear. Each motion law is characterised by three dimensionless coefficients: Cv (velocity), Ca (acceleration), Cj (jerk).
Uniform (constant velocity) motion is the simplest profile: s = h × θ/β. But at the start and end, velocity jumps instantaneously — infinite acceleration. Never use for dynamic cams. Simple Harmonic Motion (SHM) uses a cosine curve: s = h/2 × (1 - cos(πθ/β)). Velocity is continuous (sinusoidal). Acceleration is also sinusoidal, but has step discontinuities at the dwell transitions — producing finite but sharp jerk spikes. Acceptable for low-to-medium speed. Cv = 1.571, Ca = 4.935.
// Motion law displacement functions
// θ = current angle in rise (0 to β)
// h = total lift (mm), β = rise angle (rad)
// ── UNIFORM MOTION (never use for dynamic cams) ──────────
// s = h × (θ/β)
// v = h × ω / β (constant — step at ends!)
// a = 0 within rise, INFINITE at boundaries
// Cv = 1.00, Ca = ∞ — AVOID
// ── SIMPLE HARMONIC MOTION (SHM) ────────────────────────
// s = (h/2) × (1 - cos(π × θ/β))
// v = (π×h / 2β) × ω × sin(π×θ/β)
// a = (π²×h / 2β²) × ω² × cos(π×θ/β)
// Cv = 1.5708 (π/2)
// Ca = 4.9348 (π²/2)
// Cj = ∞ at boundaries (step change in acceleration)
//
// Suitable for: < 100 RPM, light loads
// NOT suitable for: high-speed packaging, textile machinery
// ── CYCLOIDAL ────────────────────────────────────────────
// s = h × (θ/β - (1/2π) × sin(2π×θ/β))
// v = (h/β) × ω × (1 - cos(2π×θ/β))
// a = (2π×h/β²) × ω² × sin(2π×θ/β)
// Cv = 2.000
// Ca = 6.2832 (2π)
// Cj = FINITE everywhere — best for high speed
//
// Zero velocity AND zero acceleration at start AND end
// Suitable for: high-speed machinery, 100–1200 RPM
// Trade-off: highest Ca of all basic motion laws
Modified trapezoidal (MT) blends cycloidal segments at transitions with constant-acceleration middle sections. It achieves Ca = 4.888 (lower than cycloidal) with finite jerk everywhere — the most common choice for packaging and textile machinery. Modified sine (MS) blends two sine waves of different periods. Ca = 5.528, Cv = 1.760 — moderate peak acceleration, very smooth velocity curve, excellent for intermediate speeds. The "polynomial 3-4-5" and "polynomial 4-5-6-7" profiles use higher-order polynomials to achieve continuous derivatives up to any desired order — standard in electronic cam systems where the table is computed algorithmically.
// Modified trapezoidal motion law (4 segments)
// Segment boundary: α₁ = β/8 (first cycloidal → constant-accel transition)
//
// Segment 1: 0 ≤ θ < β/8 (cycloidal acceleration)
// Segment 2: β/8 ≤ θ < 3β/8 (constant acceleration = a_max)
// Segment 3: 3β/8 ≤ θ < 5β/8 (cycloidal deceleration — symmetric)
// Segment 4: 5β/8 ≤ θ < β (constant deceleration = -a_max)
//
// Key coefficients:
// Cv = 2.000 (same as cycloidal)
// Ca = 4.888 (16% lower than cycloidal — less peak torque)
// Cj = 61.43 (finite everywhere)
//
// ── POLYNOMIAL 3-4-5 ─────────────────────────────────────
// s = h × (10u³ - 15u⁴ + 6u⁵) where u = θ/β
// Provides: s(0)=0, s'(0)=0, s''(0)=0 (zero accel at start)
// s(1)=h, s'(1)=0, s''(1)=0 (zero accel at end)
// Cv = 1.875, Ca = 5.774, Cj = 60.0
// Smooth start/stop — very low vibration excitation
//
// ── POLYNOMIAL 4-5-6-7 ───────────────────────────────────
// s = h × (35u⁴ - 84u⁵ + 70u⁶ - 20u⁷)
// Additionally: s'''(0) = s'''(1) = 0 (zero jerk at boundaries)
// Cv = 2.1875, Ca = 7.5, Cj = FINITE — zero at boundaries
// Best for very high speed, stiff mechanical systems
// Used in: electronic cam tables for servo axes
The three normalised coefficients characterise every motion law independently of speed and lift. To get actual values: V_max = Cv × h × ω / β, A_max = Ca × h × ω² / β², J_max = Cj × h × ω³ / β³. Lower Ca = less required motor torque and lower cam contact stress. Lower Cv = less required speed capacity. Finite Cj = smoother high-speed operation. No single motion law minimises all three simultaneously — the choice is always a trade-off.
// Cam motion law coefficients — engineering reference
//
// Motion Law Cv Ca Cj Notes
// ────────────────── ────── ────── ────────── ──────────────────────
// Uniform (const vel) 1.000 ∞ ∞ NEVER USE dynamically
// Simple Harmonic 1.5708 4.935 ∞ (at ends) Low-speed only
// Cycloidal 2.000 6.283 62.83 High speed, finite jerk
// Modified Sine 1.760 5.528 69.45 Good all-round choice
// Modified Trapez. 2.000 4.888 61.43 Best Ca, finite jerk
// Polynomial 3-4-5 1.875 5.774 60.0 Zero accel at ends
// Polynomial 4-5-6-7 2.1875 7.500 finite Zero jerk at ends
// Double Harmonic 1.571 6.283 ∞ (at ends) Rarely used
//
// SELECTION GUIDE:
// Speed < 100 RPM, gentle: Simple Harmonic — easy to implement
// Speed 100–500 RPM: Modified Sine — balanced performance
// Speed > 500 RPM: Modified Trapezoidal — lowest peak accel
// E-cam, servo systems: Polynomial 4-5-6-7 — smoothest output
// Stiff mechanical systems: Cycloidal — zero accel at transitions
// Torque-critical drives: Modified Trapezoidal — lowest Ca
//
// Rule: Always compute actual peak acceleration first:
// A_peak = Ca × h × (2π × RPM/60)² / (β_rad²)
// Compare to [m_follower × A_peak] vs spring force available
| Law | Cv | Ca | Jerk | Best for |
|---|---|---|---|---|
| Uniform | 1.000 | ∞ | ∞ | Never dynamic |
| Simple Harmonic | 1.571 | 4.935 | ∞ at ends | <100 RPM |
| Cycloidal | 2.000 | 6.283 | Finite | High speed, soft start/stop |
| Modified Sine | 1.760 | 5.528 | Finite | Mid-speed, smooth |
| Mod. Trapezoidal | 2.000 | 4.888 | Finite | Min torque, high speed |
| Poly 3-4-5 | 1.875 | 5.774 | Finite | E-cam, zero accel ends |
| Poly 4-5-6-7 | 2.1875 | 7.500 | Zero at ends | Ultra-smooth, stiff systems |
Once the motion law is chosen, the actual cam profile must be derived from the pitch curve and manufactured to tight tolerances. Errors in profile geometry translate directly into follower motion errors — 0.01 mm profile error at 300 RPM can produce 5 m/s² acceleration error. Understanding how profiles are generated, checked, and manufactured is essential for any cam engineer.
The pitch curve is the locus of the follower roller centre. For a translating roller follower with offset e: x(θ) = (r_p + s) × sin(θ) - e × cos(θ); y(θ) = (r_p + s) × cos(θ) + e × sin(θ). The actual cam profile is offset from the pitch curve inward by r_roller. Pressure angle α at any point: tan(α) = (ds/dθ - e) / (r_p + s). Maximum pressure angle occurs at maximum ds/dθ (peak velocity region). Radius of curvature ρ of the pitch curve must be > r_roller at all points to prevent undercutting.
// Cam profile point calculation — translating roller follower
// Inputs: base circle radius r_b, roller radius r_r,
// follower offset e, displacement array s[θ]
//
VAR
r_b : REAL := 40.0; // mm
r_r : REAL := 8.0; // mm
e : REAL := 0.0; // mm (offset from cam centre line)
h : REAL := 25.0; // mm lift
n_points : INT := 360; // table resolution
END_VAR
FOR i := 0 TO n_points - 1 DO
theta := i * 2.0 * PI / n_points; // rad
s := displacement(theta); // from chosen motion law
ds := velocity_coeff(theta); // ds/dθ
// Pitch curve point
r_p := r_b + s;
x_p := r_p * SIN(theta) + e * COS(theta);
y_p := r_p * COS(theta) - e * SIN(theta);
// Pressure angle
alpha := ATAN((ds - e) / (r_p));
// Check: |alpha| < 30° for translating follower
// Radius of curvature of pitch curve
// ρ = ((r_p² + ds²)^1.5) / (r_p² + 2×ds² - r_p×d²s)
rho := POWER((r_p*r_p + ds*ds), 1.5)
/ (r_p*r_p + 2.0*ds*ds - r_p * d2s);
// Check: rho > r_r (no undercutting)
// Actual cam profile point (offset pitch curve by r_r)
cam_x[i] := x_p - r_r * COS(alpha) * SIN(theta);
cam_y[i] := y_p - r_r * COS(alpha) * COS(theta);
END_FOR;
Industrial cams are ground on CNC cam grinders (e.g. Schütte, Junker, Landis). The cam is held between centres and rotated while a grinding wheel advances and retracts according to the profile data. Profile accuracy is specified as: radial form error (typically ±5–20 µm), surface roughness Ra 0.4–0.8 µm, hardness 58–62 HRC (case-hardened tool steel or through-hardened bearing steel). After grinding, profiles are inspected on a CMM (Coordinate Measuring Machine) or a dedicated cam analyser that rotates the cam and records follower displacement — comparing measured to theoretical to generate an error map.
// Cam tolerance specification — engineering drawing notes
//
// Material:
// Tool steel 1.2379 (D2/X153CrMoV12)
// OR bearing steel 1.3505 (52100/100Cr6)
// Hardness after hardening + tempering: 60 ±2 HRC
// Case depth (if case-hardened): 1.5–2.5 mm
//
// Profile tolerances (typical for packaging machinery):
// Radial form error: ±0.010 mm (±10 µm)
// Lift accuracy: ±0.020 mm total
// Angular position: ±0.05°
// Surface roughness: Ra ≤ 0.4 µm (ground finish)
// Runout (TIR): ≤ 0.005 mm on cam bore reference
//
// Inspection method:
// 1. CMM measurement: 720 points (0.5° resolution)
// Compare to theoretical pitch curve data
// Output: radial error vs angle plot
// 2. Functional test on cam analyser:
// Mount cam, run at 10 RPM, record follower displacement
// Compare to ideal — max error must be within tolerance
//
// Surface treatment after grinding:
// DLC (Diamond-Like Carbon) coating 2–4 µm:
// Reduces friction coefficient to 0.05 (dry)
// Increases wear resistance 5–10×
// Used in cams running without forced lubrication
// Nitrocarburising (Tenifer/QPQ):
// 3–5 µm compound layer
// Improves corrosion resistance + mild wear protection
// Lower cost than DLC — used for medium-duty cams
Plate (disc) cam: the most common — a 2D profile on a rotating disc. Easy to manufacture, compact. Works with translating or oscillating follower. Cylindrical (barrel) cam: profile is a groove cut into a cylinder surface. The follower rides in the groove — positive drive in both directions without a spring. Used in textile machines and high-speed transfer mechanisms. Face cam: profile is a groove on the flat face of a disc — follower axis is parallel to cam axis. Groove cam: a closed groove in a plate cam that positively constrains the follower in both directions (like cylindrical but in a plate). Globoidal (Ferguson) cam: a special barrel cam with a rib profile driving a star wheel — produces precise indexing with infinite dwell between steps.
// Cam type selection guide
//
// Type Follower Positive Max Complexity
// motion drive? Speed to machine
// ────────────── ───────────── ──────── ─────── ──────────
// Plate (disc) Translate/osc No* High Low
// Groove plate Translate/osc YES Medium Medium
// Cylindrical Translate/osc YES High Medium
// Face cam Translate YES Medium Medium
// Globoidal Indexing only YES High High
// Conjugate Translate/osc YES Very hi High
//
// *Spring or conjugate needed for positive drive
//
// Use plate cam when:
// Compact, light-duty, cost-sensitive
// Spring force acceptable at operating speed
//
// Use groove/cylindrical when:
// Heavy follower mass (spring cannot follow)
// High speed (>600 RPM) where spring pre-load is too large
// Precise return motion required
//
// Use globoidal indexing cam when:
// Precise rotary indexing (4, 6, 8, 12 station)
// Zero-backlash required
// Clean, repeatable dwells (assembly, inspection machines)
//
// Use conjugate when:
// Very high speed (>800 RPM)
// Heavy follower, large inertia
// Long life required (no spring fatigue)
| Type | Positive Drive | Max RPM | Manufacture | Use Case |
|---|---|---|---|---|
| Plate (disc) | No (spring) | High | Easy | General, low-cost |
| Groove plate | Yes | Medium | Medium | Heavy followers |
| Cylindrical | Yes | High | Medium | Textile, transfer |
| Face cam | Yes | Medium | Medium | Compact mechanisms |
| Globoidal | Yes | Very high | High | Precision indexing |
| Conjugate | Yes | Very high | High | High-speed, no spring |
An electronic cam (e-cam) replaces the physical cam profile with a lookup table stored in the PLC or servo drive. A master axis (physical encoder or virtual) provides the input angle. The table maps master angle to slave position setpoint. The drive executes the resulting motion profile in real time. E-cams offer instant profile changeover, registration correction, and arbitrary profile complexity — at the cost of requiring servo hardware and PLC infrastructure.
Build a multi-segment cam table. Drag the master speed slider to run the simulation. Watch master and slave positions update in real time with registration correction.
| Segment | Start (°) | End (°) | Type | Slave start | Slave end |
|---|
PLCopen MC_CamIn engages an electronic cam relationship between a master and slave axis. The slave position is computed from the cam table and the master position every motion task cycle. The master can be a physical encoder axis, a virtual axis (running at a defined speed), or any other PLCopen axis. MC_CamOut disengages the cam and leaves the slave in its last position. Critical parameters: MasterScaling (master units per cam period), SlaveScaling (output units per table unit), MasterOffset (phase shift for registration), MasterStartDistance (how far ahead the master will be when cam engages).
// PLCopen MC_CamIn — full implementation example
// Application: rotary knife (flying shear)
// Master: product conveyor encoder (virtual axis at line speed)
// Slave: knife servo axis
VAR
master_axis : AXIS_REF; // Virtual master (line encoder)
knife_axis : AXIS_REF; // Physical servo axis
fb_cam_in : MC_CamIn;
fb_cam_out : MC_CamOut;
fb_read_master : MC_ReadActualPosition;
cam_table : MC_CAM_REF; // Pre-built cam table
knife_engaged : BOOL;
product_detected: BOOL; // From photo-eye at trigger point
registration_mm : REAL := 0.0; // Registration correction (±mm)
line_speed_mpm : REAL; // m/min from encoder
product_pitch : REAL := 300.0; // mm between product leading edges
END_VAR
// Engage cam on product detection
IF product_detected AND NOT knife_engaged THEN
fb_cam_in(
Master := master_axis,
Slave := knife_axis,
CamTable := cam_table,
Execute := TRUE,
MasterScaling := product_pitch, // One cam cycle = one pitch
SlaveScaling := 1.0,
MasterOffset := registration_mm, // Phase correction
MasterStartDistance:= 50.0, // Engage 50mm before cut window
Velocity := line_speed_mpm / 60 * 1000, // mm/s
Acceleration := 5000.0,
Deceleration := 5000.0,
Mode := MC_Cyclic // Repeat indefinitely
);
knife_engaged := TRUE;
END_IF;
// Disengage on stop command
IF stop_cmd AND knife_engaged THEN
fb_cam_out(
Slave := knife_axis,
Execute := TRUE,
Mode := MC_Stop_At_Zero // Complete current cycle first
);
knife_engaged := FALSE;
END_IF;
A cam table is an array of (master_position, slave_position) pairs. The drive interpolates between points — linear interpolation is simplest but produces velocity steps at table points. Cubic spline interpolation (used in most modern drives) ensures smooth velocity and acceleration through each point. Table resolution: 360 points (1° per point) is the minimum for visual smoothness; 1440 points (0.25°) for demanding applications. The table should be generated from the same motion law equations used for mechanical cams — not drawn freehand.
// Cam table generation — modified trapezoidal profile
// Application: 360-point table, rise-dwell-fall-dwell (RDFD)
// Rise: 0°–120° (h=100 mm, modified trapezoidal)
// Dwell: 120°–180° (at h=100 mm)
// Fall: 180°–300° (mirror of rise)
// Dwell: 300°–360° (at h=0 mm)
VAR
table : ARRAY[0..359] OF REAL; // Slave position mm
i : INT;
theta : REAL; // 0–2π
u : REAL; // Normalised position 0–1 within segment
beta_r : REAL := 2.094; // 120° in radians
h : REAL := 100.0; // Lift mm
END_VAR
FOR i := 0 TO 359 DO
theta := i * 2.0 * PI / 360.0; // rad
IF theta < beta_r THEN
// Rise: modified trapezoidal
u := theta / beta_r;
table[i] := h * ModTrap(u); // See function below
ELSIF theta < PI THEN
// Dwell high
table[i] := h;
ELSIF theta < beta_r + PI THEN
// Fall: reverse modified trapezoidal
u := (theta - PI) / beta_r;
table[i] := h * (1.0 - ModTrap(u));
ELSE
// Dwell low
table[i] := 0.0;
END_IF;
END_FOR;
// ModTrap(u): Modified trapezoidal normalised displacement
// Uses 4-segment blend of cycloidal + constant acceleration
FUNCTION ModTrap : REAL
VAR_INPUT u : REAL; END_VAR
IF u < 0.125 THEN
ModTrap := (u/0.125 - SIN(2*PI*u/0.125)/(2*PI)) * 0.25;
ELSIF u < 0.375 THEN
// Constant acceleration segment
ModTrap := 0.25 * 2.0*(u-0.125) + SIN(0.0)... // (full formula)
// See Shigley machine design p.644 for complete expression
END_IF;
END_FUNCTION
In real packaging and printing machines, the product position is not perfectly predictable — it drifts due to slip, stretch, and timing variation. Registration is the process of measuring the actual product position (via a sensor) and correcting the cam phase offset so that the knife, stamp, or label hits the correct spot on the product. The correction is applied as a MasterOffset increment in MC_CamIn — a small value each cycle that converges to zero error. This is a discrete P-controller on the registration error.
// Registration control — convergence correction
// Sensor reads actual product mark position
// Expected position = N × product_pitch (N products)
// Registration error = actual - expected
//
VAR
reg_error_mm : REAL; // Measured error each cycle
reg_correction : REAL; // Correction to apply
Kp_reg : REAL := 0.4; // Proportional gain (0 < K < 1)
max_correction : REAL := 5.0; // mm max per cycle
total_offset : REAL := 0.0; // Accumulated phase offset
END_VAR
// Called once per product (on trigger sensor)
reg_error_mm := product_mark_pos - expected_mark_pos;
// P-control: apply fraction of error per cycle
reg_correction := LIMIT(
-max_correction,
Kp_reg * reg_error_mm,
max_correction
);
total_offset := total_offset + reg_correction;
// Update cam: apply new offset to running MC_CamIn
// (Most drives support live MasterOffset update)
fb_cam_in.MasterOffset := total_offset;
// Convergence: error reduces by (1-Kp)^N per N cycles
// At Kp=0.4: after 5 cycles, error < (0.6^5) = 7.8% of original
// After 10 cycles: error < 0.6% — effectively corrected
//
// Too high Kp (>0.7): overshoots → oscillation
// Too low Kp (<0.2): slow convergence → product waste on line start
Cam systems appear in almost every high-speed machine. Understanding the specific requirements of each application — cycle rate, dwell requirements, force profiles, accuracy needs — determines the cam and motion law selection.
Horizontal form-fill-seal (HFFS) machines run at 60–120 packs/minute. The jaw cam drives the sealing jaws through a DRD (Dwell-Rise-Dwell) cycle: dwell on product (jaws closed, sealing), rapid return (rise), dwell off product. The dwell angle determines seal dwell time and thus seal strength. Modified trapezoidal or polynomial 4-5-6-7 profiles are universal. The jaw drive is the highest-acceleration motion on the machine — peak acceleration can reach 50–80 g on high-speed lines, making follower inertia and spring design critical.
// HFFS jaw cam design example
// Machine speed: 80 packs/min
// Jaw stroke: 60 mm
// Seal dwell: 120° (seal window)
// Return stroke: 120° (modified trapezoidal)
// Open dwell: 120° (product loading window)
// At 80 packs/min, jaw cam rotates at 80 RPM
// ω = 80 × 2π/60 = 8.38 rad/s
// β_rise = 120° = 2.094 rad
// Ca (modified trap) = 4.888
// A_peak = Ca × h × ω² / β²
// = 4.888 × 60 × 8.38² / 2.094²
// = 4.888 × 60 × 70.2 / 4.385
// = 4704 mm/s² = 0.48 g
// (Very modest at 80 RPM — spring design is straightforward)
//
// At 200 packs/min (200 RPM):
// ω = 20.94 rad/s
// A_peak = 4.888 × 60 × 20.94² / 2.094² = 29,430 mm/s² = 3.0 g
// Follower mass = 0.5 kg
// F_inertia = 0.5 × 29.43 = 14.7 N
// Spring preload must exceed 14.7 N by safety margin ×1.5
// → Spring preload ≥ 22 N at minimum position
//
// At 500 packs/min → A_peak = 184,000 mm/s² = 18.8 g
// F_inertia = 0.5 × 1840 = 920 N — spring impractical!
// → Conjugate cam or groove cam required above ~400 RPM
Internal combustion engine valve cams are the most studied cam application in history. Requirements: exact valve timing for combustion efficiency, minimum valve bounce at high RPM, long service life (>300,000 km equivalent), tight manufacturing tolerances. Modern engines use variable valve timing (VVT) with hydraulic phasing mechanisms — the cam profile is fixed but its angular relationship to the crankshaft changes. The follower (tappet or rocker arm) must have a specific "acceleration hump" to ensure quiet valve seating.
// Engine valve cam design parameters (single-cylinder, 4-stroke)
// Engine speed range: 800–7000 RPM
// Valve lift: 8.5 mm intake, 7.8 mm exhaust
// Duration: 240° intake, 232° exhaust (crankshaft degrees)
// = 120°, 116° camshaft (cam turns at half crank speed)
//
// At 7000 RPM (max power), camshaft at 3500 RPM:
// ω_cam = 3500 × 2π/60 = 366 rad/s
// β_intake = 120° = 2.094 rad
//
// For modified polynomial profile (polynomial 3-4-5):
// Ca = 5.774
// A_peak = 5.774 × 8.5 × 366² / 2.094²
// = 5.774 × 8.5 × 133,956 / 4.385
// = 1,506,000 mm/s² = 153.6 g (!)
//
// Valve + retainer + spring seat mass ≈ 45 g = 0.045 kg
// F_inertia_peak = 0.045 × 15,060 = 677 N
// Valve spring must maintain contact: F_spring > 677 N
// at maximum lift — hence high-performance valve springs
// rated at 800–1200 N open load
//
// Valve float (follower jump) occurs when:
// F_spring < F_inertia → onset ~5500–6500 RPM for std cams
// Solution: stiffer springs, lighter valves (Ti), or
// desmodromic (conjugate) valve train (Ducati)
Rotary indexing machines (dial plates, star wheels) use globoidal (Ferguson) or barrel cams to produce precise, repeatable indexing with exact dwell periods. The key specification is "index ratio" N (number of positions) and the number of lobes L (one lobe per index cycle). Typical: 4, 6, 8, 12 station machines at 20–120 cycles/minute. The motion profile for an index cam is always RDFD with modified sine or polynomial 3-4-5. Dwell accuracy determines assembly station accuracy — typically ±10–30 arcseconds.
// Globoidal indexing cam — 8-station, 1 lobe
// Index angle: 360°/8 = 45° output rotation per index
// Index time ratio: typically 60% motion, 40% dwell
// At 60 indexes/min:
// Index period T = 1/60 × 60s / 1 = 1.0 s
// Motion time = 0.6 s, dwell time = 0.4 s
//
// Cam rotation for motion: β_motion = 0.6 × 360° = 216°
// Cam rotation for dwell: β_dwell = 0.4 × 360° = 144°
//
// Input cam shaft speed to produce 60 indexes/min:
// n_cam = 60 RPM (1 revolution = 1 index)
//
// Output star wheel: 45° per index
// Peak angular velocity = Cv × (45°) × ω / β
// Modified sine: Cv = 1.760
// ω_cam = 2π rad/s (60 RPM)
// β = 216° = 3.77 rad
// ω_peak = 1.760 × (45×π/180) × 2π / 3.77
// = 1.760 × 0.785 × 2π / 3.77
// = 2.31 rad/s = 22 RPM peak output speed
//
// Dwell accuracy depends on:
// Cam profile error (±10 µm → ±arcseconds)
// Backlash in coupling (zero with preloaded globoidal cam)
// Torsional stiffness of output shaft
// Thermal expansion of cam housing
Cam systems are wear components. Even perfectly designed cams will eventually require maintenance. Understanding how wear progresses, what to measure, and how to diagnose problems from follower motion data allows planned maintenance rather than catastrophic failure.
Simulate progressive wear and damage on a cam. Inject fault types — uniform wear, pitting, eccentricity — and see how the follower displacement signature changes. This is exactly what a maintenance engineer reads from live encoder data.
Three main wear mechanisms affect cams: fatigue pitting (surface fatigue under repeated Hertz contact stress — occurs when σ_H exceeds material endurance limit, typically at 10⁷–10⁹ cycles), abrasive wear (hard particles between cam and follower — prevented by filtration and sealed lubrication), and adhesive wear/scuffing (occurs when lubricant film breaks down at very high contact stress or temperature — prevented by correct viscosity lubricant and adequate supply). Service life is predicted using the Hertz contact stress and material S-N curve, similar to rolling bearing life calculation (L10 model adapted for cam contact).
// Cam contact life estimation — Hertz stress model
// Roller follower on plate cam (line contact)
//
VAR
F_contact : REAL := 500.0; // N (max, from force analysis)
r_roller : REAL := 8.0; // mm follower roller radius
rho_cam : REAL := 35.0; // mm cam radius of curvature at contact
L_contact : REAL := 20.0; // mm cam width
E_steel : REAL := 206000.0; // MPa Young's modulus
nu_steel : REAL := 0.3; // Poisson's ratio
E_star : REAL; // Reduced modulus
R_star : REAL; // Reduced radius
a_contact : REAL; // Half contact width mm
sigma_H : REAL; // Peak Hertz stress MPa
END_VAR
// Reduced modulus (both steel)
E_star := E_steel / (2.0 * (1.0 - nu_steel * nu_steel)); // ≈ 113,200 MPa
// Reduced radius (convex cam, convex roller — both positive)
R_star := (r_roller * rho_cam) / (r_roller + rho_cam);
// = (8 × 35) / (8 + 35) = 6.51 mm
// Hertz contact half-width (line contact)
a_contact := SQRT(4.0 * F_contact * R_star / (PI * E_star * L_contact));
// = SQRT(4 × 500 × 6.51 / (3.14159 × 113200 × 20)) = 0.068 mm
// Peak Hertz stress
sigma_H := 2.0 * F_contact / (PI * a_contact * L_contact); // MPa
// = 2 × 500 / (π × 0.068 × 20) ≈ 234 MPa
// Well below σ_H_lim = 1500 MPa for 60 HRC steel → long life
//
// Life at σ_H:
// For σ_H = 1500 MPa → 10⁶ cycles (surface fatigue limit)
// For σ_H = 500 MPa → 10⁹ cycles (effectively infinite)
// Relationship: N_life = (σ_H_lim / σ_H)^9 × 10⁶
Modern machines monitor follower motion via encoders or linear scales. Comparing measured to theoretical follower displacement reveals wear and damage patterns. Profile wear (gradual): measured displacement deviates from theoretical by increasing amounts over time — periodic maintenance prediction. Pitting/spalling (sudden): sharp spikes in measured velocity or acceleration at a specific cam angle — indicates surface damage. Follower jump (resonance): measured displacement shows oscillation after a high-acceleration event — spring preload insufficient or follower resonance excited. Cam runout (eccentric mounting): displacement error with 1× per revolution frequency component.
// Follower motion signature analysis — PLC implementation
// Compare measured follower position to theoretical table
// Detect: wear, pitting, jump, eccentricity
VAR
meas_pos : ARRAY[0..359] OF REAL; // Measured, 1° resolution
theo_pos : ARRAY[0..359] OF REAL; // Theoretical cam table
error_pos : ARRAY[0..359] OF REAL; // Difference
error_vel : ARRAY[0..359] OF REAL; // First difference (velocity)
error_rms : REAL; // RMS error (wear indicator)
error_peak : REAL; // Peak error (damage indicator)
runout_1x : REAL; // 1× harmonic amplitude
wear_level : INT; // 0=OK, 1=watch, 2=maintain, 3=stop
END_VAR
// Compute error
FOR i := 0 TO 359 DO
error_pos[i] := meas_pos[i] - theo_pos[i];
END_FOR;
// First-difference velocity error (highlights sharp spikes → pitting)
FOR i := 1 TO 359 DO
error_vel[i] := error_pos[i] - error_pos[i-1]; // mm per degree
END_FOR;
// RMS error (wear indicator — grows gradually)
error_rms := SQRT(SUM_SQUARES(error_pos) / 360.0);
// Peak error (damage indicator)
error_peak := MAX_ABS(error_pos);
// 1× runout (eccentricity) — fundamental frequency component
runout_1x := SQRT(SIN_SUM² + COS_SUM²) where
SIN_SUM = SUM(error_pos[i] × SIN(i°)) / 360
COS_SUM = SUM(error_pos[i] × COS(i°)) / 360;
// Alarm levels:
// error_rms > 0.05 mm → watch (wear starting)
// error_rms > 0.15 mm → schedule maintenance
// error_peak > 0.5 mm → urgent maintenance
// |error_vel| > 0.1 mm/deg → inspect for pitting at that angle
// runout_1x > 0.02 mm → check cam mounting (runout)
Cam lubrication is critical to service life. The lubrication regime determines whether a full EHD (Elastohydrodynamic) film separates cam and follower or boundary contact occurs. EHD film thickness at the cam-follower contact: h_EHD ≈ 0.1–2 µm (depending on speed, viscosity, contact geometry). Lambda ratio λ = h_EHD / σ_combined_roughness. λ > 3: full film (no wear). λ = 1–3: mixed lubrication (mild wear). λ < 1: boundary lubrication (severe wear). At low speed or high contact stress, forced lubrication with EP (Extreme Pressure) additives is required. At high speed with good EHD conditions, oil splash or mist lubrication may suffice.
// EHD film thickness estimation — Dowson-Higginson formula
// For line contact (roller follower on cam)
//
VAR
eta_0 : REAL := 0.046; // Pa·s — oil dynamic viscosity at 40°C
// ISO VG 68: η₀ ≈ 0.061 Pa·s
// ISO VG 100: η₀ ≈ 0.090 Pa·s
alpha_p : REAL := 2.2e-8; // Pa⁻¹ — pressure-viscosity coefficient
E_prime : REAL := 226.4e9; // Pa — reduced elastic modulus (steel)
u_s : REAL := 1.5; // m/s — mean surface velocity (entraining)
R_eq : REAL := 6.51e-3; // m — equivalent radius
F_per_L : REAL := 25000.0; // N/m — load per unit length
G : REAL; // Dimensionless material parameter
U : REAL; // Dimensionless speed parameter
W : REAL; // Dimensionless load parameter
H_min : REAL; // Dimensionless film thickness
h_min_nm : REAL; // Film thickness nm
END_VAR
G := alpha_p * E_prime; // ≈ 4972
U := eta_0 * u_s / (E_prime * R_eq); // ≈ 9.6e-11
W := F_per_L / (E_prime * R_eq); // ≈ 1.69e-4
// Dowson-Higginson minimum film thickness:
H_min := 2.65 * G^0.54 * U^0.70 / W^0.13;
h_min_nm := H_min * R_eq * 1.0e9; // Convert to nm
// h_min ≈ 150–800 nm depending on conditions
//
// Surface roughness Ra 0.4 µm → Rq ≈ 0.5 µm
// σ_combined = √(Rq_cam² + Rq_roller²) = √(0.25 + 0.25) ≈ 0.71 µm
//
// Lambda ratio λ = h_min / σ_combined
// λ > 3.0 (420 nm / 710 nm = 0.59 → boundary! increase oil viscosity
// Need h_min > 2130 nm for λ = 3 at these roughness values
// → Use ISO VG 150 or higher, or reduce surface roughness Ra < 0.1 µm
Motion laws, pressure angles, e-cam implementation, wear diagnosis, coefficient calculations — all tested. Every answer reveals a full engineering explanation.
What is the fundamental rule of cam design regarding the follower displacement curve?
A cam rotates at 300 RPM. The follower must rise 20 mm in 120° of cam rotation using a modified sine profile. What is the approximate peak follower velocity?
What is "pressure angle" in cam design, and what is the typical maximum allowable value?
What is the difference between a "conjugate cam" and a single-lobe cam with a spring-loaded follower?
In a PLCopen MC_CamIn electronic cam, what does the "MasterScaling" parameter control?
A cycloidal motion profile is preferred over simple harmonic for high-speed cams. Why?
What is "radius of curvature" and why does it matter for cam followers?
An electronic cam table has 360 points (1° resolution). At 200 RPM master speed, what is the maximum rate at which the PLC must update the cam output?
What is "cam crowning" and when is it used?
In a "modified trapezoidal" motion law, what are the four segments and what problem does it solve compared to pure trapezoidal?