广州西门子PLC代理商
西门子cu240e-2dp是g120 控制单元e-型配备安全集成 sto profibus-dp 6di,3do,2ai,2ao, 1f-di ptc/kty 接口 usb 和 sd/mmc 接口 防护等级 ip20 环境温度 0 至 +50°c 无功率模块
1 解决方案
1.1 项目介绍
图 1 profinet io网络拓扑,用于sfc51/sfb52/sfb54的诊断。其中cpu319-3pn/dp用做io控制器,scalance x交换机和et200s, et200eco作为io设备进行连接。
图 1 profinet io网络拓扑
1.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的内容只能通过系统功能进行读取,而不能修改。换言之,部分列表是虚拟列表,只是在有特殊请求时由cpu的操作系统所创建。
sfc 51 “rdsysst" 系统功能用于读取 “系统状态列表" (简写为ssl),部分列表或 cpu 的 ssl 列表摘录。对于 profinet io,这些 ssl包含了 i/o 模块,profinet io 主站系统或实际控制器的状态信息。当选择所用的、特别是在一个中断或启动 ob 中使用的 ssl id 时,必须注意的是 sfc 仅能同步执行。如果执行 sfc 之后,busy 位激活表明几个循环执行一次 sfc,数据还没有读出,因此数据是无效的。接收到的系统状态列表数据记录包括了诊断 profinet io 设备上的信息概览。
pn通信部分列表是虚拟列表,只是在有请求时由cpu的操作系统所创建。虚拟列表来自 cpu 内部的pn io控制器的缓冲区,缓冲区由控制器的启动和alarm信息进行维护和刷新。
通过sfc51只能获取站或模块的状态信息,例如,丢站,或者该模块有错误,并不能获取模板的故障的详细信息,例如哪一个模板的通道发生断线,短路等。
2.2 编程
这里使用sfc51来读取每一个站点的实际状态,判断该站是否发生丢站故障。在plc中添加并下载空的ob86,防止测试丢站时,发生cpu停机现象。当然也可以使用ob86来读取每一个io设备的实际状态,但需要更多的编写程序,关于使用ob86来获取io站点的状态信息,请参考网站下载中心《使用ob8x诊断simatic plc(pn) 》87668286
按照上表在变量表中设置ssl_id=0294 (mw2)和index=16#64 (mw4),其中16进制64的十进制为100,表示profinet总线的序号,请参考图 2 step7的硬件组态。添加要查看的变量,并使能m0.0为1。其中读取到的数据记录个数为1 (db1.dbw2),该数据记录的长度为258bytes (db1.dbw0)。db1.dbw4表示profinet总线的序号,这里为100 (64h) 。对于db1.dbb6为2#0011_1111,其中bit0表示组信息,如果为1,表示至少有一个io设备与io控制器进行通讯,如果为0,表示io站点全部丢失。bit1~bit5表示设备号1~5的io设备的状态,1表示io设备存在,0表示io设备丢站。至于其它bit和高字节中的bit依次类推,表示对应io设备的状态。
图 3 根据变量表查看设备状态
根据这些位bit1~5,可以很方便的在wincc/wincc flexible中或任何第三方与plc通讯的hmi上进行显示,方便用快速发现和维护现场故障。
3 sfb52诊断
3.1 介绍
simatic s7 诊断数据记录提供了附加的详细信息的诊断性能。系统功能块sfb 52 “rdrec" 用于读取这些数据记录。
调用时,系统功能块对要诊断的站id进行寻址,并以 index 参数标明要读出的数据记录。这可能是中央机架或分布式组件(profibus dp或profinet io)中的一个模块。如果没有诊断信息,则系统功能块执行后没有输出。由于 sfb 52 “rdrec" 是一个异步执行的 sfb,即执行过程横跨几个 sfb调用,因此该块只能在循环操作中使用。不能在诊断 ob 或定时中断 ob 中使用。除了出错的位置外,sfb 52 诊断数据记录还包含发生错误的类型信息。为了进一步分析,可对该信息进行评估。
在mlen中w要读取的多字节数。目标区域record的选定长度至少应等于
mlen字节的长度。输出参数valid如为true,则表明已将数据记录成功传送到目标区域record中。此时,输出参数len包含所取得的数据的长度(以字节计)。输出参数error用以指示是否发生数据记录传送错误。如果发生错误,则输出参数status包含错误信息。
该功能块属于状态驱动类型,可以在ob1或者其它循环ob块中调用,用于读取诊断记录或者组态记录等数据记录。
profinet io 设备模型说明了模块化和紧凑型现场设备的结构。 它根据 profibus dp 的基本特性构建。子模块和 api 的定义已添加至设备模型,以增加 io 设备的灵活性。
一个 profinet io 设备包括一个或多个“逻辑设备", 这些设备依次包含一个或多个 api(应用程序进程标识符),至少包含 api 0。
设备的特性通过io设备的基于xml的gsd(general station deion)文件来描述。可以通过profinet xml viewer来读取gsdxml文件。
涉及到分级的概念,ap,api,slot,subslot。每个寻址级别都有一组可用的诊断记录和组态记录。 通过记录编号的首字母来区别各记录组的诊断级别,如下图 4 诊断级别。关于profinet io设备模型和诊断的数据记录结构请参考 19289930
图 4 诊断级别