Mounting by roof type

Mounting solar panels on a flat roof: ballast and frames

On a flat roof panels are usually not screwed to the roof but set on ballasted frames: the weight of concrete holds them against wind uplift and sliding. How much ballast is needed depends on the wind in your region, the building height, the position on the roof and what the support stands on. And the roof slab has to carry both the ballast and the snow.

How much ballast: three supports, three cities

One row of 5 panels at 15°, two supports per line, middle of the roof, a 6 m high building. Each cell shows the row’s ballast and how much is needed against wind uplift alone under DBN V.1.2-2:2006. «Passes» means every check passed: uplift, sliding, overturning and supports.

SupportKyivLvivKharkiv
Lintel 2PB10-1 · 43 kg516 kg (290 kg needed against uplift)
fails
516 kg (471 kg needed against uplift)
fails
516 kg (362 kg needed against uplift)
fails
Бордюр дорожній БР 100.30.15 · 108 kg1,296 kg (290 kg needed against uplift)
passes
1,296 kg (471 kg needed against uplift)
passes
1,296 kg (363 kg needed against uplift)
passes
Монолітний куб 400×400×400 · 150 kg1,800 kg (296 kg needed against uplift)
passes
1,800 kg (479 kg needed against uplift)
passes
1,800 kg (369 kg needed against uplift)
passes

Light lintels are heavy enough against uplift but fail on sliding and stability where the wind is stronger. The calculation takes a reference friction between support and roof covering — confirm it for your roof.

A row on «Бордюр дорожній БР 100.30.15 · 108 kg» supports in Kyiv

  • Ballast 1 296 kg ≥ 290 kg against uplift (ДБН В.1.2-2:2006 as amended by No. 1 (2007) and No. 2 (2020): wind 286 Pa × cf 1.10). Sliding: ≈ 589 kg needed (μ = 0.40, PVC/TPO + rubber mat — for reference, confirm by measurement).
  • Roof load-bearing capacity not checked. The array imposes ≈ 290 kg/m² (ultimate, with snow), under a support ≈ 1 051 kg/m². Enter the permitted load from the survey or the roof slab design (“Permitted roof load” field).
roof covering (flat roof) · mat under supportsBR 100.30.15О1С1К1С215.0°1 980531К1 c/c 2 0504201 310320panel 2 3501501 025206
The row’s frame from the side: rafter, posts, supports. Drawing from the Solispec engine.

Bill of materials for the typical roof (Kyiv)

5 panels, 2.75 kW. Quantities from the calculation for Kyiv; open the constructor for your own roof.

ItemLength, mmQuantity
Profile 42×42 — parts (blank length)
К1 · Top chord · 2 050 between hole centres, holes 25 from the ends; bottom — angled cut flush with the underside of the base, top — vertical cut flush with the rear face of the post2,1006
О1 · Base · 1 980 between hole centres, holes 25 from the ends2,0306
С1 · Rear post with braces · 531 between hole centres, holes 20 and 25 from the ends5764
С1а · Rear post · 531 between hole centres, holes 20 and 25 from the ends5762
С2 · Inner strut (inclined) · 976.8 between hole centres, holes 25 from the ends; bottom — angled cut flush with the underside of the base1,0276
Х1 · Brace (in cross) · 1 091 between hole centres, holes 25 from the ends; cross diagonals — on opposite sides of the posts; ends — vertical cut flush with the post face1,1414
Р1 · Rail5,7202
Panel fixings
End clamp 35 mm · 1 per rail at both ends of the row—4
Mid clamp (30–40 mm) · 4 splices × 2 rails, gap 20 mm—8
Through bolt M8×100 A2—12
Self-locking nut M8 DIN 985 + washer DIN 9021—12
Profile joint
Fasteners M10 (profile to profile)
Truss nodes · 3 nodes × 6 trusses × 2 bolts—36
Rail to top chord—12
Inner strut · 2 ends × 6 trusses × 2 bolts—12
Braces · 4 × 2 ends—8
Bolt M10 × 110—58
Bolt M10×150 cl. 8.8 (node M through the spacer insert)—12
Bolt M10 × 150 (node B: post and base through the spacer insert)—6
Nut M10—75
Washer M10 (2 each)—150
Spring washer M10—75
Supports
Road kerb BR 100.30.15 (laid flat) · 1 000×300×150, ≈ 108 kg · 2 × 1 layers × 6 trusses—12
Chemical anchor: threaded rod M10×165 · 2 per node, 2 nodes per truss · hole Ø12×90 · ≥ 50 mm from the edge—24

Installation step by step

