<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[OPC那点事]]></title><description><![CDATA[慢慢道来OPC]]></description><link>https://blog.youkuaiyun.com/kkus123</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kkus123]]></copyright><item><title><![CDATA[一个可以把玩的针对WebSocket分段的处理方案]]></title><link>https://blog.youkuaiyun.com/kkus123/article/details/145103893</link><guid>https://blog.youkuaiyun.com/kkus123/article/details/145103893</guid><author>kkus123</author><pubDate>Mon, 13 Jan 2025 12:21:11 +0800</pubDate><description><![CDATA[独创的针对Fragment的WebSocket Echo服务端及客户端]]></description><category></category></item><item><title><![CDATA[如何底层调用最快地复制OPC数据到关系数据库]]></title><link>https://blog.youkuaiyun.com/kkus123/article/details/135196590</link><guid>https://blog.youkuaiyun.com/kkus123/article/details/135196590</guid><author>kkus123</author><pubDate>Wed, 27 Dec 2023 07:33:49 +0800</pubDate><description><![CDATA[如何用OLE DB来快速地复制OPC数据到数据库]]></description><category></category></item><item><title><![CDATA[Python和Java等获得OPC数据的新方法]]></title><link>https://blog.youkuaiyun.com/kkus123/article/details/125568455</link><guid>https://blog.youkuaiyun.com/kkus123/article/details/125568455</guid><author>kkus123</author><pubDate>Tue, 05 Jul 2022 01:59:33 +0800</pubDate><description><![CDATA[前文有提到一种新方法来获取OPC数据，为扩展到其它语言打下了基础。现在能否一如既往地满足不同场景下不同语言获得OPC数据的需要？本文打算用四种不同的常用语言 (Python/C#/C++/Java) 来尝试一下获得OPC数据。先看一下Python语言下的例子, 在Visual Studio 2019下使用，基本的设置如下， 用的是Python 3.9，下载所需要的websockets的包，添加一个py文件(WebSocketPython.py)和如下程序， 


非常简短直接，使用一个异步包和websock]]></description><category></category></item><item><title><![CDATA[移动端获取OPC数据的新方法]]></title><link>https://blog.youkuaiyun.com/kkus123/article/details/124855024</link><guid>https://blog.youkuaiyun.com/kkus123/article/details/124855024</guid><author>kkus123</author><pubDate>Tue, 21 Jun 2022 09:59:17 +0800</pubDate><description><![CDATA[OPC的二套架构，Classic和UA，都是在智能手机诞生前就产生的，天生地就没有考虑移动端的应用，所使用的协议无法直接在移动端上运用或者良好支持。但是在工厂和总部，总有那么种需求，就是无论走在哪里，也想随时随地地获取相关的工厂信息，若有报警能够及时处理等等。OPC Classic所遵循的COM协议，手机上无法直接相连，OPC UA所提供的opc.tcp或者http，也不是简单地可以直接拿来使用，必须要考虑防火墙，证书等诸多烦琐事宜，在我看来这都不是移动端应该考虑的（当然是电脑端要顾及的事）。那么在移动端，]]></description><category></category></item><item><title><![CDATA[针对CVE-2021-26414的业界首款OPC转WEB解决方案]]></title><link>https://blog.youkuaiyun.com/kkus123/article/details/122796302</link><guid>https://blog.youkuaiyun.com/kkus123/article/details/122796302</guid><author>kkus123</author><pubDate>Mon, 14 Feb 2022 11:01:03 +0800</pubDate><description><![CDATA[通过Javascript获取OPC数据的解决方案
]]></description><category></category></item><item><title><![CDATA[OPC包深度解析及工业防火墙 （上）]]></title><link>https://blog.youkuaiyun.com/kkus123/article/details/82373105</link><guid>https://blog.youkuaiyun.com/kkus123/article/details/82373105</guid><author>kkus123</author><pubDate>Mon, 21 Dec 2020 08:30:14 +0800</pubDate><description><![CDATA[上篇分析了OPC服务端的安全性，本文进一步分析OPC包的深度解析和工业防火墙的对策。

OPC使用的RPC协议和普通的TCP应用协议有所不同，普通TCP的协议都有一个固定的端口供客户端请求，见如下的Modbus协议服务端的固定端口是502，所有客户端和服务端往来的包都使用该端口。



下面来看下OPC使用的RPC请求和应答，



