Hallo zusammen,
ich versuche, mit C# und der B&R API PVIServices, Hardwareinformationen von einer X20CP1584 zu bekommen. Dazu verwende ich die INA2000 Linie und eine Ethernetverbindung.
Ich kann bereits erfolgreich eine Verbindung zur SPS herstellen und verschiedene Objekte hochladen (z.B. mit der Methode BR.AN.PviServices.Cpu.HardwareInfos.Upload())
Sobald ich aber BR.AN.PviServices.Cpu.ReadHardwareInfo() aufrufe wird der Fehlercode 15028 zurückgegeben.
In der B&R doku steht dazu folgendes:
Leider hilft mir das nichts.
Hatte jemand von euch schon einmal das gleich oder ein ähnliches Problem?
Ich bin für jede Antwort dankbar.
Grüße
Consultant
PS: Hier der Quellcode:
ich versuche, mit C# und der B&R API PVIServices, Hardwareinformationen von einer X20CP1584 zu bekommen. Dazu verwende ich die INA2000 Linie und eine Ethernetverbindung.
Ich kann bereits erfolgreich eine Verbindung zur SPS herstellen und verschiedene Objekte hochladen (z.B. mit der Methode BR.AN.PviServices.Cpu.HardwareInfos.Upload())
Sobald ich aber BR.AN.PviServices.Cpu.ReadHardwareInfo() aufrufe wird der Fehlercode 15028 zurückgegeben.
In der B&R doku steht dazu folgendes:
Zugriffsart wird nicht unterstützt |
Die mit der Anwenderfunktion PviRead oder PviWrite übergebene Zugriffsart (Access) wird vom Typ des angesprochenen Prozessobjekts bzw. von der verwendeten Linie nicht unterstützt. |
Leider hilft mir das nichts.
Hatte jemand von euch schon einmal das gleich oder ein ähnliches Problem?
Ich bin für jede Antwort dankbar.
Grüße
Consultant
PS: Hier der Quellcode:
Code:
using System;
using System.Windows.Forms;
using BR.AN.PviServices;
namespace ConsoleApplication
{
class Class2
{
// Definition of global communication objects
static Service service;
static Cpu cpu;
/// <summary>
/// Creating communication objects
/// </summary>
[STAThread]
static void Main(string[] args)
{
Console.WriteLine("Connecting Service ...");
service = new Service(EventMessageType.CallBack, "service");
service.Error += new PviEventHandler(Error);
service.Connected += new PviEventHandler(service_Connected);
service.Connect();
Application.Run();
}
static void service_Connected(object sender, PviEventArgs e)
{
Console.WriteLine("Service Connected Error=" + e.ErrorCode.ToString());
cpu = new Cpu(service, "cpu");
cpu.Connection.DeviceType = DeviceType.TcpIp;
cpu.Connection.TcpIp.DestinationIpAddress = "10.0.0.5";
cpu.Error += new PviEventHandler(Error);
cpu.Connected += new PviEventHandler(cpu_Connected);
Console.WriteLine("Connecting Cpu ...");
cpu.Connect();
}
static void cpu_Connected(object sender, PviEventArgs e)
{
Console.WriteLine("Cpu Connected Error=" + e.ErrorCode.ToString());
cpu.HardwareInfos.Uploaded += new PviEventHandler(HardwareInfos_Uploaded);
Console.WriteLine("Uploading hardware infos...");
cpu.HardwareInfos.Upload();
}
private static void HardwareInfos_Uploaded(object sender, PviEventArgs e)
{
Console.WriteLine("Hardware infos uploaded Error=" + e.ErrorCode.ToString());
cpu.HardwareInfoRead += new PviEventHandler(Cpu_HardwareInfoRead);
Console.WriteLine("Reading hardware info...");
var error = cpu.ReadHardwareInfo(); //error hat nach dem Methodenaufruf den Wert 15028
}
static void Cpu_HardwareInfoRead(object sender, PviEventArgs e)
{
Console.WriteLine("Hardware info read Error=" + e.ErrorCode.ToString());
Console.WriteLine("Hardware info: " + cpu.HardwareInfo);
}
static void Error(object sender, PviEventArgs e)
{
Console.WriteLine(String.Format("Error: {0}", e.ErrorText));
}
}
}