首页 上一页 1 2 3 下一页 尾页

欢迎ModbusOPCServer2.0测试 点击:13564 | 回复:49



tomyi

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:21帖 | 233回
  • 年度积分:0
  • 历史总积分:598
  • 注册:2002年10月30日
发表于:2007-09-10 22:18:00
楼主

欢迎大家下载,支持RTU(经过测试),ASCII,TCP(经过测试)。

希望能够在工程调试中给大家带来便利.

现在的版本比较稳定,取名为TYServer。

TYServer是一款支持OPC Server 的软件。

支持:

-----------------------------------------

现场总线:

  Modbus协议

消防协议:

  霍尼Notifier N6000 N-CRT消防协议

电梯:

  三菱电梯 SMOS-II,OTS

温控器:

  海林联网温控器

仪表:

  上海安科瑞

-----------------------------------------

谢谢大家多年的支持与关心,现在新版将软件在不注册情况下每次连续运行时间修改为50小时(运行时间到了,可以退出重新运行,又可以获取50小时运行时间),便于大家测试与使用。

即便是作为一款学习OPC或通讯测试工具,也是不可多得的。

另外,如果大家需要交流的话,请QQ联系。

 

******** 新 版 ********

下载: TYServer v1.71  2013-03-18

 

下载: TYServer v1.61

 

下载: TYServer v1.54

更改说明(同时欢迎大家提出宝贵的意见,在此,先表示感谢):

更祥尽的信息请到我的论坛看看。

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

联系方式:

QQ:    910926221

邮件:  tengyuespace@126.com

我的论坛:腾跃工作室

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

新版说明:

1.  支持串口服务器 TCP Server模式

2. 对通讯机制进行了改进,使得通讯效率更优

比如:当你启动(命令点)一个设备,运行信号(反馈点) 会快速通讯上了==============================================================================================

OPC Server 界面

opc client 界面

如果需要OPC Client源码(VC++),请在download.gongkong.com/file/2007/9/8/TYServer.rar 下载





dotnew

  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 185回
  • 年度积分:0
  • 历史总积分:447
  • 注册:2007年3月08日
发表于:2007-09-20 09:55:00
1楼
已经下载,不错,OPC服务器端能不能支持其他通讯协议,不是串口采集,比如通过板卡什么的可以吗,通过TCPIP可以吗,是否可以再次扩展一下,如果可以,tomyi是否可以总结一下您在开发OPC服务器的时候对驱动是如何管理的,在OPC服务器运行时驱动又是如何管理的。

tomyi

  • 精华:0帖
  • 求助:1帖
  • 帖子:21帖 | 233回
  • 年度积分:0
  • 历史总积分:598
  • 注册:2002年10月30日
发表于:2007-09-21 10:29:00
2楼
很抱歉,OPCSrv.dll的源码暂不提供.不过有时间我会把GE的OPC服务器源码进行分析给大家.至于设备驱动的管理,是留有接口的.
本程序共分三部分组成:
一、界面+数据管理
二、设备驱动DLL库,与第一部分通过一定的标准函数进行数据传递,通过这层,可以实现各种设备驱动的开发。
三、OPCSrv.dll,当开始运行时,第一部分通过一定的标准函数进行数据传递给OPCSrv.dll,然后有OPCSrv.dll进行对OPC请求进行管理。
大概是这样。有时间,在给大家详细介绍。
目前正在实现控制器和数据点的复制编程,在结构管理上会有所不同,到时会更加方便。
也欢迎大家提意见。

tomyi

  • 精华:0帖
  • 求助:1帖
  • 帖子:21帖 | 233回
  • 年度积分:0
  • 历史总积分:598
  • 注册:2002年10月30日
发表于:2007-09-21 10:31:00
3楼
设备驱动库函数接口定义
//
//dll_protocal.h
//
///////////////////////////////////////////////////////////////////////////////////////////////////////
#include "ComStruct.h"


//
//--------------------------------------------------------------------------------------------------
//一、协议相关函数
//--------------------------------------------------------------------------------------------------
//1. 初始化协议
//extern "C" _declspec(dllimport) int  TY_GetProtocal(CString*& strLabel,CString*& pstrProtocalName);
typedef int (_cdecl * TY_D_GETPROTOCAL)(CString*& strLabel,CString*& pstrProtocalName,UINT*& pnCommType);

//2. 根据数据信息计算出寄存器的数量
//extern "C" _declspec(dllimport) int  TY_GetRegCount(UINT unRegType,UINT unDataType);
typedef int (_cdecl * TY_D_GETREGCOUNT)(UINT unRegType,UINT unDataType);

