• 沒有找到結果。

系统和标准功能的系统软件 用于 S7-300/400 SIMATIC s

N/A
N/A
Protected

Academic year: 2022

Share "系统和标准功能的系统软件 用于 S7-300/400 SIMATIC s"

Copied!
660
0
0

加載中.... (立即查看全文)

全文

(1)

s

前言,内容

组织块 1

SFC的公共参数 2

复制功能和块功能 3

用于控制程序执行的SFC 4

用于处理系统时钟的SFC 5

用于处理运行系统计时器的SFC 6

用于传送数据记录的SFC 7

符合PNO AK

1131的DPV1 SFB 8

用于处理时间中断的SFC 9

用于处理延时中断的SFC 10

用于处理同步错误的SFC 11

用于处理中断和异步错误的SFC 12

用于诊断的SFC 13

用于更新过程映像和处理位域的SFC和S

FB 14

用于寻址模块的系统功能 15

用于分布式I/O的SFC 16

用于全局数据通讯的SFC 17

S7通讯和S7基本通讯的概述 18

S7通讯 19

用于未组态S7连接的通讯SFC 20

PROFINET 21

生成与块相关的消息 22

IEC定时器和IEC计数器 23

IEC功能 24

用于集成控制的SFB 25

用于紧凑型CPU的SFB 26

用于H CPU的SFC 27

集成功能

(对于带集成I/O的CPU) 28

塑料技术 29

诊断数据 30

系统状态列表(SSL) 31

SIMATIC

用于 S7-300/400

系统和标准功能的系统软件

参考手册

事件 32

SFC和SFB列表 33

长沙工控帮教育科技有限公司整理

(2)

版权所有 © Siemens AG 2004 保留所有权利

未经明确的书面许可,不得复制、传播或使用本手册或所含内容。

免责声明

我们已检查过本手册中的内容与所描述的硬件和软件相符。由于差

安全指南

本手册包括了保证人身安全与保护本产品及连接的设备所应遵守的注意事项。这些注意事项在手册中均以 如下符号加以突出,并根据危险等级标明如下:

! 危险表示如果不采取适当的预防措施,将导致死亡、严重的人身伤害或财产损失。

! 警告表示如果不采取适当的预防措施,可能导致死亡、严重的人身伤害或财产损失。

! 当心 表示如果不采取适当的预防措施,可能导致轻微的人身伤害。

当心

表示如果不采取适当的预防措施,可能导致财产损失。

须知

提醒您注意有关产品、产品使用的特别重要的信息,或者是文档的特定部分。

合格人员

只有合格人员才允许安装和操作该设备。合格人员是指被授权按照既定安全惯例和标准,对线路、设备和 系统进行调试、接地和标记的人员。

正确使用

请注意如下事项:

! 警告该设备及其部件只能用于产品目录或技术说明书中所描述的范畴,并且只能与由西门子公司认可或推荐 的第三方厂商提供的设备或部件一起使用。

只有正确地运输、保管、设置和安装本产品,并且按照推荐的方式操作和维护,产品才能正常、安全地 运行。

商标

SIMATIC®、SIMATIC HMI®和SIMATIC NET®是SIEMENS AG的注册商标。

本文档中的其它一些标志也是注册商标,如果任何第三方出于个人目的而使用,都会侵犯商标所有者的权 利。

长沙工控帮教育科技有限公司整理

(3)

前言

用途

本手册综述了在S7-300和S7-400的CPU的操作系统中所包含的组织块(OB)、系 统功能(SFC)、系统和标准功能块(SFB)及IEC功能。附录部分描述了诊断数据、

系统状态列表(SZL)和事件。

注意

请参考下列文件中的参考书目 - “S7-300自动化系统CPU规范:CPU 31xC与 CPU 31x”和“S7-300自动化系统CPU规范: CPU 312IFM - 318-2 DP“ /70/,

“自动化系统S7-400:CPU规范”参考手册/101/,或指令列表:S7-400可编程控制 器/102/(适用于您的CPU的任意版本),以了解各个CPU上可以使用的功能和块的详 细资料。特定CPU的CFB属性和S7发信功能在/70/和 /101/。

欲了解有关CPU操作系统、程序设计及CPU的通讯和诊断能力的内容,请参见

“ 配置硬件和通讯连接 STEP 7 V5.3”手册/234/关于如何在程序中调用功能和功能 块的说明参见语言描述部分。

使用 STEP 7标准软件为所有这些功能编程,并分配参数。关于如何使用本软件 的说明请参见“ 使用 STEP 7 V5.3 编程 ”手册 /231/ 和STEP 7在线帮助。

目标用户

本手册的目标读者为:熟悉控制过程、负责为可编程逻辑控制器编写程序的程序

员和工程师。 长沙工控帮教育科技有限公司整理

(4)

STEP 7文档数据包

下表显示了STEP 7文档的总览:

文档 用途 订货号

STEP 7基础信息

• STEP 7 V5.3, 使用入门手册

• 使用STEP 7 V5.3编程

• 配置硬件与通讯连接,STEP 7 V5.3

• 从S5到S7,变频器手册

提供给技术人员的基础信息,描述 了使用STEP 7和S7-300/400可编 程控制器来实现控制任务的方法。

6ES7810-4CA07-8BW0

STEP 7参考书目

• 用于S7-300/400的梯形图(LAD)/功能块 图(FBD)/语句表(STL)手册

• S7-300/400 的标准函数及系统函数

提供了参考信息,并描述了编程语 LAD、FBD、STL、标准函数以 及系统函数,扩充了STEP 7基础 信息的范围。

6ES7810-4CA07-8BW1

在线帮助 用途 订货号

STEP 7帮助 以在线帮助的形式,提供了使用 STEP 7进行编程和组态硬件的基 础信息。

STEP 7标准软件中的一 部分。

STL/LAD/FBD帮助参考 SFB/SFC帮助参考 组织块帮助参考

上下文相关参考信息。 STEP 7标准软件中的一 部分。

长沙工控帮教育科技有限公司整理

(5)

在线帮助

集成于软件中的在线帮助是对本手册的补充。提供在线帮助的目的是,在使用该 软件时提供详细的支持。

该帮助系统通过一些界面集成于软件中:

• 在帮助菜单中提供了多个菜单命令:内容命令打开关于STEP 7帮助信息的 索引。

• 使用帮助提供了有关使用在线帮助的详细指示。

• 上下文相关帮助提供关于当前语境的信息,例如,打开的对话框或激活的窗口。

通过单击“帮助”按钮或按下F1键可以打开上下文相关的帮助。

• 状态栏提供了另一种形式的上下文相关帮助。当把鼠标指针放在菜单命令上时,

它会显示每个菜单命令的简要解释。

• 当把鼠标指针放在工具栏的各个图标上时,一会之后,它也显示该图标的简要解 释。

如果您更喜欢以打印格式阅读在线帮助的信息,则可以将单个的帮助主题、书本 或整个在线帮助打印出来。

本手册是从基于HTML的STEP 7帮助中摘录下来的。由于该手册和在线帮助的结 构几乎一致,因而可以很容易地在该手册和在线帮助间进行切换。

对文档的反馈

为了帮助我们为您和STEP 7未来的用户提供尽可能最好的文档,我们需要您的 支持。如果您有任何关于本 手册 或 在线帮助 的批评或建议,请填妥位于本手册最 后的调查表,并发送到所提供的地址。请注明您本人对文档的等级评价。

其它手册

下列手册对各种S7-300 CPU和S7-400 CPU以及S7-300模块和S7-400模块进行 了描述:

• 欲了解S7-300可编程逻辑控制器的内容,请参考手册:

“Automatisierungssystem S7-300 CPU-Daten: CPU 31xC und CPU 31x” und

“Automatisierungssystem S7-300 CPU-Daten: CPU 312 IFM bis 318-2 DP ” /70/、“S7-300、M7-300可编程控制器模块规范”/71/和指令列表/72/中。

• 欲了解S7-400可编程逻辑控制器的内容,请参考手册:

“Automatisierungssystem S7-400: CPU Daten”/101/和指令列表/102/中。

长沙工控帮教育科技有限公司整理

