윈폼 12

C#으로 하는 TCP/IP 통신 -2-

안녕하세요. 워시기 입니다.한동한 포스팅을 못하였네요.이번 포스팅에서는 코드를 한번 작성해 보겠습니다. TCP/IP 통신을 하기위해서는 Socket 클래스를 불러오는 방법이 있고 또는 Helper 클래스인 TcpClient, TcpListener, UdpClient 클래스가 있습니다.저는 보통  Helper 클래스를 많이 씁니다. 예전에는 Socket 클래스를 쓰긴 했는데 TcpClient 클래스 쓰다보니 다른것 못쓰겠네요. 상황에 따라서 쓰면 됩니다~일단 간단한 에코 서버를 만들고 클라이언트 서버를 만들고 이후 조금더 고도화 작업을 해보겠습니다. 1.서버작업새 프로젝트 만드시고 저는 윈폼으로 만들겠습니다.Form1에 Textbox 만드시고 Textbox 이름은 Tbox_Log라고 변경해주세요.우측 상단..

개발 2024.12.07

C#으로 하는 TCP/IP 통신 -1-

안녕하세요. 이번 포스팅에서는 C#으로 하는 TCP/IP 통신에 대해 정리해볼까 합니다. 통신 프로그램은 정말 중요한 부분인것 같습니다. 장비자체에 UI 인터페이스가 있어 사용자가 제어하는 장치도 있지만 외부와 통신라인으로만 연결하여 원격으로 제어하는 장비에는 통신이라는 요소가 정말 중요합니다.그리고 통신을 하기 위한 다양한 산업용 프로토콜이 있습니다.정말 다양한 프로코톨을 익힐 수록 도움이 많이 되는것 같습니다. 장비와 통신을 해야 하는데 산업용 프로코톨은 쉽게 접해보지 않다보니 처음에 많이 힘들 수 있습니다.이번 포스팅은 네트워크 프로그램을 다룬다면 필수 요소인 TCP/IP를 C#으로 구현해보겠습니다. 일단 통신 프로그램을 작성하고자 한다면 OSI 7계층은 익숙해져야 합니다.https://namu.w..

개발 2024.11.22

C# 으로 하는 RS-232 -2-

Visual Studio를 이용하여 작성을 시작하겠습니다.  프로젝트 실행하시고 Window Forms 앱(.NET Framework) 선택하고 이름 입력하고 [확인] 버튼 누르면 프로젝트가 생성됩니다. C#에서는 도구 상자에서 SerialPort를 가져오는 방법과 System.IO.Port를 기입하여 관련 네임스페이스에 정의된 내용들을 가져오는 방법이 있습니다.저는 System.IO.Port를 통해 작성하도록 하겠습니다.Using문을 통해 해당 네임스페이스를 등록하도록 하겠습니다. Serial Port를 열기 위해 가장 중요한 파라미터는포트 번호buadrate : 전송 속도Data BitParity BitStop Bit위의 파라미터가 설정되어 객체를 인스턴스하면 통신이 됩니다. 대략적으로 UI 는 다음..

개발 2024.11.20

C#으로 하는 RS-232 -1-

안녕하세요~ 이번에는 c#으로 하는 RS-232통신에 대해 알아보겠습니다. RS-232는Recommended Standard 232는 1960년에 도입된 표준의 하나로 직렬방식의 인테이스의 하나이다.일반적으로 직렬 포트라고 불리기도 한다. 핀 정의  : (1)DCD  : Data Carrier Detect               (2)RXD  : Receive Data               (3)TXD  : Transmit Data                (4)DTR  : Data Terminal Ready               (5)GND  : Ground               (6)DSR   : Data Set Ready               (7)RTS    : Ready to ..

개발 2024.11.19

C#으로 하는 GPIB 통신 Fin

이제 GPIB로 하는 통신 프로그램 작업은 완료가 되었습니다.2개의 장비를 연결하여 테스트를 하면서 C#으로 하는 GPIB 통신에 대한 포스팅을 마무리 하도록 하겠습니다. 참 혹시나 모르시는 분도 계실듯 해서 GPIB 케이블 연결부연설명을 드리자면 케이블의 생김새는 다음과 같습니다.GPIB 통신을 지원하는 장비에는 GPIB 포트가 있습니다. 대부분 계측기가 다수의 장비를 GPIB 케이블로 연결을 해야해서인지 GPIB 포트에 바로 GPIB-USB 컨버터를 연결하기 어려운 장비가 많이 있습니다.  보통 2개의 장비를 연결한다고 할때 계측기 하나는 위와 같이 연결하고 다른 하나는 아래와 같이 연결하면 두 계측기가 하나의 통신라인으로 연결이 됩니다.  보통 계측기 연결시 별모양과 같이 가운데서 가지처럼 연결하는..

