线下实训
HOME
线下实训
正文内容
plc编程整数计算 西门子S7-200系列PLC实操(32 整数运算案例二)
发布时间 : 2025-02-25
作者 : 小编
访问数量 : 23
扫码分享至微信

西门子S7-200系列PLC实操(32 整数运算案例二)

大家好,这节课我们学习“整数运算案例二

我们先来看一下编程要求:

经过初步计算,可以明确这个运算最终的结果,肯定是不能整除的(除不尽的),那该怎么处理呢?

我们先用上节课用到的整数计算指令来处理一下看看结果哈。

可以看到,这里的结果是5。我们通过口算也可以知道,这个题的结果,商是5,余数也是5.那这个5到底是商,还是余数呢?

答案是:这个5是商,而余数呢,则被舍弃掉了。那么该如何完成这个运算呢,这里就需要运用到“转换”指令。首先,要将“整数转换成为双整数”,再将“双整数转换成为实数”。要想得到的结果满足要求,就要将除法中的除数与被除数,都转换成实数,再运用“浮点除法 ”计算结果。如下图:

上电之后,我们来看一下结果:

结果是一个5.714286的一个小数。目前这个题目的结果就结束了。

这里,我们再温习一下在“整数计算指令”中的DIV(整数相除得商/余数)的指令。

当我们使用该指令时,要注意的是输出的位置要使用VD0.我们看一下程序上电后的结果:

没错,输出就变成了一个32位的整数。转化成二进制,就是 0000 0000 0000 1001(高16位);低位相同。

说明一下,这里高位是余数, 低位是商。

下节课,我们来学习“传送指令

学PLC经常遇到的基本数据类型问题,看完就懂了

点击"PLC发烧友"关注我们吧!

众多PLC学习者中,学到数据类型总会遇到坎。如果在这个问题上一知半解,就会直接导致思维停留在基本逻辑编程上,延伸到后续的模拟量运算、通信数据交换等知识时,就很难真正弄懂。原本模拟量和通信并不难,但却又很多人学不会,根本原因就在于前面的基本数据类型不通。

今天就给大家讲解为什么要有数据类型、存储器?它们在整个PLC里面起到什么作用?

PLC如果只能让电机正转或者反转,阀门闭合或者关闭,指示灯闪烁等,那么PLC就和普通的继电器控制没有太大区别。PLC能代替原来的继电器控制,就是因为它像一个微型电脑一样,还可以计算,存储数据,不仅仅是简单的通断电。现实中用到的数,有正数,负数,还有带小数点,不带小数点,有的数大,有的数小。这些都需要PLC进行智能识别,且根据类型不同,进行分类存放,因此就有了数据类型和数据存储器。这两个知识点,需要同时学习。

西门子300/400要比小型机200系列的PLC功能更强大,因为数据类型增加了不少。最常用的数据类型主要有:位、字节、字、双字、整数、双整数、浮点数。例:PLC像现在的电脑、手机、相机一样,都是数字化产品,里面最基本的单位就是位,就是开关量,也叫数字量,只有两个状态,0和1,0代表没电,1代表通电。PLC的内部所有的数据,本质上都是0和1组合而成。比如3这个数,比较小,存放到什么地方呢?下面给大家展示一下几种存储器的类型。

(1)1个字节=8个位,用B(byte)表示

(2)1个字=16个位,用W(word)表示

(3)1个双字=32个位,用D(double word)表示

字节,字,双字,我们可以叫做8位、16位、32位的存储器。怎么区分什么样的数据存放到什么样存储器呢?假如把存储器想象成公园的椅子,有只能坐8个人的,有可以坐16个人的,还有超长版坐32个人的。如果最多只有8个人,建议大家用字节(8位相等于8个人,当然坐3个人或者更少也是可以的)。如果是10个人,很显然,字节就容不下了,推荐16位的字。如果是20个人,那么就只能选择32位的双字存储器了,其他两个都容不下。

