西门子S7300 CPU寄存器状态字的用法
西门子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报警
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
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指示灯状态
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-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-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状态字
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常用操作说明
利用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、监视模拟量输入。
S7-300 CPU模块元件和CPU面板功能 - 西门子plc
S7-300 CPU模块元件和CPU面板功能 - 西门子plcS7-300有20种CPU,分别适用于不同等级的控制要求。
本文介绍S7-300 CPU的状态与故障显示LED、运行模式、模式选择开关、微存储器卡、通信接口、电池盒、电源接线端子、实时种与运行时间计数器和I/O方面的专业知识。
S7-300有20种不同型号的CPU,分别适用于不同等级的控制要求。
有的CPU模块集成了数字量I/O,有的同时集成了数字量I/O和模拟量I/O。
CPU内的元件封装在一个牢固而紧凑的塑料机壳内,面板上有状态和故障指示LED、模式选择开关和通信接口。
大多数CPU还有后备电池盒,存储器插槽可以插入多达数兆字节的Flash EPROM微存储器卡(检查MMC),用于掉电后程序和数据的保存。
CPU 318-2的面板如图所示。
1、状态与故障显示LEDCPU模块面板上的LED的意义如下:①SF(系统出错/故障显示,红色):CPU硬件故障或软件错误时亮。
②BATF(电池故障,红色):电池电压低或没有电池时亮。
③DC5V(+5V电源指示,绿色):CPU和S7-300总线的5V电源正常时亮。
④FRCE(强制,黄色):至少有一个I/O被强制时亮。
⑤RUN(运行方式,绿色):CPU处于RUN状态时亮;重新启动时以2Hz的频率闪亮;HOLD状态时以0.5Hz的频率闪亮。
⑥STOP(停止方式,黄色):CPU在STOP、HOLD状态或重新启动时常亮;请求存储器复位时以0.5Hz的频率闪亮,正在执行存储器复位时以2Hz的频率闪亮⑦BUSF(总线错误,红色):PROFIBUS-DP接口硬件或软件故障时亮,集成有DP接口的CPU才有此LED。
集成有两个DP接口的CPU有两个对应的LED(BUS1F和BUS2F)。
2、CPU的运行模式①CPU有4中操作模式:STOP(停机)、STARTUP(启动)、RUN(运行)和HOLD(保持)。
在所有的模式中,都可以通过MPI接口与其他设备通信。
西门子S7状态字使用
.引言CPU寄存器状态字的各位给出了有关指令状态或结果的信息以及所出现的错误,我们可以将二进制逻辑操作状态位信号状态直接集成到程序中,以控制程序执行的流程。
2.状态字寄存器先简单介绍一下CPU中状态字。
● 首次检查位:状态字的0位称作首次检查位,如果/FC 位的信号状态为“0”,则表示伴随着下一条逻辑指令,程序中将开始一个新的逻辑串。
FC前面的斜杠表示对FC取反。
● 逻辑运算结果:状态字的第1位为RLO 位(RLO= “逻辑运算结果”),在二进制逻辑运算中用作暂时存储位。
比如,一串逻辑指令中的某个指令检查触点的信号状态,并根据布尔逻辑运算规则将检查的结果(状态位)与RLO位进行逻辑门运算,然后逻辑运算结果又存在RLO位中。
● 状态位:状态位(第2位)用以保存被寻址位的值。
状态位总是向扫描指令(A,AN,O,…)或写指令(=,S,R,)显示寻址位的状态(对于写指令,保存的寻址位状态是本条写指令执行后的该寻址位的状态)。
● OR位:在用指令OR执行或逻辑操作之前,执行与逻辑操作的时候,就需要用到OR这一状态位。
OR位表示先前执行的与逻辑操作产生的值为“1”,于是,逻辑操作或的执行结果就已被确定为“1”。
● OV位:溢出表示算术或比较指令执行时出现了错误。
根据所执行的算术或逻辑指令结果对该位进行设置。
● OS位:溢出存储位是与OV位一起被置位的,而且在更新算术指令之后,它能够保持这种状态,也就是说,它的状态不会由于下一个算术指令的结果而改变。
这样,即使是在程序的后面部分,也还有机会判断数字区域是否溢出或者指令是否含有无效实数。
OS位只有通过如下这些命令进行复位:JOS(若OS = 1,则跳转)命令,块调用和块结束命令。
● CC1及CC0位:CC1和CC0(条件代码)位给出有关下列结果的相关信息:• 算术指令结果• 比较指令结果• 字逻辑指令• 在移位功能中,移出位相关信息。
西门子S7300 CPU寄存器状态字的用法
西门子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(条件代码)位给出有关下列结果的相关信息:• 算术指令结果• 比较指令结果• 字逻辑指令• 在移位功能中,移出位相关信息。
西门子S7-300PLC的-RLO-置位、清零、保存指令及示例
西门子S7-300PLC的RLO 置位、清零、保存指令及示例置位指令符号: SET功能: RLO = 1复位指令符号: CLR功能:RLO = 0例3.1.17RLO保存指令符号: SAVE功能:(RLO) → BR说明:将RLO的状态保存到状态字寄存器中的BR位中。
西门子PLC中的s与set的指令有什么区别S是根据RLO状态来置位,SET是将 RLO状态来置位。
1、S置位:如果 RLO = 1,则使用置位指令(S),可以将寻址位置位为“1” ﻫ例如: ﻫA I0.0S Q0.0//如果I0.0为1( RLO = 1),则Q0.0也为1;如果I0.0为0( RL O = 0),则Q0.0也为0.。
2、SET RLO 置位:使用 RLO 置位(SET)指令,可以将 RLO 的信号状态置为“1”。
例如:SET//将RLO 置位ﻫ=M 0.1//RLO为1,则M 0.1也为1.西门子梯形逻辑06/11/24(2006-11-24 09:23:57)转载▼分类:工作日志1.1位逻辑指令概述说明位逻辑指令处理两个数字,“1”和“0”。
这两个数字构成二进制数字系统的基础。
这两个数字“1”和“0”称为二进制数字或二进制位。
在接点与线圈领域,“1”表示动作或通ﻫ电,“0”表示未动作或未通电。
位逻辑指令扫描信号状态1和0,并根据布尔逻辑对它们进行组合。
这些组合产生结果1ﻫ或0,称为“逻辑运算结果(RLO)”。
ﻫ由位逻辑指令触发的逻辑操作可执行各种类型的功能。
可执行下列功能的位逻辑指令:· ---| |--- 常开接点(地址)ﻫ·---| / |---常闭接点(地址)ﻫ· ---(SAVE) 将RLO 存入BR存储器ﻫ· XOR 位异或· ---( ) 输出线圈·---( # )---中间输出· ---|NOT|--- 信号流反向ﻫ下列指令当RLO 为1时起作用,执行下列功能:ﻫ·---( S ) 线圈置位·---( R ) 线圈复位· SR置位复位触发器ﻫ·RS复位置位触发器其它指令对上升沿和下降沿有反应,执行下列功能:· ---(N)--- RLO下降沿检测ﻫ· ---(P)--- RLO 上升沿检测ﻫ· NEG 地址下降沿检测·POS 地址上升沿检测ﻫ·立即读操作ﻫ·立即写操作1.2---| |---常开接点(地址)ﻫ符号ﻫ<地址>ﻫ---| |---ﻫ说明ﻫ当保存在指定<地址>中的位值等于“1”时,---||---(常开接点)闭合。
西门子S7300 CPU寄存器状态字的用法分析
西门子S7300 CPU寄存器状态字的用法分析1.引言CPU寄存器状态字的各位给出了有关指令状态或结果的信息以及所出现的错误,我们可以将二进制逻辑操作状态位信号状态直接集成到程序中,以控制程序执行的流程。
2.状态字寄存器先简单介绍一下CPU中状态字。
● 首次检查位:状态字的0位称作首次检查位,如果/FC 位的信号状态为“0”,则表示伴随着下一条逻辑指令,程序中将开始一个新的逻辑串。
FC前面的斜杠表示对FC取反。
● 逻辑运算结果:状态字的第1位为RLO 位(RLO= “逻辑运算结果”),在二进制逻辑运算中用作暂时存储位。
比如,一串逻辑指令中的某个指令检查触点的信号状态,并根据布尔逻辑运算规则将检查的结果(状态位)与RLO位进行逻辑门运算,然后逻辑运算结果又存在RLO位中。
● 状态位:状态位(第2位)用以保存被寻址位的值。
状态位总是向扫描指令(A,AN,O,…)或写指令(=,S,R,)显示寻址位的状态(对于写指令,保存的寻址位状态是本条写指令执行后的该寻址位的状态)。
● OR位:在用指令OR执行或逻辑操作之前,执行与逻辑操作的时候,就需要用到OR这一状态位。
OR位表示先前执行的与逻辑操作产生的值为“1”,于是,逻辑操作或的执行结果就已被确定为“1”。
● OV位:溢出表示算术或比较指令执行时出现了错误。
根据所执行的算术或逻辑指令结果对该位进行设置。
● OS位:溢出存储位是与OV位一起被置位的,而且在更新算术指令之后,它能够保持这种状态,也就是说,它的状态不会由于下一个算术指令的结果而改变。
这样,即使是在程序的后面部分,也还有机会判断数字区域是否溢出或者指令是否含有无效实数。
OS位只有通过如下这些命令进行复位:JOS(若OS = 1,则跳转)命令,块调用和块结束命令。
● CC1及CC0位:CC1和CC0(条件代码)位给出有关下列结果的相关信息:• 算术指令结果• 比较指令结果• 字逻辑指令• 在移位功能中,移出位相关信息。
西门子PLC高速计数器的控制字和状态字介绍
每个高速计数器都有一个状态字节,状态位表示当前计数方向以及当前值是否大于或等于预置值。每个高速计数器状态字节的状态位如表8所示。状态字节的0-4位不用。监控高速计数器状态的目的是使外部事件产生中断,以完成重要的操作。
表7 HSC的控制字节
HSC0
HSC1
HSC2
HSC3
HSC4
HSC5
说明
SM157.5
向HSC写入新预置值:
0 =无更新1 =更新预置值
SM37.6
SM47.6
SM57.6
SM137.6
SM147.6
SM157.6
向HSC写入新当前值:
0 =无更新1 =更新当前值
SM37.7
SM47.7
SM57.7
HSC允许:
0 =禁用HSC 1 =启用HSC
SM37.0
SM47.0
SM57.0
SM147.0
复位有效电平控制:
0=复位信号高电平有效;1=低电平有效
SM47.1
SM57.1
起动有效电平控制:
0=起动信号高电平有效;1=低电平有效
SM37.2.
SM47.2
SM57.2
SM147.2
正交计数器计数速率选择:
0=4×计数速率;1=1×计数速率
SM37.3
每个高速计数器均有一个控制字节它决定了计数器的计数允许或禁用方向控制仅限模式和2或对所有其他模式的初始化计数方向装入当前值和预置值
1.控制字节
定义了计数器和工作模式之后,还要设置高速计数器的有关控制字节。每个高速计数器均有一个控制字节,它决定了计数器的计数允许或禁用,方向控制(仅限模式0、1和2)或对所有其他模式的初始化计数方向,装入当前值和预置值。控制字节每个控制位的说明如表7所示。
西门子s7-300CPU指示灯状态
S7-300的CPU型号很多且不断更新,所以只列出CPU3x系列部分型号的技术参数,见表。其中CPU3x-2DP表示该CPU模板上集成有现场总线(PROFIBUS-DP)通信接口。
标准型CPU模板主要技术特性表
型号
装载存储RAMCPU313CPU314CPU315CPU315-2DPCPU316CPU318-2DP2040809619264器(KB)
E2PROM最大256最大512最大512最大512最大512最大4096工作存储器(KB)RAM12
位操作0.6
字操作
指令执行时
间(mm)
定点加
浮点加
最大数字I/O点数
最大模拟I/O通道数
最大配置
定时器
计数器
位存储器2
3
60
128
3பைடு நூலகம்24
0.3
1
2
50
512
6448
0.3
1
2
50
1024
12864
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的型号;
PLC状态字
什么是状态字?状态字的作用——西门子S7系列PLC2009-10-03 16:33:17| 分类:西门子PLC S7-200| 标签: |字号大中小订阅状态字用于表示CPU执行指令时所具有的状态。
一些指令是否执行或以何方式执行可能取决于状态字中的某些位;执行指令时也可能改变状态字中的某些位,也能在位逻辑指令或字逻辑指令中访问并检测他们。
状态字的结构如下:31……………9 8 7 6 5 4 3 2 1 0状态字的位0称为首位检测位。
若位的状态为0,则表明一个梯形逻辑网络的开始,或指令为逻辑串的第一条指令。
CPU对逻辑串第一条指令的检测(称为首位检测)产生的结果直接保存在状态字的RLO位中,经过首次检测存放在RLO中的0或1被称为首位检测结果。
位在逻辑串的开始时总是0,在逻辑串指令执行过程中位为1,输出指令或与逻辑运算有关的转移指令(表示一个逻辑串结束的指令)将清0。
(2)逻辑操作结果(RLO)状态字的位1称为逻辑操作结果RLO(Result of Logic Operation)。
该位存储逻辑指令或算术比较指令的结果。
在逻辑串中,RLO位的状态能够表示有关信号流的信息。
RLO的状态为1,表示有信号流(通);为0,表示无信号流(断)。
可用RLO触发跳转指令。
(3)状态位(STA)状态字的位2称为状态位。
状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。
如果一条指令是对存储区操作的位逻辑指令,则无论是对该位的读或写操作,STA总是与该位的值取得一致;对不访问存储区的位逻辑指令来说,STA位没有意义,此时它总被置为1。
(4)或位(OR)状态字的位3称为或位(OR)。
在先逻辑“与”后逻辑“或”的逻辑串中,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。
其它指令将OR位清0。
(5)溢出位(OV)状态字的位4称为溢出位。
溢出位被置1,表明一个算术运算或浮点数比较指令执行时出现错误(错误:溢出、非法操作、不规范格式)。
学习S7-300状态字的诀窍,有3个状态位与我们无关
学习S7-300状态字的诀窍,有3个状态位与我们无关状态字是学习S7-300/400的难点之一。
状态位一共9位,我曾经有一个疑问,为什么从来没有看到某些状态位在用户程序中应用的例子?深化学习后才知道,有3个状态位与用户程序无关,初学者完全可以不用管它们。
它们是首次检测位/FC、状态位STA和“或”位OR。
S7-200等plc用LD和LDI指令来表示电路块开头的常开触点和常闭触点。
S7-300/400没有这样的指令,它是用首次检测位/FC的状态为0来表示一个梯形规律程序段的开头,或串并联电路块的第一条指令。
下面是一个程序段的程序:A I0.0A I0.1= Q0.0执行第一条A指令时,首次检测位为0,CPU将I0.0的值存入状态字的第1位RLO(规律运算结果)。
这条指令并不做“与”运算。
由于此时只有一个操作数,也不行能做“与”运算。
可以把第一条A指令改为O(“或”)、X(“异或”)指令,它们都是将该指令中I0.0的值保存到RLO。
状态字的第2位为状态位(STA),STA位与位规律指令中的位变量的值全都。
它只是用于语句表的程序状态监控。
状态字的第3位为或位(OR),在将两条串联电路并联时,CPU首先计算出两条串联电路的“与”运算结果,它们分别用RLO和OR位来保存,然后再对它们做“或”运算。
从上面的分析可知,这3个状态位用于CPU 的内部操作或监控,它们与用户程序毫无关系。
下面还有两个有力的证据可以确认这个结论。
1)指令“L STW”将状态字装载到累加器1,但是它不装载状态字的/FC、STA和OR位。
为什么?由于这3位与用户程序无关,用户程序得到它们也没用。
2)与状态位有关的指令有规律掌握指令和状态位触点指令,这些指令都与这3个状态位无关。
S7-300CPU存储器介绍及存储卡使用
S7-300CPU存储器介绍及存储卡使用1. S7 300存储区概述S7-300 PLC的存储区可以划分为四个区域:装载存储器(Load Memory)、工作存储器(Work Memory)、系统存储器(System Memory)和保持存储区(Non-Volatile memory),具体如图7-1图7-11. 系统存储器:系统存储器用于存放输入输出过程映像区(PII,PIQ)、位存储器(M)、定时器(T)和计数器(C))、块堆栈和中断堆栈以及临时存储器(本地数据堆栈)。
2. 工作存储器:工作存储器仅包含运行时使用的程序和数据。
RAM 工作存储器集成在CPU中,RAM中的内容通过电源模块供电或后备电池保持。
除了S7 417-4 CPU可以通过插入专用的存储卡来扩展工作存储器外,其他PLC的工作存储器都无法扩展。
3. 装载存储器:装载存储器是用于存放不包含符号地址分配或注释(这些保留在编程设备的存储器中)的用户程序。
装载存储器可以是存储器卡、内部集成的RAM或内部集成的EPROM.4. 保持存储器:保持存储器是非易失性的RAM,通过组态可以在PLC掉电后即使没有安装后备电池的情况下,保存一部分位存储器(M)、定时器(T)、计数器(C)和数据块(DB)。
在设置CPU参数时一定要指定要保持的区域。
(注意:由于S7-400 PLC没有非易失性RAM,即使组态了保持区域,再掉电时若没有后备电池,也将丢失所有数据。
这是S7-300 PLC 与S7-400 PLC 的重要区别)1) 当在step7 中执行下装(download)时,会把编程设备中的用户程序下装到CPU的装载存储区,同时会把运行时使用的程序和数据写入工作存储区(如OB1和数据块)。
2) 若CPU没有后备电池,当系统断电时,在工作存储器中定义了保持特性的数据块会把数据写入保持存储器中,上电后保持存储器会把断电时的数据写入到工作存储区,保证了运行数据断电不丢失(过程如图7-1中与箭头所示)。
精心编制的 S7 300 PID 使用说明
精心编制的 S7 300 PID 使用说明精心编制的s7-300pid使用说明定时中断组织块ob35西门子s7-300/400存有9个定时中断非政府块:ob30、ob31、ob32、ob33、ob34、ob35、ob36、ob37、ob38。
cpu可以定时中断去执行这些模块中的程序,即:每隔一段时间就停止当前的程序,转去执行定时中断组织块中的程序,执行结速后再返回。
相当于单片机的定时中断。
这9个组织块功能相同,你可以选择其中之一使用,区别是它们的中断优先级不同,如果程序中用到了多个定时中断组织块,应设好它们的执行优先级。
s7-300cpu需用的定时中断非政府模块就是ob35,在300站点的硬件组态中,关上cpu属性设置可以看见其它的中断非政府块为灰色。
ob35预设的调用时间间隔为100ms我们可以根据须要修改,定时范围就是1-60000毫秒(ms)设置中断时间间隔如下图右图注意:设置的时间必须大于ob35中程序执行所花费的时间。
比如:如果中断时间间隔为50ms而ob35中的程序花费的时间就是70ms,那么ob35中的程序还没有继续执行完就产生第二次中断,程序就可以失效,这似乎就是我们不敢看见的结果。
以现在的技术,让你间隔一小时去月球拿一块石头你能做到吗去月球所用的时间大于去月球的时间间隔,你做不到吧恰当设置:中断时间间隔大于ob35中程序执行完一次所需的时间使用fb41实现pid控制在自动化领域中常常必须使用pid掌控,而常规仪表里一个控制器就就可以同时实现一路的pid掌控,如果必须现实多路的pid掌控成本就可以显得非常低,而且不易于我们集中控制与管理。
经过学习西门子s7-300plc,我们可以使用模块fb41来实现pid控制,fb41就相当于我们常规仪表里的控制器,既然是pid控制器就应该能够设定p、i、d参数。
即:比例度、积分时间、微分时间。
常规仪表的面板上可以更改pid参数,又有手动/自动切换按钮等。
PLC状态字
什么是状态字?状态字的作用——西门子S7系列PLC2009-10-03 16:33:17| 分类:西门子PLC S7-200| 标签: |字号大中小订阅状态字用于表示CPU执行指令时所具有的状态。
一些指令是否执行或以何方式执行可能取决于状态字中的某些位;执行指令时也可能改变状态字中的某些位,也能在位逻辑指令或字逻辑指令中访问并检测他们。
状态字的结构如下:31……………9 8 7 6 5 4 3 2 1 0状态字的位0称为首位检测位。
若位的状态为0,则表明一个梯形逻辑网络的开始,或指令为逻辑串的第一条指令。
CPU对逻辑串第一条指令的检测(称为首位检测)产生的结果直接保存在状态字的RLO位中,经过首次检测存放在RLO中的0或1被称为首位检测结果。
位在逻辑串的开始时总是0,在逻辑串指令执行过程中位为1,输出指令或与逻辑运算有关的转移指令(表示一个逻辑串结束的指令)将清0。
(2)逻辑操作结果(RLO)状态字的位1称为逻辑操作结果RLO(Result of Logic Operation)。
该位存储逻辑指令或算术比较指令的结果。
在逻辑串中,RLO位的状态能够表示有关信号流的信息。
RLO的状态为1,表示有信号流(通);为0,表示无信号流(断)。
可用RLO触发跳转指令。
(3)状态位(STA)状态字的位2称为状态位。
状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。
如果一条指令是对存储区操作的位逻辑指令,则无论是对该位的读或写操作,STA总是与该位的值取得一致;对不访问存储区的位逻辑指令来说,STA位没有意义,此时它总被置为1。
(4)或位(OR)状态字的位3称为或位(OR)。
在先逻辑“与”后逻辑“或”的逻辑串中,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。
其它指令将OR位清0。
(5)溢出位(OV)状态字的位4称为溢出位。
溢出位被置1,表明一个算术运算或浮点数比较指令执行时出现错误(错误:溢出、非法操作、不规范格式)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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个字节。