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-400H冗余PLC系统信息诊断

西门子S7-400H冗余PLC系统信息诊断刘二龙【摘要】简要介绍西门子S7-400H冗余PLC系统,并具体阐述了两个互为冗余PLC的主备运行信息、电池信息、冗余Profibus-DP网络信息和Y-LINK下属Profibus-DP网络信息的诊断.S7-400H系列冗余PLC在核电站环吊、干熄焦提升机等高可靠性控制要求场合,能较好地满足功能要求,冗余设计大大提高不间断运行时间,而对冗余PLC相关信息进行诊断并在上位机进行显示,可显著减少故障排查时间,利于快速恢复系统运行.【期刊名称】《山西冶金》【年(卷),期】2016(039)006【总页数】4页(P117-119,124)【关键词】S7-400H;冗余系统;Y-LINK;信息诊断【作者】刘二龙【作者单位】太原重工股份有限公司技术中心,山西太原030024【正文语种】中文【中图分类】TP273德国西门子(SIEMENS)公司生产的S7系列PLC,由于其性能强大、质量可靠,在我国应用较为广泛,在冶金、化工、能源等很多领域都有所涉及。
S7-400H系列冗余PLC作为S7系列PLC中的高端存在,被广泛应用于有高可靠性或不间断性要求的最高等级控制需求场合中,例如核电站环吊、干熄焦提升机等。
S7-400H冗余PLC系统,通过将发生中断的单元自动切换到备用单元的方法实现系统的不间断工作,通过部件冗余实现系统的高可靠性,避免由于单个CPU故障造成系统瘫痪,无扰动切换,不会丢失任何信息。
1.1 S7-400H冗余PLC系统架构S7-400H系统的冗余架构确保了任何时候的系统可靠性,例如所有的重要部件都是冗余配置。
这包括了冗余的CPU、供电模块和用于冗余CPU通信的同步模块。
根据特定的自动化控制过程需要,还可以配置冗余客户服务器、冗余通讯介质、冗余接口模块IM153-2等。
1.2 S7-400H冗余PLC系统优点S7-400H冗余系统中两个CPU同时工作,互为主备,CPU没有切换时间。
SFC 51功能使用入门

SFC 51常用功能使用入门Getting Start about SFC 51 Functions摘要 SFC51提供了丰富的功能,可以用来读取CPU的指示灯状态,Profibus DP从站,CPU 硬件的序列号、存储卡序列号等等功能,本文为这些功能进行简要介绍。
关键词 SFC 51,SSL_IDKey Words SFC 51,SSL_IDIA&DT&BT Service & Support Page 2-16目录1 SFC 51简介 (4)1.1 程序功能介绍 (4)2 读取CPU指示灯 (5)3 读取Profibus DP从站 状态 (7)3.1 编程 (7)4读取CPU的序列号 (9)4.1 编程 (9)5 读取存储卡的序列号 (13)5.1 编程 (13)IA&DT&BT Service & Support Page 3-161 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_VA L 输出参数如果执行SFC时出错,则RET_VAL参数将包含错误代码。
BUSY 输出参数 TRUE:尚未完成读取。
SSL_HE ADER 输出参数LENTHDR是SSL列表或SSL部分列表的数据记录的长度。
• 如果仅读取了SSL列表的标题信息,则N_DR包含属于它的数据记录数。
DP诊断功能块说明

