sfc块功能简介

合集下载

sfc块功能简介(谷风软件)

sfc块功能简介(谷风软件)

编号名称缩写功能SFC0SET_CLK设系统时钟SFC1READ_CLK读系统时钟SFC2SET_RTM运行时间定时器设定SFC3CTRL_RTM运行时间定时器启/停SFC4READ_RTM运行时间定时器读取SFC5GADR_LGC查询模板的逻辑起始地址SFC6RD_SINFO读OB启动信息SFC7DP_PRAL在DP主站上触发硬件中断SFC9EN_MSG使能块相关、符号相关的和组状态的信息SFC10DIS_MSG禁止块相关的、符号相关的和组状态信息SFC11DPSYC_FR同步DP从站组SFC12D_ACT_DP取消和激活DP从站SFC13DPNRM_DG读DP从站的诊断数据(从站诊断)SFC14DPRD_DAT读标准DP从站的连续数据SFC15DPWR_DAT写标准DP从站的连续数据SFC17ALARM_SQ生成可确认的块相关信息SFC18ALARM_S生成恒定可确认的块相关信息SFC19ALARM_SC查询最后的LAARM_SQ到来的事件信息的应答状态SFC20BLKMOV拷贝变量SFC21FILL初始化存储区SFC22CREAT_DB生成DBSFC23DEL_DB删除DBSFC24TEST_DB测试DBSFC25COMPRESS压缩用户内存SFC26UPDAT_PI刷新过程映像输入表SFC27UPDAT_PO刷新过程映像输出表SFC28SET_TINT设置日时钟中断SFC29CAN_TINT取消日时钟中断SFC30ACT_TINT激活日时钟中断SFC31QRY_TINT查询日时钟中断SFC32SRT_DINT启动延时中断SFC33CAN_DINT取消延时中断SFC34QRY_DINT查询延时中断SFC35MP_ALM触发多CPU中断SFC36MSK_FLT屏蔽同步故障SFC37DMSK_FLT解除同步故障屏蔽SFC38READ_ERR读故障寄存器SFC39DIS_IRT禁止新中断和非同步故障SFC40EN_IRT使能新中断和非同步故障SFC41DIS_AIRT延迟高优先级中断和非同步故障SFC42EN_AIRT使能高优先级中断和非同步故障SFC43RE_TRIGR再触发循环时间监控SFC44REPL_VAL传送替代值到累加器1SFC46STP使CPU进入停机状态SFC47WAIT延迟用户程序的执行SFC48SNC_RTCB同步子时钟SFC49LGC_GADR查询一个逻辑地址的模块槽位的属性SFC50RD_LGADR查询一个模块的全部逻辑地址SFC51RDSYSST读系统状态表或部分表SFC52WR_USMSG向诊断缓冲区写用户定义的诊断事件SFC54RD_PARM读取定义参数SFC55WR_PARM写动态参数SFC56WR_DPARM写默认参数SFC57PARM_MOD为模块指派参数SFC58WR_REC写数据记录SFC59RD_REC读数据记录SFC60GD_SND全局数据包发送SFC61GD_RCV全局数据包接收SFC62CONTROL查询通讯的连接状态SFC63AB_CALL汇编代码块SFC64TIME_TCK读系统时间SFC65X_SEND向本地S7站之外的通讯伙伴发送数据SFC66X_RCV接收本地S7站之外的通讯伙伴发送的数据SFC67X_GET读取本地S7站之外的通讯伙伴的数据SFC68X_PUT写数据到本地S7站之外的通讯伙伴SFC69X_ABORT中断与本地S7站之外的通讯伙伴已建立的连接SFC72I_GET读取本地S7站内的通讯伙伴的数据SFC73I_PUT写数据到本地S7站内的通讯伙伴SFC74I_ABORT中断现与本地S7站内的通讯伙伴已建立的连接SFC78OB_RT确定OB的程序运行时间SFC79SET置位输出范围SFC80RSET复位输出范围SFC81UBLKMOV不间断拷贝变量SFC82CREA_DBL在装载存储器中生成DB块SFC83READ_DBL读装载存储器中的DB块SFC84WRIT_DBL写装载存储器中的DB块SFC87C_DIAG实际连接状态的诊断SFC90H_CTRL H系统中的控制操作SFC100SET_CLKS设日期时间和日期时间状态SFC101RTM运行时间记时器SFC102RD_DPARA读取预定义参数(重新定义参数)SFC103DP_TOPOL识别DP主系统中总线的拓扑SFC104CiR控制CiRSFC105READ_SI读取动态系统资源SFC106DEL_SI删除动态系统资源SFC107ALARM_DQ生成可确认的块相关信息SFC108ALARM_D生成恒定可确认的块相关信息SFC126SYNC_PI同步刷新过程映像区输入表SFC127SYNC_PO同步刷新过程映像区输出表SFC63“AB_CALL”仅在CPU614中存在。

SFC51功能块的使用说明

SFC51功能块的使用说明

1 SFC 51简介1.1 程序功能介绍通过系统功能SFC 51 "RDSYSST" (读取系统状态),可以读取系统状态列表或部分系统状态列表,例如指示灯状态,序列号,从站状态等等。

调用SFC 51时,通过将值“1”赋给输入参数REQ来启动读取。

如果可以立即读取系统状态,则SFC将在BUSY输出参数中返回值0。

如果BUSY包含值1,则尚未完成读取功能。

表1 SFC51参数说明参数描述REQ输入参数REQ = 1:启动处理SSL_ID输入参数将要读取的系统状态列表或部分列表的ID号INDEX输入参数部分列表中对象的类型或编号。

RET_VAL输出参数如果执行SFC时出错,则RET_VAL参数将包含错误代码。

BUSY输出参数TRUE:尚未完成读取。

SSL_HEADER输出参数LENTHDR是SSL列表或SSL部分列表的数据记录的长度。

•如果仅读取了SSL列表的标题信息,则N_DR包含属于它的数据记录数。

•否则,N_DR包含传送到目标区域的数据记录数。

DR输出参数SSL列表读取或SSL部分列表读取的目标区域:•如果仅读取了SSL列表的标题信息,则不能评估DR的值,而只能评估SSL_HEADER的值。

•否则,LENTHDR和N_DR的乘积将指示已在DR中输入了多少字节。

2 读取CPU指示灯可以通过SFC 51读取CPU的指示灯状态,使用的SSL_ID参数为16#74(16#19)读取全部指示灯状态或者16#174(16#119)读取单个指示灯状态2.1 编程首先需要创建一个数据块,用来存放读取出来的指示灯状态结果图1 创建DB1,存放读取结果打开OB1,在OB1的临时变量区创建一个变量length,类型设置为Struct(结构)图2 创建名为length的结构变量双击length变量,进入结构变量成员定义,创建两个word类型的变量,本例中分别为size和number:图3 创建length的结构变量的两个word成员编写SFC51程序:CALL "RDSYSST"REQ :=TRUE图4 创建DB1,存放读取结果打开OB1,首先在OB1的临时变量区创建一个变量length,类型设置为Struct(结构)图5 创建名为length的结构变量双击length变量,进入结构变量成员定义,创建两个word类型的变量,本例中分别为size和number:图6 创建length的结构变量的两个word成员编写SFC51程序:CALL "RDSYSST"REQ :=TRUESZL_ID :=W#16#294 //读取从站是否存在INDEX :=W#16#1RET_VAL :=MW0BUSY :=M2.0SZL_HEADER:=#lengthDR :=P#DB1.DBX0.0 BYTE 500 //结果输出到DB1数据块中在本例中,P#DB1.DBX0.0 BYTE 500中为每个DP从站(16 x 8 = 128)保留一位,地址为Address 1的DP从站的状态保存在第三个字节的Bit 1位中, 地址为Address 3的DP从站的状态保存在第三个字节的Bit 3位中,依次类推。

S7-300-SFC-SFB库功能块简单介绍

