[西门子] 在TIA博途V12中进行S7-1500诊断之一PROGRAM_ALARM功能块诊断

[复制链接]
查看377 | 回复0 | 2024-6-9 20:46:42 | 显示全部楼层 |阅读模式
>诊断的原理:故障诊断对于设备的运行于维护非常重要,S7-1500集成了强大的系统诊断功能,可以对系统中的所有元件进行诊断,智能模块带有独立的处理器可以进行通道级的诊断,这些故障信息可以通过HMI以及浏览器进行访问,创新的S7-1500集成的显示面板同样可以进行显示,维护人员也可以通过手机、PAD来查看诊断信息,快速的故障定位可以大大减少设备停机时间,从而ᨀ高生产效率,保证用户利益。
系统诊断集成到CPU操作系统中,CPU自动生成与它有关的硬件的诊断信息,无需额外编程。
常用的诊断显示方法有5种:

  • 诊断显示的方法一:LED灯状态指示和模块的值状态
  • 诊断显示的方法二:软件显示诊断缓冲区,PG/STEP 7
  • 诊断显示的方法三:CPU的液晶显示面板
  • 诊断显示的方法四:Web sever故障显示监视变量表,监控变量
  • 诊断显示的方法五:HMI显示(在WEB中只能以“符号名”来访问变量)


SIMATIC S7-1500
系统诊断功能(RSE)–新概念
§ 系统诊断包括CPU、分布式IO站点、机架、电源模块的插拔以及模块中某个通道故障的诊断等
§ 系统诊断集成在PLC的固件中
§ 无需类似S7-300/400的用户程序块(ReportSystem Error (RSE))

§ PLC处于STOP模式诊断功能仍然起作用,也可以上传到HMI中。

§ 去除报警组态(报警设置,报警属性)--减少组态工作,改由操作系统实现。



SIMATIC S7-1500系统诊断–设置



通过LED灯工作机制

通过PG / STEP 7诊断工作机制

通过PG / STEP 7诊断详细

S7-1500系统诊断处理机制

S7-1500系统诊断设备组态浏览

S7-1500系统诊断硬件组态编译
由于系统诊断已经继承集成到PLC操作系统中,因此在编译过程中将不会生成任何的功能块
无需额外编辑
节省系统资源

S7-1500系统诊断PLC报警


S7-1500系统报警PLC报警

S7-1500系统诊断
集成系统诊断功能的优势
§ 系统诊断将作为PLC操作系统的一部分
§ 系统诊断不会对用户程序造成任何影响
§ 通过重新编译可以集成新模块
过程诊断功能(PLC  ALARM)
报警组态简介
PLC  Alarm用于发送与控制相关的过程报警信息,是由事件触发,PLC主动发送信息到HMI中,与在HMI中添加的故障报警相比,PLC  Alarm占用的通信资源少并且可以捕捉到瞬间的故障信息,还可以将故障信息发送到Display和WEB浏览器中。
通过报警可以快速检测自动化系统中的过程控制错误,并准确定位和清除这些错误。工厂停机时间大幅降低。
在输出报警前,需要进行组态。
可以创建、编辑和编译事件相关报警及其文本和属性,并在显示设备中显示。
下表列出了报警类型及其功能简要说明。
报警类型
程序报警
系统诊断报警
用户诊断报警
说明
程序报警用于报告程序同步事件,每个都指定给一个块。在程序编辑器中创建,在报警编辑器中编辑。
系统诊断报警是与组态相关的模块事件,在硬件组态中激活或取消激活。这类报警在报警编辑器中只能查看,不能编辑。通过用户诊断报警,可以将用户条目写入诊断缓冲区并发送相应报警。需要为这些报警指定一个CPU。这类报警在报警编辑器中创建,而且编辑。


使用PROGRAM_ALARM功能块诊断


如何在用户程序中创建一个基于事件的消息报警?
每一条报警信息都需要调用一个PROGRAM_ALARM指令可以使用功能块PROGRAM_ALARM报警消息将由功能块发送


使用PROGRAM_ALARM功能块诊断多重背景的调用

使用PROGRAM_ALARM功能块诊断多重背景的调用

组态

Diagnostics with PROGRAM_ALARM组态






报警参数被分配为program_alarm相关值(sd_x)


Diagnostics with PROGRAM_ALARM相关值的结构
描述块的语法:
@<相关值的编号>%<可选的格式规范᧿述><格式规范>@
相关值的示例:
Conveyor:   AKZ: @1%1u@: Motor has @2%t#MotorFault@

Diagnostics with PROGRAM_ALARM相关值的结构

Program_Alarm状态
报警状态提供了一个来自program_alarm的返回字节

示例:温度报警


程序消息中相关值的总大小
在 S7-1500 CPU 中执行“Program_Alarm”时,报警过程最多支持 512 个字节的相关值。
对于内部信息,ProDiag 需占用相关值总大小的部分空间。即,在特定文本字段中,3 个相关值可占用最大 400 个字节。
在 TIA Portal 版本 V14 及以下版本中,编译过程中仅显示一条有关该数值的警告消息。在 TIA Portal V14 SP1 及以上版本中,该检查更为严格。超出该数值后,编译过程中将输出一条错误消息,用于排除运行过程中的各种错误情况。此时,该检查过程不再参考“Program_Alarm”指令调用时 SD 参数的实际大小,而是参考 SD 参数可能的最大大小。即,用户需事先确定待传输字符串变量应声明的长度大小。这是因为,这些字符串变量将占用大量的字节空间。

