Skip to content

Machine data

PLC data collection: how to read data from Siemens, Allen-Bradley, Mitsubishi and Omron PLCs

How PLC data collection works: protocols for Siemens S7, Allen-Bradley, Mitsubishi and Omron, OPC UA and Modbus options, data types and read-only access.

Volkan Alkılıç ·

  • Siemens
  • Anadolu Isuzu
  • BSH
  • Tofaş
  • Toyotetsu
  • Martur
  • Turkcell
  • Vodafone
  • Doğadan
  • Pakmaya
  • Bross
  • Abdi İbrahim
  • Nobel İlaç
  • Plastimak
  • Dalgıç Kalıp
  • Barbaros Motor
  • Magneti Marelli
  • Rözmaş
  • Sanel
PLC modules and tidy wiring in an open automation cabinet

PLC data collection means reading data from the PLC over its Ethernet or serial port, in read-only mode, using a protocol the brand supports. The most common methods are the S7 protocol or OPC UA on Siemens, EtherNet/IP on Allen-Bradley, the MC protocol (SLMP) on Mitsubishi and FINS on Omron; Modbus TCP is a shared option across many brands. Configured correctly, data can be read without changing the PLC program and without stopping production; the PLC keeps running as before.

This guide covers how to read data from Siemens, Allen-Bradley, Mitsubishi and Omron PLCs, which data to read, common data-type mistakes and the options for older machines. The same job is also called PLC data acquisition or PLC data logging.

Why collect data from the PLC?

The machine’s running state, part counts, active alarms, temperature and pressure can all be read from the PLC. When this information is recorded by hand, it arrives late and incomplete; micro-stops and speed losses are often never written on the form. Data read automatically from the PLC is the basis for:

Which data do you read?

A PLC can hold thousands of addresses; you do not need them all. The work starts with a signal list: which data will be read, what its address in the PLC is, and what its data type and unit are. A typical signal list has these groups:

GroupExample signalsUsed for
Machine stateRunning, stopped, faulted, auto/manual modeDowntime tracking, availability
CountersTotal count, good count, reject count, cycle countPerformance, quality, work-order tracking
AlarmsActive alarm code or alarm bitsFinding the downtime reason automatically
Process valuesTemperature, pressure, speed, current, cycle timeProcess monitoring, predictive maintenance
Product and recipeActive product code, recipe number, mold numberThe right ideal cycle time, traceability

The most reliable way to build the signal list is to go through the addresses and variables in the machine’s automation project. If there is no project, a backup of the PLC program is taken and the addresses are worked out from it. Every signal found is then checked at the machine.

Example signal list An example signal list for a Siemens S7 machine. Columns: signal, address, data type, unit, used for. Rows: machine running and machine faulted (BOOL status bits, downtime tracking), active alarm code (INT, downtime reason), total count and reject count (DINT counters, performance and quality), mold temperature (INT scaled by ten, so 253 means 25.3 °C), active product code (INT, traceability). The values are examples. EXAMPLE SIGNAL LIST · SIEMENS S7 SIGNAL ADDRESS DATA TYPE UNIT USED FOR Machine running DB10.DBX0.0 BOOL status bit Downtime tracking Machine faulted DB10.DBX0.1 BOOL status bit Downtime tracking Active alarm code DB10.DBW2 INT code Downtime reason Total count DB10.DBD4 DINT pieces Performance, OEE Reject count DB10.DBD8 DINT pieces Quality Mold temperature DB10.DBW12 INT °C × 10 Process monitoring Active product code DB10.DBW14 INT code Traceability Example values. Long-running counters are kept as DINT; scaled values list their factor (for mold temperature, 253 means 25.3 °C). Every signal is checked at the machine.
An example signal list. Each row ties one piece of data to its PLC address, data type and unit, and states what it will be used for.
Use this diagram

You may use this diagram free of charge on your site, in training or in presentations, as long as you credit and link the source. The code below does both.

Download SVG

Download the free PLC signal list template (Excel) to prepare your own list.

How to read data from Siemens, Allen-Bradley, Mitsubishi and Omron PLCs

Brand and seriesCommon methodWatch out for
Siemens S7-300 / S7-400S7 protocol (S7comm), over Ethernet or a CP moduleAddresses are read as absolute (DB, M, I, Q)
Siemens S7-1200 / S7-1500S7 protocol (PUT/GET) or the built-in OPC UA serverPUT/GET permission and optimized block access settings
Allen-Bradley ControlLogix / CompactLogixEtherNet/IP (CIP), reading by tag nameTag names and program vs controller scope
Allen-Bradley MicroLogix / SLC 500PCCC (over EtherNet/IP or DF1 serial)File-based addressing (such as N7, F8)
Mitsubishi iQ-R / iQ-F / Q / LMC protocol (MELSEC Communication) or SLMPOpening the communication port in the Ethernet settings
Omron CJ / CS / CPFINS (UDP or TCP)Node numbers and memory areas (D, W, H)
Omron NJ / NXTag access over EtherNet/IP, OPC UA on some modelsVariables must be published to the network
Many brands and devicesModbus TCP or Modbus RTURegister map and byte/word order

