Ich versuche, einen Befehl an eine SPS zu senden, die elektronische Schließfächer über einen TCP-Client steuert. Ich bin in der Lage zu verbinden, aber es erscheint mein Befehl wird nicht gelesen von der SPS.Senden von CMD an die SPS über den TCP-Client
Ich habe den folgenden Code:
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]));
}
}
}
}
STATUS/OPEN sind die Befehle, die gesendet werden können. Die PLC kam mit einigen Unterlagen und hier ist eine picture davon. Ich gehe davon aus, dass mein CMD falsch ist, wie kann ich es beheben? Dies ist das erste Mal, dass ich versuche, eine Verbindung herzustellen und Befehle von einer SPS zu senden/abrufen. Jede Hilfe wird geschätzt.
"SUM: Datensumme unter 1 Byte von STX zu ETX" Sie fügen nur STX und ETX hinzu (als Strings, die sie verketten). Die Prüfsumme soll sicherlich eine Summe aller Bytes sein. –