Tag Archives: plc examples with ladder logic

Productivity 1000 PLC to Modbus TCP RTU Remote IO Controller BX-MBIO

The Productivity 1000 PLC can communicate to a remote I/O (input and output) controller modules using the Modbus protocol for communications. The BX-MBIO provides both Modbus RTU and Modbus TCP interfaces. Modbus RTU is a serial communication and Modbus TCP is an Ethernet communication. Modbus RTU is supported over an RS-485 serial connection. Modbus TCP is supported over an Ethernet connection. They function as listening/replying devices (slave, server) and can connect with any mastering (master, client) device that communicates using the Modbus protocol.
Previously we looked at the BX-MBIO Modbus RTU TCP Remote IO Controller wiring and configuration.
Modbus RTU TCP Remote IO Controller BX-MBIO
BX-MBIO Hardware Video
BX-MBIO Powering and Configuring Video

We will connect the Productivity 1000 PLC to the Modbus remote IO. This will be done using the Modbus TCP and Modbus RTU protocol. Ethernet and serial RS485 communication to the BX-MBIO unit will be the media.
The BX-MBIO remote I/O expansion units feature the following:
• RJ45 Ethernet port for communications via Modbus TCP
• RS485 serial port for communications via Modbus RTU
• Supports up to 8 additional Expansion Modules (Add the discrete or analog I/O you require)
• AC and DC powered units available
• AC powered units include an integral 24VDC auxiliary output power supply
• Power connector and serial port connector included
Let’s get started. Keep on Reading!

Productivity 1000 Series PLC PID Ramp Soak Instruction

PID Ramp Soak Instruction
The purpose of a ramp soak instruction is to make gradual, controlled changes in temperature (Ramp), followed by a temperature hold (Soak) period.
We will be using our Proportional-Integral-Derivative PID Instruction that we looked at last time to apply the ramp/soak instruction.

Using the immersion heater in a cup of water to keep the temperature at a constant value, we will be adjusting the profile of the temperature as we increase the set point (Ramp) and hold that set point for a predetermined time. (Soak)

We will be modifying our existing program from our PID loop instruction. Let’s get started. Continue Reading!

Productivity 1000 Series PLC PID Instruction

PID Loop (PID) Instruction (Auto Tuning)
A Proportional-Integral-Derivative algorithm is a generic Control Loop feedback formula widely used in industrial control systems. A PID algorithm attempts to correct the Error between a measured process variable and the desired setpoint by calculating and then outputting a corrective action that can adjust the process accordingly and rapidly, to keep the Error to a minimum.

The following links will explain the PID instruction.
We will be using an immersion heater in a cup of water to keep the temperature at a constant value. Using the Productivity Suite software we will perform an autotune on our PID instruction.

Our immersion heater will be controlled through a relay using time proportional control from our PID output. Let’s get started. Continue Reading!

Productivity 1000 Series PLC AdvancedHMI Modbus TCP Ethernet Communication

Advanced HMI is a powerful, adaptable HMI/SCADA (Supervisory Control and Data Acquisition) development package that takes advantage of Visual Studio. There is no coding required and you can simply drag and drop items onto the page. The best thing is that the software is free. We will look at using AdvancedHMI with the Productivity 1000 Series PLC.

Our sample Productivity 1000 PLC program will display a digital panel meter and a gauge of a value in the PLC. Stop and start momentary pushbuttons on the HMI will allow this number to increase or stop. An indication will turn green when the number is increasing and red when it has stopped. The AdvancedHMI package will communicate Modbus TCP over Ethernet to the Productivity 1000 PLC. We will be able to monitor our process via the AdvancedHMI window. Let’s get started.

Continue Reading!

Productivity 1000 Series PLC Firmware Update

Firmware is usually PLC operating system code that is written into a read only memory. The BIOS (Basic Input Output System) of a PC (personal computer) is a good example of firmware. It provides the low level interface between the hardware and software. The firmware for the productivity series of PLC’s must be downloaded separately from the programming software.

We will be updating our firmware of our Productivity 1000 PLC from to the latest version Let’s get started. Continue Reading!

Productivity 1000 Series PLC Modbus TCP Ethernet Communication

The productivity series of PLCs comes with 4 built-in communication ports for easy connectivity to your PC or various industrial networks. Ethernet protocols like Modbus TCP can be utilized with the RJ45 port on this PLC. Modbus TCP is an open (published) protocol that uses the Server (Master) / Client (Slave) architecture. It’s a very common protocol used in industrial automation controls.

We will be using the RJ45 (Ethernet) port to communicate to a Click PLC. Modbus TCP will be the protocol used on this Ethernet communication media. The Productivity 1000 PLC will be the server and the Click PLC will be the client. We will be creating a network between the two PLC units. A heartbeat will be used so if communications is lost, the server (slave) will know. The throughput time will be timed by using a small program in the Click PLC. You will soon see how the Productivity Series of PLC’s is the best way to handle communication to other devices. Let’s get started. Continue Reading!

