Simulate, Model, and Generate Code for Timer-Based Ladder Logic
Model and simulate ladder logic for a simple timer-based motor controller. The ladder logic based controller uses an on-delay timer to delay the start of the motor and an off-delay timer to delay the stopping of the motor. After verifying that the controller and timers function for your requirements generate code for the controller.
The model consists of a
Motor Controller block that implements the ladder logic used to control the motor. The model contains a Human Machine Interface (
HMI) block that enables you to interact with the model. Open the model:
HMI block consists of inputs and outputs that you use to interact with the model simulation. Open the
HMI block by double-clicking the block. This image shows the components of the HMI block.
This HMI block contains:
Inputs: You use the
Stoptoggle switches to change the value of the respective inputs. When the toggle switch is in the
Onposition, the value of the corresponding input is 1.
Motor: Indicates motor status. The green-colored
Motor ONindicator means that the motor is running. The gray-colored
MotorON indicator means that the motor is stopped.
Graphs: Displays the status of
Motoragainst time as the model simulation progresses.
Motor Controller block is a PLC Controller block. It contains a Ladder Program block that houses the ladder logic. To view the ladder logic for the controller, open the
Motor Controller block, and then open the
Ladder Diagram Program block.
This image shows the ladder logic implementation of the timer-based motor controller inside the
Ladder Diagram Program block.
This ladder logic has a
TON timer named
T1 that is responsible for the delay when starting the motor. The ladder logic has a
TOF timer named
T2 that is responsible for the delay when stopping the motor.
T1 has a preset of 5 seconds and
T2 has a preset of 10 seconds.
Start input is toggled to
MotorStart output in the first rung is activated which starts the timer
T1 counting operation. The
T1.DN bit is set when
T1 finishes counting to 5 seconds. The third rung with timer
T2 is then activated. Because
T2 is a
TOF timer, the
T2.DN bit is set. The timer starts the counting operation only when this rung becomes false. Both the inputs to the lowermost rung are true and the
Motor output is activated.
Stop input is toggled to
MotorStart coil is deactivated and the
T1.DN bit is reset. The timer
T2 starts counting. Once
T2 finishes counting to 10 seconds, the
T2.DN bit is reset and the
Motor output is deactivated.
Configure Timer Delay Values
You can configure the timer delay value for
T2 by specifying their delay values inside the
InitFcn callback property for the model. To access this setting, click Modeling > Model Settings > Model Properties > Callbacks >InitFcn.
To specify a preset delay, enter the value in milliseconds into the
TimerName_InitialValue.PRE. For example,
T1_InitialValue.PRE is set to 5000, which means a time delay of 5 seconds and
T2_InitialValue.PRE is set to 10,000, which means a time delay of 10 seconds. You can simulate different start and stop delays by changing these timer presets to different values.
Simulate Model and Generate Code
Simulate the model and observe the graphs in the
HMI block. Turn on the
Start button in the
ON light turns green after five seconds.
Turn on the
Stop button. The
ON light turns gray after 10 seconds.
After verifying that the timers function for your requirements, generate code for the
Motor Controller block
### Generating PLC code for 'plcdemo_ladder_timers/Motor Controller'. ### Using model settings from 'plcdemo_ladder_timers' for PLC code generation parameters. ### Begin code generation for IDE studio5000. ### Emit PLC code to file. ### PLC ladder code generation successful for 'plcdemo_ladder_timers/Motor Controller'. ### Generated ladder files: plcsrc/plcdemo_ladder_timers_gen.L5X
Alternatively generate code by selecting the
Controller block, and then select APPS > PLC Coder. On the PLC Code tab, click Generate PLC Code.