SFC51功能块的使用说明

合集下载

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位中,依次类推。

SFC 51功能使用入门

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诊断功能块说明

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的使用方法和记录数据的含义

测试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块功能简介

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中存在。

使用SFC51,SFB52,SFB54诊断PROFINET IO使用入门

使用SFC51,SFB52,SFB54诊断PROFINET IO使用入门

使用SFC51/SFB52/SFB54诊断PROFINET IO使用入门显示订货号1 解决方案1.1 项目介绍图 1 PROFINET IO网络拓扑,用于SFC51/SFB52/SFB54的诊断。

其中CPU319-3PN/DP用做IO控制器,SCALANCE X交换机和ET200S, ET200Eco作为IO设备进行连接。

图 1 PROFINET IO网络拓扑本例中使用到的主要硬件和软件如下:名称数量版本订货号CPU319-3PN/DP 1 V2.8 6ES7 318-3EL00-0AB0 SCALANCE X208 1 V4.0 6GK5 208-0BA10-2AA3 SCALANCE X201-3P IRT 1 V4.1 6GK5 201-3BH00-2BA3IM151-3 PN 1 V6.1 6ES7 151-3BA23-0AB0IM151-3 PN FOC 1 V4.0 6ES7 151-3BB21-0AB0PM-E 2 6ES7 138-4CA01-0AA02DO HF 2 6ES7 132-4BB01-0AB0ET200 eco PN 1 6ES7 142-6BG00-0AB0Step7 1 V5.4+SP51.2 硬件组态按照1.1中的硬件在Step7中进行组态。

然后分配设备名,下载组态数据到CPU319中,具体设置设备名以及完成PROFINET通讯,请参考网站下载中心《S7-300 PROFINET IO 通讯快速入门》72325620图 2 Step7的硬件组态其中,“Ethernet(1):PROFINET-IO-System(100)”总线的100表示PROFINET总线的序号。

IO设备例如SCALACNE X和ET200上从1到5,表示PROFINET IO的设备号。

2 SFC51诊断2.1 介绍系统状态列表(SSL)用于描述可编程逻辑控制器的当前状态。

SSL的内容只能通过系统功能进行读取,而不能修改。

PLC400的冗余PLC状态灯的读取_zh