S7-300-SFC-SFB库功能块简单介绍
SFC44
REPL_VAL
传送替代值到累加器1
SFC46
STP
使CPU进入停机状态
SFC47
WAIT
延迟用户程序的执行
SFC48
SNC_RTCB
同步子时钟
SFC49
LGC_GADR
查询一个逻辑地址的模块槽位的属性
SFC50
RD_LGADR
查询一个模块的全部逻辑地址
SFC51
RDSYSST
读系统状态表或部分表
SFB61
RCV_PTP
接收数据(ASCⅡ,3964(R))
SFB62
RES_RECV
清除接收缓冲区(ASCⅡ,3964(R))
SFB63
SEND_RK
发送数据(RK512)
SFB64
FETCH_RK
获取数据(RK512)
SFB65
SERVE_RK
接收和提供数据数据(RK512)
SFB75
SALRM
SFC90
H_CTRL
H系统中的控制操作
SFC100
SET_CLKS
设日期时间和日期时间状态
SFC101
RTM
运行时间记时器
SFC102
RD_DPARA
读取预定义参数(重新定义参数)
SFC103
DP_TOPOL
识别DP主系统中总线的拓扑
SFC104
CiR
控制CiR
SFC105
READ_SI
读取动态系统资源
SFC52
WR_USMSG
向诊断缓冲区写用户定义的诊断事件
SFC54
RD_PARM
读取定义参数
SFC55
WR_PARM

PLC五种编程语言

PLC五种编程语言

PLC的五种标准编程语言PLC的用户程序是设计人员根据控制系统的工艺控制要求,通过PLC编程语言的编制设计的。

根据国际电工委员会制定的工业控制编程语言标准(IEC1131-3)。

PLC的编程语言包括以下五种:梯形图语言(LD)、指令表语言(IL)、功能模块图语言(FBD)、顺序功能流程图语言(SFC)及结构化文本语言(ST)。

1、梯形图语言(LD)梯形图语言是PLC程序设计中最常用的编程语言。

它是与继电器线路类似的一种编程语言。

由于电气设计人员对继电器控制较为熟悉,因此,梯形图编程语言得到了广泛的欢迎和应用。

梯形图编程语言的特点是:与电气操作原理图相对应,具有直观性和对应性;与原有继电器控制相一致,电气设计人员易于掌握。

梯形图编程语言与原有的继电器控制的不同点是,梯形图中的能流不是实际意义的电流,内部的继电器也不是实际存在的继电器,应用时,需要与原有继电器控制的概念区别对待。

图1是典型的交流异步电动机直接启动控制电路图。

图2是采用PLC控制的程序梯形图。

图1 交流异步电动机直接启动电路图图2 PLC梯形图2、指令表语言(IL)指令表编程语言是与汇编语言类似的一种助记符编程语言,和汇编语言一样由操作码和操作数组成。

在无计算机的情况下,适合采用PLC手持编程器对用户程序进行编制。

同时,指令表编程语言与梯形图编程语言图一一对应,在PLC编程软件下可以相互转换。

图3就是与图2PLC梯形图对应的指令表。

图3 指令表指令表表编程语言的特点是:采用助记符来表示操作功能,具有容易记忆,便于掌握;在手持编程器的键盘上采用助记符表示,便于操作,可在无计算机的场合进行编程设计;与梯形图有一一对应关系。

其特点与梯形图语言基本一致。

3、功能模块图语言(FBD)功能模块图语言是与数字逻辑电路类似的一种PLC编程语言。

采用功能模块图的形式来表示模块所具有的功能,不同的功能模块有不同的功能。

图4是对应图1交流异步电动机直接启动的功能模块图编程语言的表达方式。

西门子 PLC中OB、FC、FB、SFC、SFB中功能块

西门子 PLC中OB、FC、FB、SFC、SFB中功能块

西门子 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就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。

SFC顺序功能图PPT文档资料

SFC顺序功能图PPT文档资料
•24
顺序功能图(SFC)编程语言
溶液混合控制要求: 液体混合是按一定比例将两种液体进行混合的一种装置,设备启动前混合器 的容器是空的,搅拌器也没有工作,排放阀Y3也是关闭的,系统有自动和手 动两种运行模式。自动运行时,当按下启动按钮时,接通电磁阀Y1,向容器 内注入第一种溶液A,当液位到达L2时,断开电磁阀Y1,接通电磁阀Y2,停止 注入第一种液体A并向容器注入第二种液体B,当液面位置到达L1时,停止注 入第二种液体B,接通搅拌器搅拌,当达到定时器预置的时间后,搅拌机停止 搅拌,同时接通排放电磁阀Y3,当液面位置到达L3时,关闭排放电磁阀,一 个工作循环结束,即再次接通电磁阀Y1,注入液体A,依次循环。
5. 激活步 在调用顺序功能图的POU 后,初始化步的动作
(被一个双边线包围)将首先执行。动作正在执行 的步称为激活步。在线模式下,活动步以蓝色显示
在一个控制循环中激活步的所有动作都将执行。 所以,当激活步之后的转换条件是TRUE时,它之 后的步被激活。当前激活的步将在下个循环中再 执行。
6. 限定符 为了关联动作和步,用到下面的限定词。限定词
•3
SFC内的处理顺序 在线模式下,一些类型的动作,可以根据定义的序列 来执行,参见下表。 首先注意下述名词: 活动步: 一步,它的步动作正在被执行,被叫做“活 动”。在线模式下,活动步显示为蓝色。 初始步:在一个SFC POU被调用后的第一个周期内, 初始步自动被激活,并且其相关联的“步动作”被执行。 IEC动作:被至少执行两次:第一次执行是当它们被 激活时,第二次执行是在下个周期,他们被禁止时。
•7
元素处理顺序(同CoDeSysV2.3的处理顺序):
3. 步入口动作 所有的步按照流程图中定义的顺序被测试,用来判 断步的入口动作执行条件是否满足,如果满足,则其 将被执行。如果步前的转移条件为TRUE并且步也已 被激活,则一个入口动作将会被执行。

sfc块功能简介

sfc块功能简介

编号名称缩写功能SFCO SET_CLK设系统时钟SFC1 READ_CLK卖系统时钟SFC2 SET_RT M运行时间定时器设定SFC3 CTRL_RTM运行时间定时器启/停SFC4 READ_RTM运行时间定时器读取SFC5 GADR_LGC查询模板的逻辑起始地址SFC6 RD_SINFO读0B启动信息SFC7 DP_PRAL在DP主站上触发硬件中断SFC9 EN_MSG使能块相关、符号相关的和组状态的信息SFC10 DIS_MSG禁止块相关的、符号相关的和组状态信息SFC11 DPSYC_FR同步DP从站组SFC12 D_ACT_DP取消和激活DP从站SFC13 DPNRM_D读DP从站的诊断数据(从站诊断)SFC14 DPRD_DAT读标准DP从站的连续数据SFC15 DPWR_DA写标准DP从站的连续数据SFC17 ALARM_SQ生成可确认的块相关信息SFC18 ALARM_S生成恒定可确认的块相关信息SFC19 ALARM_SC查询最后的LAARM_S到来的事件信息的应答状态SFC20 BLKMOV拷贝变量SFC21 FILL 初始化存储区SFC22 CREAT DB生成DBSFC23 DEL_DB 删除DBSFC24 TEST_DB 测试DBSFC25 COMPRES压缩用户内存SFC26 UPDAT_PI刷新过程映像输入表SFC27 UPDAT_PC刷新过程映像输出表SFC28 SET_TINT设置日时钟中断SFC29 CAN_TINT取消日时钟中断SFC30 ACT_TINT激活日时钟中断SFC31 QRY_TINT查询日时钟中断SFC32 SRT_DINT启动延时中断SFC33 CAN_DINT取消延时中断SFC34 QRY_DINT查询延时中断SFC35 MP_ALM 触发多CPU中断SFC36 MSK_FLT屏蔽同步故障SFC37 DMSK_FLT解除同步故障屏蔽SFC38 READ_ERR卖故障寄存器SFC39 DIS_IRT 禁止新中断和非同步故障SFC40 EN_IRT使能新中断和非同步故障SFC41 DIS_AIRT延迟高优先级中断和非同步故障SFC42 EN_AIRT使能高优先级中断和非同步故障SFC43 RE_TRIGR再触发循环时间监控SFC44 REPL_VAL传送替代值到累加器1SFC46 STP 使CPU进入停机状态SFC47 WAIT 延迟用户程序的执行SFC48 SNC_RTCB同步子时钟SFC49 LGC_GADR^询一个逻辑地址的模块槽位的属性SFC50 RD_LGADR^询一个模块的全部逻辑地址SFC51 RDS YSST读系统状态表或部分表SFC52 WR_USMS向诊断缓冲区写用户定义的诊断事件SFC54 RD_PARM读取定义参数SFC55 WR_PARM写动态参数SFC56 WR_DPAR写默认参数SFC57 PARM_MO为模块指派参数SFC58 WR_REC写数据记录SFC59 RD_REC读数据记录SFC60 GD_SND全局数据包发送SFC61 GD_RCV全局数据包接收SFC62 CONTROL查询通讯的连接状态SFC63 AB_CALL汇编代码块SFC64 TIME_TCK读系统时间SFC65 X_SEND向本地S7站之外的通讯伙伴发送数据SFC66 X_RCV接收本地S7站之外的通讯伙伴发送的数据SFC67 X_GET读取本地S7站之外的通讯伙伴的数据SFC68 X_PUT写数据到本地S7站之外的通讯伙伴SFC69 X_ABORT中断与本地S7站之外的通讯伙伴已建立的连接SFC72 I_GET 读取本地S7站内的通讯伙伴的数据SFC73 I_PUT 写数据到本地S7站内的通讯伙伴SFC74 I_ABORT 中断现与本地S7站内的通讯伙伴已建立的连接SFC78 OB_RT 确定0B的程序运行时间SFC79 SET 置位输出范围SFC80 RSET 复位输出范围SFC81 UBLKMO V不间断拷贝变量SFC82 CREA_DBL在装载存储器中生成DB块SFC83 READ_DBLL卖装载存储器中的DB块SFC84 WRIT_DBL写装载存储器中的DB块SFC87 C_DIAG 实际连接状态的诊断SFC90 H_CTRL H系统中的控制操作SFC100 SET_CLKS设日期时间和日期时间状态SFC101 RTM 运行时间记时器SFC102 RD_DPARA卖取预定义参数(重新定义参数)SFC103 DP_TOPOL识别DP主系统中总线的拓扑SFC104 CiR 控制CiRSFC105 READ_SI读取动态系统资源SFC106 DEL_SI删除动态系统资源SFC107 ALARM_DQfe成可确认的块相关信息SFC108 ALARM_D生成恒定可确认的块相关信息SFC126 SYN C_PI 同步刷新过程映像区输入表SFC127 SY NC_PO同步刷新过程映像区输出表SFC63“ AB_CALL仅在CPU61仲存在。

