学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)浮点数,即带小数点的数
关于数据类型你清楚了吗?
西门子S7-200系列PLC实操(48 三整数求和)
大家好,这节课我们将学习用整数运算中的加计数器,合并生成一个3整数求和的模块。由于本节课的内容,设计很多子程序方面的内容。没有完成学习子程序知识的同学,可以暂时跳过,等了解子程序之后再回来学习。
案例说明:用局部变量编写一个三个整数求和的子程序。
I/O接口分配如下:
要完成三整数求和,我们通常可以通过以下程序来完成。需要注意的是,我是在子程序SBR_0中编辑的。
这时,我们只需要在主程序中调用该子程序,即可实现该模块的三整数求和的功能。
在子程序编辑过程中,我们会用到变量,存储一些尚不确定的结果,用于后续的计算。这类变量被称为中间变量,由于此类变量仅在子程序内有效,所以我们常使用的变量符号是L。较为常见的有LW0,LW2,LW4等等等。
需要注意的一点,在不同的子程序中,是可以使用LW0,LW2等变量名称而不至于报错的。原因就是局部变量仅在子程序内有效,就像我们在学校里。初二年级1班可以有一个5号同学;2班也可以有一个5号同学,而两者并不是一个人。
在掌握了子程序编辑方法后,我们也可以自己拟定一个常用的模块,比如起保停电路等。
相关问答
PLC中,实数,整数型,双整数型的概念是什么?最好举例._作业帮
[最佳回答]实数和长整型一样占用2个字(4个字节)的空间,只是实数表示的是带有小数的数据,如88.39,这就是实型,在程序中一般符号是REAL或FLOAT;而长整型也就是你...
PLC什么双整数?
实数和长整型一样占用2个字(4个字节)的空间,只是实数表示的是带有小数的数据,如88.39,这就是实型,在程序中一般符号是REAL或FLOAT;而长整型也就是你说的双整数...
plc双整数转化为实数?
双整到实数用DI-R指令,一个不带小数点的,一个有小数的。指令中实际上没什么用的,可能是点个位置,以后在这里可以修改成别的数据调节VD28而不用重新加指令。...
西门子PLC双整数转换为浮点数是怎么转换的?_作业帮
[最佳回答]浮点数如果要转换成整数,首先要取整,转换成双整数,然后再转换成整数还有个简单的方法,如:5.000000e+001就是5*10的一次方,既后面的指数是几,把小...
西门子plcs7-200如何将整数转化成双整数?
Round指令,小数部分四舍五入TRUNC指令,放弃小数部分看你需要什么了。Round指令,小数部分四舍五入TRUNC指令,放弃小数部分看你需要什么了。
plc浮点数怎么算出整数?
您好,要将PLC浮点数转换为整数,可以使用以下方法:1.向下取整(舍去小数部分):使用PLC编程语言中的取整函数,如INT()或TRUNC()函数,将浮点数转换为最接近...
plc程序等于整数什么意思?
作为语法语言,PLC程序中的各种标识符都必须遵守固定的命名规则和语法规则。在某些编程语言中,等于号(=)是用来表示变量赋值操作的符号。因此,“PLC程序等于...
plc整数和双整数有什么区别?
PLC(可编程逻辑控制器)中的整数和双整数是两种不同的数据类型,它们的区别在于能够表示的数值范围和精度。1.整数(Integer):PLC中的整数类型是一种固定精...
PLC中字节、整数、等的用法?
拿西门子200PLC做例子,比如V存储区的数据,一个字节是8个位,字节用B表示,那么字节的地址就是VB??,比如VB100,这表示一个字节的数据,数据地址就在V存储区1...拿...
PLC中整数和浮点数如何转化?
三菱plc里面将浮点数转换成整数用INT指令。该指令把二进制整数转化为二进制浮点数;常数K、H在各浮点运算指令中自动转换,在FLT指令中不处理。使用printf输出...