2024/11 31

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

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

개발 2024.11.22

ASP.net core SignalR 해보면서

최근에 ASP.net core에서 SignalR이라는 기술을 접해보았습니다.좋아하고 많이 다루는 언어는 C#인데 주로 Winform의 환경만 다루다 보니 확장된 기술을 사용하고 싶다는 열망이 가득했었습니다.통신 서버는 주로 장비와 연결하기 위한 서버라서  콘솔환경에서 Tcp/IP 서버 프로그램 만들고 클라이언트에서 Winform으로 데이타를 수신해서 사용했는데 웹기술을 한번 익히고는 싶었습니다. 그러던중 Blazor라는 기술이 나와서 조금씩은 익히고는 있었습니다. Blazor 보면서 SignalR이라는 기술이 있는데SignalR이라는것이 무엇인가? 감이 잘 안왔는데 최근에 수업을 들으면서 공부할 수 있었습니다.https://learn.microsoft.com/ko-kr/aspnet/core/signalr..

개발 2024.11.21

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 통신 -6-

이제 현재 UI 작업하였고 클래스도 만들어 구조를 정하였습니다.각각 클래스에 코드 작업을 하도록 하겠습니다. JsonManager.cs (v)DeviceInfo.csCommManager.csGpibManager.csControlManager.csForm1.cs위의 클래스를 코딩작업을 해야 합니다.앞서 JsonManager.cs 클래스는 완료하였고 이제 DeviceInfo.cs를 작업하겠습니다.구조를 정하고 각 기능 클래스들을 하나씩 작성하고 마지막으로 UI에 붙여주도록 하겠습니다. DeviceInfo.cs 파일은 검색된 장비들에 대한 데이타를 보관할 클래스가 필요하다고 생각하여서 만들었습니다.단일 장비일경우 활용도가 약할텐데 다수의 같은 구조의 데이타를 가진 장비의 정보를 가진 객체를 활용할려면 장비 정..

개발 2024.11.15
반응형