EtherNet/IP开发:源代码资源大全 JAVA、C#、C++ CIP协议

示例使用VS2010开发EtherNet/IP

当其他人使用该项目源代码时候,可以使用更高版本的VS打开,如果追求软件运行速度的,还可以使用VC6++编译生成

开发语言使用C++

为什么选择C++呢?
C++开发的dll库再以C标准导出,Dlphi、Labview、VB、QT、C#、C\C++、C#、Java等几乎所有编程语言都可以直接使用,无需提供Com转接从而掉性能。

C++调用C#库情况,C++使用的CLI 或CLR语法跟C++语法不一样。是导致不稳定可靠的核心因素之一。

 

效率问题
① 在底层我们将采用socket和多线程方式开发,在数据处理方面使用指针为主。

② EtherNet/IP在设计之初就是为高效,低延迟而设定

③ 采用最基础的C++ 标准函数,单次效率可以做到1ms以内。

④ EtherNet/IP是追求实时性的

源代码下载和应用:

www.jngbus.com

编程开始:

① 创建项目

使用dll库方式,为后续提供模块给各种程序调用准备

我们开发过程只采用C98和C11标准,socket、STL库,在移植到嵌入式、linux时候,只需改为gcc、g++编译和少量API修改即可。

 

创建项目

 

选择共享型的DLL库,后续在更新DLL库时候,使用者无需重新编译代码。

 

② 编写数据结构体

 

// 协议头数据
struct EncapsulationHeader 
{
    int nCommand;                // 命令
    int nLength;                // 成都
    int nSessionID;                // 会话ID Session Handle
    int nStatus;                // 状态数据
    __int64 nSenderContext;        // 上下文,描述相关信息
    int nOptions;                // 选项
 
    EncapsulationHeader()
    {
        memset(this, 0, sizeof(EncapsulationHeader));
    }
};

③ 添加socket网络通讯
由于我们是作为client,所以开发过程中不需要做server

等后续做EtherNet/IP Server时候,再讲解

创建UDP和TCP俩种处理场景,将会使用到

函数socket();connect();send()和recv()等这几个函数

在recv时候采用多线程处理即可。

往下就不继续讲述了。估计需要2、3天时间把软件写出来和测试了。

 

posted @ 2024-01-20 19:30  我为鸡狂·  阅读(4158)  评论(0)    收藏  举报