课程中心
HOME
课程中心
正文内容
plc编程bool PLC编程bit与bool的区别
发布时间 : 2024-10-11
作者 : 小编
访问数量 : 23
扫码分享至微信

PLC编程bit与bool的区别

最近看书看到bit 8 bit=1 byte,可是书上都没有提到Bit,就出现了BOOL(布尔)也是一个位!跟BYTE.WORE.DWORD同样属于数据类型..Bit呢?

Bool代表了一种数据类型,而Bit代表了存储空间的最小单位.如同,你有一间5000平米(bit)的房子,但是这将房子可能是商住楼(Word),也可能是居民楼(Dword),或者是仓库(Int),甚至于是厂方(Bool)。有例如你这个月工资是5000元(bit),但是币种可能是人民币(Bool),或者是美元(Word),甚至于是欧元(Dint)……所以Bit仅仅代表的是存储空间的最小单位。16个Bit组成的存储空间可能是无符号整形(Word),也能是整形(Int),同样,32位存储空间可能是长整形(Dint),也有可能是双字型(Dword),甚至于可能是浮点型(Real)。因此,务必要搞清楚储存空间与存储空间所存储的数据类型之间的区别。

西门子SCL编程入门教程连载(11)-POKE指令

上一篇文章我们介绍了PEEK指令,它是用来读取数据的指令。除了数据的读取,SCL还提供了数据写入的指令——POKE。今天这篇文章,我们来学习下POKE指令的用法。

POKE指令用来将某一个存储区地址的数据写入到另一个存储区地址,无须指定数据类型。可以在【基本指令(Basic instructions)】-【移动操作(move operations)】-【读写内存(Read/Write memory)】中找到该指令,如下图:

将POKE指令添加到程序块中的初始状态如下:

POKE指令

可以看到,POKE指令有四个参数:area ,dbNumber,byteOffset和value,各参数的含义如下:1、area:字节型数据(Byte),用来指定访问存储区的类型。其取值包括如下内容:16#81表示输入缓存区(I)、16#82表示输出缓存区(Q)、16#83表示位存储区(M)、16#84表示数据块(DB)、16#1表示外设输入(PI)。其中,16#84只能访问“标准的”数据块;16#1对外设的读取,只能在S7-1500系列PLC中使用。2、dbNumber:双整型数据(DINT),用来指定数据块的编号,仅在访问数据块时使用;访问其它存储区时设置为0;3、byteOffse:双整型数据(DINT),用来指定写入数据的地址偏移量;4、value:可以为字节型、整型、双整型数据,用来表示要写入的数据值及类型。必须为变量,不能为常量。POKE指令根据value的数据类型来决定写入多少个字节。举个例子:使用POKE指令将位存储区MB100的值写入到输出缓存区QB10,SCL代码如下:

POKE指令应用示例(字节)

如果是操作整型或字类型的数据,只需要改变value的数据类型。例如下面的代码将MW102的值写入到输出缓存区QW12:

同样的道理,下面的代码将MD90的值写入到DB5.DBD10中:

如果要操作布尔型数据,则需要使用POKE_BOOL指令。从指令列表中添加该指令的初始状态如下:

该指令有五个参数:area ,dbNumber,byteOffset,bitOffset和value。其中:1、area,dbNumber,byteOffset与POKE指令相同;2、bitOffset:整型数据(INT),用来指定要写入的位的偏移;3、value:要写入的地址或布尔数据常数;举个例子:将M0.0的值写入到Q1.5,可以使用下面的代码:

POKE_BOOL指令

除了POKE和POKE_BOOL,SCL语言还提供POKE_BLK用来进行较大数据的移动与拷贝。名称中的“BLK“为Block的缩写,即数据块的意思。从指令列表中添加POKE_BLK的初始状态如下:

POKE_BLK指令

