write in c#

QBert

Level-1
Beiträge
1
Reaktionspunkte
0
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.

private void Form1_Load(object sender, EventArgs e)
{
try
{
dataStream =
new AdsStream(7);
binReader =
new BinaryReader(dataStream);
tcClient =
new TcAdsClient();
tcClient.Connect(301);
// war 801
hInbits = tcClient.AddDeviceNotification(0xF020, 1, dataStream, 0, 1, AdsTransMode.OnChange, 10, 0, null);
tcClient.AdsNotification +=
new AdsNotificationEventHandler (tcClient_OnNotification);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

schreiben in einen Ausgang passiert wie folgt.

private void textBox2_Leave(object sender, EventArgs e)
{
try
{
AdsStream ds = new AdsStream(1);
BinaryWriter bw = new BinaryWriter(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?
 
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
 
Zurück
Oben