西门子功能块
- 格式:docx
- 大小:51.97 KB
- 文档页数:44
西门子 PLC中OB、FC、FB、SFC、SFB中功能块使用概述(2013-12-05 16:13:52)S7-300/400PLC程序采用结构化程序,把程序分成多个模块,各模块完成相应的功能。
结合起来就能实现一个复杂的控制系统。
就像高级语言一样,用子程序实现特定的功能,再通过主程序调用各子程序,从而能实现复杂的程序。
在S7-300/400PLC中写在OB1模块里和程序就是主程序,子程序写在功能(FC),功能块(FB)。
FC运行是产生临时变量执行结束后数据就丢失-----不具有储存功能FB运行时需要调用各种参数,于是就产生了背景数据块DB。
例如用FB 41来作PID控制,则它的PID控制参数就要存在DB里面。
FB具有储存功能系统功能块(SFB)和系统功能(SFC)也是相当于子程序,只不过SFB 和SFC是集成在S7 CPU中的功能块,用户能直接调用不需自已写程序。
SFC与FC不具有储存功能,FB和SFB具有储存功能。
OB模块相当于子程序,负责调用其他模块。
如果程序简单只需要OB就可以实现。
用西门子PLC编程时,可以用到功能块FB和功能FC(FB、FC都是组织块)资料上说FB与FC都可以作为用户编写的子程序,但是我不明白这两个组织块之间到底有什么区别阿?在应用上到底有什么不同之处吗?FB--功能块,带背景数据块FC--功能,相当于函数他们之间的主要区别是:FC使用的是共享数据块,FB使用的是背景数据块举个例子,如果您要对3个参数相同的电机进行控制,那么只需要使用FB编程外加3个背景数据块就可以了,但是,如果您使用FC,那么您需要不断的修改共享数据块,否则会导致数据丢失。
FB确保了3个电机的参数互不干扰。
FB,FC本质都是一样的,都相当于子程序,可以被其他程序调用(也可以调用其他子程序)。
他们的最大区别是,FB与DB配合使用,DB中保存着F B使用的数据,即使FB退出后也会一直保留。
FC就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。
西门子plc功能块图程序示例
功能块图( FBD)使用类似于布尔代数的图形逻辑符号来表示控制逻辑,一些复杂的功能用指令框表示,功能框图类似于与门、或门的方框,来表示逻辑关系。
一般用一个指令框表示一种功能,框图内的符号表达了该框图的运算功能,框的左侧为逻辑运算的输入变量,右侧为输出变量,框左侧的小圆圈表示对输入变量取反(“非”运算),框右侧的小圆圈表示对运算结果再进行“非”运算。
方框被“导线”连接在一起,信号自左向右流动。
FBD比较适合于有数字电路基础的编程人员使用。
图功能块图程序示例
利用功能块图( FBD)可以查看到像普通逻辑门图形的逻辑盒指令。
它没有梯形图编程器中的触点和线圈,但有与之等价的指令,这些指令是作为盒指令出现的,程序逻辑是由这些盒指令之间的连接决定的。
也就是说,一个指令(如AND盒)的输出可以用来允许启动另一条指令(如定时器),这样可以建立所需要的控制逻辑。
这样的连接思想可以解决范围广泛的逻辑问题。
功能块图( FBD)编程语言有利于程序流的跟踪,但在目前使用较少。
西门子S7-300 中FB功能块的使用方法:1.创建功能块FB1准备完成如下功能:将“整型”变量转换成“实型”变量2.打开功能块FB13.在功能块FB1中添加入口参数、出口参数、静态变量入口参数=IN0 ---> 整型(INT)出口参数=OUT1 ---> 实型(REAL)静态变量=STAT2 ---> 整型(INT)局部变量=TEMP3 ---> 长整型(DINT)4.创建背景数据块DB25.打开DB2背景数据块,可以看到系统默认建立了三个数据IN0 ---> 入口参数(整型)OUT1 ---> 出口参数(实型)STAT2---> 静态变量(整型)6.打开FB1功能块,编写如下代码,实现将“整型”变量转换成“实型”变量同时再编写一段静态变量自加1代码7.打开OB1主程序,添加FB1功能块如何确定程序参数类型的块编号并传送给FC ?介绍使用以下程序代码可确定参数类型(BLOCK_FC, BLOCK_FB, TIMER or COUNTER)的编号。
例1 :FB 块FB1 变量声明中定义了“Timer”类型的变量“Time_1”,在FB2 中调用FB1,将定时器“T5”传递给变量“Time_1”。
如图01 所示程序代码中数值5 表示“T5”。
图. 01例2 FCFC1 变量声明中定义了“Timer”类型的变量“Time_1”,在FC2 中调用FC1,将定时器“T8”传递给变量“Time_1”。
如图02 所示程序代码中数值8 表示“T8”。
图. 02在使用多重实例时,需要在图01 所示程序中增加以下代码:TAR2 //多重实例偏移地址LAR1 P##Time_1+AR1 //多重实例偏移地址与当前地址相加L W[AR1,P#0.0]T MW00“BLOCK_DB”类型参数在调用FC 时不可以直接传送给FC 。
如果在调用功能时试图使用此参数类型,将产生如下的错误消息:“非法的参数传输<参数名>”“BLOCK_DB”类型参数仅在FB 被调用(从一个FB 或FC 中)时可被传送。
OB、FC、FB、SFC、SFB的区别
S7-300/400PLC程序采用结构化程序,把程序分成多个模块,各模块完成相应的功能。
结合起来就能实现一个复杂的控制系统。
就像高级语言一样,用子程序实现特定的功能,再通过主程序调用各子程序,从而能实现复杂的程序。
在S7-300/400PLC中写在OB1模块里和程序就是主程序,子程序写在功能(FC),功能块(FB)。
FC运行是产生临时变量执行结束后数据就丢失--------------不具有储存功能
FB运行时需要调用各种参数,于是就产生了背景数据块DB。
例如用FB41来作PID控制,则它的PID控制参数就要存在DB里面。
FB具有储存功能
系统功能块(SFB)和系统功能(SFC)也是相当于子程序,只不过SFB和SFC是集成在S7 CPU中的功能块,用户能直接调用不需自已写程序。
SFC与FC 不具有储存功能,FB和SFB具有储存工办。
OB模块相当于主程序,负责调用其他模块。
如果程序简单只需要OB就可以实现。
FB中可以定义静态变量,每个FB可以定义多个背景数据块,来代表同种类型的不同设备。
这样只通过一个功能块就可以完成多个设备的变程。
而FC中不可以定义背景数据块,一般情况下只能使用共享数据块中的数据,但同时也可以通过全局变量定义方式来访问其他背景数据块。
我个人的经验:在有多个类似的设备的时候,尽量抽象出这些设备的共同点,编写一个FB,然后通过FC来挂点或处理一些不同点。
SFC14读模块说明:
W#16#294:格式必须这样写,294是组态直流装置对应的P I W 660转化来的16进制数。
: P#DB9.DBX0.0表示PLC 从装置读的状态,从DB9.DBW0开始,长度是20个字节也就是10个字。
DB9.DBW0是第一个状态字(必须的(装置中设
U734[1]=K32)),DB9.DBW2是读出的速度值(装置
中设U734[2]=166),DB9.DBW4读出的电流值(装置
中设U734[3]=116)。
当然后两个到第10个字都可以
自定义(设置参数就可)。
DB9.DBW42没有什么实际意义,随便填一个。
P#DB9.DBX0.0
BYTE 20
SFC15写模块说明:
W#16#294:格式必须这样写,294是组态直流装置对应的P Q W 660转化来的16进制数。
: P#DB9.DBX20.0表示从PLC 写入装置的控制,从DB9.DBW20开始,长度是20个字节也就是10个
字。
DB9.DBW20是第一个控制字(必须的(装置中
设P648=3001)),控制字第0位是DB9.DBX21.0,
第15位是DB9.DBX20.7;DB9.DBW22是给定速度
值(装置中设P438=3002); 给定转矩(装置中设
P607=3003)。
DB9.DBW40没有什么实际意义,随便填一个。
P#DB9.DBX20.0
BYTE 20。
STEP7常用功能块教程STEP7(Siemens Totally Integrated Automation Portal)是西门子公司的一款集成的自动化工程软件,用于配置、程序和诊断西门子的可编程逻辑控制器(PLC)系统。
STEP7具有许多强大的功能块,可以帮助用户更高效地编程和管理PLC系统。
本文将介绍一些常用的STEP7功能块和它们的应用。
1.FC(函数块):函数块是一种可重用的程序单元,允许用户编写自定义函数。
通过使用函数块,可以将常用的代码片段封装为函数,以便在不同的程序中重复使用。
例如,可以创建一个函数块来实现PID控制算法,使其可以在不同的工程中重复使用。
2.FB(功能块):功能块是STEP7中的另一种可重用程序单元,类似于函数块。
不同之处在于,功能块可以包含状态信息,并可以在程序中直接调用。
功能块通常用于处理系统的输入和输出信号,并执行相关的逻辑操作。
例如,可以创建一个功能块来处理PLC的输入和输出模块,并根据逻辑条件执行相应的控制操作。
3.OB(组织块):组织块是STEP7中的一种特殊类型的函数块,用于定义PLC程序的执行顺序和事件触发条件。
组织块分为不同的类型,如主程序(OB1)和中断(OB35),每个类型都有不同的功能和触发条件。
通过使用组织块,可以精确控制PLC程序的执行流程,并根据需要触发特定的事件。
4.DB(数据块):数据块是STEP7中用于存储和管理数据的容器。
数据块包含一个或多个变量,可以在PLC程序中访问和使用。
通过使用数据块,可以将相关的数据组织在一起,并轻松地进行数据的传输和处理。
例如,可以创建一个数据块来存储传感器和执行器的输入和输出数据,并在程序中使用这些数据进行逻辑判断和控制操作。
5.SFC(顺序功能图):顺序功能图是一种图形化编程语言,用于描述程序的执行顺序和组织结构。
SFC可以将PLC程序分解为不同的步骤,并定义不同的条件和转换规则。
通过使用SFC,可以更直观地理解和设计复杂的PLC程序,并使其易于修改和维护。
西门子STEP7常用功能块说明西门子step7常用功能块说明【工控老鬼】(2021-10-2609:02:55)转载标签:plc培训plc实例感悟人生工控老鬼深圳plc培训分类:plc1.sfb0\相容iec61131-3的计数和计时功能块2.sfb41\用于pid控制41---连续42---离散43---用作将一个模拟量转变为与之对应的周期性控制器量脉冲信号,该脉冲的充电电流与模拟量的数值大小成正比.3.sfc0\用于读写plc中的系统时间4.sfc14\用于读写dp从站中的一致性数据如:读写用dp通讯的变频器中的控制字5.sfc20\块拷贝,块充填6.sfc46\sfc46并使plc步入stop状态,挺有价值的:可以当软件陷阱,或利用上位掌控plc停机7.sfc60\mpi的gd通讯8.iecfunctionblocksfc22\fc22---限幅输出fc25,fc27---3个数比大小9.pidcontrolblocksfb41/42/43同sfb41\fb58\用于温度控制pid10.ti-s7convertingblocksfc105\模拟量输入输出的比例和数据类型转换【工控旧鬼】(2021-10-2609:02:55)转载标签:plc培训plc实例感悟人生工控老鬼深圳plc培训分类:plc1.sfb0\相容iec61131-3的计数和计时功能块2.sfb41\用于pid控制41---连续42---离散43---用作将一个模拟量转变为与之对应的周期性控制器量脉冲信号,该脉冲的充电电流与模拟量的数值大小成正比.3.sfc0\用于读写plc中的系统时间4.sfc14\用于读写dp从站中的一致性数据如:读写用dp通讯的变频器中的控制字5.sfc20\块拷贝,块充填6.sfc46\sfc46并使plc步入stop状态,挺有价值的:可以当软件陷阱,或利用上位掌控plc停机7.sfc60\mpi的gd通讯8.iecfunctionblocksfc22\fc22---限幅输出fc25,fc27---3个数比大小9.pidcontrolblocksfb41/42/43同sfb41\fb58\用于温度控制pid10.ti-s7convertingblocksfc105\模拟量输入输出的比例和数据类型转换。
S7-300功能块及相关名词解释OB1 是用于循环处理的组织块(主程序),它可以调用别的逻辑块,或被中断程序(组织块)中断。
OB1 中可以调用其它逻辑块(FB, SFB, FC 或SFC)。
Cycle time 循环时间是指操作系统执行一次起动循环时间监控数据写入输出模块读取输入模块状态执行用户程序执行其他任务循环操作所需的时间,又称为扫描循环时间(Scan Cycle Time)或扫描周期。
HMI 人机接口操作面板WinAC 基于Windows 和标准的接口(ActiveX,OPC),提供软件PLC 或插槽PLC。
S7-300 是模块式中小型PLC,最多可以扩展32 个模块。
可以组成MPI、PROFIBUS 和工业以太网等MPI 多点接口网络模块诊断可以诊断出以下故障:失压,熔断器熔断,看门狗故障,EPROM、RAM 故障。
模拟量模块共模故障、组态/参数错误、断线、上下溢出过程中断数字量输入信号上升沿、下降沿中断,模拟量输入超限,CPU 暂停当前程序,处理OB40。
状态与故障显示LED1、SF(系统出错/故障显示,红色):CPU 硬件故障或软件错误时亮。
2、BATF(电池故障,红色):电池电压低或没有电池时亮。
3、DC 5V(+5V 电源指示,绿色): 5V 电源正常时亮。
4、FRCE(强制,黄色):至少有一个I/O 被强制时亮。
5、RUN(运行方式,绿色):CPU 处于RUN 状态时亮;重新启动时以2 Hz 的频率闪亮6、HOLD(单步、断点)状态时以0.5Hz 的频率闪亮。
7、STOP(停止方式,黄色):CPU 处于STOP,HOLD 状态或重新启动时常亮。
8、BUSF(总线错误,红色)模式选择开关(1)RUN-P(运行-编程)位置:运行时还可以读出和修改用户程序,改变运行方式。
(2)RUN (运行)位置:CPU 执行、读出用户程序,但是不能修改用户程序。
(3)STOP(停止)位置:不执行用户程序,可以读出和修改用户程序。
STEP-7功能块FC105的使用方法1、FC105是处理模拟量(1~5V、4~20MA等常规信号)输入的功能块,在
其中,管脚的定义如下:
IN---------模拟量模块的输入通道地址,在硬件组态时分配;
HI_LIM---现场信号的最大量程值;
LO_LIM--现场信号的最小量程值;
BIPOLAR—极性设置,如果现场信号为+10V~-10V(有极性信号),则设置为1,
如果现场信号为4MA~20MA(无极性信号);则设置为0;
OUT-------现场信号值(带工程量单位);信号类型是实数,所以要用MD200来存放;
RET_V AL-FC105功能块的故障字,可存放在一个字里面。
如:MW50;
2、热电偶、热电阻信号的处理,该类信号实际值是通道整数值的1/10;
3、FB41 PID控制模块的使用;
PID模块是进行模拟量控制的模块,可以完成恒压、恒温等控制功能在
4、脉冲输出模块FB43,该模块是将模拟量转换成比率的脉冲输出。
Libraries\standard library\
PID Control block\FB43,将其调入OB1中,首先分配背景数据块DB43,再给各个管脚输入地址;如下:
将程序下载调试,看PID的温度调节作用如何?如果控制的不好,改变P、I参数!
5、果现场是阀门等执行机构,只需要将通道地址输入PID的输出通道,如下:
6、如果单独控制变量输出通道,可使用FC106模块,FC106是处理模拟量(1~5V、4~20MA等常规信号)输出的功能块,在。
西门子PLC中FB和FC区别、管脚定义、临时变量引起的麻烦FB和FC区别FB--功能块,带背景数据块 FC--功能,相当于函数FB,FC块均相当于子程序,既可以调用其它FB,FC块,也可以被OB,FB,FC块调用。
他们之间的主要区别是:1. FB使用背景数据块作为存储区,FC没有独立的存储区,使用全局DB或M区2. FB局部变量有STAT和TEMP,FC由于没有自己的存储区因此不具有STAT,TEMP本身不能设置初始值。
本质上,FB,FC的实现目的是相同的;无论何种逻辑要求,FB,FC均可实现。
只是实现方式效率不同,这也和工程师个人编程习惯有关。
FB块优点:1. 易于移植性,对于相同控制逻辑不同参数的被控对象,只要使用不同的背景DB,同一个FB块就可以方便2. 多重背景,减少重复工作,提高效率3. 多次调用时,参数修改方便4. 有独立的存储区FC块优点:1. 小巧灵活,对于非多次调用的程序更易理解2. 不占用额外的存储资源FB,FC块管脚定义IN---------变量是外部输入的,只能被本程序块读,不能被本程序块写;OUT-------是本程序块输出的,他可以被本程序块读写,其他程序通过引脚只能读值不能写;IN_OUT--- 输入输出变量本程序块和其他程序都可以读写这个引脚的值。
TEMP -----临时变量,顾名思义是暂时存储数据的变量。
这些临时的数据存储在CPU工作存储区的局部数据堆栈(L堆栈)中。
STAT-------在PLC运行期间始终被存储。
S7 将静态变量定义在背景数据块(仅对FB而言,FC和OB无静态变量),当被调用块运行时,能读出或修改静态变量;被调用块结束后,静态变量保留在数据块中。
为何定义的FB,FC块,多次调用后程序混乱?对于,多次调用的程序块,FB块建议更换调用不同的背景DB;FC则需要确保使用的存储地址不重复,即每次调用,块中调用的地址不重复。
为何含有定时器或计数器的FB或FC单次调用ok,多次调用时定时器或计数器混乱?对于多次调用的FB,FC,如为S7定时器,计数器,则需要在IN 接口中定义TIMER或Counter,每调用一次FB或FC,均赋不同的定时器或计数器号。
功能块(Function Blocks,简称FB块)是由用户编写的、需要专用数据块(Instance Data Blocks,称为“即时数据块”或“背景数据块”,简称DI)支持的常用逻辑块。
FB块与FC块的作用基本相同,但FB中除可以使用“绝对地址”或“符号地址”进行编程外,在结构化编程时必须使用“程序变量”进行编程,因此,FB必须配套的、独立的数据存储区域——“即时数据块DI”。
DI -方面可以为调用FB提供执行程序所需要的“程序变量”赋值与其他数据,另一方面,功能块FB也能通过DI给调用它的逻辑块返回所需要的数据。
与功能调用块FC -样,功能块FB中也有部分为PLC生产厂家所提供的、集成在S7 CPU操作系统中的功能块,称为系统功能块(System Function Blocks,简称SFB)。
系统功能块SFB同样属于PLC内部操作系统的一部分,用户不需要编写,也不可以对其进行编辑,但可以根据需要直接调用。
艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。
如需进一步了解台达PLC、西门子PLC、施耐德plc、欧姆龙PLC的选型,报价,采购,参数,图片,批发等信息,请关注艾驰商城/。
TEP7 常用功能块说明1. SFB0 "CTU" SFB1 "CTD" SFB2 "CTUD" SFB4 "TON" SFB5 TOF兼容IEC61131-3的计数和计时功能块2. SFB41 "CONT_C" SFB42 "CONT_S" SFB43 "PULSEGEN"用于PID控制41---连续42---离散43---用于将一个模拟量转化为与之对应的周期性开关量脉冲信号,该脉冲的占空比与模拟量的数值大小成正比.3. SFC0 "SET_CLK" SFC1 "READ_CLK"用于读写PLC中的系统时间4. SFC14 "DPRD_DAT" SFC15 "DPWR_DAT"用于读写DP从站中的一致性数据如:读写用DP通讯的变频器中的控制字5. SFC20 "BLKMOV" SFC21 "FILL"块拷贝,块填充6. SFC46 "STP" SFC47 "WAIT"SFC46 使PLC进入STOP状态,挺有用的:可以当软件陷阱,或利用上位控制PLC停机7. SFC60 "GD_SND" SFC61 "GD_RCV"MPI的GD通讯Function BlocksFC22 "LIMIT" FC25 "MAX" FC27 "MIN"FC22 ---限幅输出FC25,FC27 --- 3个数比大小Control BlocksFB41/42/43 同 SFB41 "CONT_C" SFB42 "CONT_S" SFB43 "PULSEGEN"FB58 "TCON_CP" FB59 "TCONT_S" 用于温度控制PIDConverting BlocksFC105 "SCALE" FC106 "UNSCALE"模拟量输入输出的比例和数据类型转换11、SFC1 读取系统时钟12、SFC3 启动/停止运行时间定时器13、OB1:主程序循环14、OB10--OB17:在设置的日期和时间启动15、OB20--OB23:延时后启动16、OB30--OB38:以设定的时间为周期17、OB40--OB47:检测到来自外部模块的中断请求时启动18、OB55:DPV1中断(PROFIBUS-DP 中断)目录1 组织块 1-1组织块(OB)概述............................................................................. ...................1-1程序循环组织块(OB1).......................................................................... .............1-4时钟中断组织块 (OB10到OB17)............................... ........................................1-6时间延迟中断组织块 (OB20到OB23)..............................................................1-10周期性中断组织块 (OB30 到OB38)............................... ..................................1-12硬件中断组织块 (OB40到OB47).....................................................................1-14状态中断OB(OB55)............................ ............................................................1-16更新中断OB(OB56)............................ ............................................................1-17制造商特定中断OB(OB57)....................................................................... .......1-18多值计算中断组织块(OB60)......................................................................... ...1-19同步周期性中断OB(OB 61 到OB64)............................ ...................................1-21I/O冗余出错OB(OB70)....................................................................... .............1-22CPU冗余出错OB(OB72)....................................................................... ..........1-24通讯冗余出错OB(OB73)............................... ..................................................1-27时间出错组织块(OB80)......................................................................... ..........1-28(OB81)......................................................................... ..........1-30诊断中断组织块(OB82)......................................................................... ..........1-32插入/删除模块中断组织块(OB83)............................... ....................................1-34CPU硬件故障组织块(OB84)............................... ............................................1-37优先级出错组织块(OB85)............................... ................................................1-38机架故障组织块(OB86)......................................................................... ..........1-42通讯出错组织块(OB87)......................................................................... ..........1-45处理中断OB(OB88)............................ ............................................................1-47后台组织块(OB90)............................... ...........................................................1-48启动组织块(OB100、OB101和OB102)............................... ........................... 1-50(OB121)........................................................................ .........1-55I/O访问出错组织块(OB122)............................... .............................................1-572 SFC的公共参数 2-1通过输出参数RET_VAL判断出错......................................................................2-1异步SFC的REQ、RET_VAL和BUSY 参数的含义.............................................2-4目录用于S7-300/400系统和标准功能的系统软件x A5E00446508-013 复制功能和块功能 3-1使用SFC20“BLKMOV”复制存储区域...............................................................3-1使用SFC81“UBLKMOV”不间断地复制变量.....................................................3-4使用SFC21“FILL”初始化存储区.......................................................................3-6使用SFC22“CREAT_DB”创建数据块...............................................................3-8使用SFC23“DEL_DB”删除数据块..................................................................3-10使用SFC24“TEST_DB”测试数据块................................................................3-12使用SFC25“COMPRESS”压缩用户存储器....................................................3-13使用SFC44“REPL_VAL”传送一个替换值到累加器1...................................... 3-15使用SFC82“CREA_DBL”在装载存储器中生成数据块................................... 3-16使用SFC83 “READ_DBL”从装载存储器的数据块中读取数据........................ 3-19使用SFC84“WRIT_DBL”在装载存储器中写入数据块.................................... 3-21使用SFC85“CREA_DB”创建数据块...............................................................3-234 用于控制程序执行的SFC 4-1使用SFC43“RE_TRIGR”重新触发循环时间监视.............................................4-1使用SFC46“STP”将CPU切换为STOP.............................................................4-1使用SFC47“WAIT”延时用户程序执行..............................................................4-2使用SFC35“MP_ALM”触发多处理器中断........................................................4-3使用SFC104“CiR”控制CiR............................................................................ ...4-45 用于处理系统时钟的SFC 5-1使用SFC0“SET_CLK”设定TOD.......................................................................5-1使用SFC1“READ_CLK”读取时间....................................................................5-2使用SFC48“SNC_RTCB”同步子时钟..............................................................5-3使用SFC100“SET_CLKS”设定时间日期和TOD 状态....................................... 5-46 用于处理运行系统计时器的SFC 6-1运行时间定时器............................................................................. ....................6-1使用SFC101“RTM”控制运行时间定时器..........................................................6-2使用SFC2“SET_RTM”设置运行时间定时器.....................................................6-4使用SFC3“CTRL_RTM”启动和停止运行时间定时器....................................... 6-5使用SFC4“READ_RTM”读取运行时间定时器..................................................6-6使用SFC64“TIME_TCK”读取系统时间............................................................6-77 用于传送数据记录的SFC 7-1读写一条数据记录............................................................................. ................7-1使用SFC54“RD_DPARM”读取定义的参数......................................................7-3使用SFC102“RD_DPARA”读取预定义参数.....................................................7-4使用SFC55“WR_PARM”写动态参数...............................................................7-5使用SFC56“WR_DPARM”写一条数据记录......................................................7-7用SFC57 “PARM_MOD”将参数分配给模块..................................................... 7-8使用SFC58“WR_REC”写入数据记录.............................................................7-11使用SFC59“RD_REC”读一个数据记录..........................................................7-13SFC55到59的进一步出错信息.......................................................................7-18目录用于S7-300/400系统和标准功能的系统软件A5E00446508-01 xi8 符合PNO AK 1131的DPV1 SFB 8-1使用SFB“RDREC”从DP从站读一个数据记录..................................................8-1使用SFB53“WRREC”将数据记录写入DP从站..................................................8-3用SFB54“RALRM”STATUS[3]从DP从站接收中断.......................................... 8-5用SFB75“SALRM”向DP主站发送中断............................................................8-149 用于处理时钟中断的SFC 9-1处理时钟中断............................................................................. .......................9-1SFC28到31的特征............................................................................. ..............9-2使用SFC28“SET_TINT”设置日时钟中断..........................................................9-4使用SFC29“CAN_TINT”取消时钟中断.............................................................9-5使用SFC30“ACT_TINT”激活时钟中断.............................................................9-6使用SFC31“QRY_TINT”查询日时钟中断.........................................................9-710 用于处理延时中断的SFC 10-1处理延时中断............................................................................. .....................10-1使用SFC32“SRT_DINT”启动延时中断...........................................................10-3使用SFC34“QRY_DINT”查询日时钟中断......................................................10-4使用SFC33“CAN_DINT”取消延时中断..........................................................10-511 用于处理同步出错的SFC 11-1屏蔽同步出错............................................................................. .....................11-1使用SFC36“MSK_FLT”屏蔽同步出错..........................................................11-10使用SFC37“DMSK_FLT”解除屏蔽同步出错................................................11-11使用SFC38“READ_ERR”读取出错寄存器...................................................11-1212 用于处理中断和异步出错的SFC 12-1延迟和禁用中断和异步出错.............................................................................12-1使用SFC39“DIS_IRT”禁用新中断和异步出错的处理..................................... 12-3使用SFC40“EN_IRT”启用新中断和异步出错的处理...................................... 12-5使用SFC41 “DIS_AIRT”延迟更高优先级中断和异步出错的处理.................... 12-7使用SFC42 “EN_AIRT”启用处理较高优先级的中断和异步出错..................... 12-813 用于诊断的SFC 13-1系统诊断............................................................................. ............................13-1使用SFC6“RD_SINFO”读取OB启动信息.......................................................13-1使用SFC51“RDSYSST”读取系统状态列表或部分列表.................................. 13-4使用SFC52 “WR_USMSG”将自定义诊断事件写入诊断缓冲区................... 13-10使用SFC78“OB_RT”确定OB程序运行时间..................................................13-14使用SFC87“C_DIAG”诊断当前连接状态......................................................13-18使用SFC103 “DP_TOPOL”识别DP 主站系统的总线拓扑..............................13-2314 用于更新过程映像和处理位域的SFC和SFB 14-1使用SFC26“UPDAT_PI”更新过程映像输入表................................................14-1使用SFC27“UPDAT_PO”更新过程映像输出表..............................................14-3使用SFC79“SET”在I/O区域中设置位域.........................................................14-5使用SFC 126 “SYNC_PI”在同步循环中更新过程映像分区输入表................. 14-6使用SFC 127 “ISO_PO”在同步循环中更新过程映像分区输出表.................... 14-8使用SFC80“RSET”复位I/O区域中的位域.....................................................14-10使用SFB 32“DRUM”实现一个操作序列.......................................................14-11目录用于S7-300/400系统和标准功能的系统软件xii A5E00446508-0115 用于寻址模块的系统功能 15-1使用SFC5“GADR_LGC”查询模块的逻辑基址................................................15-1使用SFC49 “LGC_GADR”查询属于一个逻辑地址的模块插槽....................... 15-3使用SFC50“RD_LGADR”查询模块的所有逻辑地址...................................... 15-516 用于分布式I/O的SFC 16-1使用SFC7“DP_PRAL”在DP主站上触发硬件中断.......................................... 16-1用SFC11“DPSYC_FR”同步DP从站组...........................................................16-4用SFC12“D_ACT_DP”激活和取消激活DP从站...........................................16-10用SFC13 “DPNRM_DG”读取DP从站的诊断数据(从站诊断) ........................16-14使用SFC14 “DPRD_DAT”读取DP 标准从站的连续数据................................16-18使用SFC15 “DPWR_DAT”将连续数据写入到DP标准从站...........................16-2017 用于全局数据通讯的SFC 17-1使用SFC60“GD_SND”发送一个GD信息包....................................................17-1通过SFC61“GD_RCV”编程接受已接收到的GD 信息包.................................. 17-418 通讯和S7基本通讯的概述 18-1S7通讯块和S7基本通讯块之间的差别............................................................18-1数据的一致性............................................................................. .....................18-4S7通讯块概述............................................................................. ....................18-6用于S7基本通讯的功能块总览........................................................................18-819 S7通讯 19-1用于S7通讯的SFB/FB和SFC/FC的公用参数..................................................19-1用于组态的S7连接的SFB启动例行程序..........................................................19-5SFB对故障如何反应............................................................................. ...........19-7通过SFB8/FB8“USEND”进行无协调的数据发送.............................................19-9通过SFB/FB9“URCV”进行无协调的数据接收...............................................19-12通过SFB/FB12“BSEND”发送分段数据........................................................19-15通过SFB/FB13“BRCV”接收分段数据...........................................................19-18通过SFB/FB15“PUT”向远程CPU写入数据...................................................19-21通过SFB/FB14GET”从远程CPU中读取数据.................................................19-24使用SFB16“PRINT”将数据发送到打印机......................................................19-27通过SFB 19“START”在远程设备上开始一个暖重启或冷重启...................... 19-33通过SFB20“STOP”将远程设备切换到STOP 状态........................................ 19-36通过SFB21“RESUME”在远程设备上开始一个热重启.................................. 19-38使用SFB22“STATUS”查询远程伙伴的状态.................................................19-40通过SFB23“USTATUS”接收远程设备的状态改变....................................... 19-42通过SFC62 “CONTROL”查询属于SFB实例的连接状态...............................19-44通过FC62“C_CNTRL”查询连接状态............................................................19-46S7通讯SFB/FB的工作存储器要求.................................................................19-48目录用于S7-300/400系统和标准功能的系统软件A5E00446508-01 xiii20 用于未组态S7连接的通讯SFC 20-1通讯SFC的公用参数............................................................................. ..........20-1用于未组态S7连接的通讯SFC的出错信息......................................................20-2使用SFC65 “X_SEND”将数据发送给在本地S7站外的一个通讯伙伴.............. 20-7通过SFC66 “X_RCV”从本地S7站以外的通讯伙伴中接收数据....................... 20-8通过SFC68 “X_PUT”将数据写入本地S7站以外的通讯伙伴..........................20-11通过SFC67 “X_GET”从本地S7站以外的通讯伙伴中读取数据..................... 20-13通过SFC69 “X_ABORT”中止已存在的、到本地S7站以外的通讯伙伴的连接20-15使用SFC72 “I_GET”从本地S7站内的一个通讯伙伴上读取数据.................... 20-16使用SFC73 “I_PUT”将数据写入到本地S7站内的一个通讯伙伴.................... 20-18通过SFC74 “I_ABORT”中止已存在的、到本地S7站内的通讯伙伴的连接.... 20-2021 PROFInet 21-1SFC112、113和114背景信息.........................................................................21-1使用SFC112 “PN_IN”更新用于PROFInet组件的用户程序接口的输入........... 21-4使用SFC113 “PN_OUT”更新用于PROFInet组件的用户程序接口的输出....... 21-5使用SFC114“PN_DP”更新DP互连................................................................21-622 生成与块相关的消息 22-1关于使用SFB生成块相关消息的介绍..............................................................22-1使用SFB 36“NOTIFY”生成无需确认的块相关消息........................................ 22-5使用SFB31 “NOTIFY_8P”生成无确认显示的块相关消息...............................22-7使用SFB 33“ALARM”生成需要确认的块相关消息....................................... 22-10使用SFB35 “ALARM_8P”生成针对八个信号的带有关联值的块相关消息..... 22-13使用SFB34 “ALARM_8”生成针对八个信号的不附带关联值的块相关消息.... 22-16使用SFB37“AR_SEND”发送归档数据.........................................................22-18使用SFC10 “DIS_MSG”禁止与块相关的消息、与符号相关的消息以及组状态消息................................................................22-20使用SFC9 “EN_MSG”启用块相关、符号相关和组状态消息......................... 22-22用于生成与块相关的消息的SFB的启动特性.................................................22-24用于生成与块相关的消息的SFB如何响应故障..............................................使用SFC生成与块相关的消息简介................................................................22-26使用SFC17 “ALARM_SQ”生成可确认的与块相关的消息以及使用SFC18“ALARM_S”生成永久确认的与块相关的消息................................................22-29使用SFC19 “ALARM_SC”查询上一ALARM_SQ/ALARM_DQ进入事件消息的确认状态..........................................................22-32使用SFC 107 “ALARM_DQ”和108 “ALARM_D”生成可确认和永久确认的块相关消息............................................................22-33使用SFC105“READ_SI”读取动态系统资源..................................................22-35使用SFC106“READ_SI”读取动态系统资源..................................................22-3823 IEC定时器和IEC计数器 23-1使用SFB3“TP”生成一个脉冲..........................................................................23-1使用SFB4“TON”生成一个接通延迟................................................................23-3使用SFB5“TOF”生成一个关闭延迟................................................................23-5使用SFB 0“CTU”递增计数.............................................................................使用SFB 1“CTD”递减计数.............................................................................23-8使用SFB2“CTUD”递增/递减计数...................................................................23-9目录用于S7-300/400系统和标准功能的系统软件xiv A5E00446508-0124 IEC功能 24-1概述............................................................................. ....................................24-1IEC功能的技术数据............................................................................. ............24-3日期和时间作为复杂数据类型.........................................................................24-5时间功能............................................................................. ............................24-6比较DATE_AND_TIME变量.........................................................................24-10比较STRING变量............................................................................. .............24-13编辑数值............................................................................. ..........................24-16STL示例............................................................................. ...........................24-17STL示例............................................................................. ...........................24-18编辑STRING变量............................................................................. .............24-19转换数据类型格式............................................................................. ............24-2425 用于集成控制的SFB 25-1使用SFB41/FB41“CONT_C”实现连续控制....................................................25-1使用SFB42/FB42“CONT_S”进行步控制........................................................25-8使用SFB43/FB43“PULSEGEN”生成脉冲....................................................25-14PULSEGEN块的实例............................................................................. .......25-2526 用于紧凑型CPU的SFB 26-1通过SFB44“Analog”使用模拟量输出进行定位...............................................26-1通过SFB46“DIGITAL”使用数字量输出进行定位.......................................... 26-13使用SFB47“COUNT”控制计数器.................................................................26-23使用SFB48“FREQUENC”控制频率测量......................................................26-28使用SFB49“PULSE”控制脉宽调制...............................................................26-32使用SFB60 “SEND_PTP”发送数据(ASCII,3964(R))............................... ... 26-35使用SFB61 “RCV_PTP”接收数据(ASCII,3964(R))............................... ..... 26-38使用SFB62 “RES_RCVB”删除接收缓冲区 (ASCII,3964(R))......................26-41使用SFB63 “SEND_RK”发送数据(512(R))............................... .................... 26-43使用SFB64 “FETCH RK”获取数据(RK 512)............................... .................. 26-47使用SFB65 “SERVE_RK”接收和提供数据(RK 512)............................... ...... 26-52SFB60至65的附加出错信息.........................................................................26-5727 用于H CPU的SFC 27-1在H系统中使用SFC90“H_CTRL”控制操作....................................................27-128 集成功能(对于带集成I/O的CPU) 28-1SFB29(HS_COUNT)................ .......................................................................28-1SFB30(FREQ_MES)................ .......................................................................28-3SFB38(HSC_A_B)................. .........................................................................28-4SFB39(POS)..................... ..............................................................................28-529 Plastics Techology 29-1SFC63 (AB_CALL)............................... ..........................................................29-130 诊断数据 30-1诊断数据结构概述............................................................................. ..............30-1诊断数据............................................................................. ............................30-2通道专有诊断数据的结构............................................................................. ...30-4目录用于S7-300/400系统和标准功能的系统软件A5E00446508-01 xv31 系统状态列表(SSL) 31-1系统状态列表(SSL)概述............................................................................. .....31-1部分SSL列表的结构............................................................................. ...........31-3SSL-ID............................... .............................................................................31-4可能的部分系统状态列表............................................................................. ...31-5SSL-ID W#16#xy11 -模块标识......................................................................31-6SSL-ID W#16#xy12 -CPU特征......................................................................31-7SSL-ID W#16#xy13 -存储区域......................................................................31-9SSL-ID W#16#xy14 -系统区........................................................................31-10SSL-ID W#16#xy15 -块类型........................................................................31-12模块LED的状态..........................................................31-13SSL-ID W#16#xy1C -组件标识....................................................................31-15SSL ID W#16#xy25 -将过程映像分区分配到OB.......................................... 31-18SSL-ID W#16#xy32 -通讯状态数据.............................................................31-21SSL-ID W#16#0132,索引为W#16#0005的部分列表的数据记录摘录....... 31-22SSL-ID W#16#0132,索引为W#16#0008的部分列表的数据记录摘录....... 31-23SSL-ID为W#16#0132、索引为W#16#000B的部分列表摘录的数据记录.... 31-25SSL-ID为W#16#0132、索引为W#16#000C的部分列表摘录的数据记录.... 31-26SSL-ID W#16#0232,索引为W#16#0004的部分列表的数据记录摘录....... 31-27SSL-ID W#16#xy71 - HCPU的组信息.........................................................31-28SSL-ID W#16#xy74 -模块LED的状态..........................................................31-31SSL-ID W#16#xy75 -H系统中切换的DP从站.............................................. 31-33SSL-ID W#16#xy90 -DP主站系统信息........................................................31-35SSL-ID W#16#xy91 -模块的状态信息..........................................................31-37机架/站的状态信息..................................................... 31-41SSL-ID W#16#xy95 -扩展DP主站系统信息................................................. 31-44SSL-ID W#16#xyA0 -诊断缓冲区................................................................31-46SSL-ID W#16#00B1 -模块的诊断信息.........................................................31-47SSL-ID W#16#00B2 -对应物理地址的诊断数据记录1................................. 31-49SSL-ID W#16#00B3 -带逻辑基址的模块诊断数据....................................... 31-50SSL-ID W#16#00B4 -DP从站的诊断数据.................................................... 31-5132 事件 32-1事件和事件标识符............................................................................. ..............32-1事件等级1 -标准OB事件............................................................................. ....32-3事件等级2 -异步出错............................................................................. .........32-3事件等级3 -异步出错............................................................................. .........32-4事件等级4 -停止事件和其它模式改变............................................................32-7事件等级5 -模式运行期事件.........................................................................32-10事件等级6 -通讯事件............................................................................. .......32-11事件等级7 -H/F事件............................................................................. ........32-12事件等级8 -模块的诊断事件.........................................................................32-14事件等级9 -标准用户事件.............................................................................32-16事件等级A和B -自由用户事件......................................................................32-17保留的事件等级............................................................................. ................32-18目录用于S7-300/400系统和标准功能的系统软件xvi A5E00446508-0133 SFC和SFB列表 33-1按编号排序的SFC列表............................................................................. .......按字母排序的SFC列表............................................................................. .......33-4按编号排序的SFB列表............................................................................. .......33-7按字母排序的SFB列表............................................................................. .......33-9参考书目词汇表索引用于S7-300/400系统和标准功能的系统软件A5E00446508-01 1-11 组织块组织块(OB)概述何为组织块?组织块(OB)是指CPU的操作系统与用户程序之间的接口。
西门子S7-300 中FB 功能块的使用方法:1.创建功能块FB1 准备完成如下功能:将“整型”变量转换成“实型”变量2.打开功能块FB1 3.在功能块FB1 中添加入口参数、出口参数、静态变量入口参数=IN0 ---> 整型(INT) 出口参数=OUT1 ---> 实型(REAL) 静态变量=STAT2 ---> 整型(INT) 局部变量=TEMP3 ---> 长整型(DINT)4.创建背景数据块DB2 5.打开DB2 背景数据块,可以看到系统默认建立了三个数据IN0 ---> 入口参数(整型)OUT1 ---> 出口参数(实型)STAT2---> 静态变量(整型)6.打开FB1 功能块,编写如下代码,实现将“整型”变量转换成“实型”变量同时再编写一段静态变量自加 1 代码7.打开OB1 主程序,添加FB1 功能块如何确定程序参数类型的块编号并传送给FC ?介绍使用以下程序代码可确定参数类型(BLOCK_FC, BLOCK_FB, TIMER or COUNTER)的编号。
例 1 :FB 块FB1 变量声明中定义了“ Timer” 类型的变量“ Time_1” ,FB2 中调用FB1,在将定时器“T5” 传递给变量“ Time_1”。
如图01 所示程序代码中数值5 表示“T5”。
图. 01 例 2 FC FC1 变量声明中定义了“ Timer” 类型的变量“ Time_1” ,FC2 中调用FC1,在将定时器“T8” 传递给变量“ Time_1”。
如图02 所示程序代码中数值8 表示“T8”。
图. 02 在使用多重实例时,需要在图01 所示程序中增加以下代码:TAR2 LAR1 P##Time_1 +AR1 L W[AR1,P#0.0] T MW00 //多重实例偏移地址//多重实例偏移地址与当前地址相加“BLOCK_DB”类型参数在调用FC 时不可以直接传送给FC 。
在S7-200中如何建立一个功能块❶字符:8位,等于一个字节❷字符串:存储=字符个数+1字节如smart :5个字符+1个字节=6个字节,这1个字节表示第一个地址,是存储个数。
比如把smart存储到VB100中第一个地址:是存储个数 VB100=5,因为有5个字符第二个地址:VB101存储s第三个地址:VB102存储m第四个地址:VB103存储a第五个地址:VB104存储r第六个地址:VB105存储t二、功能块指令的作用在编写程序过程中有写控制要求或是一些运算会重复执行的,对于这些会重复执行的程序,为了提高编程的效率,往往会把一些会重复执行的功能编写成一个功能块。
或者把一些应用到比较典型的做成一个指令。
二、功能块指令建立方法在S7-200系列PL的程序结构中,分为主程序、子程序、中断程序。
子程序分为带参数的子程序和不带参数的子程序,功能即为一个带参数的子程序。
三、功能块指令的建立需要建立一个带参数的子程序,那么需要在子程序的变量表中(或接口区)中定义好相应的变量,然后在子程序的编程中,使用在变量表中定义的变量去编写程序,子程序上面就有相应的接口区。
☆数据类型:对应地址,选好数据类型系统自动分配地址:如果选BYTE系统自动寻址→LBX;如果选WORD系统自动寻址→LWX。
所以地址的分配不用管系统自动分配,是由数据类型决定的。
四、变量类型说明变量的类型在使用过程中是不一样的,比如说子程序做好了以后有的位于子程序左侧,有的位于子程序右侧,有的在上面没有管脚。
这跟习惯有关,左进右出。
①变量类型(IN):输入参数为可读❶变量,将调用它的POU提供的数据值传入子程序❷,可以使用常数,直接寻址❸间接寻址❹的方传入到子程序。
在生成子程序块是位于左侧。
这跟习惯有关,左进右出❶可读:以PLC为例,可读的点是输入点,因为是从外边获取的信息、数据过来的,输入点大部分是常开常闭。
❷将调用它的POU提供的数据值传入子程序:它→指子程序;POU→指主程序。
TEP7 常用功能块说明1. SFB0 "CTU" SFB1 "CTD" SFB2 "CTUD" SFB4 "TON" SFB5 TOF兼容IEC61131-3的计数和计时功能块2. SFB41 "CONT_C" SFB42 "CONT_S" SFB43 "PULSEGEN"用于PID控制41---连续42---离散43---用于将一个模拟量转化为与之对应的周期性开关量脉冲信号,该脉冲的占空比与模拟量的数值大小成正比.3. SFC0 "SET_CLK" SFC1 "READ_CLK"用于读写PLC中的系统时间4. SFC14 "DPRD_DAT" SFC15 "DPWR_DAT"用于读写DP从站中的一致性数据如:读写用DP通讯的变频器中的控制字5. SFC20 "BLKMOV" SFC21 "FILL"块拷贝,块填充6. SFC46 "STP" SFC47 "WAIT"SFC46 使PLC进入STOP状态,挺有用的:可以当软件陷阱,或利用上位控制PLC停机7. SFC60 "GD_SND" SFC61 "GD_RCV"MPI的GD通讯8.IEC Function BlocksFC22 "LIMIT" FC25 "MAX" FC27 "MIN"FC22 ---限幅输出FC25,FC27 --- 3个数比大小9.PID Control BlocksFB41/42/43 同SFB41 "CONT_C" SFB42 "CONT_S" SFB43 "PULSEGEN" FB58 "TCON_CP" FB59 "TCONT_S" 用于温度控制PID10.Ti-S7 Converting BlocksFC105 "SCALE" FC106 "UNSCALE"模拟量输入输出的比例和数据类型转换11、SFC1 读取系统时钟12、SFC3 启动/停止运行时间定时器13、OB1:主程序循环14、OB10--OB17:在设置的日期和时间启动15、OB20--OB23:延时后启动16、OB30--OB38:以设定的时间为周期17、OB40--OB47:检测到来自外部模块的中断请求时启动18、OB55:DPV1中断(PROFIBUS-DP中断)目录1 组织块1-11.1组织块(OB)概述................................................................................................1-11.2程序循环组织块(OB1).......................................................................................1-41.3 时钟中断组织块(OB10到OB17) .......................................................................1-61.4 时间延迟中断组织块(OB20到OB23)..............................................................1-101.5 周期性中断组织块(OB30 到OB38) .................................................................1-121.6 硬件中断组织块(OB40到OB47) .....................................................................1-141.7 状态中断OB(OB 55)........................................................................................1-161.8 更新中断OB(OB 56)........................................................................................1-171.9制造商特定中断OB(OB57)..............................................................................1-181.10多值计算中断组织块(OB60)............................................................................1-191.11 同步周期性中断OB(OB 61 到OB 64)...............................................................1-211.12I/O冗余出错OB(OB70)....................................................................................1-221.13CPU冗余出错OB(OB72).................................................................................1-241.14 通讯冗余出错OB(OB73) .................................................................................1-271.15时间出错组织块(OB80)...................................................................................1-281.16电源出错组织块(OB81)...................................................................................1-301.17诊断中断组织块(OB82)...................................................................................1-321.18 插入/删除模块中断组织块(OB83) ...................................................................1-341.19 CPU硬件故障组织块(OB84) ...........................................................................1-371.20 优先级出错组织块(OB85) ...............................................................................1-381.21机架故障组织块(OB86)...................................................................................1-421.22通讯出错组织块(OB87)...................................................................................1-451.23 处理中断OB(OB 88)........................................................................................1-471.24 后台组织块(OB90) ..........................................................................................1-481.25 启动组织块(OB100、OB101和OB102).......................................................... 1-501.26编程出错组织块(OB121).................................................................................1-551.27 I/O访问出错组织块(OB122) ............................................................................1-572 SFC的公共参数2-12.1通过输出参数RET_VAL判断出错......................................................................2-12.2异步SFC的REQ、RET_VAL和BUSY参数的含义............................................. 2-4目录用于S7-300/400系统和标准功能的系统软件x A5E00446508-013 复制功能和块功能3-13.1 使用SFC20“BLKMOV”复制存储区域...............................................................3-13.2 使用SFC81“UBLKMOV”不间断地复制变量.....................................................3-43.3 使用SFC21“FILL”初始化存储区.......................................................................3-63.4 使用SFC22“CREAT_DB”创建数据块...............................................................3-83.5 使用SFC23“DEL_DB”删除数据块..................................................................3-103.6 使用SFC24“TEST_DB”测试数据块................................................................3-123.7 使用SFC25“COMPRESS”压缩用户存储器....................................................3-133.8 使用SFC44“REPL_VAL”传送一个替换值到累加器1...................................... 3-153.9 使用SFC82“CREA_DBL”在装载存储器中生成数据块................................... 3-163.10 使用SFC83 “READ_DBL”从装载存储器的数据块中读取数据........................ 3-193.11 使用SFC84“WRIT_DBL”在装载存储器中写入数据块.................................... 3-213.12 使用SFC85“CREA_DB”创建数据块...............................................................3-234 用于控制程序执行的SFC 4-14.1 使用SFC43“RE_TRIGR”重新触发循环时间监视.............................................4-14.2 使用SFC46“STP”将CPU切换为STOP.............................................................4-14.3 使用SFC47“WAIT”延时用户程序执行..............................................................4-24.4 使用SFC35“MP_ALM”触发多处理器中断........................................................4-34.5 使用SFC104“CiR”控制CiR...............................................................................4-45 用于处理系统时钟的SFC 5-15.1 使用SFC0“SET_CLK”设定TOD.......................................................................5-15.2 使用SFC1“READ_CLK”读取时间....................................................................5-25.3 使用SFC48“SNC_RTCB”同步子时钟..............................................................5-35.4 使用SFC100“SET_CLKS”设定时间日期和TOD状态....................................... 5-46 用于处理运行系统计时器的SFC 6-16.1运行时间定时器.................................................................................................6-16.2 使用SFC101“RTM”控制运行时间定时器..........................................................6-26.3 使用SFC2“SET_RTM”设置运行时间定时器.....................................................6-46.4 使用SFC3“CTRL_RTM”启动和停止运行时间定时器....................................... 6-56.5 使用SFC4“READ_RTM”读取运行时间定时器..................................................6-66.6 使用SFC64“TIME_TCK”读取系统时间............................................................6-77 用于传送数据记录的SFC 7-17.1读写一条数据记录.............................................................................................7-17.2 使用SFC54“RD_DPARM”读取定义的参数......................................................7-37.3 使用SFC102“RD_DPARA”读取预定义参数.....................................................7-47.4 使用SFC55“WR_PARM”写动态参数...............................................................7-57.5 使用SFC56“WR_DPARM”写一条数据记录......................................................7-77.6 用SFC57 “PARM_MOD”将参数分配给模块..................................................... 7-87.7 使用SFC58“WR_REC”写入数据记录.............................................................7-117.8 使用SFC59“RD_REC”读一个数据记录..........................................................7-137.9 SFC55到59的进一步出错信息....................................................................... 7-18目录用于S7-300/400系统和标准功能的系统软件A5E00446508-01 xi8 符合PNO AK 1131的DPV1 SFB 8-18.1 使用SFB“RDREC”从DP从站读一个数据记录..................................................8-18.2使用SFB53“WRREC”将数据记录写入DP从站.................................................. 8-38.3 用SFB54“RALRM”STATUS[3]从DP从站接收中断.......................................... 8-58.4用SFB75“SALRM”向DP主站发送中断............................................................ 8-149 用于处理时钟中断的SFC 9-19.1处理时钟中断....................................................................................................9-19.2 SFC28到31的特征...........................................................................................9-29.3 使用SFC28“SET_TINT”设置日时钟中断..........................................................9-49.4 使用SFC29“CAN_TINT”取消时钟中断.............................................................9-59.5 使用SFC30“ACT_TINT”激活时钟中断.............................................................9-69.6 使用SFC31“QRY_TINT”查询日时钟中断.........................................................9-710 用于处理延时中断的SFC 10-110.1处理延时中断..................................................................................................10-110.2 使用SFC32“SRT_DINT”启动延时中断...........................................................10-310.3 使用SFC34“QRY_DINT”查询日时钟中断......................................................10-410.4 使用SFC33“CAN_DINT”取消延时中断..........................................................10-511 用于处理同步出错的SFC 11-111.1屏蔽同步出错..................................................................................................11-111.2 使用SFC36“MSK_FLT”屏蔽同步出错..........................................................11-1011.3 使用SFC37“DMSK_FLT”解除屏蔽同步出错................................................11-1111.4 使用SFC38“READ_ERR”读取出错寄存器...................................................11-1212 用于处理中断和异步出错的SFC 12-112.1延迟和禁用中断和异步出错.............................................................................12-112.2 使用SFC39“DIS_IRT”禁用新中断和异步出错的处理..................................... 12-312.3 使用SFC40“EN_IRT”启用新中断和异步出错的处理...................................... 12-512.4 使用SFC41 “DIS_AIRT”延迟更高优先级中断和异步出错的处理.................... 12-712.5 使用SFC42 “EN_AIRT”启用处理较高优先级的中断和异步出错..................... 12-813 用于诊断的SFC 13-113.1系统诊断......................................................................................................... 13-113.2 使用SFC6“RD_SINFO”读取OB启动信息.......................................................13-113.3 使用SFC51“RDSYSST”读取系统状态列表或部分列表.................................. 13-413.4 使用SFC52 “WR_USMSG”将自定义诊断事件写入诊断缓冲区................... 13-1013.5 使用SFC78“OB_RT”确定OB程序运行时间..................................................13-1413.6 使用SFC87“C_DIAG”诊断当前连接状态......................................................13-1813.7 使用SFC103 “DP_TOPOL”识别DP主站系统的总线拓扑.............................. 13-2314 用于更新过程映像和处理位域的SFC和SFB 14-114.1 使用SFC26“UPDAT_PI”更新过程映像输入表................................................14-114.2 使用SFC27“UPDAT_PO”更新过程映像输出表..............................................14-314.3 使用SFC79“SET”在I/O区域中设置位域.........................................................14-514.4 使用SFC 126 “SYNC_PI”在同步循环中更新过程映像分区输入表................. 14-614.5 使用SFC 127 “ISO_PO”在同步循环中更新过程映像分区输出表.................... 14-814.6 使用SFC80“RSET”复位I/O区域中的位域.....................................................14-1014.7 使用SFB 32“DRUM”实现一个操作序列.......................................................14-11目录用于S7-300/400系统和标准功能的系统软件xii A5E00446508-0115 用于寻址模块的系统功能15-115.1 使用SFC5“GADR_LGC”查询模块的逻辑基址................................................15-115.2 使用SFC49 “LGC_GADR”查询属于一个逻辑地址的模块插槽....................... 15-315.3 使用SFC50“RD_LGADR”查询模块的所有逻辑地址...................................... 15-516 用于分布式I/O的SFC 16-116.1 使用SFC7“DP_PRAL”在DP主站上触发硬件中断.......................................... 16-116.2 用SFC11“DPSYC_FR”同步DP从站组...........................................................16-416.3 用SFC12“D_ACT_DP”激活和取消激活DP从站...........................................16-1016.4 用SFC13 “DPNRM_DG”读取DP从站的诊断数据(从站诊断) ........................ 16-1416.5 使用SFC14 “DPRD_DAT”读取DP标准从站的连续数据................................ 16-1816.6 使用SFC15 “DPWR_DAT”将连续数据写入到DP标准从站........................... 16-2017 用于全局数据通讯的SFC 17-117.1 使用SFC60“GD_SND”发送一个GD信息包....................................................17-117.2 通过SFC61“GD_RCV”编程接受已接收到的GD信息包.................................. 17-418 通讯和S7基本通讯的概述18-118.1S7通讯块和S7基本通讯块之间的差别............................................................ 18-118.2数据的一致性..................................................................................................18-418.3S7通讯块概述.................................................................................................18-618.4用于S7基本通讯的功能块总览........................................................................ 18-819 S7通讯19-119.1用于S7通讯的SFB/FB和SFC/FC的公用参数.................................................. 19-119.2用于组态的S7连接的SFB启动例行程序.......................................................... 19-519.3SFB对故障如何反应........................................................................................19-719.4通过SFB8/FB8“USEND”进行无协调的数据发送.............................................19-919.5通过SFB/FB9“URCV”进行无协调的数据接收...............................................19-1219.6 通过SFB/FB12“BSEND”发送分段数据........................................................19-1519.7 通过SFB/FB13“BRCV”接收分段数据...........................................................19-1819.8通过SFB/FB15“PUT”向远程CPU写入数据................................................... 19-2119.9通过SFB/FB14GET”从远程CPU中读取数据................................................. 19-2419.10使用SFB16“PRINT”将数据发送到打印机...................................................... 19-2719.11 通过SFB 19“START”在远程设备上开始一个暖重启或冷重启...................... 19-3319.12 通过SFB20“STOP”将远程设备切换到STOP状态........................................ 19-3619.13 通过SFB21“RESUME”在远程设备上开始一个热重启.................................. 19-3819.14 使用SFB22“STATUS”查询远程伙伴的状态.................................................19-4019.15 通过SFB23“USTATUS”接收远程设备的状态改变....................................... 19-4219.16 通过SFC62 “CONTROL”查询属于SFB实例的连接状态............................... 19-4419.17 通过FC62“C_CNTRL”查询连接状态............................................................19-4619.18S7通讯SFB/FB的工作存储器要求................................................................. 19-48目录用于S7-300/400系统和标准功能的系统软件A5E00446508-01 xiii20 用于未组态S7连接的通讯SFC 20-120.1通讯SFC的公用参数.......................................................................................20-120.2用于未组态S7连接的通讯SFC的出错信息......................................................20.3 使用SFC65 “X_SEND”将数据发送给在本地S7站外的一个通讯伙伴.............. 20-720.4 通过SFC66 “X_RCV”从本地S7站以外的通讯伙伴中接收数据....................... 20-820.5 通过SFC68 “X_PUT”将数据写入本地S7站以外的通讯伙伴.......................... 20-1120.6 通过SFC67 “X_GET”从本地S7站以外的通讯伙伴中读取数据..................... 20-1320.7 通过SFC69 “X_ABORT”中止已存在的、到本地S7站以外的通讯伙伴的连接20-15 20.8 使用SFC72 “I_GET”从本地S7站内的一个通讯伙伴上读取数据.................... 20-1620.9 使用SFC73 “I_PUT”将数据写入到本地S7站内的一个通讯伙伴.................... 20-1820.10 通过SFC74 “I_ABORT”中止已存在的、到本地S7站内的通讯伙伴的连接.... 20-2021 PROFInet 21-121.1SFC112、113和114背景信息.........................................................................21-121.2 使用SFC112 “PN_IN”更新用于PROFInet组件的用户程序接口的输入........... 21-421.3 使用SFC113 “PN_OUT”更新用于PROFInet组件的用户程序接口的输出....... 21-521.4 使用SFC114“PN_DP”更新DP互连................................................................21-622 生成与块相关的消息22-122.1关于使用SFB生成块相关消息的介绍.............................................................. 22-122.2 使用SFB 36“NOTIFY”生成无需确认的块相关消息........................................ 22-522.3 使用SFB31 “NOTIFY_8P”生成无确认显示的块相关消息............................... 22-722.4 使用SFB 33“ALARM”生成需要确认的块相关消息....................................... 22-1022.5 使用SFB35 “ALARM_8P”生成针对八个信号的带有关联值的块相关消息..... 22-1322.6 使用SFB34 “ALARM_8”生成针对八个信号的不附带关联值的块相关消息.... 22-1622.7 使用SFB37“AR_SEND”发送归档数据.........................................................22.8 使用SFC10 “DIS_MSG”禁止与块相关的消息、与符号相关的消息以及组状态消息................................................................ 22-2022.9 使用SFC9 “EN_MSG”启用块相关、符号相关和组状态消息......................... 22-2222.10用于生成与块相关的消息的SFB的启动特性.................................................22-2422.11用于生成与块相关的消息的SFB如何响应故障..............................................22-2522.12使用SFC生成与块相关的消息简介................................................................ 22-2622.13 使用SFC17 “ALARM_SQ”生成可确认的与块相关的消息以及使用SFC18 “ALARM_S”生成永久确认的与块相关的消息................................................22-2922.14 使用SFC19 “ALARM_SC”查询上一ALARM_SQ/ALARM_DQ进入事件消息的确认状态.......................................................... 22-3222.15 使用SFC 107 “ALARM_DQ”和108 “ALARM_D”生成可确认和永久确认的块相关消息............................................................22-3322.16 使用SFC105“READ_SI”读取动态系统资源..................................................22-3522.17 使用SFC106“READ_SI”读取动态系统资源..................................................22-3823 IEC定时器和IEC计数器23-123.1 使用SFB3“TP”生成一个脉冲..........................................................................23-123.2 使用SFB4“TON”生成一个接通延迟................................................................23-323.3 使用SFB5“TOF”生成一个关闭延迟................................................................23-523.4 使用SFB 0“CTU”递增计数.............................................................................23-723.5 使用SFB 1“CTD”递减计数.............................................................................23-823.6 使用SFB2“CTUD”递增/递减计数...................................................................23-9目录用于S7-300/400系统和标准功能的系统软件xiv A5E00446508-0124 IEC功能24-124.1概述......................................................................................................... ........24-124.2IEC功能的技术数据.........................................................................................24-324.3日期和时间作为复杂数据类型......................................................................... 24-524.4时间功能......................................................................................................... 24-624.5比较DATE_AND_TIME变量......................................................................... 24-1024.6比较STRING变量..........................................................................................24-1324.7编辑数值....................................................................................................... 24-1624.8STL示例........................................................................................................ 24-1724.9STL示例........................................................................................................ 24-1824.10编辑STRING变量..........................................................................................24-1924.11转换数据类型格式.........................................................................................24-2425 用于集成控制的SFB 25-125.1 使用SFB41/FB41“CONT_C”实现连续控制....................................................25-125.2 使用SFB42/FB42“CONT_S”进行步控制........................................................25-825.3 使用SFB43/FB43“PULSEGEN”生成脉冲....................................................25-1425.4PULSEGEN块的实例....................................................................................25-2526 用于紧凑型CPU的SFB 26-126.1 通过SFB44“Analog”使用模拟量输出进行定位...............................................26-126.2 通过SFB46“DIGITAL”使用数字量输出进行定位.......................................... 26-1326.3 使用SFB47“COUNT”控制计数器.................................................................26-2326.4 使用SFB48“FREQUENC”控制频率测量......................................................26-2826.5 使用SFB49“PULSE”控制脉宽调制...............................................................26-3226.6 使用SFB60 “SEND_PTP”发送数据(ASCII,3964(R)) .................................. 26-3526.7 使用SFB61 “RCV_PTP”接收数据(ASCII,3964(R)) .................................... 26-3826.8 使用SFB62 “RES_RCVB”删除接收缓冲区(ASCII,3964(R))...................... 26-4126.9 使用SFB63 “SEND_RK”发送数据(512(R))................................................... 26-4326.10 使用SFB64 “FETCH RK”获取数据(RK 512) ................................................. 26-4726.11 使用SFB65 “SERVE_RK”接收和提供数据(RK 512) ..................................... 26-5226.12 SFB60至65的附加出错信息......................................................................... 26-5727 用于H CPU的SFC 27-127.1 在H系统中使用SFC90“H_CTRL”控制操作....................................................27-128 集成功能(对于带集成I/O的CPU) 28-128.1SFB29(HS_COUNT)................................................................................. ......28-128.2SFB30(FREQ_MES).................................................................................. .....28-328.3SFB38(HSC_A_B).................................................................................... ......28-428.4SFB39(POS)........................................................................................... ........28-529 Plastics Techology 29-129.1 SFC63 (AB_CALL) .........................................................................................29-130 诊断数据30-130.1诊断数据结构概述...........................................................................................30-130.2诊断数据......................................................................................................... 30-230.3通道专有诊断数据的结构................................................................................30-4目录用于S7-300/400系统和标准功能的系统软件A5E00446508-01 xv31 系统状态列表(SSL) 31-131.1系统状态列表(SSL)概述..................................................................................31-131.2部分SSL列表的结构........................................................................................31-331.3 SSL-ID ............................................................................................................ 31-431.4可能的部分系统状态列表................................................................................31-531.5 SSL-ID W#16#xy11 -模块标识......................................................................31-631.6 SSL-ID W#16#xy12 -CPU特征......................................................................31-731.7 SSL-ID W#16#xy13 -存储区域......................................................................31-931.8 SSL-ID W#16#xy14 -系统区........................................................................31-1031.9 SSL-ID W#16#xy15 -块类型........................................................................31-1231.10 SSL-ID W#16#xy19 -模块LED的状态..........................................................31-1331.11 SSL-ID W#16#xy1C -组件标识....................................................................31-1531.12 SSL ID W#16#xy25 -将过程映像分区分配到OB.......................................... 31-1831.13 SSL-ID W#16#xy32 -通讯状态数据.............................................................31-2131.14 SSL-ID W#16#0132,索引为W#16#0005的部分列表的数据记录摘录....... 31-2231.15 SSL-ID W#16#0132,索引为W#16#0008的部分列表的数据记录摘录....... 31-2331.16 SSL-ID为W#16#0132、索引为W#16#000B的部分列表摘录的数据记录.... 31-2531.17 SSL-ID为W#16#0132、索引为W#16#000C的部分列表摘录的数据记录.... 31-2631.18 SSL-ID W#16#0232,索引为W#16#0004的部分列表的数据记录摘录....... 31-2731.19 SSL-ID W#16#xy71 - HCPU的组信息.........................................................31-2831.20 SSL-ID W#16#xy74 -模块LED的状态..........................................................31-3131.21 SSL-ID W#16#xy75 -H系统中切换的DP从站.............................................. 31-3331.22 SSL-ID W#16#xy90 -DP主站系统信息........................................................31-3531.23 SSL-ID W#16#xy91 -模块的状态信息..........................................................31-3731.24 SSL-ID W#16#xy92 -机架/站的状态信息..................................................... 31-4131.25 SSL-ID W#16#xy95 -扩展DP主站系统信息................................................. 31-4431.26 SSL-ID W#16#xyA0 -诊断缓冲区................................................................31-4631.27 SSL-ID W#16#00B1 -模块的诊断信息.........................................................31-4731.28 SSL-ID W#16#00B2 -对应物理地址的诊断数据记录1................................. 31-4931.29 SSL-ID W#16#00B3 -带逻辑基址的模块诊断数据....................................... 31-5031.30 SSL-ID W#16#00B4 -DP从站的诊断数据.................................................... 31-5132 事件32-132.1事件和事件标识符...........................................................................................32-132.2 事件等级1 -标准OB事件.................................................................................32-332.3 事件等级2 -异步出错......................................................................................32-332.4 事件等级3 -异步出错......................................................................................32-432.5 事件等级4 -停止事件和其它模式改变............................................................32-732.6 事件等级5 -模式运行期事件.........................................................................32-1032.7 事件等级6 -通讯事件....................................................................................32-1132.8 事件等级7 -H/F事件.....................................................................................32-1232.9 事件等级8 -模块的诊断事件.........................................................................32-1432.10 事件等级9 -标准用户事件.............................................................................32-1632.11 事件等级A和B -自由用户事件......................................................................32-1732.12保留的事件等级.............................................................................................32-18目录用于S7-300/400系统和标准功能的系统软件xvi A5E00446508-0133 SFC和SFB列表33-133.1按编号排序的SFC列表....................................................................................33-133.2按字母排序的SFC列表....................................................................................33-433.3按编号排序的SFB列表....................................................................................33-733.4按字母排序的SFB列表....................................................................................33-9参考书目词汇表索引用于S7-300/400系统和标准功能的系统软件A5E00446508-01 1-11 组织块1.1 组织块(OB)概述何为组织块?组织块(OB)是指CPU的操作系统与用户程序之间的接口。