| name | machine-expert |
| description | Edit Machine Expert file-based (.fbsproj) Structured Text on disk — no cds-text-sync or GitHub setup. |
| metadata | {"sylo":{"category":"automation","icon":"cpu"}} |
Machine Expert — file-based (FBS) workflow
The operator uses EcoStruxure Machine Expert with a file-based project (.fbsproj folder), usually created from Machine Expert Platform for Git. Sylo edits files on disk; no cds-text-sync, no sync/ mirror, no GitHub install, no daemon.
Before writing ST: load machine-expert-reference and read references/machine-expert/st-syntax-codesys.md + terminology-me-codesys.md (offline — no web for syntax). For ME UI / M262 / motion / SoftStruxure questions, same skill — read bundled PDFs under references/machine-expert/operator-docs/.
Paths (three levels)
| Level | Role | Example |
|---|
| Workspace | Pi cwd — parent of the project folder | ...\Desktop\16771 |
| Project folder | *.fbsproj directory — open this in Logic Builder | ...\16771\PLC-16771-001-410D-AMT.fbsproj |
| Application logic root | Where PLC application code lives on disk | see below |
Application logic root (default place to read/edit logic). Relative to workspace:
{ProjectFolder}.fbsproj/
{Device}.device.xml.v3^/
Plc Logic.plclogic.xml.v3^/
Application.application.xml.v3^/ ← START HERE for application logic
Concrete example (operator’s layout):
16771/ ← workspace (cwd)
PLC-16771-001-410D-AMT.fbsproj/ ← project folder
MyController.device.xml.v3^/
Plc Logic.plclogic.xml.v3^/
Application.application.xml.v3^/ ← application logic root
Routines/ (*.prg.st)
Function Blocks/ (*.fb.st)
GVLs/ (*.gvl, etc.)
DUTs/
Task Configuration/
{Device} matches the controller node in the ME tree (e.g. MyController for MyController: TM262M35MESS8T). If unsure, run me_fbs_discover — do not guess the device folder name.
Operator setup (minimal)
- Capability manager → Machine expert → On → restart broker.
- Pi cwd = workspace (folder that contains the
.fbsproj), not inside .fbsproj unless the operator chose that.
- Open the
.fbsproj folder in Logic Builder when building or downloading.
Agent workflow
- Run
me_fbs_discover once per session (or after cwd change) to resolve application logic root and ST paths.
- Treat
Application.application.xml.v3^ as the working tree for POUs — not the workspace root, not .fbsproj alone.
- Before editing disk: remind the operator to close editor tabs in Logic Builder for any POU/GVL you are about to change (open tabs keep a stale in-memory copy and may not pick up external edits).
- Paste full absolute paths from tool output when pointing the operator at files.
- Read / edit under the application root:
Routines/*.prg.st, Function Blocks/*.fb.st, GVLs/*, DUTs/*, etc.
- After disk edits: remind how to get changes into ME (see below). Then Build.
Disk ↔ IDE sync (FBS — no export/import tools)
CODESYS File-Based Storage does not watch the filesystem. An open POU tab often keeps the old buffer even after the .st file on disk changes.
Before the agent edits files
Tell the operator: close the relevant ST/GVL tabs in ME (or close all logic editors) for the objects being changed. Best practice: nothing you are about to edit should be open in Logic Builder.
After the agent edits files (pick one)
| Option | When to use |
|---|
| A. Reopen from tree | Tabs were closed before edit — double-click the POU in the device tree; ME loads fresh from disk. |
| B. Paste into IDE | Tab was left open or you want to be sure — open/read the .st path the agent gives you, copy implementation/declaration, paste into the ME editor, Save. |
| C. Reload project | Many POUs changed or IDE still looks wrong — File → Close Project, then File → Open the same .fbsproj folder. |
Then Build.
| Direction | What to do |
|---|
| Disk → IDE | Prefer A or C above; use B if a single POU tab was open during the edit. |
| IDE → Disk | Save in ME; FBS writes to files under .fbsproj. |
There is no me_cds_export_text / me_cds_import_text / Project_daemon.py in this package — never suggest them for .fbsproj projects.
Agent reminder template (use in chat): “Close the ME editor tabs for [POU names] (or all ST tabs), then I’ll edit the files on disk. When I’m done: reopen each POU from the tree, or paste from the paths I give you, or close and reopen the whole project — then Build.”
Forbidden (stale advice)
Do not mention: me_cds_*, cds-text-sync, Project_daemon.py, sync/project-view/, MACHINE_EXPERT_SETUP.md, keyboard shortcuts for export/import scripts, or “force sync via Pi tools.” Those were the binary .project workflow (removed from the extension).
Licenses
- Editing files on disk — no
EME_Scripting required.
- Execute Script File / automation — needs ME Standard+ (
EME_Scripting). Do not promise scripting on Free license.
Rules
- Prefer FBS text files over binary
.project when both exist; use the 16771 tree, not an old 16771-001 .project folder, unless the operator says otherwise.
- build ≠ deploy unless the operator requests download to PLC.
- Match existing naming, types, and library usage in neighboring POUs.