Skip to content

3.1:异常事件自动归档至数据库

场景:设备发生故障时,自动记录详细事件信息到数据库以备查询分析。
运算:当设备故障信号 == 1时,向EventLog表插入一条记录,字段包括:时间戳,设备ID,故障代码,当前压力,当前温度,操作员ID。
目的:建立完整的设备故障历史档案,便于进行可靠性分析、责任追溯和维护计划制定。

javascript
const {getVariant,executeSql,exePgSqlR,exePgSqlCUD,exeSqliteSqlR,exeSqliteSqlCUD,getCurrentOrLastValue,setVariantValue,watch,watchAlarm,table,executeDataSourceSql,sendWxTextMessage,sendWxMessage,sendDingTextMessage,sendDingMessage,alarm } = require("GlobalConfig");//头文件请勿删除
const {getFormulaGroupList,getFormulaList,delFormula,getLastDownFormula,addFormula,editFormula,downloadFormula} = require("FormulaApi");//头文件请勿删除

// 设备发生故障时,自动记录详细事件信息到数据库以备查询分析。

// 需要监听的变量
const watchKeys = ["设备故障信号"]

/**
 * 监听变量的值变化事件
 * @param {Array} names 变量名数组
 * @param {Function} callback 回调函数
 */
watch(watchKeys, (name, value) => {
    if(`设备故障信号`.value == 1){
        // EventLog表插入记录
        table('EventLog')
            .insert([{
                time:new Date().getTime(),
                deviceId: `设备id`.value ,
                code: `故障代码`.value ,
                pressure: `当前压力`.value ,
                temperature: `当前温度`.value  ,
                useId:`操作员id`.value ,
            }])
            .execute((result) => {
                if (result.success) {
                    console.log('插入成功')
                }
            })
    }
});

3.2:班次KPI自动保存

场景:每个生产班次结束时,自动汇总本班次关键绩效数据并保存。
运算:当ShiftChange信号从0变为1时,触发将变量本班产量、本班耗电量、本班合格数写入ShiftReport表的对应字段中。
目的:实现生产数据的自动化、无差错记录,为生产管理和绩效考核提供实时准确的数据基础。

javascript
const {getVariant,executeSql,exePgSqlR,exePgSqlCUD,exeSqliteSqlR,exeSqliteSqlCUD,getCurrentOrLastValue,setVariantValue,watch,watchAlarm,table,executeDataSourceSql,sendWxTextMessage,sendWxMessage,sendDingTextMessage,sendDingMessage,alarm } = require("GlobalConfig");//头文件请勿删除
const {getFormulaGroupList,getFormulaList,delFormula,getLastDownFormula,addFormula,editFormula,downloadFormula} = require("FormulaApi");//头文件请勿删除

// 设备发生故障时,自动记录详细事件信息到数据库以备查询分析。

// 需要监听的变量
const watchKeys = ["ShiftChange"]

/**
 * 监听变量的值变化事件
 * @param {Array} names 变量名数组
 * @param {Function} callback 回调函数
 */
watch(watchKeys, (name, value) => {
    if(`ShiftChange`.value == 1){
        // ShiftReport表插入记录
        table('ShiftReport')
            .insert([{
                production: `本班产量`.value ,
                consume: `本班耗电量`.value ,
                qualified: `本班合格数`.value
            }])
            .execute((result) => {
                if (result.success) {
                    console.log('插入成功')
                }
            })
    }
});

SCADA帮助文档