Q03UDVCPU 의 이더넷 포트를 이용해 PC와 통신을 하려고 한다.

 

Project > Parameter > PLC Parameter 를 더블클릭하여 Q Parameter Setting 팝업창을 연다.

Communication Data Code를 ASCII Code로 세팅한다.

Enable online change (FTP, MC Protocol)를 체크한다.

Open Setting 버튼을 클릭한다.

Built-in Ethernet Port Open Setting 팝업창이 나타난다.

- Protocol : TCP

- Open System : MC Protocol

- Host Station Port No. : 2500

 

설정을 하고 End 버튼을 누른다.

Q Parameter Setting 팝업창에서 End 버튼을 누른다.

 

GX Works2 툴바의 Write To PLC 버튼을 누른다.

Parameter를 체크하고 Execute 버튼을 눌러 설정을 PLC에 적용한다.

PLC에 파라미터 쓰기가 완료되면,  PLC 전원을 껐다 다시 킨다.

 

GX Works2 툴바의 Device/Buffer Memory Batch Monitor 버튼을 누른다.

Device Name에 M5000을 입력하고 엔터키를 누른다.

M5000의 1번을 더블클릭 한다.

Modify Value 팝업창이 나타난다.

ON 버튼을 불르고 Close 버튼을 누른다.

M5001 메모리가 1로 세팅되었다.

 

Visual Studio 2022 > 콘솔 앱을 생성한다.

 

using System.Net;
using System.Net.Sockets;
using System.Text;

IPAddress ipAddress = IPAddress.Parse("192.168.99.233");
IPEndPoint ipEndPoint = new(ipAddress, 2500);

using Socket client = new(
    ipEndPoint.AddressFamily,
    SocketType.Stream,
    ProtocolType.Tcp);

await client.ConnectAsync(ipEndPoint);

// Send request.
string message = "500000FF03FF000018000404010000M*0050000002";
byte[] messageBytes = Encoding.UTF8.GetBytes(message);
_ = await client.SendAsync(messageBytes, SocketFlags.None);
Console.WriteLine($"sent : \"{message}\"");

// Receive response.
var buffer = new byte[1_024];
var received = await client.ReceiveAsync(buffer, SocketFlags.None);
var response = Encoding.UTF8.GetString(buffer, 0, received);
Console.WriteLine($"received: \"{response}\"");

client.Shutdown(SocketShutdown.Both);

Program.cs 파일을 위 코드로 바꿔준다.

M5000 메모리에서 시작하여 2워드(M5000~M5031) 까지 메모리 값을 가져온다.

received의 마지막 8바이트가 메모리 값이다. (00020000 = M5001 메모리 값만 1 나머지는 0)

 

참고

00010000 = M5000 

00020000 = M5001

00040000 = M5002

00080000 = M5003

00100000 = M5004

 

+ Recent posts