이더넷으로 XGT PLC와 통신하기
관련자료
사용설명서_XGT FEnet_국문_V2.0_160412.pdf
다운로드
제8장 전용통신을 참고하세요.
예제
VB6에서 소켓통신으로 데이터를 보내려면 바이트 단위로 전송해야 한다.
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 FunctionbSendData_Ascii 값은 아래 예제 코드의 헥사값을 HexToString라는 함수를 만들어 변환한 것인데 ChrB("&H" & saHex) 처럼 ChrB() 함수를 사용해야 한다는 것이 중요하다.
그 다음 Byte 형식의 배열 변수에 넣고 SendData를 하면 된다.
여기서 SCK는 WinSocket의 Name이다.
D1000번지의 16비트값을 읽는 코드
송신 데이터4C5349532D58475400000000A0330200110003405400020000000100070025445731303030
수신 데이터4C5349532D584754000004013F02000E000324550002000201000001000200744E
헥사 분할표
헥사값은 위와 같이 송수신 할 때 스왑을 해야한다.
※ ChrB() 함수를 적용하면 위 표와 달리 문자가 깨져보인다. 위 그림은 ChrW()함수를 사용한 참고용.
송수신 결과 (프레임번호, BCC, Length 계산 참고용)4C 53 49 53 2D 58 47 54 00 00 00 00 A0 33 3F00 10 00 00 7D 54 00 14 00 00 00 01 00 04 00 25 44 42 30 02 00
4C 53 49 53 2D 58 47 54 00 00 00 00 A0 33 4000 10 00 00 7E 54 00 14 00 00 00 01 00 04 00 25 44 42 30 02 00
4C 53 49 53 2D 58 47 54 00 00 00 00 A0 33 4100 10 00 00 7F 54 00 14 00 00 00 01 00 04 00 25 44 42 30 02 00
A: 송수신 데이터 매칭용으로 00 ~ FF까지 자유 설정. 1:1 통신은 00 가능- 동시에 여러개를 송수신할 때 순서가 섞일 수 있으므로 어떤 질문에 대한 답인지 알아야 하므로 Invoke ID를 설정한다.A: 헤더 길이 (Hex Sum) (1Byte) 여기까지 헤더 (00도 통신 됨)- 4C부터 00까지 모두 더한 값의 2자리값이다.A: 헤더 이후 길이 (Hex Sum)
(2Byte)
- 위 예제에서 54 부터 00까지 16개이므로 16진수로 10이다. 스왑을 했으므로 10 00이 된다.
XGT Ethernet �� LS ������ ���� PLC XGT �ø���� ����� ���� ����̹��̴�.
1. �б� ����<�� 1>�� XGT Ethernet ��� ����̹��� ��ż��� ���̴�.
<�� 1> XGT Ethernet ����̹��� ��� ���� ��
<�� 1>�� ����̽� ������ ���� �������� ����(TCP/IP), PLC�� IP ����(192.168.1.68), ���� ��Ʈ(2004) ������ ��� ������ ���� �Է��Ѵ�.
���� �ɼ� �ο��� CPU �� Slave �� ��� ��ſ����� �� �������� ����(0 = ���� �ƴ�, 1 = ����ó��, �⺻ = 0)�� �����Ѵ�.
����) XGT Ethernet�� IP ���� ���� ������ LS �������� �����ϴ� XG-PD ���α����� ���� �Ѵ�.
�� ���� ��Ʈ�� 2004(TCP/IP)���� 2005(UDP/IP)������ �����Ǿ� �ִ�.
XGT Ethernet�� ����̹��� �б� �ۼ� ����
XGT Ethernet ��� ����̹��� �б� �ۼ� ������ ������ ���� ���� ������ �ۼ��Ѵ�.
1) ����� �����̼� – ������.
2) ���� ����̽� ���� – P, M, K, F, T, C, U, Z, S, L, N, D, R, ZR�� PLC ����̽��� �Է�. (<ǥ 1> ����)
����̽� ���� ������ X(10 ��Ʈ), W(����), D(���� ����), F(Float Lo Hi), F2(Float Hi Lo) �� ���� ����(�⺻ = W)�� �Է��Ѵ�.
3) ���� ���۹��� – ������ ����̽����� ���� ���۹���.
4) ��� �� ���� ��ġ - ���� ���� ����� ��� �� ���۹���.
5) ���� ũ�� – �ѹ��� ���� �������� ũ��. (�ִ� 750����)
�б� ���� ��)
READ, 0, PW, 0, 0, 16,
READ, 0, MW, 0, 20, 16,
READ, 0, KW, 0, 40, 16,
READ, 0, FW, 0, 60, 16,
READ, 0, TW, 0, 80, 16,
READ, 0, CW, 0, 100, 16,
READ, 0, UW, 0, 120, 16,
READ, 0, ZW, 0, 140, 16,
READ, 0, SW, 0, 160, 16,
READ, 0, LW, 0, 180, 16,
READ, 0, NW, 0, 200, 16,
READ, 0, DW, 0, 220, 16,
READ, 0, RW, 0, 240, 16,
<ǥ 1>�� XGT Ethernet ��� ����̹����� ����ϴ� PLC ����̽� ������ ũ���̴�.
����̽� ���� | ���� | ũ�� | ��� |
P | P0 ~ P2047 | 2048 ���� | |
M | M0 ~ M2047 | 2048 ���� | |
K | K0 ~ K2047 | 2048 ���� | |
F | F0 ~ F1023 | 2048 ���� | �б� ���� |
F1024 ~ F2047 | |||
T | T0 ~ T2047 | 2048 ���� | |
C | C0 ~ C2047 | 2048 ���� | |
U | U00.00 ~ U7F.31 | 4096 ���� | |
Z | Z0 ~ Z127 | 128 ���� | |
S | S0 ~ S127 | 128 ���� | |
L | L0 ~ L11263 | 11264 ���� | |
N | N0 ~ N21503 | 21504 ���� | |
D | D0 ~ D32767 | 32768 ���� | CPUH |
D0 ~ D19999 | 20000 ���� | CPUS | |
R | R0 ~ R32767 | 32768 ���� | |
ZR | ZR0 ~ ZR65535 | 65536 ���� | CPUH �� �� |
<ǥ 1> XGT Ethernet ��� ����̹����� ����ϴ� PLC ����̽� ������ ũ��
<�� 1> �������� �ɼǺ��� �������� Ŭ���ϸ� <�� 2>�� ��ȭ���ڰ� ��Ÿ���µ� ���⼭�� �б� ������ �ۼ��� �� �ִ�.
<�� 2> XGT Ethernet ��� ����̹��� �б� ���� ��ȭ����
<�� 2>��
<�� 2>�� ��Error When CPU is Slave Mode�� ���������� CPU �� Slave �� ��� ��ſ����� �� �������� ���θ� ������ �� �ִ�.
<�� 3>�� <�� 2>�� ��ȭ���ڿ��� �б� ������ �߰� �Ǵ� ������ �� ��Ÿ���� ��ȭ�����̴�.
<�� 3> XGT Ethernet ��� ����̹��� �б� ���� READ �߰�/���� ��ȭ������ ��
2. ���� �������� �������� XGT PLC�� Ư�� ����̽��� ���� ������ �� �ִ�.
������ ����
������ ���⸦ ���� ������ ��� �±� ���� �� �ʿ��� ���
1) Port ����� �����Ʈ ��ȣ. (COM ��ȣ�� �ƴ�)
2) Station ������.
3) Address ����� ����.
PX, MX, KX,�� P, M, K, �� = �� 3 ~ 7�ڸ� - ����̽��� ���� ���� 10���� ��¹���, �� 1�ڸ� – 0 ~ F ��Ʈ 16���� ��¹���
PW, MW, KW, �� = �� 3 ~ 7�ڸ� - ����̽��� ���� ���� 10���� ��¹���, �� 1�ڸ� – 0 ~ F ��Ʈ 16���� ��¹���.
4) Extra1 P, M, K, F, T, C, U, Z, S, L, N, D, R, ZR�� ����̽� ���� �Է�. (<ǥ 1> ����)
5) Extra2 ������.
���� ��1)
PORT : 0 STATION : 0 ADDRESS : 123F EXTRA1 : MW EXTRA2 : 0 ���� �����ϰ� ������ ����� �ϸ� 0 �� ��Ʈ�� ����� XGT PLC�� MW123.F ���� ���� ����(ON/OFF)�� �� �ִ�.
���� ��2)
PORT : 0 STATION : 0 ADDRESS : 0052 EXTRA1 : MX EXTRA2 : 0 ���� �����ϰ� ������ ����� �ϸ� 0 �� ��Ʈ�� ����� XGT PLC�� MX005.2 ���� ���� ����(ON/OFF)�� �� �ִ�.
���� ��3)
PORT : 0 STATION : 0 ADDRESS : 0125 EXTRA1 : DX EXTRA2 : 0 ���� �����ϰ� ������ ����� �ϸ� 0 �� ��Ʈ�� ����� XGT PLC�� DX0125 ���� ���� ����(ON/OFF)�� �� �ִ�.
�Ƴ��α� ����
�Ƴ��α� ���⸦ ���� �Ƴ��α� ��� �±� ���� �� �ʿ��� ���
1) Port ����� �����Ʈ ��ȣ. (COM ��ȣ�� �ƴ�)
2) Station ������.
3) Address ����� ����̽��� ����(W, ��Ÿ)/��������(D)/Float(F, F2)���� 10���� ��¹���.
4) Extra1 P, M, K, F, T, C, U, Z, S, L, N, D, R, ZR�� ����̽� ���� �Է�. (<ǥ 1> ����)
����̽� ���� ������ W(����), D(���� ����), F(Float Lo Hi), F2(Float Hi Lo) �� ���� ����(�⺻ = W)�� �Է�.
5) Extra2 ������.
���� ��1)
PORT : 0 STATION : 0 ADDRESS : 0012 EXTRA1 : MW EXTRA2 : 0 ���� �����ϰ� �Ƴ��α� ����� �ϸ� 0 �� ��Ʈ�� ����� XGT PLC�� MW0012 ���� ���带 ������ ������ ������ �� �ִ�.
���� ��2)
PORT : 0 STATION : 0 ADDRESS : 0037 EXTRA1 : DW EXTRA2 : 0 ���� �����ϰ� �Ƴ��α� ����� �ϸ� 0 �� ��Ʈ�� ����� XGT PLC�� DW0037 ���� ���带 ������ ������ ������ �� �ִ�.
���� ��3)
PORT : 0 STATION : 0 ADDRESS : 0063 EXTRA1 : DD EXTRA2 : 0 ���� �����ϰ� �Ƴ��α� ����� �ϸ� 0 �� ��Ʈ�� ����� XGT PLC�� DD0063 ���� �������带 ������ ������ ������ �� �ִ�.
���� ��4)
PORT : 0 STATION : 0 ADDRESS : 0072 EXTRA1 : DF EXTRA2 : 0 ���� �����ϰ� �Ƴ��α� ����� �ϸ� 0 �� ��Ʈ�� ����� XGT PLC�� DD0063 ���� �������带 Float Lo Hi ������ ��ȯ ��(IEEE ����)�� ����� �� �ִ�.
���� ��5)
PORT : 0 STATION : 0 ADDRESS : 0005 EXTRA1 : DF2 EXTRA2 : 0 ���� �����ϰ� �Ƴ��α� ����� �ϸ� 0 �� ��Ʈ�� ����� XGT PLC�� DD0002 ���� �������带 Float Hi Lo ������ ��ȯ ��(IEEE ����)�� ����� �� �ִ�.
3. ������̺� �� �⺻���� ����XGT PLC�� Ethernet ������̺� �� �⺻������ ������ ���� �����Ѵ�.
������̺� ����
XGT PLC�� Ethernet ��� ī�� RJ45 ���ڿ�(<�� 4> ����)�� �Ϲ����� Ethernet ������̺��� �����Ѵ�.
<�� 4>�� XGT PLC�� ����̴�.
<�� 4> XGT PLC�� ���
�⺻���� ����
<�� 4>�� ���� XGT PLC�� L, N ���ڿ� 110 ~ 240 V AC �⺻������ �����Ѵ�.
4. XGT PLC�� Ethernet ��� ī���� IP ���� ���� ����XGT PLC�� Ethernet ��� ī���� IP ����, �������� ���� ������ ���� ������� �����Ѵ�.
1) LS �������� �����ϴ� XG-PD ���α��� �����ϸ� <�� 5>�� ���� ȭ���� ��Ÿ����.
2) XG-PD ���α��� ���ɼ�|PLC Ÿ�� ������ ������ �˸��� PLC�� �����Ѵ�.
3) ���¶���|���ӡ��� �����Ͽ� PLC�� �����Ѵ�.
4) PLC ���� �� ���¶���|IO ���� �б⡯�� �����Ͽ� ���� ������ ������ �о�´�.
5) ���� Ethernet ���ī�尡 ������ ���̽�|���Կ� ��Ÿ�� ������ ���� �ʾ����� ��� ��� ������ ��FEnet���� �����Ѵ�.
6) ������ ��Ÿ�� ������ ����(���콺 ���ʹ�ư ����Ŭ��)�ϸ� <�� 6>�� ��ȭ���ڰ� ��Ÿ����.
7) <�� 6>���� IP ����, ����̹� ����(XGT ������ ����) ���� �����Ѵ�.
8) <�� 6>���� ���ο��̺� ȣ��Ʈ ���̺����� üũ( V )�ϸ� ������ IP ���������� ��ǻ�Ϳ����� PLC���� ����� �����ϴ�.
<�� 5> XG-PD ���α��� �ʱ� ȭ���� ��
<�� 6> Ethernet ���ī�带 ���� IP���� ���� ������ ���� ��ȭ������ ��