北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章528 浏览8057828

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

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

cover.png

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

poke_instructions.png

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

poke.png

可以看到,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_byte_mb100.png

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

poke_word_mw102.png/

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

poke_double_word.png/

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

poke_bool.png/

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

poke_bool_example.png/

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

poke_block.png/

可以看到,该指令有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_blk_example.png/

好了,关于POKE指令就先介绍到这里。欢迎扫描下方的二维码关注我们的微信公众号。

founderchip.png

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

来源:本站|   大小:465KB|   下载次数:2404次

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论