외부 프로그램과 통신

Protocol

외부 프로그램과 통신

간단한 프로그램을 개발 가능한 사용자는 X-Scada의 프로토콜 중에 하나인  "Execute 프로토콜"을 사용하실 수 있습니다.

이 프로토콜은 외부 프로그램과 통신이 가능하기 때문에, 사용자가 만든 프로그램으로 직접 장비와 통신이 가능합니다.

 

개념도

69da4891193e92bab008e8baa54d5c65_1527918525_7818.png
 

 

X-Scada의 Execute Protocol은

ReadRequest시엔 매개변수 1개를 가지고 프로그램을 실행시킵니다.

WriteRequest시엔 매개변수 2개를 가지고 프로그램을 실행시킵니다.

 

사용자는 위의 규칙에 맞게 프로그램을 개발하여 사용하시면 됩니다.

 

1. 장치 추가 및 프로토콜 선택

69da4891193e92bab008e8baa54d5c65_1527918550_9398.png 

e04c0c23095c148d8ea84ab2bd9a7b82_1527841932_6814.PNG

 

 

2. 사용자가 개발한 프로그램 경로 설정

e04c0c23095c148d8ea84ab2bd9a7b82_1527841963_6196.PNG

 

3. 해당 프로토콜을 이용한 작화 샘플 (시간값 ReadOnly 프로그램)

(해당 샘플에 사용된 프로그램은 윈도우 시스템에서 시간 값을 가져와 반환하는 기능을 가지고 있습니다.)

e04c0c23095c148d8ea84ab2bd9a7b82_1527842110_8701.PNG
 

4. 사용된 시간값 읽기 프로그램 코드 (C#)

using System; 

namespace HelloWorld

{

    class Program

    {

        static void Main(string[] args)

        {            

            int result = 0;

            foreach (var arg in args)

            {

                arg.ToLower();

                if (arg.Equals("year"))

                {

                    result = DateTime.Now.Year;

                }

                else if (arg.Equals("month"))

                {

                    result = DateTime.Now.Month;

                }

                else if (arg.Equals("day"))

                {

                    result = DateTime.Now.Day;

                }

                else if (arg.Equals("hour"))

                {

                    result = DateTime.Now.Hour;

                }

                else if (arg.Equals("min"))

                {

                    result = DateTime.Now.Minute;

                }

                else if (arg.Equals("sec"))

                {

                    result = DateTime.Now.Second;

                }

                else if (arg.Equals("mil"))

                {

                    result = DateTime.Now.Millisecond;

                }

                else

                {

                    continue;

                }

                Console.WriteLine(result);

            }

        }

    }

}

 




 

[이 게시물은 관리자님에 의해 2021-08-02 17:19:17 Device에서 이동 됨]
[이 게시물은 관리자님에 의해 2021-08-04 16:53:11 Designer에서 이동 됨]
0 답글
제목