SFC简单介绍ppt课件

SFC简单介绍ppt课件
理。
智能家居
通过SFC编程,可以实 现智能家居设备的自动
化控制和场景切换。
03
SFC工作原理
扫描原理
01
02
03
顺序扫描
按照程序设定的顺序,逐 行扫描SFC程序,执行相 应的操作。
循环扫描
在程序执行过程中,不断 循环扫描SFC程序,直到 满足停止条件。
条件触发
根据设定的条件,触发相 应的扫描操作,执行特定 的程序段。
实现与其他控制系统或上位机的数据交换, 支持远程监控和调试。
05
SFC操作方法与技巧
基本操作流程
打开SFC软件,选择相应 的功能模块。
设置相关参数,如输入/ 输出路径、处理参数等。
导入需要处理的文件或数 据。
开始执行处理任务,等待 处理完成。
常用操作技巧
批量处理 利用SFC的批量处理功能,可以同时 处理多个文件或数据,提高效率。
数据采集与处理
数据采集
通过传感器等输入设备, 实时采集现场数据,并将 其转换为数字信号。
数据处理
对采集到的数据进行处理, 包括滤波、放大、转换等 操作,以便后续分析。
数据存储
将处理后的数据存储在指 定的存储器中,以便后续 调用和分析。
故障诊断与排除
01
02
03
04
故障检测
通过实时监测和数据分析,发 现设备或系统的故障。
人机界面软件
提供图形化操作界面,方便用户进 行参数设置、状态监控等操作。
功能模块介绍
顺序控制模块
实现工艺流程的顺序控制,包括步骤执行、 条件判断和跳转等。
故障诊断模块
实时监测系统运行状态,及时发现并处理故 障,保障系统稳定运行。

顺序功能图(sfc)

顺序功能图(sfc)
顺序功能图(SFC)
目录
• SFC基本概念 • SFC的组成元素 • SFC的绘制方法 • SFC的编程实现 • SFC的优化与改进 • SFC的未来发展与展望
01
SFC基本概念
SFC定义
顺序功能图是一种用于描述控制系统或工业过程的流程 图,它以图形化的方式展示系统或过程的顺序行为。
顺序功能图使用一系列的矩形、圆圈和箭头来表示系统 或过程中的不同状态、条件和转换。
01 工业自动化
顺序功能图广泛应用于工业自动化领域,用于描 述和控制生产线的流程和逻辑。
02 控制系统设计
在控制系统设计中,顺序功能图常被用于描述控 制系统的行为和逻辑,帮助工程师进行系统设计 和优化。
03 过程控制
在过程控制领域,顺序功能图可以用于描述化工、 制药等行业的生产过程,帮助企业实现高效的过 程控制和管理。
总结词
优化动作序列可以提高SFC的效率和可维护性。
详细描述
动作序列是SFC中控制流程执行的步骤,优化这些序列可以减少不必要的步骤和 冗余操作。具体方法包括合并相似的动作,简化复杂的动作流程,以及使用标 准的、易于理解的符号和语言描述动作。
优化状态管理
总结词
优化状态管理是提高SFC可维护性和可扩 展性的重要手段。
05
SFC的优化与改进
优化转换条件
总结词
优化转换条件是提高顺序功能图(SFC)可读性和可靠性的关键 步骤。
详细描述
转换条件是SFC中控制流程顺序的关键因素,优化这些条件 可以减少冗余和潜在的错误。具体方法包括简化复杂的条件 表达式,使用更具体的条件描述,以及确保所有转换条件都 是清晰和准确的。
优化动作序列
04
SFC的编程实现

ABB-SFC的组态

ABB-SFC的组态

十、SFC的组态1、顺序功能块SFC组态介绍顺序功能块SFC遵循IEC1131-3标准,是一个按照事件逻辑顺序安排其结构的顺序控制程序,结构类似网状;用户可将复杂的逻辑控制程序由其简洁的子程序表现出来;SFC程序的子程序由其基本元素中的步、转换条件等构成,子程序的组态可由指令表(IL)、功能块图(FBD)、梯形图(LD)来组成。

2、用户界面结构顺序功能块SFC组态界面包括:标题行、菜单行、工具棒、图形区、状态行;其中图形区由大宽行、中宽行和小细行组成,共有512行16列,用于放置SFC的子程序;其中大宽行用于放置元素步,中宽行放置元素转换条件,小细行用于放置元素“连线”(包括垂直连线和水平连线);状态行显示correct:表示程序已通过;incorrect:表示程序未通过。

3、基本规则:任何一个顺序控制SFC程序总是由一个初始步开始的每一步(step)后面应跟从一个转换条件在一个“与分支的前后,只允许各有一个转换条件一个SFC程序的结束元素必须是一个Transition在SFC程序中有两种分支情况存在即“或分支”、“与分支”;“或分支”只允许分支中的某一路被处理,不可能同时满足所有条件,使得所有分支被同时处理;“与分支”;是当条件满足时,允许所有分支同时被处理。

在SFC中一旦某一步被处理,而下面的转换条件不能满足条件时,只能循环执行此步直至其下面的转换条件满足时,才允许执行下一步,此时SFC 程序中的其他步的程序都不处于执行状态。

因此某些关键点的监视、报警信号的控制是不能直接在SFC程序中组态完成的,因为一旦SFC程序不执行时或某些步不再执行时,用户子程序也不再运算执行,这些点的程序组态应放在程序列表(PL)下面组态,由任务作循环处理。

4、SFC的元素介绍“4.1初始步(initial step)在一个SFC程序中,只允许存在一个初始步,它是一个SFC程序的开始,如图:4.2步(step)在一个SFC程序中,只允许存在多个步,每一步(包括初始步)中的子程序最多可用8个FBD或IL完成子程序的组态如图:.4.3转换条件(transition)用于判断上一步的完成和下一步的开始,每一个转换条件中仅仅允许一个子程序存在。

sfc块功能简介

sfc块功能简介

