17西门子各组织块详解
- 格式:pdf
- 大小:3.97 MB
- 文档页数:25
西门子 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就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。
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的操作系统与用户程序之间的接口。
DB块的内容说明:DB1 西门子保留DB2~DB4 PLC messagesDB5~DB8 basic programDB9 NC compile NC编译循环接口DB10 NCK interface 中央NC接口DB11 mode group interface 方式组接口DB18 SPL接口(安全集成)DB19 PCU接口DB20 PLC机床数据DB21~DB30 NC channel interface NC通道接口DB31~DB61 interface for axis/spindles 轴/主轴号1到31预留接口DB71~DB74 tool management 用户刀具管理DB75~DB76 M 功能代码PLC到MMC的信号:DB 19 DBX 0.0 screen brightDB 19 DBX 0.1 screen darkeningDB 19 DBX 0.2 key disableDB 19 DBX 0.3 清除通道报警DB 19 DBX 0.7 机床坐标或工件坐标DB 19 DBX 0.7=1 工件坐标DB 19 DBX 0.7=0 机床坐标MMC到PLC的信号:DB 19 DBX 20.3 报警已清除NCK 与PLC之间的信号传递DB2~~PLC 信息DB10 ~NCK信息PLC给NCK的信号DB 10 DBX 56.1 急停信号MMC给PLC的信号DB10 DBX 103.6 MMC过热DB10 DBX 103.7 电池报警NCK给PLC的信号DB10 DBX 104.7 NCK CPU readyDB10 DBX 108.7 NC readyDB10 DBX 108.6 drive readyDB10 DBX 106.7 急停信号DB10 DBX 109.0 NCK报警存在DB10 DBX 109.5 NCK过热DB10 DBX 109.6 NCU温度过高DB10 DBX 109.7 电池报警DB 11~ DB 14 方式组信号PLC给NCK的信号:DB11DBX0.0 AUTODB 11 DBX 0.1 MDADB 11 DBX 0.2 JOGDB 11 DBX 0.4 方式组切换禁止DB 11 DBX 0.5 方式组停止,进给轴。
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程序,并使其易于修改和维护。
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"模拟量输入输出的比例和数据类型转换。
西门子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\模拟量输入输出的比例和数据类型转换。
西门子编程里面的各种块(Block)宝宝-OBFBFCDBSFC科普引言西门子程序采用结构化编程,把程序分成多个模块,各模块完成相应的功能结合起来就能实现一个复杂的控制系统,就像高级语言一样用子程序实现特定的功能,再通过主程序调用各子程序,从而能实现复杂的程序。
结构化编程STEP7的程序结构 l 线性程序结构 l 分块程序结构 l 结构化程序结构一、西门子编程里面的块简介1.编程块概述变成块汇总2.程序访问顺序程序访问西门子PLC CPU 程序访问顺序:主程序OB块、功能块FB&FC、数据块DB二、西门子编程各块应用案例分析1.OB块案例组织块代号1.1组织循环(OB1)块程序循环 OB 在 CPU 处于 RUN 模式时,周期性地循环执行。
可在程序循环OB 中放置控制程序的指令或调用其它功能块(FC 或 FB)。
主程序(Main)为程序循环 OB ,要启动程序执行,项目中至少有一个程序循环OB 。
操作系统每个周期调用该程序循环 OB 一次,从而启动用户程序的执行。
1.2延时中断( OB20)块延时中断块1、调用“SRT_DINT”指令启动延时中断;2、当到达设定的延时时间,操作系统将启动相应的延时中断 OB ;3、图例中,延时中断 OB20 中断程序循环 OB1 优先执行;4、当启动延时中断后,在延时时间到达之前,调用“CAN_DINT”指令可取消已启动的延时中断。
1.3 循环中断(OB30)块循环中断OB 在经过一段固定的时间间隔后执行相应的中断OB 中的程序。
循环中断块1、PLC 启动后开始计时;2、当到达固定的时间间隔后,操作系统将启动相应的循环中断OB ;3、图例中,到达固定的时间间隔后,循环中断 OB30 中断程序循环 OB1 优先执行。
1.4硬件中断(OB 40)块硬件中断OB 在发生相关硬件事件时执行,可以快速的响应并执行硬件中断 OB 中的程序(例如立即停止某些关键设备)。
1、自由循环组织块OB1S7CPU启动完成后,操作系统循环执行OB1,OB1执行完成后,操作系统再次启动OB1。
在OB1中可以调用FB、SFB、FC、SFC等用户程序使其循环执行。
除OB90以外,OB1优先级最低,可以被其他OB中断。
OB1默认扫描监控时间为150ms(可设置),扫描超时,CPU自动调用OB80报错,如果程序中没有建立OB80,CPU进入停止模式。
2、日期中断组织块OB10~OB17在CPU属性中,可以设置日期中断组织块OB10~OB17触发的日期、执行模式(到达设定的触发日期后,OB 只执行一次或按每分、每小时、每周、每月周期执行)等参数,当CPU的日期值大于设定的日期值时,触发相应的OB并按设定的模式执行。
在用户程序中也可以通过调用SFC28系统函数设定CPU日期中断的参数,调用SFC30激活日期中断投入运行,与在CPU属性中的设置相比,通过用户程序,可以在CPU运行时灵活地修改设定的参数,两种方式可以任意选择,也可以同时对一个OB进行设置。
3、时间延迟中断组织块OB20~OB23时间延迟中断组织块OB20~OB23的优先级及更新过程映像区的参数需要在CPU属性中设置,通过调用系统函数SFC32触发执行,OB号及延迟时间在SFC32参数中设定,延迟时间为1~60000ms,大大优于定时器精度。
4、循环中断组织块OB30~OB38循环中断组织块OB30~OB38按设定的时间间隔循环执行,循环中断的间隔时间在CPU属性中设定,每一个OB默认的时间间隔不同,例如OB35默认的时间间隔为100ms,在OB35中的用程序将每隔100ms调用一次,时间间隔可以自由设定,最小时间间隔不能小于55ms。
OB中的用户程序执行时间必须小于设定的时间间隔,如果间隔时间较短,由于循环中断OB没有完成程序扫描而被再次调用,从而造成CPU故障,触发OB80报错,如果程序中没有创建OB80,CPU进入停止模式。
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的操作系统与用户程序之间的接口。
西门子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 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"模拟量输入输出的比例和数据类型转换。
西门子PLC S7-1200诊断错误组织块简介作为西门子PLC S7-200系列的升级版,西门子PLC S7-1200具有很多集成在CPU上的功能,与此同时,它的组态软件STEP7 V13具有各种功能块,可以帮助用户实现多种不同的功能。
用户在使用编程过程中,可以使用诊断错误组织块来获取错误信息,从而帮助用户更好的操作控制系统。
本文下面就对西门子PLC S7-1200的诊断错误组织块做一个介绍,供用户在编程过程中进行参考使用。
西门子PLC S7-1200诊断错误组织块西门子PLC S7-1200的编程软件STEP7 V13中,用户可以使用组织块OB82实现诊断错误的功能。
在西门子PLC S7-1200系列中,支持诊断错误中断,可以为具有诊断功能的模块启用诊断错误中断功能来检测模块状态。
当用户使用OB82时,出现故障和故障解除均会触发诊断中断OB82。
当模块检测到故障并且在软件中使能了诊断错误中断时,操作系统将启动诊断错误中断,诊断错误中断OB82将中断正常的循环程序优先执行。
此时无论程序中有没有诊断中断OB82,CPU都会保持运行模式,同时CPU的错误指示灯闪烁。
如果希望CPU在接收到该类型的错误时进入停止模式,用户可以在OB82中加入STP指令使CPU进入停止模式。
创建组织块OB82的步骤如下:1. 在编程软件中,选择项目中的程序块,然后添加新块,组织块,选择编号82,并确定;2. 在组织块OB82中进行编程,创建地址为MW0,MW2,MW4 的变量用于存储出现诊断错误时读取到的启动信息;3. 在硬件组态窗口中,选中模拟量输出模块,选择模拟量输出通道1的“启用短路诊断”功能;4. 测试结果,程序下载后,在监控表中给通道1设置输出值2000,如果此时出现了短路故障,则将立即触发诊断错误功能。
随着用户对其深入的了解,会更加体会到S7-1200在使用过程中为用户带来的便利,也更能体会到它的各项功能,如:通讯功能,扩展功能,集成功能等方面的强大。
图文详细介绍西门子S7-1200的主程序OB组织块OB 组织块● 什么是组织块?组织块是操作系统和用户程序之间的接口。
OB 用于执行具体的程序:1、在 CPU 启动时;2、在一个循环或延时时间到达时;3、当发生硬件中断时;4、当发生故障时;5、组织块根据其优先级执行。
OB 事件● 组织块 OB 的类型图1. OB 事件概览图1. OB 事件概览● 通过上图,可以看到OB 组织块分为三个优先组,高优先组中的组织块可中断低优先组中的组织块;如果同一个优先组中的组织块同时触发将按其优先级由高到低进行排队依次执行;如果同一个优先级的组织块同时触发时,将按块的编号由小到大依次执行。
● CPU 为三个 OB 优先级组中的每一个组都提供了临时(本地)存储器:1、16 KB 用于启动和程序循环(包括相关的 FB 和 FC)2、4 KB 用于标准中断事件(包括 FB 和 FC)3、4 KB 用于错误中断事件(包括 FB 和 FC)● 嵌套深度:是指可从 OB 调用功能 (FC) 或功能块 (FB) 等程序代码块的深度。
1、从程序循环 OB 或启动 OB 开始调用 FC 和 FB 等程序代码块,嵌套深度为16层;2、从延时中断、循环中断、硬件中断、时间错误中断或诊断错误中断 OB 开始调用 FC 和 FB 等程序代码块,嵌套深度为4层。
程序循环 OB● 程序循环 OB 的功能程序循环 OB 在 CPU 处于 RUN 模式时,周期性地循环执行。
可在程序循环 OB 中放置控制程序的指令或调用其它功能块(FC 或 FB)。
主程序(Main)为程序循环OB ,要启动程序执行,项目中至少有一个程序循环OB 。
操作系统每个周期调用该程序循环OB 一次,从而启动用户程序的执行。
S7-1200 允许使用多个程序循环 OB ,按 OB 的编号顺序执行。
OB1 是默认设置,其它程序循环 OB 的编号必须大于或等于123。
程序循环 OB 的优先级为1,可被高优先级的组织块中断;程序循环执行一次需要的时间即为程序的循环扫描周期时间。