//3. 得到支持寄存器的信息
//extern "C" _declspec(dllimport) int  TY_GetRegType(CAddrTypeInfo*& pAddrTypeInfo);
typedef int (_cdecl * TY_D_GETREGTYPE)(CAddrTypeInfo*& pAddrTypeInfo);

//4. 得到支持寄存器默认的数据格式
//extern "C" _declspec(dllimport) int  TY_GetDefaultDataFormat(UINT unDataType);
typedef int (_cdecl * TY_D_GETDEFAULTDATAFORMAT)(UINT unDataType);

//5. 运行---开始通讯协议
//extern "C" _declspec(dllimport) void TY_Run(HANDLE hServer,BOOL bRun);
typedef BOOL (_cdecl * TY_D_RUN)(HANDLE hServer,BOOL bRun);

//6. 退出---停止通讯协议
//extern "C" _declspec(dllimport) BOOL TY_Exit();
typedef BOOL (_cdecl * TY_D_EXIT) ();

//--------------------------------------------------------------------------------------------------
//二、数据项操作函数
//--------------------------------------------------------------------------------------------------
//1. 增加控制设备

//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//名称: TY_AddDevice------增加控制设备
//---------------------------------------------------------------------------------
//参数: 
//    HANDLE hIDDevice    ----控制设备的ID号
//    CDeviceInfo* pDevice
//---------------------------------------------------------------------------------
//功能: 向对应的串口或IP信息
//---------------------------------------------------------------------------------
//返回值: HANDLE    DLL的标识
//
//---------------------------------------------------------------------------------
//说明:
//
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//extern "C" _declspec(dllimport) HANDLE TY_AddDevice(HANDLE hIDDevice,CDeviceInfo* pDevice);
//-------------------------------------------------------------------------------------------------------
typedef HANDLE (_cdecl * TY_D_ADDDEVICE)(HANDLE hIDDevice,CDeviceInfo* pDevice);


//2. 增加数据项

//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//名称: TY_AddItem------增加数据项
//---------------------------------------------------------------------------------
//参数: 
//    HANDLE hIDDevice    ----控制设备的ID号
//    CRegAddrInfo* pRegInfo----------数据项
//---------------------------------------------------------------------------------
//功能: 向对应的串口添加通讯数据项
//---------------------------------------------------------------------------------
//返回值:
//
//---------------------------------------------------------------------------------
//说明:
//
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//extern "C" _declspec(dllimport) HANDLE TY_AddItem(HANDLE hIDDevice,CRegAddrInfo* pRegInfo);
typedef HANDLE (_cdecl * TY_D_ADDITEM)(HANDLE hIDDevice,CRegAddrInfo* pRegInfo);


//3. 写数据项

//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//名称: TY_WriteItem------写数据项
//---------------------------------------------------------------------------------
//参数: 
//    HANDLE hIDItem ---------数据项ID
//    CString* pstrValue -----新的值
//---------------------------------------------------------------------------------
//功能: 向对应的串口网络的控制器写数据操作
//---------------------------------------------------------------------------------
//返回值:
//
//---------------------------------------------------------------------------------
//说明:
//    在线时调用
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//extern "C" _declspec(dllimport) void TY_WriteItem(HANDLE hIDItem,CString* pstrValue);
typedef HANDLE (_cdecl * TY_D_WRITEITEM)(HANDLE hIDItem,CString* pstrValue);

//--------------------------------------------------------------------------------------------------
//三、串口信息函数
//--------------------------------------------------------------------------------------------------
//1. 增加串口 

//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//名称: TY_AddSerialPort------增加串口信息(包含改变串口状态)
//---------------------------------------------------------------------------------
//参数: 
//    CString* pstrInfo-----串口信息:包含波特率、奇偶校验、数据位、停止位、事件 5部分信息
//---------------------------------------------------------------------------------
//功能: 增加串口信息
//---------------------------------------------------------------------------------
//返回值:
//
//---------------------------------------------------------------------------------
//说明:必须在运行前调用
//
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//extern "C" _declspec(dllimport) HANDLE TY_AddSerialPort(CSerialPortInfo* pSPInfo);
typedef HANDLE (_cdecl * TY_D_ADDSERIALPORT)(CSerialPortInfo* pSPInfo);

//2. 设定串口信息
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//名称: TY_SetSerialPortInfo------设定串口信息(包含改变串口状态)
//---------------------------------------------------------------------------------
//参数: 
//    HANDLE hID------------访问串口句柄
//    CString* pstrInfo-----串口信息:包含波特率、奇偶校验、数据位、停止位、事件 5部分信息
//---------------------------------------------------------------------------------
//功能: 设定串口信息
//---------------------------------------------------------------------------------
//返回值:
//
//---------------------------------------------------------------------------------
//说明:如果串口已经在运行,则将重新初始化串口。
//
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//extern "C" _declspec(dllimport) BOOL TY_SetSerialPortInfo(HANDLE hID,CSerialPortInfo* pSPInfo);
typedef BOOL (_cdecl * TY_D_SETSERIALPORTINFO)(HANDLE hID,CSerialPortInfo* pSPInfo);


