Function Block (FB) for Motor Control Logic

How to Create a user-defined Function Block (FB) for Motor Control Logic in Programmable Logic Controllers (PLC).

Function Block Motor Logic

There is one industrial motor and we need to control with FB block logic. Also, consider all interlock like a trip signal, maintenance, etc. Write the PLC program for this logic and configuration.

Function Block Diagram Motor Logic

For this example, we will use the Function block (FB) for motor control logic. Normally START and STOP buttons are used for motor control.

With FBs, the input, output, in/out, and static variables are saved in the instance DB specified in the call statement. The temporary variables are stored in the L stack.

Function block (FB) logic is used for multiple logic applications. For example, there are two industrial motors in the application. Both the motors are operated in the same logic independently. So we will write logic in FB block for one motor function and use the same for other motors as well. (call FB 1 and FB 2 in OB 1).

List of Inputs:-

  • I0.0:- Industrial Motor 1 Start
  • I0.1:- Industrial Motor 1 Stop
  • I0.2:- Industrial Motor 1 Trip
  • I0.3: Maintenance lamp Reset

List of Outputs:-

  • Q0.0:- Industrial Motor On
  • Q0.1:- Fault lamp
  • Q0.2:- Maintenance lamp


  • M0.0:- Motor on command
  • MW10:- Counter value


Organization block for industrial motor 1 logic. FB 1 is called in OB 1.

Here we are using FB1 block only for one motor control. Generally, FB blocks can be called multiple times in a logic depends on the number of motors to control.

If there are more motors in the application, FB 1 can be called for other motors also, no need to write logic every time.

Function Blocks in PLC

Function Block (FB1):-

Function block for logic. In this block, we have declared all temporary variables for motor logic.

The below-shown ladder logic will be added in our function block FB1, so every time when you call the function block (FB1), it will perform the function as written in the ladder logic.

You can also compare the inputs & outputs labels in the function block (FB1)with respect to the below ladder logic. The function block (FB1) will have the function, inputs, outputs based on this ladder logic only.

Network 1:-

In this network, motor START/STOP logic is used as per normal motor control logic.

Motor 1 can be started by pressing the START BUTTON (I0.0) and sopped by pressing STOP PB (I0.1).

If trip input (I0.2) triggered, motor ON command (M0.0) will be OFF and motor will be stopped.

Motor Function Block Logic

Network 2:-

When motor command ON, industrial motor (Q0.0) will be ON (Started).

Motor ON Command

Network 3:-

If the Trip command (I0.3) is activated, the fault lamp (Q0.1) will be ON.

Motor Trip Indication Logic

Network 4:-

In this network, counter logic is used for a maintenance lamp. If START BUTTON (I0.0) is pressed for 50 times, the maintenance lamp (Q0.2) will be ON. The counter will be reset after 50 counts.

Lamp Counter Logic

Network 5:-

The maintenance lamp (Q0.2) can be reset by pressing MAINTENANCE RESET BUTTON (I0.4).

Lamp Reset Logic in PLC

As the above explanation, you can write the logic for other motors also. Call FB in OB1 for the second motor and configure the inputs and outputs.

Note:- This is the simple example for FB function used for motor logic in PLC, we can use this concept in other examples also.

Author: Bhavesh

If you liked this article, then please subscribe to our YouTube Channel for PLC and SCADA video tutorials.

You can also follow us on Facebook and Twitter to receive daily updates.

Read Next:

Types of PLC Programming

Motor Control Circuit Wiring

Permissive for Motor Control

What is PID Controller?

Fieldbus Logic and Configuration

Don't Miss Our Updates
Be the first to get exclusive content straight to your email.
We promise not to spam you. You can unsubscribe at any time.
Invalid email address

2 thoughts on “Function Block (FB) for Motor Control Logic”

  1. Dear Sir,

    Thanks for your wonderful article. There should be a Print button for Printing in a proper Format so that Printout can be taken .

    If we take printout many unwanted ads , No proper formatting comes.
    Plz look into the suggestion if feasible.

  2. this is wrong program . the counter will not count up to 50 , cuz every time you press the start switch mw10 will store directly 50 and it will reset the counter again .


Leave a Comment