Plc Ladder Simulator for Android Mobiles

|In industry the PLC is the most important automation device because of its role as the brain in running industrial processes. This brain uses a syntax to be able perform tasks in an orderly, sequential manner.

The native language of the PLC is called “ladder logic”. Ladder logic is graphical, in that it can be laid out in a form that resembles a ladder with rails and rungs. Ladder logic diagrams were developed originally from relay-circuit diagrams that were used for electronic circuitry prior to the advent of PLCs.

PLC Ladder Simulator is a simulator for the Android operating system with input and output objects that simulate the I/O ports of a real PLC. You can used PLC Ladder Simulator to create ladder-logic diagrams using components from the standard set used in these diagrams.

Picture Picture|



The Variable Manager

Picture The Variable Managers allows you to create and describe variables to be used in your ladder-logic diagram.

There are six types of variables:

  • Input: This variable type represents a physical input to a PLC like a push button or a switch.
  • Output: This variable type represents a physical output from the PLC, such as a relay coil or an indicator light.
  • Virtual: This variable type is used as an internal variable in the ladder-logic diagram. That is, it is not plugged in directly to an input or output channel of the PLC.
  • INT: This variable type represents a 16-bit signed decimal number (-32768 to 32767).
  • DINT: This variable type represents a 32-bit signed decimal number (-2147483648 to 2147483647).
  • REAL: This variable represents a 32-bit floating-point number.

The Ladder Editor

The Ladder Editor is used to create your ladder-logic diagrams. There are tools to add, edit, and delete objects. The component library has 44 objects, such as a rung, a sub-rung, a normally open contact, a normally closed contact, a counter, a timer, etc.

Every rung will have a coil as its output. When a rung is added, the coil is added automatically. You choose the output variable that will be associated with that coil.

To add a contact, you must first have added a rung or a sub-rung upon which to add that contact. After indicating that you want to add a contact, you touch the rung or sub-rung to which you want to add it.

PLC I/O Interface

The PLC I/O Interface appears when the ladder-logic diagram is simulated on your Android device. The ladder-logic diagram appears on the upper part of the screen, the PLC I/O Interface below it. It has in its upper part indicator lights that represent the PLCs output coils. They turn yellow when the associated coil is high. Below them is the row of PLC inputs. You interact with your PLC simulation by pressing the switches or buttons that form the inputs.

If there are more inputs or outputs than can be displayed on the screen, you can slide them back and forth with your finger to see them.


It is also possible to have analog inputs, that is variables with values other than just high and low. Values for these can be set by touching them and then sliding the slider bar that appears. ​


I/O Manager

The I/O Manager allows you to change the type of component associated with each input or output pin.


Notations refers to how switches, contacts, relay coils, etc. in the ladder-logic diagram relate to variables used internally in the PLC to execute its logic. There are two variable syntaxes used in PLC Ladder Simulator:

PLC Notation 1

When this is chosen, PLC Ladder Simulator automatically adds 8 input variable, 8 output variables, and 24 virtual variables. The tags (variable names) follow the variable naming standards of a commercial PLC manufacturer. This is the type of notation that the variables will take.

Input variable: I0.1

Output variable: O0.1

Virtual variable: M0.1

PLC Notation 2

When this option is selected, PLC Ladder Simulator automatically adds again 8 input variables, 8 output variables, and 24 virtual variables. The tags follow a different naming format, that of another commercial PLC manufacturer. This is the type of notation that the variables will take.

Input variable: I:0/1

Output variable: O:0/1

Virtual variable: B3:0/1

In both naming conventions the user may change the tags (names) of the variables and add more variables as desired.


The Ladder Editor has 44 components that may be used to construct ladder-logic diagrams.


A rung is a horizontal current path that links the input rail to the output rail of a ladder-logic diagram. Since all rungs must have at least one coil on their right side, a new rung is installed in the ladder-logic diagram comes automatically with a coil installed on it. Picture


A sub-rung is an alternative input path for a rung. It is placed in parallel with an existing rung on the left, input side of the rung. Contacts are then installed on it. Picture


A contact represents an electrical switch component. A contact acts as an input on a rung. It is associated with an input variable tag.

A normally open (NO) contact does not allow the flow of electricity in its non-activated state. Current can pass through an NO contact only when it is activated or closed.

A normally closed (NC) contact allows current to pass when it is inactive. When it is activated, it is opened, and this stops the flow of current. Thus its operation is exactly opposite to that of an NO contact. Picture

N.O. and N.C. contacts.


A coil represents an output, usually either a relay coil for starting a machine or an indicator light to show that it is on. It is located on the right side of a rung. A coil is associated with an output variable or a virtual variable.

Whether the coil is on or not depends on whether current reaches it through the contacts, the inputs, on the left side of the rung or sub-rung. Coils associated with output variables, when activated in a simulation, will show this activation by illuminating in the PCL I/O Interface, described above.

The user can choose three different types of coils:

  • Output Coil: This is a normal coil, activated when supplied with current, deactivated when no current reaches it.
  • Latch Coil: This coil turns on when current reaches it, but it is latched. When the current is cut off, it remains activated.
  • Unlatch Coil: This coil turns off when activated. This is normally used to unlatch a latch coil. Picture


The counter counts things, namely the number of times the NO switch, associated with the Accumulator (Accum) variable, is closed. It starts at 0 and counts up to a preset value, Preset. When Accum reaches Preset, the output coil, DN for “done”, is set high. There is a second input to the Counter, the Reset. When Reset is set high, Accum is set back to 0 and DN is turned off. There is also a second output from the counter (CU for “counter up”) that goes high whenever Accum is incremented. It can be connected to an indicator to show the operator the incrementing of Accum as things are counted.

One installs the counter into an existing rung. When a counter is installed, two DINT variables are created, one for Preset and one for the Accum.


The timer marks time. It is similar to the counter in that there is an Accum variable to count the seconds that have passed and a Preset variable, which is a preset span of time to be reached before some other process can begin. The timer can be configured to work in three different ways.

  • Timer-On-Delay (TON) – The timer clock starts counting seconds in Accum when the NO input is set high. When Accum reaches Preset, DN is set high. When the NO input goes low, Accum is set back to 0. This will happen regardless of whether Accum has reached Preset or whether counting is still under way.
  • Timer-Off-Relay (TOF) – This timer works just like the TON timer except that it starts when the input goes low. When the input goes high, Accum is set back to 0. Thus a TOF with a NC input works just like a TON with a NO input.
  • Retentive-Timer-On (RTO) – The RTO timer works like the TON timer except that if, during the counting, the NO input is set low, Accum retains its last value. If the NO input is set again high, the timer starts timing again from the point that it left off. To reset this timer, there is a second Reset input. When it is set high, Accum is set back to 0.


There’s is so plenty information in the internet of the functionality of this functions, you can check this two links (link1, link2) for detailed information on it.

  • EQU
  • NEQ
  • LES
  • LEQ
  • GRT
  • GEQ
  • LIM
  • MEQ
  • MOV
  • BSL
  • BSR
  • AND
  • OR
  • NOT
  • XOR
  • ADD
  • SUB
  • MUL
  • DIV
  • ABS
  • SQR
  • XYP
  • ASN
  • ACS
  • ATN
  • COS
  • LN (natural log)
  • LOG (base-10 log)
  • SIN
  • TAN
  • SCP


  • MOV, SCP, and SCL are the only functions that can read and write analog pins.
  • The BSL and the BSR functions can make a directly bit shift on the digital output pins, to use it you must select the less significant bit of the output pins in the “Variable (Output – INT - DINT)” section and in the length the number of bits where aims to the most significant bit.