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# FF2# 1111 1111 1111 1111 = 10# 65535 =16# FFFF2# 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即可;





返回顶部
刷新页面
下到页底