Skip to main content
Call Eric:863-698-8266
CURRYCONTROLS.COMControls & Automation Knowledge Hub
ReferencePLCProgrammingDocumentationStandardsDesign

Control Expert

Field notes on Control Expert, the Schneider Electric engineering software for the Modicon M340 and M580: project structure, the five languages and derived function blocks, versions and files, online changes, upload information, and security settings.

8 min readUpdated Sep 5, 2026Published Sep 5, 2026By Eric Sullivan

The short answer

Control Expert

Control Expert is the engineering environment for the Modicon M340, M580, and the Unity-generation Quantum, Premium, and Momentum controllers, and it is the same product that was called Unity Pro until version 14. A project holds the hardware configuration, the variables with their data types, the derived function block library, the program sections in any of the five IEC 61131-3 languages, and the animation tables and operator screens used for testing. The version of the software must suit the controller firmware and the project file, which is why a plant keeps a record of which version built each controller and a machine that can run it. The decisions that matter most later are whether the application was downloaded with upload information, whether the project archive was stored with the site documentation, and whether the derived function blocks were written once and reused.

Key points

  • One product, two names: Unity Pro through version 13, Control Expert from version 14.
  • Five IEC 61131-3 languages plus derived function blocks and derived data types for reusable site libraries.
  • Project files are version-sensitive; keep archives and a machine with the matching version.
  • Upload information downloaded with the application is what lets the next engineer recover it from the controller.
  • Application passwords, section protection, and the controller access settings are set here; write them down.

Project structure

Hardware configuration
The racks, modules, and communication settings, chosen from the catalog; the I/O addressing follows from the slot positions.
Variables
Elementary and derived data types, located or unlocated; a located variable maps to an address for communication with SCADA and other controllers.
Derived function blocks
User blocks with inputs, outputs, and internal logic, instanced wherever they are needed; the pump, valve, alarm, and PID wrappers of a site library.
Program
Tasks containing sections in ladder, function block, structured text, instruction list, or sequential function chart; sections execute in order within a task.
Animation tables and screens
Engineering tools for watching and forcing variables and for simple test screens; not the operator interface.
Communication
Ethernet and serial configuration, I/O scanning tables, and, for Ethernet I/O, the device configuration through the device type manager browser.

Versions and files

ItemNotes
Software versionMust support the controller firmware; a newer software version can usually open older projects, and a controller may need a firmware update for a newer version
Working project fileTied closely to the version that saved it
Archive fileThe portable form; keep one with the site documentation after every change
Export filesText exports of sections and variables, useful for comparison and for moving logic between projects
EditionsLicensed by the range of controllers supported; the edition on the laptop must cover the controller on site

Online and download

A full download stops the controller, loads the application, and restarts it, which at a running plant is planned with the operators. An online change builds only the modified sections and applies them without stopping, subject to limits on what can change online; a hardware change or a change to a located variable often requires a full download. Before either, the running application is uploaded and archived, so that the state before the change exists somewhere other than the controller.

Upload information

When an application is downloaded, the project can include the information needed to rebuild it from the controller: variable names, comments, and section structure. Without it, an upload recovers the logic in a form nobody can maintain. The option costs controller memory and is the single most valuable setting for the plant that will own the system for twenty years. Set it, and store the archive anyway.

Security settings

  • Application password, required to open the project and, depending on settings, to connect to the controller.
  • Section protection, which hides or locks sections of logic.
  • Controller access settings: which services are enabled, access control lists on the M580, and the firmware protections.
  • All of them recorded in the site documentation in a secure place; a password nobody remembers is a controller nobody can maintain.

Habits that pay off

  • A site library of derived function blocks, documented, tested once, and used everywhere.
  • Naming conventions for variables that match the tag database and the drawings.
  • Comments on every section stating what it does and which narrative paragraph it implements.
  • An archive after every change, named with the date and the change, in the engineering library and the offline backup.
  • A record of software version, controller firmware, and license for every controller.

Frequently asked questions

Can Control Expert open a Unity Pro project?
Generally yes, the archive from an older version opens in a newer one and is converted on save. The reverse is not possible. Keep the original archive before converting.
The controller says the project does not match. What does that mean?
The application in the controller differs from the project open on the laptop: a later change, a different build, or a different project. Upload the controller application and compare before downloading anything.
Where is the operator interface built?
Not here. Control Expert builds the controller application; the operator screens are in the SCADA or HMI software. The operator screens in Control Expert are engineering test tools.
How do I move a pump block from one plant project to another?
Export the derived function block and its data types from one project and import them into the other, or maintain the site library as a separate exported file that every project imports. A block copied by hand drifts.

Direct contact

Have a controls question?

Reach Eric Sullivan directly about anything on this site, a controls or automation topic, or one of his personal projects.