Siemens S7

The most common way to read data from a Siemens PLC is to access data blocks (DB) and memory areas over the S7 protocol. On the S7-300 and S7-400 this works directly. On the newer Siemens S7 generation, the S7-1200 and S7-1500, two settings matter:

  • PUT/GET access: In the device settings, “Permit access with PUT/GET communication from remote partner” must be enabled.
  • Optimized block access: If optimized access is enabled on the data block to be read, it cannot be read by absolute address (such as DB10.DBD4). Either optimized access is turned off for that block, or a method with symbolic access is used.

These two settings do not change the machine logic, but the new configuration has to be downloaded to the PLC. Changes should therefore be planned with the automation team and applied during a planned stop.

The S7-1500 and S7-1200 models with newer firmware also have a built-in OPC UA server. With it, data can be reached by variable name, including variables in optimized blocks. The OPC UA server needs a Siemens runtime licence, and the variables to expose are defined in TIA Portal.

Allen-Bradley (Rockwell)

On Allen-Bradley ControlLogix and CompactLogix PLCs, data is read over EtherNet/IP with the CIP protocol, directly by tag name. No separate address table is needed; a tag name such as “Line1_GoodCount” is enough. Reading requires no change to the PLC program. Whether a tag is defined at controller scope or program scope determines the path used to read it.

On the older MicroLogix and SLC 500 families, addressing is file-based (N7:0, F8:1 and so on) and reads are done with PCCC commands over Ethernet or a DF1 serial link.

Mitsubishi

On Mitsubishi MELSEC PLCs (iQ-R, iQ-F, Q and L series), the standard route is the MC protocol or the compatible SLMP. Devices such as D (data registers), M (internal relays) and X/Y (inputs/outputs) are read with it. Before reading, the communication port for the external connection must be opened in the PLC’s Ethernet settings. This parameter change is made in GX Works.

Omron

On Omron CJ, CS and CP series, the most common method is the FINS protocol; memory areas such as DM (D), W and H are read over UDP or TCP. Every device on the network has a FINS node number, and these numbers must not clash. On the newer NJ and NX series, variables can be read by tag name over EtherNet/IP; the variable has to be published to the network for that. Some NJ/NX models also offer a built-in OPC UA server.

Modbus TCP and RTU

Modbus is the most widespread brand-independent industrial protocol. Many PLCs, energy analyzers, drives and sensors speak Modbus TCP (Ethernet) or Modbus RTU (RS-485 serial). In Modbus, data is read by register number, so you need the device’s register map. On PLCs the Modbus server function often has to be enabled separately, and you have to define which data is written to which register.

OPC UA or the PLC’s own protocol?

The PLC’s own protocol (S7, CIP, MC, FINS)OPC UA
Needed on the PLC sideUsually a small communication settingBuilt-in server (and its licence) or an external OPC UA server
AddressingAddress-based on most brands; tag-based on Allen-Bradley and Omron NJ/NXBrowsable structure with names and types
SecurityVaries by protocol; most have no encryptionAuthentication and encryption support
When it fitsOlder, mixed-brand machine fleets, a quick startNewer PLCs, when a standard and secure connection is needed

The two are not rivals. In one plant, older machines can be read with their own protocols and newer machines over OPC UA. The collected data is then mapped to a common data model on a single platform.

Common data-type mistakes

For the data read from the PLC to be interpreted correctly, its data type has to be defined correctly. The mistakes we see most on site:

  • Overflowing counters: A 16-bit INT counter resets or turns negative when it reaches its limit. Total count calculations must account for that overflow; DINT is preferred for counters that keep rising for a long time.
  • Wrong decimals: A REAL temperature read as an INT gives a meaningless number. Some PLCs store the value as a scaled integer (for example 253, which is actually 25.3 °C), and you need to know the scale factor.
  • Byte and word order: In Modbus especially, 32-bit values are split across two registers. If you do not know which order the device uses, the values come out completely wrong.
  • Bit addresses: Reading a bit inside a word (such as the “machine faulted” bit) from the wrong address silently produces wrong downtime records.

That is why every signal is checked against the real value at the machine after the first read.

Older machines and machines without communication

Not every machine has a newer PLC with an Ethernet connection. For older machines there are three routes:

  1. Serial communication: Serial protocols such as MPI/PPI on the S7-200 and S7-300 or DF1 on older Allen-Bradley are brought onto Ethernet with a protocol converter or gateway.
  2. Add-on communication module: An Ethernet or Modbus module can be added to some PLCs.
  3. Reading digital signals: On machines with no communication at all, a “running” signal, a count pulse and a fault signal are read with a separate input module. For downtime tracking and part counting that is often enough.

Safe data collection: without affecting production

The basic rule when reading PLC data is that the machine’s operation must not be affected in any way:

  • Read-only: The data collection system does not write to the PLC; it only reads. If writing is needed (for example sending the work-order number to the machine), it is designed separately and tested with the automation team.
  • Polling rate: Not every signal needs to be read every millisecond. For states and counters, a rate in the order of seconds is usually enough. Polling more often than needed adds communication load on the PLC.
  • Number of connections: A PLC accepts a limited number of simultaneous connections. Instead of every screen and application connecting to the PLC separately, data should be collected at one point and distributed from there.
  • Network separation: The machine network and the office network are kept apart, and the data collection software acts as a controlled bridge between them. For this, data collection runs on an edge server on site, close to the machines.
  • No data loss during outages: When the network connection drops, data must be stored locally and forwarded once the connection is back. Otherwise reports end up with missing records.

