算术与逻辑指令主要用于二进制整数的加、减、乘、除运算及字元件的逻辑运算,共10条指令。
指令代号
指令助记符
指令名称
FNC20
ADD
加法
FNC21
SUB
减法
FNC22
MUL
乘法
FNC23
DIV
除法
FNC24
INC
加1
FNC25
DEC
减1
FNC26
WAND
逻辑“字与”
FNC27
WOR
逻辑“字或”
FNC28
WXOR
逻辑“字异或”
FNC29
NEG
求补码
加法与减法指令有三个标志位:零标志(m8020)、借位标志(m8021)和进位标志(m8022);
乘法指令操作数为16位时,运算结果为32位;
除法指令会将商和余数都送到目的操作数中;
在INC运算时,如数据为16位,则由+32767再加1变为-32768,但标志不置位;同样,32位运算由+2147483647再加1就变为-2147483648时;
在DEC运算时,16位运算-32768减1变为+32767,且标志不置位;32位运算由-2147483648减1变为=2147483647;
求补码指令NEG将操作数D指定的元件内容的各位先取反再加1,将其结果再存入D中。
移位与循环指令
移位与循环指令共10条指令。
指令代号
指令助记符
指令名称
FNC30
ROR
循环右移
FNC31
ROL
循环左移
FNC32
RCR
带进位右移
FNC33
RCL
带进位左移
FNC34
SFTR
位右移
FNC35
SFTL
位左移
FNC36
WSFR
字右移
FNC37
WSFL
字左移
FNC38
SFWR
移位写入
FNC39
SFRD
移位读出
循环右移指令ROR(Rotation Right)是将操作数中的数据右移n位;
循环左移指令ROL(Rotation Left)是将操作数中的数据左移n位;
执行指令时,每次移出的那一位同时存入进位标志M8022中。
带进位循环右移位指令RCR(Rotation Right with Carry)是将操作数D中的数据右移n位,在移位过程中连同进位位M8022一起右移;
带进位循环左移位指令RCL(Rotation Left with Carry)是将操作数D中的数据左移n位,在移位过程中连同进位位M8022一起左移;
目标元件中指定位元件的组合只有在K4(16位指令)和K8(32位指令)时有效。
位右移指令SFTR(Shift Right)是将目的操作数D指定长度n1位的移位寄存器向右移动n2位,移位后的数据由源操作数S指定的数据填补;
位左移指令SFTL(Shift Left)是将目的操作数D指定长度n1位的移位寄存器向左移动n2位,移位后的数据由源操作数S指定的数据填补;
字右移指令WSFR(Word Shift Right)是将目的操作数D指定长度n1位的移位寄存器向右移动n2位,移位后的数据由源操作数S指定的数据填补;
位左移指令WSFL(Word Shift Left)是将目的操作数D指定长度n1位的移位寄存器向左移动n2位,移位后的数据由源操作数S指定的数据填补;
移位寄存器写入指令SFWR(Shift Register Write)是将源操作数S写入目的操作数D指示器的元件中。指令每执行一次,指示器加1,直到指示的内容达到n-1时不再执行;
移位寄存器读出指令SFRD(Shift Register Read)是将源操作数S指定的n-1个数据序列依次移入到目的操作数D指定的元件中。该指令每执行一次,源操作数指定的数据序列就向右移一字,直到指示器为零;
例:天塔之光设计
1、控制要求
天塔之光控制示意图如图所示,按下启动按钮后,各灯光显示规律如下:
L9→L8→L7→L6→L5→L4→L3→L2→L1→L1、L2、L9→L1、L5、L8→L1、L4、L7→L1、L3、L6→L2、L3、L4、L5→L6、L7、L8、L9→L1、L2、L6→L1、L3、L7→L1、L4、L8→L1、L5、L9→L1→L2、L3、L4、L5→L6、L7、L8、L9→L9→L8→L7→L6→L5→L4→L3→L2→L1……
2、控制分析
根据控制要求,天塔之光有9个灯,这些灯光是循环移位闪亮,每次循环有22步,因此可以用位左移指令SFTL来实现。移位寄存器需要进行22位的移位,每一步对应一步控制相应指示灯,如L1分别在“9、10、11、12、13、16、17、18、19、20”步被点亮,那么移位寄存器“M19、M20、M21、M22、M23、M26、M27、M28、M29、M30”位时L1均有效,需将L1置1。
L1
L2
L3
L4
L5
L6
L7
L8
L9
Y000
Y001
Y002
Y003
Y004
Y005
Y006
Y007
Y010
M11
1
M12
1
M13
1
M14
1
M15
1
M16
1
M17
1
M18
1
M19
1
M20
1
1
1
M21
1
1
1
M22
1
1
1
M23
1
1
1
M24
1
1
1
1
M25
1
1
1
1
M26
1
1
1
M27
1
1
1
M28
1
1
1
M29
1
1
1
M30
1
M31
1
1
1
1
M32
1
1
1
1
3、PLC控制天塔之光的输入/输出分配表
根据控制要求和控制分析可知,该设计需要2个输入和9个输出:
输入
输出
功能
元件
PLC地址
功能
元件
PLC地址
启动按钮
SB1
X000
信号灯L1
HL1
Y000
停止按钮
SB2
X001
信号灯L2
HL2
Y001
信号灯L3
HL3
Y002
信号灯L4
HL4
Y003
信号灯L5
HL5
Y004
信号灯L6
HL6
Y005
信号灯L7
HL7
Y006
信号灯L8
HL8
Y007
信号灯L9
HL9
Y010
4、PLC控制天塔之光的I/O接线图
5、程序设计
6、PLC控制天塔之光的程序设计说明
步0-步3为启停控制,步4-步35为移位控制,步36-步38为每移一位,调用显示子程序控制,步44-步99为9个信号灯的亮熄控制,步100-步105为将M寄存器进行复位控制。