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 

Modbus Register ändern



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.01.2016, 08:21
Beitrag #1

jan_1 Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2015

2016
2014
DE


Deutschland
Modbus Register ändern
Moin zusammen,

ich möchte ein Register auslesen, einzelne Bits ändern und wieder schreiben. Eigentlich funktioniert es soweit, allerdings mit unerwünschten Nebeneffekten.
Das Register besteht aus vier 16-Bit-Integers, ich möchte lediglich beim Ersten die Bits 8 und 9 ändern. Bei dem was ich jetzt gebastelt habe, passiert es auch so, aber bei weiteren Durchläufen werden auch die Bits der restlichen drei Integers geändert, aber ich will ja nur den Ersten ändern.
Könnt ihr mir sagen, was ich verkehrt gemacht habe?

Beste Grüße
Jan


Angehängte Datei(en)
15.0 .vi  n.vi (Größe: 15,33 KB / Downloads: 216)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.01.2016, 09:58
Beitrag #2

Nordvestlys Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 108
Registriert seit: Sep 2014

2015 (und testweise 2016)
2005
EN

07743
Deutschland
RE: Modbus Register ändern
Du fügst das geänderte Arrayelement an erster Stelle ein. Damit verschieben sich die übrigen Arrayelemente nach hinten. Das Array wird also immer länger. Und bei Durchgang zwei und drei siehst Du das ehemals "erste" Element auch auf den hinteren Plätzen.

=> "Replace Subset" anstatt "Insert into Array" verwenden.

Übrigens kannst Du die verschiedenen Bits auch anders setzen/löschen:

   

Bei "nur" einem zu setzendem Bit hat es keinen großen Vorteil gegenüber Deiner Methode. Aber wenn Du mal mehrere Bits gleichzeitig oder flexibel setzen/löschen willst, wird es übersichtlicher. Ob die Zahlen / Bitkombinationen binär oder dezimal dargestellt werden, ist egal. (Auch ein "umschalten" einzelner Bits ist möglich mit "XOR".)

Hth

bis denne,
* mario *
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.01.2016, 10:06
Beitrag #3

jan_1 Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2015

2016
2014
DE


Deutschland
RE: Modbus Register ändern
Danke für den Hinweis! Ich will ja ersetzen und nicht anhängen...
Und danke für den anderen Vorschlag, über XOR hab ich an anderer Stelle auch schon nachgedacht, mal gucken ob ich das hinkriege Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Mit MyRio über I2C BMP280 Register auslesen Crash 0 1.643 16.06.2022 19:55
Letzter Beitrag: Crash
  Arrays, Shift Register in einem Blockcode grba123 1 3.724 05.02.2015 09:23
Letzter Beitrag: GerdW
  Shift register Initialisieren jak888 7 8.943 02.12.2010 10:17
Letzter Beitrag: BMTstudent
  Frontpanel-Element (Register) Größe verändern WolfiB 4 7.394 30.11.2009 21:05
Letzter Beitrag: jg
  Frage zum Fokus eines Register Tabs HansWerner 7 6.915 24.08.2009 19:20
Letzter Beitrag: IchSelbst
  Shift Register -While Schleife- Kathy 4 6.533 01.04.2009 14:44
Letzter Beitrag: snwbnd

Gehe zu: