西门子S7300 CPU寄存器状态字的用法

合集下载

西门子S7-300 PLC存储器使用简介

西门子S7-300 PLC存储器使用简介

科技风2017年2月下电子信息DOI : 10.19392/j .cnki . 1671-7341.201704048西门子S 7-300 P L C 存储器使用简介周翔上海数句信息技术有限公司上海200000摘要:西门子S 7-300系列P LC 是在自动控制领域广泛使用的可编程逻辑控制器,有着较高的产品熟识度和市场占有率。

本文围绕S 7-300的存储为核心,结合项目实施经验,介绍该P LC 存储方面的概念、使用和维护。

关键词:PLC ;存储器1 S 7-300存储概述S 7-300PLC 的存储区域我们分成四个部分:装载存储器、工作寄存器、系统存储器、保持存储器。

1)系统存储器:我们使用系统存储器存放以下数据:位存储器、定时器和计数器、输入输出过程映像区、中断堆栈和块堆栈、本地数据堆 栈的临时存储。

2)工作寄存器:工作寄存器用来存放CPU 运行时读取的程序数据。

工作寄存器R A M 集成在CPU 中,通过电源或后备电池保持其内容。

S 7-300CPU 的工作存储器无法扩展。

3 )装载存储器:我们使用装载存储器存储用户程序,不包括符号和 注释(这些保存在工程师站的PLC 项目中)。

装载存储器的硬件可以是 存储卡、CPU 集成的R AM 或EPROM 。

4)保持存储器:保持存储器具有失电后存储数据保持的特点。

设置 硬件组态的相关参数,可以在CPU 掉电后,也无后备电池的情况下,保 存指定的位存储器、数据块、定时器、计数器数据。

在设置CPU 参数时一 定要指定需要保持的区域。

(注:S 7-400PLC 无保持型RAM ,故即使指定 了保持数据区,CPU 断电时若无后备电池,所有数据也将丢失。

)当SteP 7执行程序下载时,会把诸如工程师站的编程设备中的用 户程序下载到CPU 的装载存储器。

同时,运行时使用的逻辑和数据导 入到工作存储器(例如OB 1和D B 数据块)。

当CPU 断电并且无后备 电池时,在工作存储器中指定的具有保持功能的D B 数据块、在系统 存储器中指定的具有保持功能的定时器、计数器、位存储器会把数据 写入保持存储器中。

S7-300PLCCPU报SF和BF报警

S7-300PLCCPU报SF和BF报警

OB81电源出错组织块
只要发生由错误或故障所触发的事件,而此错误或故障又与电源(仅在S7-400上)或备用电池(当事件进入和离开时)有关,则S7-300 CPU的操作系统调用OB81。在S7-400中,如果已使用BATT.INDIC开关激活了电池测试功能,则只有在出现电池故障时才会调用OB81。如果OB81没有编程,则CPU不会转为STOP模式。可以使用SFC 39至42禁用或延迟,并重新启用电源出错OB。
1、同步出错的嵌套深度过大
2、块调用(U堆栈)的嵌套深度过大
3、分配本地数据时出错
如果未对OB 88编程且程序块执行被中止,则CPU进入STOP模式(事件ID W#16#4570)。如果在优先级28下中止了程序块执行,则CPU进入STOP模式。可借助于SFC 39至42禁用、延迟和启用处理中断OB。
西门子状态与故障指示西门子* 2009-10-09 11:29:11 阅读96 评论0 字号:大中小 订阅
SF (红色) 硬件或软件错误
BF (红色) 总线出错(只适合于带有DP口的CPU)
DC5V (绿色) CPU和S7-300总线的5V电源正常
OB121编程出错组织块
只要发生同程序处理相关的错误所导致的事件,CPU的操作系统即调用OB121。例如,如果用户程序调用了尚未装载到CPU中的块,将会调用OB121。
OB122I/O访问出错组织块
只要在访问模块上的数据时出错,CPU的操作系统即调用OB122。例如,如果在访问I/O模块上的数据时,CPU检测到读取错误,操作系统将调用OB122。
1、已检测到并更正了内存出错之后
2、对于S7-400H:如果两个CPU之间的冗余链接的性能下降

s7300教程7

s7300教程7

3.2.6 CPU 中的寄存器 1.累加器(ACCUx )累加器用于处理字节、字或双字的寄存器。

S7-300有两个32位累加器(ACCU1和ACCU2),S7-400有4个累加器(ACCU1~ACCU4)。

数据放在累加器的低端(右对齐)。

2.状态字寄存器(16位)首次检测位/FC, 逻辑运算结果(RLO ); 状态位STA 不能用指令检测;OR 位暂存逻辑“与”的操作结果(先与后或);算术运算或比较指令执行时出现错误,溢出位OV 被置1。

OV 位被置1时溢出状态保持位OS 位也被置1,OV 位被清0时OS 仍保持为1,用于指明前面的指令执行过程中是否产生过错误。

条件码 1(CC1)和条件码0(CCO )综合起来用于表示在累加器1中产生的算术运算或逻辑运算的结果与0的大小关系、比较指令的执行结果或移位指令的移出位状态。

二进制结果位(BR )在一段既有位操作又有字操作的程序中,用于表示字操作结果是否正确。

在梯形图的方框指令中,BR 位与ENO 有对应关系,用于表明方框指令是否被正确执行:如果执行出现了错误,BR 位为0,ENO 也为 0;如果功能被正确执行,BR 位为 1,ENO 也为 1。

FC R LOSTAO RO VO SC C0C C1B R未用012345678915图3-9 状态字的结构MW I0.1图3-50 传送指令3.数据块寄存器:DB 和DI 寄存器分别用来保存打开的共享数据块和背景数据块的编号。

3.3 位逻辑指令位逻辑指令用于二进制数的逻辑运算。

位逻辑运算的结果简称为RLO 。

3.3.1 触点指令1.触点与线圈A (And ,与)指令来表示串联的常开触点。

O (Or ,或)指令来表示并联的常开触点。

AN (And Not ,与非)来表示串联的常闭触点, ON (Or Not)来表示并联的常闭触点。

输出指令“=”将RLO 写入地址位,与线圈相对应。

L20.0是局域变量。

西门子PLC CPU指示灯状态

西门子PLC CPU指示灯状态

CPU指示灯状态1.标准型CPU系列标准型CPU模板为CPU31x系列,其面板见图。

面板上有各类控制开关、状态指示灯、插槽及电源端口等。

S7-300的CPU面板1)状态指示灯不同颜色的LED指示灯表示了CPU的各种运行状态。

SF—红色,系统故障指示;BF(或BATF)—红色,后备电池故障指示,没有电池或电池电压不足时亮;DC5V—绿色,表示内部5V工作电压正常;FRCE—黄色,强制(FORCE),表示至少有一个输入或输出被强制;RUN—绿色,在CPU起动(START UP)时闪烁,在运行时长亮;ST0P—橙色,在停止模式下长亮,慢速闪烁(0.5Hz)表示请求复位,快速闪烁(2Hz)表示正在复位。

2)模式选择开关RUN—运行模式。

开关在此位置时,编程器可以监控CPU的运行,也可以读程序;但不可以命令CPU RUN或STOP,不可以改写程序,在此位置可以拔出钥匙;STOP—停止模式。

CPU不扫描用户程序,开关在此位置时,编程器可以读写程序,可以拔出钥匙;MRES—存储器复位模式(MEMORY RESET)。

开关不可以自然停留在此位置上,一旦松手,开关自动弹回STOP位置。

3)微存储器卡槽旧型号的CPU面板上有FEPROM插槽,新型号CPU面板取消了电池和FEPROM插槽,代之以微存储器(MMC)卡,由于MMC存储容量大(64KB~8MB),不仅可以存程序,甚至可以存整个项目(Project)。

4)接口与端口MPI—Multi-Point Interface,也称编程口。

可以接入编程器或其它设备;DP(PtP)—PROFIBUS DP网络的接口或P点对点连接(oint to Point)接口。

该接口是否存在,或是哪种接口,取决于CPU的型号;电池盒—可以装入锂电池,在停电时保存程序和部分数据。

2.CPU型号S7-300的CPU型号很多且不断更新,所以只列出CPU3x系列部分型号的技术参数,见表。

其中CPU3x-2DP表示该CPU模板上集成有现场总线(PROFIBUS-DP)通信接口。

s7-300PLC编程语句手册汇总

s7-300PLC编程语句手册汇总

s7-300PLC编程语句手册汇总S7-300是一种可编程控制器,它有自己的编程语言和指令系统。

在使用S7-300进行编程时,需要了解其语言和指令系统的特点和用法。

S7-300的编程语言包括LAD(梯形图)、FBD(功能块图)和STL(结构化文本语言)。

其中,LAD是最常用的一种语言,它使用梯形图形式来表示程序的逻辑关系。

FBD则是一种图形化的编程语言,它使用不同的功能块来表示程序的逻辑关系。

STL则是一种类似于C语言的文本语言,它使用结构化的语法来表示程序的逻辑关系。

S7-300的指令系统包括基本指令和扩展指令。

基本指令包括逻辑指令、算术指令、移位指令等,用于实现程序的基本功能。

扩展指令则是在基本指令的基础上进行扩展,用于实现更加复杂的功能。

在使用S7-300进行编程时,需要根据具体的应用场景选择合适的编程语言和指令。

同时,还需要注意编程的规范和标准,以确保程序的可靠性和稳定性。

总之,S7-300的编程语言和指令系统是其核心功能之一,掌握其特点和用法对于进行编程工作非常重要。

在实际应用中,需要根据具体的需求和要求,选择合适的编程语言和指令,以实现程序的优化和效率提升。

STEP 7编程语言介绍STEP 7是一种用于编程可编程逻辑控制器(PLC)的工具。

它被广泛应用于自动化控制系统中,包括工厂自动化、机器人控制、物流自动化、建筑自动化等领域。

数据类型在STEP 7中,有多种数据类型可供使用,包括整型、浮点型、布尔型、字符型等。

这些数据类型可用于存储和处理不同类型的数据,以满足不同的应用需求。

参数数据类型在编写PLC程序时,需要指定参数的数据类型。

这些参数可以是输入、输出或内部数据。

参数的数据类型决定了它们可以存储的数据类型,以及它们可以执行的操作。

PLC用户存储区的分类及功能PLC用户存储区是用于存储程序和数据的区域。

它可以分为程序存储区和数据存储区。

程序存储区用于存储PLC程序,而数据存储区用于存储程序中使用的数据。

西门子编程 PLC S7-300语句表 助记符 中英文全称对照

西门子编程 PLC S7-300语句表 助记符 中英文全称对照

西门子编程PLC S7-200/300语句表助记符英文全称助记指令(英文全称意思) :指令含义1 、LD ( Lode 装载 ) :动合触点2、LDN ( Lode Not 不装载 ) : 动断触点3、A ( And 与动合) : 用于动合触点串联4、AN ( And Not 与动断 ) :用于动断触点串联5、O ( Or 或动合 ) :用于动合触点并联6、ON ( Or Not 或动断 ) : 用于动断触点并联7、= ( Out 输出 ) :用于线圈输出8、OLD ( Or Lode): 块或9、ALD ( And Lode): 块与10、LPS ( Logic Push ) :逻辑入栈11、LRD ( Logic Read ) :逻辑读栈12、LPP ( Logic Pop ) :逻辑出栈13、NOT ( not 并非 ) :非14、NOP ( No Operation Performed ) : 无操作15、AENO ( And ENO ) : 指令盒输出端ENO相与16、S ( Set 放置 ) : 置117、R ( Reset 重置,清零 ) :清零18、P ( uP 上升) :正跳变19、N ( dowN 下降) :负跳变20、TON ( On_Delay Timer ) :通电延时21、TONR ( Retentive On_Delay Timer ) : 有记忆通电延时型22、TOF ( Off_ Delay Timer ) :断电延时型23、CTU ( Count Up ) : 递增计算器24、CTD ( Count Down ) : 递减计数器25、CTDU ( Count Up/ Count Down ) :增减计数器26、ADD ( add 加 ) : 加注意 //ADD_I (_ I 表示整数) ADD_DI( DI表示双字节整数)ADD-R(R 表示实数)它们都是加运算只是数的大小不同!!后面有很多这样的我就略写了!27、SUB ( Subtract 减去,减少) :减28、MUL ( Multiply ) : 乘29、DIV ( Divide ) : 除30、SQRT ( Square root ) : 求平方根31、LN ( Napierian Logarithm 自然对数 ) : 求自然对数32、EXP ( Exponential 指数的 ) :求指数33、INC_B ( Increment 增加 ) :增134、DEC_B ( Decrement 减少 ) :减135、WAND_B ( Word and 与命令 ) :逻辑与//其中_B代表数据类型还有W(字节)、DW双字后面几个都是这样的。

S7-300状态字

S7-300状态字

Siemens S7系列PLC的状态字状态字用于表示CPU执行指令所具有的状态。

一些指令是否执行或以何方式执行可能取决于状态字的某些位;执行指令时也可能改变状态字的某些位,也状态字的位0称为首位检测位。

若/FC位状态为0,则表明一个梯形逻辑网络的开始,或指令为逻辑串的第一条指令。

CPU对逻辑串第一条指令的检测(称为首位检测)产生的结果直接保存在状态字的RLO位中,经过首次检测存放在RLO中的0或1被称为首位检测结果。

/FC位在逻辑串的开始时总是0,在逻辑串指令执行过程中/FC位为1,输出指令或与逻辑运算有关的转移指令(表示一个逻辑串结束的指令)将/FC清0。

(2)逻辑操作结果(RLO)状态字的位1被称为逻辑操作结果RLO(Result of Logic Operation)。

该位存储逻辑指令或算术比较指令的结果。

在逻辑串中,RLO位的状态能够表示有关信号流的信息。

RLO的状态为1,表示有信号流(通);为0,表示无信号流(断)。

可用RLO触发跳转指令。

(3)状态位(STA)状态字的位2称为状态位。

状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。

如果一条指令是对存储区操作的位逻辑指令,则无论是对该位的读或是写操作,STA总是与该位的值取得一致;对不访问存储区的位逻辑指令来说,STA位没有意义,此时它总被置为1。

(4)或位(OR)或位在先逻辑“与”后逻辑“或”的逻辑串汇总,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。

其他指令将OR清0。

(5)溢出位(OV)溢出位被置1,表明一个算术运算或浮点数比较指令执行时出现错误(错误:溢出、非法操作、不规范格式)。

后面的算术运算或浮点数比较指令执行结果正常的话OV位就清0。

(6)溢出状态保持位(OS)溢出状态保持位(或称为存储溢出位),OV被置1时OS也被置1;OV 被清0时OS仍保持。

所以它保存了OV位,可用于指明在先前的一些指令执行中是否产生过错误。

S7-300常用操作说明

S7-300常用操作说明

利用STEP7监视输入输出量的方法DP:高速数据传送1、打开PLC软件。

运行STEP7,打开PLC软件,将左侧的文件夹层层展开直到选中Blocks,如下图所示:2、找到VAT块。

在右侧找到V AT_??的块,双击打开。

一般此块排列在所有块的最后面,名称以V AT开头,后跟的下划线后的名称可能不一样,可以不管,如有不止一个,可以任意打开一个。

如下图:3、插入VAT块。

如没有找到此块,可以在自行添加一个,操作如下图,在右侧窗口空白处点击鼠标右键,选择Insert New Object(插入新对象)——Variable Table(变量表)4、选中后将出现如下窗口5、打开VAT块。

点击OK按钮即可生成V A T_1块。

打开V A T块,如下图:6、查找监视点地址。

在Address一列中输入想要监视的地址,如需要监视第一流自动转换开关状态,则察看接口表7、监视数字量输入点。

如上图,察看接口表得知,第一流转换开关的自动档输入点为I0.0,第二流转换开关的自动档输入点为I4.0。

将这两个地址输入到V AT窗口中的Address一栏中,如图:8、判断监视结果。

在第一行中输入I0.0后,回车后,光标自动移到第二行,第三列的Display format自动设为BOOL 类型。

在保证工控机与PLC联接正常的情况下,可以点上图方框所示的Monitor Variable按钮,则情况应如下图所示,窗口的标题栏变为高亮的青色,窗口右下角的RUN状态栏有绿色状态条不断闪动。

下图所示的监视结果,I0.0结果为绿色,true,I0.4结果为灰色,false,表明第一流转换开关处于手动档,第二流转换开关不处于手动档。

9、错误判断。

如在Address栏中输入要监视的量后字变为红色,说明输入有误,例如:10、修改显示格式。

所有的数字量输入输出点的数据类型都是BOOL型,即输入要监视的点后,使用系统给出的默认Display format(显示格式)BOOL就可以了,如要监视模拟量输入点(模拟量输出点无法用VAT 监视),应该将显示格式改为Decimal如下图所示,如需要监视第一流的液位采样输入点,看接口表得知,此点地址为386,则在V AT窗口的Address(地址)一栏中输入PIW386,在Display format 一栏中点右键,选择Decimal:11、监视模拟量输入。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西门子S7300 CPU寄存器状态字的用法
1.引言
CPU寄存器状态字的各位给出了有关指令状态或结果的信息以及所出现的错误,我们可以将二进制逻辑操作状态位信号状态直
接集成到程序中,以控制程序执行的流程。

2.状态字寄存器
先简单介绍一下CPU中状态字。

● 首次检查位:状态字的0位称作首次检查位,如果/FC 位的信号状态为“0”,则表示伴随着下一条逻辑指令,程序中将开始一个新的逻辑串。

FC前面的斜杠表示对FC取反。

● 逻辑运算结果:状态字的第1位为RLO 位(RLO= “逻辑运算结果”),在二进制逻辑运算中用作暂时存储位。

比如,一串逻辑指令中的某个指令检查触点的信号状态,并
根据布尔逻辑运算规则将检查的结果(状态位)与RLO位进行逻辑门运算,然后逻辑运算结果又存在RLO位中。

● 状态位:状态位(第2位)用以保存被寻址位的值。

状态位总是向扫描指令(A,AN, O,…)或写指令(=,S,R,)显示寻址位的状态(对于写指令,保存的寻址位状态是本条写指令执行后的该寻址位的状态)。

● OR位:在用指令OR执行或逻辑操作之前,执行与逻辑操作的时候,就需要用到O R这一状态位。

OR位表示先前执行的与逻辑操作产生的值为“1”,于是,逻辑操作或的执行结果就已被确定为“1”。

PLC
● OV位:溢出表示算术或比较指令执行时出现了错误。

根据所执行的算术或逻辑指令结果对该位进行设置。

● OS位:溢出存储位是与OV位一起被置位的,而且在更新算术指令之后,它能够保持这种状态,也就是说,它的状态不会由于下一个算术指令的结果而改变。

这样,即使是在程序的后面部分,也还有机会判断数字区域是否溢出或者指令是否含有无效实
数。

OS位只有通过如下这些命令进行复位:JOS(若OS = 1,则跳转)命令,块调用和块结束命令。

● CC1及CC0位:CC1和CC0(条件代码)位给出有关下列结果的相关信息:
• 算术指令结果
• 比较指令结果
• 字逻辑指令
• 在移位功能中,移出位相关信息。

可以用以下指令来检查条件代码CC1和CC 0。

CC1 CC0 检查完成后,如果:
0 0 A == 0 结果=0
1 0 A > 0 结果> 0
0 1 A < 0 结果< 0
● BR位:状态字的第8位称为二进制结果位。

它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字逻辑是否正确。

将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。

在梯形图的方块指令中,BR位
与ENO位有对应关系,用于表明方块指令是否被正确执行:如果执行出现了错误,B R位为0,ENO位也为0;如果功能被正确执行,BR位为1,ENO位也为1。

在用户编写的FB/FC程序中,应该对BR位进行管理,功能块正确执行后,使BR位为1,否则使其为0。

