XXL and PGM: the two Morbidelli program formats

Morbidelli and SCM machining centres have used two program formats over the years. Understanding both explains what a converter can and cannot do.

What an XXL file is

XXL is the plain-text program format of Xilog Plus, the programming environment shipped with SCM and Morbidelli machining centres from the late 1990s onward. A file starts with an H header describing the panel (DX, DY, DZ), units and reference corner, followed by ISO-style motion commands: G0 rapid moves, G1 straight cuts, G2 and G3 arcs with centre coordinates, and macros such as XB for boring. Because it is text, any CAM system can write it and any editor can read it.

What a PGM file is

Older Morbidelli controllers, such as the Author series running early Xilog or TRIA control software, do not read text. They load a compiled binary PGM produced by SCM's WinXISO tool. The file has a fixed 86-byte header carrying the panel dimensions, flags and start point, followed by one 28-byte record per motion. Coordinates are stored as 32-bit integers in hundredths of a millimetre, so 492.923 mm becomes 49292.

How the converter maps one to the other

The converter parses the XXL text, derives the cutting layout (start position, tool, working depth and the sequence of cuts) and writes the binary records. Each number is parsed the way the original compiler did, as a 32-bit float scaled by 100 and rounded, so the result matches the reference file exactly, including its rounding quirks.

Why some commands are flagged

The PGM format is proprietary and undocumented. Everything the converter writes was reverse-engineered from a program proven to run on a machine. Commands that appear in that program are verified. Commands that do not, such as straight lines or counter-clockwise arcs, are encoded by analogy and always flagged so you can test them carefully. Commands with no plausible encoding, such as drilling cycles, are refused rather than guessed.

Growing the verified set

Whenever a new XXL program and the PGM produced for it by the original converter are available, the two can be compared byte for byte. Each such pair turns a guess into a verified encoding. If you have such files, they are the most valuable contribution to this tool.