PLC400的冗余PLC状态灯的读取_zh
| 产品支持 | 星期二, 18. 八月 2015
System.PrintPage 生成PDF
文档类型 常问问题, 条目ID: 90318924, 文档发布日期 2014年3月28日
如何读取冗余控制器状态灯
问 题:如果读取冗余控制器状态灯的状态? 回 答:本文将简单介绍通过编程的方式如何读取冗余控制器的状态灯,并附录相关源代码。 控制器运行过程中,控制器内部的各种不同信息都被保存在CPU的内部存储器中,并根据运行情况由控制器内部的操 作系统实时进行更新。在冗余控制器中,这些内部信息也包含了冗余控制器的状态灯信息。 在系统提供的系统功能SFC中,功能SFC51(RDSYSST)专门用于读取系统的状态信息。该功能块提供的SSL-ID功能 码输入管脚用于设置需要读取的信息类型,例如,16#0013用于读取控制器内部工作内存分配情况;16#00B1用于读 取模块的诊断信息;而16#0074则可以用于读取控制器的状态灯(包括单CPU和冗余CPU)。 注意:功能码16#0019仅仅支持单CPU和冗余CPU单机模式,不能用在普通的冗余CPU中。关于SFC51的详细帮助请参 考Step7在向帮助或有个系统提供的系统功能介绍。
表2. DR 数据记录结构 也就是说通过SFC51(功能码16#0074)读取的数据记录存储在DR中,每条数据记录都拥有上述的结构,每条数据记 录通过CPU_LED_ID字节1(LED标识符)来标识该记录对应的具体LED,通过评估记录的后两字节,即可判断该LED的 当前状态,LED标识符如下所示: W#16#0001:SF(组出错) W#16#000A:USR1(用户自定义) W#16#0002:INTF(内部出错) W#16#000B:BUS1F(总线出错接口1) W#16#0003:EXTF(外部出错) W#16#000C:BUS2F(总线出错接口2) W#16#0004:RUN W#16#000D:REDF(冗余出错) W#16#0005:STOP W#16#000E:MSTR(主站) W#16#0006:FRCE(强制) W#16#000F:RACK0(机架号0) W#16#0007:CRST(冷重启) W#16#0010:RACK1(机架号1) W#16#0008:BAF(总线上的电池故障/ W#16#0011:RACK2(机架号2) 超载、电池电压短路) W#16#0012:IFM1F(接口出错接口模块1) W#16#0009:USR(用户自定义) W#16#0013:IFM2F(接口出错接口模块2) > 使用SSL-ID=16#0074读取冗余CPU的状态灯时,SSL_HEADER数据结构中N_DR= 16#001A,即每次读取并存储在 DR中的数据记录条数最大为26条。因此,设置接受DR的数据区间长度应该至少大于等于: LENTHDR×N_DR=4×26=104 bytes 采用Step7编程时,手动构建如下DB块结构:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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 :=TRUE
SZL_ID :=W#16#294 //读取从站是否存在
INDEX :=W#16#1
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=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位中,依次类推。

如果从站对应的位未被置位,则表明那个DP从站没有通信上或不存在。

举例:从DB1。

DBW2开始,每个位对应一个bit,例如3号站对应的位是DB1。

DBX2.3 ,站点存在的位为1,不存在的为0。

注意事项:
关于系统功能SFC51的更多详情请参阅STEP 7的在线帮助,或者通过Start > SIMATIC 〉DOCUMENTATION选择手册“System Software for S7—300/400 System and Standard Functions”
4读取CPU的序列号
4。

1 编程
说明:
通过SFC 51“RDSYSST"可以从系统状态列表(SSL)中读取下列标识数据:
下面的表格指明了可以从不同型号和固件版本的CPU 读取其它哪些标识数据。

为此使用SFC 51 和SSL ID W#16#011C。

表3 INDEX说明
索引名称S7—300/C7S7—400 W#16#0001自动化系统的名称从固件版本V2.2起支持
W#16#0002CPU的名称从固件版本V2.2起支持
W#16#0003CPU的设备ID从固件版本V2。

2起支持
W#16#0004版权条目从固件版本V2。

2起支持
W#16#0005CPU的序列号从固件版本V2.2起
从MLFB
6ES741x-xxx04-0AB0起
W#16#0006为操作系统保留--W#16#0007CPU型号名称—支持
W#16#0008MMC 或MC 的序列
号(参见条目号:
19215608)
从固件版本V2。

0起

(CPU317:从V2.1开始)
需要注意,老CPU升级到上表版本也无法实现此功能。

首先需要创建一个数据块,用来存放读取出来的状态结果
图7 创建DB1,存放读取结果
打开OB1,首先在OB1的临时变量区创建一个变量length,类型设置为Struct(结构)
图8 创建名为length的结构变量
双击length变量,进入结构变量成员定义,创建两个word类型的变量,本例中分别为size和number:
图9 创建length的结构变量的两个word成员
编写SFC51程序:
CALL ”RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#11C //读取CPU 的序列号
INDEX :=W#16#5
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=P#DB1。

DBX0.0 BYTE 500 //结果输出到DB1数据块中
结果如下图:
图10 CPU序列号
注意事项:
关于系统功能SFC51的更多详情请参阅STEP 7的在线帮助,或者通过Start > SIMATIC > DOCUMENTATION选择手册“System Software for S7-300/400 System and Standard Functions"
5 读取存储卡的序列号
5。

1 编程
描述:
为了获得MMC 卡的序列号,必须使用SFC 51 "RDSYSST" 读出系统状态列表(SSL):
• SSL ID W#16#011C "元件的标识”
• Index W#16#0008 "存储卡的序列号"
对于所有的带有MMC 卡的S7—300 CPU 和C7 从固件版本V2.0 起都可以读出存储卡的序列号,(CPU 317:从V2。

1 起)。

从S7—400的V5版本起,存储卡上保存唯一的序列号。

首先需要创建一个数据块,用来存放读取出来的状态结果
图11 创建DB1,存放读取结果
打开OB1,首先在OB1的临时变量区创建一个变量length,类型设置为Struct(结构)
图12 创建名为length的结构变量
双击length变量,进入结构变量成员定义,创建两个word类型的变量,本例中分别为size和number:
图13 创建length的结构变量的两个word成员
编写SFC51程序:
CALL "RDSYSST"
REQ :=TRUE
SZL_ID :=W#16#11C //读取MMC 的序列号
INDEX :=W#16#8
RET_VAL :=MW0
BUSY :=M2.0
SZL_HEADER:=#length
DR :=P#DB1。

DBX0.0 BYTE 500 //结果输出到DB1数据块中结果如下:
图14 MMC序列号
注意事项:
关于系统功能SFC51的更多详情请参阅STEP 7的在线帮助,或者通过Start 〉SIMATIC 〉DOCUMENTATION 选择手册“System Software for S7—300/400 System and Standard Functions"
转载请注明本文地址:http://www。

diangon。

com/wenku/PLC/ximenzi/201309/00006130。

html。

相关文档
最新文档