(6)

如何使用本手册

本手册包含了下列主题:

• 第1章说明所有组织块的功能。

• 第2章描述公用参数RET_VAL、REQ和BUSY。

• 第3章至第29章描述SFC、SFB和IEC-FC。

• 第30章至第33章包含对诊断数据结构的描述、对本手册中描述的SZL-ID、可能的 事件、SFC列表、SFB和FC的概述,以及对SDB的概述。

• 参考书目包含了更多其它手册的列表。

• 词汇表解释了重要的术语。

• 索引帮助您迅速地定位文本部分和主题部分。

约定

对其它手册和文档的引用用两个斜线/.../加数字表示。这些数字指的是参考书目中 列出的手册的标题。

特殊注意事项

系统功能可能被中断。如果有任何适用于某些SFC或某些情况的限制,在特定的 SFC的描述中有解释。

更多支持

如果有任何技术问题,请联系西门子代表或代理商。

您可以在如下网页中查找联系人:

http://www.siemens.com/automation/partner

培训中心

西门子提供了很多培训教程,帮助您熟悉SIMATIC S7自动化系统。请联系当地 的培训中心,或位于德国纽伦堡(D 90327)的培训总部,以获取详细信息。

电话: +49(911) 895-3200。

http://www.sitrain.com/

长沙工控帮教育科技有限公司整理

(7)

A&D技术支持

遍布世界各处,24小时服务:

北京 纽伦堡

约翰逊城

全球(纽伦堡) 技术支持

每年365天,每天24小时

电话: +49(180) 5050-222 传真: +49(180) 5050-223 电子邮件: adsupport@

siemens.com 格林威治

标准时间: +1:00 欧洲/非洲(纽伦堡) 许可证

当地时间: 周一至周五,8:00 - 5:00 PM

电话: +49(180) 5050-222 传真: +49(180) 5050-223 电子邮件: adsupport@

siemens.com 格林威治

标准时间: +1:00

美国(约翰逊城) 技术支持和授权

当地时间: 周一至周五,8:00 - 5:00 PM 电话: +1(423) 262 2522

传真: +1(423) 262 2289 电子邮件: simatic.hotline@

sea.siemens.com 格林威治

标准时间: -5:00

亚洲/澳洲(北京) 技术支持和授权

当地时间: 周一至周五,8:00 - 5:00 PM

电话: +86 10 64 75 75 75 传真: +86 10 64 74 74 74 电子邮件: adsupport.asia@

siemens.com 格林威治

标准时间: +8:00

SIMATIC热线以及授权热线所使用的语言通常为德语和英语。

长沙工控帮教育科技有限公司整理

(8)

Internet服务和支持

除文档以外,还在Internet上在线提供了知识产权信息,网址如下:

http://www.siemens.com/automation/service&support

可在其中查找如下内容:

• 公司简讯,经常提供产品的最新信息。

• 相应文档资料,可通过“服务和支持”中的搜索功能查找。

• 论坛,世界各地的用户和专家可以在此交流经验。

• 当地自动化和驱动办事处。

• 在“服务”页面下提供了关于现场服务、维修、备件等信息。

长沙工控帮教育科技有限公司整理

(9)

目录

1 组织块 1-1

1.1 组织块(OB)概述 ... 1-1 1.2 程序循环组织块(OB1) ... 1-4 1.3 时钟中断组织块 (OB10到OB17) ... 1-6 1.4 时间延迟中断组织块 (OB20 到OB23)... 1-10 1.5 周期性中断组织块 (OB30 到OB38) ... 1-12 1.6 硬件中断组织块 (OB40到OB47) ... 1-14 1.7 状态中断OB(OB 55)... 1-16 1.8 更新中断OB(OB 56)... 1-17 1.9 制造商特定中断OB(OB57)... 1-18 1.10 多值计算中断组织块(OB60)... 1-19 1.11 同步周期性中断OB(OB 61 到OB 64)... 1-21 1.12 I/O冗余出错OB(OB70)... 1-22 1.13 CPU冗余出错OB(OB72) ... 1-24 1.14 通讯冗余出错OB(OB73) ... 1-27 1.15 时间出错组织块(OB80) ... 1-28 1.16 电源出错组织块(OB81) ... 1-30 1.17 诊断中断组织块(OB82) ... 1-32 1.18 插入/删除模块中断组织块(OB83) ... 1-34 1.19 CPU硬件故障组织块(OB84) ... 1-37 1.20 优先级出错组织块(OB85) ... 1-38 1.21 机架故障组织块(OB86) ... 1-42 1.22 通讯出错组织块(OB87) ... 1-45 1.23 处理中断OB(OB 88)... 1-47 1.24 后台组织块(OB90) ... 1-48 1.25 启动组织块(OB100、OB101和OB102) ... 1-50 1.26 编程出错组织块(OB121) ... 1-55 1.27 I/O访问出错组织块(OB122) ... 1-57

2 SFC的公共参数 2-1

2.1 通过输出参数RET_VAL判断出错... 2-1 2.2 异步SFC的REQ、RET_VAL和BUSY参数的含义... 2-4

长沙工控帮教育科技有限公司整理

(10)

3 复制功能和块功能 3-1 3.1 使用SFC20 “BLKMOV”复制存储区域 ... 3-1 3.2 使用SFC81 “UBLKMOV”不间断地复制变量 ... 3-4 3.3 使用SFC21 “FILL”初始化存储区 ... 3-6 3.4 使用SFC22 “CREAT_DB”创建数据块... 3-8 3.5 使用SFC23 “DEL_DB”删除数据块... 3-10 3.6 使用SFC24 “TEST_DB”测试数据块... 3-12 3.7 使用SFC25 “COMPRESS”压缩用户存储器 ... 3-13 3.8 使用SFC44 “REPL_VAL”传送一个替换值到累加器1... 3-15 3.9 使用SFC82 “CREA_DBL”在装载存储器中生成数据块 ... 3-16 3.10 使用SFC83 “READ_DBL”从装载存储器的数据块中读取 数据... 3-19 3.11 使用SFC84 “WRIT_DBL”在装载存储器中写入数据块 ... 3-21 3.12 使用SFC85 “CREA_DB”创建数据块... 3-23

4 用于控制程序执行的SFC 4-1

4.1 使用SFC43 “RE_TRIGR”重新触发循环时间监视 ... 4-1 4.2 使用SFC46 “STP”将CPU切换为STOP ... 4-1 4.3 使用SFC47 “WAIT”延时用户程序执行 ... 4-2 4.4 使用SFC35 “MP_ALM”触发多处理器中断 ... 4-3 4.5 使用SFC104 “CiR”控制CiR... 4-4

5 用于处理系统时钟的SFC 5-1

5.1 使用SFC0 “SET_CLK”设定TOD ... 5-1 5.2 使用SFC1 “READ_CLK”读取时间 ... 5-2 5.3 使用SFC48 “SNC_RTCB”同步子时钟 ... 5-3 5.4 使用SFC100 “SET_CLKS”设定时间日期和TOD状态 ... 5-4

6 用于处理运行系统计时器的SFC 6-1

6.1 运行时间定时器... 6-1 6.2 使用SFC101 “RTM”控制运行时间定时器... 6-2 6.3 使用SFC2 “SET_RTM”设置运行时间定时器... 6-4 6.4 使用SFC3 “CTRL_RTM”启动和停止运行时间定时器 ... 6-5 6.5 使用SFC4 “READ_RTM”读取运行时间定时器... 6-6 6.6 使用SFC64 “TIME_TCK”读取系统时间 ... 6-7

7 用于传送数据记录的SFC 7-1

7.1 读写一条数据记录 ... 7-1 7.2 使用SFC54 “RD_DPARM”读取定义的参数 ... 7-3 7.3 使用SFC102 “RD_DPARA”读取预定义参数 ... 7-4 7.4 使用SFC55 “WR_PARM”写动态参数 ... 7-5 7.5 使用SFC56 “WR_DPARM”写一条数据记录... 7-7 7.6 用SFC57 “PARM_MOD” 将参数分配给模块... 7-8 7.7 使用SFC58 “WR_REC”写入数据记录... 7-11 7.8 使用SFC59 “RD_REC”读一个数据记录... 7-13 7.9 SFC 55到59的进一步出错信息 ... 7-18

