*** 저울에서 데이터 가져오기
안녕하세요. Visual Basic로 디지털 저울의 데이터를 가져오고 싶습니다.
알고 계신 분들의 조언 부탁드립니다. _._ 꾸벅..
점수는 후하게~~
[질문자 채택답변] 인터페이스를 먼저 확인해야 될거 같습니다.
chul2la4 님이 2004-05-31 15:14 작성
정확히 디지탈저울의 외부 인터페이스 방식을 알려 주세요 !!!!!
일반적으로 RS-232C통신을 많이 사용합니다. 이런경우 PC에서는 데이터를 받기만 하므로 통신포트,속도,패리티 등의 설정만 잘한다면 무리없이 통신이 가능할거라고 봅니다. 먼저 Microsoft Comm Control을 컨트롤 툴바에 추가 합니다.
Comm Control의 포트를 설정합니다.
'---------------------------------------------
MSComm1.CommPort = 1 '포트 1번
MSComm1.Settings="9600,n,8,1" '속도=9600bps,패리티=no,데이터비트=8bit,패리티비트=1bit
If MSComm1.PortOpen = False Then '포트가 닫혀있으면
MSComm1.PortOpen = True '포트를 연다
End If
'컴포트에 데이터가 도착하면 OnComm이벤트 발생
Private Sub MSComm1_OnComm()
Dim m_Posion As Long
Dim InBuff As String
InBuff = MSComm1.Input
Text1.Text=InBuffer '데이터를 알맞은 길이로 자르면 됨
DoEvents
End Sub
---------------------------------------------
RS-232C를 이용한 통신은 위에 보는거 처럼 간단 합니다. 제일 중요한건 속도 및 기타 설정 값들을 디지털 저울에서 규정하고 있는 인터페이스 규약에 맞게 설정하는 겁니다. 만일 디지털 저울에서 RS-232C 방식이 아닌 프린터 포트(페러럴포트) 방식이라면 별도로 프린터 포트를 조작할수 있는 DLL을 C++로 만들어서 VB에서 이용하면 됩니다.
출처 : 본인의 글입니다.
의견 : 아. 제가 빼먹었군요.. (juhhong 님이 2004-05-31 16:01 작성)
님의 가르침에 감사드립니다. 제가 LPT port란 말씀을 안드렸군요. 페러럴 포트로 데이터를 뺄수 있는 방법을 자세히 가르쳐 주시면 더욱 감사하겠습니다....^^
의견 : Parallel포트로 통신하는 방법 (chul2la4 님이 2004-05-31 18:25 작성)
//---------------------------------------------
#include <stdio.h>
#include <conio.h>
// Microsoft's Visual C++ _outp() 함수를 사용하여
// 프린터 포트(일반적으로 378)에 데이터를 출력함.
short _stdcall Outprt( int PortAddress, int PortData )
{
short Port_sta;
Port_sta = (short)(_outp( PortAddress, PortData ));
return(Port_sta);
};
// Microsoft's Visual C++ _inp() 함수를 사용하여
// 프린터 포트(주소)에서 데이터를 읽어옴.
short _stdcall Inprt( int PortAddress )
{
short PortData;
PortData = (short)(_inp( PortAddress ));
return( PortData );
}
//---------------------------------------------
위의 소스코드로 Parallel.cpp 파일을 만듦니다.
Visual C++에서 DLL로 컴파일해서 Parallel.dll을 생성합니다.
Parallel.dll을 시스템에 등록하시고 아니면 VB가 실행되는곳에 복사해도 됩니다
아래 VB소스를 코딩합니다.
'Parallel.Dll(Win32DLL) 참조
'프린터 포트로의 출력
Public Declare Function Outprt Lib "Parallel.dll" (ByVal PortAddress As Integer, ByVal Data As Integer) As Integer
'프린터 포트에서 입력
Public Declare Function Inprt Lib "Parallel.dll" (ByVal PortAddress As Integer) As Integer
버튼을 클릭하면 데이터를 프린터 포트로 출력
Outprt &H378, 0 '378번지에 0의 데이터 값 전송
'타이머를 하나 돌려서 프린터 포트에서의 입력값을 체크 합니다.
Private Sub InPutTime_Timer()
2004-07-21Dim iVal As Integer
iVal = Inprt(&H279) '279번지에서 들어오는 값을 받음(아마 Default PC 입력 포트는
'279번지인거 같습니다. 제가 279번지라고 하드코딩해놓을걸 보니..
'귀찮아서 확인 않해봤음 죄송 ^^)
'iVal값을 분석해보면 디지털저울의 값을 알수있을겁니다. 그다음 처리는 님의 몫으로...
End Sub
http://www.howtobank.net/vbboard/zboard.php?id=p_vbsource&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=1923
이곳에 가면 DLL파일과 소스파일 다운로드 할수 있을겁니다.
안녕하세요. Visual Basic로 디지털 저울의 데이터를 가져오고 싶습니다.
알고 계신 분들의 조언 부탁드립니다. _._ 꾸벅..
점수는 후하게~~
[질문자 채택답변] 인터페이스를 먼저 확인해야 될거 같습니다.
chul2la4 님이 2004-05-31 15:14 작성
정확히 디지탈저울의 외부 인터페이스 방식을 알려 주세요 !!!!!
일반적으로 RS-232C통신을 많이 사용합니다. 이런경우 PC에서는 데이터를 받기만 하므로 통신포트,속도,패리티 등의 설정만 잘한다면 무리없이 통신이 가능할거라고 봅니다. 먼저 Microsoft Comm Control을 컨트롤 툴바에 추가 합니다.
Comm Control의 포트를 설정합니다.
'---------------------------------------------
MSComm1.CommPort = 1 '포트 1번
MSComm1.Settings="9600,n,8,1" '속도=9600bps,패리티=no,데이터비트=8bit,패리티비트=1bit
If MSComm1.PortOpen = False Then '포트가 닫혀있으면
MSComm1.PortOpen = True '포트를 연다
End If
'컴포트에 데이터가 도착하면 OnComm이벤트 발생
Private Sub MSComm1_OnComm()
Dim m_Posion As Long
Dim InBuff As String
InBuff = MSComm1.Input
Text1.Text=InBuffer '데이터를 알맞은 길이로 자르면 됨
DoEvents
End Sub
---------------------------------------------
RS-232C를 이용한 통신은 위에 보는거 처럼 간단 합니다. 제일 중요한건 속도 및 기타 설정 값들을 디지털 저울에서 규정하고 있는 인터페이스 규약에 맞게 설정하는 겁니다. 만일 디지털 저울에서 RS-232C 방식이 아닌 프린터 포트(페러럴포트) 방식이라면 별도로 프린터 포트를 조작할수 있는 DLL을 C++로 만들어서 VB에서 이용하면 됩니다.
출처 : 본인의 글입니다.
의견 : 아. 제가 빼먹었군요.. (juhhong 님이 2004-05-31 16:01 작성)
님의 가르침에 감사드립니다. 제가 LPT port란 말씀을 안드렸군요. 페러럴 포트로 데이터를 뺄수 있는 방법을 자세히 가르쳐 주시면 더욱 감사하겠습니다....^^
의견 : Parallel포트로 통신하는 방법 (chul2la4 님이 2004-05-31 18:25 작성)
//---------------------------------------------
#include <stdio.h>
#include <conio.h>
// Microsoft's Visual C++ _outp() 함수를 사용하여
// 프린터 포트(일반적으로 378)에 데이터를 출력함.
short _stdcall Outprt( int PortAddress, int PortData )
{
short Port_sta;
Port_sta = (short)(_outp( PortAddress, PortData ));
return(Port_sta);
};
// Microsoft's Visual C++ _inp() 함수를 사용하여
// 프린터 포트(주소)에서 데이터를 읽어옴.
short _stdcall Inprt( int PortAddress )
{
short PortData;
PortData = (short)(_inp( PortAddress ));
return( PortData );
}
//---------------------------------------------
위의 소스코드로 Parallel.cpp 파일을 만듦니다.
Visual C++에서 DLL로 컴파일해서 Parallel.dll을 생성합니다.
Parallel.dll을 시스템에 등록하시고 아니면 VB가 실행되는곳에 복사해도 됩니다
아래 VB소스를 코딩합니다.
'Parallel.Dll(Win32DLL) 참조
'프린터 포트로의 출력
Public Declare Function Outprt Lib "Parallel.dll" (ByVal PortAddress As Integer, ByVal Data As Integer) As Integer
'프린터 포트에서 입력
Public Declare Function Inprt Lib "Parallel.dll" (ByVal PortAddress As Integer) As Integer
버튼을 클릭하면 데이터를 프린터 포트로 출력
Outprt &H378, 0 '378번지에 0의 데이터 값 전송
'타이머를 하나 돌려서 프린터 포트에서의 입력값을 체크 합니다.
Private Sub InPutTime_Timer()
2004-07-21Dim iVal As Integer
iVal = Inprt(&H279) '279번지에서 들어오는 값을 받음(아마 Default PC 입력 포트는
'279번지인거 같습니다. 제가 279번지라고 하드코딩해놓을걸 보니..
'귀찮아서 확인 않해봤음 죄송 ^^)
'iVal값을 분석해보면 디지털저울의 값을 알수있을겁니다. 그다음 처리는 님의 몫으로...
End Sub
http://www.howtobank.net/vbboard/zboard.php?id=p_vbsource&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=1923
이곳에 가면 DLL파일과 소스파일 다운로드 할수 있을겁니다.
첨부파일첨부된 파일이 1개 있습니다.
다음검색