The Solispec engine writes the steps for the typical row in Kyiv: part marks, quantities and tightening torques come from the same calculation.

  1. Prepare the parts in the workshop: cut and drill per the “Parts” section (К1, О1, С1, С1а, С2, Х1, Р1), holes Ø11. Deburr, paint cut edges and holes with zinc paint, write its mark on each part with a marker. Close the tube ends with 42×42 end caps, drill a Ø6 drain hole at the lowest point of each part. Check: the number of parts of each mark matches the bill of materials.
  2. Mark out the row: length 5 720 mm, 6 trusses at 1 040 mm spacing, end ones — 260 mm from the rail ends. Node points A (front) and B (rear) — 1 980 mm apart. Check: diagonals of the rectangle between the end trusses 5 564 mm each, difference ≤ 10 mm.
  3. Place 10 mm rubber mats (12 pcs) under every support: the mat projects beyond the support by ≥ 50 mm and does not cover drains or membrane seams. Check: every support sits fully on its mat; check the roof load against the “Roof” section of the calculation.
  4. Install the supports: 12 × BR 100.30.15 along the row. Level the top with a level or string line. Check: all supports in one plane ±5 mm, in line ±10 mm.
  5. Assemble 6 trusses on a level area: О1 + С1 at node B (via a spacer insert, one bolt M10×150), К1 to О1 (node A) and to С1 (node C), then С2. Bolts M10×110 grade 8.8 — 2 per node (36 in total), washers under the head and nut, spring washer under the nut. Tighten “hand-tight” only. Check: top chord angle 15.0° ±0.5° (inclinometer), trusses identical when stacked on top of each other.
  6. Node M: the top chord and the inner strut lie in planes one profile apart — between them a spacer insert cut from the same profile, bolt M10×150 through both profiles and the insert. Node B: the rear post sits on the other side of the top chord — back to back with the base, also via a spacer insert and bolt M10×150.
  7. Place the trusses on the supports at the marked points, О1 along a string line. Fix to the supports with chemical anchors: threaded rod M10×165 grade 5.8 (24 pcs), hole Ø12 90 mm deep exactly on the support axis, ≥ 50 mm from the edge; clean: 2× blow-out + 2× brush + 2× blow-out, resin from the bottom to 2/3; load only after curing per the datasheet (+20 °C ~1 h, +5 °C up to 6 h), washer 40×40×4, 20 N·m. Check: С1 plumb (spirit level, ±2 mm over the height), spacing 1 040 ±5 mm, diagonals 5 564 mm.
  8. Braces Х1 between rear posts С1 (cross in the end bays (4 pcs)): bolts M10×110, 1 per end. Before tightening, plumb the posts once more.
  9. Lay rails Р1 on top chords К1 at 420, 1 730 mm from lower node A (holes already made), overhang 260 mm on each side. Every rail/top chord crossing — bolt M10×110 (12 in total).
  10. Align and tighten: stretch a string line along the top of each rail — deviation ≤ 3 mm over the panel length and ≤ 5 mm per row, rails parallel. Then tighten all M10 with a torque wrench: 25–30 N·m (tube — do not crush), spring washer fully compressed. Check: spot-check 10% of the bolts, re-measure the diagonals 5 564 mm.
  11. Earth the frame: to the first and last truss of each row — PV-3 flexible wire 6 mm² (green-yellow) via a cable lug under bolt M8 with a serrated washer on an area cleaned of paint. Bond the rows together, run the wire to the building's earthing system / MET (if there is lightning protection — per the design, with separation distance). Check: test the continuity of the protective conductors and the connection to the MET with an instrument (resistance — per the electrical design).
  12. Install the panels from bottom to top, starting from one end of the row. End clamps for 35 mm frames (4 pcs) — on the first and last panel, ≥ 20 mm from the rail end. Mid clamps (8 pcs) — between panels, gap 20 mm. Bolt M8×100 A2 through the rail with self-locking nut DIN 985 and a wide washer underneath (12 pcs). Rails must be at 520 mm from the short panel ends — check against the clamping zone in the datasheet. Tighten to 14–16 N·m. Check: the panel does not move, the clamps are not skewed.
  13. Fix the panel cables to the rails and frames with stainless steel clips or UV-resistant black cable ties every 300–400 mm. MC4 connectors do not lie on the roof covering or the ground and do not hang loose; there is a drip loop. Earth the module frames: an earthing clip under each mid clamp or a cable lug in the frame's ⏚ hole.
  14. Re-tighten all bolts after 2–4 weeks and after the first strong wind: M10 — 25–30 N·m (tube — do not crush), clamps — 14–16 N·m. Check that the ballast and mats have not shifted and that there are no scratches on the galvanising (touch up). Then — inspect yearly.

Common mistakes

  • Counting uplift only. The calculation also checks sliding and overturning — in the table above they are what fails the light lintels.
  • Setting supports straight on the membrane. A rubber mat goes under every support, clear of drains and seams.
  • Not knowing the roof slab’s capacity. Enter the allowed load from a survey or the design — the calculation compares it with ballast and snow.

Calculate your roof

The constructor opens with a flat-roof frame on these supports. Enter the city, building height, position on the roof and the allowed load on the roof slab — ballast and checks are recalculated.

Ground frame designer

Roof not suitable? Put the panels on the ground

If the roof is shaded, weak or too small, the same plant can stand on a ground frame. The constructor picks profiles, footings and row spacing for your region.

Other roof types

Sources and assumptions

  • Snow and wind loads: DBN V.1.2-2:2006 «Loads and actions» with Changes 1 and 2, characteristic values for the regional centres (Annex E).
  • Friction between support and roof covering: a reference value of the calculation; the roof slab’s capacity comes from a survey or the building design.
  • The calculation is preliminary and does not replace a design checked by an engineer.

Page data updated 14.10.2026, Solispec engine 0.12.0.