显而易见的是RPC有一个固定的135号端口供客户端请求专用，然后...]]></description><category></category></item><item><title><![CDATA[OPC服务端软件分析]]></title><link>https://blog.youkuaiyun.com/kkus123/article/details/103760259</link><guid>https://blog.youkuaiyun.com/kkus123/article/details/103760259</guid><author>kkus123</author><pubDate>Wed, 01 Jan 2020 12:40:30 +0800</pubDate><description><![CDATA[上篇依然是关于客户端的，现在转向服务端。本文以OPC基金会发布的OPC DA 3.00 Sample Server为分析对象，分析它的结构，为自己程序切入找准方向。

在开始之前需要分享一个知识点，即COM是如何被创建的。在客户端使用CoCreateInstance后，服务端是怎样帮你创立一个实例的？这就是IClassFactory的职责，所有COM的调用都是通过它的接口来获得一个具体的执行它接口...]]></description><category></category></item><item><title><![CDATA[OPC服务器漏洞扫描]]></title><link>https://blog.youkuaiyun.com/kkus123/article/details/99150277</link><guid>https://blog.youkuaiyun.com/kkus123/article/details/99150277</guid><author>kkus123</author><pubDate>Sun, 11 Aug 2019 06:17:01 +0800</pubDate><description><![CDATA[上篇是关于写个优雅的OPC客户端，今天谈谈如何找出你的服务端的漏洞。在我的另一篇关于OPC服务器安全的博文中提到了2015年针对工控系统的蜻蜓攻击。黑客通过水坑攻击进入到工控网络，然后利用OPC的相关漏洞开始扫瞄，获取相应的位点信息开始攻击。这就提出一个问题，我的服务端到底安不安全？如果黑客已经通过其它手段进入到我的网络，他会发现什么？所以我们就需要一款工具，比黑客先找出自己的漏洞，对自己的工控网...]]></description><category></category></item><item><title><![CDATA[短小精干原创的三合一命令行OPC客户端]]></title><link>https://blog.youkuaiyun.com/kkus123/article/details/94367613</link><guid>https://blog.youkuaiyun.com/kkus123/article/details/94367613</guid><author>kkus123</author><pubDate>Mon, 01 Jul 2019 03:00:16 +0800</pubDate><description><![CDATA[上篇讲了如何写个优雅的OPC程序，现在共享我写的一个支持DA、HDA和AE的命令行客户端，需要的在后面留言，因这里无法上载。

用法：Opc3Client.exe hostname da/hda/ae

运行cmd时，要用管理者权限，如下是关于DA的，支持DA的所有接口



如下是关于HDA的，支持基本的接口，



下面的是关于AE的，支持基本接口，



一些运行截图，AE的，



HDA...]]></description><category></category></item><item><title><![CDATA[写个干净优雅的OPC程序及OPC SDK质量分析]]></title><link>https://blog.youkuaiyun.com/kkus123/article/details/93423293</link><guid>https://blog.youkuaiyun.com/kkus123/article/details/93423293</guid><author>kkus123</author><pubDate>Mon, 24 Jun 2019 06:15:25 +0800</pubDate><description><![CDATA[上篇提到了回调函数及SDK质量的问题，今天继续谈谈如何写个自己感觉满意的OPC程序。何为干净优雅？个人的理解就是在客户端要及时地释放不再需要的资源，在客户端创建的回调函数(如IOPCDataCallback，IOPCShutdown等)事例要优雅地退出，在服务端可以看见被客户端创建的进程在客户端释放资源后自行退出，说明客户端不再有服务端资源的占用或调用。

下面是我在客户端针对DA干净退出的样本，...]]></description><category></category></item><item><title><![CDATA[从回调函数谈OPC SDK的代码质量]]></title><link>https://blog.youkuaiyun.com/kkus123/article/details/89053709</link><guid>https://blog.youkuaiyun.com/kkus123/article/details/89053709</guid><author>kkus123</author><pubDate>Sun, 05 May 2019 03:28:19 +0800</pubDate><description><![CDATA[上篇谈了服务器的安全性问题，这次结合客户端和服务端来谈谈回调函数。什么是回调函数？也叫Callbak，它是一类由客户端发起的，在客户端执行的COM实例。客户端会把该实例的接口IID通过指定的函数(Advise())发给服务端，服务端登记下该Callbak的IID和相应接口代理地址，在合适的时候比如有了新数据时调用该Callback，这样客户端的Callback函数获得执行。简单地说，就是此时客户端...]]></description><category></category></item><item><title><![CDATA[OPC服务器到底安不安全?]]></title><link>https://blog.youkuaiyun.com/kkus123/article/details/81835983</link><guid>https://blog.youkuaiyun.com/kkus123/article/details/81835983</guid><author>kkus123</author><pubDate>Wed, 22 Aug 2018 10:27:51 +0800</pubDate><description><![CDATA[上篇写的是客户端的应用，这次谈谈服务端，服务器的安全性。你要写一个基于COM的OPC服务器，一般要先定义执行的接口见下(摘自OpcDa30Server.idl），


[
    uuid(ED0E3ADE-0CF5-47cd-A1AB-522E5E75D5CD),
    helpstring("OPC Data Access 3.00 Source Server")
]
coclass Opc...]]></description><category></category></item><item><title><![CDATA[OPC客户端分析 —— 读和写]]></title><link>https://blog.youkuaiyun.com/kkus123/article/details/80474854</link><guid>https://blog.youkuaiyun.com/kkus123/article/details/80474854</guid><author>kkus123</author><pubDate>Mon, 28 May 2018 08:50:21 +0800</pubDate><description><![CDATA[上篇给大家分析了如何在客户端进行服务器查询，今天再分析下在客户端的读和写的操作。下面这个函数囊括各路类型的读写操作，如异步或同步等等，实用性很强。


HRESULT synReadOrWrite(serverGroup* serverGroup, bool read, bool async) {

	char *buffer = (char *)malloc(MAXBYTE);

	OPCITE...]]></description><category></category></item><item><title><![CDATA[OPC客户端分析 —— 服务器查询]]></title><link>https://blog.youkuaiyun.com/kkus123/article/details/80296466</link><guid>https://blog.youkuaiyun.com/kkus123/article/details/80296466</guid><author>kkus123</author><pubDate>Mon, 21 May 2018 05:08:27 +0800</pubDate><description><![CDATA[上篇讲到了如何找到OPC服务器，具体执行是在enumServerList的函数中，获得执行IID_IOPCServerList2的实例。下面继续分析。


	MULTI_QI MultiQI[2] = { NULL };

	MultiQI[0].pIID = &amp;amp;IID_IOPCServerList;
	MultiQI[0].pItf = NULL;
	MultiQI[0].hr = S_...]]></description><category></category></item><item><title><![CDATA[OPC服务器是如何被找到的？]]></title><link>https://blog.youkuaiyun.com/kkus123/article/details/80296468</link><guid>https://blog.youkuaiyun.com/kkus123/article/details/80296468</guid><author>kkus123</author><pubDate>Sun, 13 May 2018 07:04:34 +0800</pubDate><description><![CDATA[上篇谈了OPC和COM的渊源（点击打开链接），现在继续谈下如何找到服务器。今天要说的是在每个服务器上必装的一个来自OPC基金会的应用，OpcEnum.exe。当一个客户端程序要和服务器沟通时第一步就是要问，“嘿，你那有我要的东西吗？有装OPC服务器吗？”。这个程序就负责回答这个问题。看一下OPCEnum.exe中IDL定义的唯一一个类OpcServerList。它执行了opccomn.idl中的两...]]></description><category></category></item><item><title><![CDATA[COM的起源与OPC的渊源]]></title><link>https://blog.youkuaiyun.com/kkus123/article/details/78994114</link><guid>https://blog.youkuaiyun.com/kkus123/article/details/78994114</guid><author>kkus123</author><pubDate>Sun, 11 Feb 2018 02:36:09 +0800</pubDate><description><![CDATA[从1993年微软推出COM组件技术至今已二十多年了，新出校门的小鲜肉一般都不会接触到了，也只有那些富有情怀的老炮儿可能不时唠叨二句。也赶巧了，工控网络里的技术与时俱进的步伐总是慢些，所以在工控领域COM不会很快退场，还是有它的用武之地的，再活个二十年没问题，毕竟所有的厂商都有现成的产品支持它，也倒逼那些小鲜肉来学些老古董了。

1993年前，那还不是微软独大的时候，算得上战国时代，局域网里还是No...]]></description><category></category></item></channel></rss>