ANSI C기반 DAQ 샘플 속도 변경 방법 LabVIEW와 ANSI C 기반의 DAQ 수집 과정은 동일하지만 설정하는 방법이 조금 다른 점이 있습니다. 이 부분에 대한 설정 방법을 알려드리도록 할께요. 1) LabVIEW 코드 LabVIEW의 전압 연속 샘플링 코드를 수행할 때 샘플 속도/읽을 갯수를 지정하게 되면 문제없이 동작을 하게 됩니다. 기존의 코드 값인 1000/100도 문제가 없이 동작을 하고, 3600/360으로 변경을 해도 아래의 그림과 같이 동일하게 동작을 하게 됩니다. 2) Ansi C 기반의 코드 하지만 Ansi C에서 샘플 속도와 읽을 갯수를 변경하여 지정을 하게 되면 아래와 같은 에러가 발생을 합니다. 아래의 에러코드는 샘플 속도/읽을 샘플 갯수의 지정이 잘못되어 발생하는 문제가..
[LabVIEW] 랩뷰 자격증 CLD 취득!! 1개월전에 시험을 친 CLD 합격을 하였습니다. 개인정보 보호법에 의거(?) 또 제이름은 지웠습니다. 구현시 기능하나가 제대로 안되서 걱정을 많이 했었는데, 그래도 합격을 하니 기분이 좋네요~! ^^ 생각보다 고득점이 나왔습니다. Functionality 부분에서는 거의 만점이 나왔으나, Documentation에서는 77% 밖에 점수를 얻지 못했네요. 조금만 더 잘받았으면 90점 이상으로 통과할 수 있었는데 조금은 아쉬운 점이 있습니다. CLD는 4시간동안 요구사항에 맞춰서 실질적으로 구현하는 내용이라 시간이 많이 부족합니다. 이 부분 참고하셔서 코딩을 많이 해보시는 수 밖에 없을것 같습니다. 기능부분은 많이 구현을 해야 점수가 잘나오겠죵~ ㅡ,.ㅡ;; 크..
CAN 통신 사용시 종단 저항 설정 방법 CAN 통신은 속도에 따라서 사용하는 트랜시버의 종류가 달라지게 되고, 이로 인해 통신 방식 및 속도에 따라 종단 저항을 설정을 해줘야 합니다. 종단 저항을 설정하는 이유는 임피던스 매칭을 위해서 사용이 됩니다. 물론 NI에서 판매하는 종단 저항이 달린 케이블을 이용하게 되면 종단 저항을 설정할 필요는 없습니다. 관련 제품의 내용은 아래와 같습니다. 종단 저항 달린 케이블 확인하기 : http://sine.ni.com/nips/cds/view/p/lang/ko/nid/206738 그럼 High Speed와 Low Speed의 CAN 통신시 필요한 종단 저항에 대해서 알아보도록 하겠습니다. 1) High-Speed CAN High-Speed CAN 은, 신호선의(C..
CAN 통신이란? CAN (Controller Area Network)은 1985년 Bosch사에서 차량 네트워크용으로 최초로 개발되었습니다. 차량에 필요한 장비들이 늘어남에 따라 결선 및 무게에 대한 문제점이 발생하였고, CAN은 이를 해결하기 위한 대안으로 고려되었습니다. 결국 CAN은 지능형 디바이스 네트워크 구축을 위한 높은 무결성의 시리얼 버스 시스템으로서 차량용 네트워크의 표준으로 부상하였습니다. 자동차 업계에서는 신속하게 CAN을 도입하였으며 1993년에는 ISO에서 국제 표준 규격 (ISO 11898)으로 제정하였습니다. 1994부터 CANopen, DeviceNet 등 CAN에 대한 여러 가지 상위 레벨 프로토콜이 표준화되었습니다. CAN은 다수의 CAN 장비간의 효율적인 통신을 가능하게..
본 글은 C#, C, LabVIEW 기반의 공통된 내용입니다. [IMAQ] 비전 함수 메모리 릭(Memory Leak) 이슈 IMAQ Dispose 함수는 IMAQ 함수들을 이용하여 사용한 이미지 관련 메모리 할당 부분을 해제해주는 기능을 합니다. 해제를 하기 위해서는 IMAQ 생성 및 파일 읽기등을 통해서 가져온 메모리 주소에 대한 정보가 필요합니다. 코드상에서 여러번의 이미지를 생성할 수 있기 때문에 이에 대한 정보는 모두 가지고 있어야 합니다. Dispose 함수의 경우 프로그램 상에서 이미지가 더이상 필요가 없는 경우에만 사용을 하는 것이 좋습니다. 사용이 종료되고 Dispose를 하지 않았을 때는 사용자의 PC 메모리는 점점 늘어나는 것을 확인할 수 있는데 이는 Memory Leak에 대한 이슈..
NI DIAdem을 통해서 MySQL 서버의 데이터를 가지고 오는 방법은 없을까요? 기존의 DIAdem의 기능으로는 MySQL에 접속할 수 있는 방법은 없습니다. 하지만 DIAdem은 VBScript를 통해서 추가적인 기능을 구현할 수 있죠. VBScript를 활용한다면 충분히 DIAdem에서도 Database에 접속하여 데이터를 가져올 수 있습니다. 그럼 DIAdem에서 Database에 접속하기 위해 필요한 내용을 확인해 볼까 합니다. DIAdem에서 Database에 접속하기 위해서는 ADO(ActiveX Data Object)를 사용해야 합니다. ADO는 Database를 다루는 객체입니다. 이는 마이크로소프트 사에서 제공하는 데이터 접근 기술의 하나로, OLEDB 기반의 인터페이스 입니다. OL..
MySQL 1175 에러 해결 방안 MySQL로 작업할때, Where절을 이용하여 Update 혹은 Delete를 하는 경우 1175 에러를 발생하면서 사용자가 실행한 쿼리문이 실행이 되지 않는 경우가 있습니다. Error Code: 1175 You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column 1175 에러의 경우 Safe Update가 적용이 되어 있어 Where 절을 사용해서 Update를 못하게 설정상 막아 놓은 것입니다. 따라서 이설정 값만 변경해 주면 되겠죠. 1175를 해결할 수 있는 방법은 아래와 같이 2가지 방법이 있습니다. 1) SQL 구문 이용하여 설정 변경..
[LabVIEW] 랩뷰 디자인 패턴 1 - 상태머신 이 글에서는 LabVIEW에서 가장 많이 사용하고 있는 디자인 패턴 중 하나인 상태머신에 대해서 알아보도록 하겠습니다. 상태머신을 이해하기 위해서는 '상태'가 무엇을 의미하는지 부터 파악하고 있어야 할 것 같습니다. 컴퓨터 공학 혹은 전자 계열의 전공을 가지신 분이라면 상태다이어그램에 다해서 많이 들어보셨을 겁니다. 상태 다이어그램을 그릴려면 어떻게 해야 할까요? 어떠한 프로그램을 구현해야 할 때 요구사항이 필요할 것입니다. 이러한 요구사항은 어떠한 기능을 수행하는지 판단하고 이를 언어로 구체화 시켜야 합니다. [상태 다이어그램의 예] 상태란? 시간의 흐름에 따라 변하는 객체의 값을 말합니다. 상태는 시작, 끝, 상태 전이로 구분을 할 수 있습니다. 이..
QAM(Quadrature Amplitude Modulation) 이해 및 LabVIEW에서 사용하기 일반적으로 디지털 변조방식은 진폭편이변조, FSK, BPSK, QPSK, 8-PSK, 16-PSK, MSK, Guassian MSK, QAM으로 분류할 수 있습니다. 이렇듯 QAM은 디지털 변조 방식 중 하나로써, PSK와 ASK의 특성을 동시에 가지는 변조방식입니다. QAM은 0,1로 이루어진 데이터 스트림을 받아 서로 다른 진폭과 위상을 대비시켜 신호를 생성하는 것을 말합니다. QAM은 2개의 반송파인 동상 반송파(In-Phase)와 직각 위상(Quadrature) 반송파의 진폭과 위상을 변환하여 데이터를 전송합니다. QAM은 4-QAM, 16-QAM, 64-QAM, 256-QAM, 1024-QAM을..
[LabVIEW] 디자인패턴 그리고 랩뷰 랩뷰 및 다른 언어를 이용하여 조금 더 효율적으로 프로그래밍하고자 한다면 어떤 방법을 사용할 수 있을까요? 프로그래머라면 한번씩은 다들 들어본 디자인 패턴이 이에 대한 방법이 될 수 있을 것입니다. 그럼 디자인패턴이란 무엇일까요? 프로그래밍 언어이 발전하면서 각 세대에 유행하는 언어가 만들어졌습니다. 이 언어들의 차이는 객체지향-절차지향 혹은 구문에 대한 차이만 있을 뿐 프로그래밍에서 자료구조와 알고리즘은 동일하게 처리가 되고 있습니다. 그 이유는 프로그래밍 언어가 달라져도 처리해야 하는 요구사항은 비슷하기 때문일 겁니다. 프로그래머들이 프로그래밍을 하면서 시간이 흐름에 따라 A 알고리즘을 구현할 때는 A 방식으로 짜고, B 알고리즘을 구현할 때는 B 방식으로 짜..