[西门子] 西门子plc 200smart(9-12章)_smart 200数据类型——VD、VW、VB的关系

[复制链接]
查看31075 | 回复0 | 2024-10-8 03:13:33 | 显示全部楼层 |阅读模式
PLC:200smart


    第九章、进制转换

    第十章、==数据类型==、==数据存储==


      1.1、无符号数

      1.2、有符号数

      1、数据类型

      2、传送指令

    第十一章、==比较指令==、==整数、浮点数的运算==


      1.1、浮点数运算

      1.2、整数运算

      1、比较指令

      1、运算指令


    第十二章、==递增递减、沿指令、逻辑取反,转换指令==


      1、递增递减

      2、逻辑运算——取反

      3、填充指令`FILL_N`

      4、转换指令



第九章、进制转换

计算器上的进制(了解)十六进制十进制八进制二进制
/HEXDECOCTBIN
/0~9,A-F//0、1组成
/方便表达很大的树///
进制二进制是八进制与十六进制相互转换的媒介
2#11010
8#32 (011是3;010是2)
16#1A(0001是1;1010是A)

例:二进制与十进制相互转换
二进制每位的1对应的十进制数
2#111111111
10#2561286432168421

例:十进制转二进制
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,10~2550~655350~42亿多
对应的存储器VVBVWVD
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,+很大)
对应的存储器VWVDVD
2、传送指令

常用的有MOV_B、MOV_W、MOV_DW、MOV_R
数据类型MOV_BMOV_WMOV_DWMOV_R
/传送字节 B传送整数I传送双整数DI传送浮点数R
输入BYTEINTIDINTREAL
输出BYTEINTIDINTREAL

以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)
RADD_RSUB_RMUL_RDIV_R
IADD_ISUB_IMUL_I 和 MULDIV_I 和 DIV
DIADD_DISUB_DIMUL_DIDIV_DI

一些需要了解的运算指令:
平方根正弦余弦正切自然对数自然指数微分/积分
SQRTSINCOSTANLNEXPDID

运算指令的位置:



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_BINC_WINC_DW
递减DEC_BDEC_WDEC_DW
范围字节:B整数:I双整数:DI

前后地址一样(给自己+1、-1),必须结合沿指令
沿注释
上升沿从0到1,导通一个周期
下降沿从0到1,导通一个周期

注:前后地址一样且变化的指令,必须加沿指令

例:按I0.0对VB0递增(结合沿指令)



例:按I0.0对VB0递减(结合沿指令)



例:一键启停,按I0.0,电机转,再按电机停,再按电机转,由此重复;
方法一:



方法二:



2、逻辑运算——取反

0变1,1变0
取反字节取反整数取反双整数取反
指令INV_BINV_WINV_DW

注:前后地址一样且变化的指令,必须加沿指令

例:一键启停



例:带启动I0.0,暂停I0.1,总停I0.2的流水灯,三个灯每个亮3s,由此循环;
(按下暂停后,所有的灯都灭,再按一下暂停,从上次停止得地方开始启动)







3、填充指令FILL_N

用于批量赋值,且是给多个连续地址赋相同的值;

如下:




上面程序的注释:把整数35 赋值给已VW0开始的连续三个整数(16位)
相当于给多个连续VW传送相同值;
常用语批量初始化,填充0
4、转换指令

取反字节<->整数整数<->双整数双整数->浮点数浮点数 ->双整数
指令B_I、I_BI_DI、DI_IDI_RROUND四舍五入;TRUNC舍小数取整

注:1、转换指令用于不同数据类型之间的计算(加、减、乘、除);
2、转换的数的上限要以较小的数据类型的上限为准;

例(整数转浮点数):整数200加浮点数3.14的结果:




运行时给VW0写入200,给VD12写入3.14即可;

例(浮点数转整数):将3.9转成整数



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则