一种实现ERP系统与机床设备通信并采集数据的装置的制作方法

文档序号:12730069阅读:862来源:国知局

本发明涉及计算机应用技术领域,具体地说是一种实现ERP系统与机床设备通信并采集数据的装置。



背景技术:

在ERP业务系统中根据尤其在生产管理、车间管理等模块,需要结合机床设备运行数据实现计划的辅助排产与分析计划安排是否合理,是否超过设备负荷;在工人加工过程中,需要先将设备数据记录并手动录入ERP系统中,ERP系统不具备与硬件设备直接联网取数的能力。

在不同车间中,有来自不同生产厂家的机床设备,硬件设备。不同设备的驱动程序差异大,不同取数方法参数也不近相同,针对不同设备的取数,不同取数方式,如实时采集、状态变动采集,定时采集等需开发不同技术接口,ERP系统需单独开发程序,工作量大且不可复用。



技术实现要素:

本发明的技术任务是针对以上不足之处,提供一种实现ERP系统与机床设备通信并采集数据的装置,实现驱动DLL的运行时动态引用,实现对不同设备的单独实现,封装成基于TCP/IP统一的对外接口,ERP系统可直接通过网络编程进行接口取数而不用考虑取数细节。

本发明解决其技术问题所采用的技术方案是:

一种实现ERP系统与机床设备通信并采集数据的装置,包括通过反射、泛型技术实现驱动DLL动态导入,基于TCP\IP协议的网络传输方式,运用数据序列化算法将数据序列化为XML或JSON数据交互,支持不同类型的接口方式,可通过配置ERP系统以及硬件设备的取数要求,结合配置文件中的工作模式项,通过调用不同的创建方法,创建不同的对象实例,实现系统不同的取数方式与工作方式,支持对设备取数的多种运行要求;

通过以下步骤实现通讯和数据采集:

包括非托管DLL导入函数,实现运行时动态导入机床驱动DLL的程序;

将设备数据序列化为可识别的XML与JSON数据;

实现接口编程;

读取配置信息,并根据配置信息加载对象;

执行程序,通过配置文件配置对象信息以不同工作模式运行。

进一步的,实现接口编程,支持不同类型的接口方式,包括Web service,Socket Server,Socket Client三种工作模式。

进一步的,配置信息包括实体对象、业务对象、数据访问对象,程序运行模式。

进一步的,通过DLLIMPORT在运行时导入非托管的驱动DLL,支持DLL文件运行时更新或替换。

本装置可通过配置与动态DLL导入实现对不同生产厂家的基于串口的机床设备通讯;经过对数据进行封装、序列化后可通过基于TCP\IP协议的数据接口实现与外部系统进行数据交互;基于不同ERP系统取数要求,本装置可提供Web service接口访问,可作为Socket服务端与ERP系统Socket客户端程序交互,也可作为Socket客户端与ERP系统Socket服务端交互;本装置基于对不同平台友好的XML或JSON作为数据载体,可支持基于不同技术平台架构的ERP系统。

本发明的一种实现ERP系统与机床设备通信并采集数据的装置和现有技术相比,具有以下有益效果:

统一了对象实例创建、动态创建的方法,统一了不同设备相同的取数方法;

对Web service,Socket Server,Socket Client三种工作模式进行支持,可根据配置以任意一种模式进行运行,满足不同取数要求;

提供系统扩展便利方式,可单独部署,也可与现有产品集成;

接口实现与对象实例创建融合;

调用实现简单易用;通过配置即可运行,降低了编程的复杂度,进而提高了编程的效率;

可良好解决ERP系统中对硬件数据进行取数的需求,通过标准接口技术同ERP系统原有功能的整合,ERP开发人员对串口设备的取数,可基于本装置通过配置或简单编码实现,而无需自己实现全部相关代码。

具体实施方式

下面结合具体实施例对本发明作进一步说明。

