TCP 클라이언트를 통해 전자 보관함을 제어하는 PLC로 명령을 보내려고합니다. 연결할 수 있지만 이 내 명령이 PLC에서으로 읽히지 않습니다.TCP 클라이언트를 통해 PLC에 CMD 보내기
private const string STX = "0x02";
private const string ETX = "0x03";
private const string STATUS = "0x30";
private const string OPEN = "0x31";
private const string SUM = STX + ETX;
static void Main(string[] args)
{
var tcpClient = new TcpClient();
tcpClient.Connect("192.168.1.190", 4000);
if (tcpClient.Connected)
{
var networkStream = tcpClient.GetStream();
if (networkStream.CanWrite)
{
var ADDY = "00";
var asciiEncode = new ASCIIEncoding();
byte[] b = asciiEncode.GetBytes(STX + ADDY + OPEN + ETX + SUM);
networkStream.Write(b, 0, b.Length);
byte[] b1 = new byte[100];
var k = networkStream.Read(b1, 0, 100);
for (var i = 0; i < k; i++)
{
Console.WriteLine(Convert.ToChar(b1[i]));
}
}
}
}
상태/OPEN 보낼 수있는 명령입니다 :
나는 다음과 같은 코드가 있습니다. PLC에는 설명서가 들어 있으며 여기에 picture이 있습니다. 내 CMD가 잘못되었다고 가정하고 어떻게 수정합니까? 이것은 처음으로 PLC에 연결하고 명령을 보내거나 가져 오는 것입니다. 어떤 도움을 주셔서 감사합니다.
"SUM : STX에서 ETX 로의 1 바이트 미만의 데이터 합계"STX와 ETX를 연결하는 문자열입니다. 체크섬은 확실히 모든 바이트의 합계라고 가정합니다. –