The ALLEN_BRADLEY route enables communication with Rockwell Automation PLCs using native protocols. It supports ControlLogix, CompactLogix, PLC5, SLC500, Micro800, and MicroLogix families with TAG-based addressing and bidirectional communication.
Allen-Bradley PLCs use tag-based programming. Access PLC tags directly by their symbolic names for the most intuitive configuration.
DEFINE ROUTE AllenBradleyPLC WITH TYPE ALLEN_BRADLEY ADD ALLEN_BRADLEY_CONFIG WITH IP "192.168.1.100" WITH DEVICE_FAMILY '0' WITH SLOT '0' ADD MAPPING ProcessData WITH EVERY 500 MILLISECONDS ADD TAG Temperature WITH ADDRESS "MainProgram:Temperature" WITH DATA_TYPE "REAL" WITH SOURCE_TOPIC "plc/temperature"
ADD TAG MotorSpeed WITH ADDRESS "Motor1.ActualSpeed" WITH ADDRESS_TYPE "SYMBOL" WITH DATA_TYPE "REAL" WITH SOURCE_TOPIC "plc/motor1/speed" WITH SCALING "1" WITH OFFSET "0" WITH UNIT "RPM" WITH DECIMAL_PLACES "2" WITH MIN_VALUE "0" WITH MAX_VALUE "3600" WITH DEADBAND "10" WITH PUBLISH_MODE "JSON" WITH WRITABLE "false" WITH DESCRIPTION "Motor 1 actual speed in RPM"
DEFINE ROUTE ControlLogixBasic WITH TYPE ALLEN_BRADLEY ADD ALLEN_BRADLEY_CONFIG WITH IP "192.168.1.100" WITH DEVICE_FAMILY '0' WITH SLOT '0' ADD MAPPING ProcessTags WITH EVERY 500 MILLISECONDS ADD TAG Temperature WITH ADDRESS "Temperature" WITH DATA_TYPE "REAL" WITH SOURCE_TOPIC "plc/temperature" WITH UNIT "°F" ADD TAG Pressure WITH ADDRESS "Pressure" WITH DATA_TYPE "REAL" WITH SOURCE_TOPIC "plc/pressure" WITH UNIT "PSI" ADD TAG Running WITH ADDRESS "SystemRunning" WITH DATA_TYPE "BOOL" WITH SOURCE_TOPIC "plc/running"
Access tags within specific programs:
Copy
Ask AI
DEFINE ROUTE ProgramTags WITH TYPE ALLEN_BRADLEY ADD ALLEN_BRADLEY_CONFIG WITH IP "192.168.1.100" WITH DEVICE_FAMILY '0' WITH SLOT '0' ADD MAPPING MainProgramTags WITH EVERY 500 MILLISECONDS ADD TAG Counter WITH ADDRESS "MainProgram:ProductionCounter" WITH DATA_TYPE "DINT" WITH SOURCE_TOPIC "plc/production/count" ADD TAG CycleTime WITH ADDRESS "MainProgram:CycleTimeMs" WITH DATA_TYPE "DINT" WITH SOURCE_TOPIC "plc/production/cycletime" WITH UNIT "ms" ADD TAG BatchNumber WITH ADDRESS "MainProgram:CurrentBatch" WITH DATA_TYPE "STRING" WITH SOURCE_TOPIC "plc/production/batch"
Access User Defined Type (UDT) members:
Copy
Ask AI
DEFINE ROUTE MotorControl WITH TYPE ALLEN_BRADLEY ADD ALLEN_BRADLEY_CONFIG WITH IP "192.168.1.100" WITH DEVICE_FAMILY '0' WITH SLOT '0' ADD MAPPING Motor1Data WITH EVERY 200 MILLISECONDS ADD TAG Speed WITH ADDRESS "Motor1.ActualSpeed" WITH DATA_TYPE "REAL" WITH SOURCE_TOPIC "motor1/speed" WITH UNIT "RPM" ADD TAG Current WITH ADDRESS "Motor1.Current" WITH DATA_TYPE "REAL" WITH SOURCE_TOPIC "motor1/current" WITH UNIT "A" ADD TAG Running WITH ADDRESS "Motor1.Running" WITH DATA_TYPE "BOOL" WITH SOURCE_TOPIC "motor1/running" ADD TAG Faulted WITH ADDRESS "Motor1.Faulted" WITH DATA_TYPE "BOOL" WITH SOURCE_TOPIC "motor1/faulted" ADD TAG SpeedCommand WITH ADDRESS "Motor1.SpeedCmd" WITH DATA_TYPE "REAL" WITH SOURCE_TOPIC "motor1/speed/cmd" WITH WRITABLE "true" WITH DESTINATION_TOPIC "motor1/speed/set"
Read array elements:
Copy
Ask AI
DEFINE ROUTE ArrayData WITH TYPE ALLEN_BRADLEY ADD ALLEN_BRADLEY_CONFIG WITH IP "192.168.1.100" WITH DEVICE_FAMILY '0' WITH SLOT '0' ADD MAPPING SensorArrays WITH EVERY 1 SECOND ADD TAG Temp0 WITH ADDRESS "Temperatures[0]" WITH DATA_TYPE "REAL" WITH SOURCE_TOPIC "sensors/temp/0" ADD TAG Temp1 WITH ADDRESS "Temperatures[1]" WITH DATA_TYPE "REAL" WITH SOURCE_TOPIC "sensors/temp/1" ADD TAG Temp2 WITH ADDRESS "Temperatures[2]" WITH DATA_TYPE "REAL" WITH SOURCE_TOPIC "sensors/temp/2" ADD TAG Status0 WITH ADDRESS "StatusBits[0]" WITH DATA_TYPE "BOOL" WITH SOURCE_TOPIC "status/bit/0"
Read values and write setpoints:
Copy
Ask AI
DEFINE ROUTE ControlLoop WITH TYPE ALLEN_BRADLEY ADD ALLEN_BRADLEY_CONFIG WITH IP "192.168.1.100" WITH DEVICE_FAMILY '0' WITH SLOT '0' ADD MAPPING TempControl WITH EVERY 200 MILLISECONDS ADD TAG PV WITH ADDRESS "TIC100.PV" WITH DATA_TYPE "REAL" WITH SOURCE_TOPIC "control/tic100/pv" WITH UNIT "°F" WITH PUBLISH_MODE "JSON" ADD TAG SP WITH ADDRESS "TIC100.SP" WITH DATA_TYPE "REAL" WITH SOURCE_TOPIC "control/tic100/sp" WITH UNIT "°F" WITH WRITABLE "true" WITH DESTINATION_TOPIC "control/tic100/sp/set" WITH MIN_VALUE "32" WITH MAX_VALUE "212" ADD TAG Output WITH ADDRESS "TIC100.OUT" WITH DATA_TYPE "REAL" WITH SOURCE_TOPIC "control/tic100/output" WITH UNIT "%" ADD TAG Auto WITH ADDRESS "TIC100.Auto" WITH DATA_TYPE "BOOL" WITH SOURCE_TOPIC "control/tic100/auto" WITH WRITABLE "true" WITH DESTINATION_TOPIC "control/tic100/auto/set"
CompactLogix typically in slot 0:
Copy
Ask AI
DEFINE ROUTE CompactLogix WITH TYPE ALLEN_BRADLEY ADD ALLEN_BRADLEY_CONFIG WITH IP "192.168.1.50" WITH DEVICE_FAMILY '0' WITH SLOT '0' WITH TIMEOUT '5000' ADD MAPPING IOData WITH EVERY 100 MILLISECONDS ADD TAG DigitalInputs WITH ADDRESS "Local:1:I.Data" WITH DATA_TYPE "DINT" WITH SOURCE_TOPIC "compactlogix/di" ADD TAG DigitalOutputs WITH ADDRESS "Local:2:O.Data" WITH DATA_TYPE "DINT" WITH SOURCE_TOPIC "compactlogix/do" WITH WRITABLE "true" WITH DESTINATION_TOPIC "compactlogix/do/set"