长沙工控帮教育科技有限公司整理

(11)

8 符合PNO AK 1131的DPV1 SFB 8-1 8.1 使用SFB “RDREC”从DP从站读一个数据记录 ... 8-1 8.2 使用SFB53“WRREC”将数据记录写入DP从站 ... 8-3 8.3 用SFB54“RALRM” STATUS[3]从DP从站接收中断 ... 8-5 8.4 用SFB75“SALRM”向DP主站发送中断 ... 8-14

9 用于处理时钟中断的SFC 9-1

9.1 处理时钟中断 ... 9-1 9.2 SFC 28到31的特征 ... 9-2 9.3 使用SFC28 “SET_TINT”设置日时钟中断... 9-4 9.4 使用SFC29 “CAN_TINT”取消时钟中断... 9-5 9.5 使用SFC30 “ACT_TINT”激活时钟中断 ... 9-6 9.6 使用SFC31 “QRY_TINT”查询日时钟中断... 9-7

10 用于处理延时中断的SFC 10-1

10.1 处理延时中断 ... 10-1 10.2 使用SFC32 “SRT_DINT”启动延时中断... 10-3 10.3 使用SFC34 “QRY_DINT”查询日时钟中断 ... 10-4 10.4 使用SFC33 “CAN_DINT”取消延时中断 ... 10-5

11 用于处理同步出错的SFC 11-1

11.1 屏蔽同步出错 ... 11-1 11.2 使用SFC36 “MSK_FLT”屏蔽同步出错 ... 11-10 11.3 使用SFC37 “DMSK_FLT”解除屏蔽同步出错 ... 11-11 11.4 使用SFC38 “READ_ERR”读取出错寄存器 ... 11-12

12 用于处理中断和异步出错的SFC 12-1

12.1 延迟和禁用中断和异步出错... 12-1 12.2 使用SFC39 “DIS_IRT”禁用新中断和异步出错的处理 ... 12-3 12.3 使用SFC40 “EN_IRT”启用新中断和异步出错的处理 ... 12-5 12.4 使用SFC41 “DIS_AIRT”延迟更高优先级中断和异步出错的处理 ... 12-7 12.5 使用SFC42 “EN_AIRT”启用处理较高优先级的中断和异步出错 ... 12-8

13 用于诊断的SFC 13-1

13.1 系统诊断 ... 13-1 13.2 使用SFC6 “RD_SINFO”读取OB启动信息... 13-1 13.3 使用SFC51 “RDSYSST”读取系统状态列表或部分列表... 13-4 13.4 使用SFC52 “WR_USMSG”将自定义诊断事件写入诊断缓 冲区 ... 13-10 13.5 使用SFC78 “OB_RT”确定OB程序运行时间... 13-14 13.6 使用SFC87 “C_DIAG”诊断当前连接状态... 13-18 13.7 使用SFC103 “DP_TOPOL”识别DP主站系统的总线拓扑... 13-23

14 用于更新过程映像和处理位域的SFC和SFB 14-1

14.1 使用SFC26 “UPDAT_PI”更新过程映像输入表... 14-1 14.2 使用SFC27 “UPDAT_PO”更新过程映像输出表... 14-3

长沙工控帮教育科技有限公司整理

(12)

15 用于寻址模块的系统功能 15-1 15.1 使用SFC5 “GADR_LGC”查询模块的逻辑基址... 15-1 15.2 使用SFC49 “LGC_GADR”查询属于一个逻辑地址的模块 插槽... 15-3 15.3 使用SFC50 “RD_LGADR”查询模块的所有逻辑地址 ... 15-5

16 用于分布式I/O的SFC 16-1

16.1 使用SFC7 “DP_PRAL”在DP主站上触发硬件中断 ... 16-1 16.2 用SFC11 “DPSYC_FR”同步DP从站组 ... 16-4 16.3 用SFC12 “D_ACT_DP”激活和取消激活DP从站 ... 16-10 16.4 用SFC13 “DPNRM_DG”读取DP从站的诊断数据(从站诊断) ... 16-14 16.5 使用SFC14 “DPRD_DAT”读取DP标准从站的连续数据... 16-18 16.6 使用SFC15 “DPWR_DAT”将连续数据写入到DP标准从站 ... 16-20

17 用于全局数据通讯的SFC 17-1

17.1 使用SFC60 “GD_SND”发送一个GD信息包 ... 17-1 17.2 通过SFC61 “GD_RCV”编程接受已接收到的GD信息包 ... 17-4

18 通讯和S7基本通讯的概述 18-1

18.1 S7通讯块和S7基本通讯块之间的差别 ... 18-1 18.2 数据的一致性 ... 18-4 18.3 S7通讯块概述 ... 18-6 18.4 用于S7基本通讯的功能块总览 ... 18-8

19 S7通讯 19-1

19.1 用于S7通讯的SFB/FB和SFC/FC的公用参数 ... 19-1 19.2 用于组态的S7连接的SFB启动例行程序... 19-5 19.3 SFB对故障如何反应... 19-7 19.4 通过SFB8/FB8“USEND”进行无协调的数据发送... 19-9 19.5 通过SFB/FB9“URCV”进行无协调的数据接收 ... 19-12 19.6 通过SFB/FB12 “BSEND”发送分段数据 ... 19-15 19.7 通过SFB/FB13 “BRCV”接收分段数据... 19-18 19.8 通过SFB/FB15“PUT”向远程CPU写入数据 ... 19-21 19.9 通过SFB/FB14GET”从远程CPU中读取数据... 19-24 19.10 使用SFB16“PRINT”将数据发送到打印机... 19-27 19.11 通过SFB 19“START”在远程设备上开始一个暖重启或冷 重启... 19-33 19.12 通过SFB 20“STOP”将远程设备切换到STOP状态 ... 19-36 19.13 通过SFB 21“RESUME”在远程设备上开始一个热重启... 19-38 19.14 使用SFB 22“STATUS”查询远程伙伴的状态 ... 19-40 19.15 通过SFB23 “USTATUS”接收远程设备的状态改变 ... 19-42 19.16 通过SFC62 “CONTROL”查询属于SFB实例的连接状态 ... 19-44 19.17 通过FC62 “C_CNTRL”查询连接状态 ... 19-46 19.18 S7通讯SFB/FB的工作存储器要求... 19-48

长沙工控帮教育科技有限公司整理

(13)

20 用于未组态S7连接的通讯SFC 20-1 20.1 通讯SFC的公用参数 ... 20-1 20.2 用于未组态S7连接的通讯SFC的出错信息 ... 20-2 20.3 使用SFC65 “X_SEND”将数据发送给在本地S7站外的一个通讯伙伴 ... 20-7 20.4 通过SFC66 “X_RCV”从本地S7站以外的通讯伙伴中接收 数据... 20-8 20.5 通过SFC68 “X_PUT”将数据写入本地S7站以外的通讯伙伴... 20-11 20.6 通过SFC67 “X_GET”从本地S7站以外的通讯伙伴中读取 数据... 20-13 20.7 通过SFC69 “X_ABORT”中止已存在的、到本地S7站以外的通讯伙伴的连接20-15 20.8 使用SFC72 “I_GET”从本地S7站内的一个通讯伙伴上读取数据... 20-16 20.9 使用SFC73 “I_PUT”将数据写入到本地S7站内的一个通讯伙伴... 20-18 20.10 通过SFC74 “I_ABORT”中止已存在的、到本地S7站内的通讯伙伴的连接.... 20-20

21 PROFInet 21-1

21.1 SFC112、113和114背景信息 ... 21-1 21.2 使用SFC112 “PN_IN”更新用于PROFInet组件的用户程序接口的输入 ... 21-4 21.3 使用SFC113 “PN_OUT”更新用于PROFInet组件的用户程序接口的输出 ... 21-5 21.4 使用SFC114 “PN_DP”更新DP互连 ... 21-6

22 生成与块相关的消息 22-1

