烟草生产线故障点采集方法及系统与流程

文档序号:32050767发布日期:2022-11-03 09:02阅读:157来源:国知局
烟草生产线故障点采集方法及系统与流程

1.本发明涉及烟草生产线技术领域,尤其涉及一种烟草生产线故障点采集方法及系统。


背景技术:

2.烟草行业打叶复烤生产线、制丝生产线一般都采用plc控制,并大量使用隔离开关、限位开关参与控制,plc通过检测隔离开关辅助触点、限位开关状态作为控制设备启停的条件。
3.生产过程中隔离开关辅助触点或限位开关一旦出现动作,将使其本身及上游设备停机,同时人机界面通过采集到的报警量变化呈现出相应的报警。由于触点长期使用后变形或接触点缺失、触点表面出现碳化膜或尘土附着在接触点上造成接触不良都会引起设备停机影响正常生产。甚至出现触点性能下降后出现瞬间断开又接通的情况,由于传统的组态软件扫描周期较长,如wincc-flexible最短采样周期为100毫秒,wincc最短采样周期为250毫秒,无法与plc扫描循环周期同步,此时会出现plc控制设备停机,但人机界面未采集到触点状态变化信息即无报警的情况,造成设备维护人员无法判断故障原因。


技术实现要素:

4.为解决烟草生产线由于隔离开关辅助触点接触不良引起的设备异常停机问题,本发明提出了一种烟草生产线故障点采集方法及系统,主要基于异或运算的生产线故障点采集方法,并基于此开发故障点采集系统精确捕捉生产线关键点的数字量变化,实现设备异常停机的原因分析与预警。
5.其具体采用以下技术方案:一种烟草生产线故障点采集方法,其特征在于:首先在plc层构建数字量变化采集程序将plc系统的数字量变化记录存于db块,然后通过采集软件将plc中db块数据采集并存于数据库,最后将数据以web网页的形式展现。
6.进一步地,在plc程序执行阶段将输入映像寄存器读入数据用于逻辑运算的过程中将读入数据进行异或运算并将结果写到db块中。
7.进一步地,所述db块包含10个udt214的数据类型作为存储记录的队列;采用基于异或逻辑运算记录数字量变化瞬时信息,原理程序如下:ai0.0//输入点i0.0xm0.0//i0.0上一扫描周期的状态=m0.1//i0.0发生变化时产生脉冲ai0.0//输入点i0.0=m0.0//将输入点i0.0存于m0.0用于下一扫描周期运算其中,m0.1用于触发db214进行队列记录操作;采用fc189程序读取输入点状态与设备编号,并将数据写入数据块db189;
fc189程序循环读取数据块db189中点位最新状态与上一周期状态,经过异或运算后将运算结果写入数据块db189中;fc189程序将点位最新状态覆盖上一周期状态,用于下一周期运算;采用fc214程序读取plc系统时间并存于临时存储区;fc214程序循环读取数据块db189中异或运算结果点位;fc214程序将读取的异或运算结果点位用于触发将系统时间、数据块db189中存储的点位最新状态与设备编号、工段编号、事件类型写入数据块db214并将数据进行队列推送;数据块db214存储包括所监视点位状态发生变化的时间、最新状态与设备编号、工段编号、事件类型的详细记录。
8.进一步地,数据采集程序使用开源驱动库libnodave连接plc,读取plc数据块db214并将数据逐条进行解析转化为适合于sql server数据库的格式信息之后发送至数据库;所述数据库接收到数据后,由触发器判断所插入数据是否为最新数据,若为最新数据则将数据记录到事件详细信息表,否则不予记录。
9.进一步地,将数据直接写入工段字典表segmentdict与事件类型字典表eventclassdict;而对于位置字典表positiondict则采用自动添加数据的方式追加数据。
10.进一步地,web网页包括事件速览、事件管理、数据字典管理、故障率统计、事件统计、用户管理的功能;所述事件速览用于未登陆用户进行有限的事件记录浏览,用户登陆后通过事件管理对记录进行操作;数据字典页面用于对自动生成的位置字典表添加中文位置描述;故障率统计页面用于实现选定时间段的故障率统计;事件统计页面用于实现对位置字典中每个对应点的动作次数进行统计排序与维修后进行清零操作。
11.以及,一种烟草生产线故障点采集系统,基于以上烟草生产线故障点采集方法,其特征在于:包括:plc程序、数据采集程序、web页面三个部分;所述plc程序用于采集并记录数字量状态及变化,写入生产线各工段主控plc中,包括:铺叶段plc、预处理段plc、打叶段plc、复烤段plc和打包段plc;所述数据采集程序运行于能与各工段plc进行通信的计算机上,用于读取plc数据并将数据写入数据库;所述数据库与数据采集软件和web服务器进行通信;所述web页面读取数据库数据并展示为可视化界面。
12.相比于现有技术,本发明及其优选方案通过信息化技术与工控技术相融合开发此系统有效地解决了传统人机界面无法精确采集到报警信号的问题,实现对故障点的准确定位,将生产线各工段监控点统合到该系统,方便管理人员快速了解全厂生产设备状态乃至故障点位,避免了信息孤岛,实现生产设备关键点在线监测及故障诊断,为推动数字化在生产线运用奠定了良好基础。
附图说明
13.下面结合附图和具体实施方式对本发明进一步详细的说明:
图1为本发明实施例系统架构示意图。
14.图2为本发明实施例db块数据存储方案示意图。
15.图3为本发明实施例读取输入点状态并进行异或运算后数据存储方案示意图。
16.图4为本发明实施例数据库的数据采集流程示意图。
17.图5为本发明实施例数据直接写入工段字典表流程示意图。
18.图6为本发明实施例将数据库中表进行连接后的视图查询结果示意图。
19.图7为本发明实施例web网页功能呈现示意图。
20.图8为本发明实施例闪断采集和记录实例示意图。
21.图9为本发明实施例电机隔离开关辅助触点断开采集和记录实例示意图。
22.图10为本发明实施例工业网络故障采集和记录实例示意图。
具体实施方式
23.为让本专利的特征和优点能更明显易懂,下文特举实施例,并配合附图,作详细说明如下:本实施例提供的系统设计以西门子s7-300/400 plc为基础,结合c#、.net平台、sql server进行开发,首先在plc层构建数字量变化采集程序将plc系统的数字量变化记录存于db块,然后通过c#开发的采集软件将plc中db块数据采集并存于sql server数据库,最后通过asp.net开发网站将数据以网页形式展现。
24.经测试,该系统能精确采集plc系统的数字量变化,如隔离开关辅助触点、限位开关、网络节点等的变化,通过这些数字量变化记录可实现快速分析引起设备异常停机原因。可为流水生产线电气故障快速定位提供分析依据,提高维修效率。
25.为解决现有技术存在的问题,本实施例以打叶复烤生产线为改进对象,根据流水生产线特点设计基于异或运算的生产线故障点采集方法,并基于此开发故障点采集系统,确保对数字量变化的精确采集,实现维修人员对故障点的快速定位,从而降低生产故障频次和生产停滞时长,提高产品质量。
26.1 系统设计1.1设计思路plc控制原理与扫描周期:plc以扫描方式将所有输入端的输入信号状态(on/off状态)读入到输入映像寄存器中寄存,称为对输入信号的采样。接着进入程序执行阶段,plc对程序按顺序进行扫描,每扫描到一条指令时所需要的输入状态或其他元素的状态,分别由输入映像寄存器或输出映像寄存器中读入,然后进行相应的逻辑或算术运算,运算结果再存入专用寄存器。若执行程序输出指令时,则将相应的运算结果存入输出映像寄存器。在所有指令执行完毕后,输出映像寄存器中的状态就是欲输出的状态。在输出刷新阶段将其转存到输出锁存电路,再经输出端子输出信号驱动用户输出设备,这就是plc的实际输出。plc重复地执行上述三个阶段,每重复一次就是一个工作周期(或称扫描周期)。
27.因此,本发明的主要设计包括:首先,考虑plc运行分为对输入信号的采样、程序执行、输出刷新三个阶段进行循环工作,为使影响设备异常停机的信号不遗漏地被记录,在程序执行阶段将输入映像寄存器读入数据用于逻辑运算的过程中将读入数据进行异或运算并将结果写到db块中。
28.接着,将plc的db块数据发送到数据库中保存。
29.最后,将数据库数据以web网页形式展示为直观的信息界面。
30.1.2总体架构由于plc无法直接将数据写入数据库服务器,数据库也无法从plc读取数据,要实现将plc数据记录到数据库必须通过开发数据采集软件;同时要实现将数据库数据以友好直观的方式展现给管理人员则必须通过网页或运用窗口形式。因此该系统设计包含plc层程序、数据采集程序、web页面三个部分组成,如图1所示。其中,plc程序写入生产线各工段主控plc中,包括铺叶段plc、预处理段plc、打叶段plc、复烤段plc、打包段plc;数据采集软件运行于能与各工段plc进行通信的计算机上;数据库软件与数据采集软件、web服务器进行通信。
31.1.3plc程序设计1.3.1db块结构设计考虑到影响生产线停机的类型(后续称为“组别”)包含隔离开关、电源开关、启动器保护、急停按钮、profinet网络、profibus-dp网络等多种类型,每个类型含有多个点位,设计包含“事件时间”、“工段号”、“机器号”、“组别”、“状态”等数据的udt数据类型,如图2所示(用户自定义数据类型udt214),db数据块(以下用编号db214)包含10个udt214的数据类型作为存储记录的队列。
32.1.3.2fc功能设计为了高效采集数据且避免大量重复数据影响系统负荷,采用基于异或逻辑运算记录数字量变化瞬时信息,原理程序如下:ai0.0//输入点i0.0xm0.0//i0.0上一扫描周期的状态=m0.1//i0.0发生变化时产生脉冲ai0.0//输入点i0.0=m0.0//将输入点i0.0存于m0.0用于下一扫描周期运算其中,m0.1可用于触发db214进行队列记录操作。
33.采用fc189程序读取输入点状态与设备编号,并将数据写入数据块db189;进一步地,fc189循环读取数据块db189中点位最新状态与上一周期状态,经过异或运算后将运算结果写入数据块db189中;进一步地,fc189将点位最新状态覆盖上一周期状态,用于下一周期运算;进一步地,fc214读取plc系统时间并存于临时存储区;进一步地,fc214循环读取数据块db189中异或运算结果点位;进一步地,fc214将读取的异或运算结果点位用于触发将系统时间、数据块db189中存储的点位最新状态与设备编号、工段编号、事件类型写入数据块db214并将数据进行队列推送;进一步地,数据块db214存储包括所监视点位状态发生变化的时间、最新状态与设备编号、工段编号、事件类型的详细记录。
34.以监视叶片复烤段3台电机隔离开关、电机保护开关为例,编写fc189读取输入点状态并进行异或运算后将结果写到数据块db189;fc214循环读取db189数据并依照逻辑将
记录写到db214。
35.其中,fc189程序如下:
ꢀꢀꢀaꢀꢀꢀꢀꢀiꢀꢀꢀꢀꢀ
20.2
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//m531隔离开关
ꢀꢀꢀ
=
ꢀꢀꢀꢀꢀ
db189.dbx
ꢀꢀꢀꢀ
0.0
ꢀꢀꢀaꢀꢀꢀꢀꢀiꢀꢀꢀꢀꢀ
20.3
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//m531电机保护开关
ꢀꢀꢀ
=
ꢀꢀꢀꢀꢀ
db189.dbx
ꢀꢀꢀꢀ
0.4
ꢀꢀꢀ
l
ꢀꢀꢀꢀꢀ
5.310000e+002
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//m531编号转为数字531.0
ꢀꢀꢀ
t
ꢀꢀꢀꢀꢀ
db189.dbd
ꢀꢀꢀꢀ2ꢀꢀꢀaꢀꢀꢀꢀꢀiꢀꢀꢀꢀꢀ
20.4
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//m532隔离开关
ꢀꢀꢀ
=
ꢀꢀꢀꢀꢀ
db189.dbx
ꢀꢀꢀꢀ
6.0
ꢀꢀꢀaꢀꢀꢀꢀꢀiꢀꢀꢀꢀꢀ
20.5
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//m532电机保护开关
ꢀꢀꢀ
=
ꢀꢀꢀꢀꢀ
db189.dbx
ꢀꢀꢀꢀ
6.4
ꢀꢀꢀ
l
ꢀꢀꢀꢀꢀ
5.320000e+002
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//m532编号转为数字532.0
ꢀꢀꢀ
t
ꢀꢀꢀꢀꢀ
db189.dbd
ꢀꢀꢀꢀ
8a
ꢀꢀiꢀꢀꢀꢀꢀ
20.6
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//m533-1隔离开关
ꢀꢀꢀ
=
ꢀꢀꢀꢀꢀ
db189.dbx
ꢀꢀꢀꢀ
12.0
ꢀꢀꢀaꢀꢀꢀꢀꢀiꢀꢀꢀꢀꢀ
20.7
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//m533-1电机保护开关
ꢀꢀꢀ
=
ꢀꢀꢀꢀꢀ
db189.dbx
ꢀꢀꢀꢀ
12.4
ꢀꢀꢀ
l
ꢀꢀꢀꢀꢀ
5.330100e+002
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//m533-1编号转为数字533.01
ꢀꢀꢀ
t
ꢀꢀꢀꢀꢀ
db189.dbd
ꢀꢀꢀꢀ
14
ꢀꢀꢀ
opn
ꢀꢀꢀ
db
ꢀꢀꢀ
189
ꢀꢀꢀ
lar1
ꢀꢀ
p#dbx 0.0
ꢀꢀꢀ
l
ꢀꢀꢀꢀꢀ
3_0b:t
ꢀꢀꢀꢀ
#loopcounterb
ꢀꢀꢀaꢀꢀꢀꢀꢀ
dbx [ar1,p#0.0]
ꢀꢀꢀ
x
ꢀꢀꢀꢀꢀ
dbx [ar1,p#0.1]
ꢀꢀꢀ
=
ꢀꢀꢀꢀꢀ
dbx [ar1,p#0.2]
ꢀꢀꢀaꢀꢀꢀꢀꢀ
dbx [ar1,p#0.4]
ꢀꢀꢀ
x
ꢀꢀꢀꢀꢀ
dbx [ar1,p#0.5]
ꢀꢀꢀ
=
ꢀꢀꢀꢀꢀ
dbx [ar1,p#0.6]
ꢀꢀꢀaꢀꢀꢀꢀꢀ
dbx [ar1,p#0.0]
ꢀꢀꢀ
=
ꢀꢀꢀꢀꢀ
dbx [ar1,p#0.1]
ꢀꢀꢀaꢀꢀꢀꢀꢀ
dbx [ar1,p#0.4]
ꢀꢀꢀ
=
ꢀꢀꢀꢀꢀ
dbx [ar1,p#0.5]
ꢀꢀꢀ
+ar1
ꢀꢀ
p#6.0
ꢀꢀꢀ
l
ꢀꢀꢀꢀꢀ
#loopcounterb
ꢀꢀꢀ
loop
ꢀꢀ
_0b上述db189数据块用于存储fc189运算结果,包含3个udt189的数据类型,udt189定义如图3所示。
[0036]
fc214程序如下:
ꢀꢀꢀꢀꢀꢀ
call
ꢀꢀ
sfc 1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//读取系统时钟
ꢀꢀꢀꢀꢀꢀ
ret_val:=#tempint
ꢀꢀꢀꢀꢀꢀ
cdt:=#current_sys_date_time
ꢀꢀꢀꢀꢀꢀ
l
ꢀꢀꢀꢀꢀ
31
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//将复烤段工段号31写入数据块
ꢀꢀꢀꢀꢀꢀ
t
ꢀꢀꢀꢀꢀ
db214.dbw 8
ꢀꢀꢀꢀꢀꢀ
opn
ꢀꢀꢀ
di 189
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//打开数据块db189
ꢀꢀꢀꢀꢀꢀ
lar1
ꢀꢀ
p#dbx 0.0
ꢀꢀꢀꢀꢀꢀ
l
ꢀꢀꢀꢀꢀ3ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//设置循环次数为3_0b:
ꢀꢀ
t
ꢀꢀꢀꢀꢀ
#loopcounterb
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
dix [ar1,p#0.2]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//读位a取异或结果
ꢀꢀꢀꢀꢀꢀ
=
ꢀꢀꢀꢀꢀ
#mqs_changed
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//隔离开关有动作
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
dix [ar1,p#0.6]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//读位b取异或结果
ꢀꢀꢀꢀꢀꢀ
=
ꢀꢀꢀꢀꢀ
#qf_changed
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//电机保护开关有动作
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
dix [ar1,p#0.1]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//点位a最新状态
ꢀꢀꢀꢀꢀꢀ
=
ꢀꢀꢀꢀꢀ
#mqs_new
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//隔离开关最新状态
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
dix [ar1,p#0.5]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//点位b最新状态
ꢀꢀꢀꢀꢀꢀ
=
ꢀꢀꢀꢀꢀ
#qf_new
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//电机保护开关最新状态//以下为扫描到隔离开关动作时的队列操作
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
#mqs_changed
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
#mqs_new
ꢀꢀꢀꢀꢀꢀsꢀꢀꢀꢀꢀ
db214.dbx 16.0
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
#mqs_changed
ꢀꢀꢀꢀꢀꢀ
call
ꢀꢀ
sfc 20
ꢀꢀꢀꢀꢀꢀ
srcblk :=#current_sys_date_time
ꢀꢀꢀꢀꢀꢀ
ret_val:=#tempint
ꢀꢀꢀꢀꢀꢀ
dstblk :="even recoder".evenrecoder0.date_time
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
#mqs_changed
ꢀꢀꢀꢀꢀꢀ
l
ꢀꢀꢀꢀꢀ
did [ar1,p#2.0]
ꢀꢀꢀꢀꢀꢀ
t
ꢀꢀꢀꢀꢀ
db214.dbd 10a
ꢀꢀꢀꢀꢀ
#mqs_changed
ꢀꢀꢀꢀꢀꢀ
l
ꢀꢀꢀꢀꢀ
l#2
ꢀꢀꢀꢀꢀꢀ
t
ꢀꢀꢀꢀꢀ
db214.dbw 14
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
#mqs_changed
ꢀꢀꢀꢀꢀꢀ
call
ꢀꢀ
sfc 20
ꢀꢀꢀꢀꢀꢀ
srcblk :="even recoder".evenrecoder0
ꢀꢀꢀꢀꢀꢀ
ret_val:=#tempint
ꢀꢀꢀꢀꢀꢀ
dstblk :="even recoder".evenrecoder1
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
#mqs_changed
ꢀꢀꢀꢀꢀꢀrꢀꢀꢀꢀꢀ
db214.dbx 16.0//以下为扫描到电机保护开关动作时的队列操作
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
#qf_changed
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀ
#qf_new
ꢀꢀꢀꢀꢀꢀsꢀꢀꢀꢀꢀ
db214.dbx 16.0
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
#qf_changed
ꢀꢀꢀꢀꢀꢀ
call
ꢀꢀ
sfc 20
ꢀꢀꢀꢀꢀꢀ
srcblk :=p#db214.dbx20.0 byte 160
ꢀꢀꢀꢀꢀꢀ
ret_val:=#tempint
ꢀꢀꢀꢀꢀꢀ
dstblk :=p#db214.dbx40.0 byte 160
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
#qf_changed
ꢀꢀꢀꢀꢀꢀ
call
ꢀꢀ
sfc 20
ꢀꢀꢀꢀꢀꢀ
srcblk :=#current_sys_date_time
ꢀꢀꢀꢀꢀꢀ
ret_val:=#tempint
ꢀꢀꢀꢀꢀꢀ
dstblk :="even recoder".evenrecoder0.date_time
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
#qf_changed
ꢀꢀꢀꢀꢀꢀ
l
ꢀꢀꢀꢀꢀ
did [ar1,p#2.0]l
ꢀꢀꢀꢀꢀꢀ
t
ꢀꢀꢀꢀꢀ
db214.dbd 10
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
#qf_changed
ꢀꢀꢀꢀꢀꢀ
l
ꢀꢀꢀꢀꢀ
l#3
ꢀꢀꢀꢀꢀꢀ
t
ꢀꢀꢀꢀꢀ
db214.dbw 14
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
#qf_changed
ꢀꢀꢀꢀꢀꢀ
call
ꢀꢀ
sfc 20
ꢀꢀꢀꢀꢀꢀ
srcblk :="even recoder".evenrecoder0
ꢀꢀꢀꢀꢀꢀ
ret_val:=#tempint
ꢀꢀꢀꢀꢀꢀ
dstblk :="even recoder".evenrecoder1
ꢀꢀꢀꢀꢀꢀaꢀꢀꢀꢀꢀ
#qf_changed
ꢀꢀꢀꢀꢀꢀrꢀꢀꢀꢀꢀ
db214.dbx 16.0+ar1
ꢀꢀ
p#6.0
ꢀꢀꢀꢀꢀꢀ
l
ꢀꢀꢀꢀꢀ
#loopcounterb
ꢀꢀꢀꢀꢀꢀ
loop
ꢀꢀ
_0b。
[0037]
1.4 数据采集程序设计如图4所示,数据采集程序使用开源驱动库libnodave连接plc,读取plc数据块db214并将数据逐条进行解析转化为适合于sql server数据库的格式信息之后发送至数据库。
[0038]
数据库接收到数据后,由触发器判断所插入数据是否为最新数据,若为最新数据则将数据记录到事件详细信息表,否则不予记录。
[0039]
1.5 开发网站本实施例采用bs(浏览器
‑‑‑
服务器)结构实现信息展示
1.5.1 数据库设计数据采集程序只将plc数据写入数据库,为使web页面更为直观展示数据,数据库除了需要主要的数据记录表(eventrecord)之外还需要工段字典表(segmentdict)、事件类型字典表(eventclassdict)、位置字典表(positiondict)等。因为生产线工段与所需采集的事件类型已固定且数据量小,所以在设计数据库时将数据直接写入工段字典表(segmentdict)与事件类型字典表(eventclassdict)。而数据量较大的位置字典表则采用自动添加数据方式追加数据,流程图如图5所示。
[0040]
最终,实现将数据库中表进行连接后的视图查询结果如图6所示。
[0041]
1.5.2网页设计如图7所示,本实施例提供的web网页包含事件速览、事件管理、数据字典管理、故障率统计、事件统计、用户管理等功能。
[0042]
事件速览用于未登陆用户进行有限的事件记录浏览;用户登陆后通过事件管理可对记录进行操作,如添加事件原因描述;在数据字典页面可对自动生成的位置字典表添加中文位置描述;故障率统计页面可实现选定时间段的故障率统计;事件统计页面可实现对位置字典中每个对应点的动作次数进行统计排序与维修后进行清零操作。搜索条可实现按时间段、工段、事件类型及关键字进行搜索。
[0043]
2 应用效果实例1:如图8所示,02:41:28.723预处理工段m91电机隔离开关辅助触点断开,02:41:28.753预处理工段m91电机隔离开关辅助触点接通,其断开时间仅为30毫秒,该情形即为“闪断”,其断开时间远小于组态软件的扫描周期,组态软件无法将其采集并报警,但是该触点的断开却会造成生产线停机。
[0044]
实例2:如图9所示:03:52:34.193
‑ꢀ
03:52:34.263打叶工段m58电机隔离开关辅助触点断开、05:26:38.983-05:26:39.053打叶工段m181电机隔离开关辅助触点断开,断开时长均为一个plc循环扫描周期70毫秒,这都是组态软件无法采集的故障。
[0045]
实例3:如图10所示:14:12预处理工段由于工业网络故障造成设备停机,根据软件记录可知断网的设备,再结合网络拓扑图很容易确定是由于两台交换机之间的光纤连接出现了闪断,对光纤交换机进行处理后设备恢复正常。
[0046]
3 结论通过信息化技术与工控技术相融合开发此系统有效地解决了传统人机界面无法精确采集到报警信号的问题,实现对故障点的准确定位,将生产线各工段监控点统合到该系统,方便管理人员快速了解全厂生产设备状态乃至故障点位,避免了信息孤岛,实现生产设备关键点在线监测及故障诊断,为推动数字化在生产线运用奠定了良好基础。
[0047]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
[0048]
本专利不局限于上述最佳实施方式,任何人在本专利的启示下都可以得出其它各种形式的烟草生产线故障点采集方法及系统,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本专利的涵盖范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1