一种实现ERP系统与机床设备通信并采集数据的装置,包括通过反射、泛型技术实现驱动DLL动态导入,基于TCP\IP协议的网络传输方式,运用数据序列化算法将数据序列化为XML或JSON数据交互,支持不同类型的接口方式,可通过配置ERP系统以及硬件设备的取数要求,结合配置文件中的工作模式项,通过调用不同的创建方法,创建不同的对象实例,实现系统不同的取数方式与工作方式,支持对设备取数的多种运行要求;

通过以下步骤实现通讯和数据采集:

包括非托管DLL导入函数,实现运行时动态导入机床驱动DLL的程序;

将设备数据序列化为可识别的XML与JSON数据;

实现接口编程;

读取配置信息,并根据配置信息加载对象;

执行程序,通过配置文件配置对象信息以不同工作模式运行。

其中,支持不同类型的接口方式,包括Web service,Socket Server,Socket Client三种工作模式;

配置信息包括实体对象、业务对象、数据访问对象,程序运行模式;

通过DLLIMPORT在运行时导入非托管的驱动DLL,支持DLL文件运行时更新或替换。

1、根据IEquipConnectBase接口对驱动DLL进行动态导入,

public interface IEquipConnectBase

{

/// <summary>

/// 打开连接

/// </summary>

/// <typeparam name="OpenParameter">参数类型</typeparam>

/// <param name="paramerer">参数对象</param>

void OpenConnect();

/// <summary>

/// 关闭连接

/// </summary>

/// <typeparam name="OpenParameter">参数类型</typeparam>

/// <param name="paramerer">参数对象</param>

void CloseConnect(OpenParameter paramerer);

/// <summary>

/// 获取设备状态

/// </summary>

/// <returns></returns>

string GetEquipState();

/// <summary>

/// 根据设备ID获取设备当前参数

/// </summary>

/// <param name="ID">设备ID</param>

Equip1 GetEquipInformationByID(string ID);

/// <summary>

/// 根据指令获取设备特定数据

/// </summary>

/// <param name="CommandString">指令</param>

/// <returns></returns>

object GetDataByCommand(string CommandString);

}

2、 DLL动态导入与方法实现,

public static class Equip1Function

{

[DllImport(@"E:\EquipDLL\hfrdapi.dll")]

static extern void GetEquipInfo (int dwMilliseconds);

public static object GetEquipInfo()

{

int status;

byte mode = 0x60;

byte secnr = 0x00;

byte[] dataBuffer = new byte[256];

mode = 0x61; //密钥

TyA_CS_Authentication2(g_hDevice, mode, (byte)(secnr * 4), ToDigitsBytes("FFFFFFFFFFFF"));

for (int i = 0; i < 4; i++)

{

int j;

byte cLen = 0;

status = TyA_CS_Read(g_hDevice, (byte)((secnr * 4) + i), dataBuffer, ref cLen);

if (status != 0 || cLen != 16)

{

return null;

}

byte[] bytesData = new byte[16];

for (j = 0; j < bytesData.Length; j++)

bytesData[j] = Marshal.ReadByte(dataBuffer, j);

}

return dataBuffer;

}

}

3、Socket服务端配置实现,

启动服务端程序后,装置对外提供Socket服务监听,可针对服务端接口开发Socket客户端,实现设备数据的取数。

应用场景:

设备数据的按需取数,如实时获取设备主轴转速,温度等运行参数。

4、Socket客户端配置实现,

业务系统可根据接口开发Socket服务端,本装置作为Socket客户端与服务端进行连接,当设备数据发生变化时,装置自动向服务端发送设备变更数据。

应用场景:

用于设备运行状态的监听。

5、设备信息类与序列化,

public class EquipInfor

{

public string EquipState;//设备状态

public string Temperature;//温度

public double RunSpeed;//主轴转速

}

序列化后的Json数据

{"EquipState":"运行","Temperature":"45℃","RunSpeed":3500.0}

序列化后的XML数据

<xml version="1.0">

<EquipInfor xmlns:xsd=http://www.w3.org/2001/XMLSchema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<EquipState>运行</EquipState>

<Temperature>45℃</Temperature>

<RunSpeed>3500</RunSpeed>

</EquipInfor>

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1