오블완 22

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 통신 -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# Dictionary를 JSON으로 저장하기

프로그램 작성시 설정값들을 만들고 이 값을 저장하여 프로그램 재실행시 사용해야 될 경우가 있습니다.이럴때 저장을 하는 다양한 방법이 있습니다.저는 보통 예전에 설정 파일들은 INI파일 또는 xml로 저장을 하고 프로그램 시작시 설정값을 가져오는 방식으로 작성을 합니다. JSON 파일도 쓰기가 많이 좋아서  최근에 다루기 시작했는데 이번에 C#으로 JSON 파일을 저장하고 로드하는 방법에 대해 적어볼까 합니다.현재 제가 기록하고 있는 C#으로 GPIB 통신하기에도 장비검색이후 별칭으로 주소값과 함께 저장하는 내용으로 작성하였습니다.JSON은 형태가 키-값 페어로 저장되기에 현재 저장될 딕셔너리 형태 "장비 별칭" : "주소"와 같기에 딕셔너리 데이타를 JSON 데이타로 저장하는 코드를 작성하기로 하였습니다..

개발 2024.11.15

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

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

개발 2024.11.14

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

앞서 많은 작업에 필요한 사전 작업을 다 한것 같습니다.중간 중간에 여러 필요한 정보들이 있을때 또 말씀을 드리겠습니다. 일단 앞으로 작업을 정리하자면1. 윈폼으로 코드 작성 장비 검색, 장비 등록2. 제작한 윈폼으로 GPIB 통신 연결, 케이블 연결 방법, 장비 검색, 장비 등록, 1:1 통신으로 명령어 전송 및 쿼리,3. 제작한 윈폼으로 장비 2대 연결하여 계측기 자동화 해보기 위와 같이 될 듯 합니다.중간 중간에 여러 필요한 정보들이 있을때 또 말씀을 드리겠습니다. 이제 작업을 시작할것인데각자의 스타일이 있듯이 제가 코드 작성하는 스타일이 있으니 참고만 부탁드려요.처음 보시는 분은 그저 따라만 하시다가 익숙해지시면 본인이 원하는 스타일로 작성하시면 됩니다.  자~! 일단 디자인한 부분을 확인해보겠습..

개발 2024.11.13

윈폼에서 디자이너 로드 오류 해결방법

윈폼을 작업하다 보면 깜빡하고 UI 도구 이름을 설정안하고 이벤트를 만들다보니 코드에서 삭제할 때 다시 윈폼 디자이너로 가면 접근 오류가 나타납니다.   윈폼을 잘 안해보시다가 할 경우 갑작스런 현상에 당황을 하실텐데 위의 경우는 윈폼 디자이너부분과 코드 부분이 Partial Class이기 때문입니다. 윈폼의 경우 기본 제공 또는 구매한 도구(사용자 정의 도구도 있습니다.)를 이용해서 윈폼에 쉽게 배치하고 이후 동작에 대한 코드를 기록하는 방법을 사용합니다.웹이나 다른 언어의 경우 코드로만 컴포넌트들을 배치하는 경우도 있는데 윈폼이 이 경우보다 초기 디자인 작업이 많이 쉬운것 같습니다. 물론 정형화되어 있기에 보다 미려한 UI를 만들고자 하면 한계가 있습니다.물론 실력이 된다면 Form의 디자인을 코드 ..

개발 2024.11.12

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

앞서 GPIB-USB 컨버터를 통해 C#으로 통신을 하였습니다.하지만 이것은 코드에서 되는지 확인만 진행하였고 제대로 된 프로그램이라고 볼 수 없습니다.이번에는 앞선 작업을 기준으로 장비에 대한 검색과 연결을 하는 부분을 프로그램 하겠습니다.  대략적으로 어떤 기능이 필요할 지 생각을 해보면 좋을듯 합니다. 연결 장비를 확인하고 장비에 대한 정보를 받아와야 할 듯 합니다.이후 장비에 대한 등록을 진행하면 장비 검색 및 등록에 대한 절차를 마칠 수 있습니다. Visual Studio를 실행하시고 윈폼 프로젝트를 생성하여 생각한 UI를 만들도록 합니다.몇개의 장비가 연결될지 미정이므로 장비에 대한 검색은 일단 Datagridview로 하도록 하겠습니다.그리고 동작은 검색 및 등록이 있을 듯 합니다.그리고 로..

개발 2024.11.11

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

앞서 NI사의 GPIB-USB 컨버터로 통신을 하였습니다.이번에는 Keysight사의 GPIB-USB 컨버터인 82357B로 통신하는 프로그램을 만들어 볼려고 합니다.컨버터 제품이 다르기에 각 제조사의 드라이버가 필요합니다. 대표저인 회사로 NI사와 Keysight(Agilent)사가 있습니다. 82357B를 사용하기 위해서는 제조사 홈페이지에서 IO Library Suite를 다운 받아 설치하시면 됩니다. https://www.keysight.com/us/en/lib/software-detail/computer-software/io-libraries-suite-downloads-2175637.html IO Libraries Suite DownloadsDownload Keysight IO Librarie..

개발 2024.11.10

C#으로 통신하는 GPIB 프로토콜

이제 한번 GPIB 통신 프로그램에 대한 작업을 정리하도록 하겠습니다~앞서 GPIB에 대한 대략적인 이야기를 하였으니실제 C#으로 GPIB 통신을 합니다. GPIB 통신을 위해서 여러 가지 방법이 있겠지만 일단 VISA 드라이버를 사용해서 하는법으로 해보겠습니다.회사에서는 NI Measurement Studio 구입하여서 사용하고 있는데 라이센스 비용이 있다보니 사용하기가 힘들겠네요.예전에는 VisaNS를 사용하여서 작업하였는데 찾아보니 VisaNS는 더이상 지원을 하지 않는다고 하네요.예전 코드 실행하니 갑자기 안되더라고요. 헐헐 VISA란? Virtual Instrument Software Architecture(VISA) 의 약자로 계측기와 통신을 하기 위한 표준 라이브러리입니다.   일반적으로 P..

개발 2024.11.09
반응형