4 bits maxmiale Anzahl an Kombinationen über Integer

Anaconda55

Level-1
Beiträge
301
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

die Anlage hat 4 Bits die als Störungsbits für die übergeordnete Steuerung bereitstehen.

Hab mir folgendes ausgedacht.
Wie kann ich in AWL ein Funktion erstellen wo ich eine Fehlernummer vorgebe und er mir bei 1 die bestimmte bitkombination stellt und bei 8 die bestimmte kombination für 8 ...

Geht das irgendwie Dynamisch über eine Schleife?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo. Es gibt 4 bits. Und mit einem Eingabe Integer soll die Funktion automatisch die verschieden kombinationen ausgeben. Wenn das geht.

Denke schon das es geht aber weis gerade nicht wirklich wie ich anfangen soll ...
 
Ich versuche es noch einmal: Welche Werte können die Fehlernummern denn annehmen, die auf die 4 Bits gebracht werden sollen? Bitte alle aufzählen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das ist ja faktisch schon so.
Ich interpretiere die Frage so:

Code:
L w#16#F0  //Maske, um Bit 0-3 zu löschen
L #Fehlerbyte //diese Byte soll in Bit0-3 den Fehler enthalten, Bit4-7 bleibt unverändert bestehen
UW
L #FehlerNr  //hier steht deine Fehlernummer 1-15 drin (kann ein Byte oder auch Wird sein)
L w#16#0F  //Maske, um Bit 0-3 in das Fehlerbyte hinein zu kopieren
OW
T #Fehlerbyte //nun steht in dem Fehlerbyte in Bit 0-3 deine Bitmaske für Fehler 1-15, Bit 4-7 beiben unberührt, können also wo anders im Programm benutzt werden. Wenn du ein Ausgangbyte hast, kannst du also üner Bit 0,1,2,3 den Fehler übergeben, Bit 4,5,6,7 kannst du anderweitig benutzen!
 
Zuletzt bearbeitet:
Wie kann ich in AWL ein Funktion erstellen wo ich eine Fehlernummer vorgebe und er mir bei 1 die bestimmte bitkombination stellt und bei 8 die bestimmte kombination für 8 ...
QUOTE]
Indem die in ein MB die Fehlernummer als Dec lädst (0-15 hier bei 4 Bits) und diese dann als Bitmuster betrachtest, oder wie?

0=0000
1=0001
2=0010
3=0011
4=0100
5=0101
...
 
Wie kann ich in AWL ein Funktion erstellen wo ich eine Fehlernummer vorgebe und er mir bei 1 die bestimmte bitkombination stellt und bei 8 die bestimmte kombination für 8 ...
QUOTE]
Indem die in ein MB die Fehlernummer als Dec lädst (0-15 hier bei 4 Bits) und diese dann als Bitmuster betrachtest, oder wie?

0=0000
1=0001
2=0010
3=0011
4=0100
5=0101
...


Genau sowas will ich...
Kann man das dynamisch programmieren über eine schleife oder eine interne Funktion? Sodass ich auch die Anzahl der Bits angeben kann.

Als Integer Eingang kommt die Fehlernummer rein und dann stellt die Funktion automatisch die Bits in richtige Muster ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Genau sowas will ich...
Kann man das dynamisch programmieren über eine schleife oder eine interne Funktion? Sodass ich auch die Anzahl der Bits angeben kann.

Als Integer Eingang kommt die Fehlernummer rein und dann stellt die Funktion automatisch die Bits in richtige Muster ...

Hab ich dir doch schon geschrieben. Die Zahlen 0-15 haben automatisch den richtigen Binärcode.
 
Dankeschön.
Das muss ich jetzt aber erst mal verdauen ...

was gibt es da zu verdauen? ...die darstellung hat nichts mit der speicherform zu tun, byte, word und doppelword werden so gespeichert, dass sie dual, hexadezimal und dezimal abgebildet werden können - nämlich dual ... bei real verhält es sich ähnlich beim speicherverhalten, allerdings bringt hier die darstellung als hex oder dezimal-wert nur wenig punkte...
 
Also bei Zeile 1 bekomme ich einen Syntaxfehler...

L #w#16#F0 //Maske, um Bit 0-3 zu löschen

HAT SICH GERADE ERLEDIGT!!!

L W#16#F0
 
Zuletzt bearbeitet:
Also bei Zeile 1 bekomme ich einen Syntaxfehler...

L #w#16#F0 //Maske, um Bit 0-3 zu löschen

HAT SICH GERADE ERLEDIGT!!!

L W#16#F0

Tschuldige Tippfehler! :cool:

PS: Dir ist aber klar, da das ganze mit UW und OW nur dazu dient, die anderen 4 Bit auch für andere Dinge nutzen zu können. Wenn du das nicht benötigst, kannst du auch einfach die Zahl übergeben und fertig, dann sind die oberen 4 Bit automatisch immer 0, wenn deine Zahl nicht größer als 15 wird!
 
Zuletzt bearbeitet:
Kommt mir das nur so vor, oder hat's in letzter Zeit viele, die mit Bit, Byte, Word, Dez, Hex und Bin nicht klarkommen?
Da hat's doch bestimmt einen Grundlagenthread, auf die man solche Kollegen verweisen könnte, oder?
 
Zurück
Oben