如何通过C#读取PI实时数据
2021/11/13 11:13:33
本文主要是介绍如何通过C#读取PI实时数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
PI 实时数据库系统(Plant Information System)是由美国 OSI Software 公司开发的基于C/S、B/S结构的商品化软件应用平台,是工厂底层控制网络与上层管理信息系统连接的桥梁,PI在工厂信息集成中扮演着特殊和重要的角色。PI实时数据库系统适用于电力、石油、化工、冶金、造纸、制药、水处理、食品饮料、通讯等各种生产流程企业的生产过程优化。
很多场景需要从PI读取数据,这个怎么搞?
这个读数的套路和PHD差不多,也是先安装客户端,然后通过OSI自带的dll读取数据。OSIsoft.AFSDK.dll 就这个玩意,这个是最新版本。
安装客户端程序 PI-AF-Client_2018-SP3-Patch-3_.exe,安装过程基本上就是下一步下一步。
安装完了具体配置不算太复杂,稍微研究就能明白。
客户端搞好了,下一步就是引用动态库 OSIsoft.AFSDK.dll 这个文件客户端安装的安装目录就有。
具体写代码也简单,首先是连接PI服务器示意代码如下:
/** using OSIsoft.AF; using OSIsoft.AF.PI; using OSIsoft.AF.Asset; using OSIsoft.AF.Time; **/ private static string piAddress = "pi"; //配置客户端名称 private static PIServer piServer; private string StartServer() { try { if (piServer == null) { piServer = PIServer.FindPIServer(piAddress); piServer.Connect(); } return string.Empty; } catch (Exception ex) { return "连接PIserver失败 " + ex.Message; } }
然后就是读取数据
string[] tagArray = { "123.abc","124.abc" }; //点名 PIPointList pList = new PIPointList(PIPoint.FindPIPoints(piServer, tagArray)); AFListResults<PIPoint, AFValue> list = pList.CurrentValue(); //遍历这个即可 foreach (AFValue value in list.Results) { object o = value.Value; string key = value.PIPoint.Name; dateTime dt = value.Timestamp.LocalTime; int i = (int)value.Status; // }
好像就差不多了,数据出来了,剩下事情是你想干啥你就干啥了。
这篇关于如何通过C#读取PI实时数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#