编号名称缩写功能SFC0 SET_CLK 设系统时钟SFC1READ_CLK读系统时钟SFC2SET_RTM运转时间准时器设定SFC3CTRL_RTM运转时间准时器启 / 停SFC4READ_RTM运转时间准时器读取SFC5GADR_LGC查问模板的逻辑开端地点SFC6 RD_SINFO读 OB启动信息SFC7 DP_PRAL 在 DP主站上触发硬件中止SFC9 EN_MSG 使能块有关、符号有关的和组状态的信息SFC10 DIS_MSG 严禁块有关的、符号有关的和组状态信息SFC11 DPSYC_FR同步 DP从站组SFC12 D_ACT_DP撤消和激活 DP从站SFC13 DPNRM_DG读 DP从站的诊疗数据(从站诊疗)SFC14 DPRD_DAT读标准 DP从站的连续数据SFC15 DPWR_DAT写标准 DP从站的连续数据SFC17 ALARM_SQ生成可确认的块有关信息SFC18ALARM_S 生成恒定可确认的块有关信息SFC19 ALARM_SC查问最后的 LAARM_SQ到来的事件信息的应答状态SFC20 BLKMOV 拷贝变量SFC21FILL初始化储存区SFC22 CREAT_DB生成 DBSFC23 DEL_DB 删除 DBSFC24 TEST_DB 测试 DBSFC25 COMPRESS压缩用户内存SFC26 UPDAT_PI 刷新过程映像输入表SFC27 UPDAT_PO刷新过程映像输出表SFC28 SET_TINT 设置日时钟中止SFC29 CAN_TINT 撤消日时钟中止SFC30 ACT_TINT 激活日时钟中止SFC31 QRY_TINT 查问日时钟中止SFC32 SRT_DINT 启动延时中止SFC33 CAN_DINT撤消延时中止SFC34 QRY_DINT查问延时中止SFC35 MP_ALM 触发多 CPU中止SFC36 MSK_FLT 障蔽同步故障SFC37 DMSK_FLT排除同步故障障蔽SFC38 READ_ERR读故障存放器SFC39 DIS_IRT严禁新中止和非同步故障SFC40 EN_IRT使能新中止和非同步故障SFC41 DIS_AIRT 延缓高优先级中止和非同步故障SFC42 EN_AIRT 使能高优先级中止和非同步故障SFC43 RE_TRIGR再触发循环时间监控SFC44 REPL_VAL传递代替值到累加器1SFC46STP使CPU进入停机状态SFC47WAIT延缓用户程序的履行SFC48 SNC_RTCB同步子时钟SFC49 LGC_GADR查问一个逻辑地点的模块槽位的属性SFC50 RD_LGADR查问一个模块的所有逻辑地点SFC51RDSYSST 读系统状态表或部分表SFC52 WR_USMSG向诊疗缓冲区写用户定义的诊疗事件SFC54RD_PARM读取定义参数SFC55WR_PARM写动向参数SFC56 WR_DPARM写默认参数SFC57 PARM_MOD为模块指派参数SFC58 WR_REC 写数据记录SFC59 RD_REC 读数据记录SFC60 GD_SND 全局数据包发送SFC61 GD_RCV 全局数据包接收SFC62CONTROL查问通信的连结状态SFC63 AB_CALL 汇编代码块SFC64 TIME_TCK 读系统时间SFC65 X_SEND 向当地 S7 站以外的通信伙伴发送数据SFC66 X_RCV接收当地S7站以外的通信伙伴发送的数据SFC67 X_GET读取当地S7站以外的通信伙伴的数据SFC68 X_PUT写数据到当地S7 站以外的通信伙伴SFC69X_ABORT 中止与当地 S7 站以外的通信伙伴已成立的连结SFC72 I_GET读取当地S7站内的通信伙伴的数据SFC73 I_PUT写数据到当地S7 站内的通信伙伴SFC74 I_ABORT 中止现与当地S7 站内的通信伙伴已成立的连结SFC78 OB_RT确立OB的程序运转时间SFC79SET置位输出范围SFC80RSET复位输出范围SFC81UBLKMOV不中断拷贝变量SFC82 CREA_DBL在装载储存器中生成DB块SFC83 READ_DBL读装载储存器中的DB块SFC84 WRIT_DBL写装载储存器中的DB块SFC87 C_DIAG实质连结状态的诊疗SFC90 H_CTRL H 系统中的控制操作SFC100 SET_CLKS设日期时间和日期时间状态SFC101RTM运转时间记时器SFC102 RD_DPARA读取预约义参数(从头定义参数)SFC103 DP_TOPOL辨别 DP主系统中总线的拓扑SFC104CiR控制CiRSFC105 READ_SI 读取动向系统资源SFC106 DEL_SI删除动向系统资源SFC107 ALARM_DQ生成可确认的块有关信息SFC108 ALARM_D 生成恒定可确认的块有关信息SFC126 SYNC_PI 同步刷新过程映像区输入表SFC127 SYNC_PO同步刷新过程映像区输出表SFC63“AB_CALL”仅在 CPU614中存在。

SFC,SFB,FC,FB功能

SFC,SFB,FC,FB功能

