Connect to a PLC (Tutorial) teaches you to:

  • Configure PLC communication driver (using ControlLogix example)
  • Map PLC addresses
  • Import tag database from PLC
  • Optimize communication performance

Prerequisites:

In this page:

   
Devices →  Tutorial | Concept | How-to Guide | Reference


Select Your PLC Protocol

Navigate to Devices → Protocols and choose protocol:


Configure Channel

Create Device Channel for ControlLogix:

  • Name: CLX_Channel
  • Protocol: AB ControlLogix
  • Connection: Ethernet/IP
  • Timeout: 5000ms
  • Max Connections: 16

Add Device Node

  1. Go to Devices → Nodes
  2. Create node:
    • Name: MainPLC
    • Channel: CLX_Channel
    • IP Address: 192.168.1.100
    • Slot: 0 (CPU slot)
    • Connection Path: Leave blank for local

Create Device Points

For manual configuration:

Controller Tag:

  • Name: Line_Speed
  • Node: MainPLC
  • Address: Line_Speed (tag name in PLC)
  • Data Type: REAL/Float
  • Scan Rate: 1000ms

Array Element:

  • Name: Alarm_Active_01
  • Address: Alarms[0]
  • Data Type: BOOL

UDT Member:

  • Name: Motor1_Running
  • Address: Motor1.Running
  • Data Type: BOOL

Import Tags from PLC

Method 1 - Online Import:

  1. Right-click node → Import Tags Online
  2. Connect to PLC
  3. Select tags to import
  4. Map to FrameworX namespace

Method 2 - Offline Import (L5X file):

  1. Export from RSLogix/Studio 5000
  2. In FrameworX: Tools → Import → ControlLogix L5X
  3. Browse to file
  4. Select tags and data types

Optimize Communication

  1. Create Scan Groups:
    • Fast: 100ms (critical values)
    • Normal: 1000ms (standard)
    • Slow: 10000ms (slower process variables)
  2. Assign Points to Groups:
    • Alarms → Fast
    • Process values → Normal
    • Configurations → Slow

Test Connection

  1. Start Runtime
  2. Check Devices → Monitor
  3. Verify:
    • Connection status green
    • Values updating
    • Scan time acceptable

Troubleshooting

IssueSolution
Cannot connectCheck firewall, ping PLC
Wrong slotVerify CPU slot number
Tags not foundCheck controller/program scope
Slow updatesReduce points per packet
Connection lostIncrease timeout value

PLC Specific Notes

Siemens S7:

  • Requires DB number and offset
  • Example: DB100.DBD10 (Double at offset 10)

Modbus:

  • Use register addresses
  • 40001 = Holding registers
  • 30001 = Input registers

OPC UA:

  • Browse available nodes
  • Use NodeId for address

Next Steps

  • CONNECT (Reference) - Explore list of connectors
  • [Define Alarms] - Add alarms to PLC values
  • [Operator UI Design] - Display PLC status

In this section...