22.1 关于使用SFB生成块相关消息的介绍 ... 22-1 22.2 使用SFB 36 “NOTIFY”生成无需确认的块相关消息 ... 22-5 22.3 使用SFB31 “NOTIFY_8P”生成无确认显示的块相关消息 ... 22-7 22.4 使用SFB 33 “ALARM”生成需要确认的块相关消息 ... 22-10 22.5 使用SFB35 “ALARM_8P”生成针对八个信号的带有关联值的块相关消息... 22-13 22.6 使用SFB34 “ALARM_8”生成针对八个信号的不附带关联值的块相关消息.... 22-16 22.7 使用SFB37 “AR_SEND”发送归档数据 ... 22-18 22.8 使用SFC10 “DIS_MSG”禁止与块相关的消息、

与符号相关的消息以及组状态消息... 22-20 22.9 使用SFC9 “EN_MSG”启用块相关、符号相关和组状态消息... 22-22 22.10 用于生成与块相关的消息的SFB的启动特性 ... 22-24 22.11 用于生成与块相关的消息的SFB如何响应故障... 22-25 22.12 使用SFC生成与块相关的消息简介... 22-26 22.13 使用SFC17 “ALARM_SQ”生成可确认的与块相关的消息以及使用SFC18

“ALARM_S”生成永久确认的与块相关的消息 ... 22-29 22.14 使用SFC19 “ALARM_SC”查询上一ALARM_SQ/

ALARM_DQ进入事件消息的确认状态 ... 22-32 22.15 使用SFC 107 “ALARM_DQ”和108 “ALARM_D”

生成可确认和永久确认的块相关消息 ... 22-33 22.16 使用SFC105 “READ_SI”读取动态系统资源... 22-35 22.17 使用SFC106 “READ_SI”读取动态系统资源... 22-38

23 IEC定时器和IEC计数器 23-1

23.1 使用SFB 3“TP”生成一个脉冲... 23-1 23.2 使用SFB 4“TON”生成一个接通延迟... 23-3 23.3 使用SFB 5“TOF”生成一个关闭延迟 ... 23-5

长沙工控帮教育科技有限公司整理

(14)

24 IEC功能 24-1 24.1 概述... 24-1 24.2 IEC功能的技术数据... 24-3 24.3 日期和时间作为复杂数据类型 ... 24-5 24.4 时间功能 ... 24-6 24.5 比较DATE_AND_TIME变量 ... 24-10 24.6 比较STRING变量... 24-13 24.7 编辑数值 ... 24-16 24.8 STL示例 ... 24-17 24.9 STL示例 ... 24-18 24.10 编辑STRING变量... 24-19 24.11 转换数据类型格式 ... 24-24

25 用于集成控制的SFB 25-1

25.1 使用SFB41/FB41 “CONT_C”实现连续控制 ... 25-1 25.2 使用SFB42/FB42 “CONT_S”进行步控制... 25-8 25.3 使用SFB43/FB43 “PULSEGEN”生成脉冲 ... 25-14 25.4 PULSEGEN块的实例... 25-25

26 用于紧凑型CPU的SFB 26-1

26.1 通过SFB44 “Analog”使用模拟量输出进行定位 ... 26-1 26.2 通过SFB46 “DIGITAL”使用数字量输出进行定位 ... 26-13 26.3 使用SFB47 “COUNT”控制计数器 ... 26-23 26.4 使用SFB48 “FREQUENC”控制频率测量 ... 26-28 26.5 使用SFB49 “PULSE”控制脉宽调制... 26-32 26.6 使用SFB60 “SEND_PTP”发送数据(ASCII,3964(R)) ... 26-35 26.7 使用SFB61 “RCV_PTP”接收数据(ASCII,3964(R)) ... 26-38 26.8 使用SFB62 “RES_RCVB”删除接收缓冲区 (ASCII,3964(R))... 26-41 26.9 使用SFB63 “SEND_RK”发送数据(512(R)) ... 26-43 26.10 使用SFB64 “FETCH RK”获取数据(RK 512) ... 26-47 26.11 使用SFB65 “SERVE_RK”接收和提供数据(RK 512) ... 26-52 26.12 SFB 60至65的附加出错信息 ... 26-57

27 用于H CPU的SFC 27-1

27.1 在H系统中使用SFC90 “H_CTRL”控制操作 ... 27-1

28 集成功能(对于带集成I/O的CPU) 28-1

28.1 SFB29(HS_COUNT)... 28-1 28.2 SFB30(FREQ_MES)... 28-3 28.3 SFB38(HSC_A_B) ... 28-4 28.4 SFB39(POS)... 28-5

29 Plastics Techology 29-1

29.1 SFC63 (AB_CALL) ... 29-1

30 诊断数据 30-1

长沙工控帮教育科技有限公司整理

(15)

31 系统状态列表(SSL) 31-1 31.1 系统状态列表(SSL)概述... 31-1 31.2 部分SSL列表的结构... 31-3 31.3 SSL-ID ... 31-4 31.4 可能的部分系统状态列表 ... 31-5 31.5 SSL-ID W#16#xy11 - 模块标识 ... 31-6 31.6 SSL-ID W#16#xy12 - CPU特征 ... 31-7 31.7 SSL-ID W#16#xy13 - 存储区域 ... 31-9 31.8 SSL-ID W#16#xy14 - 系统区 ... 31-10 31.9 SSL-ID W#16#xy15 - 块类型 ... 31-12 31.10 SSL-ID W#16#xy19 - 模块LED的状态... 31-13 31.11 SSL-ID W#16#xy1C - 组件标识... 31-15 31.12 SSL ID W#16#xy25 - 将过程映像分区分配到OB... 31-18 31.13 SSL-ID W#16#xy32 - 通讯状态数据 ... 31-21 31.14 SSL-ID W#16#0132,索引为W#16#0005的部分列表的 数据记录摘录 ... 31-22 31.15 SSL-ID W#16#0132,索引为W#16#0008的部分列表的 数据记录摘录 ... 31-23 31.16 SSL-ID为W#16#0132、索引为W#16#000B的部分列表摘 录的数据记录 .... 31-25 31.17 SSL-ID为W#16#0132、索引为W#16#000C的部分列表摘 录的数据记录 .... 31-26 31.18 SSL-ID W#16#0232,索引为W#16#0004的部分列表的 数据记录摘录 ... 31-27 31.19 SSL-ID W#16#xy71 - H CPU的组信息 ... 31-28 31.20 SSL-ID W#16#xy74 - 模块LED的状态... 31-31 31.21 SSL-ID W#16#xy75 - H系统中切换的DP从站 ... 31-33 31.22 SSL-ID W#16#xy90 - DP主站系统信息 ... 31-35 31.23 SSL-ID W#16#xy91 - 模块的状态信息... 31-37 31.24 SSL-ID W#16#xy92 - 机架/站的状态信息 ... 31-41 31.25 SSL-ID W#16#xy95 - 扩展DP主站系统信息 ... 31-44 31.26 SSL-ID W#16#xyA0 - 诊断缓冲区 ... 31-46 31.27 SSL-ID W#16#00B1 - 模块的诊断信息... 31-47 31.28 SSL-ID W#16#00B2 - 对应物理地址的诊断数据记录1 ... 31-49 31.29 SSL-ID W#16#00B3 - 带逻辑基址的模块诊断数据... 31-50 31.30 SSL-ID W#16#00B4 - DP从站的诊断数据... 31-51

32 事件 32-1

32.1 事件和事件标识符 ... 32-1 32.2 事件等级1 - 标准OB事件... 32-3 32.3 事件等级2 - 异步出错... 32-3 32.4 事件等级3 - 异步出错... 32-4 32.5 事件等级4 - 停止事件和其它模式改变 ... 32-7 32.6 事件等级5 - 模式运行期事件 ... 32-10 32.7 事件等级6 - 通讯事件... 32-11 32.8 事件等级7 - H/F事件 ... 32-12 32.9 事件等级8 - 模块的诊断事件 ... 32-14 32.10 事件等级9 - 标准用户事件... 32-16 32.11 事件等级A和B - 自由用户事件 ... 32-17 32.12 保留的事件等级... 32-18

