SFC1系统功能块应用实例
西门子 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就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。
第7章SFC编程_功能图应用举例

大小球检测开关(大球OFF,小球ON )左限位开关上限位开关小球右限位开关大球限位开关下限位开关1.选择和循环电路举例I/O地址分配名称符号地址名称符号地址启动按钮SF1I0.0原始位置指示灯PG Q0.0停止按钮SF2I0.1抓球电磁铁MB Q0.1上限位开关BG1I0.2下行接触器QA1Q0.2下限位开关BG2I0.3上行接触器QA2Q0.3左限位开关BG3I0.4右行接触器QA3Q0.4小球右限位开关BG4I0.5左行接触器QA4Q0.5大球右限位开关BG5I0.6大小球检测开关BG0I0.7过程分析1)下行控制逻辑出现2次,2)上行控制逻辑出现3次,3)右行控制逻辑出现2次,4)左行控制逻辑出现1次,如何处理多次输出的问题?如何处理在循环过程中,对停止信号的相应问题?初始条件满足,按下按钮,当上一步都完成,GP5工作●S7-200 PLC 顺序控制指令及应用1#GP1GP2GP6GP5GP3GP4加热器聚合物碱搅拌器产品池1#2#3#4#反应池当温度到,GP3,GP4工作,同时搅拌并启动定时。
2.并行分支和联接电路举例题目7.4 功能图应用举例2. 并行分支和连接电路电路举例I/O分配表名称符号地址名称符号地址手动启动按钮SF1I0.0GP1的接触器QA1Q0.0 1#容器满液位开关SF2I0.1GP2的接触器QA2Q0.1 1#容器空液位开关BG1I0.2GP3的接触器QA3Q0.2 2#容器空液位开关BG2I0.3GP4的接触器QA4Q0.3 2#容器空液位开关BG3I0.4GP5的接触器QA5Q0.4 3#容器空液位开关BG4I0.5GP6的接触器QA6Q0.5 3#容器空液位开关BG5I0.6加热器的接触器QA7Q0.6 4#容器空液位开关BG6I0.7搅拌器的接触器QA8Q0.7 4#容器空液位开关BG7I1.1温度继电器KF1I1.22. 并行分支和连接电路电路举例设计要点S0.0S0.1I0.0且满足初始条件SM0.1S0.2S2.0S2.1S0.3S0.4 S2.2S0.1S2.3S0.1S2.4S0.7S1.0I0.1,1#容器满I0.2,2#容器满2容器满,自动为真等待等待等待等待等待Q0.0Q0.1Q0.6Q0.2Q0.3Q0.4Q0.5I0.2orI0.5I0.4orI0.5T37I0.7orI0.6I1.0 4#容器空4#容器满或3#容器空自动为真1)按下按钮, GP1和GP2同时工作,2)当两个容器都满,2#容器加热,3)当温度到,GP3,GP4工作,同时搅拌并启动定时。
顺序功能图SFC

添加标题
添加标题
添加标题
添加标题
逻辑控制:实现复杂的逻辑关系, 如条件判断、循环等
过程控制:在化工、电力、制药等 领域,实现对温度、压力、流量等 工艺参数的监控与调节
智能制造领域
智能制造领域:用于描述自动化流水线、装配线等智能制造系统的控制流程,实现可视化的流程管理和优化。
工业自动化领域:用于自动化设备的控制流程设计,实现设备的自动化控制和协同工作。
顺序功能图的作用
描述系统的动态行为 描述系统的功能流程 用于控制系统的设计 用于自动化系统的编程
顺序功能图的组成
状态:表示系统的一种工作方式,具有保持能力,可以记忆 转换:表示状态之间的联系,是系统状态改变的信号 动作:表示在转换发生时,系统所执行的动作 条件:表示在转换发生时,系统所满足的条件
添加标题
易于理解和分析系统的流程
添加标题
添加标题
可以方便地实现自动控制系统
顺序功能图的缺点
绘制复杂:顺序功能图需要绘制多个转换和动作,对于复杂系统来说,绘制过程可能较为繁琐。
理解难度高:由于顺序功能图采用图形化表示方式,对于初学者来说,理解起来可能有一定的难 度。
难以维护:随着系统复杂度的增加,顺序功能图的维护成本也会相应提高,需要不断调整和优化。
电力行业:在电 力系统中,顺序 功能图可以用于 描述发电、输电、 配电等环节的控 制逻辑。
Hale Waihona Puke 智能家居领域: 在智能家居系统 中,顺序功能图 可以用于描述家 庭设备的控制逻 辑,如智能照明、 智能安防等。
流程控制领域
顺序控制:用于自动化生产线、机 械设备的顺序动作控制
运动控制:对物体的位置、速度、 加速度等进行精确控制
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顺序功能图PPT文档资料

