首页 > 其他分享 >基于ProDiag的监控视图-LAD篇

基于ProDiag的监控视图-LAD篇

时间:2024-04-16 22:35:01浏览次数:25  
标签:变量 LAD 报警 视图 HMI 监控 ProDiag

此篇的目的是对DroDiag的使用做一个回顾和加深。

ProDiag是一个可选插件,小于25个使用点不需要授权,否则是需要授权的,另外它只支持1500PLC。
优点:

  • 不需要组态
  • 报警随时在PLC侧修改,不影响HMI侧显示和运行
  • 监控类型比较多,而且可以自定义
  • PLC触发报警,显示可以是HMI或者是WEB
  • 每一条报警对应的程序段可以在HMI上查看到代码(LAD/FBD有效)
  • 可以显示Graph程序段
  • 报警消息比较丰富,而且可以自定义

1. ProDiag的监控设置
(非必要但可以)

在项目内,找到公共数据,展开它,找到监控设置,双击配置,打开常规,该页面就是配置监控文本和报警格式的详细配置表了。

  • 类别:分报警类别的,默认有错误,警告,信息,你也可以按照自己的想法添加更多。报警类为Acknowledagement和 No Acknowledagement,表示需要不需要确认,按照你的需求选择。

  • 子类别:他是用来分类你的报警区域的,比如说,你可以分别定义三个子类别为workshop1/workshop2/workshop3

  • 监控类:他来定义你监控的触发器,监控类型,有默认的,不想可以不用设置。

  • 中央时间戳:可以允许你定义一个时钟,以后你的所有PLC报警信息都以这个时间为时间基准。使用这个的要求是首先你要在PLC里面定义并赋值一个LDT类型的变量,其次是你要对ProDiag FB块的属性使能使用中央时间戳选项。

  • 报警文本:用来设置报警信息的格式,这个可以分配一下,当出现报警的时候报警文本的格式就是这个格式

如下图:

.监控设置的内容是应用到项目全局的,不单单是一个PLC。这些设置对大型项目和标准化项目有着重要的意义。

2. ProDiag变量监控

这里就直接实操了。

  • 创建一个PLC+HMI的系统,我用的1513F+TP1200

  • 新建一个FB,语言选择PRODIAG(含IDB)

.选择初始值采集,主要是HMI需要一个初始状态,出问题的时候能有对比(你要是不勾也行,不用这个功能而已,它的原理是将初始状态和问题状态对比,给你高亮异常的点位。)
.若先前设置了使用中央时间戳这里记得也要勾选,没有就算了。
.版本号V1.0可以最多支持250个变量,V2.0可以最多支持1000个变量

  • 新建一个程序段,监控程序线圈

  • 去到你的DB里面,右键监控变量result,操作数类型,监控的变量触发器,设置延时和C1/C2/C3触发器,也不是飞的全部设置,看你需求。

.注意ProDiag FB改成自己想要的FB
.检查一下报警文本是不是自己想要的
.这里面有个大坑(也不能说坑,是我自己没搞明白): 监控类型如果选择操作数的话,是看不了PLC代码视图的,切记

  • 对详细文本域的处理
    每个报警文本最多可以添加3个相关值,SD_4~SD_6,对应编号4/5/6,添加相关值的格式如下:
@<相关值的编号><格式>@ #字符@用于打开和关闭相关值 

HMI相关格式说明:

格式 说明
%[i]X 共i位数的十六进制数
%[i]u 共i位数的不带符号的十进制数
%[i]d 共i位数的带符号的十进制数
%[i]b 共i位数的二进制数
%[i].[y]f 共i位数的浮点数,小数点后y位
%[i]s 共i位数的ANSI字符串
%t#<文本库内容> 访问文本库

.这样警报文本就能带上你想要的关键变量信息了。

  • 文本库设置

PLC报警文本列表中,新建一条属于自己的文本列表

.可以带上文本列表条目,不满足条件的时候会输出想要的内容,比如报警文本就能详细告诉你哪个条件不满足了。

  • HMI需要变量
    • 需要一个从ProDiag的iDB中引出的State变量