SFC的公共参数使用输出参数RET_V AL判断错误异步SFC的REQ、RET_V AL和BUSY参数含义复制功能和块功能使用SFC 20"BLKMOV"复制变量使用SFC 81"UBLKMOV"不中断地复制变量使用SFC 21"FILL"初始化存储区使用SFC 22"CREAT_DB"创建数据块使用SFC 23"DEL_DB"删除数据块使用SFC 24"TEST_DB"测试数据块使用SFC 25"COMPRESS"压缩用户存储器使用SFC 44"REPL_V AL"将替换值传送到累加器1中使用SFC 82"CREA_DBL"在装载存储器中创建一个数据块使用SFC 83"READ_DBL"从装载存储器中读取一个数据块使用SFC 84"WRIT_DBL"在装载存储器中写入一个数据块使用SFC 85"CREA_DB"创建数据块用于控制程序执行的SFC使用SFC 43"RE_TRIGR"重新触发循环时间监视使用SFC 46"STP"将CPU切换到STOP使用SFC 47"WAIT"延迟执行用户程序使用SFC 35"MP_ALM"触发一个多值计算中断使用SFC 104 "CiR"控制CiR使用SFC 109 "PROTECT"激活和取消激活CPU访问保护用于处理系统时钟的SFC使用SFC 0"SET_CLK"设置时间使用SFC 101"RTM"处理系统时钟使用SFC 1"READ_CLK"读取时间使用SFC 48"SNC_RTCB"同步TOD从站使用SFC 100 "SET_CLKS"设置日时钟和TOD状态用于处理运行系统计时器的SFC运行系统计时器使用SFC 2"SET_RTM"设置运行系统计时器使用SFC 3"CTRL_RTM"启动和停止运行系统计时器使用SFC 4"READ_RTM"读取运行系统计时器使用SFC 64"TIME_TCK"读取系统时间用于传送数据记录的SFC读写数据记录使用SFC 54 "RD_DPARM"读取定义的参数用SFC 102 "RD_DPARA"读取预定义参数使用SFC 55"WR_PARM"写动态参数使用SFC 56 "WR_DPARM"写默认参数使用SFC 57"PARM_MOD"将参数分配给模块使用SFC 58 "WR_REC"写数据记录使用SFC 59 "RD_REC"读数据记录使用SFC 55至59"RD_REC"读取数据记录使用SFB 81"RD_DPAR"读取预定义的参数" DPV1-SFB到PNO AK 1131用SFB 52 "RDREC"读取数据记录使用SFB 53"WRREC"写入数据记录用SFB 54 "RALRM"接收中断用SFB 75 "SALRM"向DP主站发送中断用SFB 73 "RCVREC"接收数据记录用SFB 74 "PRVREC"提供数据记录用于处理时间中断的SFC处理时间中断SFC 28到31的特征使用SFC 28 "SET_TINT"设置时间中断使用SFC 29 "CAN_TINT"取消时间中断使用SFC 30 "ACT_TINT"激活时间中断使用SFC 31 "QRY_TINT"查询时间中断用于处理延时中断的SFC处理延时中断使用SFC 32 "SRT_DINT"启动延时中断使用SFC 34 "QRY_DINT"查询延时中断使用SFC 33 "CAN_DINT"取消延时中断用于处理同步错误的SFC屏蔽同步错误使用SFC 36 "MSK_FLT"屏蔽同步错误使用SFC 37 "DMSK_FLT"取消屏蔽同步错误使用SFC 38 "READ_ERR"读取错误寄存器用于处理中断和异步错误的SFC延迟和禁用中断和异步错误使用SFC 39 "DIS_IRT"禁用新中断和异步错误的处理使用SFC 40 "EN_IRT"启用新中断和异步错误的处理使用SFC 41 "DIS_AIRT"延迟更高优先级中断和异步错误的处理使用SFC 42 "EN_AIRT"启用更高优先级中断和异步错误的处理用于诊断的SFC系统诊断使用SFC 6 "RD_SINFO"读取OB启动信息使用SFC 51 "RDSYSST"读取系统状态列表或部分列表使用SFC 52 "WR_USMSG"将用户自定义诊断事件写入诊断缓冲区使用SFC 78"OB_RT"确定OB程序循环时间使用SFC 87"C_DIAG"确定当前的连接状态使用SFC 103"DP_TOPOL"确定DP主站系统中的总线拓扑用于更新过程映像和处理位域的SFC和SFB使用SFC 26 "UPDAT_PI"更新过程映像输入表使用SFC 27 "UPDAT_PO"更新过程映像输出表使用SFC 126"SYNC_PI"识别一个同步周期内的过程映像分区输入表使用SFC 127"SYNC_PO"识别一个同步周期内的过程映像分区输出表使用SFC 79"SET"设置输出范围使用SFC 80"RSET"复位输出范围使用SFB 32 "DRUM"实现操作序列用于寻址模块的系统功能使用SFC 5 "GADR_LGC"查询模块的逻辑基址使用SFC 49"LGC_GADR"查询属于一个逻辑地址的模块插槽使用SFC 50 "RD_LGADR"查询模块的所有逻辑地址使用SFC 70"GEO_LOG"确定模块的起始地址使用SFC 71"LOG_GEO"确定属于一个逻辑地址的插槽用于分布式I/O或PROFINET IO的SFC用SFC 7 "DP_PRAL"触发DP主站上的硬件中断用SFC 11 "DPSYC_FR"同步DP从站组用SFC 12 "D_ACT_DP"激活和取消激活DP从站/PROFINET IO设备用SFC 13 "DPNRM_DG"读取DP从站的诊断数据(从站诊断)用SFC 14 "DPRD_DAT"读取DP标准从站/PROFINET IO设备的连续数据用SFC 15 "DPWR_DAT"向DP标准从站/PROFINET IO设备写入连续数据PROFINET关于SFC 112、113和114的信息使用SFC112 "PN_IN"更新PROFINET组件的用户程序接口的输入使用SFC113 "PN_OUT"更新PROFINET组件的PROFINET接口的输出使用SFC114 "PN_DP"更新DP互连用于PROFINET CPU的SFC和SFB使用SFC99 "WWW"启用或同步用户Web页面使用SFB104 "IP_CONF"设置IP组态PROFIenergyFB 815 "PE_START"FB 816 "PE_CMD"FB 817 "PE_I_DEV"FC 0 "PE_ERR"FC 1 "PE_STRT"FC 2 "PE_END"FC 3 "PE_Q_LIST"FC 4 "PE_Q_GET"FC 5 "PE_STAT"FC 6 "PE_IDENT"FC 7 "PE_M_LST"FC 8 "PE_M_V AL"FB 53 "PE_DS3_W"用于根据PNO循环访问用户数据的FB介绍用于根据PNO来循环访问用户数据的FB使用FB20 "GETIO"读取DP标准从站/PROFINET IO设备的所有输入使用FB21 "SETIO"写入DP标准从站/PROFINET IO设备的所有输出使用FB22 "GETIO_PART"读取DP标准从站/PROFINET IO设备的部分输入使用FB23 "SETIO_PART"写入DP标准从站/PROFINET IO设备的部分输出用于全局数据通讯的SFC通过SFC 60"GD_SND"发送GD信息包通过SFC 61 "GD_RCV"编程接受已接收到的GD信息包S7通讯用于已组态S7连接的SFB/FB和SFC/FC的公共参数用于已组态S7连接的通讯SFB的启动例行程序用于已组态S7连接的SFB如何响应故障使用SFB/FB 8"USEND"发送不协调的数据使用SFB/FB 9"URCV"接收不协调的数据使用SFB 12"BSEND"发送分段数据使用SFB 13"BRCV"接收分段数据使用FB 28"USEND_E"发送不协调的数据使用FB 29"URCV_E"接收不协调的数据用FB 34 "GET_E"从远程CPU读取数据使用FB 35 "PUT_E"将数据写入到远程CPU使用SFB 14"GET"从远程CPU中读取数据使用SFB 15"PUT"将数据写入到远程CPU通过SFB 16 "PRINT"将数据发送到打印机通过SFB 19 "START"在远程设备上启动暖启动或冷启动通过SFB 20 "STOP"将远程设备切换到STOP状态通过SFB 21 "RESUME"在远程设备上启动热启动通过SFB 22"STATUS"查询远程伙伴的状态使用SFB 23"USTATUS"接收远程设备的状态使用SFC 62"CONTROL"查询属于一个通讯SFB背景的连接状态通过FC 62 "C_CNTRL"查询连接状态S7基本通讯通讯SFC的公共参数用于未组态S7连接的通讯SFC的错误信息GET和PUT SFC的数据一致性通过SFC 65"X_SEND"发送数据到本地S7站以外的通讯伙伴通过SFC 66 "X_RCV"从本地S7站以外的通讯伙伴中接收数据通过SFC 68 "X_PUT"将数据写入本地S7站以外的通讯伙伴通过SFC 67 "X_GET"从本地S7站以外的通讯伙伴中读取数据通过SFC 69"X_ABORT"中止已存在的、到本地S7站以外的通讯伙伴的连接通过SFC 73 "I_PUT"将数据写入本地S7站内的通讯伙伴通过SFC 72 "I_GET"从本地S7站内的通讯伙伴中读取数据通过SFC 74 "I_ABORT"中止已存在的、到本地S7站内的通讯伙伴的连接用于未组态S7连接的通讯SFC的出错信息通过Industrial Ethernet的开放通讯概述开放通讯的FB如何在Industrial Ethernet上工作使用TCP native和ISO-on-TCP的通讯连接的参数使用UDP的本地通讯接入点的参数使用UDP的远程通讯伙伴地址信息的结构使用的CPU和协议变量(connection_type)和可传送数据长度之间的关系通讯连接的参数分配的实例使用FB 65 "TCON"建立连接使用FB 66 "TDISCON"终止连接使用FB 63 "TSEND"通过TCP native和ISO-on-TCP发送数据使用FB 64 "TRCV"通过TCP native和ISO-on-TCP接收数据使用FB 67 "TUSEND"通过UDP发送数据使用FB 68 "TURCV"通过UDP接收数据通过FB 210 "FW_TCP"经TCP使用FETCH和WRITE服务连接到一个外部系统通过FB 220 "FW_IOT"经ISO on TCP使用FETCH和WRITE服务连接到一个外部系统生成与块相关的消息组态消息关于使用SFB生成块相关消息的介绍使用SFB 36 "NOTIFY"生成无需确认的块相关消息使用SFB 31"NOTIFY_8P"生成不带确认显示的与块相关的消息使用SFB 33 "ALARM"生成需要确认的块相关消息使用SFB 35 "ALARM_8P"生成针对八个信号的伴随值的块相关消息使用SFB 34 "ALARM_8"生成不带8个信号伴随值的与块相关的消息使用SFB 37 "AR_SEND"发送归档数据使用SFC 10 "DIS_MSG"禁用块相关、符号相关和组状态消息使用SFC 9 "EN_MSG"启用块相关、符号相关和组状态消息用于生成块相关消息的SFB的启动特性用于生成块相关消息的SFB如何对问题做出反应关于使用SFC生成块相关消息的介绍使用SFC 17 "ALARM_SQ"生成可确认的块相关消息及使用SFC 18 "ALARM_S"生成永久确认的块相关消息使用SFC 19 "ALARM_SC"查询上一ALARM_SQ/ALARM DQ进入事件消息的确认状态使用SFC 107"ALARM_DQ"和108"ALARM_D"使用SFC 105"READ_SI"使用SFC 106 "DEL_SI"动态释放被占用的系统资源IEC定时器和IEC计数器使用SFB 3 "TP"生成脉冲使用SFB 4 "TON"生成接通延迟使用SFB 5 "TOF"生成断开延迟使用SFB 0 "CTU"递增计数使用SFB 1 "CTD"递减计数使用SFB 2"CTUD"进行递增和递减计数用于集成控制的SFB使用SFB 41 "CONT_C"连续控制使用SFB 42/FB "CONT_S"步进控制使用SFB 43/FB "PULSEGEN"生成脉冲PULSEGEN块的实例用于紧凑型CPU的SFB通过SFB 44 "Analog"使用模拟量输出进行定位通过SFB 46 "DIGITAL"使用数字量输出进行定位使用SFB 47 "COUNT"控制计数器使用SFB 48 "FREQUENC"控制频率计数器使用SFB 49 "PULSE"控制脉宽调制使用SFB 60 "SEND_PTP"发送数据(ASCII,3964(R))使用SFB 61 "RECV_PTP"接收数据(ASCII,3964(R))使用SFB 62 "RES_RECV"复位输入缓冲区(ASCII、3964(R)) 使用SFB 63 "SEND_RK"发送数据(RK 512)使用SFB 64 "FETCH RK"获取数据(RK 512)使用SFB 65 "SERVE_RK"接收和提供数据(RK 512)用于H CPU的SFC在H系统中使用SFC 90 "H_CTRL"控制操作集成的功能(对于具有集成输入/输出的CPU)SFB29 (HS_COUNT)SFB30 (FREQ_MES)SFB38 (HSC_A_B)SFB39 (POS)塑料技术SFC63 (AB_CALL)SFC 0 (SET_CLK) / SFC 1 (READ_CLK)的实例任务解决方案STL源代码SFC 2 (SET_RTM) / SFC 3 (CTRL_RTM) / SFC 4 (READ_RTM)的实例任务解决方案STL源文件SFC 20 (BLKMOV)的实例任务解决方案STL源代码SFC 28 (SET_TINT) / SFC 29 (CAN_TINT) / SFC 30 (ACT_TINT) / SFC 31 (QRY_TINT)的实例任务解决方案STL源文件SFC 32 (SRT_DINT) / SFC 33 (CAN_DINT) / SFC 34 (QRY_DINT)的实例任务解决方案STL源代码SFC 36 (MSK_FLT) / SFC 37 (DMSK_FLT) / SFC 38 (READ_ERR)的实例任务解决方案STL源代码SFC 39 (DIS_IRT) / SFC 40 (EN_IRT)的实例任务解决方案STL源文件SFC 41 (DIS_AIRT) / SFC 42 (EN_AIRT)的实例任务解决方案STL源文件SFC 47 (WAIT)的实例任务解决方案STL源代码SFC 51 (RDSYSST) / SFC 52 (WR_USMSG)的实例任务解决方案STL源文件SFC 55 (WR_PARM)的实例任务STL源文件SFC 57 (PARM_MOD)的实例任务STL源代码SFC 64 (TIME_TCK)的实例STL源代码使用SFC 51 (RDSYSST)进行模块诊断的实例任务解决方案STL源代码诊断数据诊断数据结构概述诊断数据与通道有关的诊断数据结构系统状态列表(SSL)系统状态列表(SSL)概述部分SSL列表的结构SSL-ID可能的部分系统状态列表SSL-ID W#16#xy11 - 模块标识SSL-ID W#16#xy12 - CPU特征SSL-ID W#16#xy13 - 存储区SSL-ID W#16#xy14 - 系统区域SSL-ID W#16#xy15 - 块类型SSL-ID W#16#xy1C - 组件标识SSL-ID W#16#xy22 - 中断状态SSL ID W#16#xy25 - 过程映像分区和OB之间的分配SSL-ID W#16#xy32 - 通讯状态数据SSL-ID为W#16#0132、索引为W#16#0005的部分列表摘录的数据记录SSL-ID为W#16#0132、索引为W#16#0008的部分列表摘录的数据记录SSL-ID为W#16#0132、索引为W#16#000B的部分列表摘录的数据记录SSL-ID为W#16#0132、索引为W#16#000C的部分列表摘录的数据记录SSL-ID为W#16#0232、索引为W#16#0004的部分列表摘录的数据记录SSL-ID W#16#xy71 - H CPU组信息SSL-ID W#16#xy74 - 模块LED的状态SSL-ID W#16#xy75 - H系统中的开关式DP从站SSL-ID W#16#xy90 - DP主站的系统信息SSL-ID W#16#xy91 - 模块状态信息SSL-ID W#16#xy92 - 机架/站状态信息SSL-ID W#16#0x94 - 机架/站的状态信息SSL-ID W#16#xy95 - 扩展的DP主站系统/PROFINET IO信息SSL-ID W#16#xy96 - 模块状态信息PROFINET IO和PROFIBUS DP SSL-ID W#16#xy9C - 工具变换装置信息(PROFINET IO)SSL-ID W#16#xyA0 - 诊断缓冲区SSL-ID W#16#00B1 - 模块诊断信息SSL-ID W#16#00B2 - 带物理地址的诊断数据记录1SSL-ID W#16#00B3 - 对应逻辑基址的模块诊断数据SSL-ID W#16#00B4 - DP从站的诊断数据事件事件和事件ID事件等级1 - 标准OB事件事件等级2 - 同步错误事件等级3 - 异步错误事件等级4 - 停止事件和其它模式更改事件类别5 - 模式运行事件事件等级6 - 通讯事件事件等级7 - H/F事件事件等级8 - 模块的诊断事件事件等级9 - 标准用户事件事件类别A和B - 自由用户事件保留的事件类别数据类型数据类型词汇表词汇表参考书目/30/使用入门:使用STEP 7/70/手册:PLC S7-300,CPU规范,CPU 312 IFM至CPU 318-2 DP及S7-300 CPU 31xC和CPU 31x:技术规范/71/参考手册:S7-300 S7-300模块数据*/72/指令列表:S7-300可编程控制器/101/参考手册:S7-400、M7-400可编程控制器模块规范/102/指令列表:S7-400可编程控制器/231/手册:使用STEP 7配置硬件和通讯连接/232/参考手册:S7-300和S7-400的语句表(STL) /233/参考手册:S7-300和S7-400的梯形图(LAD) /234/手册:使用STEP 7编程/236/参考手册:S7-300和S7-400的功能块图(FBD) /250/手册:用于S7-300和S7-400编程的结构控制语言(SCL)/251/手册:用于S7-300和S7-400的S7-GRAPH,顺序控制系统编程/252/手册:用于S7-300和S7-400的S7-HiGraph,状态图编程/270/手册:用于S7-300和S7-400的S7-PDIAG "组态LAD、STL和FBD的过程诊断"/350/用户手册:SIMATIC 7,标准控制器。