PLC Programming Example – Pick and Place

We will apply the five steps to PLC program development to a pick and place robot example. The example will use a BRX PLC communicating to Factory IO (3D Software Simulator). Developing the PLC program is a process that can be clearly defined. In our series on the five steps to PLC program development we have done some similar practical examples.
Five Steps to PLC Program Development – Press
PLC Programming Examples:
Process Mixer
Shift Register (Conveyor Reject)
Paint Spraying
Delay Starting of 7 Motors

Define the task: (1)
Watch the sequence of operation video below.
Watch on YouTube : PLC Programming Example – Pick and Place Testing
Continue Reading!

PLC Programming Example – Delay Starting of 7 Motors

We will look at a PLC programming example of delaying the start of 7 motors. Each motor will be on a switch that the operator can select at any time. The motor outputs should have a 5 second delay between the outputs coming on.

This question originally came from PLCTalk.net. An original solution to the problem came from Peter Steinhoff. His solution is what we will be presenting. It is simple and straight forward.

We will be using the Do-more Designer software which comes with a simulator. This fully functional program is offered free of charge at automation directKeep on Reading!

What Everybody Ought to Know About PLC Programming Languages

PLC programs are normally written in a special application on a personal computer, then downloaded to the PLC. This downloaded program is similar to compiled code to keep the program efficient. The program is stored in the PLC either in battery-backed-up RAM or some other non-volatile flash memory.

Albert Einstein said “The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking” PLC programming languages have evolved to both adapt and change the way we program these units. We will look at all five programming languages as defined by the IEC 61131-3 Standard.

  • Structured Text (ST)
  • Function Block Diagram (FBD)
  • Sequential Function Chart (SFC)
  • Instruction List (IL)
  • Ladder Diagram (LD)

Not all of these programmable controller languages are available in every PLC. Ladder logic programming is by far the largest percentage of use in PLC’s today. Fundamental concepts of PLC programming are common to all manufacturers. Differences in I/O addressing, memory organization, and instruction sets mean that PLC programs are never interchangeable between different makers. Even within the same product line of a single manufacturer, different models may not be directly compatible. This is true when looking at manufactures that private label other controllers.

Estimates are as high as 95% of installations use ladder logic programming in the programmable logic controller.

The PLC programming language that is used can be decided when you look at the following:

  • Maintenance and troubleshooting
  • Knowledge of language
  • Acceptance of the country, location, or individual plant
  • Application of the PLC
  • Ease of changing the PLC program

The actual programming of the PLC is the second last step in the development of programs. The five steps to PLC program development is a good method to follow before picking what programming language to use. As mentioned before the languages supported by each PLC may differ. Please refer to the types of programming that are available for your model and version of PLC.

Let’s quickly review some of the different programming languages for the PLC.

Structured Text (ST) is a high-level programming language that closely resembles Pascale programming. Statements are used to define what to execute.
ST MP50pro_st

Function Block Diagram (FBD) is a graphical representation of AND, NAND, OR, NOR gates, etc. that are drawn. It will describe the function between input and output variables.
FBD MP50pro_fbd

Sequential Function Chart (SFC) is like a flowchart of your program. It defines the steps through which your program moves.
SFC MP50pro_sfc

Instruction List (IL) can also be referred to as the mnemonic code and statement list. It contains simple instructions for looking at your variables.
IL MP50pro_il

Ladder Diagram (LD) is the most popular programming language for the PLC. It was written to mimic the mechanical relays in the panel that the programmable logic controller replaced. It has two vertical rails and a series of horizontal rungs between them. Controllers will usually scan from left to right top to bottom. The output of one rung is available for the next rung.
LD MP50pro_ladder

Note: All pictures from PLCopen IEC 61131 Basics

PLC programming methods are evolving. PLC Open is an organization that is defining new methods to take advantage of the latest computer innovations. They have defined the IL method of programming to XML (Extended Markup Language) which is used for web development. This, in my opinion, keeps moving the ideal method, to a standard way to program PLCs.

If you have any questions or need further information please contact me.
Thank you,

If you’re like most of my readers, you’re committed to learning about technology. Numbering systems used in PLC’s are not difficult to learn and understand. We will walk through the numbering systems used in PLCs. This includes Bits, Decimal, Hexadecimal, ASCII and Floating Point.

To get this free article, subscribe to my free email newsletter.

Use the information to inform other people how numbering systems work. Sign up now.

The ‘Robust Data Logging for Free’ eBook is also available as a free download. The link is included when you subscribe to ACC Automation.