PLC:200smart
- 第十章、==数据类型==、==数据存储==
- 1、数据类型
- 1.1、有符号数
- 1.2、有符号数
- 2、传送指令
- 第十一章、==比较指令==、==整数、浮点数的运算==
- 1、比较指令
- 1、运算指令
- 1.1、浮点数运算
- 1.2、整数运算
第十章、数据类型、数据存储
1、数据类型
数据类型分为两大类
无符号数:位、字节、字、双字;
有符号数:整数、双整数、浮点数;
1.1、有符号数
① 位,又叫Bit
或Bool,是一个开关量
或者数字量,只有0
和1
两种状态,是最小的存储单元(如I0.0
,Q0.0
,M0.0
,V0.0
);
范围:0、1
注1:
I
、Q
、M
的数量太少了,都是只有255
个,不适合做存储;
V
的数量很多,足够用,可以专门用来做存储;
注2:T
、C
也有两种状态,但是不是位,是带功能的指令
② 字节,又叫Byte
,又叫B
,由连续的8个位组成,如QB0
(Q0.7<–Q0.0)、IB0
(I0.7<–I0.0);(左侧是高位,右侧是低位
)
范围:0~255
存储器:使用VB
进行存储,如VB0
(V0.7<–V0.0)
③字,又叫Word,又连续的2个字节(16位) 组成
范围:0~65535
存储器:使用VW
进行存储(间隔2),如VW0
(VB0和VB1)、VW2
(VB2和VB3)
④双字,又叫DW
,由连续的2个字(或连续的4个字节,或连续的32个位组成)
范围:0~42亿多
存储器:使用VD
进行存储(间隔4),
总结
数据类型 | 位Bit | 字节B | 字 W | 双字 DW |
---|---|---|---|---|
/ | 1位 | 8位 | 16位 | 32位 |
/ | 0,1 | 0~255 | 0~65535 | 0~42亿多 |
对应的存储器 | V | VB | VW | VD |
1.2、有符号数
①整数,又叫INT
,简称I
,又连续的16个位组成;
范围:-32768~32767
存储器:使用VW
存储
注:负数在计算机中是以补码的形式进行存储的,也是以补码的形式进行运算的
② 双整数,又叫DINT
简称DI
,由连续的32个位组成,
范围:-21亿多~+21亿多
存储器:使用VD
进行存储;
③ 浮点数,又叫Real
,简称R
,是带小数点的数,又连续的32个位组成;
范围:(-很大,0)U(0,+很大)
总结
数据类型 | 整数I | 双整数DI | 浮点数R |
---|---|---|---|
/ | 16位 | 32位 | 32位 |
/ | -32768~32767 | -21亿多~+21亿多 | (-很大,0)U(0,+很大) |
对应的存储器 | VW | VD | VD |
2、传送指令
常用的有MOV_B
、MOV_W
、MOV_DW
、MOV_R
数据类型 | MOV_B | MOV_W | MOV_DW | MOV_R |
---|---|---|---|---|
/ | 传送字节 B | 传送整数I | 传送双整数DI | 传送浮点数R |
输入 | BYTE | WORD, INTI | DWORD, DINT | REAL |
输出 | BYTE | WORD, INTI | DWORD, DINT | REAL |
以
MOV_W
为例,传送整数,当传送-1
时,out
显示的是65535,可实际out是-1,将out用于加法运算:out+1+0
例:使用传送指令实现Q0.0
亮
例:按I0.0
,使Q0.7<--Q0.0
、Q1.7<--Q1.0
全亮
下面三种方法都可
第十一章、比较指令、整数、浮点数的运算
1、比较指令
区别 | 等于 | 不等于 | 小于 | 大于 | 大于等于 | 小于等于 |
---|---|---|---|---|---|---|
生活中的比较 | = | ≠ | < | > | ≥ | ≤ |
PLC中的比较 | == | < > | < | > | >= | <= |
比如:
只能相同数据类型的数据才能比较,所有比较指令都是常开,符合条件时闭合,否则断开;
每种比较数据指令有对应四种不同的数据类型:B
(字节)、I
(整数)、DI
(双整数)、R
(浮点数);如下
例:如下图,右键比较指令的符号–>写入,写一个5
给VW0
,随后Q0.0
得电
例:当温度小于16℃
时打开暖气阀门,当温度大于26℃
时,关闭阀门;
方法一:
方法二:
例:使用比较指令做振荡电路;
1、运算指令
按照数据类型分为两大类:浮点数运算(R
)、整数运算(I
、DI
)
按照运算规则分为四类:加(ADD
)、减(SUB
)、乘(MUL
)、除(DIV
)
分类 | 加 | 减 | 乘 | 除 (除数不为0) |
---|---|---|---|---|
R | ADD_R | SUB_R | MUL_R | DIV_R |
I | ADD_I | SUB_I | MUL_I 和 MUL | DIV_I 和 DIV |
DI | ADD_DI | SUB_DI | MUL_DI | DIV_DI |
一些需要了解的运算指令:
平方根 | 正弦 | 余弦 | 正切 | 自然对数 | 自然指数 | 微分/积分 |
---|---|---|---|---|---|---|
SQRT | SIN | COS | TAN | LN | EXP | DID |
运算指令的位置:
1.1、浮点数运算
例:计算[(18.0+12.0)-10.0]x5.0÷5.0=20.0
1.2、整数运算
整数乘法:
MUI_I
:两个16位
整数相乘,得到16位
整数;
MUI
:两个16位
整数相乘,得到32位
整数(由于改变了数据类型,所用的少,当范围不够时直接使用MUL_DI
即可)
整数除法:
DIV_I
、DIV_DI
保留商,舍余
DIV
保留商和余数
例:已知圆柱形水桶的半径r=30cm
,水深是用VD8
存储,求水的质量(kg
)