C#_PISDK快速高效率采集SCADA数据点


利用PISDK提供的接口实现1秒采集1万个数据点效率
资源截图
代码片段和文件信息
using System;
using System.Collections;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Text;
using System.Windows.Forms;
using PISDK;
using PISDKCommon;
using System.Runtime.InteropServices;
using System.Threading;

namespace PI_Edit
{
    public partial class Form1 : Form
    {
        private PISDK.PISDK piSDK;   // 定义PISDK接口piSDK
        private Server server;       // 定义Server接口server
        private PISDK.PIValue piValue;
        private PISDK.ListData listData;
        private PointList pilist = new PointList();
        private PointValues values;
        private EventPipe eventpipe;
        private PIValues pivalues;
        private PIValue pv;
        private PIAsynchStatus piassynch;
        private PISDK._DEventPipeEvents_Event EventNew;
        private PISDK.EventPipe mdbEvents;

        private static string Errorpath = AppDomain.CurrentDomain.baseDirectory + “Errorlog.txt“;


        /// 
        /// 构造函数
        /// 

        public Form1()
        {
            InitializeComponent();
            piSDK = new PISDKClass();  // 创建PISDKClass对象,并使接口piSDK指向它
            // 对ListBox控件lstServer进行初始化,使其列出服务器列表中的所有服务器名
            foreach (Server srv in piSDK.Servers)
            {
                lstServer.Items.Add(srv.Name);
            }
            // 使lstServer控件的选中项为默认服务器名
            lstServer.SelectedItem = piSDK.Servers.DefaultServer.Name;
            // 使PI用户为默认服务器的默认用户
            txtUser.Text = piSDK.Servers.DefaultServer.DefaultUser;
            // 使接口server指向默认服务器
            server = piSDK.Servers[lstServer.SelectedItem.ToString()];
            comboBox1.Items.Add(“Eventpoint“);
            comboBox1.Items.Add(“pointValues“);
            comboBox1.SelectedIndex = 0;
            textBox1.Text = “1000“;
        }

        private void btnConnect_Click(object sender EventArgs e)
        {
            DataTable table = new DataTable();
            if (comboBox1.SelectedItem.ToString() == “Eventpoint“)
            {
                ADDEventpoint(table);
                timer1.Tick -= new EventHandler(getpointvalues);
                timer1.Tick -= new EventHandler(getEventpipe);
                timer1.Tick += new EventHandler(getEventpipe);
            }
            if (comboBox1.SelectedItem.ToString() == “pointValues“)
            {
                ADDPointValues(table);
                timer1.Tick -= new EventHandler(getEventpipe);
                timer1.Tick -= new EventHandler(getpointvalues);
                timer1.Tick += new EventHandler(getpointvalues);
            }
        }

        /// 
        /// 取时时数据没有重复的点号,指定几个就是几个 PointValues取法
        /// 

        /// 
        private void ADDPointValues(DataTable table)
        {
            OpenPIServer();
            DateTime startTime = DateTime.Now;
            foreach (DataRow Row in table.Rows)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-05-31 22:13  PISDK_SCADA_快速采取示例
     目录           0  2015-05-31 18:35  PISDK_SCADA_快速采取示例PI_Edit
     文件         990  2015-05-31 18:34  PISDK_SCADA_快速采取示例PI_Edit.sln
     文件       22016  2008-11-16 22:00  PISDK_SCADA_快速采取示例PI_Edit.suo
     文件       52736  2015-05-31 22:11  PISDK_SCADA_快速采取示例PI_Edit.v12.suo
     文件         134  2014-09-22 16:53  PISDK_SCADA_快速采取示例PI_Editapp.config
     目录           0  2015-01-26 23:46  PISDK_SCADA_快速采取示例PI_Editin
     目录           0  2015-01-26 23:46  PISDK_SCADA_快速采取示例PI_EditinDebug
     文件       40960  2002-12-09 11:24  PISDK_SCADA_快速采取示例PI_EditinDebugOSIsoft.OSIDAAuto.dll
     文件       49152  2003-01-31 08:44  PISDK_SCADA_快速采取示例PI_EditinDebugOSIsoft.OSIHDAAuto.dll
     文件      237568  2007-08-13 11:50  PISDK_SCADA_快速采取示例PI_EditinDebugOSIsoft.PISDK.dll
     文件       32768  2007-08-13 11:50  PISDK_SCADA_快速采取示例PI_EditinDebugOSIsoft.PISDKCommon.dll
     文件       12288  2007-08-13 11:59  PISDK_SCADA_快速采取示例PI_EditinDebugOSIsoft.PISDKCtl.dll
     文件       12800  2007-08-13 11:59  PISDK_SCADA_快速采取示例PI_EditinDebugOSIsoft.PISDKDlg.dll
     文件       32768  2007-08-13 11:50  PISDK_SCADA_快速采取示例PI_EditinDebugOSIsoft.PITimeServer.dll
     文件      585728  2006-11-27 12:18  PISDK_SCADA_快速采取示例PI_EditinDebugpiapi32.dll
     文件       31232  2014-11-17 17:24  PISDK_SCADA_快速采取示例PI_EditinDebugPI_Edit.exe
     文件         134  2014-09-22 16:53  PISDK_SCADA_快速采取示例PI_EditinDebugPI_Edit.exe.config
     文件       50688  2014-11-17 17:24  PISDK_SCADA_快速采取示例PI_EditinDebugPI_Edit.pdb
     文件       21656  2015-05-31 22:11  PISDK_SCADA_快速采取示例PI_EditinDebugPI_Edit.vshost.exe
     文件         134  2014-09-22 16:53  PISDK_SCADA_快速采取示例PI_EditinDebugPI_Edit.vshost.exe.config
     文件         490  2013-06-18 20:28  PISDK_SCADA_快速采取示例PI_EditinDebugPI_Edit.vshost.exe.manifest
     文件    13682003  2014-09-30 09:36  PISDK_SCADA_快速采取示例PI_EditinDebugSCAdAloglog.txt
     目录           0  2015-01-26 23:46  PISDK_SCADA_快速采取示例PI_EditinDebug新建文件夹
     文件      585728  2006-11-27 12:18  PISDK_SCADA_快速采取示例PI_EditinDebug新建文件夹piapi32.dll
     文件       22016  2014-09-23 10:27  PISDK_SCADA_快速采取示例PI_EditinDebug新建文件夹PI_Edit.exe
     文件         134  2014-09-22 16:53  PISDK_SCADA_快速采取示例PI_EditinDebug新建文件夹PI_Edit.exe.config
     目录           0  2014-11-20 19:41  PISDK_SCADA_快速采取示例PI_EditinRelease
     文件       16494  2015-05-31 18:34  PISDK_SCADA_快速采取示例PI_EditForm1.cs
     文件       16809  2015-05-31 18:33  PISDK_SCADA_快速采取示例PI_EditForm1.Designer.cs
     文件        6008  2014-11-17 15:57  PISDK_SCADA_快速采取示例PI_EditForm1.resx
............此处省略52个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)