调用指令“生成具有相关值的程序报警”
只能在函数块 (FB) 中调用该指令。该块将同步处理。在退出该块时,将立即触发报警。如果处理过程中发生错误,将会输出错误代码。
将该指令插入 FB 时,将立即在该块接口的“Static”部分中创建一个数据类型为“Program_Alarm”的多重实例。在显示的对话框中,选择该多重实例的名称。它也是程序报警的名称。
最后,再根据具体需要添加指令的参数(请参见“参数”表)。

组态程序报警
在“Static”部分或 FB 程序段中选择该程序报警名称时,将在“属性”(Properties) 窗口中显示该程序报警的设置信息。选择报警类别、优先级等,并编辑报警文本。
在该窗口完成的设置可在项目树中进行编辑。为此,在“PLC 监控与报警”(PLC supervisions & alarms) 中打开“报警”(Alarms) 选项卡;然后打开“程序报警”(Program alarms) 选项卡。将在表格“报警类型”(Alarm types) 中显示所有的程序报警。
参数
下表列出了“生成具有相关值的程序报警”指令的参数:




参数
声明
数据类型
存储区
说明
SIG
Input
BOOL
I、Q、M、D、L、T、C 或常量
要监视的信号。

  • 信号上升沿:生成一个到达的程序报警
  • 信号下降沿:生成一个离去的程序报警
TIMESTAMP
Input
LDT
M、D、L 或常量
该参数用于为报警指定一个时间戳,例如当报警来自带有分布式时间戳的输入信号时。必须始终在系统时间(即,UTC)中指定该时间值,这是因为该时间将用于整个设备的时间同步。

  • “未分配”意味着当信号发生变更时将使用 CPU 系统时间作为中断时间戳(默认)。
  • 当信号发生变更时,将任何系统时间输入用作中断时间戳。
注:如果中断的时间戳使用本地时间,则必须串联一个转换模块,用于将本地时间转换为系统时间。这是确保中断显示中时间戳可正确显示的唯一方法。
注:在确认报警过程中,始终使用 PLC 系统时间作为时间戳。
SD_i




Input
VARIANT
I、Q、M、D、L
第 i 个相关值 (1 ≤ i ≤ 10)
可以使用二进制数、整数、浮点数或字符串作为关联值。
Error
Output
BOOL
I、Q、M、D、L
状态参数 Error
Error = TRUE 表示处理过程中出错。可能的错误原因将通过 Status 参数显示。
Status
Output
WORD
I、Q、M、D、L
状态参数 Status
显示错误信息(请参见“Error 和 Status 参数”)。


有关有效数据类型的更多信息,请参见“另请参见”。
Error 和 Status 参数
下表列出了可通过参数 Error 和 Status 输出的所有特定错误信息。




Error
Status*
说明
0
0000
由于参数 SIG 处没有信号沿,因此没有未处理的错误或指令。
1
0085
“仅信息”报警类型
1
8001
无效的静态报警信息
1
8002
无有效的静态报警信息
1
8004
已达到相关报警值的最大大小 512 字节。
1
8005
信号上升沿在参数 SIG 处待处理,且仍有报警待处理未被确认。
1
8007
离去的报警,之前没有到达的报警。
1
8087
静态报警被禁用。
1
8089
报警过长。
1
80Ax
参数 SD_i 的值无效。
1
80C1
此时,CPU 不会生成任何报警,这是因为初始化例程正在运行(如,在 RUN 模式下进行下载后)。请稍后重试。
1
80C2
已发送了每个时间单位内所允许的最大报警数。请稍后重试。
1
80C3
已使用所有的动态报警实例。请稍后重试。
1
80C4
输出报警,无法进行覆盖。请稍后重试。
* 在程序编辑器中,错误代码将显示为整数或十六进制值。有关切换显示格式的信息,请参见“另请参见”。


示例
在以下示例中,使用关联值为信号更改生成程序报警。
在全局数据块中创建一个用于存储待监视信号值的变量。

在函数块中调用指令。为函数块创建四个参数,用于互连指令。

互连该指令的参数,如下所示:

调用 OB 中的函数块。

创建指令时将自动生成 PLC 报警。打开“PLC 监控与报警”(PLC supervisions & alarms) 对话框,并在“报警 > 程序报警”(Alarms >Program alarms) 选项卡中选择待编辑的报警。在报警的“属性 > 基本设置”(Properties > Basic settings) 中,创建报警文本,包括两个关键字。
注:如果在文本框中单击右键,可以插入关键字、变量或文本列表。
作为字符序列“@1%s@”的结果,将读取参数 SD_1(“#MyStaticText”)的值并将其作为字符串输出。
另请参见







  • “在报警中插入相关值”
  • 相关值的示例
  • “报警文本的关键字”


若参数 SIG(“CreateAlarm”)的信号状态为“TRUE”,将输出 PLC 报警。输出参数 STATUS(“OUTPUT_Status”)的值为“0001”,表示信号已更改。之后,该参数还将指示当前无进一步操作(值为“0000”)。在 SD_1(“#MyStaticText”)参数中输出 PLC 报警的关联值。
可以将一个时间戳传送到参数 TIMESTAMP。如果不互连,参数 TIMESTAMP 将输出 CPU 时钟的本地时间。通过输出参数 ERROR(“OUTPUT_Error”),指示该指令的处理无错误。


例如,要输出 PLC 报警,可使用 CPU 的 Web 服务器。要使用 Web 服务器,需满足以下条件:

  • 在 CPU 设置中,必须激活该 Web 服务器。
使用 Internet 浏览器打开 Web 服务器(通过 CPU 的 IP 地址)并登录 Web 服务器菜单。只要被监视的信号(“CreateAlarm”)值为“TRUE”,CPU 就输出报警文本。










---------------------END-----------------------



每天进步一点点


Make small but daily progress







免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则