Repository navigation
Machine FG_03
This page is generated from the Unity twin. Published from
_docs/context/fg-03.md— edit it there, not here. Changes made in the wiki are overwritten on the next sync.
| Scene path | Project/FG_03 |
| Twin PLC path | MAIN.FG_03 |
| Served by |
Index03 (FG_Transport) |
| Symbols | 9 |
| Behaviour | fg-03-behaviour.md |
Transfers the part from slot 1 to slot 2 of the pallet, flipping it 180 degrees on the way. A newly created payload carries its part in slot 1 on the right hand side.

The FG_03 transfer station, isolated. Two gantries move the part from pallet slot 1 to slot 2.
| # | Device | Type | Twin FB | Twin PLC path | What it does |
|---|---|---|---|---|---|
| 1 | Y_AxisX1 |
Cylinder | FB_Cylinder |
MAIN.FG_03.Y_AxisX1 |
VERTICAL axis for arm 1, despite the X in the name. Max is raised, and arm 1 stays there for the whole cycle; min is only the power-on rest position. Arm 2 names its axes the opposite way round. |
| 2 | Y_AxisY1 |
Cylinder | FB_Cylinder |
MAIN.FG_03.Y_AxisY1 |
HORIZONTAL traverse for arm 1, despite the Y in the name. Min is home over slot 2, max is the transfer position. Arm 2 names its axes the opposite way round. |
| 3 | Y_AxisR1 |
Cylinder | FB_Cylinder |
MAIN.FG_03.Y_AxisR1 |
Rotates arm 1 through 180 degrees. Retracted (0 deg) is home and the receiving orientation; extended (180 deg) is the placing one. The flip is also what lowers the part into slot 2. |
| 4 | Y_Gripper1 |
Cylinder | FB_Cylinder |
MAIN.FG_03.Y_Gripper1 |
Gripper on arm 1, the placing arm. Receives the part from arm 2 at the handover and releases it into slot 2. |
| 5 | B_Detect1 |
SignalBinary | FB_SensorBinary |
MAIN.FG_03.B_Detect1 |
Grip sensor on arm 1, the placing arm. Reports whether Y_Gripper1 is actually holding the part, which the cylinder limit cannot. |
| 6 | Y_AxisX2 |
Cylinder | FB_Cylinder |
MAIN.FG_03.Y_AxisX2 |
Horizontal traverse for arm 2, the picking arm. |
| 7 | Y_AxisY2 |
Cylinder | FB_Cylinder |
MAIN.FG_03.Y_AxisY2 |
Vertical stroke for arm 2, lowering it to pick the part out of slot 1. |
| 8 | Y_Gripper2 |
Cylinder | FB_Cylinder |
MAIN.FG_03.Y_Gripper2 |
Gripper on arm 2, the picking arm. Takes the part out of slot 1 and holds it until the handover to arm 1. |
| 9 | B_Detect2 |
SignalBinary | FB_SensorBinary |
MAIN.FG_03.B_Detect2 |
Grip sensor on arm 2, the picking arm. Reports whether Y_Gripper2 is actually holding the part, which the cylinder limit cannot. |
# is the numbered arrow on the figure above.
The twin path is not the control path. A control platform spells these devices differently - it may fold a twin child into its parent unit, or address it from another root entirely - and only the control spelling works in a binding or a link, where the twin's fails silently. The verified control path for each row is on the vendor page linked below.
None.
The scene tree. The comment on each line is what the node is; † marks one that differs between scenes.
Y_AxisX1: # Cylinder
Y_AxisX2: # Cylinder
Axis_X1: # grouping, not a device
Y_AxisY1: # Cylinder
Axis_Y1: # grouping, not a device
Y_AxisR1: # Cylinder
Axis_R1: # grouping, not a device
Y_Gripper1: # Cylinder
Finger_1: # grouping, not a device
Finger_2: # grouping, not a device
Gripper: # grouping, not a device
B_Detect1: # SignalBinary
Axis_X2: # grouping, not a device
Y_AxisY2: # Cylinder
Axis_Y2: # grouping, not a device
Y_Gripper2: # Cylinder
Finger_1: # grouping, not a device
Finger_2: # grouping, not a device
Gripper: # grouping, not a device
B_Detect2: # SignalBinaryTwin animation: SequenceUnit3.cs — behaviour contract is in transport-behaviour.md
Y_AxisX1 — MAIN.FG_03.Y_AxisX1 · Cylinder
- Signal — Double solenoid with both limits read. MAX is raised; arm 1 rises once and stays up for the whole cycle.
Y_AxisX2 — MAIN.FG_03.Y_AxisX2 · Cylinder
- Signal — Double solenoid with both limits read. MAX is the transfer position, min is home over slot 1.
Axis_X1 — MAIN.FG_03.Axis_X1 · not a PLC symbol
- Function — Kinematic joint of the two arm transfer unit, driven by the matching Y_ cylinder. Carries motion only and is not a PLC device in its own right.
Y_AxisY1 — MAIN.FG_03.Y_AxisY1 · Cylinder
- Signal — Double solenoid with both limits read. MAX is the transfer position, min is home over slot 2.
Axis_Y1 — MAIN.FG_03.Axis_Y1 · not a PLC symbol
- Function — Kinematic joint of the two arm transfer unit, driven by the matching Y_ cylinder. Carries motion only and is not a PLC device in its own right.
Y_AxisR1 — MAIN.FG_03.Y_AxisR1 · Cylinder
- Signal — Double solenoid with both limits read. Rotary. Retracted is 0 deg and the receiving orientation; extended is 180 deg and the placing one.
Axis_R1 — MAIN.FG_03.Axis_R1 · not a PLC symbol
- Function — Kinematic joint of the two arm transfer unit, driven by the matching Y_ cylinder. Carries motion only and is not a PLC device in its own right.
Y_Gripper1 — MAIN.FG_03.Y_Gripper1 · Cylinder
- Signal — Double solenoid with both limits read. EXTENDED grips. The limit proves the jaws moved, NOT that they caught anything - only B_Detect1 says that.
Finger_1 — `` · not a PLC symbol
- Function — One jaw of a two-finger gripper. Cosmetic kinematics only.
- Twin — OC Axis driven by the gripper cylinder. Carries no payload itself - the Gripper sibling holds it.
Finger_2 — `` · not a PLC symbol
- Function — One jaw of a two-finger gripper. Cosmetic kinematics only.
- Twin — OC Axis driven by the gripper cylinder. Carries no payload itself - the Gripper sibling holds it.
Gripper — `` · not a PLC symbol
- Function — Payload carrier for arm 1, the placing arm. Holds the part between the handover and slot 2.
- Twin — OC Gripper on a Rigidbody. The parent Cylinder's events drive it: OnLimitMax calls Pick, OnLimitMin calls Place, and OnActiveChanged calls Place(IsActive).
- Approximation — IsPicked is the gripper's own record of what it took, and B_Detect1 reads it, so it cannot report a part the gripper has SILENTLY LOST. Real hardware would use a beam.
- Caution — Cylinder.IsActive means MOVING and Place(true) releases, so ANY drift off the max limit drops the payload. A de-energised double solenoid does NOT hold it here.
B_Detect1 — MAIN.FG_03.B_Detect1 · SignalBinary
- Signal — Grip witness for arm 1. Active while gripper 1 actually holds the part.
Axis_X2 — MAIN.FG_03.Axis_X2 · not a PLC symbol
- Function — Kinematic joint of the two arm transfer unit, driven by the matching Y_ cylinder. Carries motion only and is not a PLC device in its own right.
Y_AxisY2 — MAIN.FG_03.Y_AxisY2 · Cylinder
- Signal — Double solenoid with both limits read. The axis factor is inverted, so MAX is LOWERED.
Axis_Y2 — MAIN.FG_03.Axis_Y2 · not a PLC symbol
- Function — Kinematic joint of the two arm transfer unit, driven by the matching Y_ cylinder. Carries motion only and is not a PLC device in its own right.
Y_Gripper2 — MAIN.FG_03.Y_Gripper2 · Cylinder
- Signal — Double solenoid with both limits read. EXTENDED grips. The limit proves the jaws moved, NOT that they caught anything - only B_Detect2 says that.
Finger_1 — `` · not a PLC symbol
- Function — One jaw of a two-finger gripper. Cosmetic kinematics only.
- Twin — OC Axis driven by the gripper cylinder. Carries no payload itself - the Gripper sibling holds it.
Finger_2 — `` · not a PLC symbol
- Function — One jaw of a two-finger gripper. Cosmetic kinematics only.
- Twin — OC Axis driven by the gripper cylinder. Carries no payload itself - the Gripper sibling holds it.
Gripper — `` · not a PLC symbol
- Function — Payload carrier for arm 2, the picking arm. Holds the part between slot 1 and the handover.
- Twin — OC Gripper on a Rigidbody. The parent Cylinder's events drive it: OnLimitMax calls Pick, OnLimitMin calls Place, and OnActiveChanged calls Place(IsActive).
- Approximation — IsPicked is the gripper's own record of what it took, and B_Detect2 reads it, so it cannot report a part the gripper has SILENTLY LOST. Real hardware would use a beam.
- Caution — Cylinder.IsActive means MOVING and Place(true) releases, so ANY drift off the max limit drops the payload. A de-energised double solenoid does NOT hold it here.
B_Detect2 — MAIN.FG_03.B_Detect2 · SignalBinary
- Signal — Grip witness for arm 2. Active while gripper 2 actually holds the part.
The twin is master for structure, and that is all this page states. The control module, the twin device layer, the verified control PLC paths and the terminal mapping is the control platform's own knowledge base:
- Beckhoff
- Siemens — no knowledge base published yet
Generated from DT_PSA_OPCV by _workflow/tools/build_wiki.py — 39 pages. Edit the source there; changes made here are overwritten.
Getting started
- Home
- Setup
- Using-The-Application
- How-It-Works
- PLC-Connectivity
- Engineering-Workflow
- Machine-Description
- Glossary
The machine
- Machine
- Machine-PLC-Symbols
- Machine-Provenance
- Machine-FG_01
- Machine-FG_02
- Machine-FG_03
- Machine-FG_04
- Machine-FG_05
- Machine-FG_System
- Machine-FG_Transport
Behaviour
- Behaviour-FG_01
- Behaviour-FG_02
- Behaviour-FG_03
- Behaviour-FG_04
- Behaviour-FG_05
- Behaviour-FG_System-Safety
- Behaviour-Gripper-Station-Reset
- Behaviour-State-Lamp
- Behaviour-Transport
Device types
- Device-Button
- Device-ControlBunker
- Device-Cylinder
- Device-DataReader
- Device-DrivePosition
- Device-DriveSimple
- Device-Lamp
- Device-LinkByte
- Device-Lock
- Device-PanelSampler
- Device-SensorBinary
- Device-SignalBinary
Control platforms
- Beckhoff TwinCAT 3
- Siemens TIA Portal — no wiki yet