Доброго всем времени суток!
Не работает следующий код:
Console.WriteLine("Begin");
var client = new S7Client();
client.SetConnectionType(S7Client.CONNTYPE_BASIC);
int connectionResult = client.ConnectTo("192.168.0.106", 0, 2);
if (connectionResult == 0)
{
Console.WriteLine("Connection OK");
S7Client.S7Protection levelProtect = new S7Client.S7Protection();
int errorProtected = client.GetProtection(ref levelProtect);
Console.WriteLine();
Console.WriteLine("GetErrorProtection : " + errorProtected);
Console.WriteLine("Protection level");
Console.WriteLine("sch_schal : " + levelProtect.sch_schal);
Console.WriteLine("sch_par : " + levelProtect.sch_par);
Console.WriteLine("sch_rel : " + levelProtect.sch_rel);
Console.WriteLine("bart_sch : " + levelProtect.bart_sch);
Console.WriteLine("anl_sch : " + levelProtect.anl_sch);
Console.WriteLine();
int status = -1;
client.PlcGetStatus(ref status);
Console.WriteLine("Status : " + status + "\n");
var buffer = new byte[12];
int readResult = client.DBRead(1, 0, buffer.Length, buffer);
//int readResult = client.DBRead(1, 0, 4, buffer);
if (readResult == 0)
{
Console.WriteLine("DB1 Read OK");
bool db1dbx00 = S7.GetBitAt(buffer, 0, 0);
bool db1dbx01 = S7.GetBitAt(buffer, 0, 1);
bool db1dbx02 = S7.GetBitAt(buffer, 0, 2);
bool db1dbx03 = S7.GetBitAt(buffer, 0, 3);
Console.WriteLine(db1dbx00);
Console.WriteLine(db1dbx01);
Console.WriteLine(db1dbx02);
Console.WriteLine(db1dbx03);
}
else
{
Console.WriteLine("DB1 Read Error : " + readResult + "," +client.ErrorText(readResult));
}
}
else
{
Console.WriteLine("Connection ERROR : " + connectionResult + "," + client.ErrorText(connectionResult));
}
client.Disconnect();
Console.WriteLine("Для завершения программы нажмите <Enter>");
Console.ReadLine();
Подключаюсь через NetToPLCsim к S7-PLCSIM1 из STEP7 (V 5.6)
В консоли отображается следующее:
Begin
Connection OK
GetErrorProtection : 0
Protection level
sch_schal : 1
sch_par : 1
sch_rel : 1
bart_sch : 3
anl_sch : 0
Status : 4
DB1 Read Error : 12582912, CPU : Item not available
Для завершения программы нажмите
Не пойму почему ошибка! Получается что соединение идёт. Обмен данными идёт тоже, раз статусы PLC машина получает. Но блок DB1 не прочитать. Создана тестовая PLC в Step7. В конфигурации только и есть блок DB1 размером 12 байт. CPU в STEP7 проекте выбран CPU 315-2 PN/DP.
Может кто-нибудь объяснить в чём затык?