顺序功能图SFC

顺序功能图SFC
SET M5 RST M4 SET M7 RST M6 SET M8 RST M5 RST M7 SET M0 RST M8
3) 应用实例
使用STL指令的编程方法
STL指令

步进梯形指令(Step Ladder Instruction)简称为STL指令,
如图所示。FX系列PLC还有一条使STL指令复位的RET指令。利用
(MPS/MRD/MPP),须在LD或LDI指令后使用栈指令,图a所示。
4. 状态的转移方法。对于STL指令后的状态(S),OUT指令和 SET指令具有同样的功能,都将自动复位转移源和置位转移目 标。但OUT指令用于向分离状态转移,而SET指令用于向下一个 状态转移。如图b所示。
(a)
(b)
使用步进指令需要说明的问题
M202 M203
Y0
T0 K40 T1 K60 Y2 T2 K50 Y2
2) 选择、并行序列的编程方式
选择序列的分支、合并编程方式 并行序列的分支、合并编程方式
M8002
M0
Y0
X0
M1
Y1
X1
M3
Y3
X4
M4
Y4
X5
M5
X7
M8
Y10
X10
X2
M2
Y2
X3
M6
Y6
X6 M7
M8002
M0
Y0
顺序功能图(SFC)
STL指令的编程方式 使用启保停电路的编程方式 以转换为中心的编程方式 几种编程方式比较
各种编程方式比较
;;
① 编程方式的通用性;起保停通用性最强
② 不同编程方式设计程序长度比较;用STL指令程序最短。
③ 电路结构及其其他方面的比较

SFC51功能块的使用说明

SFC51功能块的使用说明

SFC51功能块的使用说明SFC(Sequential Function Chart)是一种图形化的编程语言,一般用于流程控制、顺序控制和状态机。

SFC51是SFC的一种扩展,它通常用于PLC(Programmable Logic Controller,可编程逻辑控制器)的程序设计与实现。

本文将详细介绍SFC51功能块的使用说明。

