Skip to content

  • 项目
  • 群组
  • 代码片段
  • 帮助
  • 当前项目
    • 正在载入...
  • 登录 / 注册
O
OpenFlow12
  • 项目
    • 项目
    • 详情
    • 活动
    • 周期分析
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 图表
    • 比较
    • 统计图
  • 议题 363
    • 议题 363
    • 列表
    • 看板
    • 标记
    • 里程碑
  • Wiki
    • Wiki
  • 成员
    • 成员
  • 折叠边栏
  • 活动
  • 图像
  • 聊天
  • 创建新问题
  • 提交
  • 问题看板
  • OpenIssure
  • OpenFlow12
  • Issues
  • #903

已关闭
未关闭
在 12月 25, 2020 由 代英学@dyx 
  • 违规举报
  • 新建问题
举报违规 新建问题

中间层定时读取检验设备输出结果

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

配置

在中间层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  
  密码:OpenMesUser999  

定时操作说明

服务器会按照上面定义的时间周期定时执行读取共享目录下的文件,按照预先定义的格式解析,写入数据库中: 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时),如果不合格会出现锁屏界面

编辑时间 8月 02, 2022 作者 代英学
指派人
分配到
无
里程碑
无
分配里程碑
工时统计
无
截止日期
无截止日期
0
标记
无
指派标记
  • 查看项目标记
引用: OpenIssure/OpenFlow12#903