PLC:200smart
第九章、进制转换
计算器上的进制(了解) | 十六进制 | 十进制 | 八进制 | 二进制 |
---|---|---|---|---|
/ | HEX |
DEC |
OCT |
BIN |
/ | 0~9,A-F |
/ | / | 0 、1 组成 |
/ | 方便表达很大的树 | / | / | / |
进制 | 二进制是八进制与十六进制相互转换的媒介 |
---|---|
2# | 11010 |
8# | 32 (011是3;010是2) |
16# | 1A (0001是1;1010是A) |
例:二进制与十进制相互转换
二进制每位的1对应的十进制数
2# |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
---|---|---|---|---|---|---|---|---|---|
10# |
256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
例:十进制转二进制10# 100 =10# (64 + 32 + 4)
故10# 100 = 2# 1100100
例:二进制转十进制2# 10101010 = 10# (128+32+8+4)= 10#170
例:二进制转十六进制
2# 1100 0110 =16# C6
1100
转成十六进制是C
,0110
转成十六进制是6
;从低位到高位4个一组进行转换;
例:十六进制转二进制
16# 9F = 2# 1001 1111
将
9
转成2
进制是1001
;将F
转成2
进制是1111
,也是4
个一组进行转换
例:一些需要记住的数据2# 11111111 = 10# 255 =16# FF
2# 1111 1111 1111 1111 = 10# 65535 =16# FFFF
2# 32个1 10# 42亿多 =16# FFFFFFFF
第十章、数据类型、数据存储
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),
VD、VW、VB的关系
总结
数据类型(无符号) | 位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 |
INTI |
DINT |
REAL |
输出 | BYTE |
INTI |
DINT |
REAL |
以
MOV_W
为例,传送整数,当传送-1
时,out
显示的是65535,可实际out是-1,将out用于加法运算:out+1+0
例:使用传送指令实现Q0.0
亮
按I0.0亮,按I0.1灭
例:按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
)
第十二章、递增递减、沿指令、逻辑取反,转换指令
1、递增递减
分类 | 指令 | 指令 | 指令 |
---|---|---|---|
递增 | INC_B |
INC_W |
INC_DW |
递减 | DEC_B |
DEC_W |
DEC_DW |
范围 | 字节:B |
整数:I |
双整数:DI |
前后地址一样(给自己+1、-1),必须结合沿指令
沿 | 注释 |
---|---|
上升沿 | 从0到1,导通一个周期 |
下降沿 | 从0到1,导通一个周期 |
注:前后地址一样且变化的指令,必须加沿指令
例:按I0.0
对VB0
递增(结合沿指令)
例:按I0.0
对VB0
递减(结合沿指令)
例:一键启停,按I0.0,电机转,再按电机停,再按电机转,由此重复;
方法一:
方法二:
2、逻辑运算——取反
0变1,1变0
取反 | 字节取反 | 整数取反 | 双整数取反 |
---|---|---|---|
指令 | INV_B |
INV_W |
INV_DW |
注:前后地址一样且变化的指令,必须加沿指令
例:带启动I0.0
,暂停I0.1
,总停I0.2
的流水灯,三个灯每个亮3s,由此循环;
(按下暂停后,所有的灯都灭,再按一下暂停,从上次停止得地方开始启动)
3、填充指令FILL_N
用于批量赋值,且是给多个连续地址赋相同的值;
上面程序的注释:把整数35 赋值给已
VW0
开始的连续三个整数(16位)
相当于给多个连续VW
传送相同值;
常用语批量初始化,填充0
4、转换指令
取反 | 字节<->整数 | 整数<->双整数 | 双整数->浮点数 | 浮点数 ->双整数 |
---|---|---|---|---|
指令 | B_I 、I_B |
I_DI 、DI_I |
DI_R |
ROUND 四舍五入;TRUNC 舍小数取整 |
注:1、转换指令用于不同数据类型之间的计算(加、减、乘、除);
2、转换的数的上限要以较小的数据类型的上限为准;
运行时给
VW0
写入200
,给VD12
写入3.14
即可;