Skip to content

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

    Learn More

  • PLC Application

    Complete specification for PLC-controlled execution and pick & place operations

    Learn More


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:

  1. PLC writes parameters
  2. PLC toggles request bit (0 → 1 or 1 → 0)
  3. Pick[+] detects the change and processes the request
  4. Pick[+] toggles acknowledgment flag
  5. 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

  1. Configure PLC in Pick[+]:

  2. Implement PLC Program:

  3. Test Communication:

    • Monitor the LIFE_BIT register (should toggle every ~1 second)
    • Check ROUTINE_STATUS to verify correct mode
    • Verify ERROR_CODE remains 0 during operation

Best Practices

Safety

  • Implement proper error handling for ERROR_CODE register
  • Monitor LIFE_BIT to 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