개발 2024.11.18

C#으로 하는 GPIB 통신 -10-

JsonManager.cs       ( v )DeviceInfo.cs           ( v )CommManager.cs    ( v )GpibManager.cs       ( v )ControlManager.cs   ( v )Form1.cs                  (    )드디어 C#으로 하는 GPIB 통신의 마지막 포스팅입니다.여기까지 읽어주신 분들께 감사드립니다. 이제 이 프로그램의 기능은 클래스에서 구현을 모두 하였고 UI와 연결을 하도록 하겠습니다.using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;us..

개발 2024.11.17

C#으로 하는 GPIB 통신 -9-

JsonManager.cs       ( v )DeviceInfo.cs           ( v )CommManager.cs    ( v )GpibManager.cs       ( v )ControlManager.cs   (    )Form1.cs                  (    )안녕하세요~이제 GPIB 통신 프로그램에서 GPIB 통신을 다루는 부분을 마무리 하고 UI과 연계해서 GPIB 통신을 제어하는 ControlManager 클래스를 작성하네요. UI의 기능을 많이 정의하지 않다 보니 ControlManager 부분에 많은 메서드가 많이 사용되지는 않겠네요.현재 작성하고 있는 프로그램의 기능이 단순하다 보니 그러한데GPIB 통신 프로그램으로 기본적인 기능은 있으니 내용을 보시고 참고하셔서 ..

개발 2024.11.16

C#으로 하는 GPIB 통신 -8-

JsonManager.cs       ( v )DeviceInfo.cs           ( v )CommManager.cs    ( v )GpibManager.cs       (    )ControlManager.cs   (    )Form1.cs                  (    )앞서 CommManager까지 작성을 완료하였습니다이제 GPIB를 관장하는 클래스를 작성하도록 하겠습니다. using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Ivi.Visa;namespace GPIB_Demo{ public class GpibManager ..

개발 2024.11.16

C#으로 하는 GPIB 통신 -7-

JsonManager.cs       ( v )DeviceInfo.cs           ( v )CommManager.cs    (    )GpibManager.cs       (    )ControlManager.cs   (    )Form1.cs                  (    )지난번까지 DeviceInfo 클래스까지 작성을 하였습니다.이제 통신에 관한 클래스를 만들어 보겠습니다. 통신부는 VISA를 이용해서 작성을 하면 됩니다.검색하시면 관련 자료 많이 찾으실 수 있을꺼예요.다만 라이브러리에 맞는 예제를 찾으셔야 시간 낭비를 줄일 수 있습니다.제조사 라이브러리가 주는 장점도 있는데 특정기능을 VISA로 구현하려면 어려운 경우가 있는데 이것을 쉽게 할 수 있는 메서드가 있습니다. 그리고 계..

개발 2024.11.15

C#으로 하는 GPIB 통신 - 5 -

이제 본격적으로 제가 하는 방식으로 코드를 작성해 보겠습니다.앞서 윈폼에서 바로 작성하는 방식으로 작업을 하였는데 C#의 로직부분만 최대한 드러내기 편한 구조로 작성을 할려고 하는 편입니다. 일단 기존에 작성한 솔루션을 로딩하겠습니다~일단 수정할 부분과 어떤 기능들이 추가로 들어갈지 생각을 해보도록 하겠습니다. 수정 사항 및 추가 사항1. UI에 있는 로직들을 옮긴다.2. UI에 탐지장비와 테스트 통신할 수 있는 부분 추가3. Set 버튼을 누를때 해당 정보를 파일에 저장4. 검색된 장비들 테스트 송수신 가능5. 프로그램 로딩시 파일을 읽어와서 통신 여부 확인  위의 내용으로 대략적인 클래스 구조를 그려봤습니다. 윈폼 UI와 ControlManager와 서로 연결되어 있고 그 하위에 GPIB를 관장하는 ..

개발 2024.11.14
반응형