长沙工控帮教育科技有限公司整理

(16)

33 SFC和SFB列表 33-1 33.1 按编号排序的SFC列表... 33-1 33.2 按字母排序的SFC列表... 33-4 33.3 按编号排序的SFB列表 ... 33-7 33.4 按字母排序的SFB列表 ... 33-9 参考书目

词汇表 索引

长沙工控帮教育科技有限公司整理

(17)

1 组织块

1.1

组织块(OB)概述

何为组织块?

组织块(OB)是指CPU的操作系统与用户程序之间的接口。OB用于执行特定的 程序段:

• 启动CPU时

• 在循环或定时执行过程中

• 出错时

• 发生硬件中断时。

组织块按照已分配的优先级来执行。

哪些OB可用?

并非所有的CPU均可处理STEP 7中可用的所有OB。请参阅操作列表/72/和/102/以 确定用户CPU中所包含的OB。

在何处查找详细信息?

请参阅在线帮助和下列手册以获取更多信息:

• /70/:此手册包含描述不同S7-300 CPU性能的技术数据。

• /101/:此手册包含描述不同S7-400 CPU性能的技术数据。

长沙工控帮教育科技有限公司整理

(18)

下表中给出了属于每个OB的启动事件和缺省优先级。

OB 启动事件 缺省优先级 说明

OB1 启动结束或OB1结束 1 自由循环

OB10 OB11 OB12 OB13 OB14 OB15 OB16 OB17

时钟中断0 时钟中断1 时钟中断2 时钟中断3 时钟中断4 时钟中断5 时钟中断6 时钟中断7

2 2 2 2 2 2 2 2

未指定缺省时间

OB20 OB21 OB22 OB23

延时中断0 延时中断1 延时中断2 延时中断3

3 4 5 6

未指定缺省时间

OB30 OB31 OB32 OB33 OB34 OB35 OB36 OB37 OB38

周期性中断0(缺省时间间隔:5s) 周期性中断1(缺省时间间隔:2s) 周期性中断2(缺省时间间隔:1s) 周期性中断3(缺省时间间隔:500ms) 周期性中断4(缺省时间间隔:200ms) 周期性中断5(缺省时间间隔:100ms) 周期性中断6(缺省时间间隔:50ms) 周期性中断7(缺省时间间隔:20ms) 周期性中断8(缺省时间间隔:10ms)

7 8 9 10 11 12 13 14 15

周期性中断

OB40 OB41 OB42 OB43 OB44 OB45 OB46 OB47

硬件中断 0 硬件中断 1 硬件中断 2 硬件中断 3 硬件中断 4 硬件中断 5 硬件中断 6 硬件中断 7

16 17 18 19 20 21 22 23

硬件中断

OB55 状态中断 2 DPV1中断

OB56 更新中断 2

OB57 制造商特定中断 2

OB60 SFC35 “MP_ALM”调用 25 多值计算中断 OB 61

OB 62

同步周期性中断1 同步周期性中断2

25 25

同步周期性中断

长沙工控帮教育科技有限公司整理

(19)

OB 启动事件 缺省优先级 说明 OB70

OB72 OB 73

I/O冗余出错(仅在H CPU中) CPU冗余出错(仅在H CPU中) 通讯冗余出错OB(仅在H CPU中)

25 28 25

冗余出错中断

OB80 OB81 OB82 OB83 OB84 OB85 OB86

OB87 OB 88

时间出错 电源故障 诊断中断

插入/删除模块中断 CPU硬件故障 程序出错

扩展机架、DP主站系统或用于分布式I/O的站 故障

通讯出错 处理中断

26、28 1) 25、28 1) 25、28 1) 25、28 1) 25、28 1) 25、28 1) 25、28 1)

25、28 1) 28

异步出错中断

OB90 暖重启或冷重启,或删除OB90中正在执行的 块,或将在CPU上装载OB90或终止OB90

29 2) 后台循环

OB100 OB101 OB102

暖重启 热重启 冷重启

27 1) 27 1) 27 1)

启动

OB121 OB122

编程出错 I/O访问出错

导致出错的OB优先级 导致出错的OB优先级

同步出错中断

1) 优先级27和28在启动的优先级模型中有效。

2) 优先级29对应于优先级0.29。这就意味着后台循环的优先级低于自由循环。

长沙工控帮教育科技有限公司整理

(20)

1.2

程序循环组织块(OB1)

描述

S7 CPU的操作系统定期执行OB1。执行OB1后,操作系统将再次启动它。完成启动 后,将启动OB1的循环执行。可调用OB1中的其它功能块(FB、SFB)或功能(FC、

SFC)。

了解OB1的操作

在运行期受监视的所有OB中,OB1的优先级最低,换言之,除OB90之外的其它所 有OB均可中断OB1的执行。以下事件可导致操作系统调用OB1:

• 完成启动。

• 已完成OB1的执行(上一循环)。

执行OB1后,操作系统发送全局数据。重新启动OB1之前,操作系统会将过程映像 输出表写入输出模块中、更新过程映像输入表以及接收CPU的任何全局数据。

S7监视最大的扫描时间,并确保最大的响应时间。最大扫描时间的值预置为 150ms。用户可设置一个新值,也可在用户程序中的任意位置使用SFC43

“RE_TRIGR”来重新启动时间监视。如果用户程序超出了OB1的最大周期,则操作系 统将调用OB80 (时间错误OB);如果OB80没有编程,则CPU将转为STOP模式。

除了监视最大扫描时间外,还可以保证最小扫描时间。操作系统将延迟启动新循环 (将过程映像输出表写入输出模块中),直至达到最小扫描时间为止。

请参阅手册 /70/ 和 /101/ 以了解参数“最大”和“最小”扫描时间的范围。可使用STEP 7 更改参数设置。

长沙工控帮教育科技有限公司整理

(21)

OB1的本地数据

下表描述了OB1的临时(TEMP)变量。变量名为OB1的缺省名称。

变量 类型 描述

OB1_EV_CLASS BYTE 事件等级和标识符:B#16#11:OB1激活 OB1_SCAN_1 BYTE B#16#01:完成暖重启

B#16#02:完成热重启

B#16#03:完成主循环

B#16#04:完成冷重启

B#16#05:主站-

保留站切换和“停止”上一主站之后新主站CPU的首个 OB1循环

OB1_PRIORITY BYTE 优先级1 OB1_OB_NUMBR BYTE OB编号(01) OB1_RESERVED_1 BYTE 保留 OB1_RESERVED_2 BYTE 保留

OB1_PREV_CYCLE INT 上一次扫描的运行时间(ms) OB1_MIN_CYCLE INT 自上次启动后的最小周期(ms) OB1_MAX_CYCLE INT 从上次启动后的最大周期(ms) OB1_DATE_TIME DATE_AND_TIME 调用OB时的DATE_AND_TIME

长沙工控帮教育科技有限公司整理

(22)

1.3

时钟中断组织块

(OB10到OB17)

描述

STEP 7提供了多达八个OB (OB10 到OB17),这些OB可单次运行,也可定期运行。

可使用SFC或STEP 7为CPU分配参数,以便以下列时间间隔处理这些OB:

• 单次

• 每分钟

• 每小时

• 每天

• 每周

• 每月

• 每个月末

注意

对于每月执行的时钟中断OB,只可将1、2、...28号作为起始日期。

了解时钟中断OB的操作

要启动时钟中断,必须先设置中断,然后再将其激活。

有以下三种可能的启动方式:

• 自动启动时钟中断。一旦使用STEP 7设置并激活了时钟中断,即会发生此情况

。下表说明了使用STEP 7激活时钟中断的基本可能情况。

• 使用STEP 7设置日时钟中断,然后通过调用程序中的SFC30 “ACT-TINT”来激活 它。

• 通过调用SFC28 “SET_TINT”来设置日时钟中断,然后通过调用 SFC30 “ACT_TINT”来激活它。

长沙工控帮教育科技有限公司整理

(23)

时间间隔 描述

未激活 时钟中断未执行,即使将其装载到CPU中也是如此。可通过调用SFC30来激活它。

仅激活一次 时间OB按指定时间运行一次后,即被自动取消。

