通过文件或者数据库获取检验结果

  • 中间层支持定时读取指定类型的检验结果文件到数据库中,以便后续报工或者包装时判断品质状况

  • 当前支持从Excel文件,文本文件,CSV文件,数据库中读取检验结果

文件配置

在中间层appsettings.json文件OpenFlowSettings下增加配置内容:

"OpenFlowApiSettings": {
   ... ,
   ... ,
   ... ,     //其他的配置,配置之间用**逗号**分隔开
   "TimingReadFile": {         //配置自动读取文件
        "IntervalMinutes": 1,    //定时任务执行周期,单位是分钟 ,分钟与下面的秒不用同时配置,可以只保留一个
        "IntervalSeconds": 5,    //定时任务执行周期,单位为秒 ,与上面按分钟参数只需要设置其中一个,当设置了按分钟时则按照秒设置无效
         "PathInfo": [
          {
            "FileType":"FILE_SY01" ,     //当前能够解析的文件内容,只能使用特定参数 ,如果未设置此参数默认按照三烨的格式读取
            "DeviceNo": "123",   //对应的设备代码,应与ERP中设备编码一致
            "ShareDir": "\\\\pc1\\share1"   //该设备生成的文件的存放路径,一般为网络共享路径,注意需要使用**双斜线**表示路径
          },
          {
            "FileType":"FILE_GX01" ,  //只能设置为指定的字符串,随意设置会导致读取出错
            "DeviceNo": "321",    //配置多台设备
            "ShareDir": "\\\\pc2\\share2"  //注意是**双斜线**
          } ,
           {
            "FileType":"DB_SQL" ,  //表示从数据库中读取数据
            "DeviceNo": "321",    //对应的设备编码
            "ConnectionString": "server=;uid=sa;pwd=;database="  //数控连接信息,表示从此数据库中读取检验参数
          }
        ],
        "ConnectionString": "server=;uid=sa;pwd=;database="  //数据库连接信息
      }
}
FileType 说明 文件类型
FILE_SY01 三烨格式1 excel
FILE_SY02 三烨格式2 excel
FIlE_GX01 谷鑫格式1 csv
FILE_YK01 盈科格式1 ini
FILE_WX01 维玺1 csv
FILE_AFN_SI 安费诺 SI xlsx
FILE_AFN_HIPOT 安费诺 HiPot csv,pdf
FILE_AFN_CCD3D 安费诺 CCD 3d csv
FILE_AFN_CCDOSFP 安费诺 CCD OSFP csv
FILE_AFN_CCDEXE 安费诺 EXE csv
DB_SQL 从SQL Server数据库读取数据 数据库

下面的内容是一个完整的例子,可以拷贝到项目中修改:

{
  "OpenFlowApiSettings": {
    "SchedulerBaseUrl": "5566",
    "OpenFlowApiPort": "8003",
    "OpenFlowApiName": "OpenFlowApiService",
    "OpenFlowSettings": {
      "MicroErpDbConnection": {
        "OpenFlowConnection": ""
      },    
      "TimingReadFile": {
        "IntervalMinutes": 1,
        "PathInfo": [
          {
            "FileType": "FILE_SY01",
            "DeviceNo": "abc",
            "ShareDir": "\\\\server1\\share1"
          },
          {
            "FileType": "FILE_GX01",
            "DeviceNo": "567",
            "ShareDir": "\\\\server2\\share2"
          },
          {
             "FileType": "DB_SQL",
             "DeviceNo": "567",
             "ConnectionString":"server=.;uid=sa;pwd=123;database=db01"
          }
        ],
        "ConnectionString": "server=.;uid=sa;pwd=123;database=test"
      }     
    },
    "OpenFlowSingleOptions": {

    }
  }
}

从数据库中读取数据时,需要配置数据库的触发器,下面是个例子:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE  TRIGGER [dbo].[sBatteryData_TR] ON [dbo].[BatteryData]
FOR INSERT
AS 
BEGIN 
    if @@rowcount = 0 return 
    set nocount on 

    IF Exists(SELECT * FROM INSERTED)
    BEGIN 

        INSERT open_mes_dct_testresult(serial_no,device_no,arg_name,test_result,remark,test_datetime) 
        SELECT Barcode,ProductLine,'mem1',mem,'档位',GETDATE()
        FROM inserted

        INSERT open_mes_dct_testresult(serial_no,device_no,arg_name,test_result,remark,test_datetime) 
        SELECT Barcode,ProductLine,'TestingResultCode',TestingResultCode,'测试结果',GETDATE()
        FROM inserted

        INSERT open_mes_dct_testresult(serial_no,device_no,arg_name,test_result,remark,test_datetime) 
        SELECT Barcode,ProductLine,'CompareResultCode',TestingResultCode,'比对结果',GETDATE()
        FROM inserted

    END

END

共享目录设置

由于可能需要访问共享目录,如果服务器无法正常访问局域网内的共享目录,则需要在客户端电脑添加指定用户和密码,并设置共享目录该用户有读写权限(共享和安全都要设置)

用户名:openmesuser       
密码: Open!Mes@User#999

定时操作说明

服务器会按照上面定义的时间周期定时执行读取共享目录下的文件,按照预先定义的格式解析,写入数据库中: omes_dctaoitxt 表中

数据比较原则:

  1. 检查序列号+设备编码,在数据库中是否存在 ,如果不存在则添加
  2. 如果存在则判断检验日期,如果新检验日期晚于旧数据,则用新数据替换旧纪录

针对三烨的配置说明

  1. PC增加菜单:设备检测参数明细表,位置:制程管理\制程设备参数报表 ,可以查询检测结果
  2. 后台系统制度表增加参数: MES020
    序列号装箱时,是否通过设备检测参数进行测试数据防呆。0.不检测(默认) 1.检测且需通过
    默认值为0, 三烨 升级时,要执行下列sql
    update osys_returnset set value = 1 where id ='MES020'

  3. Excel文件格式:
    image

  4. PDA中序列号装箱时判断序列号检验结果(上面第二项参数MES020值设置为1时),如果不合格会出现锁屏界面

results matching ""

    No results matching ""