IDEC MicroSmart User Manual

Page 316

Advertising
background image

18: P

ROGRAM

B

RANCHING

I

NSTRUCTIONS

18-2

« FC4A M

ICRO

S

MART

U

SER

S

M

ANUAL

»

Example: LJMP and LABEL

The following example demonstrates a program to jump to three different portions of program depending on the input.

Using the Timer Instruction with Program Branching

When the timer start input of the TML, TIM, TMH or TMS instruction is already on, timedown begins immediately at the
location jumped to, starting with the timer current value. When using a program branch, it is important to make sure that
timers are initialized when desired, after the jump. If it is necessary to initialize the timer instruction (set to the preset
value) after the jump, the timer’s start input should be kept off for one or more scan cycles before initialization. Otherwise,
the timer input on will not be recognized.

Using the SOTU/SOTD Instructions with Program Branching

Check that pulse inputs of counters and shift registers, and input of single outputs (SOTU and SOTD) are maintained dur-
ing the jump, if required. Hold the input off for one or more scan cycles after the jump for the rising or falling edge transi-
tion to be recognized.

When input I0 is on, program execution jumps to label 0.

When input I1 is on, program execution jumps to label 1.

When input I2 is on, program execution jumps to label 2.

M8121 is the 1-sec clock special internal relay.

When jump occurs to label 0, output Q0 oscillates in 1-sec increments.

M8122 is the 100-ms clock special internal relay.

When jump occurs to label 1, output Q1 oscillates in 100-ms increments.

M8123 is the 10-ms clock special internal relay.

When jump occurs to label 2, output Q2 oscillates in 10-ms increments.

LABEL
0

I0

LJMP

S1

0

END

I1

LJMP

S1

1

I2

LJMP

S1

2

M8121

END

M8122

END

M8123

END

Q0

Q1

Q2

LABEL
1

LABEL
2

I1

SOTU

M0

LJMP

S1

0

Although normally, the SOTU instruction produces a
pulse for one scan, when used in a program branch
the SOTU pulse will last only until the next time the
same SOTU instruction is executed.

In the example on the left, the program branch will
loop as long as internal relay M0 remains on. How-
ever, the SOTU produces a pulse output only during
the first loop.

Q1 Internal

ON

OFF

Q1 Output

ON

OFF

Memor y

END

END

Q1

LABEL
0

Since the END instruction is not executed as long as M0 remains on, output Q1 is not turned on even if input I1 is on.

Advertising