Codesys Bits, Byte, Word und DWord

Znarf

Level-2
Beiträge
335
Reaktionspunkte
24
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Freunde,
ich suche eine Übersicht bzw Erklärung wie die Bits und Bytes usw bei Eingängen, Ausgängen und Merkern bei Codesys (ich habe Indralogic) zusammengehören. Habe schon wie wild gegoogelt, aber nichts rechtes gefunden.

Gruß

Andreas
 
Wie bitte?
Ich verstehe Deine Frage jetzt nicht.

Das einzige was mir da jetzt einfällt wo vielleicht ungewöhnlich ist, ist das man Byte und Word basierend (je nach Zielsystemeinstellungen arbeiten kann)
Byte x.0 bis x.7 oder Word x.0 bis x.15

Oder was meinst Du?

Schau mal in der Hilfe nach, unter dem Begriff: Adresse.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zotos,
genau das meine ich. Ich komme aus der S7-Welt und da ist ja alles schön geregelt mit M0.0 ist Teil von MB0, MW0 und MD0. Bei Codesys ist das ja wohl anders, und ich möchte gern wissen wie. Wir bekommen jetzt eine L20 von Rexroth mit einem VCP02.2 und ich lese mich da gerade durch ein paar Handbücher. Da steht zB das man für den Meldebereich auf dem VCP eine Variable mit Byte- bzw Wortzugriff benötigt, die man in der SPS aber Bitweise ansprechen muß (paralleles Meldeverfahren) und dabei dachte ich an die Merker. Unabhängig davon habe ich im Handbuch irgendwo gesehen, das sich %MD48 zusammensetzt aus Byte 192-195 (also 48*4).
Vielleicht geht das mit dem Meldebereich auch anders und ich muß mich von meinem S7-Denken erstmal lösen.

Gruß

Andreas
 
Also bis auf das man auch Wortweise arbeiten kann ist das doch wie gewohnt.

z.B. %IB20 entspricht %IX20.0 bis %IX20.7
 
Zuletzt bearbeitet:
Das heißt das QW0 aus QX0.0 bis QX0.7 besteht bei byteweiser Orientierung bzw aus QX0.0 bis QX0.15 bei wortweiser Orientierung, oder?
Wie sieht das jetzt mit QB0 aus? Wie hängt der damit zusammen?


Gruß

Andreas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das ist schon so wie man das kennt. Geht so gar noch einen Schritt weiter:

IntraLogic_Hilfe schrieb:
Bit-Zugriff:

Adressierung von Bits in Variablen

In ganzzahligen Variablen können einzelne Bits angesprochen werden. Dazu wird an die Variable mit einem Punkt abgetrennt der Index des zu adressierenden Bits angehängt. Der Bit-Index kann durch eine beliebige Konstante gegeben werden. Die Indizierung ist 0-basiert.
Beispiel:
a : INT;
b : BOOL;
...
a.2 := b;
Das dritte Bit der Variablen a wird auf den Wert der Variable b gesetzt.
Ist der Index größer als die Bit-Breite der Variablen so wird folgender Fehler ausgegeben: Index '<n>' außerhalb des gültigen Bereichs für Variable '<var>'!
Die Bitadressierung ist bei folgenden Variablentypen möglich: SINT, INT, DINT, USINT, UINT, UDINT, BYTE, WORD, DWORD.
 
Ich kenne mich aber ehrlich gesagt damit gar nicht sooo... gut aus.

1. verwende ich so gut wie keine Merker.
2. Ein- und Ausgänge weise ich direkt in einer globalen Variablenliste einem Symbolischen Namen zu. z.B. _100S123A AT %IX11.0: BOOL; und arbeite dann nur noch mit dem Symbolischen Namen.
 
Ok,
ich habe das getestet mit "Byte-Adressierung" aus. Da hatte ich einige Probleme. Du hast natürlich recht das es so ist wie sonst. Ich fasse mal zusammen:
Byte-Adressierung aktiviert
QX0.0 ist das rechte Bit von QB0, QW0 und QD0
QX1.0 ist das rechte Bit von QB1 und das 9. Bit von rechts von QW0 und QD0

Wort-Adressierung
QX0.0 ist das rechte Bit von QB0, QW0 und QD0

