B&R PVIServices Fehlernummer 12058

Consultant

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
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 12058 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 werde ich aus der Meldung nicht wirklich schlau.

Hatte jemand von euch schon einmal das gleiche oder ein ähnliches Problem?

Ich bin um 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 12058
        }

        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));
        }
    }
}
 
Zuletzt bearbeitet:
Zurück
Oben