Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 2 von 2

Thema: write in c#

  1. #1
    Registriert seit
    19.04.2011
    Beiträge
    1
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    ich habe ein Problem beim Ändern/Schreiben von Ausgängen aus einer C# Anwendung heraus. Mit dem Systemmanager habe ich mir zuerst eine Konfiguration erstellt welche ein E/A Gerät, FC310x-SLAVE, enthält. Dieses Gerät verfügt über:

    1 Byte Slave-In/Master-Out_0_0 Eingänge Ads Info: Port: 301, IGrp: 0xF020, IOffs: 0x1, Len: 1
    1 BYTE Slave-Out/Master-In Ausgänge Ads Info: Port: 301, IGrp: 0xF030, IOffs: 0x0, Len: 1
    Diese Ein- u. Ausgangsbytes sind verknüpft auf Task 1.

    Bei der Programmierung habe ich mich weitest gehend an dem "Machine Beispiel" auf der Beckhoffseite orientiert.

    Initialisierung wie folgt.

    privatevoid Form1_Load(object sender, EventArgs e)
    {
    try
    {
    dataStream =
    newAdsStream(7);
    binReader =
    newBinaryReader(dataStream);
    tcClient =
    newTcAdsClient();
    tcClient.Connect(301);
    // war 801
    hInbits = tcClient.AddDeviceNotification(0xF020, 1, dataStream, 0, 1, AdsTransMode.OnChange, 10, 0, null);
    tcClient.AdsNotification +=
    newAdsNotificationEventHandler (tcClient_OnNotification);
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    }

    schreiben in einen Ausgang passiert wie folgt.

    privatevoid textBox2_Leave(object sender, EventArgs e)
    {
    try
    {
    AdsStream ds = newAdsStream(1);
    BinaryWriter bw = newBinaryWriter(ds);
    ds.Position = 0;
    bw.Write((
    byte)100);
    tcClient.Write(0xF030, 0, ds, 0, 1);
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    }

    Aber ich bekomme beim schreiben immer den Fehler "0x705 Parameter size ist inkorrekt". Ich habe schon ein wenig mit der Größe des Streams experimentiert, aber das hat leider nichts geholfen.

    Weiß jemand wie hier korrekterweise das Ausgangsbyte geschrieben wird?
    Zitieren Zitieren write in c#  

  2. #2
    Registriert seit
    19.10.2009
    Beiträge
    194
    Danke
    8
    Erhielt 50 Danke für 44 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Dein Code ist OK, ich habe es getestet - bei mir funktioniert der Schreibzugriff. Fehler 0x705 bekomme ich wenn ich die Ausgangsvariable lösche.
    Ich vermute, dass im Ausgang-Prozessabbild der I/O Task eine Variable an Byte-Adresse 0 fehlt. Füge bitte einen Ausgang an Byte-Adresse 0 an, und aktiviere die Konfiguration. Nach TwinCAT-Neustart sollte der Schreibzugriff funktionieren.

    Gruß,
    witkatz

Ähnliche Themen

  1. Libnodave & SPS Write Protection
    Von hik im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 07.03.2011, 15:41
  2. SDB's mit write-Befehlen ädnern?
    Von tasty im Forum Hochsprachen - OPC
    Antworten: 4
    Letzter Beitrag: 21.09.2010, 16:42
  3. Read/Write IniFile
    Von Ockenfuss im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 20.09.2010, 08:28
  4. Das Fetch/Write Protocol
    Von Alexandr im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 19.01.2010, 01:22
  5. Fetch/Write mit SPS !
    Von Assemble im Forum Feldbusse
    Antworten: 2
    Letzter Beitrag: 03.06.2008, 22:41

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •