Wincc报警记录
(完整版)wincc报警记录修改技巧

打开WINCC工程浏览器,点击“取消激活”按钮;
等待至项目完全退出激活后,双击打开左侧的“报警记录”打开报警记录对话框;在弹出的报警记录对话框中,点击“消息”→“导入单个消息”如下图所示;
在“导入消息"对话框中,文件选择DY.txt,模式选择“只导入新的消息”,再点击“导入"按钮,即可以开始导入新的消息;
当消息导入完成后,便弹出下图的对话框,点击“关闭”按钮即可。
导入后,增加了如下图红色区域的几条消息,检查导入的是否正确。
按下图修改归档时间,右击“消息归档”选择“属性”,弹出如下对话框,只需修改“所有归档分段的时间范围”,将周改为月。
最后点击“报警记录"窗口中的工具栏的保存按钮,保存修改,关闭“报警记录”窗口。
点击WINCC工程浏览器的“激活"按钮,再次激活项目即可。
WINCC归档、报警记录、曲线的操作

如下左图所示添加了一个新的消息类别“Message class 3”,右键属性可以在 “类别名称”栏里修改名称。点击“确认”栏可以定义确认属性,如右图所示。
在窗口栏里点击刚才建立的类别右键点击“添加删除消息类型”如右图点击“→” 即可添加。
如下左图所示对刚才已建立的消息类型右键点击属性可以更改名称,对消息到达、离开的 颜色可以定义。 下面右图是消息块的设置。消息块包括系统块、用户文本块、过程值块。 系统块可以添加日期、时间、序号等。
如果建立一个新的报表,上述设置完后需要将画面和报警记录里归档连 接起来。 双击画面弹出如下属性控制框。
点击“数据准备”栏里“选择”然后出现下面画面。将所建报表画面所对应的消 息类别前面方框打勾。
点击控制属性的“工具栏”一项出现如下所示画面,参照图示看各个相 是否选上。
报警记录内消息类别的添加设置: 如下左图所示在窗口内点击“消息类别”,窗口右边会出现已建类别,右键点击 “添加/删除类别”出现右图所示对话框,点击“→”可以新添加一个见下页所 示。
下面左图所示是用户文本块的定义,可以按照图示方法添加并设置其属性。右图 所示为过程值块的添加设置。
曲线的添加设置方法
• • • 双击图形编辑器,打开趋势画面如下图新建一条曲线并链接变量如下图: 打开画面任意双击一条曲线的坐标,可弹出图中标记处的控件属性对话框 点击图中方框标记的“+”号可以添加新的一条曲线,在“名称”栏里可以取 个名字,“颜色”栏里可以定义颜色,“可见”方框前可以打钩表示显示这 条曲线,反之隐藏曲线。在“选择归档/变量”下点击选择按钮连接变量(前 提是在变量记录归档内已添加好归档变量)。在“时间轴”可以设置日期, “数值轴”可以定义坐标刻度。设置完后点击应用,确定。
wincc怎么查看1000条以上的记录

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。
WINCC报警变量记录数据查询方法

按时间查询报警记录用到控件为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报警变量记录数据查询方法

按时间查询报警记录用到控件为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查询历史报警记录,归档数据

问题补充:编号 就是系统块里边那个编号(就是第一列) 我用标准函数AXC_SetFilter("操作记录.pdl","控件1",&Filter,&Error)来设置过滤器。明明把过滤器的编号开始和结束位置设置好了(我看了的确实设置好了的)
// Message number to
Filter.dwMsgNr[1] = GetTagWord("end");
我测试的也没有问题。
注意检查你的Tag变量的数据类型。
////////////////////////////具体说明参见Wincc系统帮助.
AXC_SetFilter example
//Reset the filter struct
memset( &Filter, 0, sizeof( MSG_FILTER_STRUCT ) );
//Set the filter name
strcpy( Filter.szFilterName, "控件1");
// Choose selection elements
Filter.dwFilter = MSG_FILTER_NR_FROM | MSG_FILTER_NR_TO;
// Message number from
Filter.dwMsgNr[0] = 130;
Wincc报警文本记录

报警记录在Wincc中可以组态事件的报警,组态事件报警基本上可以分为两个步骤。
1.在报警编辑器中设置报警的各种类别,包括上限下限值触发的模拟量报警,还有通过消息变量触发的报警例如:开关量的报警。
2.通过对报警控件的设置实现报警显示。
在画面编辑器中插入报警记录控件,报警控件具有很多的功能。
包括报警显示,对报警的确认,报警的自动归档,报警的查询等等。
首先组态一个模拟量报警,并通过此实例来说明状态变量,确认变量的定义及用法。
在下一个实例中说明消息变量的使用。
模拟量报警新建个项目命名为alarmtext点击创建按扭打开报警记录编辑器,我们可以看到报警记录的主画面,包括消息块,消息类别,组消息,和归档组态。
首先组态报警。
组态报警就是设置报警消息的一些内容,包括时间,日期。
报警地点,报警消息,产生报警的当前值以及报警的类别!报警消息的时间,日期对应消息块中的系统块。
报警地点,报警消息对应消息块的用户文本块。
当前值对应过程值块。
故障报警对应消息类别。
所以我们开始建立组态。
一.添加系统快。
在消息块的系统快点击右击添加/删除添加系统快我们可以看到系统已将编号,日期,时间选中。
我们还可以添加左侧的系统快。
但我们只使用编号,日期,时间选项。
点击确定按钮。
我们看到所选的系统快已经显示出来二.添加用户文本块。
用户文本块采用同样的方法添加所需的块。
我们采取默认选择的错误点和消息文本.点击确定订按钮。
为了能使报警信息显示更多内容修改消息文本和错误点的字符长度改为30.双击消息文本,错误点修改。
三.添加过程值块将过程值块中的过程值1,过程值2,过程值3添加到右侧如图。
点击确定按钮。
我们可以成功的添加过程值1. 过程值2. 过程值3.四.在消息类别中设置报警消息的颜色!设置报警的进入,离开,已确认的文本颜色,与背景颜色。
我们设置的颜色如图所示。
点击确定这样我们已经组态好了一个报警。
我们也可以使用系统向导来组态报警由于操作简单这里就不加诉说了。
winccflexible2008组态报警记录

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”。
仿真组态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
报警记录
在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.
点击确认按钮
以上为消息变量的使用。