可以看到,该指令有7个参数,其中:1、area_src:字节型数据(Byte),用来指定源数据存储区。其取值包括如下内容:16#81表示输入缓存区(I)、16#82表示输出缓存区(Q)、16#83表示位存储区(M)、16#84表示数据块(DB);2、dbNumber_src:双整型数据(DINT),用来指定源数据块的编号,仅在访问数据块时使用,访问其它存储区时设置为0;3、byteOffset_src:双整型数据(DINT),用来指定源数据存储区中写入数据的地址偏移量;4、area_dest:字节型数据(Byte),用来指定目标数据存储区。其取值包括如下内容:16#81表示输入缓存区(I)、16#82表示输出缓存区(Q)、16#83表示位存储区(M)、16#84表示数据块(DB);5、dbNumber_dest:双整型数据(DINT),用来指定目标数据块的编号,仅在访问数据块时使用,访问其它存储区时设置为0;6、byteOffset_dest:双整型数据(DINT),用来指定目标数据存储区中写入数据的地址偏移量;7、count:双整型数据(DINT),用来指定需要拷贝的字节数;举个例子:将DB100.DBB0开始的20个字节拷贝到DB102.DBB40开始的20个字节,代码如下:

好了,关于POKE指令就先介绍到这里。如果你喜欢这篇文章,可以去官网(https://www.founderchip.com/)下载本文PDF版本。

相关问答

欧姆龙plc数据类型符号?

1、BOOL,比如OMRON的IR区,是bit(位)的概念,它只有两个状态,0或1,实际等同于开关量输入信号;可与现场的开关量连接,用于逻辑处理;2、WORD是字,一个字...1、BO...

台达plc数据类型?

11、WPLsoft编程软件台达PLC数据类型有:位bit、半字节nibble、字节byte、字word、双字doubleword。1doubleword=2word=4byte=8nibbl...

plc基本逻辑指令的功能?

plc基本逻辑指令:以位逻辑操作为主,在位逻辑指令中,除非有特殊说明,操作数的有效区域为:I、Q、M、SM、T、C、V、S、L且数据类型为BOOL触点和线圈指令又分为...

西门子plc低字节高字位是什么意思?

要看你的数据大小和类型。进来的数据有BOOL量,就是开关量,它只有0和1的二进制数。它只占用地址一位,表示方法是V0.0;M0.0;I0.0等。VB是字节数据地址,也就是...

abb工业机器人数据类型有哪些?

ABB机器人数据存储描述了机器人控制器内部的各项属性,ABB机器人控制器数据类型多达100余种,其中常见的数据类型包括基本数据、i/o数据、运动相关数据。1、基...

s7-300高低字节交互指令?

西门子低字节高字位的意思:以S7300/400PLC为例:1、假设MW0是一个字。那么MB0就是高字节,MB1就是低字节。低字节高位就是指MB1.B7;高字节低位就是MB0.B0...

谁能告诉我,广东plc培训机构哪里好?

[回答]PLC更有前途,PCB作为一个基础行业要求经验高且污染大,在制作过程问题很多,很是劳心劳力。听哥哥多次吩咐我来考个电工证,所以年前就在一家叫三人易...

plc触摸屏死机后设备工作状态会发生变化吗?

plc触摸屏死机后设备工作状态有可能变化。现实工作中,遇到触摸屏死机或维修情况,尽量停机处理问题。因为程序的灵活性很高,断开触摸屏影不影响设备,得看程...p...

老铁们,楼主请问:广东东莞PLC培训机构东莞PLC培训哪里好?

[回答]施耐德PLC有很多系列,你要哪种系列:昆腾,M340,M218等等三人易行PLC培训三菱PLC培训,专业PLC自动化培训一对一教学,随到随学,学会学满意为止。认准...

西门子200PLC如果想要自动控温都有什么方法?PID向导和由比较指令为条件组成的程序哪个好一点?

给你个Step7写的PID控制的FC模块。带"_IN"与带"_OUT"的变量,如果前缀是一样的,要求连接同一个变量。FUNCTIONFC1:VOID...

 关于方文山的素颜韵脚诗  周金伙 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

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

热线

188-0000-0000
专属服务热线

微信

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