使用SAVE指令将RLO存入B R中,从而达到管理BR位目的。

状态字的9-15位未使用。

3.具体使用
下面我们结合STEP7中的指针编程来具体介绍条件码CC0/CC0的用法。

不同的指令在CPU中执行时间是不同的。

浮点数比定点数执行时间要长;字逻辑指令比位逻辑指令执行时间要长;在某些程序中适当使用状态字来进行编程可以减少CPU 程序的执行时间。

例1:比如说要比较一个DB中块的DBBO-DBB99这100个字节是正数是负数还是0,正数用1来表示;负数用-1来表示;0用0来表示。

并且将对应结果存入MB200开始的100个字节中。

我们通常的做法可能为:
如果利用条件码来进行编程,既可以减少程序的大小还会减少一定的指令执行时间,我们只需要将
中间的比较程序加以优化,即可以达到目的。

例2:根据状态位C0和CC1的状态而跳转的跳转功能指令JZ不改变任何状态位的状态,而且逻辑操作结果RLO值也会“随着”该跳转功能带到跳转程序段中,供用户程序其它逻辑操作之用(不改变/FC状态)。

P LC资料网
示例两个整数相减并需进行连续判断:L MW2
L MW8
-I
JZ ZERO // 如果结果等于“0”,则跳转
至标号ZERO处
// 结果不等于“0”时所执行的指令ZERO: // 结果等于“0”时,所要执行的指令
如果用户不熟悉JZ指令和状态位C0和C C1的具体含义,编程时就需要通过比较指令将比较结果存入一个二进制位中,再根据这个二进制位通过JC/JCN指令来控制程序的执行了。

例3:我们实际应用中可能要利用某些协议转换网关(比如说Hilscher公司的NTTAP 系列网关)来和某些串口协议的仪表进行通信时,会遇到CRC校验的问题,关于CRC 校验时需要判断溢出位是否为1的问题来进行程序的进一步计算。

我们以EURO2408的MODBUS通信时需要的CRC校验为例说明CRC校验的步骤:
1、装载16#FFFF到一个16位CRC寄存器;
2、将CRC寄存器的高8位字节与信息中的第一个8位字节相异或,结果返回到CRC 寄存器中;
3、将CRC寄存器数据向右移动一位;
4、如果溢出的位等于1,则将CRC寄存器与16#A001相异或,结果返回到CRC寄存器中;
4、如果溢出的位等于0,则重复第3步;
5、重复第3、4步骤,直到已经移位了8次;
6、将CRC寄存器的高8位字节与信息中的下一个8位字节相异或,结果返回到CRC 寄存器中;
7、重复第3步到第6步,直到信息中所有字节都与CRC寄存器相异或,并都移位了8次;
8、最后的CRC寄存器中的结果即为CRC 校验码,最后被添加到信息(数据)的末尾(交换!低8位
在前,高8位在后;)
在第4步中需要判断溢出的位是否为1,如何判断对于整个程序有着重要的影响。

我们可以用A>0指令来判断这个条件,具体代码的编写,有兴趣时大家可以根据上面的步骤编写一个自己的CRC程序。

4.结束语
在一般情况下,我们不必考虑这些状态位,但在某些情况下,利用这些状态位并结合一定的指令,可以给我们的编程带来更大的灵活性,同时对于进一步提高自己的编程水平也有一定的作用。

5.参考文献
[1].SIEMENS AG.STL编程手册V5.3。

[2].SIEMENS AG.S7-300指令及执行时间。

[3].廖常初.S7-300/400PLC应用技术
西门子PLC中存储区分类有
I、Q、M、SM、V、L、S、C、T等等,他们在编程时用
处不同
I存储区是输入触点,可以接收外部的电平信号
Q存储区是输出触点,用于提供电平信号
M为中间继电器触点,一般我们编程时多用于标志位
L为临时变量存储区,如LD10,这个变量只在当前的
程序段内起作用,调用子程序后或者子程序调用结束
返回后临时变量中的数值就可能丢失了。

D不是存储区也不是触点,这个一种数据类型,表示双字或实数类型,包含32个位,4个字节。

相关文档
最新文档