用户程序可使用SFC28和SFC30来复位并重新激活OB。

定期激活 当发生时钟中断时,CPU将根据当前的时间和周期计算时间中断的下一次启动的时间。

当前后拨动时钟时,时间中断的特性将如234

注意

如果以如下方式组态时间中断,即单次处理相应的OB要,则DATE_AND_TIME必须为过去的 时间(相对于CPU的实际时间)。

如果以如下方式组态时间中断,即定期处理相应的OB,而启动DATE_AND_TIME为过去的时 间,随后将在下次预期的时间处理该时间中断。下图对此进行了说明。

可以使用SFC 39至42禁用或延迟和重新启用时钟中断。

Preset start time

Current time

Preset interval

Point at which the time-of-day interrupt OB is first executed.

长沙工控帮教育科技有限公司整理

(24)

影响时钟中断OB的条件

由于时间中断仅以指定的时间间隔发生,因此在执行用户程序期间,某些条件可能 会影响OB的操作。下表列出了其中的一些条件,并说明了该条件对执行时间中断 OB的影响。

条件 结果

用户程序调用SFC29 (CAN_TINT)并取消时 间中断。

操作系统清除了时钟中断的启动事件(DATE_AND_TIME)。

必须再次设置启动事件并在再次调用OB之前激活它。

用户程序试图激活时间中断OB,但未将OB 加载到CPU中。

操作系统调用OB85。如果OB85尚未编程(装载到CPU中),

则CPU将转为STOP模式。

当同步或更正CPU的系统时钟时,用户提前 设置了时间并跳过时间OB的启动事件日期或 时间。

操作系统调用OB80并对时间OB的编号和OB80中的启动事 件信息进行编码。

随后操作系统将运行一次时间OB,而不管本应执行此OB的 次数。OB80的启动事件信息给出了第一次跳过时间OB的 DATE_AND_TIME。

当同步或更正CPU的系统时钟时,推后设置 了时间以使OB的启动事件、日期或时间得以 重复。

S7-400-CPU和CPU 318:

如果在推后设置时钟之前已激活了时间OB,则不会再次调 用它。

S7-300-CPU:执行时间OB。

CPU通过暖重启或冷重启运行。 由SFC组态的所有时间OB会被改回在STEP 7中指定的 组态。

如果已为相应OB的单次启动组态了时间中断,并使用 STEP 7对其进行了设置,并将其激活,则当所组态的启动 时间为已过去的时间(相对于CPU的实时时钟)时,会在暖重 启或冷重启操作系统后调用一次OB。

当发生下一时间间隔的启动事件时,仍执行 时间OB。

操作系统调用OB80。如果OB80没有编程,则CPU转为 STOP模式。

如果装载了OB80,则会首先执行OB80和时钟中断OB,

然后再执行请求的中断。

长沙工控帮教育科技有限公司整理

(25)

时钟中断OB的本地数据

下表给出了时间中断OB的临时(TEMP)变量。变量名为OB10的缺省名称。

变量 类型 描述

OB10_EV_CLASS BYTE 事件等级和标识符:B#16#11 = 中断处于激活状态 OB10_STRT_INFO BYTE B#16#11:OB10的启动请求

