资源描述
STEP7常用功能块说明
STEP7 常用功能块说明
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 Blocks
FC22 "LIMIT" FC25 "MAX" FC27 "MIN"
FC22 ---限幅输出
FC25,FC27 --- 3个数比大小
9.PID Control Blocks
FB41/42/43 同 SFB41 "CONT_C" SFB42 "CONT_S" SFB43 "PULSEGEN"
FB58 "TCON_CP" FB59 "TCONT_S" 用于温度控制PID
10.Ti-S7 Converting Blocks
FC105 "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
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
目录
用于S7-300/400系统和标准功能的系统软件
x A5E00446508-01
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
目录
用于S7-300/400系统和标准功能的系统软件
A5E00446508-01 xi
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
14.3 使用SFC79 “SET”在I/O区域中设置位域......................................................... 14-5
14.4 使用SFC 126 “SYNC_PI”在同步循环中更新过程映像分 区输入表................. 14-6
14.5 使用SFC 127 “ISO_PO”在同步循环中更新过程映像分区输出表.................... 14-8
14.6 使用SFC80 “RSET”复位I/O区域中的位域..................................................... 14-10
14.7 使用SFB 32 “DRUM”实现一个操作序列....................................................... 14-11
目录
用于S7-300/400系统和标准功能的系统软件
xii A5E00446508-01
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
目录
用于S7-300/400系统和标准功能的系统软件
A5E00446508-01 xiii
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背景信息.....................
展开阅读全文