DP诊断功能块说明附录4:SIMATIC S7的DP诊断功能块说明应⽤PROFIBUS-DP和SIMATIC S7诊断评估远程组态时,⽤户程序可以使⽤两个不同的S7功能块。
如果除了诊断概要外还需要有关总线节点上错误和故障的详细信息,请使⽤功能块FB125。
功能块FC125是⼀个简化版本,它只提供有关“哪些总线节点上发⽣故障或者错误”的信息(诊断概要)。
该功能块不能显⽰详细的信息。
1 FB125和FC125的应⽤领域FB125和FC125可⽤于下列集成的DP接⼝和外部DP接⼝:CPU 313C-2 DPCPU 314C-2 DPCPU 315-2 DP(从6ES7 315-2AF02-0AB0起)CPU315-2DP(仅适⽤于6ES7 315-2AF01-0AB0):不能使⽤FC125FB125不能通过Start/RESET检测到有故障的从站CPU 316-2 DPCPU 318-2 DPC7-626 DP(从6ES7 626-2AG01-0AE3起)C7-633 DP和C7-634 DPSINUMERIK840D带有集成的CPU315-2 DP(6ES7 315-2AF01-0AB0):不能使⽤FC125FB125不能通过Start/RESET检测到有故障的从站SINUMERIK 840DI,带有集成的CPU315-2 DP(6ES7315-2AF03-0AB0)CPU 41x-2/3/4DPCP 443-5IM467和IM467 FOWIN ACWIN LC不适⽤于CP 342-52 FB125诊断功能块FB125通过中断驱动来诊断出错和故障的DP从站。
如果从站出现故障,则显⽰详细的故障原因诊断信息(插槽或模块编号、模块状态、通道编号、通道故障)。
通过单独的诊断,可以读取和解释任何DP从站的诊断信息。
诊断概要给出已组态的、现存的、出错的和发⽣故障的DP从站信息。
当DP/ASI-Link⽤作DP从站时,FB125诊断功能块还能提供下级ASI总线系统的信息。
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。
SM331 7KF02 诊断

SM331 7KF02 诊断SM3317KF02接三线制PT100,想做个诊断,比如如果断线或热电阻坏掉,计时诊断并反馈到触摸屏上!诊断程序如何做呢?最佳答案SM3317KF024个通道组中的8点输入可编程诊断和诊断中断可以在STEP7中对通道组0和通道组1的硬件中断进行编程。
但是,仅为通道组的第一个通道(即通道0或通道2)设置硬件中断。
可以结合模拟量输入模块的短线诊断设置和调用SFC51利用诊断中断组织块OB82中的内容,利用DB13块进行在线监视或把诊断信息发送到触摸屏上可以实时监控具体通道断线故障。
下面简单进行说明:第一,在SIMAITC管理器中打开你的项目的硬件组态界面,双击模块7KF02,选择“输入”(Inputs)选项,选择通道组如0-1(两个通道)为电阻测量,并注意模块量程卡要与设置一致。
选中“启用”(Enable)框中的“诊断中断”(DiagnosticInterrupt),如选中“诊断”(Diagnostics)选项中的0-1通道组中的“组中断”(GroupDiagnostics)和“检查线路断开”(withcheckforwirebreak),点击“确定”;然后双击CPU,选择“中断”(Interrupts)选项,可以看到CPU支持OB82(诊断中断处理组织块),硬件组态完成,保存编译,下载到CPU 中;第二,完成诊断程序。
OB82程序当在硬件组态中设定的诊断发生后执行,但OB82执行时可以通过它的临时变量0B82_MDL_ADDR读出产生诊断中断的模块的逻辑地址。
由于STEP7不能实时监控程序的执行。
在SIMATIC管理器中S7Program(1)下插入一个STLSource文件STLSource(1)。
打开OB1,依次打开左边“库”(Libraries)/StandardLibraries“(标准库)/SystemFunctionBlocks”(系统功能块)下找到SFC51“RDSYSSTDIAGNSTC”,按F1键,出现SFC51在线帮助信息,在帮助信息的最底部点击“ExampleformodulediagnosticswiththeSFC51”,然后双击”STLSourceFile“,选中全部STLSource源程序复制到STLSources(1)中,编译保存,这时在Blocks(块)中生成OB81、O882、DB13和SFC51;打开OB82,对其中的程序做简单的修改,将19和20行的程序复制到go:后面,再进行保存,下载到CPU中;打开数据块DB13,在线监控,由于通道断线是一到来事件,所以诊断信息存储在COME 数组中,可以在触摸屏中设置调用DB13中COME数组的内容,就可以判断具体的通道电阻断线故障,如COME(9)=B#16#10,表示0通道断线。
测试SFC51的使用方法和记录数据的含义