QX1.0 ist das rechte Bit von QB2 und QW1 und das 17.Bit von rechts von QD0

Wie gesagt hat mich die Wort-Adressierung mit der ich getestet habe ein wenig verwirrt. Werde also die Byte-Adressierung aktivieren damit mein Hirn auch mitspielt :)

Vielen Dank Zotos.

Gruß

Andreas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Um nochmal auf das Meldesystem zurückzukommen.
Hier steht:
Das man für das parallele Meldeverfahren des VCP eine symbolische Variable anlegen muß. Auf diese Variable muß man aus der Steuerung bitweise und aus dem Bediengerät byte- oder wortweise zugreifen können.
Muß ich da nicht die Merker nehmen? Oder wie kann ich das mit einer Variablen ohne "übliche" Adresse realisieren?

Gruß

Andreas
 
Ich nutze zwar auch IntraLogic kenne aber weder die L20 noch das VCP02.2 da ich hauptsächlich PC-basierende Steuerungen verwende (ich habe auch noch kein Target für die L20).

Also mit den Merkern sollte es auf jeden Fall gehen da das ja nichts anderes sind wie Variablen denen Du die "Adresse" zu weist.

Also im zweifel greif doch zum Merker das bist Du doch eh gewohnt.

Noch ein paar Bemerkungen:

Also ich würde auch kein AWL benutzen. IMHO hat man den Einstieg in ST schneller gefunden als in die IEC 61131-3 AWL ;o)

Du musst um TON/TOF (Timer), RS/SR-Glieder, F_TRIG/R_TRIG (Flanken) verwenden zu können muss die Standard.lib eingebunden sein.

Ach bei Fragen, frag einfach.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Oberchefe
Danke, das werde ich so verwenden. Manchmal ist es zu einfach :) .

@Zotos
Ich danke auch dir.

Auch wenn ich eher von S7 komme, möchte ich doch die Eigenheiten von Codesys kennen lernen und anwenden. Bin also froh, wenn ich keine Merker benötige.

Gruß

Andreas
 
Hallo,

also ich halte auch die Einarbeitung in ST für sehr sinnvoll. Gibt nichts besseres. Wenn es unbedingt sein muss die "Aufrufer" ( FBs, PRGs ) in grafischen Sprachen machen. Den Code der Bausteine würde ich immer mit ST füllen.

Viele Grüsse
 
Das mit dem Bit-Zugriff auf Variablen habe ich dir hier bereits geschrieben bzw. kopiert ;o) Dachte nur das Du zwaghaft an den Step7 Methoden festhalten wolltest. Das, dass nun nicht so ist finde ich aber sehr gut ;o)

Noch mal zu ST ich würde auf FUP und AS nicht verzichten wollen. Aber AWL läst sich sehr gut durch ST ersetzen.

Wenn Du dich erstmal rein gearbeitet hast wird Dir CoDeSys sicher gefallen und auch spass machen. Noch ein Tipp der in die Entwicklungsumgebung eingebaute Visu lässt sich Simulationen bauen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Zotos
Sorry, aber das mit dem Bitzugriff habe ich bei dir wohl überlesen bzw nicht realisiert wie es gemeint war.
Hauptsache ich weiß jetzt wie es geht. :)

Da es mein erstes Projekt mit Codesys ist, werde ich mir alle Möglichkeiten der Programmierung mal anschauen, damit man die stärken und schwächen kennenlernt.
Die Einfachkeit der Anlage soll sich aber auch im Programm wiederspiegeln. Deshalb wird das meiste sicherlich in Fup oder AS geschrieben werden.
ST ist auch schon zur Anwendung gekommen und gefällt mir gut.

Ich nutze die Programmierung dieser einfachen Anlage auch für den Einstieg in die MTX-Steuerung von Rexroth. Es werden also bestimmt noch Fragen kommen.

Nochmals Danke für die Unterstützung.

Gruß

Andreas
 
Hallo
das Projekt läuft noch. Ich bin gerade dabei die Sicherheitstechnik für Indradrive in Betrieb zu nehmen. Außerdem muß ich noch einige Sachen auf der NC-Seite machen. Was Indralogic betrifft, geht es sehr gut von der Hand. Es macht Spaß mal etwas anderes als S7 zu programmieren.

Gruß

Andreas
 
Zurück
Oben