//--------------------------------------------------------------------------------------------------
//四、事件函数
//--------------------------------------------------------------------------------------------------
//
/////////////////////////////////////////////////////////////////////////////////////////////
//    回调函数
/////////////////////////////////////////////////////////////////////////////////////////////
//1. 消息更新

//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//名称: TY_SetMsgProc------消息更新
//---------------------------------------------------------------------------------
//参数: 
//    COMMMSG pMsgFuc-------消息更新函数指针
//---------------------------------------------------------------------------------
//功能: 将向提供的消息更新函数发送消息,相关消息类型参见TY_SetMsgEvent函数
//---------------------------------------------------------------------------------
//返回值:
//
//---------------------------------------------------------------------------------
//说明:
//    该函数是更新数据.通讯消息的通道
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//extern "C" _declspec(dllimport) void TY_SetMsgProc(COMMMSG pMsgFuc);

typedef void (_cdecl * TY_D_SETMSGPROC)(COMMMSG pMsgFuc);


typedef void (CALLBACK* WRITEPROC)(HANDLE,VARIANT*);    //客户写操作

typedef void (_cdecl * TY_D_WRITEPROC)(WRITEPROC pWriteProc);


//--------------------------------------------------------------------------------------------------
//五、仿真数据
//--------------------------------------------------------------------------------------------------
//仿真方式
#define SIMULATE_NO        0
#define SIMULATE_RAMP    1
#define SIMULATE_RANDOM    2
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//名称: TY_Simulate------仿真数据
//---------------------------------------------------------------------------------
//参数: 
//    DWORD dwSimulate------->0:进行模拟;=0:取消模拟
//---------------------------------------------------------------------------------
//功能: 自动生成数据,进行数据仿真
//---------------------------------------------------------------------------------
//返回值:
//
//---------------------------------------------------------------------------------
//说明:
//
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//extern "C" _declspec(dllexport)  void TY_Simulate(DWORD dwSimulate)
typedef BOOL (_cdecl * TY_D_SIMULATE)(DWORD dwSimulate);

//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//使用说明:---调用步骤
//-----------------------------------------------------------------------------------------------------
//1. 设定通讯消息函数    void    TY_SetMsgProc(COMMMSG pMsgFuc);
//2. 增加串口信息        HANDLE    TY_AddSerialPort(CSerialPortInfo* pSPInfo);
//3. 增加控制设备        HANDLE    TY_AddDevice(CDeviceInfo* pDevice);
//4. 增加数据项            HANDLE    TY_AddItem(HANDLE hIDDevice,CRegAddrInfo* pRegInfo);
//5. 设定串口信息        BOOL    TY_SetSerialPortInfo(UINT unSerialPort,CSerialPortInfo* pSPInfo);
//6. 进行通讯            void    TY_Run(TRUE);    
//                        对控制器的修改除活动属性外,如对协议.地址.串口/IP等的修改均要重新启动TY_Run(TRUE);
//                        对数据项的修改除活动属性.数据类型外,如对地址等均要重新启动TY_Run(TRUE);
//6. 停止通讯            void TY_Run(FALSE);    //通讯协议dll会自动卸载添加的数据信息(如前2-5步所增加的信息)
//                        如果在重新建立通讯,请按照2-6步
//7. 退出通讯dll        BOOL TY_Exit();                        
//-----------------------------------------------------------------------------------------------------

谢谢大家关注,可能不全,不过大家感兴趣可以参考以下.

易水寒262

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 92回
  • 年度积分:0
  • 历史总积分:129
  • 注册:2003年2月11日
发表于:2007-09-26 09:31:00
4楼
谢谢 学习中

myopc

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 43回
  • 年度积分:0
  • 历史总积分:159
  • 注册:2002年9月05日
发表于:2007-11-26 16:39:00
5楼
可以看看 myopc:
http://groups.google.com/group/myopc
支持自定义驱动

deng_lp

  • 精华:5帖
  • 求助:0帖
  • 帖子:65帖 | 2669回
  • 年度积分:0
  • 历史总积分:2876
  • 注册:2001年6月19日
发表于:2007-11-27 09:35:00
6楼
给人的感觉象KEPWARE的东西,连图标都没有改。
opc client 的源程序 kepware是免费提供的。

