课程中心
HOME
课程中心
正文内容
plc编程使用整数 学PLC经常遇到的基本数据类型问题,看完就懂了
发布时间 : 2025-04-03
作者 : 小编
访问数量 : 23
扫码分享至微信

学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、工业机器人、电子技术的原创文章和微课,如果你感兴趣请关注我

今天我们要谈一谈西门子S7-1200PLC中常用的四则运算指令

什么是四则运算指令呢?

四则运算指令包括加法指令ADD、减法指令SUB、乘法指令MUL、除法指令DIV四种。

一、加法指令ADD

执行加法指令ADD将输入IN1的值与输入IN2的值相加,并将加得结果存储在OUT设定的寄存器中。

加法指令功能框各端口的定义如下

EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。

ENO: 使能输出端,当指令正确执行期间使能输出端ENO为1,指令结果超出输出 OUT指定数据类型的允许范围或浮点数为无效值时ENO为0。

IN1/IN2: 要相加的数值,可以是寄存器的地址或常数,单击ADD指令下的星标可以扩展输入的数目。

OUT: 加法计算结果输出,IN1+IN2=OUT,OUT端一般填写寄存器地址。

加法指令小提示: 可以从指令框的“<???>”下拉列表中选择该指令的数据类型,当地址长度与数据类型不匹配时,会将输入数值隐式转换为指定的数据类型,编译不会报错,但运行过程中可能会出错。

二、减法指令SUB

执行减法指令SUB,将由被减数IN1的值减去减数IN2的值,并将结果存入OUT设定的寄存器地址中。

减法指令功能框各端口的定义如下

EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。

ENO: 使能输出端,当指令正确执行期间使能输出端ENO为1,指令结果超出输出 OUT 指定数据类型的允许范围或浮点数为无效值时ENO为0。

IN1: 被减数,可以是寄存器地址或常数。

IN2: 减数,可以是寄存器地址或常数。

OUT: 减法计算结果输出,IN1-IN2=OUT,OUT端一般填写寄存器地址。

三、乘法指令MUL

乘法指令MUL将输入 IN1 的值与输入 IN2 的值相乘,并将乘积保存在输出 OUT指定的寄存器中。

乘法指令功能框各端口的定义如下

EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。

ENO: 使能输出端,指令正确执行期间ENO输出为1,

IN1: 乘数,可以是寄存器地址或常数。

IN2: 乘数,可以是寄存器地址或常数。

Inn: 可以添加多个相乘的数。

OUT: 输出乘积存入指定的寄存器中。

四、除法指令DIV

除法指令DIV将输入 IN1 的值除以输入 IN2 的值,并将除得的商保存在输出 OUT指定的寄存器中。DIV指令支持各种整型和实数型数据。

除法指令功能框各端口的定义如下

EN: 使能输入,EN为1时执行加法指令,EN为0时不执行。

ENO: 使能输出 ,指令正确执行期间ENO状态为1。

IN1: 被除数,可以是寄存器地址、整数或浮点数,需要与所选数据类型匹配。

IN2: 除数,可以是寄存器地址、整数或浮点数,需要与所选数据类型匹配。

OUT: 商值,输出OUT为执行除法指令得到的商,数据类型为无符号整数,余数被省略不计。

除法指令小提示

在使用除法指令DIV时,OUT输出端为除得的商值,数据类型为无符号整型,余数被省略不显示,如果需要求余数需使用MOD指令。

四则运算指令的实际应用举例

例题:温度传感器将采集到的温度值转换为电压信号输入给PLC,测量范围是0~100Co,数值经过被CPU集成的模拟量通道0(地址为IW64)转换为0~27648的数字,假设转换后的数字为T,试求以为Co单位的温度值。

解:0~100Co的温度值经A/D转换后的数字为0~27648,设转换后得到的数字为T,转换公式为

在编辑指令时,为了保证运算精度,应先乘后除。

因为公式中IW64乘以100的运算结果可能会大于16位整数的最大值32767(IW64为16位存储器,模拟值为二进制的补码,最高位为符号位,0为负,1为正),因此应将IW64中的数值数据类型转换为实数再进行乘除运算。

相关问答

plc里的整数是什么数据类型?

PLC的基本数据类型,我们常用的有如下几种:1.布尔类型BOOL,也就是我们常说的0和1,也可以理解为True和False,对于PLC来说就是DI或者DO点的输入或输出状态...

plc字和整数的区别?

PLC字和整数之间的区别在于它们的数据类型和用途。PLC字是一种特定的数据类型,通常用于存储和处理逻辑控制器(PLC)中的位级数据。它可以表示开关状态、传感器...

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

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

plc中数据类型如何改成长整数?

将浮点数转化成整数用INT指令,将整数转成浮点数用FLT指令,指令不难理解,值得注意的是,一个16位的整数转化成浮点数后要占32位的空间。一般PLC用作浮点数运算...

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

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

C语言中的整数和PLC中的整数有什么区别?

整数要根据类型,一般是机器的字长。比如16位机整数就是16位Bit,两个字节。32位机就是4字节。还有int64类型的整数。PLC中的也是同样的概念,看你的机器是多少位...

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

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

plc中四则运算怎么实现?

plc中四则运算怎么现实,这个应该不是很难根据编程手册中的基本指令即可完成。这里面需要注意几个问题,对于使用三菱plc的编程者来说,有整型的还有浮点型的四则...

西门子plc整数转浮点数指令?

转换指令CONVERT转换指令是将一种数据类型转换成另一种数据类型的,使用的时候单击指令“???”的位置,然后在下拉列表中选择输入数据类型和输出数据类型。CONVE...

PLC中正整数有没有补码?

PLC中正整数在一般情况下没有补码,当偶对奇反的情况下可以有PLC中正整数在一般情况下没有补码,当偶对奇反的情况下可以有

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

QQ

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

热线

188-0000-0000
专属服务热线

微信

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