xgt fenet 예제

| 0

. . 송수신 결과 (프레임번호, BCC, Length 계산 참고용) VB6에서 소켓통신으로 데이터를 보내려면 바이트 단위로 전송해야 한다. 4C5349532D58475400000000A0330200110003405400020000000100070025445731303030 헥사값은 위와 같이 송수신 할 때 스왑을 해야한다. 그 다음 Byte 형식의 배열 변수에 넣고 SendData를 하면 된다. – 동시에 여러개를 송수신할 때 순서가 섞일 수 있으므로 어떤 질문에 대한 답인지 알아야 하므로 Invoke ID를 설정한다. – 4C부터 00까지 모두 더한 값의 2자리값이다. bSendData_Ascii 값은 아래 예제 코드의 헥사값을 HexToString라는 함수를 만들어 변환한 것인데 ChrB(“&H” & saHex) 처럼 ChrB() 함수를 사용해야 한다는 것이 중요하다. 4C 53 49 53 2D 58 47 54 00 00 00 00 A0 33 3F 00 10 00 00 7D 54 00 14 00 00 00 01 00 04 00 25 44 42 30 02 00 A: 헤더 길이 (Hex Sum) (1Byte) 여기까지 헤더 (00도 통신 됨) . SendData_Hex = “4C5349532D584754” & _ “0000” & _ “0000” & _ “A0” & _ “33” & _ ByteSwap(Format$(Hex$(Invoke_ID), “0000”), sckHex) & _ ByteSwap(Format$(Hex(10 + sVarLength), “0000”), sckHex) & _ “03” & _ Format$(Hex(((Val(&H33E) + Val(“&H” & Hex(Invoke_ID)))) Mod 256), “00”) & _ Replace(StringToHex(setReadWrite), ” “, “”) & _ ByteSwap(Format$(sDataType, “0000”), sckHex) & _ “00” & “00” & _ “01” & “00” & _ ByteSwap(Format$(sDeviceLength, “0000”), sckHex) & _ Replace(StringToHex(sStartDevice), ” “, “”) SendData_Ascii = HexToString(SendData_Hex) Dim bSendData_Ascii() As Byte bSendData_Ascii = SendData_Ascii SCK. SendData bSendData_Ascii Function HexToString(ByVal sText As String) As String Dim saHex As String, i As Long Dim cut_index As Integer Dim sub_String As String cut_index = 1 Do saHex = Mid(sText, cut_index, 2) sub_String = sub_String & ChrB(“&H” & saHex) cut_index = cut_index + 2 Loop While cut_index < Len(sText) HexToString = sub_String End Function A: 송수신 데이터 매칭용으로 00 ~ FF까지 자유 설정.

1:1 통신은 00 가능 ※ ChrB() 함수를 적용하면 위 표와 달리 문자가 깨져보인다.

Follow admin:

Latest posts from