S7-1200 SCL PEEK 和 POKE 指令使用
- 格式:doc
- 大小:1.08 MB
- 文档页数:9
利用SCL编程语言的PEEK和POKE指令实现对IOM存储器和数据块的读取或写入SCL编程语言是通过使用PEEK和POKE指令来进行IO、M存储器和数据块的读取或写入的。
这两个指令允许程序直接访问硬件注册、存储器和外部设备,实现对它们的控制和数据操作。
PEEK指令用于从指定地址读取一个字节的数据。
语法为:PEEK(address)。
其中address参数表示要读取的内存地址。
POKE指令用于将一个字节的数据写入到指定的地址。
语法为:POKE(address, value)。
其中address参数表示要写入的内存地址,value参数表示要写入的数据。
下面将分别介绍如何使用PEEK和POKE指令来对IO、M存储器和数据块进行读取或写入。
1.读取IO设备数据:通过PEEK指令可以读取与计算机相连的IO设备的状态或数据。
比如,我们可以使用以下代码读取并显示键盘缓冲区中的按键:```PRINT keyBuffer // 将读取的数据显示在屏幕上```2.写入IO设备数据:使用POKE指令可以控制计算机与IO设备的交互。
例如,以下代码可以向打印机发送数据来输出一段文本:``````3.读取和写入M存储器:M存储器是计算机用来存储程序和数据的区域。
通过PEEK和POKE指令,我们可以直接读取和写入M存储器的内容。
以下是一个示例,将从地址5000开始的10个字节的数据读取到变量中:```FORi=0TO9data(i) = PEEK(5000 + i)NEXTi```同样,我们可以使用POKE指令将数据写入到M存储器中的指定地址。
以下代码将把数据块的内容写入到M存储器的地址6000开始的位置:```FOR i = 0 TO size-1POKE(6000 + i, data(i))NEXTi```4.读取和写入数据块:数据块通常在程序内部用于存储和处理一系列数据。
我们可以通过使用PEEK和POKE指令来读取和写入数据块的内容。
在STEP 7 中,如何在SCL 程序中实现间接寻址描述:S7-300/400 控制器使用SCL 有两种方法可以进行间接寻址。
①变量的间接寻址②DB 块的间接寻址变量的间接寻址类似于绝对寻址。
只是在括号内定义一个偏移量来替换掉地址值。
对于数据块的间接寻址,可以使用转换函数"WORD_TO_BLOCK_DB" 进行转换。
下图中的例子,描述了在S7-300/400 中如何使用间接寻址来访问DB 块中的数据。
图. 01如果希望通过间接寻址访问S7-300/400 的M,I 区和Q 区,需要使用指令%MX(), %MB(), %MW(), %EX(), %EB(), %EW(), %AX(), %AB() 和%AW()。
在访问区域前面必须添加百分号。
如下图2 所示。
图. 02SIMATIC S7-1200/1500 控制器可使用表01 中指令来实现间接寻址。
指令描述POKE 写存储器地址POKE_BOOL 写存储器位PEEK 读存储器地址PEEK_BOOL 读存储器位POKE_BLK 写存储区表01可通过如图3 所示,使用PEEK 和POKE 指令来访问数据块中的数据。
图. 03注意:PEEK 和POKE 指令无法在S7-300/400 中使用。
图. 04 是如何在S7-1200/S7-1500中使用"POKE_BLK" 指令实现间接寻址的例子。
源DB(标签名"DB_Number_SRC") 的数据被拷贝到目的DB (标签名"DB_Number_DES") 中。
Fig. 04创建环境该FAQ 相关截图由STEP 7 (TIA 博途) V13 创建。
S7-1200基本指令的应用案例随着工业自动化技术的不断发展,PLC(可编程逻辑控制器)作为工业控制领域中的重要设备,不断得到广泛的应用。
其中,西门子S7-1200系列PLC以其性能稳定、可靠性高等特点,成为了众多工业控制系统的首选。
在S7-1200系列PLC中,基本指令是实现其各项功能的基础,本文将结合具体案例,介绍S7-1200基本指令的应用方法及技巧。
一、S7-1200基本指令的概述S7-1200系列PLC的基本指令包括了逻辑运算、数值运算、移位、比较、计数和定时器等基本功能。
这些指令通过编程的方式,实现了PLC对工业设备的精确控制,具有非常重要的实际意义。
二、逻辑运算指令的应用1. 与门指令与门指令用于将多个输入信号进行与运算,并输出结果。
在工业控制中,可以利用与门指令实现多个条件的同时满足时,触发某项操作的逻辑控制。
2. 或门指令或门指令则是将多个输入信号进行或运算,并输出结果。
在设备的控制中,或门指令可以用于多种状态下的切换操作,提高了设备的灵活性。
三、数值运算指令的应用1. 加法指令加法指令可实现两个操作数的相加,广泛应用于工业设备中的加工、输送、包装等环节的位置控制和计数操作。
2. 减法指令减法指令同样是实现了两个操作数的相减操作,常用于工业生产中的计数、调整等方面。
四、移位指令的应用1. 左移指令左移指令主要用于对数据进行左移位操作,可应用于数值的扩大、倍增等场景,提高了生产效率。
2. 右移指令右移指令则是对数据进行右移位操作,在某些液位控制、料仓排料等方面具有重要作用。
五、比较指令的应用比较指令可用于比较两个操作数的大小关系,在工业控制中常用于检测传感器信号、设定阈值等环节。
六、计数和定时器指令的应用1. 计数器指令在工业生产中,计数器指令常用于对生产过程中的成品数量、加工次数等进行统计和控制。
2. 定时器指令定时器指令则是用于对设备的时间控制,如配料时间、加工时间、清洗时间等,实现对生产过程的准确控制。
S7-1200运动控制指令用户组态轴的参数,通过控制面板调试成功后,就可以开始根据工艺要求编写控制程序了。
关于运动控制指令有几点需要说明:1.打开OB1块,在Portal软件右侧“指令”中的“工艺”中找到“运动控制”指令文件夹,展开“S7-1200 Motion Control”可以看到所有的S7-1200运动控制指令。
可以使用拖拽或是双击的方式在程序段中插入运动指令,如下图所示,以MC_Power指令为例,用拖拽方式说明如何添加Motion Control指令。
这些Motion Control指令插入到程序中时需要背景数据块,如下图所示,可以选择手动或是自动生成DB块的编号。
添加好背景DB后的MC_Power指令如下图所示。
『注意』运动控制指令之间不能使用相同的背景DB,最方便的操作方式就是在插入指令时让Portal软件自动分配背景DB块。
2. 运动控制指令的背景DB块在“项目树”-->“程序块”-->“系统块”-->“程序资源”中找到。
用户在调试时可以直接监控该DB块中的数值,如下图所示。
3.每个轴的工艺对象都一个背景DB块,用户可以通过下面的方式打开这个背景DB块:可以对DB块中的数值进行监控或是读写。
以实时读取“轴_1”的当前位置为例,如下图所示,轴_1的DB块号为DB1,用户可以在OB1调用MOVE指令,在MOVE指令的IN端输入:DB1.Position,则Portal软件会自动把DB1.Position更新成:“轴_1”.Position。
用户可以在人机界面上实时显示该轴的实际位置。
4.每个Motion Control指令下方都有一个黑色三角,展开后可以显示该指令的所有输入/输出管脚。
展开后的指令管脚有灰色的,表示该管脚是不经常用到的指令管脚。
5.指令右上角有两个快捷按钮,可以快速切换到轴的工艺对象参数配置界面和轴的诊断界面。
下图是快速切换到诊断界面。
6.有部分S7-1200 运动控制指令有一个Execute触发管脚,该管脚需要用上升沿触发。
S7-1200 SCL PEEK 和POKE 指令使用使用S7-1200 SCL 编程语言的PEEK 和POKE 指令,可以实现对I/O、M 存储器和数据块的读取或写入。
而通过POKE_BLK 指令,还可以实现数据区域的复制或移动。
指令适用条件:∙只用于SCL 编程语言;∙软件从STEP7 Basic/Pro V11 SP2起;∙S7-1200 CPU 固件从V2.2起;∙适用操作数,I、Q、M、DB、接口区变量;∙DB 必须为“标准与S7-300/400 兼容”的访问方式。
本文生成环境:∙硬件,CPU1214C V2.2∙软件,Windows 7 Professional SP1 32位和STEP7 V11 SP2 Update 5一、项目生成方法:(1)创建S7-1200 项目文件在STEP7 V11 创建新项目PEEK-POKE,双击“添加新设备”在项目中添加S7-1200 PLC_1,CPU 1214C DC/DC/DC。
图一添加新设备(2)添加SCL 逻辑块展开PLC_1,双击“程序块”中的“添加新块”,选择语言“SCL”,添加FC 块,名称为FC_1 。
图二添加新块(3)添加PEEK、POK E指令双击FC_1 打开SCL 逻辑块,将指令的“基本指令/ 移动操作”中PEEK、POK E指令拖入程序编辑区。
图三添加指令二、PEEK 指令1、指令格式PEEK 指令用来读取输入(I)、输出(Q)、存储器(M)或数据块(DB)变量,支持位、字节、字、双字操作。
PEEK指令将获取的数据值以返回值的方式赋值给对应的变量。
PEEK_BOOL,读位变量,指令格式。
图四PEEK_BOOLPEEK (_BYTE) ,读字节变量,指令中BYTE 类型可省略,指令格式。
图五PEEK_BYTEPEEK_WORD,读字变量,指令格式。
图六PEEK_WORDPEEK_DWORD,读双字变量,指令格式。
图七PEEK_DWORD参数area,根据数据所在区域的不同有四种取值。
西门子PLC S7-1200编程与操作模块五基本指令任务一位逻辑指令【学习目标】1.了解与掌握位逻辑指令的用法。
2.熟练运用指令完成练习。
【相关知识】一、基本位逻辑指令点击“常用指令栏”—“常开,常闭触点”,或者在“基本指令”—位逻辑运算—“常开,常闭触点”添加。
可在“基本指令”—位逻辑运算—“取反”添加。
可在“基本指令”—位逻辑运算—“赋值,赋值取反”添加。
练习(一)、结合上图,完成上面的程序,可以得到如下的功能:当开关S1动作而S2不动作时,在三种情况下指示灯都亮。
注意 !根据它们是用在硬件回路中还是作为软件中的符号,“常开触点”和“常闭触点”有不同的含义。
二、置位复位指令可在“基本指令”—位逻辑运算—“置位输出,复位输出”添加。
可在“基本指令”—位逻辑运算—“置位位域,复位位域”添加。
可在“基本指令”—位逻辑运算—“置位/复位触发器,复位/置位触发器”添加。
练习三、上升沿/下降沿指令可在“基本指令”—位逻辑运算—“扫描操作数的信号上升沿,扫描操作数的信号下降沿”添加。
可在“基本指令”—位逻辑运算—“在信号上升沿置位操作数,在信号下降沿置位操作数”添加。
可在“基本指令”—位逻辑运算—“扫描RLO的信号上升沿,扫描RLO的信号下降沿”添加。
任务二数字指令【学习目标】1.了解基本数字的数据类型格式、相互间转换规律等。
、2.熟练运用数字指令完成实操练习。
【相关知识】一、基本数字数据类型二进制/数值处理事实上,我们可以很容易地识别真正的逻辑控制系统,因为它们专用于处理二进制数据。
当今控制系统使用的计算机的性能,以及在数据处理、质量控制领域和其他一些行业应用的飞速发展,都极大地增加了使用PLC 进行数值处理的重要性。
可以在所有开环控制系统的应用领域内找到数值过程变量的应用实例——例如在用于过程操作和监视的连接设备中,或者在现场设备的控制应用中。
操作和监视过程监视的目的是快速、准确、清晰地为操作员提供关于工作机器或系统的最新信息,同时还可允许操作员干涉、控制和影响生产过程。
S7-1200 SCL PEEK 和POKE 指令使用
使用S7-1200 SCL 编程语言的PEEK 和POKE 指令,可以实现对I/O、M 存储器和数据块的读取或写入。
而通过POKE_BLK 指令,还可以实现数据区域的复制或移动。
指令适用条件:
只用于SCL 编程语言;
软件从STEP7 Basic/Pro V11 SP2起;
S7-1200 CPU 固件从V2.2起;
适用操作数,I、Q、M、DB、接口区变量;
DB 必须为“标准与S7-300/400 兼容”的访问方式。
本文生成环境:
硬件,CPU1214C V2.2
软件,Windows 7 Professional SP1 32位和STEP7 V11 SP2 Update 5
一、项目生成方法:
(1)创建S7-1200 项目文件
在STEP7 V11 创建新项目PEEK-POKE,双击“添加新设备”在项目中添加S7-1200 PLC_1,CPU 1214C DC/DC/DC。
图一添加新设备
(2)添加SCL 逻辑块
展开PLC_1,双击“程序块”中的“添加新块”,选择语言“SCL”,添加FC 块,名称为FC_1 。
图二添加新块
(3)添加PEEK、POK E指令
双击FC_1 打开SCL 逻辑块,将指令的“基本指令/ 移动操作”中PEEK、POK E指令拖入程序编辑区。
图三添加指令
二、PEEK 指令
1、指令格式
PEEK 指令用来读取输入(I)、输出(Q)、存储器(M)或数据块(DB)变量,支持位、字节、字、双字操作。
PEEK指令将获取的数据值以返回值的方式赋值给对应的变量。
PEEK_BOOL,读位变量,指令格式。
图四PEEK_BOOL
PEEK (_BYTE) ,读字节变量,指令中BYTE 类型可省略,指令格式。
图五PEEK_BYTE
PEEK_WORD,读字变量,指令格式。
图六PEEK_WORD
PEEK_DWORD,读双字变量,指令格式。
图七PEEK_DWORD
参数area,根据数据所在区域的不同有四种取值。
图八PEEK参数area
2、示例程序
(1)、PEEK 指令–M区寻址:
将M0.1 的状态值读取到Tag_15(M0.7),执行结果如下:
图九PEEK_BOOL
如下程序FC9 是字节寻址,执行FC9,将MB10 的值读取到MB1:
图十PEEK_Byte(PEEK)
如下序FC10 是字寻址,执行FC10,将MW30 的值读取到MW32:
图十一PEEK_Word(PEEK)
将MD50 的值读取到MD54 ,程序FC 11,执行结果如下:
图十二PEEK_DWord(PEEK)
(2)PEEK 指令–DB 寻址:
使用PEEK 指令编写程序FC3,实现对DB5 中的数据位、字节、字、双字的读取。
图十三DB寻址测试结果如下图:
图十四DB寻址测试
三、POKE 写指令
1、指令格式
POKE 指令可以用来对输入(I)、输出(Q)、存储器(M)或数据块(DB)变量地址进行写操作,不仅支持位、字节、字、双字操作,还可以区域操作,实现区域数据移动。
POKE 指令,可在指令体内将结果传递给对应变量。
POKE 位操作:
图十五POKE 位操作
POKE 字节、字、双字操作:
图十六POKE字节、字、双字
将源数据块、I/O 或存储区从byteOffset 开始的“count”个字节,写入目标数据块、I/O 或存储区byteOffset 开始的区域。
图十七POKE_BLK
注:
数据区域参数area,根据要写入的数据所在区域不同有四种取值。
图十八POKE参数area
2、示例
(1)POKE 指令–M 存储器操作:
使用POKE 指令编写程序FC13 ,将MB2 6的值写入MB20,程序执行如下:
图十九POKE写字节
使用POKE 指令编写程序FC14 ,将MW2 的值写入MW60,程序执行如下:
图二十POKE字操作
使用POKE 指令编写程序FC15 ,将MD100 的值写入MD40,程序执行如下:
图二十一POKE双字操作
(2)POKE_BOOL 指令,写M位存储器:
使用POKE_BOO L指令编写程序FC12 ,将M0.1 的值写入M10.1:
图二十二POKE_BOOL
调用FC12 执行结果:
图二十三POKE_BOOL测试结果(3)POKE_BLK,写存储区示例:
使用POKE_BLK 指令编写程序FC8,将DB2.DBB3 2开始的12个字节的值写入MB100 开始的地址,程序执行如下:
图二十四POKE_BLK。