(B#16#12:OB11的启动请求)

(B#16#18:OB17的启动请求) OB10_PRIORITY BYTE 分配的优先级;缺省值为2 OB10_OB_NUMBR BYTE OB编号(10至17)

OB10_RESERVED_1 BYTE 保留 OB10_RESERVED_2 BYTE 保留

OB10_PERIOD_EXE WORD OB以指定的时间间隔执行:

W#16#0000:单次 W#16#0201:每分钟一次 W#16#0401:每小时一次 W#16#1001:每天一次 W#16#1201:每周一次 W#16#1401:每月一次 W#16#1801:每年一次 W#16#2001:月末 OB10_RESERVED_3 INT 保留

OB10_RESERVED_4 INT 保留

OB10_DATE_TIME DATE_AND_TIME 调用OB时的DATE_AND_TIME

长沙工控帮教育科技有限公司整理

(26)

1.4

时间延迟中断组织块

(OB20 到OB23)

描述

S7提供多达四个在指定延迟后执行的OB (OB20 到OB23)。每个延时OB均可通过调 用SFC32 (SRT_DINT)来启动。延迟时间是SFC的一个输入参数。

当用户程序调用SFC32 (SRT_DINT)时,需要提供OB编号、延迟时间和用户专用的 标识符。经过指定的延迟后,OB将会启动。还可取消尚未启动的延时中断。

了解延时中断OB的操作

延迟时间(同OB编号一起传送给SFC32的值,单位为ms)到期后,操作系统将启动相 应的OB。

要使用延时中断,必须执行以下任务:

• 必须调用SFC32 (SRT_DINT)。

• 必须将延时中断OB作为用户程序的一部分下载到CPU。

只有当CPU处于RUN模式下时才会执行延时OB。暖重启或冷重启将清除延时OB的 所有启动事件。如果延时中断还未启动,则可使用SFC33 (CAN_DINT)取消执行。

延迟时间的分辨率为1ms。已到期的延迟时间可立即再次启动。可使用SFC34 (QRY_DINT)查询延时中断的状态。

如果发生以下事件之一,操作系统将调用异步出错OB:

• 如果操作系统试图启动一个尚未装载的OB,并且用户在调用SFC32

“SRT_DINT”时指定了其编号。

• 如果在完全执行延时OB之前发生延时中断的下一个启动事件。

可使用SFC 39至42来禁用或延迟并重新使能延迟中断。

长沙工控帮教育科技有限公司整理

(27)

延时中断OB的本地数据

下表描述了延时中断OB的临时(TEMP)变量。变量名为OB20的缺省名称。

变量 类型 描述

OB20_EV_CLASS BYTE 事件等级和标识符:

B#16#11:中断处于激活状态 OB20_STRT_INF BYTE B#16#21:OB20的启动请求

(B#16#22:OB21的启动请求) (B#16#23:OB22的启动请求) (B#16#24:OB23的启动请求)

OB20_PRIORITY BYTE 分配的优先级:缺省值3(OB20)至6(OB23) OB20_OB_NUMBR BYTE OB编号(20至23)

OB20_RESERVED_1 BYTE 保留 OB20_RESERVED_2 BYTE 保留

OB20_SIGN WORD 用户ID:通过调用SFC32 (SRT_DINT)的输入参数SIGN OB20_DTIME TIME 已组态的延迟时间(单位为ms)

OB20_DATE_TIME DATE_AND_TIME 调用OB时的DATE_AND_TIME

长沙工控帮教育科技有限公司整理

(28)

1.5

周期性中断组织块

(OB30 到OB38)

描述

S7提供了多达九个的循环中断OB (OB30 到OB38),它们以固定的时间间隔来中断用 户程序。下表给出了循环中断OB的缺省时间间隔和优先级。

OB编号 缺省时间间隔 缺省优先级

OB30 5s 7

OB31 2s 8

OB32 1s 9

OB33 500ms 10

OB34 200ms 11

OB35 100ms 12

OB36 50ms 13

OB37 20ms 14

OB38 10ms 15

了解周期性中断OB的操作

循环中断OB的等距启动时间是由时间间隔和相位偏移量决定的。请参阅/234/,

以了解OB的启动时间、周期以及相位偏移量之间的关系。

注意

必须确保每个周期性中断OB的运行时间远远小于其时间间隔。如果因时间间隔已到 期,如果在预期的再次执行前未完全执行循环中断OB,则启动时间错误OB (OB80)。稍后将执行导致错误的循环中断。

可使用SFC 39至42来禁用或延迟,并重新启用周期性中断

请参阅用户特定CPU的说明书,了解参数时间间隔、优先级和相位偏移量的范围。

可使用STEP 7来更改参数设置。

长沙工控帮教育科技有限公司整理

(29)

周期性中断OB的本地数据

下表给出了循环中断OB的临时(TEMP)变量。变量名为OB35的缺省名称。

变量 类型 描述

OB35_EV_CLASS BYTE 事件等级和标识符

B#16#11:中断处于激活状态

OB35_STRT_INF BYTE B#16#30:具有特殊标准的周期性中断OB的启动请 求(仅适用于H-CPU,且仅当对其进行了明确组态后) B#16#31 :OB30的启动请求

B#16#36 :OB35的启动请求

B#16#39 :OB38的启动请求

OB35_PRIORITY BYTE 分配的优先级:缺省值为7(OB30)至15(OB38) OB35_OB_NUMBR BYTE OB编号(30至38)

OB35_RESERVED_1 BYTE 保留 OB35_RESERVED_2 BYTE 保留

OB35_PHASE_OFFSET WORD 相位偏移量[ms]

OB35_RESERVED_3 INT 保留

OB35_EXC_FREQ INT 时间间隔(单位为ms)

OB35_DATE_TIME DATE_AND_TIME 调用OB时的DATE_AND_TIME

长沙工控帮教育科技有限公司整理

(30)

1.6

硬件中断组织块

(OB40到OB47)

描述

S7提供了多达八个的独立硬件中断,每一中断都具有自己的OB。

通过STEP 7分配参数,可以为将要触发硬件中断的每个信号模块指定以下内容:

• 在何种条件下触发硬件中断的通道。

• 要分配给个别通道组的硬件中断OB(缺省情况下,将由OB40来处理所有的硬件 中断)。

借助于CP和FM,可使用其各带软件来分配这些参数。

可使用STEP 7选择各个硬件中断OB的优先级。

了解硬件中断OB的操作

在模块触发硬件中断后,操作系统将标识插槽以及相应的硬件中断OB。如果此 OB的优先级高于当前激活的优先级,则将启动该OB。当执行完此硬件中断OB后,

将发送通道指定的确认。

如果在对硬件中断进行标识和确认的这段时间内,在同一模块中发生了触发硬件中 断的另一事件,则应用以下规则:

• 如果该事件发生在先前触发硬件中断的通道中,则新中断丢失。在下图中,将根 据数字输入模块的通道实例对此进行说明。触发事件是上升沿。硬件中断OB是 OB40。

Process signal

OB40 Execution of OB40

These hardware interrupts are not detected

• 如果该事件发生在同一模块的另一通道中,通常不会触发任何硬件中断。

然而此中断不会丢失,而是在确认当前激活的硬件中断后被触发。

长沙工控帮教育科技有限公司整理

(31)

如果因来自另一模块中的硬件中断而使某一硬件中断被触发,并且其OB当前处于激 活状态,则将记录新请求并且在OB空闲时对其进行处理。

可使用SFC 39至42来禁用或延迟,并重新启用硬件中断。

既可以使用STEP 7,也可以使用SFC 55至57为模块的硬件中断分配参数。

硬件中断OB的本地数据

下表给出了硬件中断OB的临时(TEMP)变量。变量名为OB40的缺省名称。

变量 类型 描述

OB40_EV_CLASS BYTE 事件等级和标识符:

B#16#11:中断处于激活状态 OB40_STRT_INF BYTE B#16#41:通过中断线1中断

B#16#42:通过中断线2中断 (仅限S7-400)

B#16#43:通过中断线3中断 (仅限S7-400)

B#16#44:通过中断线4中断 (仅限S7-400)

B#16#45:WinAC:通过PC触发中断 OB40_PRIORITY BYTE 分配的优先级:缺省值为16(OB40)至23(OB47) OB40_OB_NUMBR BYTE OB编号(40至47)

OB40_RESERVED_1 BYTE 保留

OB40_IO_FLAG BYTE 输入模块:B#16#54 输出模块:B#16#55 OB40_MDL_ADDR WORD 触发中断的模块的逻辑基址 OB40_POINT_ADDR DWORD 对于数字模块:

模块上具有输入状态的位域(位0对应于第一个输入) 可在给定模块的说明中找到为模块中的通道分配的从 OB40_POINT_ADDR起始的位。

对于模拟模块:

位域,指出哪个通道已超出哪条限制

(有关结构的详细信息,请参阅/71/ 或/101/ )。

对于CP或IM:

模块中断状态(非用户相关) OB40_DATE_TIME DATE_AND_TIME 调用OB时的DATE_AND_TIME

注意

如果使用了具有DPV1功能的CPU,可借助于SFB54 “RALRM”获取有关中断的其它 信息,这些信息不止包含OB的起始信息。在S7兼容模式下操作DP主站时,这一点 也同样适用。

长沙工控帮教育科技有限公司整理

(32)

1.7

状态中断OB(OB 55)

注意

状态中断OB (OB 55)仅对具有DPV1功能的CPU可用。

描述

如果状态中断是通过DPV1从站的插槽触发,则CPU操作系统调用OB55。

如果DPV1从站的组件(模块或机架)更改了其操作模式(例如由RUN改为STOP),则可 能会发生这种情况。有关可触发状态中断的事件的详细信息,请参阅DPV1从站制造 商的文档。

状态中断OB的本地数据

下表给出了状态中断OB的临时(TEMP)变量。所选变量的名称为OB55的缺省名称。

变量 数据类型 描述

OB55_EV_CLASS BYTE 事件等级和标识符:

B#16#11(即将发生的事件) OB55_STRT_INF BYTE B#16#55(OB55的启动请求) OB55_PRIORITY BYTE 已组态的优先级,缺省值为2 OB55_OB_NUMBR BYTE OB编号(55)

OB55_RESERVED_1 BYTE 保留

OB55_IO_FLAG BYTE 输入模块:B#16#54 输出模块:B#16#55

OB55_MDL_ADDR WORD 中断触发组件(模块)的逻辑基址 OB55_LEN BYTE 中断所提供的数据块长度 OB55_TYPE BYTE 中断类型状态中断的ID OB55_SLOT BYTE 中断触发组件(模块)的插槽号 OB55_SPEC BYTE 说明符

位0至1:中断说明符

位2:Add_Ack

位3至7:顺序号 OB55_DATE_TIME DATE_AND_TIME 调用OB时的日期和时间

注意

通过OB55调用SFB54 “RALRM”,可获得DP消息帧所含中断的完整辅助信息。

长沙工控帮教育科技有限公司整理

(33)

1.8

更新中断OB(OB 56)

注意

更新中断OB (OB 56)仅对具有DPV1功能的CPU可用。

描述

如果更新中断是通过DPV1从站的插槽触发,则CPU操作系统调用OB56。

如果用户更改了DPV1从站插槽的参数(通过本地或远程访问),则可能会发生这种情 况。有关可触发更新中断的事件的详细信息,请参阅DPV1从站制造商的文档。

更新中断OB的本地数据

下表给出了更新中断OB的临时(TEMP)变量。所选变量名为OB56的缺省名称。

变量 数据类型 描述

OB56_EV_CLASS BYTE 事件等级和标识符:

B#16#11(即将发生的事件) OB56_STRT_INF BYTE B#16#56(OB56的启动请求) OB56_PRIORITY BYTE 组态的优先级,缺省值为2 OB56_OB_NUMBR BYTE OB编号(56)

OB56_RESERVED_1 BYTE 保留

OB56_IO_FLAG BYTE 输入模块:B#16#54 输出模块:B#16#55

OB56_MDL_ADDR WORD 中断触发组件(模块)的逻辑基址 OB56_LEN BYTE 中断所提供的数据块长度 OB56_TYPE BYTE 中断类型更新中断的ID OB56_SLOT BYTE 中断触发组件(模块)的插槽号 OB56_SPEC BYTE 说明符

位0至1:中断符

位2:Add_Ack

位3至7:顺序号 OB56_DATE_TIME DATE_AND_TIME 调用OB时的日期和时间

注意

通过OB56调用SFB54 “RALRM”,可获得DP消息帧所含中断的完整辅助信息。

长沙工控帮教育科技有限公司整理

(34)

1.9

制造商特定中断OB(OB57)

注意

制造商特定中断的OB (OB57)仅对具有DPV1功能的CPU可用。

描述

如果制造商特定中断是通过DPV1从站的插槽触发的,则CPU操作系统调用OB57。

制造商特定中断的OB的本地数据

下表给出制造商特定中断的OB的临时(TEMP)变量。所选变量名为OB57的 缺省名称。

变量 数据类型 描述

OB57_EV_CLASS BYTE 事件等级和标识符:

B#16#11(即将发生的事件) OB57_STRT_INF BYTE B#16#57(OB57的启动请求) OB57_PRIORITY BYTE 已组态的优先级,缺省值为2 OB57_OB_NUMBR BYTE OB编号(57)

OB57_RESERVED_1 BYTE 保留

OB57_IO_FLAG BYTE 输入模块:B#16#54 输出模块:B#16#55

OB57_MDL_ADDR WORD 中断触发组件(模块)的逻辑基址 OB57_LEN BYTE 中断所提供的数据块长度 OB57_TYPE BYTE 中断类型制造商特定中断的ID OB57_SLOT BYTE 中断触发组件(模块)的插槽号 OB57_SPEC BYTE 说明符

位0至1:中断说明符

位2:Add_Ack

位3至7:顺序号 OB57_DATE_TIME DATE_AND_TIME 调用OB时的日期和时间

注意

通过OB57调用SFB54 “RALRM”,可获得DP消息帧所含中断的完整辅助信息。

长沙工控帮教育科技有限公司整理

(35)

1.10

多值计算中断组织块(OB60)

描述

使用多值计算中断,可确保CPU的反应在多值计算过程中与事件同步。与信号模块 所触发的硬件中断比较而言,多值计算中断只能由CPU输出。

了解多值计算中断OB的操作

多值计算中断通过调用SFC35 “MP_ALM”来触发。通过调用SFC35 “MP_ALM”触发 多值计算中断。在多值计算期间,导致总线段上所有CPU上的同步的OB60启动,

除非禁用(通过SFC39 “DIS_IRT”)或延迟(通过SFC41 “DIS_AIRT”)了OB60。如果尚 未将OB60装载到CPU上,则该CPU会在中断前返回上一优先级,并继续在此执行程 序。在单处理器操作中以及在使用分段机架时,仅在用户调用SFC35 “MP_ALM”的 CPU上启动OB60。

当用户程序调用SFC35 “MP_ALM”时,应为所有的CPU提供一个作业ID。这就允许 用户对特定事件作出反应。如果用户在不同的CPU上以不同方式对OB60进行编程,

将导致OB的执行时间不同。在这种情况下,CPU将在不同时间返回到被中断的优先 级。如果下一个多值计算中断由CPU输出,而另一个CPU仍在忙于执行上一个多值 计算中断的OB60,则OB60既不会在请求时启动,也不会在属于该总线段的任何其 它CPU上启动。下图以两个CPU为例对此进行了说明。所调用SFC35的函数值将通 知您具体结果。

CPU 1:

CPU 2:

Cycle OB60 execution

OB60 execution OB60 execution

Cycle

OB60 execution

Cycle

Cycle

"CALL SFC35"

"CALL SFC35" "CALL SFC35"

多值计算中断OB的本地数据

长沙工控帮教育科技有限公司整理

(36)

变量 数据类型 描述

OB60_EV_CLASS BYTE 事件等级和ID:

B#16#11:中断处于激活状态

OB60_STRT_INF BYTE B#16#61: 由自身的CPU触发的多值计算中断 B#16#62: 由其它CPU触发的多值计算中断 OB60_PRIORITY BYTE 分配的优先级:缺省值为25

OB60_OB_NUMBR BYTE OB编号:60 OB60_RESERVED_1 BYTE 保留 OB60_RESERVED_2 BYTE 保留

OB60_JOB INT 作业ID:SFC35 “MP_ALM”的输入变量JOB OB60_RESERVED_3 INT 保留

OB60_RESERVED_4 INT 保留

OB60_DATE_TIME DATE_AND_TIME 调用OB时的DATE_AND_TIME。

长沙工控帮教育科技有限公司整理

(37)

1.11

同步周期性中断OB(OB 61 到OB 64)

描述

通过同步循环中断可选择在具有DP循环的同步循环中启动程序。OB 61充当同步循 环中断TSAL1的接口OB。可以将OB 61的优先级设置为0 (取消选定OB)和2到26之 间的数。

! 当心

在使用L或T命令(例如L PEB、T PAB)直接访问,以及使用SFC 14 “DPRD_DAT”和 15 “DPWR_DAT”时,请避免访问已为其过程映像分区分配了到OB6x (同步循环中 断)的连接的I/O区域

同步周期性中断OB的本地数据

下表说明了同步周期性中断OB的临时(TEMP)变量。变量名为OB 61的缺省名称。

变量 数据类型 描述

OB61_EV_CLASS BYTE 事件等级和ID:

B#16#11:中断处于激活状态 OB61_STRT_INF BYTE B#16#64:OB 61

的启动请求 B#16#67:OB 64的启动请求 OB61_PRIORITY BYTE 分配的优先级;缺省值:25 OB61_OB_NUMBR BYTE OB编号:61 … 64

OB61_RESERVED_1 BYTE 保留 OB61_RESERVED_2 BYTE 保留 OB61_GC_VIOL BOOL GC违例

OB61_FIRST BOOL 启动或停止状态后的首次使用

OB61_MISSED_EXEC BYTE 自上次执行OB 61以来启动OB 61失败的次数 OB61_DP_ID BYTE 同步DP主站系统的DP主站系统标识号 OB61_RESERVED_3 BYTE 保留

OB61_RESERVED_4 WORD 保留

OB61_DATE_TIME DATE_AND_TIME 调用OB时的DATE_AND_TIME。

长沙工控帮教育科技有限公司整理

(38)

1.12 I/O冗余出错OB(OB70)

注意

I/O冗余出错OB (OB70)仅可与H CPU结合使用。

描述

当在PROFIBUS DP上存在冗余丢失时(例如,激活DP主站发生总线故障,或DP 从站的接口模块出错),或者当具有连接I/O的DP从站的激活DP主站发生改变时,

H CPU的操作系统将调用OB70。

如果发生了启动事件而OB70没有编程,则CPU不会转为STOP模式。如如果装载了 OB70且H系统处于冗余模式,则在两个CPU上执行OB70。H系统仍处于冗余模式。

I/O冗余OB的本地数据

下表给出了I/O冗余错误OB的临时(TEMP)变量。所选变量名为OB70的缺省名称。

变量 类型 描述

OB70_EV_CLASS BYTE 事件等级和ID:

• B#16#72:离开事件

• B#16#73:进入事件

OB70_FLT_ID BYTE 出错代码(可能值:

B#16#A2、B#16#A3 OB70_PRIORITY BYTE 优先级,可通过STEP 7分配

(硬件配置) OB70_OB_NUMBR BYTE OB编号(70) OB70_RESERVED_1 WORD 保留

OB70_INFO_1 WORD 取决于出错代码

OB70_INFO_2 WORD 取决于出错代码

OB70_INFO_3 WORD 取决于出错代码

OB70_DATE_TIME DATE_AND_TIME 调用OB时的DATE_AND_TIME

下表给出了启动OB70的事件。

OB70_EV_CLASS OB70_FLT_ID OB70的启动事件

B#16#72 B#16#A2 DP主站或DP主站系统分别发生故障 B#16#73/B#16#72 B#16#A3 冗余丢失/返回DP从站的冗余

长沙工控帮教育科技有限公司整理

參考文獻

相關文件

• 57 MMX instructions are defined to perform the parallel operations on multiple data elements parallel operations on multiple data elements packed into 64-bit data types.. Th i l

共同業務 教師成長 C/Q/S E/R/A 專業發展 C/Q/S E/R/A 實驗研究組 科學活動 C/Q/S E/R/A 研究發展 C/Q/S E/R/A 資料出版組 出版刊物 C/Q/S E/R/A 國際教育 C/Q/S

Department of Mathematics National Cheng Kung

[r]

Department of Mathematics National Cheng Kung

[r]

The results contain the conditions of a perfect conversion, the best strategy for converting 2D into prisms or pyramids under the best or worth circumstance, and a strategy

Because both sets R m  and L h i ði ¼ 1; 2; :::; JÞÞ are second-order regular, similar to [19, Theorem 3.86], we state in the following theorem that there is no gap between