为了能在触摸屏上弹出与机器本身关联的报警信息,我们有时需要在TIA Portal项目里创建自定义的警报文本。这样,当报警发生时,屏幕就可以实时显示报警内容并保存下来,从而实现了报警信息的历史查询和可追溯性。但令人遗憾的是,无论是在搜索引擎上,西门子论坛里还是在TIA Portal帮助文件中,我们都很难找到简介明了的技术文档或者编程操作范例。
下面是我们在西门子精智面板系列中的TP700上完成的一个简单的范例,它同样也适用于精简系列面板或是高级版本的实时系统。
首先,我们需要创建三个内部的HMI标签:一个报警字(UInt)用于触发报警,一个包含登录用户名称的字符串(WString),和一个实数(Real)类型的过程值。
然后,我们来编写了一个简短的脚本用以捕获登录用户的名字,并创建一个任务以便在任何用户更改事件发生时来调用这个脚本。显然,这部分的演示是针对WinCC精智(Comfort)版本或者更高版本,因为精简面板(Basic panel)是不支持脚本编程的,但这不会影响我们的报警文本演示。下一步,我们创建几个用户,并授权它们可以登录到我们的例子中的HMI。
现在,我们来创建了一个单独的报警,用我们刚才定义的报警字中的位Bit 0来触发,并配上一句简单的静态文本,就写“Max Speed Limit Exceeded.(速度超过最高限制。)”这句好了。
现在,我们来做些必要的推演啊。嗯,我们还希望能显示这个具体的限制是多少,这样也好提示操作者。如果这个限速是不可配置的,那我们就把这个报警信息写固定就好了。如果只有少数用户,那么我们还可以会为每个用户都创建个性化的警报信息。
然而,如果用户可以动态创建而且速度限制还是一个可配置的参数,那还有没有办法创建可能出现的所有的报警消息呢。幸运的是,这个真的可以有,我们可以创建动态报警文本。
要创建动态报警文本,请选择报警列表中的告警并查看告警属性。现在,右键单击“报警文本”字段,您将看到两个选项:“插入标签字段…”和“插入文本列表字段…”
在本例中,我们使用的是“标签字段”。注意,当你选择它时,系统会弹出一个对话框,让你配置这个字段。如图所示,将使用我先前创建的进程值标签,并将其配置为以长度为3的十进制显示。正如你所看到的,它也可以在警报内直接使用文本列表,这使得你可以创建更多的动态警报。
接下来,我们来添加了一个附加的标签来显示操作员的名字。
好了,收工。现在我要设置一个快速的示例画面,画面上放置警报查看器和一些控件,用于设置进程标签和触发报警,以及显示当前登录的用户。现在,如果触发这个报警,你就可以看到这个动态生成报警文本了。