SFC51功能块是S7-1500系列PLC的指令集之一,用于根据程序的执行情况生成跳转条件,并决定程序的执行顺序。

通过使用SFC51功能块,可以实现PLC程序的模块化和工程化,提高程序的可读性和可维护性。

XXXX:FB+----[View]+----[Initialize]+----[Step 1]+----[Step 2]+----[Step N]+----[Jump 1]+----[Jump 2]+----[Jump N]其中,XXXX是功能块的名称,可以自定义。

FB表示这是一个功能块。

[View]表示该步骤是一个视图,用于显示相关信息。

[Initialize]表示初始化的操作步骤。

[Step 1]、[Step 2]、[Step N]表示执行步骤。

[Jump 1]、[Jump 2]、[Jump N]表示跳转条件。

使用SFC51功能块的步骤如下:1. 在TIA Portal软件中创建一个新的S7-1500项目,并选择相应的硬件配置。

2. 在Blocks导航栏中右键点击"Program Blocks",选择"Create New Block",输入功能块的名称,然后点击"OK"。

```ladderFUNCTION_BLOCKSFC1:SFC;VARView : SFC_STATUS;END_VARMETHOD Initialize : VOID;BEGIN//初始化操作END_METHODMETHOD Step1 : VOID;BEGIN//步骤1的操作END_METHODMETHOD Step2 : VOID;BEGIN//步骤2的操作END_METHOD// 其他Step和Jump的定义END_FUNCTION_BLOCK```4. 在Step和Jump方法中编写相应的操作逻辑,并在Initialize方法中编写初始化操作。

顺序功能图SFC

顺序功能图SFC

顺序功能图SFC顺序功能图(Sequential Function Chart,简称SFC)是一种用来描述控制程序的图形化编程语言。

它是根据电气工程师国际协会(International Electrotechnical Commission)标准IEC 61131-3定义的一种流程图。

SFC能够非常清晰地显示控制系统的逻辑和流程,并方便工程师进行调试和维护。

SFC的组成顺序功能图由若干不同的元素组成,这些元素可以按照特定的规则组合在一起,构成一个完整的控制程序。

以下是SFC中常见的元素:1.步骤(Step):步骤是顺序功能图的最基本的组成单位,表示一个操作、功能或者动作。

步骤一般使用矩形来表示。

2.转变(Transition):转变表示步骤之间的条件或者触发条件,用来决定程序是否继续执行或跳转到下一个步骤。

转变一般使用带箭头的线段来表示,箭头指向下一个步骤。

3.分支(Branch):分支用来根据条件决定程序的执行路径。

分支可以有多个选择,每个选择都可以引导程序到不同的步骤。

分支一般使用菱形来表示。

4.迭代(Iteration):迭代用来循环执行一组步骤。

迭代一般使用一个圆圈包含一组步骤的表示。

5.并行(Parallel):并行表示多个步骤可以同时执行。

并行一般使用平行线段表示。

6.联结(Connect):联结用来将多个SFC图连接起来,实现跨图的控制逻辑。

联结一般使用箭头和标签来表示。

SFC的编程规则为了能够正确地描述控制程序的逻辑,SFC遵循一定的编程规则:1.SFC程序从Step 0开始执行,然后按照转变的条件逐步执行。

转变可以是条件触发,也可以是时间触发。

2.每个步骤必须包含至少一个转变,否则程序将无法执行或者被卡死。

3.分支必须包含一个默认的转变,用来处理除了定义条件以外的情况。

4.迭代必须包含一个退出条件,否则程序将陷入死循环。

5.并行步骤中的每个步骤必须同时完成,否则将导致程序执行错误。

PLC五种编程语言

PLC五种编程语言

PLC的五种标准编程语言PLC的用户程序是设计人员根据控制系统的工艺控制要求,通过PLC编程语言的编制设计的。

根据国际电工委员会制定的工业控制编程语言标准(IEC1131-3)。

PLC的编程语言包括以下五种:梯形图语言(LD)、指令表语言(IL)、功能模块图语言(FBD)、顺序功能流程图语言(SFC)及结构化文本语言(ST)。

1、梯形图语言(LD)梯形图语言是PLC程序设计中最常用的编程语言。

它是与继电器线路类似的一种编程语言。

由于电气设计人员对继电器控制较为熟悉,因此,梯形图编程语言得到了广泛的欢迎和应用。

梯形图编程语言的特点是:与电气操作原理图相对应,具有直观性和对应性;与原有继电器控制相一致,电气设计人员易于掌握。

梯形图编程语言与原有的继电器控制的不同点是,梯形图中的能流不是实际意义的电流,内部的继电器也不是实际存在的继电器,应用时,需要与原有继电器控制的概念区别对待。

图1是典型的交流异步电动机直接启动控制电路图。

图2是采用PLC控制的程序梯形图。

图1 交流异步电动机直接启动电路图图2 PLC梯形图2、指令表语言(IL)指令表编程语言是与汇编语言类似的一种助记符编程语言,和汇编语言一样由操作码和操作数组成。

在无计算机的情况下,适合采用PLC手持编程器对用户程序进行编制。

同时,指令表编程语言与梯形图编程语言图一一对应,在PLC编程软件下可以相互转换。

图3就是与图2PLC梯形图对应的指令表。

图3 指令表指令表表编程语言的特点是:采用助记符来表示操作功能,具有容易记忆,便于掌握;在手持编程器的键盘上采用助记符表示,便于操作,可在无计算机的场合进行编程设计;与梯形图有一一对应关系。

其特点与梯形图语言基本一致。

3、功能模块图语言(FBD)功能模块图语言是与数字逻辑电路类似的一种PLC编程语言。

采用功能模块图的形式来表示模块所具有的功能,不同的功能模块有不同的功能。

图4是对应图1交流异步电动机直接启动的功能模块图编程语言的表达方式。

SFC51功能块的使用说明

SFC51功能块的使用说明

1 SFC 51简介1.1 程序功能介绍通过系统功能SFC 51 ”RDSYSST" (读取系统状态),可以读取系统状态列表或部分系统状态列表,例如指示灯状态,序列号,从站状态等等.调用SFC 51时,通过将值“1”赋给输入参数REQ来启动读取。

如果可以立即读取系统状态,则SFC将在BUSY输出参数中返回值0.如果BUSY包含值1,则尚未完成读取功能。

表1 SFC51参数说明参数描述REQ输入参数REQ = 1:启动处理SSL_ID输入参数将要读取的系统状态列表或部分列表的ID号INDEX输入参数部分列表中对象的类型或编号。

RET_VAL输出参数如果执行SFC时出错,则RET_VAL参数将包含错误代码。

BUSY输出参数TRUE:尚未完成读取.SSL_HEADER输出参数LENTHDR是SSL列表或SSL部分列表的数据记录的长度.•如果仅读取了SSL列表的标题信息,则N_DR包含属于它的数据记录数.•否则,N_DR包含传送到目标区域的数据记录数。

DR输出参数SSL列表读取或SSL部分列表读取的目标区域:•如果仅读取了SSL列表的标题信息,则不能评估DR的值,而只能评估SSL_HEADER的值。

•否则,LENTHDR和N_DR的乘积将指示已在DR中输入了多少字节.2 读取CPU指示灯可以通过SFC 51读取CPU的指示灯状态,使用的SSL_ID参数为16#74(16#19)读取全部指示灯状态或者16#174(16#119)读取单个指示灯状态2.1 编程首先需要创建一个数据块,用来存放读取出来的指示灯状态结果图1 创建DB1,存放读取结果打开OB1,在OB1的临时变量区创建一个变量length,类型设置为Struct(结构)图2 创建名为length的结构变量双击length变量,进入结构变量成员定义,创建两个word类型的变量,本例中分别为size和number:图3 创建length的结构变量的两个word成员编写SFC51程序:CALL "RDSYSST”REQ :=TRUE图4 创建DB1,存放读取结果打开OB1,首先在OB1的临时变量区创建一个变量length,类型设置为Struct(结构)图5 创建名为length的结构变量双击length变量,进入结构变量成员定义,创建两个word类型的变量,本例中分别为size和number:图6 创建length的结构变量的两个word成员编写SFC51程序:CALL "RDSYSST”REQ :=TRUESZL_ID :=W#16#294 //读取从站是否存在INDEX :=W#16#1RET_VAL :=MW0BUSY :=M2.0SZL_HEADER:=#lengthDR :=P#DB1。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编号名称缩写功能
SFC0 SET_CLK 设系统时钟
SFC1 READ_CLK 读系统时钟
SFC2 SET_RTM 运行时间定时器设定
SFC3 CTRL_RTM 运行时间定时器启/停
SFC4 READ_RTM 运行时间定时器读取
SFC5 GADR_LGC 查询模板的逻辑起始地址
SFC6 RD_SINFO 读OB启动信息
SFC7 DP_PRAL 在DP主站上触发硬件中断
SFC9 EN_MSG 使能块相关、符号相关的和组状态的信息
SFC10 DIS_MSG 禁止块相关的、符号相关的和组状态信息
SFC11 DPSYC_FR 同步DP从站组
SFC12 D_ACT_DP 取消和激活DP从站
SFC13 DPNRM_DG 读DP从站的诊断数据(从站诊断)
SFC14 DPRD_DAT 读标准DP从站的连续数据
SFC15 DPWR_DAT 写标准DP从站的连续数据
SFC17 ALARM_SQ 生成可确认的块相关信息
SFC18 ALARM_S 生成恒定可确认的块相关信息
SFC19 ALARM_SC 查询最后的LAARM_SQ到来的事件信息的应答
状态
SFC20 BLKMOV 拷贝变量
SFC21 FILL 初始化存储区
SFC22 CREAT_DB 生成DB
SFC23 DEL_DB 删除DB
SFC24 TEST_DB 测试DB
SFC25 COMPRESS 压缩用户存
SFC26 UPDAT_PI 刷新过程映像输入表
SFC27 UPDAT_PO 刷新过程映像输出表
SFC28 SET_TINT 设置日时钟中断
SFC29 CAN_TINT 取消日时钟中断
SFC30 ACT_TINT 激活日时钟中断
SFC31 QRY_TINT 查询日时钟中断
SFC32 SRT_DINT 启动延时中断
SFC33 CAN_DINT 取消延时中断
SFC34 QRY_DINT 查询延时中断
SFC35 MP_ALM 触发多CPU中断
SFC36 MSK_FLT 屏蔽同步故障
SFC37 DMSK_FLT 解除同步故障屏蔽
SFC38 READ_ERR 读故障寄存器
SFC39 DIS_IRT 禁止新中断和非同步故障
SFC40 EN_IRT 使能新中断和非同步故障
SFC41 DIS_AIRT 延迟高优先级中断和非同步故障SFC42 EN_AIRT 使能高优先级中断和非同步故障SFC43 RE_TRIGR 再触发循环时间监控
SFC44 REPL_VAL 传送替代值到累加器1
SFC46 STP 使CPU进入停机状态
SFC47 WAIT 延迟用户程序的执行
SFC48 SNC_RTCB 同步子时钟
SFC49 LGC_GADR 查询一个逻辑地址的模块槽位的属性
SFC50 RD_LGADR 查询一个模块的全部逻辑地址
SFC51 RDSYSST 读系统状态表或部分表
SFC52 WR_USMSG 向诊断缓冲区写用户定义的诊断事件
SFC54 RD_PARM 读取定义参数
SFC55 WR_PARM 写动态参数
SFC56 WR_DPARM 写默认参数
SFC57 PARM_MOD 为模块指派参数
SFC58 WR_REC 写数据记录
SFC59 RD_REC 读数据记录
SFC60 GD_SND 全局数据包发送
SFC61 GD_RCV 全局数据包接收
SFC62 CONTROL 查询通讯的连接状态
SFC63 AB_CALL 汇编代码块
SFC64 TIME_TCK 读系统时间
SFC65 X_SEND 向本地S7站之外的通讯伙伴发送数据SFC66 X_RCV 接收本地S7站之外的通讯伙伴发送的数据SFC67 X_GET 读取本地S7站之外的通讯伙伴的数据
SFC68 X_PUT 写数据到本地S7站之外的通讯伙伴
SFC69 X_ABORT 中断与本地S7站之外的通讯伙伴已建立的连接SFC72 I_GET 读取本地S7站的通讯伙伴的数据
SFC73 I_PUT 写数据到本地S7站的通讯伙伴
SFC74 I_ABORT 中断现与本地S7站的通讯伙伴已建立的连接SFC78 OB_RT 确定OB的程序运行时间
SFC79 SET 置位输出围
SFC80 RSET 复位输出围
SFC81 UBLKMOV 不间断拷贝变量
SFC82 CREA_DBL 在装载存储器中生成DB块
SFC83 READ_DBL 读装载存储器中的DB块
SFC84 WRIT_DBL 写装载存储器中的DB块
SFC87 C_DIAG 实际连接状态的诊断
SFC90 H_CTRL H系统中的控制操作
SFC100 SET_CLKS 设日期时间和日期时间状态
SFC101 RTM 运行时间记时器
SFC102 RD_DPARA 读取预定义参数(重新定义参数)
SFC103 DP_TOPOL 识别DP主系统中总线的拓扑
SFC104 CiR 控制CiR
SFC105 READ_SI 读取动态系统资源
SFC106 DEL_SI 删除动态系统资源
SFC107 ALARM_DQ 生成可确认的块相关信息
SFC108 ALARM_D 生成恒定可确认的块相关信息
SFC126 SYNC_PI 同步刷新过程映像区输入表
SFC127 SYNC_PO 同步刷新过程映像区输出表
SFC63“AB_CALL”仅在CPU614中存在。

详细说明可参考相应的手册SFB块
编号名称缩写功能
SFB0 CTU 加大记数
SFB1 CTD 减记数
SFB2 CTUD 加/减记数
SFB3 TP 定时脉冲
SFB4 TON 延时接通
SFB5 TOF 延时断开
SFB8 USEND 非协调数据发送
SFB9 URCV 非协调数据接收
SFB12 BSEND 段数据发送
SFB13 BRCV 段数据接收
SFB14 GET 向远程CPU写数据
SFB15 PUT 从远程CPU读数据
SFB16 PRINT 向打印机发送数据
SFB19 START 在远程装置上实施暖启动或冷启动
SFB20 STOP 将远程装置变为停止状态
SFB21 RESUME 在远程装置上实施暖启动
SFB22 STATUS 查询远程装置的状态
SFB23 USTATUS 接收远程装置的状态
SFB29 HS_COUNT 计数器(高速计数器,集成功能)
SFB30 FREQ_MES 频率计(频率计,集成功能)
SFB31 NOTIFY_8P 生成不带确认显示的块相关信息
SFB32 DRUM 执行顺序器
SFB33 ALARM 生成带确认显示的块相关信息
SFB34 ALARM_8 生成不带8个信号值的块相关信息
SFB35 ALARM_8P 生成带8个信号值的块相关信息
SFB36 NOTIFY 生成不带确认显示的块相关信息
SFB37 AR_SEND 发送归档数据
SFB38 HSC_A_B 计数器A/B转换
SFB39 POS 定位(集成功能)
SFB41 CONT_C 连续调节器
SFB42 CONT_S 步进调节器
SFB43 PULSEGEN 脉冲发生器
SFB44 ANALOG 带模拟输出的定位
SFB46 DIGITAL 带数字输出的定位
SFB47 COUNT 计数器控制
SFB48 FREQUENC 频率计控制
SFB49 PULSE 脉冲宽度控制
SFB52 RDREC 读来自DP从站的数据记录
SFB53 WRREC 向DP从站写数据记录
SFB54 RALRM 接收来自DP从站的数据记录
SFB60 SEND_PTP 发送数据(ASCⅡ,3964(R))
SFB61 RCV_PTP 接收数据(ASCⅡ,3964(R))
SFB62 RES_RECV 清除接收缓冲区(ASCⅡ,3964(R))
SFB63 SEND_RK 发送数据(RK512)
SFB64 FETCH_RK 获取数据(RK512)
SFB65 SERVE_RK 接收和提供数据数据(RK512)
SFB75 SALRM 向DP从站发送中断
SFB“HS_COUNT”和SFB30“FREQ_MES”仅在CPU312IFM和CPU314IFM中存在。

SFB38“HSC_A_B”和39“POS”仅在CPU314IFM中存在
SFB41“CONT_C”,SFB42“CONT_S”和SFB43“PULSENGEN”仅在CPU314IFM中存在
SFB44至49和60至65仅在S7-300C CPU中存在。

相关文档
最新文档