前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Program_Alarm指令使用之我的心得

Program_Alarm指令使用之我的心得

作者头像
剑指工控
发布2021-11-09 16:14:12
1.2K0
发布2021-11-09 16:14:12
举报
文章被收录于专栏:剑指工控剑指工控

JZGKCHINA

工控技术分享平台

尊重原创 勿抄袭

勿私放其他平台

使用西门子HMI时常用的离散量报警,项目需要多少个报警就需要编辑多少个HMI报警文本。如图所示:

与原来在HMI中创建报警信息的做法相比,使用1500PLC搭配精致面板可以使用Program_Alarm指令达到快速从PLC端编辑报警文本发送至HMI,节省时间,提升效率。不需要HMI侧编写离散量报警条目如图所示:

开始调块

Program Alarm需要在程序中编程,并且每一条报警信息都要调用一个FB块并占用一个DB块,看起来费时又费力,那为什么要推出这个功能呢?确实在S7-300/400中就有这个功能,但是很少使用,一个主要的原因就是麻烦,并且占用大量的DB块资源,但是在S7-1500中这种状况得到了改善和优化。

1.不再占用更多的DB块资源,但这个块必须在FB中调用,为节省指令生成的背景DB过多,我采用了定义数组0..100多重背景的方式。利用FOR循环赋值给不同编号的指令赋值。

2.OB1中调用刚才写好的块,接下来我们要对这个块的背景DB进行操作。

3.因为前边已经使用数组0..100报警信号和数组0..100报警文本分别给数组0..100的指令赋值,所以接下来我们要对这个报警信号和报警文本操作。

4.定义UDT

5.创建全局DB

6.创建离散量报警形参块,进行形参关联

7.给离散量报警块赋值实参变量

8.在PLC侧需要指定报警文本及报警类别,HMI侧也需要勾选相同的报警类别

验证一下

好处显而易见:

  • 一个人在PLC侧就完成了,触发位和信息由自己定义,改动方便。
  • 事件驱动的信息发送。只有触发了才发送,而在HMI侧需要定期扫描,占用大量的通信资源。
  • 快速扑捉故障信号。PLC能查询到的信号都可以触发,PLC扫描周期可以在几个毫秒以内,非常快,而HMI通常是秒级的扫描,这样为了保持触发信号还需要在PLC侧编程。
  • 信息的时间同步。信息的发送以PLC的时钟作为时间标签,多个PLC可以同步,也可以采用其它时钟源直接赋值到程序块的参数上。
  • 报警信息可以采用文本列表的方式,在信息中最多可以快速添加10个附加值,可以想象的更灵活一些,附加值可以是字符串,这样可以直接将附加值作为文本发送,当然字符串可以使用不同的语言编写,这样就可以实现语言的切换了。
  • 最关键的一点是对象化的编程方式了,一个FB块对应一个受控对象,在FB块中除了有独立的控制程序还有独立的报警信息,这样可以将这个块作为一个库函数保存在企业的库中,版本也可以持续更新。

好了,功能的好坏只有使用的才知道,大家可以试一试!

提示:

相关案例下载地址的获取,

请关注“剑指工控“微信公众号后,

添加管理员,

加入剑指工控微信群后获取。

——李仁贵

2021年6月

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 剑指工控 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档