0
0
FreertosHow-ToBeginner · 4 min read

How to Select PLC for Project: Key Factors and Examples

To select a PLC for your project, first assess your input/output (I/O) requirements, communication protocols, and environmental conditions. Then choose a PLC model that matches these needs with enough capacity and reliability.
📐

Syntax

When selecting a PLC, consider these key parts:

  • I/O Requirements: Number and type of inputs and outputs needed.
  • Communication: Protocols like Ethernet/IP, Modbus, or Profibus.
  • Environment: Conditions like temperature, humidity, and vibration.
  • Processing Power: Speed and memory for your control logic.
  • Expandability: Ability to add modules later.
text
PLC Selection Criteria:
- I/O count and type
- Communication protocols
- Environmental ratings
- Processing speed and memory
- Expandability options
💻

Example

This example shows how to choose a PLC for a small packaging machine that needs 20 digital inputs, 15 digital outputs, Ethernet communication, and will operate in a factory environment.

python
project_requirements = {
    "digital_inputs": 20,
    "digital_outputs": 15,
    "communication": "Ethernet/IP",
    "environment": "factory",
    "expandability": true
}

available_plcs = [
    {"model": "PLC-A", "max_inputs": 24, "max_outputs": 16, "comm": ["Ethernet/IP", "Modbus"], "env_rating": "industrial", "expandable": true},
    {"model": "PLC-B", "max_inputs": 16, "max_outputs": 12, "comm": ["Modbus"], "env_rating": "industrial", "expandable": false},
    {"model": "PLC-C", "max_inputs": 32, "max_outputs": 24, "comm": ["Ethernet/IP"], "env_rating": "industrial", "expandable": true}
]

selected_plcs = []
for plc in available_plcs:
    if (plc["max_inputs"] >= project_requirements["digital_inputs"] and
        plc["max_outputs"] >= project_requirements["digital_outputs"] and
        project_requirements["communication"] in plc["comm"] and
        plc["env_rating"] == "industrial" and
        (not project_requirements["expandability"] or plc["expandable"])):
        selected_plcs.append(plc["model"])

print("Suitable PLC models:", selected_plcs)
Output
Suitable PLC models: ['PLC-A', 'PLC-C']
⚠️

Common Pitfalls

Common mistakes when selecting a PLC include:

  • Choosing a PLC with insufficient I/O capacity, causing costly upgrades later.
  • Ignoring communication protocol compatibility with existing equipment.
  • Overlooking environmental conditions, leading to hardware failure.
  • Not planning for future expansion needs.
python
Wrong approach:
# Selecting PLC without checking communication
plc = {"model": "PLC-B", "comm": ["Modbus"]}
project_comm = "Ethernet/IP"
if project_comm in plc["comm"]:
    print("Compatible")
else:
    print("Not compatible")

# Output:
# Not compatible

Right approach:
if project_comm in plc["comm"]:
    print("Compatible")
else:
    print("Not compatible")
Output
Not compatible
📊

Quick Reference

FactorWhat to CheckWhy It Matters
I/O RequirementsNumber and type of inputs/outputsEnsures PLC can handle all sensors and actuators
CommunicationSupported protocolsAllows PLC to connect with other devices
EnvironmentTemperature, humidity, dustPrevents hardware damage and failures
Processing PowerCPU speed and memoryHandles control logic efficiently
ExpandabilityAbility to add modulesSupports future project growth

Key Takeaways

Always match PLC I/O capacity to your project needs with some margin.
Verify communication protocols to ensure device compatibility.
Consider environmental ratings to avoid hardware failures.
Plan for expandability to save costs on future upgrades.
Test PLC features against your control logic complexity.