温 c c 的历史数据如何存储?如何制作温 c c 的历史趋势图或者报表呢?这节课我们来讲归档,什么叫归档?说白了就是过程值的数据存储。 那么要想文 cc 完成完成规档呢,我们首先得双击计算机,双击计算机的名称,点击启动,在启动这个选项里面呢,我们要勾选上谁呢?变量记录运行系统 啊,这个是必须勾选的,勾选上之后,我们点击确定,此时我们找到变量记录,右键选择打开变量记录。那么在这个变量记录这个组态对话框里面呢,我们可以看到有定时器和归档两个选项, 定时器下面有周期,时间和时序,这两个都属于定时器的范畴,只不过啊, 功能功能是一样的,只不过方法不一样。这个周期时间呢,就是目前已经定义好了五个周期,一个是以一天为基准的周期,一个是一小时一分钟,一秒五百毫秒。当然呢,我们也可以定,比如说三十秒的周期, 那这呢时间基准啊,就是一秒时间系数就是三十了啊,这是一个三十秒的周期,你也可以定义其他的, 而持续呢啊,则不一样,比如说我们想我们这个数据啊,每月的哪一天存储一次,或者每周的哪一天存储一次,比如说我们可以叫啊星期啊,或者周,那星期的 基准呢?哎,就比如说啊,这是每周的对吧?每周的周几呢啊?每周的,呃,周周一啊,或者周周四啊,每周周四,对吧?这叫持续啊,这叫持续。 然后到这块呢,我们这定时器就是其实就是决定了我们归档的周期, 什么叫归档周期呢?在这会涉及到两个关概念啊,我们一会会讲,那比如在过程值归档下面,我们右键新增过程值归档,我们要对谁归档呢?比如说对模拟量、温度、压力进行归档,对吧?那我们就可以写啊,模拟量 或者温度,对吧?我们在这呢就对温度进行归档,然后我们对温度进行归档呢,我们在这啊,单击这个温度,在右侧有 存储位置,存储位置这块啊,有两个选项,一个是硬盘,一个是主内存, 我们切记要选择硬盘,选择主内存的话,就是呢,你 cp 你,你电脑 cpu 的,电脑的内存 wincc 激活的时候,你内存是内存是不会丢的,但是 wincc 一旦啊,比如说 关了那数据就就跟我在这写这个啊,写这个 ppt 似的,我如果没有点保存啊,那你一电脑一关啊,这个我我更改的这些都丢了啊,是一样道理啊,因为他小内存,所以我们这块呢要选择硬盘, 然后进而呢点击啊,点击这个过程变量,下面我们点击这三个点,我们要找到我们要存储的一些变量,比如说我们要存储这幺二零零这个驱动下面的幺二零零占 点里面的实时数据,比如说我们要存储一次共分,对吧?然后点击确定,那么此时呢啊,在这个采集类类型这有一个周期, 非周期周期可选择,我们默认使用周期连续的啊,就在这个周期内,什么周期内啊?两个周期,一个采集周期,一个归档周期,所以采集周期呢,就是我多长时间从你的 plc 里面拿一次数据,比如说五百毫秒拿一次,那你啥时候存一次呢?比如说这个温度啊,我没必要五百毫秒存一次,反正这个数据量太大啊,我可以三十秒存一次,或者呢一分钟存一次, 那么我以后拿到的报表啊,就是一分钟一分钟的为单位的存储啊,这要归档周期。 那么像我们在画面上,比如说这个压力值,我们右键主材对话框,我们在这呢可以更新,比如说更新多长时间更新一次呢?我比如五百毫秒更新一次,对吧?这叫采集时间, 而这呢这个采集周期归档周期有两个周期啊,那这个周期选择的时候呢?就只能选择什么呢?我们在这组胎好的周期时间里面组胎好的周期了, 对不对?只能选择我们组台好的周期了,那这有个采集周期,对吧?也是啊,你选择我们组台好的这些周期, 或者系统已有的啊,这是我们主台的一个啊,叫采集啊,采集周期和归档周期啊,采集周期和归档周期。然后接下来我们再说一个啊,再说一个 做一个当前值啊,这归档的时候呢,我们要选择,对吧?我一分钟归档一次,五百毫秒采集一次,一分钟归档一次,那我归档是当前值呢?还是平均值呢?如果平均值啊,那就是一分钟之内 五百毫秒采集一次,五百毫秒采集一次,这一分钟之内的平均值。好什么总和了,最大值,最小值了,这些大家根据自己需要啊,默认是当前值啊,你说一分钟啊,我一分钟那个那刻数值是多少,我就采多少 啊,这是我们要讲的这个知识点,那么我们现在再组态啊,一次回温,一,二次功,二次回温。那如果数据量比较大的话,有没有一种快速的组态方法呢?啊?有的,怎么快速组态呢?右键变量管理,因为我们要去里面拿变量吗? 点击在新窗口打开,那我们找到幺二零站点下面的实时数据组,我们可以看到一次供压,一次供温,一次回压,一次回温,二次供压,二次供温,二次回压,二次回温。 我只找温度吧,他们没有连续,那我看看怎么排序能让他们连起来。那温度和压力的地址应该是啊,一次供温,一次回温的地址应该是连续的,那我双击这个地址,让他按地址排序,我发现啊,一次回温,二次供,二次回温,他们是连续的, 那怎么办呢?我在上面动鼠标啊,动到这个鼠标成这个四个箭头状,大家看到没有?成四个箭头状的时候呢?我按住鼠标不动,往右拖,拖到温度下面啊,大家看现在下温度下面呢,带个加号啊,松开鼠标,这样就可以进行快 快速组开了。如果比如说再把这三个也拿过来啊,这四个也拿过来,那么我也是啊,往这一拖,一松手就可以了啊,当然了,我们不需要这,不需要这几个,是不是,是不是不需要这四个呀?啊?好,我们删除掉它, 如果现在直接一次性的就建立了三个变量的规档,然后这样的规档周期啊,我们统一,比如说都是一分钟,我往下一拖就都变成一分钟了,正在处理的都是当前值,哎,我们默认都是当前值啊,比如说我一分钟啊,不利于观察。因为我们讲课吗?比如改成一秒钟, 对吧?一秒钟能往下一拖,全部改成一秒钟啊?五百毫秒踩一次。一秒钟存一次啊。存一次,那能存出多少呢啊?我们右键归档,归档组态,快速记录 和慢速变量记录。有两个变量记录啊,那什么叫快速变量记录呢?我们单击属性啊,那我们在这呢有个归档内容 啊。这个快速变量记录啊,你看不满足上述条件的所有变量记录都将记录在,都将在慢速变量记录中归答,就符合这个条件的在快速归答,不符合这个条件在慢速归答。那么就总结成一句话,小于一分钟啊。
粉丝22.8万获赞36.4万


