Wincc报警记录
- 格式:docx
- 大小:1.10 MB
- 文档页数:32
打开WINCC工程浏览器,点击“取消激活”按钮;
等待至项目完全退出激活后,双击打开左侧的“报警记录”打开报警记录对话框;在弹出的报警记录对话框中,点击“消息”→“导入单个消息”如下图所示;
在“导入消息"对话框中,文件选择DY.txt,模式选择“只导入新的消息”,再点击“导入"按钮,即可以开始导入新的消息;
当消息导入完成后,便弹出下图的对话框,点击“关闭”按钮即可。
导入后,增加了如下图红色区域的几条消息,检查导入的是否正确。
按下图修改归档时间,右击“消息归档”选择“属性”,弹出如下对话框,只需修改“所有归档分段的时间范围”,将周改为月。
最后点击“报警记录"窗口中的工具栏的保存按钮,保存修改,关闭“报警记录”窗口。
点击WINCC工程浏览器的“激活"按钮,再次激活项目即可。
wincc怎么查看1000条以上的记录
wincc消息记录1000条以后会覆盖,我要查看1000条以前的记录,需要怎么做或WINCC归档怎么设置呢?
最佳答案
1.报警记录只能显示1000条,是报警控件的限制,而并非没有对多于1000条的报警归档。
也就是说归档还是存在的,只是没有显示。
报警控件本身只支持显示1000条报警记录,这是出于性能上的考虑,与报警归档设置无关。
2.如果想在报警控件中看到多于1000条的报警,可以使用过滤的办法,指定相应的过滤条件,使控件中只显示满足你条件的报警,当然,也不能超过1000条。
3.关于过滤的方法,可以使用报警控件属性中“消息列表”中的“选择”,或者使用控件属性中的”MsgFilterSQL”动态化过滤条件,可以参考WinCC帮助中关于报警过滤的部分。
4、设置不同的“选择”,比如起始时间、终止时间、报警类别等。
参考技术文档《虽然在归档中有更多的消息数目,但为何归档窗口中仅显示最后的1000条消息?》:/CN/view/zh/24758403
参考资料:/service/answer/solution.asp?Q_i d=60394&cid=1032
参考资料:/service/answer/solution.aspx?Q_ id=73263&cid=1032。
按时间查询报警记录用到控件为listView,textbox,progctrl,ImageComboCtrlSubX6309X94AE1X0000X59CB_X6309X94AE1X0000X0000_X6309X94AE1X0000X005 8_X6309X94AE1X00009_OnClick(ByVal Item)Dim sProDim sDsnDim sSerDim sConDim sSqlDim oRsDim connDim oComDim oItemDim comItemDim m, n, sDim oListDim T1,T2,T3,T4,T5,T6,record1,record2Dim a,bSet oList = ScreenItems("ListView1")Set T1=ScreenItems("T1")Set T2=ScreenItems("T2")Set T6=ScreenItems("2")Set T3=ScreenItems("3")Set T4=ScreenItems("4")Set T5=ScreenItems("pro")Set record1=ScreenItems("5")Set record2=ScreenItems("6")oList.View =3oList.ListItems.ClearboItems.ClearboItems.ClearsPro = "Provider=WinCCOLEDBProvider.1;"sDsn = "Catalog=CC_HJ_07_08_19_17_28_13R;"sSer = "Data Source=.\WINCC"sCon = sPro + sDsn + sSersSql = "ALARMVIEW:Select * FROM AlgViewCHT WHERE DateTime>'"+Trim(T1.Text)+"' AND DateTime<'"+Trim(T2.Text)+"'"Set conn = CreateObject("ADODB.Connection")conn.ConnectionString = sConconn.CursorLocation = 3conn.OpenSet oRs = CreateObject("ADODB.Recordset")Set oCom = CreateObject("mand")mandType = 1Set oCom.ActiveConnection = connmandText = sSqlSet oRs = oCom.Executem =oRs.RecordCountT6.OutputValue=mWith oList.ColumnHeaders.Clear.ColumnHeaders.Add , , CStr(oRs.Fields(2).Name), 120 .ColumnHeaders.Add , , CStr(oRs.Fields(0).Name),60.ColumnHeaders.Add , , CStr(oRs.Fields(1).Name), 60 .ColumnHeaders.Add , , CStr(oRs.Fields(37).Name), 120 End WithIf (m > 0) ThenoRs.MoveLastrecord2.OutputValue=oRs.Fields(2).valueoRs.MoveFirstDo While Not oRs.EOFIf n=0 Thenrecord1.OutputValue=oRs.Fields(2).valueEnd Ifn = n + 1T5.Max=mT5.Value=ns = oRs.Fields(2).valueSet comItem=boItems.Add() comItem.Text = sSet comItem=boItems.Add() comItem.Text = sSet oItem = oList.ListItems.Add()oItem.Text = soItem.SubItems(1) = CStr(oRs.Fields(0).value) oItem.SubItems(2) = CStr(oRs.Fields(1).value) oItem.SubItems(3) = CStr(oRs.Fields(37).value)If Trim(oRs.Fields(37).value)="上限值" thena=a+1End IfT3.OutputValue=aIf Trim(oRs.Fields(37).value)="下限值" then b=b+1End IfT4.OutputValue=boRs.MoveNextLoopoRs.CloseElseEnd IfSet oRs = NothingSet conn = NothingEnd Sub。
按时间查询报警记录用到控件为listView,textbox,progctrl,ImageComboCtrlSubX6309X94AE1X0000X59CB_X6309X94AE1X0000X0000_X6309X94AE1X0000X005 8_X6309X94AE1X00009_OnClick(ByVal Item)Dim sProDim sDsnDim sSerDim sConDim sSqlDim oRsDim connDim oComDim oItemDim comItemDim m, n, sDim oListDim T1,T2,T3,T4,T5,T6,record1,record2Dim a,bSet oList = ScreenItems("ListView1")Set T1=ScreenItems("T1")Set T2=ScreenItems("T2")Set T6=ScreenItems("2")Set T3=ScreenItems("3")Set T4=ScreenItems("4")Set T5=ScreenItems("pro")Set record1=ScreenItems("5")Set record2=ScreenItems("6")oList.View =3oList.ListItems.ClearboItems.ClearboItems.ClearsPro = "Provider=WinCCOLEDBProvider.1;"sDsn = "Catalog=CC_HJ_07_08_19_17_28_13R;"sSer = "Data Source=.\WINCC"sCon = sPro + sDsn + sSersSql = "ALARMVIEW:Select * FROM AlgViewCHT WHERE DateTime>'"+Trim(T1.Text)+"' AND DateTime<'"+Trim(T2.Text)+"'"Set conn = CreateObject("ADODB.Connection")conn.ConnectionString = sConconn.CursorLocation = 3conn.OpenSet oRs = CreateObject("ADODB.Recordset")Set oCom = CreateObject("mand")mandType = 1Set oCom.ActiveConnection = connmandText = sSqlSet oRs = oCom.Executem =oRs.RecordCountT6.OutputValue=mWith oList.ColumnHeaders.Clear.ColumnHeaders.Add , , CStr(oRs.Fields(2).Name), 120 .ColumnHeaders.Add , , CStr(oRs.Fields(0).Name),60.ColumnHeaders.Add , , CStr(oRs.Fields(1).Name), 60 .ColumnHeaders.Add , , CStr(oRs.Fields(37).Name), 120 End WithIf (m > 0) ThenoRs.MoveLastrecord2.OutputValue=oRs.Fields(2).valueoRs.MoveFirstDo While Not oRs.EOFIf n=0 Thenrecord1.OutputValue=oRs.Fields(2).valueEnd Ifn = n + 1T5.Max=mT5.Value=ns = oRs.Fields(2).valueSet comItem=boItems.Add() comItem.Text = sSet comItem=boItems.Add() comItem.Text = sSet oItem = oList.ListItems.Add()oItem.Text = soItem.SubItems(1) = CStr(oRs.Fields(0).value) oItem.SubItems(2) = CStr(oRs.Fields(1).value) oItem.SubItems(3) = CStr(oRs.Fields(37).value)If Trim(oRs.Fields(37).value)="上限值" thena=a+1End IfT3.OutputValue=aIf Trim(oRs.Fields(37).value)="下限值" then b=b+1End IfT4.OutputValue=boRs.MoveNextLoopoRs.CloseElseEnd IfSet oRs = NothingSet conn = NothingEnd Sub。
报警记录在Wincc中可以组态事件的报警,组态事件报警基本上可以分为两个步骤。
1.在报警编辑器中设置报警的各种类别,包括上限下限值触发的模拟量报警,还有通过消息变量触发的报警例如:开关量的报警。
2.通过对报警控件的设置实现报警显示。
在画面编辑器中插入报警记录控件,报警控件具有很多的功能。
包括报警显示,对报警的确认,报警的自动归档,报警的查询等等。
首先组态一个模拟量报警,并通过此实例来说明状态变量,确认变量的定义及用法。
在下一个实例中说明消息变量的使用。
模拟量报警新建个项目命名为alarmtext点击创建按扭打开报警记录编辑器,我们可以看到报警记录的主画面,包括消息块,消息类别,组消息,和归档组态。
首先组态报警。
组态报警就是设置报警消息的一些内容,包括时间,日期。
报警地点,报警消息,产生报警的当前值以及报警的类别!报警消息的时间,日期对应消息块中的系统块。
报警地点,报警消息对应消息块的用户文本块。
当前值对应过程值块。
故障报警对应消息类别。
所以我们开始建立组态。
一.添加系统快。
在消息块的系统快点击右击添加/删除添加系统快我们可以看到系统已将编号,日期,时间选中。
我们还可以添加左侧的系统快。
但我们只使用编号,日期,时间选项。
点击确定按钮。
我们看到所选的系统快已经显示出来二.添加用户文本块。
用户文本块采用同样的方法添加所需的块。
我们采取默认选择的错误点和消息文本.点击确定订按钮。
为了能使报警信息显示更多内容修改消息文本和错误点的字符长度改为30.双击消息文本,错误点修改。
三.添加过程值块将过程值块中的过程值1,过程值2,过程值3添加到右侧如图。
点击确定按钮。
我们可以成功的添加过程值1. 过程值2. 过程值3.四.在消息类别中设置报警消息的颜色!设置报警的进入,离开,已确认的文本颜色,与背景颜色。
我们设置的颜色如图所示。
点击确定这样我们已经组态好了一个报警。
我们也可以使用系统向导来组态报警由于操作简单这里就不加诉说了。
winccflexible报警事件可在屏幕上显示,还可以将报警事件记录下来
注意:只有TP270、OP270及以上的HMI设备才有报警记录功能。
组态练习:
S7-300的MW0第0位、第1位分别代表1号风机故障、2号风机故障;两个故障属于错误类别,将其记录到“报警记录_1”中;
报警视图中显示“报警记录_1”的内容,同时用EXCEL查看报警记录文件的内容。
第一步:选择左边项目工具栏--通讯--连接,建立一个S7-300的连接
第二步:双击通讯下的“变量”,在变量中建立一个变量,名称为“风
机故障”,连接为“连接_1”,数据类型
“word”,地址为MW10。
如下图:
第三步:在报警管理--双击离散量报警,建立两个文本“风机故障1”与“风机故障2”,类别“错误”,
触发变量“MW10”,触发器位0与1。
(这里注意触发器位0-7表示对应为M11.0--M11.7;8-15对应为M10.0--M10.7)
第四步:历史数据--报警记录,名称“报警记录_1”;存储位置“文件-CSV(ASCII)”,路径默认,记录方法“循环记录”,记录数--自己设(这里设10),其它默认。
属性--设置--勾选“记录报警文本和出错位置”
第五步:在设置--报警类别中,记录条目下选择先前建立的变量“报警记录_1”。
仿真组态。
wincc报警编号操作日志记录WinCC是一款常用的过程监控软件,它能够实现对生产过程中的设备和系统进行监控和控制。
在生产运行过程中,可能会出现各种报警情况,为了及时发现和解决问题,需要对报警编号进行操作日志记录。
本文将从以下几个方面介绍WinCC报警编号操作日志记录的重要性和具体实施方法。
首先,WinCC报警编号操作日志记录的重要性。
对报警编号进行操作日志记录是为了方便对报警情况进行追溯和分析,以便能够更好地了解和解决生产过程中的问题。
通过对报警编号进行操作日志记录,可以追踪报警的发生时间、发生位置和报警原因等信息,为后续的问题排查和分析提供有力的依据。
同时,操作日志记录也可以作为一种重要的数据备份,以防止因系统故障或人为错误而导致的数据丢失或损坏。
其次,WinCC报警编号操作日志记录的实施方法。
WinCC提供了一些功能和工具,可以方便地对报警编号进行操作日志记录。
首先,可以通过配置WinCC系统,在报警管理设置中开启操作日志记录功能,并设置相应的记录级别。
其次,在运行过程中,当报警产生时,WinCC可以自动记录报警编号和相关信息,并将其保存到操作日志中。
此外,操作日志也可以手动输入和修改,以记录人工处理和解决报警的过程。
最后,可以通过WinCC系统提供的查询和导出功能,对操作日志进行检索和导出,以便于后续的报警分析和统计。
最后,需要注意的是,在进行WinCC报警编号操作日志记录时,应注意以下几个要点。
首先,操作日志的记录应准确、完整和规范,包括报警编号、报警描述、报警级别和处理措施等信息,以便于后续的分析和查看。
其次,操作日志的记录应及时进行,尽量避免延误和遗漏。
同时,需要确保操作日志的安全性和可靠性,避免被修改或删除。
最后,操作日志应按照时间顺序进行保存,并可设定一定的保存期限,以便于对历史数据的追溯和分析。
综上所述,对WinCC报警编号进行操作日志记录具有重要意义,可以帮助我们更好地了解和解决生产过程中的问题。
报警记录
在Wincc中可以组态事件的报警,组态事件报警基本上可以分为两个步骤。
1.在报警编辑器中设置报警的各种类别,包括上限下限值触发的模拟量报警,还有通过消
息变量触发的报警例如:开关量的报警。
2.通过对报警控件的设置实现报警显示。
在画面编辑器中插入报警记录控件,报警控件具
有很多的功能。
包括报警显示,对报警的确认,报警的自动归档,报警的查询等等。
首先组态一个模拟量报警,并通过此实例来说明状态变量,确认变量的定义及用法。
在下一个实例中说明消息变量的使用。
模拟量报警
新建个项目命名为alarmtext点击创建按扭
打开报警记录编辑器,我们可以看到报警记录的主画面,包括消息块,消息类别,组消息,
和归档组态。
首先组态报警。
组态报警就是设置报警消息的一些内容,包括时间,日期。
报警地点,报警消息,产生报警的当前值以及报警的类别!报警消息的时间,日期对应消息块中的系统块。
报警地点,报警消息对应消息块的用户文本块。
当前值对应过程值块。
故障报警对应消息类别。
所以我们开始建立组态。
一.添加系统快。
在消息块的系统快点击右击添加/删除
添加系统快我们可以看到系统已将编号,日期,时间选中。
我们还可以添加左侧的系统快。
但我们只使用编号,日期,时间选项。
点击确定按钮。
我们看到所选的系统快已经显示出来
二.添加用户文本块。
用户文本块采用同样的方法添加所需的块。
我们采取默认选择的错误点和消息文本.
点击确定订按钮。
为了能使报警信息显示更多内容修改消息文本和错误点的字符长度改为30.双击消息文本,错误点修改。
三.添加过程值块
将过程值块中的过程值1,过程值2,过程值3添加到右侧如图。
点击确定按钮。
我们可以成功的添加过程值1. 过程值2. 过程值3.
四.在消息类别中设置报警消息的颜色!
设置报警的进入,离开,已确认的文本颜色,与背景颜色。
我们设置的颜色如图所示。
点击确定
这样我们已经组态好了一个报警。
我们也可以使用系统向导来组态报警由于操作简单这里就不加诉说了。
五.添加模拟量报警,在工具栏下的附加项内勾选模拟量报警。
点击确定。
六.模拟量报警任务。
当罐的液位低于40高于80时报警。
建立变量,我们建立一个内部变量为tank无符号16位,状态变量status无符号16位。
确认变量confirm无符号16位右击模拟量报警新建报警
击确定。
建立报警的上限
设置限制值为80 死区为4。
消息编号为1
建报警的下限,死区值为2消息编号为2
点击表格窗口的编号1及上限报警的属性设置
设置上限报警参数栏的确认变量,并设置确认位为0,设置状态变量并设置状态位为0.
设置文本栏的消息文本,错误点如图所示。
点击确定按钮。
设置下限报警参数栏的确认变量,并设置确认位为1,设置状态变量并设置状态位为1 .
设置文本栏的消息文本,错误点如图所示。
点击确定按钮。
七.建立报警画面。
名为alarm编辑画面如图所示建立一个滚动条,罐,还有三个输入输出域,插入报警控件。
下图中用滚动条控制罐的液位并在I/O域中显示出来。
并设置二者的最大最小值分别为100和0.将滚动条控制罐还有输入输出域连接为变量tank.
将滚动条的动态填充为改为“是”
将过程驱动器连接变量tank
并设定不长为10
连接罐的属性
在Processl连接变量tank
在分别将状态变量和确认变量的I/O域分别连接status和confirm并将I/O域属性输出值改为二进制输出扩大输出格式的范围
更改报警控件属性。
修改“常规”属性添加窗口标题为tankalarm
在“消息列表”栏中将选中的五项添加到右侧的栏中
点击确定按钮组态完的画面如图所示
在计算机属性的启动选项中勾选报警记录运行系统,
首先说明状态变量与确认变量的含义
状态变量:状态变量里包含状态位和确认位。
状态位:用来显示消息的到来或离去。
确认位:用来显示消息到来之后确认与否。
当报警消息到来时状态位为1,确认位为1。
当报警消息离去时状态位显示0,确认位还是为1。
只有当确认报警消息之后确认位才为0. 在状态变量中状态位与确认位的位置对应关系是确定的。
如果定义状态位为第0位那么确认位就为第8位,如果定义状态位为第1位那么确认位就为第9位。
对应关系图如下。
状态位
1
0000010000000002
8
2
确认位
0000100000000012
9
2
1
确认位
状态位
确认变量:将对应消息确认位置1就会确认消息。
测试画面 点击运行按钮
首先测试上限报警将液位上调85(死区宽度为4)观察状态变量的变化与报警消息的颜色
可以看到话面报警窗口中产生了一条红色的“罐液位超出上限值”的报警,我们已经看到报警窗口中的的过程值1:对应我们定义的上限值。
过程值2:对应我们的设定的死取宽度。
过程值3:对应我们当前的液位。
看状态变量第0位为1表示报警信息已到来。
第8位为1表示报警到来但是还没有确认。
我们通过点击报警控件中的单个“确认消息”按钮来确认消
息。
我们可以看见第8位为变为0。
第0位还是为1.因为虽然已经确认了报警但是报警并没有离开。
消息颜色变成了暗色。
此时虽然已经确认了消息但是消息并没有在报警窗口中消失因为消息还没有离去。
注意:液位超限85(有死区值为4)只显示第一次超过80的那次当前值,如果液位继续生高并不会产生另外一条的报警信息。
如图
我们输入低于76(因为死区宽度为4),使消息离去观察状态变量的变化
条显示为绿色时)之后再使用“确认变量”确认报警信息的实验。
在确认变量中将“确认位”第0位置1观察现象,如上图所示输入1之后并不会使消息的到确认因为确认位的目前值为1,如果想使“确认位”为1来确认消息必须改变上一次使用该位的值即先将确认为变为0再输入1如图
输入1
我们可以看到已经确认了消息。
在报警控件中我们可以查找历史记录
下面我们看一个现象
即状态变量的第8位于第9位同时为1,因上限报警已经来了,但是下限报警并没有确认的原因。
总结:过程值1:表示报警信息的上限值后下限值。
过程值2:表示模拟量的死区
过程值3:表示模拟量的当前值。
.消息变量触发报警
消息变量:即当有报警时使消息变量中的消息位置1来触发该消息。
定义一个内部变量为message无符号16位。
创建一个消息,连接变量,编号为3消息位为2,状态变量为2
确认变量为2
编辑文本。
建立画面
定义确认按钮的事件属性将按左键将十进制4(100)给确认变量
连接消息变量的I/O域
运行画面测试
将消息变量的第2位置1.在消息变量的I/O域中输入100.可以看到产生了电动阀1的报警,状态变量的第2位于第10位分别为1.
在消息变量的I/O域中修改消息位的值输入0使报警离开对应的状态位0.
点击确认按钮
以上为消息变量的使用。