测试SFC51的使用方法和记录数据的含义1. 测试条件:2. 测试内容测试测试SFC51的使用方法和SSL_ID=W#16#0071的记录数据的含义。
3. 测试过程SFC51(RDSYSST,读系统状态)是一个系统功能,通过该功能读出系统状态。
通过SSL_ID 指定想要读取的系统状态,INDEX指定读取的系统信息的类型或数量;本例中 SSL_ID=W#16#0071:表示读取H系统的当前信息。
INDEX:没有意义。
通过SFC51只有完整的数据记录被读取。
3.1建立一个DB块存储读取的信息。
LENTHDR:一个数据记录的长度,16BYTE。
N_DR:数据记录的数量。
3.2 在OB35中编写程序:3.3 程序和DB下装,将REQ端置1,开始读取系统信息,然后在线监视DB1的数据状态,读得结果如下:4. 测试结果LENTHDR:W#16#0010:表示一个数据记录是16个字节。
N_DR: W#16#0001表示只有一个数据记录。
以下是数据记录的具体含义:Redinf(DR[0] DR[1]=0012) 2 bytes Information about redundancyW#16#0011: Single H CPUW#16#0012: 1 of 2 H system含义:这两个字节表示的是组态信息,组态时插入400 h station,组态完成下装后,不管从站cpu处于stop,还是断电,该位都显示0012;如果组态时插入400 station,也就是将h cpu当作普通cpu使用时,显示0011。
本例中0012表示组态的是H station.Mwstat1(DR[2]=10 ) 1 byte Status byte 1Bit 0: reservedBit 1: reservedBit 2: reservedBit 3: reservedBit 4: H status of CPU in rack 0=0: standby CPU=1: master CPUBit 5: H status of CPU in rack 1=0: standby CPU=1: master CPUBit 6: reservedBit 7: reserved含义:该字节指示哪个机架中的cpu是主站,哪个是从站。
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中存在。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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"。
```ladder
FUNCTION_BLOCKSFC1:SFC;
VAR
View : SFC_STATUS;
END_VAR
METHOD Initialize : VOID;
BEGIN
//初始化操作
END_METHOD
METHOD Step1 : VOID;
BEGIN
//步骤1的操作
END_METHOD
METHOD Step2 : VOID;
BEGIN
//步骤2的操作
END_METHOD
// 其他Step和Jump的定义
END_FUNCTION_BLOCK
```
4. 在Step和Jump方法中编写相应的操作逻辑,并在Initialize方法中编写初始化操作。
可以在方法中使用变量和输入输出参数。
5. 在主程序中,将SFC51功能块添加到程序中。
选择Function Blocks导航栏,然后右键点击所要添加的功能块,选择"Add to program"。
6.在S7-1500控制器中,将功能块程序加载到PLC中,并运行程序。
7.根据程序的执行情况,相应的步骤和跳转条件将会被执行。
需要注意的是,SFC51功能块的执行是按照步骤的顺序进行的。
每个步骤的执行都受到条件的限制,只有满足条件时,才会执行该步骤。
当满足跳转条件时,程序会跳转到对应的步骤。
在编写SFC51功能块时,需要考虑以下几点:
1.正确理解程序的逻辑流程,并根据实际需求设计相应的步骤和跳转条件。
2.合理命名步骤和跳转条件,以便于代码的可读性和维护性。
3.在编写每个步骤的操作逻辑时,考虑程序的执行效率和稳定性。
4.使用变量和输入输出参数来传递数据,以实现不同步骤之间的数据
交互。
5. 在Step方法中可以使用"View"来实时显示程序的执行情况,方便
调试和监控。
总结:SFC51功能块是S7-1500系列PLC的一种扩展指令集,用于实
现程序的模块化和工程化。
通过正确使用SFC51功能块,可以使PLC程序
更易读、易维护。
在编写SFC51功能块时,需要注意理解程序逻辑、合理
命名、考虑执行效率和稳定性,并使用变量和输入输出参数进行数据交互。