顺序功能图(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块功能简介

编号名称缩写功能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程序编程实例更精简版ppt课件

编辑SFC块图时返回S0的表达
第5章 步进指令及状态编程法
掌握SFC块图的编辑。
内容提要
GX中SFC块图编程 上机演示
4
GX中SFC块图编程
SFC功能图是专门为顺序控制设计的程序 语言,但是SFC功能图并不能直接在编程 软件中编制。SFC程序的编辑方法,一种 是STL指令梯形图,另一种是SFC图形程序。
分析:
不管什么时候按下停止按钮,都要等当前周期工作完后, 才能停止系统工作,即返回到初始状态。由于X0、X1是短信 号,因此,要采用具有记忆功能的电路(可采用起保停电路, 由X0、X1 分别提供起动信号和停止信号,用M0作为编程元件) 把它们的信号保存下来。
连续工作条件: T1 M 0
停止工作条件: T1 M 0
M20 M10
左 M14 行
M11
M14 M20
M10
初 始
M11
步
M11
M12
X3
M13
M14
X4
T0 K100
T0
装
Y10 料
右 Y6 行
T1 K150
T1
卸
Y11 料
Y7
左 行
图6-30 用启保停电路设计的自动程序
右行 左行 装料 卸料
手动 单步 单周期 连续
X0 X1 X3 X4 X5 X6
X7 X10
X11 X12 X13 X14 COM
电源总开关
L N COM4
KM KM
电源
紧急 停车
KM
KM
KM1 KM2
FR
右行
西门子300PLC如何利用OB1的临时变量读取CPU系统时钟

如何用SFC0和SFC1来设置和读取时钟,今天就和大家说一说。
首先Date_And_Time是一复杂数据类型,包含8个字节,Byte0-Byte7对应年、月、日、时、分、秒、毫秒、星期,对应关系如下表所示:Byte6和Byte7的高4位组合成毫秒,格式是BCD码,Byte6是高位,Byte7是低位我们可以在DB块里定义time1和time2变量,数据类型是DATE_AND_TIME,如下图:在符号表中定义DB1的符号名为system-time,如下图:然后调用SFC0和SFC1就可以了,大家可以参考下面的程序(可以将程序拷贝到Step7中,然后可以转成梯形图程序),具体使用时间时可以直接寻址DB1.DBB0 –年……DB1.DBB7(低4位) –星期,DB1.DBB8 –年……DB1.DBB15(低4位) –星期。
OB1:"Main Program Sweep (Cycle)"Network1:A M 10.0JNB _001CALL SFC 0PDT :="system-time".time1RET_V AL:=MW100_001: NOP 0Network2:CALL "READ_CLK"RET_V AL:=MW102CDT :="system-time".time2NOP 0如果对时间误差的要求到分就可以,所以推荐一种简单的方法,不知大家之前用过没有,就是使用OB1的临时变量OB1_DA TE_TIME(在OB1的Interface –TEMP中可以找到),此变量也是DATE_AND_TIME 的数据类型,对应的临时变量地址是LB12 –LB19,同样对应年–星期,符合上面表格中的结构,我们只需要使用Move指令就可以得到PLC的系统时间了。
例如我们可以将LD12 Move 到MD0、LD16 Move 到MD4中,然后在程序中寻址MB0 –MB7就可以了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SFC1系统功能块应用实例
公司设备周保养,每周定时定点,操作人员采用计件工资,所以保养时一般还偷偷加工,不但危险,而且保养效果不好,通过系统功能块SFC1读取系统时间,通过plc做了一个小程序,每周定时保养1小时,OM提示并且NC禁止启动,强制保养,磨刀不误砍柴工。
1、SFC1 中的输出参数“CDT”接收的时间和日期的格式为“DATE_AND_TIME”,以 BCD 码的格式存储在8个字节里。
其中年、月、日、小时、分钟、秒、毫秒和星期分别对应0-7的字节。
其中字节7的高四位对应的毫秒个位值,低四位对应星期。
通过字与指令AW可将星期单独提出来。
老外的礼拜天是一周的第一天,以此类推。
本例中#TEMP8对应月份, #TEMP6对应日期, #TEMP3对应小时,#TEMP1对应星期。
2、使用FC块编写判断程序。
3、调用FC块和编制报警,本例中分别对应星期、小时、保养时间,OM提示并且NC禁止启动,保养时间到以后提示自动消除,提示不会影响正在加工的工件。
4、将数据块设置为断电保持
5、上传报警文本。
6、校对系统时间。