deng_lp

  • 精华:5帖
  • 求助:0帖
  • 帖子:65帖 | 2669回
  • 年度积分:0
  • 历史总积分:2876
  • 注册:2001年6月19日
发表于:2007-11-27 09:56:00
7楼
安装看完后,只能说 精神可佳。

tomyi

  • 精华:0帖
  • 求助:1帖
  • 帖子:21帖 | 233回
  • 年度积分:0
  • 历史总积分:598
  • 注册:2002年10月30日
发表于:2007-11-28 12:05:00
8楼
deng_lp:
说的没错,该软件就是参考kepware 的opc client 源程序 ,作为OPC学习,试作写了下,以加深对OPC(其实是COM东东)的理解.就是这样子,也就把client 源程序给提供了出来.

豆奶

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 137回
  • 年度积分:0
  • 历史总积分:281
  • 注册:2007年10月20日
发表于:2007-11-28 13:12:00
9楼

串口通讯

  • 精华:3帖
  • 求助:0帖
  • 帖子:73帖 | 356回
  • 年度积分:0
  • 历史总积分:1788
  • 注册:2007年7月09日
发表于:2007-11-29 15:12:00
10楼
学习

teamo.wan

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 442回
  • 年度积分:0
  • 历史总积分:732
  • 注册:2005年12月13日
发表于:2007-12-24 15:07:00
11楼
支持MODBUS TCP协议吗?
在软件中没有找到啊

国产组态

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 129回
  • 年度积分:0
  • 历史总积分:706
  • 注册:2006年4月05日
发表于:2007-12-24 15:28:00
12楼
鼓励鼓励

tomyi

  • 精华:0帖
  • 求助:1帖
  • 帖子:21帖 | 233回
  • 年度积分:0
  • 历史总积分:598
  • 注册:2002年10月30日
发表于:2008-02-01 10:02:00
13楼
TYServer 界面
谢谢大家支持.

mcgsslq

  • 精华:0帖
  • 求助:0帖
  • 帖子:50帖 | 533回
  • 年度积分:0
  • 历史总积分:1566
  • 注册:2005年11月09日
发表于:2008-02-01 15:19:00
14楼
支持一下

tcs

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 526回
  • 年度积分:0
  • 历史总积分:768
  • 注册:2004年8月25日
发表于:2008-02-02 10:26:00
15楼
你的Modbus OPC Server成品是否收费?还是免费的?

tomyi

  • 精华:0帖
  • 求助:1帖
  • 帖子:21帖 | 233回
  • 年度积分:0
  • 历史总积分:598
  • 注册:2002年10月30日
发表于:2008-02-02 12:41:00
16楼
目前考虑不收费,可以免费注册。或许将来会收取一点费用。
内部的OPCSvr.Dll是免费的。可以参考例程。

FULI187

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 221回
  • 年度积分:0
  • 历史总积分:568
  • 注册:2009年6月19日
发表于:2008-05-09 10:51:28
17楼

太好啦!学习 学习 谢谢!

sjx_gcl

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2008年5月13日
发表于:2008-05-13 07:40:55
18楼

TYServer.rar

1, 串口校验码无法更法,只能固定为无校验.

2, 作为SERVER, 居然不通用. IOCOMP作为CLIENT虽然能连上SERVER, 可是什么TAG也没有.SERVER还是有问题啊.

3.优化做的不好. TAG中地址连续,但读取串口时每个TAG都对应一个串口帧.而不是将之组合成一个串口帧

4.可能言论有点偏激,希望LZ不要见怪.希望LZ能更上一层楼.我的邮箱shijiangxiao@yahoo.com.cn , 有机会想请教楼主.

tomyi

  • 精华:0帖
  • 求助:1帖
  • 帖子:21帖 | 233回
  • 年度积分:0
  • 历史总积分:598
  • 注册:2002年10月30日
发表于:2008-05-15 13:31:43
19楼

谢谢sjx_gcl指出.

问题1: 确实存在,马上改正.

问题2: 在用组态王和其他测试测试时,没有发现.可能是没有在Server中建立tag吧.或说的更详细些.

 

问题3:目前只预留了优化的接口,但驱动程序并没有实现该优化接口,目前正在着手实现这一功能,可能需要些时间.

 

最后,谢谢大家的关注,多提意见,我会将该软件改的更好稳定更好用.

tomyi

  • 精华:0帖
  • 求助:1帖
  • 帖子:21帖 | 233回
  • 年度积分:0
  • 历史总积分:598
  • 注册:2002年10月30日
发表于:2008-05-16 10:25:17
20楼

对于看不到tag的原因可能是建立了tag没有保存,所以看不到.如果是别的原因,请说的更详细些.

下面是用Rockwell的OPCClient连接截图


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 3 下一页 尾页