INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Treiber für Beckhoff Buskoppler BK9000



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

15.08.2008, 08:57 (Dieser Beitrag wurde zuletzt bearbeitet: 15.08.2008 09:01 von rolfk.)
Beitrag #23

rolfk Offline
LVF-Guru
*****


Beiträge: 2.317
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Treiber für Beckhoff Buskoppler BK9000
' schrieb:Noch eine Merkwürdigkeit

Bei IndexOffset 0 bekomme ich die Daten von Table 0. Doch wenn ich IndexOffset auf 0xFF stelle und über Table 0 hinaus Daten einlese, kommen plötzlich die Daten von Table 100!
Jeder IndexOffset größer 0xFF kommt wieder bei Table 0 raus, als ob der IndexOffset irgendwo auf 8bit begrenzt würde.
Habe auch schon den Programmcode durchforstet. Aber überall ist die Variable 32bit groß. Hast du eine Idee für dieses Merkwürdige Verhalten?

Gruß

O.

Also wie das genau geht kann ich leider auch nicht erraten und testen geht nicht da ich schon lange keine Hardware mehr hier habe. Aber die Daten sehen ja an sich vielversprechend aus. Du hast einen Offset von 0xFA und liest dann anscheinend 12 Bytes bevor die Daten der Tabelle 100 erscheinen. 0xFA ist -6 und die Register sind 2 Bytes was dann denn Offset von 12 Bytes erklären würde.

Warum die Daten der Tabelle 100 direkt denen der Tabelle 0 folgen ist mir auch nicht deutlich aber wird wohl ein internes Mapping im Controller sein.
Der IndexOffset ist wahrscheinlich tatsächlich auf 8 Bytes in den unteren 16 Bytes bechränkt da eine Tabelle wahrscheinlich nicht mehr dann 256 Register haben kann. ABER: gemäss Doku des BK9000/9100 sollte in den oberen 16 Bytes die Tabellennummer codiert sein. Deshalb die von mir vorgeschlagenen 0x64000E um das Watchdogregister anzusprechen, respektive 0x640000 in deinem Beispiel um einen Teil oder die ganze Tabelle zu lesen.

Das die Variable 32 bit gross ist hat einfach mit der Definition des ADS Protokolls zu tun. Dort werden halt nun mal 32 Bit Werte verwendet und ich sah keinen Grund um dies in den höher gelegenen VIs künstlich zu beschränken. Für den IO Bereich hat dies keine Bedeutung da dort der Offset linear ist aber für die Register wird eben die Tabellennummer und der Registeroffset zusammen in das 32Bit Word codiert.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Treiber für Beckhoff Buskoppler BK9000 - rolfk - 15.08.2008 08:57

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Beckhoff LabVIEW Runtime Steve82 3 8.925 27.04.2012 13:49
Letzter Beitrag: Steve82
  Modbus Beckhoff Steve82 2 6.291 07.03.2012 22:53
Letzter Beitrag: Steve82
  BK9000 über Modbus TCP unter LabVIEW 8.6 utechle 4 10.655 28.01.2009 22:56
Letzter Beitrag: siham
  Beckhoff BC9000 blacky 3 8.962 25.01.2008 11:59
Letzter Beitrag: rolfk

Gehe zu: