본문 바로가기

프로그래밍/OPC (OLE for Process Control)

[OPC] 간단한 OPC Client 예제 - 1

반응형

다운로드 - visual studio 2010에서 작성

OPCClient.zip


[OPC] 간단한 OPC Client 예제 -1

OPC Server 연결/연결 끊기 

1 - Prog ID 입력 테스트박스

2 - OPC Server 연결 버튼

3 - OPC Server 연결끊기 버튼

4 - OPC Server 연결상태

ProgID를 입력하고 Connect 버튼을 누르면 OPC Server에 연결이 되고 "Connected."로 표시가 변경 됩니다. Disconect를 누르면 OPC Server연결을 해제하고 "Not Connected."로 표시 됩니다.


다음 글에는 서버 상태 표시 및 그룹 생성에 대해서 올리도록 하겠습니다.


소스코드

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;


using OPCAutomation;


namespace OPCClient

{

    public partial class FormMain : Form

    {

        //OPC Server 변수

        private OPCAutomation.OPCServer _OPCServer = null;

        

        public FormMain()

        {

            InitializeComponent();

        }


        private void Form1_Load(object sender, EventArgs e)

        {

            //변수 초기화

            this.Initialize();

        }


        /// <summary>

        /// 변수 초기화

        /// </summary>

        private void Initialize()

        {

            _OPCServer = new OPCServer();

        }

        

        /// <summary>

        /// OPC서버와 연결

        /// </summary>

        /// <param name="Server">OPC Server</param>

        /// <returns></returns>

        private bool ConnectOPCServer(OPCAutomation.OPCServer Server, string ProgID)

        {

            try

            {

                Server.Connect(ProgID);

                return true;

            }

            catch

            {

                return false;

            }


        }


        private void btnConnect_Click(object sender, EventArgs e)

        {

            string ProgID = this.txtProgID.Text;


            if (string.IsNullOrEmpty(ProgID))

            {

                return;

            }


            //OPC서버 연결

            if (this.ConnectOPCServer(_OPCServer, ProgID))

            {

                this.lblNotConnected.Text = "Connected.";                

            }

            else

            {

                this.lblNotConnected.Text = "Not Connected.";

            }


        }


        private void btnDisconnect_Click(object sender, EventArgs e)

        {

            try

            {

                _OPCServer.Disconnect();

                this.lblNotConnected.Text = "Not Connected.";                

            }

            catch

            {


            }

        }

    }

}



'프로그래밍 > OPC (OLE for Process Control)' 카테고리의 다른 글

[OPC] OPCFOUNDATION 웹 사이트  (0) 2018.06.26