1、功能简介
SocketOPCService是OPC DA的Socket通讯服务程序,它区别于KepOPC将OPC标签信息读写到关系数据库的功能。利用Socket方式读取OPC实时数据是当前跨平台实时数据交换的一种常用手段,它要求数据采集和传输的实时性及完整性,并能够解决操作系统、防火墙、DCOM给OPC用户带来的困扰。目前,几乎所有操作系统及开发环境均支持Socket通讯,SocketOPCService程序正是基于这种需求开发,提供OPCDA实时采集和SocketServer转发的功能,将用户需要读取的标签信息通过TCP协议传输到客户端,方便用户对实时数据的获取和加工利用。
2、技术特性
(1)采用python开发环境(32位),支持Windows ALL操作系统的OPC DA Server的数据读取,如(Kepserver、Matrikon、GE IGS、亚控、力控等);
(2)提供Socket Server(TCP)服务器功能,支持不同平台的Socket Client的连接和通讯交互;
(3)多线程机制,支持多socket客户端同时通讯交互,时效性高。
3、功能及使用介绍
图1 SocketOPCService运行界面
SocketOPCService运行在用户需要采集的OPC DA Server的机器上(scada),运行界面显示已连接socket客户端的IP、连接号、命令字符串、进程占用内存数、客户端登出信息等。config.txt文件为其配置文件,主要配置Socket Server的IP地址和端口号,配置完成后保存启动SocketOPCService.exe程序开始监听客户端的连接和请求。
图2 Socket客户端运行界面
Socket客户端可以自行开发,测试工具如图2所示,所有消息均采用字符串格式接收和发送,打开TCP客户端连接后,变可通过命令行与 Socket Server通讯,用户可任意发送一包数据,测试连接状态,如图3所示,客户端发送‘000’字符串到server,server返回自己具备的功能和命令行格式。
图3 Socket通讯测试
目前,SocketOPCService提供的功能主要有如下四个:OPC连接测试、获取OPC Server名称、获取OPC Server所有标签名称、读取指定标签的值信息。
功能 | 命令行格式(注意有间隔符) | 示例 |
获取OPC Server名称 | opc list servers | opc list servers |
与指定的OPC Server连接测试 | opc connect xxx | opc connect Matrikon.OPC.Simulation.1 |
获取指定OPC Server的全部标签名 | opc list xxx tags | opc list Matrikon.OPC.Simulation.1 tags |
获取传递标签名的值及相关信息 | opc read xxx tag1,tag2,... | opc read Matrikon.OPC.Simulation.1 .DLJK_DL150,.DLJK_DL151 |
注:命令行字符串每个单词需要空格符隔开,一次读多个标签值时,需要用','隔开每个标签名,一次读取标签总数不限。读取命令发送成功后,SocketServer将会持续不断地往请求数据的客户端发送实时信息,每次发送以回车换行符‘\r\n’结束。如果需要server停止读取和发送,请关闭客户端连接。其他命令行功能为应答方式,客户端一问,服务器一答。
图4 opc list servers命令测试
图5 opc list xxx tags命令测试
图6 opc read xxx tag1,tag2,...命令测试
SocketOPCService返回的消息体格式为字符串,用户可以根据自己的需要截取每包数据里有用的信息提供前端页面的实时展示,利用这种方式用户能够获取到更加实时的自动化点的值,提高报警和展示的时效性,根据系统特点用户也可选择KepOPC中间件实现数据交换,但KepOPC在数据存储和管理方面更有优势,SocketOPCService在数据实时性上更胜一筹。
4、试用及下载
https://pan.baidu.com/s/1ht2CWxJ341bgF1DmZl7AYA