.如果你去监控过这个state变量结构的话,你会发现其实代码视图的显示需要的源数据都是靠它。最后我再讲讲代码视图的实现逻辑的时候会再提到它。

  • 需要两个HMI内部变量,一个作为条件分析视图控制变量(wstring类型),一个作为内部开关量(bool)。画面布局如下:

.两个控制变量在报警视图中设置
.按钮引用bool类型的控制变量做可见性设置,按钮事件中选择激活代码视图
.prodiag概览视图中需要State变量来获取来自Prodiiag_FB的全部信息
.代码视图拖出来就行。

  • 按钮设置

    • 按钮动作事件,当按下按钮后,激活相应的代码视图

    • 按钮可见性连接到bool类型的控制变量。

  • 拖一个概览视图

    • 视图的常规过程,连接变量state
  • 拖一个代码视图

  • 拖一个条件分析视图

    • 连到代码分析视图变量(WSTRING)
  • 拖一个报警视图

    • 设置代码分析视图控制变量,(一共俩个)

.这两个变量,都是自己在HMI变量表里面新建的内部变量,它没有任何其他地方写入

  • 设置报警类型启用

.这里也有个我踩过的坑: 如果你触发的报警类别在这里没有被勾上的话是弹不出报警的

  • 仿真效果如图:

.注意右上角编号53的是个操作数报警,它是我作对比用的一个prodiag类型,它能被Prodiag抓到并产生报警,但是它产生不了代码视图的,切记

-prodiag概论视图简单解释

.名字显示的是你连接的Prodiag FB的背景DB
.类别:E表示error,W表示warning,都是你在监控设置里面设置的类别
.类型:O表示操作数,I表示互锁,都是你在建立prodiag监控时选择的。
.红色有表示现在出现的类型和类别。

3. 内在逻辑梳理
这是本篇最重要的东西,虽然可能看上面看的一头雾水,但是只要你捋清楚了这个事的内生逻辑,我相信你可以自己摸索出自己的方法。

  1. ProDiag是基于PLC推送的,所以我们需要将自己要监控的变量放在自己建立的Prodiag FB里面,因为只有被ProDiag FB管理到的监控才会被正确的记录下来。

  2. 监控变量的监控类型,互锁条件,触发条件是需要自己设置的,因为只有自己才知道自己程序里面的触发逻辑。

  3. 报警类别,报警子类别,报警确认,报警格式,文本域等需要自己去设置的原因是:如果你是一个大型项目或者一个标准化项目,报警再哪一个区域被触发,哪一个类型,是否对于维修有重大影响,是否需要现场确认,都是需要工程人员自己去思考和定义的。同理,报警格式和报警详细文本也是基于这一层意思的。如果你是做来玩,或者根本不需要详细内容,那你甚至可以不用关心这些看似枯燥又繁琐的东西。

  4. ProDiag FB关于是否选择初始值采集和使用中央时间戳的属性,完全取决于你对最后输出结果的把控和需求。

  5. 在PLC侧做完之后其实本质已经结束了,因为ProDiag是一个PLC主动推送的过程,和HMI或者WEB没有半毛钱关系,说白了,它们就是显示工具而已。(从这个角度看ProDiag的好处就是完全不会对HMI造成多大的通信负载和完全不依靠HMI的通信响应时间,因为PLC是主动端)。

  6. HMI侧首先要配置的是ProDiag概览,因为我们需要它连接来自于ProDiag FB背景DB的State结构全部内容,State存储了Prodiag推送的详细的,细节的内容。

  7. 接下来我们需要配置报警视图,我们在报警视图里面放入了两个HMI内部变量代码分析视图变量(wstring)控制变量(bool),这两个内部变量存储了报警推送过来时的文本和使能信息。

  8. 基于报警视图的内容,我们配置了条件分析视图,这个视图是解析了代码分析视图变量(wstring),让我们能在控件里面看的明白哪些条件导致的结果被触发。

  9. 然后,我们需要建立一个按钮,按钮按下的时候去激活代码视图,刷新为我们看到的LAD代码。但是我们不能再没有推送的时候去也按这个按钮,因为没有意义。所以我们使用了控制变量(bool),让按钮在报警来但的时候才能被显示和使用。

  10. 整个代码视图的思维导向基本就是这样。

4. 总结
实践才能得到自己想要的结果。
之后可能会总结ProDiag显示Graph顺序步,这个相对容易些。

标签:变量,LAD,报警,视图,HMI,监控,ProDiag
From: https://www.cnblogs.com/xiacuncun/p/18138678

相关文章

  • 哪(个)些特性功能不用于数据的查询优化?() 并行查询 索引 视图 分区
    哪(个)些特性功能不用于数据的查询优化?()并行查询索引视图分区视图并不在数据库中以存储的数据值集形式存在,而仅仅是一个给用户展示的逻辑虚表,其在数据库中底层还是以完整的数据存储。数据的查询优化策略:避免全表扫描,采用分区的形式,找到指定区域来避免全表查询。建......
  • 前端纯原生js数据监控,更新视图
    还没完善好,先记录一部分 binding.js//定义Model类,用于存储数据和监听数据变化functionModel(value=""){this._value=value;//存储数据的值this._listeners=[];//存储监听数据变化的函数}//定义Model类的set方法,用于设置数据的值Model.prototype.set......
  • 第四章 探究 FBV 视图
    第四章探究FBV视图​ 视图是Django的MTV的架构模式的V部分,主要负责处理用户请求和生成相应的响应内容,然后在页面或其他类型文档中显示。使用视图函数处理HTTP的请求,即在视图函数中定义函数,这种方法称为FBV。4.1设置响应方式​ 网站的运行原理是遵从HTTP协议,......
  • 第五章 探究 CBV 视图
    第五章探究CBV视图5.1数据显示视图​ 数据显示视图是将后台的数据展示在网页上,数据主要来自模型,一共定义了4个视图类,分别说明如下:RedirectView:用于实现HTTP重定向,默认情况下只定义GET请求的处理方法。TemplateView:视图类的基础视图,可将数据传递给HTML模版,默认情况......
  • SQL SERVER 从入门到精通 第5版 第二篇 第9章 视图的使用 读书笔记
      第9章视图的使用视图是一种常用的数据库对象,它将查询的结果以虚拟表的形式存储在数据中,视图并不在数据库中以存储数据集的形式存在.视图的结构和内容是建立在对表的查询基础之上的,和表一样包括行和列,这些行,列数据都来源于其所引用的表,并且是在引用视图过程中动......
  • 【转载】在SAP HANA中创建普通用户进行模型视图开发的权限设置
    转载自SAPComumunity模型视图是SAPHANA中一个重要的组成部分,它包括属性视图、分析视图以及计算视图。正确地使用模型视图进行开发,不仅能够在团队开发中使开发人员对业务理解能有更好的传递作用,也能够对业务场景进行加速,提高执行速度。相信读者之前对于模型视图的概念已经有了......
  • 大型场景中通过监督视图贡献加权进行多视图人物检测 Multi-View People Detection in
    Multi-ViewPeopleDetectioninLargeScenesviaSupervisedView-WiseContributionWeighting大型场景中通过监督视图贡献加权进行多视图人物检测论文urlhttps://ojs.aaai.org/index.php/AAAI/article/view/28553论文简述:这篇论文提出了一个用于大型场景中多视角人体检测......
  • 强制转换视图某个字段为某个类型的sql
    selectcast(`a`.`status`ASSIGNEDINTEGER)AS`status`,`a`.`TAGNAME`AS`TAGNAME`from(selecttruncate(`v_mes_snapshots`.`numbervalue`,0)AS`status`,`v_mes_snapshots`.`TAGNAME`AS`TAGNAME`from`mysql`.`v_mes_snapshots`where......
  • Oracle 获取视图的DDL
    version:OracleDatabase10gEnterpriseEditionRelease10.2.0.4.0通过sqlplus获取视图的DDL的两种方法先设置格式setline233pages233long9999通过all_views/dba_views视图selecttextfromdba_viewswhereview_name='V_$DATABASE';TEXT-------------......
  • MySQL View 视图
    拓展阅读MySQLViewMySQLtruncatetable与delete清空表的区别和坑MySQLRulermysql日常开发规范MySQLdatetimetimestamp以及如何自动更新,如何实现范围查询MySQL06mysql如何实现类似oracle的mergeintoMySQL05MySQL入门教程(MySQLtutorialbook)MySQL04-E......