大家好,本教程主要介绍如何实现使用 vcc unifi 的记录。本教程所用到的软件列表如下, vcc unifi 的版本 t i a poto v 十六、操作系统为 windows 十企业版 本。教程包括以下内容,一、关于记录的概述。二、变量记录的介绍。 三、规档记录显示。四、报警日志的介绍,并会演示如何实现数据报警记录,并演示具体的组态。步骤 一、关于记录的概述数据记录用于从工业系统收集和记录处理数据。 您可以使用数据日志记录来分析错误状态并记录流程。通过分析记录的过程数据,可以提取有关工厂运行状态的重要业务和技术信息 应用。您可以使用数据日志完成以下任务, 提前检测危险和故障条件。提高生产力。提高产品质量。优化维护周期。 对过程值趋势进行规当,我们可以选择对数据或者报警进行记录。数据记录用于记录工厂的过程数据。报警记录用于记录监视过程中发生的报警 信息。尽管是两种类型的规档,但是他们有着相同的属性,也可以使用相同的日志记录方法。这两种日志的结构大致相同,工作方式也大致相同,易于配置。 下面我们来看一下记录的设置和属性。在运行系统设置的存储系统中,可以选择数据库类型,变量持久性存储路径可以自定义变量持久性的存储路径, 主数据库存储路径可以自定义主数据库的存储路径。对于 pc 系统,支持的数据库类型有两种, sq letter 数据库基于文件的记录是系统 默认的数据库。 microsoft s q l 数据库是针对 p c 系统的选件。 关于日志的属性中,名称可以为日志分配唯一的名称。存储路径,存储位置决定日志存储在何处。在属性中通过存储介质和存储目录来进行定义。 哪些存储位置可用取决于 h m i 设备大小。日志的大小取决于日志的类型和所选的设置。 数据记录的大小计算方式为存储的目标数乘以每一个需要记录变量值的长度。报警记录的大小取决于数据记录的条 条数和单个条目的大小。本章节将介绍变量记录如何组态。变量记录是在 hmi 变量表编辑器中进行配置和编辑的。 首先在变量表中选择需要记录的变量,然后在编辑表中选择记录变量。 在记录变量表格中的名称一列中双击添加新记录。对新增的记录选择一个数据日志,用于存储 在记录变量选项卡中的记录模式。 unibid 一共提供了三种记录模式,用于选择变量。记录周期性按照设定的循环周期进行规档, 按需通过脚本来实现规档功能改变时,当需要记录的值发生变化的时候,进行一次规档。 对于以规当的数据的显示,本章节将介绍可供使用的控件和组态方法。 在运行过程中,可以使用趋势空间和函数趋势空间来以表格或者图形的方式显示当前值和规档值。 趋势空间是以时间变化趋势显示过程值或者规档值的空间。函数趋势空间是以过程值或者规档值表示为另一个变量的函数趋势图空间。在 配置趋势控件时,我们可以指定哪些变量需要显示。下面我们来演示如何组态数据记录,并将记录显示出来。 h m i 下滑线 tag 来自 p l c 或者 h m i 内部变量的实时值 记录。变量可以显示来自数据日志的值。趋势控件能及时显示特定窗口中记录的值。 操作员可以在运行时移动时间轴以查看日志中所需的信息。 下面我们将演示如何组态数据记录,并在运行时通过控件显示记录值。首先我们来演示如何组态变量记录。 在项目数中找到日志,左键双击日志。在右侧的主窗口中可以看到有数据日志和报警日志。数据日志是用来存储数据变量,报警日志用来存储历史报警记录 在数据日志标签下的名称一列。左键双击添加一个日志,用来记录变量。此刻我们新增了一个数据日志一, 他存储在系统默认的存储介质,也就是主数据库存储的目录。下面该日制的日制时间周期和最大日制大小,以及单个时间周期和单个最大分段大小保 保持默认的属性设置,这样一个数据日志就建立好了。下面我们在变量列表中来选择需要存储到该日志的变量。打开变量列表,显示所有变量。 在 hmi 变量中一共有三个变量,分别是变量一,变量二,变量三。这里我们以变量三为例来进行变量三的记录。 选中变量三,在下方主窗口的记录中新增变量三的变量记录,在名称一列左键双击,这样就新增了一个对变量三的记录。变量三的记录存储在刚刚在日志中新 增的数据。日志一记录模式一共有三种,分别为周期性循环进行记录,或者是按虚脚本触发的时候记录一次,或者是当变量三有改变的时候记录一次。 这里我们选择当变量三有改变的时候记录一次。我们返回日志中就可以看到我们刚刚新增的数据。日志一中已经有了变量三的记录。下面我们来演示如何在运行时显示历史数据记录。 在画面中新增一个趋势控件, 以趋势图的形式来显示变量三的历史数据。 在右侧我们已经新增了一个滑块,通过滑块来仿真变量三的改变,从而生成变量三的历史数据记录。 在左侧趋势控件的属性中,常规一类来指定该趋势控件,用来显示变量三的历史数据。 在属性趋势区域的趋势中选择数据源, 数据源的右侧单机选择数据类型。此刻我们看到分别有两个数据类型, h m i 下滑线 tag, 用来显示变量的实时 数据。 记录变量用来显示历史数据。单击记录变量,在变量中选择我们之前设定的变量三记录变量 选择完成之后,编译并下载, 打开运行画面,通过更改变量三, 可以看到在趋势空间中已经生成了变量三的历史数据趋势图。以上就是如何组态变量记录,并在运行时显示记录数据,本章节介绍报警日志如何组态 报警日志用于记录监视过程中发生的报警。我们可以使用报警日志记录来分析错误状态并记录流程。在分析报警记录时,可以提取有关工厂运行状态的重要业务和技术信息。 同时也可以将连接的 p l c 的报警记录下载下来。发生故障或超限制时,您在 h m i 警报编辑器中配置的相应报警将在运 进行时显示。每一个警报事件都会被记录下来,例如,警报从达到状态转到已确认状态,所记录的警报存储在一个由多个单段组成的循环日志中。 所有段和单个段的大小在日志设置的报警日志中定义。对于报警时间来说,采用的都是标准的 utc 格式。 之前报警章节中我们已经介绍对于报警的组态。每个报警事件都会被分配到 hmi 报警对应的报警类别。 对于报警预制的组态是按照报警类别来进行记录的。对于已经记录的报警显示,可以使用报警控件来显示 报警记录。下面我们将演示如何阻态报警记录。在项目数左侧双击日志, 在弹出的窗口中选择报警日志。在名称一列双击新增一个名称为报警日志一的日志。在 hmi 报警中,我们新增一个模拟量报警, 选择变量三, 限制值大于二十五的时候产生报警,并设定报警文本。 报警类别选择 alarm, 当然也可以根据需要选择其他的报警类别。新增完一个模拟量报警之后,我们对新增的报警做报警记录。 打开报警类别标签,找到我们刚刚组态的报警的报警类别。 alarm 在 alum 属性的日志一列双击选择刚刚在日志中新增的报警日志一, 这样我们就创建了将 alarm 报警类别进行规当的报警日志。 现在我们组态如何在画面中显示报警记录及历史报警信息?打开画面窗口, 画面中有滑块来改变变量三的值,从而触发变量三的报警产生。 在右侧选择报警控件,添加到画面中来显示变量三的报警记录。 在报警控件的属性,常规的报警员中可以筛选已记录的报警,这样该控件就会显示历史报警记录。 设定完成之后编译并下载。 打开运行画面,当前变量三还未触发报警。 滑动滑块改变变量三的值,触发报警产生。此时可以单击报警空间下方的显示和更新报警按钮, 看到报警控件已经显示报警的历史记录,并记录了报警从产生到离去的日志。 以上就是报警记录以及在运行时显示历史报警的组态。 以上就是 unifi 的中如何组态记录介绍,最后感谢大家收看本视频。

朋友们大家好,今天带来第四十三个技巧,给大家介绍一个快速所在变量归档表格的办法。在实际的项目现场,有些重要的数据啊需要被追溯,有可能追溯一个月,三个月,或者呢更长时间,我们啊可以通过变量归档来完成这个功能,然后呢我们通过这个表格 来显示数据,那么这个空间功能啊很强大,等我们呀开一期专门去介绍它。那么我们今天啊来看一下如何快速的组态这些数据,好了开始我们今天的演示。 好,我们呀一般组态的时候啊会拖过来这个 online table 这个表格空间,然后呢我们会在这个数值列这里啊新建,然后比如说我在这里新建一个,然后呢在这个位置啊选择变量名称, 然后呢把要显示的给添加过来,然后点确定,那假如说啊一个两个或者是十个八个的数量少的话,这样添加是没有任何问题的,那假如说数量一多了的话,我们这样改起来会比较麻烦。那么今天呢我教给大家一种简单的方式, 首先我们要在这个变量记录这里,把这个变量的一个注置啊给写上。假如有朋友啊看过我之前视频的话,我之前啊讲过一个我们组态的这些数据呢,都会在数据库里边有存储,那么我们打开数据库看一下, 好,我们点直接连接 好在这个数据库这里啊,像这两个一个是运行的数据库,就是后边带 r 的 一个呢是组态数据库。那我们刚才啊这些组态呢,在数据库的表里边都有体现,我们点开,然后点开表,然后呢我们找一个表叫做, 好,我们找一下,那就在这个位置就是 tags 这个表里边,我们打开。好,大家看 这个信息呢,在这个表里边有存储,那我们通过啊词汇语句把这些读过来,然后呢显示到那个表里边就可以了。那假如说我在这里呢,我再添加一个的话,大家看一下,好,比如在这写个 a, 好, 我回到这个数据库,我刷新一下, 大家看他立马就添加进来了,也就说你在这里添加的所有信息呢,在这个数据库表里边是实时更新的,我们把这个给删除。好,大家看这样呢就没了, 那我们想办法把这个注式给读出来,然后呢我们把这个变量呢和这个这相当于文件夹吧,把这俩给拼接起来,然后呢直接用一个负循环,便利到咱们这个 表格空间里边,也就是说你之后呢不用在这个表格空间里边做任何配置,我们只需要在打开画面的时候执行一段脚本就可以了,那这个脚本怎么写呢?我们开始写,在开始写之前呢,我们把这个表格空间呢,把这两个咱们添加的数字列给删除一下,好点,确定 好,我们在这个画面的空白的地方点击一下,然后呢在这个事件这里其他找到这个打开画面,就是打开画面时,我让他执行一下这个脚本,那这个脚本怎么写呢? 首先呢我要写一个 sql 语句, dm sql, 然后呢这个 sql 等于我要写一个 sql 语句,叫 s e c t select 星号,就查询这个表里边的所有数据,然后呢来自哪个表的 form, 我 们呀就查询 这个表里的数据,那这个表叫什么呢?你可以啊,直接复制过来,好粘到这里。然后呢我们呀可以复制这个写好的搜索语句呢,去这个数据库里边去查询一下,看看能不能查询出来,免得我们写错搜索语句。 好,我点击查询,大家看这个就把所有的表里的数据都给查出来了。好,我们继续写。如果看过我之前的视频的朋友,我们讲过一些对色诱鱼的一个封装,那么我们直接调用这个封装好的函数就可以了。那如果没看过的话,大家可以回翻回回回翻一下之前的视频。 好,我再定义一个定义,叫做 o r s, 就是 结果集,我写到一号里边好, set o r s, 等于,那么通过这个函数呢,我们可以啊获得一个结果集。然后呢我们呢定义一个条数的一个变量, count 好 这个变量呢,就让它接收一下我们结果集的一个条数, ctrl, 然后呢我做对这个表格空间呢,做一个引用,好进一个,比如 make ctrl, 那 么我们 set 一个 ctrl 等于什么呢?等于 空键一。好,大家看这个是对象名上是空键一, 那我们再定一个变量, dim, dim 一个 yes, 好, 我们就调用一个位置,然后这个表格的引变量, 那使用这个语句呢,就不用再用这个引变量去解出来任何属性了,我们可以啊,简化这个代码,就输一个点,把这个属性或者方法名写上就行了。首先呢,我需要 需要显示,显示的是规章属性,我们看一下规章属性,它用英文那个属性是怎么写的?位置? 好,我们呢需要对这个数据源啊,设为是规章变量,也就是我们要显示的是规章变量,那这个规章变量从哪看呢?我们点击确定,然后呢在这个数值列这里,然后点这个问号,点这个数据源。好,我们可以看它这里啊,使用这个名称啊,可以分配动态的属性,那我们直接点复制好,关闭,我们继续写代码。好点,二, 完了,它等于一,也就是显示规长变量,我们接着判断 if 如果大于零,也就是查找到了数据,那么呢我们呀就进行一个后循环, 后循环六边量在这里,然后呢我们从零开始一直查到呢,这个数减一,好,我们接着写减二一, color, c, o, u, m, a, d, d, 等于我让这个结果集呢点出来一个方法, d, s, 点这里面呢?我写三三是什么意思呢?就是查结果集的第三列,就是从这个开始,零一二三,查出这个咱们那个注式来,那么你如果不写三的话,你写这个啊, comment, 这个也可以。 好,那这里呢,我再需要用一个 trim, 让它去一下空格。 好,那这些啊,这些属性的话是怎么看呢?我们呢也可以。 好,我们可以啊,回到那个,缺少 if。 好, 那我们这里啊缺少一个 in the if。 好, 我们回到那个表格里边看一下。 好,写到这里来。好,没问题,那我们在这个数字列里点这个问号,点这个新建,大家看这个,是呢添加,也就是,也就是新增一个属性, 那么我们粘过来就是这个,那我们再继续写,那么归党变量的名称呢?这个非常重要,那也就是这个,然后呢我们可以啊复制这个属性, 然后呢直接再粘过来,前面啊别忘了加个点,那么它等于什么呢?它就等于这个 p v a 反斜线,那么这个 p v a 啊,就相当于这个相当于一个文件夹,然后它下面的一些数据加上呢,我们这个还得需要是去一下空格, 那第几列了?第零列,第零列就是第一列,我们在这个数据库里边就是这一列。 好,我们再继续写,我们为它分配一个时,时间列,时间列呢再点开,然后呢在这里啊点一下。好,时间列,这英文比较长,我们就不字不写了,免得出错。 好,第二等于什么呢?就等于十十 是点 e, 好, 我们再设置一下这个单元格的宽度。好,单元格的宽度呢?是点 y 零, color list, 我 们设置一个三十,然后呢我们让这个结果集呢继续的进行下一行的编码。 好,整个代码写完了,我们检查一下,好,没有问题。好呢,我们点确定好,我们可以试一下能不能把我们写的这些变量和这个注示名都给加载进来。 好,在开始之前呢,大家别忘了在这个计算机这里啊,这个启动,把这个变量记录啊,这个功能给记录下来,给勾选上,否则呢它是不起作用的,那我们再添加几个变量。 好,我们一,我们呀是一个 process value, 好, 让它放大一点,我们这是一的,再来一个二的。 好,这是三。 好,我们运行一下,看一下。 好,大家看,现在呢已经都读出来了。好,我们把它扩大一点。好,假如说我改一下这个数,比如二。好,大家看现在已经成功了,比如把这个三改成五十六, 好,大家看现在是没问题的,也就是你用这个办法呢,可以啊,免除,我们在这个空间里边呢,一个一个的去添加,然后这个对象名称,还有这个啊变量名称,如果呢 我后期呢又新增了一个,比如说我再新增一个,咱们看一下这个表格能不能自动添加上来,比如添一个内幕,好,这里呢我就写一下,比如说是电机一的名称, 好,我们好我们保存一下,然后呢运行 好,我们去看一下。好,大家看这个新增的这个啊,电机一的名称就列出来了,但是这个表格里为什么没有更新呢? 因为啊我们在这个常规里边打开画面的时候,我们勾选上这个开始刷新就可以了,但是这个呢这个功能呢,有可能说你后期如果数据量很大的话,你点击开始刷新的话,有可能你切换这个画面,他会卡,这个大家一定要记住。好,点击运行好,大家看现在就开始刷新了, 那么这个功能呢啊,我本人呢用的是比较的多,假如说咱们硅导的这种数据啊,如果很长的话,如果说好几百个的话, 那这个框架啊,那这样的方式啊,就有点不灵活了,那我们就需要修改啊,我们要查询的这些搜索语句,让他细化一下,比如说不让他查询所有,然后呢让他根据这个啊注示的名去分类的去查询,那这就是后期,如果需要的话,就后期啊,就需要写脚本了,那我这个视力呢,主要是破砖引玉, 那么给大家一个最基本的一个思路,那么大家可以在我这个源代码上可以修改,可以去扩展这个功能啊,那么写到这里呢,我们又发现这里呢,我们要少一个资源释放的一个功能,我们可以把这个加上。好, 假如你还怕这个里边的脚本会写错的话,还可以加一个,嗯,这个把这个这句话加上就会卡住,不会执行。加加上这句话呢,加上这句代码,他即便是出错了,他也会一直执行。 好了,这就是本讲的全部内容了,如果啊你有什么意见或者是呢批评,可以啊,在评论区评论或者呢加我视频封面的那个微信告知。好了,谢谢大家的观看,我们下期再见。