也就是说,8位,16位,32位分别代表了他们的最大值,字节最大就是8个位都填满, 相当于8个人都坐到椅子上,多一个都不行,因此字节的最大值就是2#11111111,换算成十进制就是255(进制之间的转换在西门子300精品课程第一部分有详细讲解),以此类推,可以推算出来16位的最大值是65535,和32位的最大值4294967295(建议大家自己去算)。

提醒一下,比如一个数是34,没有超过255,这个数既可以存放到字节里,也可以存到字,还可以存到双字地址里,就像虽然只有1个人,他非要占住超常版的椅子(32位)也是可以的。有同学就会问了,如果有33个人,坐什么椅子呢?哈哈,问的好,目前还没有这么长的椅子,也就是说PLC目前能处理的最大数就是32位的了,其他的爱莫能助。

首先明白了8位,16位,32位存储器的作用,然后再学习IB0,QW0,DB0.DBD0等这一类的地址或者指令时,才会灵活使用。下面用DB0数据块为例,给大家总结一下不同的存储器里可能存放的数据类型。

(1)DB0.DBX0.0:表示一个位,不是0就是1

(2)DB0.DBB0:字节,里面只能是255以内的正数

(3)DB0.DBW0:字,里面可能是0-65535的正数,也可能是-32767到+32768之间的整数(有正负之分的数)

(4)DB0.DBD0:双字,里面存放的类型比较多,分别是

(a)0-4294967295之间的正数

(b)-2147483648到2147483647的双整数

(c)浮点数,即带小数点的数

关于数据类型你清楚了吗?

相关问答

库卡机器人给plc发送整数的方式?

库卡机器人给PLC发送整数的方式是通过使用Modbus通信协议。Modbus是一种常用的工业通信协议,它允许不同设备之间进行数据交换。库卡机器人可以通过Modbus协议...

plc编程中什么时候用双整数,什么时候用整数,他们之间是什么样关系?

它们的值域不同,双整数存储为32位,整数为16位,当你需要存储大于整数能存储的最大或最小值的整数时,你需要使用双整数。有符号整数:-32768~32767有符号双...

plc300如何把正整数转化为s5t?

PLC300可以通过整数数据块和转换指令来实现将正整数转化为S5T格式。首先,需要将整数数据块中存储的值传入转换指令中,并设置S5T格式的参数,如小数位数、符号位...

三菱pLc怎么小数转整数?

使用三菱PLC将小数转换为整数涉及以下步骤:将小数乘以适当的比例因子,使其转换为整数。例如,要将小数点后三位的小数转换为整数,使用比例因子1000。使用M...

plc中时间如何转换成整数?

在PLC中,时间通常以小时、分钟和秒的形式表示。为了将时间转换为整数,需要将小时、分钟和秒分别乘以60和3600,然后将它们相加。例如,时间为3小时、20分钟和45...

西门子PLC的实数,整数,双整数,浮点数,字符串有写不明白他们之间是如何转换的?

其实你不用了解的很清楚他们怎么转换的,只要知道怎么用就可以了,具体我也不是很清楚,但是我会用,我感觉这就够了其实你不用了解的很清楚他们怎么转换的,只要...

PLC编程中的进制数该如何表示?相互之间又是如何转换的?

PLC也是一台微电脑,许多功能指令离不开进制转换,同时也是为了增加程序的可读性,想要对PLC进行编程,那么必须得清楚数制的设置以及转化和对应的符号。当然,...1...

三菱FXPLC如何将32位整数变成16位整数-懂得

1、要看你32位的数据是否都用到,如果数值很大(要用到32位),那必须将这个数据进行等比缩小至16位数据以下,再通过数据转化即可;2、要看你的采集模块...

台达SX2系列PLC怎么进行16进制整数与浮点数的转换啊,梯形图指令是什么?存储结果是32位的么?多谢啦?

用FLT指令,转换结果占用2个寄存器,转换后要用双字处理用FLT指令,转换结果占用2个寄存器,转换后要用双字处理

三菱FXPLC如何将32位整数变成16位整数-梦月儿的回答-懂得

1、要看你32位的数据是否都用到,如果数值很大(要用到32位),那必须将这个数据进行等比缩小至16位数据以下,再通过数据转化即可;2、要看你的采集模块...

 多参数水质检测仪  普京哥 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部