Analogwert ausgeben

Begonnen von jctg, 12. März 2008, 12:12:43

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 2 Gäste betrachten dieses Thema.

jctg

Hallo,

bin CoDeSys Neuling. ;)
Ich bin dabei ein Projekt zu realisieren, bei welchem durch das Betätigen verschiedener Digitaleingänge verschiedene, aber von mir vorgegebene Analogwerte ausgegeben werden sollen, z.B. wenn E1 = 1 dann soll an der Ausgangsklemme 3,75 Volt anliegen, die benutze Ausgangskarte ist mit 16 bit  (also ein word) einzustellen, in dem Fall  110.0000.0000.0000 . Die Klemme kann 0-10V ausgeben. das 1. bit wird nicht benutzt.
Ich habe leider keine ahnung wie ich das machen soll.  ???  ???
Bitte um Hilfe.

hugo

schau dir in der lib den FB AOUT oder AOUT2 an die Beschreibung sagt dir wies geht

jctg

vielen Dank mal soweit, das schaue ich mir mal genauer an..

jctg

nachdem ich jetzt alles ungefähr so habe wie ich es will, gibt es ein neues Problem:

Also ich habe in einem Netzwerk

einen Count_br dieser zählt einfach nur hoch, wenn ein bestimmtes signal kommt.
dannach einen Byte_to Bit, der das ausgangsbyte des Count_br in 8 einzeln geschaltete bits umwandeln kann.

ich benötige 8 verschiedene werte am analogausgang deshalb dieses komische gebilde:
die ersten beiden Ausgänge (B0,B1) gehen beide auf die eingänge A0 und A1 zweier Mux_r4,
die ausgänge der 2  mux_r4 gehen wieder auf die eingänge In0 und in1 eines Mux_r2 und am A eingang des mux_r2 kommt das signal von BYte_to Bit (ausgang B2), somit kann ich 8 verschiedene werte vorgeben.
der ausgang des mux_r2 geht auf einen  Aout welcher mir dword ausgibt, da aber meine wagoausgangskarte nur word kann, hab ich noch einen Word_or_dword dazwischengehängt.
Jetzt kommts:
In der simulation funktioniert alles einwandfrei, der zähler zählt hoch, die muxis verändern die ausgänge und ganz am schluss kommt ein wert zwischen 0 und 32764 raus, alles so wie ich es haben will.
beim überspielen keine fehlermeldung.
starte ich dann das programm auf dem controller, dann zählt zwar der zähler hoc und die muxis verändern die werte, aber hinten kommt immer 0.

Hat jemand eine Idee was da los??

Danke

hugo

kannst du das projekt mal hier hochladen aus der beschreibung werde ich  nicht schlau

jctg

das dachte ich mir schon...
wie lade ich das hoch?

hugo

schreibe eine antwort und clicke auf erweiterte optionen unten und dort findest du den eintrag datei anhängen

jctg

es geht um das letzte netzwerk (13)
wenn e31 oder e32 ein 1 signal haben ( steht immer nur kurz an) soll sich der analoge ausgangswert am schöuss verändern

[gelöscht durch Administrator]

hugo

hab mir dein projekt kurz angesehen.

1. wenn ich den eingang e 31 firce zählt der counter wunderbar hoch.

2. am ausgang von aout hat du ein word_of_dword mit N = 16 das bedeutet das du das 16te word aus einem dword ausliest und ein dword hat nur 2 wörter, das 0te und das 1te also macht bei diesem baustein nur eine 0 oder 1 als N sinn.

in deinem fall ist aber der baustein dword_to_word besser geeignet er liefert dir automatisch die untersten 16 bits eines dwords

jctg

achso, dann hab ich das mit dem word of dword falsch verstanden.
Danke für die Hilfe.
Am Dienstag kann ich es in echt ausprobieren...