目录
一、加减指令
1、作用:
使两个数据能够进行加法或者减法运算。
2、指令形式:
指令形式:[ADD S1 S2 S3]
解析:S1+S2=S3,该代码的意思是将S1加上S2的数放入S3中。
3、加减指令种类
A、ADD:16位数据间的加法运算
B、DADD:32位数据间的加法运算
C、DEADD:浮点数数据间的加法运算
4、实例:
A、16位运算:
加法:
减法:
B、32位运算:
加法:
减法:
C、浮点数运算 :
加法:
减法:
二、乘法指令
1、作用:
使两个数据能够进行乘法运算。
2、指令形式:
指令形式:[MUL S1 S2 S3]
解析:S1XS2=S3,该代码的意思是将S1乘上S2的数放入S3中。
3、加法指令种类
A、MUL:16位数据间的乘法运算
B、DMUL:32位数据间的乘法运算
C、DEMUL:浮点数数据间的乘法运算
4、实例:
A、16位乘法运算
B、32位乘法运算
C、浮点数乘法运算
三、除法指令
1、作用:
使两个数据能够进行除法运算。
2、指令形式:
指令形式:[DIV S1 S2 S3]
解析:S1S2=S3,该代码的意思是将S1除以S2的数放入S3中。
3、加法指令种类
A、DIV:16位数据间的除法运算
B、DDIV:32位数据间的除法运算
C、DEDIV:浮点数数据间的除法运算
4、实例:
A、16位除法运算
B、32位除法运算
C、浮点数除法运算
四、内存问题
内存溢出在加减中不会太明显,因为涉及数还比较小。但是在乘除法中会影响数据的存储。
乘除法内存分配:
乘法:
16位 X 16位 = 32位(占据2个数据寄存器,都用于装得数)
32位 X 32位 = 64位 (占据4个数据寄存器,其中2个装得数;剩下2个是余数)
浮点数X浮点数 = 32位
除法:
16位 X 16位 = 32位(占据2个数据寄存器,一个数据寄存器装商;一个装余数)
32位 X 32位 = 64位 (占据4个数据寄存器,其中2个装商;剩下2个是余数))
浮点数 X 浮点数 = 浮点数(64位) (占据4个数据寄存器,其中2个装商;剩下2个是余数)
对于16位的数据寄存器来说, 32位需要占据2个数据寄存器;64位需要占据4个数据寄存器。
五、总结
1、PLC有严格的数据类型界限,不能使用不同数据类型进行加减乘除。例如不能用16位X32位。
2、注意得数是需要多少个数据寄存器,防止数据寄存器不够的情况出现。