Repository navigation
Usage
Published from
_docs/02-usage.md— edit it there, not here. Changes made in the wiki are overwritten on the next sync.
Operating the demo with the TwinCAT control program driving it.
For the twin's own controls — camera, selection, the tool strip, hot keys — see using the application. This page is only about the control side.
The order matters: the twin's devices bind to PLC symbols on connect, so the runtime has to be there first.
- Open the TwinCAT solution and put the runtime into Run mode.
- Open
Unity/Assets/Demo_1/Scenes/VC_Demo_1_Beckhoff_1.unity. - Press Play.
If the twin comes up with devices that never move, the usual cause is the runtime not being in Run, or the ADS route not resolving — see 01 · Setup.
The first reset after the runtime starts references both lift axes: each carriage searches down
to its B_AxisMin sensor, sets zero there, and then moves to its home level - Lift01 to 10 mm,
Lift02 to 364 mm. Later resets skip the search. A reset that never finds the sensor stops with lift
fault 9 instead of hanging.
The Beckhoff scene adds an on-screen panel, MAIN.FG_System.H_ControlPanel. It is a PanelSampler
aggregating eight buttons, and they are PackML states rather than free-form commands:
| Button | |
|---|---|
START |
|
STOP |
|
RESET |
|
CLEAR |
|
ABORT |
|
PRODUCTION |
Mode |
MAINTANANCE |
Mode. Spelled this way in the twin — the misspelling is the actual symbol name |
MANUAL |
Mode |
The bit each button occupies is in the panel's generated BitLayout on
FG_System in TwinCAT.
The panel is this vendor's, not the machine's. The Siemens scene has a different one — seven controls including a rotary mode switch. That is why the panel is marked
†on the main repository's pages.
H_SignalTower reports machine state by colour. The mapping is a machine-level contract, not a
TwinCAT detail — it is in
the state-lamp table.
Beckhoff/TwinCAT_1/HMI is a TE2000 project bound to PLC_1 as runtime PLC1 on port 851. Its
pages:
| Page | Shows |
|---|---|
StartPage, GroupsOverview
|
The machine and its groups |
FG_01 … FG_05
|
Per-group device tiles and controls |
FG_Transport, FGTransport_Index, FGTransport_Lift, FGTransport_Stopper, FGTransport_Drive
|
The conveyor, and one page per module type. The lift tile shows the carriage position, Homed, At home / At far and the limit sensors, and has Reference axis (Manual only) |
FGTransport_Axes |
The two lift axes in TwinCAT's own motion controls - enable, jog, move, halt. Manual mode only. Reference with the lift tile's button; the NC's own homing does not use B_AxisMin
|
EtherCAT |
Bus and terminal state |
Events |
The event log |
Settings, LoginPage
|
— |
Every HMI binding is checked against the PLC's own symbols when this module is built, so a page cannot quietly bind to a symbol that no longer exists.
The behaviour is a machine-level contract, so it is documented in the main repository, not here:
| Question | Read |
|---|---|
| How a station stops, resets and hands the pallet on | Transport behaviour |
| Why a group will not start without its Index unit | same — the step chain and its three invariants |
| What the FG_01 laser interlock does and does not enforce | FG_01 behaviour |
| Why a NOK verdict stops the pallet | FG_02 behaviour, FG_04 behaviour |
| Resetting FG_03 or FG_05 with a part in the gripper | Gripper station reset |
| The safety chain, and who owns which fact | The safety chain |
Two things that surprise people, both documented in full at those links:
-
No functional group runs on its own. Each is served by an Index unit in
FG_Transportthat fixes the pallet, triggers the group, and waits for it to report done before releasing. - Retracted holds the pallet; extending releases it. Several authored descriptions in the twin say the opposite and are known to be wrong.
The twin says MAIN.FG_01.P_Camera. TwinCAT says MAIN.Machine.FG_01.P_Camera. Only the second
works in a link or an HMI binding, and the first fails silently in both.
Never derive a control path by hand — the verified one for every device is on that group's page in the TwinCAT machine pages.
Generated from DT_PSA_OPCV_Beckhoff by _workflow/tools/build_wiki.py — 27 pages. Edit the source there; changes made here are overwritten.
Getting started
The machine
- Machine
- Machine-FG_01
- Machine-FG_02
- Machine-FG_03
- Machine-FG_04
- Machine-FG_05
- Machine-FG_System
- Machine-FG_Transport
- Machine-PLC-IO
- Machine-Provenance
Reference
Device types
- Device-Button
- Device-ControlBunker
- Device-Cylinder
- Device-DataReader
- Device-DrivePosition
- Device-DriveSimple
- Device-LinkByte
- Device-Lock
- Device-PanelSampler
- Device-SensorBinary
- Device-SignalBinary
The machine