How VOLSOFT collects PLC data

Our machine data collection projects start with the signal list: which data is read from which machine, and for what purpose. Each PLC is then connected read-only, with its own protocol or with OPC UA, and every signal is checked at the machine. The data is collected on the Proxus platform on a server in the plant, mapped to the same model and used for OEE, downtime tracking, MES and ERP integration. We do not touch the PLC program; we plan the necessary communication settings together with the customer’s automation team.

PLC data collection architecture Four columns from left to right. Sources: Siemens S7, Allen-Bradley, Mitsubishi, Omron and Modbus devices. Protocols: S7 and OPC UA, EtherNet/IP (CIP), MC protocol and SLMP, FINS and EtherNet/IP, Modbus TCP and RTU. All of them meet in the highlighted collection layer: the Proxus edge server reads only, is the single connection point, buffers data during outages and maps it to a common data model. From there data goes to OEE and downtime tracking, MES and dashboards, and the ERP. SOURCE PROTOCOL COLLECTION USE Siemens S7 Allen-Bradley Mitsubishi Omron Modbus devices S7 · OPC UA EtherNet/IP (CIP) MC · SLMP FINS · EtherNet/IP Modbus TCP / RTU DATA COLLECTION Proxus · edge server read-only one connection point buffers on outage common data model OEE downtime tracking MES dashboards ERP actual production
Each PLC is connected read-only with its own protocol or OPC UA. Data is collected at one point, mapped to a common model and distributed from there to OEE, MES and the ERP.
Use this diagram

You may use this diagram free of charge on your site, in training or in presentations, as long as you credit and link the source. The code below does both.

Download SVG

From the field: what we often see when connecting PLCs

  • The signal list is half the project. In a plant that has the automation project at hand, the signal list comes together quickly. Without a project, the addresses are worked out from a PLC backup and every signal is checked by watching the machine; skipping this step comes back weeks later as a wrong counter or an inverted status bit.
  • Meaningful names instead of raw addresses. We model collected data not with addresses like DB10.DBW4 or D200, but with meaningful names in a site, line, machine and signal hierarchy. That way data from different PLC brands can sit side by side in the same report.
  • Read-only and buffering by default. We do not touch the PLC program when collecting data. Every connection runs through Proxus; when the network or server drops, data is buffered on site and forwarded when the connection returns.
  • From our projects: At Anadolu Isuzu, data was collected from production equipment and energy systems; at Bross, the machine data collection and reporting system we set up was used to track waiting times and delays in production.

Conclusion

Reading data from a PLC is work that can be done without affecting production, given the right protocol and the right signal list. The S7 protocol or OPC UA on Siemens, EtherNet/IP on Allen-Bradley, the MC protocol on Mitsubishi and FINS on Omron are the most common routes; Modbus is the shared, brand-independent language. The real effort is in settling which data to read and checking every signal against its real value at the machine. Once that foundation is solid, OEE, downtime tracking and MES all run reliably on the same data.

Related guides: What is a production tracking system, Predictive maintenance.

If you want to talk through how to get data from the PLCs in your machine fleet, talk to one of our engineers.

Frequently asked questions

Common questions

Do you have to change the PLC program to collect data from it?

In most cases, no. Data is read through the PLC's communication port in read-only mode, without touching the machine logic. Some models need a configuration change, such as allowing remote access or enabling an Ethernet port; that is planned with the automation team and done during a planned stop.

What is the easiest way to get data out of a PLC?

Use data collection software that speaks the PLC's own protocol: the S7 protocol for Siemens, EtherNet/IP for Allen-Bradley, the MC protocol (SLMP) for Mitsubishi and FINS for Omron. If the PLC has a built-in OPC UA server, OPC UA is also a good option. Which one fits depends on the PLC model and the network.

What are the common PLC data types?

The most common are BOOL (on/off bit), INT and DINT (integers), REAL (floating point) and STRING (text). Each signal's type must be defined correctly when collecting data; otherwise a counter overflows or a decimal temperature is read as a meaningless number.

Can PLC data be logged to Excel?

Yes. Collected data can be written to a database and pulled into Excel or a reporting tool from there. Connecting Excel straight to the PLC, however, loses data whenever the connection drops and does not scale to several machines. The lasting solution is a data collection system that reads and stores PLC data continuously.

Can you collect data from old machines with no communication port?

Yes. Older PLCs with a serial port are connected through protocol converters. On machines with no communication at all, a few digital signals such as running, count pulse and fault are read with a separate input module. For downtime and count tracking those signals are often enough.

Next step

Let’s turn your goal into a clear engineering scope.

Tell us about your plant, your machines and your goal. An integration engineer will set up a discovery call with you.

Awards and references

The integration team manufacturers trust

See our references →