PLC Communication¶
Pick[+] supports PLC integration for automated robot control and communication. This enables seamless integration with industrial automation systems through standard PLC protocols.
Supported Protocols¶
Pick[+] supports the following PLC communication protocols:
- Modbus TCP: Industry-standard protocol for PLC data communication
- Siemens S7: Native Siemens PLC data communication
Communication Overview¶
PLC communication with Pick[+] is organized into two main routines:
-
PLC Calibration
Complete specification for PLC-controlled camera-robot calibration
-
PLC Application
Complete specification for PLC-controlled execution and pick & place operations
Communication Standards¶
All PLC communication with Pick[+] follows these standards:
Register Encoding¶
| Setting | Value | Description |
|---|---|---|
| Protocol | Modbus TCP / Siemens S7 | Communication protocol |
| Register Type | Holding Registers (16-bit) | Standard register type |
| Endianness | Big-Endian | Network Byte Order |
| Pose Order | X, Y, Z, R, P, Y | 6 consecutive registers per pose |
| Translation Scale | 10000 | Tenths of millimeter (0.1 mm) |
| Rotation Scale | 10000 | Ten-thousandth of a radian (0.0001 rad) |
Request Mechanism¶
All requests use a toggle-based handshake:
- PLC writes parameters
- PLC toggles request bit (
0 → 1or1 → 0) - Pick[+] detects the change and processes the request
- Pick[+] toggles acknowledgment flag
- PLC detects the change (handshake complete)
Memory Organization¶
Registers are organized by scope:
| Address Range | Scope | Description |
|---|---|---|
| 0-4 | Shared | Global registers used by all routines |
| 5-30 | Calibration | Calibration routine specific registers |
| 31+ | Execution | Execution routine specific registers |
| Address Range | Scope | Description |
|---|---|---|
| 0-7 | Shared | Global registers used by all routines |
| 8-55 | Calibration | Calibration routine specific registers |
| 56+ | Execution | Execution routine specific registers |
Shared Registers
Shared registers (addresses 0-4) maintain the same values regardless of which routine is active. This includes system status, heartbeat, error codes, and control flags.
Getting Started¶
Prerequisites¶
Before setting up PLC communication:
- PLC connected to the same network as Pick[+] Server PC and IP configured.
- Pick[+] software installed and running
- Hardware Settings configured with PLC IP address
Configuration Steps¶
-
Configure PLC in Pick[+]:
- Open Hardware Settings
- Select PLC profile and enter PLC IP address
-
Implement PLC Program:
- Follow PLC Calibration for calibration routines
- Follow PLC Application for execution routines
- Implement proper error handling and monitoring
-
Test Communication:
- Monitor the
LIFE_BITregister (should toggle every ~1 second) - Check
ROUTINE_STATUSto verify correct mode - Verify
ERROR_CODEremains0during operation
- Monitor the
Best Practices¶
Safety¶
- Implement proper error handling for
ERROR_CODEregister - Monitor
LIFE_BITto detect communication loss - Use appropriate timeouts for all requests
Performance¶
- Use appropriate polling intervals (50-100ms recommended)
- Implement proper handshake detection (wait for toggle changes, don't just check values)
- Keep register blocks consecutive for efficient communication