Em232 programmieren

C

Chrisi01

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
hi

hab hier noch ein EM232 Modul rumfliegen und an meinen CPU 222 angeschlossen nur hab ich keinereli anleitungen (nur anschlussbelegung) zum programmieren. hab auch schonv erscuht per google was zu finden aber negative leider hab ich auch nie gelernt wie man analoge ausgänge anspricht. wer kann mir helfen oder eine seite oder so geben?

mfg

chrisi01
 
Hi

Du scheinst ja der absolute Anfänger zu sein wenn ich mir Deinen letzten Beitrag mit der Kommunikation ansehe bzw. lese.

Denke das solltest Du erstmal mit einfachen Schaltungen wie Stern-/Dreieck und Wendeschützschaltung anfangen damit Du erstmal ein Gefühl für die Software usw. bekommst.

Also erst Bit und später mit Byte,Wort und Doppelwort spielen.

Viel Glück
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hi

digitale bausteine hab ich ent massen in der schule programmiert ;)

nur hatten wir da winsps (und auch nur mit dem simulator und nicht mit ner echten sps) da wollte er den code halt leicht anders haben kann ich ja nix für ;)

möchte schon gern mit analogen ausgängen weitermachen :)

ich will halt etz einfach mal sagen wir mal spasseshalber 50% ausgeben also 5V

mfg

chrisi01
 
Hi
ich weiß nicht wies bei MircoWin is aber bei den normalen Step7 bringt die Hilfe dich schon oftmals weiter, dort gibt es eine Übersicht der Befehle mit Erklärung und Beispielen, ansonsten solltest du vielleicht auch mal in ein Fachbuch investieren.
 
Die 1- und 2h-Fibel
für den schnellen Einstieg:
Um Ihnen die ersten Schritte in die Welt der S7-200 möglichst einfach zu machen, wurde ein spezielles Einsteigerpaket geschaffen.

* Die 1h-Fibel hilft Ihnen, innerhalb kürzester Zeit ein ausreichendes Grundwissen zum Einsatz der S7-200 zu ermöglichen.
* Die 2h-Fibel baut auf die 1h-Fibel auf. Sie macht Sie mit der Arbeitsweise der Steuerung der S7-200 anhand von Beispielaufgaben vertraut.

1h Fibel
http://www.automation.siemens.com/s7-200/pdf/1h2hprimer/1h_fib_dx.pdf

2h Fibel
http://www.automation.siemens.com/s7-200/pdf/1h2hprimer/2h_fib_d_1199_komplett.pdf
 
Zuviel Werbung?
-> Hier kostenlos registrieren
5V zum Analogausgang 0

LD SM0.0
MOVW 16000, AAW0

Vom Analogeingang 0 ins Merkerwort 2 schreiben

LD SM0.0
MOVW AEW0, MW2

SM0.0 ist ein Sondermerker der immer 1 ist.

Gruß
 
hi

so ne antwort hab ich erwartet damit kann ich was anfangen besten dank

edit: so geil geht :D

jetzt muss ich nur noch gucken wie verzögerungen gehen (hab ichs chon gelernt weiß es aber nimemr auswenidg muss ich nachschlagen ^^) dann kann ich anfangen mit meinen projekt :D

mfg

chrisi01
 
Zuletzt bearbeitet:
Verzögerungen ??????

Meinst Du einen Timer als Einschaltverzögerung ????

Netzwerk 1
Eine Sekunde als Verzögerung Timer hat eine Basis von 10ms

LD E0.0
TON T100, 100

Netzwert 2
Und nach Ablauf von einer Sekunde schaltet A0.0 ein

LD T100
= A0.0
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hi

hm wir haben das ganz anders gelerent:

UE 1.1
LS5T#2s
SE T1
U T1
= A0.0

was is das dann? was lernen wir da fürn mist?!

im endeffekt will ich eigentlich folgendes

Analogausgang 0V nach 100ms 0,01V nach weiteren 100ms 0,02V usw. bis 10V (werte sind etz frei erfunden eigentlich sollen 1V --> 10V innerhalb von 1std erreicht werden mit so etwa 360 Zwischenschritten muss da noch die genauen werte ausrechnen :))

starten soll das ganze sobald im E0.0 ein Signal anliegt (häng ich eine Zeitschaltuhr drann)

das ganze soll dann ein 1V-10V dimmbares evg für Leuchstofflampen steuern damit ich im Aquarium einen Sonnenaufgang hab :)


mfg

chrisi01
 
Hi

im Grunde ist das was Du schreibst fast das gleiche nur AWL für
S7 also Step7.

Eine S7-200 bzw. die Software Mircowin hat eine etwas andere Syntax.
Aber so groß sind die Unterschiede nicht.

Kennst Du eine SPS ........ kennst Du fast alle.
Einfach den Kopf einschalten dann klappt das fast von alleine.

Solltest Du mal Schwierigkeiten haben mit der Syntax in AWL dann
programmiere einfach in KOP oder FUP das ist bei allen fast identisch.

Wichtig ist ->

1.Ruhe bewahren
2.Etwas im Handbuch lesen
3.Erst denken dann programmieren.

Ist noch kein Meister vom Himmel gefallen.
Dein Problem könnte man so lösen---->>>>

Netzwerk 1
Timer mit einer Zeit von zB. 150ms laufen lassen

LD E0.0
TON T32, +150

Netzwerk 2
Wenn Zeit abgelaufen Timer 32 wieder auf Null und
Merkerwort 0 laden + 10 Addieren und Ergebnis nach MW0

LD T32
MOVW +0, T32
+I 10, MW0

Netzwerk 3
Den Wert von Merkerwort 0 zum Analogausgang AAW0 übertragen.

LD SM0.0
MOVW MW0, AAW0


Denke daran wenn Du am AAW0 wieder 0V haben möchtest mußt Du zB.
schreiben

LDN E0.0
MOVW 0, MW0

Wenn Du das verstanden hast kann man den Code noch etwas verkürzen wenn Du willst.

Gruß

Chris
 
hi

also habd as ganze mal ausprobiert geht net :p

er hat es auch folgendermaßen geändert (auotmatisch)

NETWORK 1
LD E0.0
TON T32, +150

NETWORK 2
LD T32
MOVW +0, T32
+I +10, MW0

NETWORK 3
LD SM0.0
MOVW MW0, AAW0

Network 1 und 3 versteh ich eigentlich beim 2 hab ich bisschen probleme:
LD 32 --> das netzwerk startet wennd er timer abgelaufen ist
MOVW +0, T32 --> Timer wird wieder null gesetzt
+I +10, MW0 --> was ist +I ?! +10 ist dann klar und MW0 eigentlich auch denk ich mal

edit: ok ich war plöd hab vergessen E0.0 auf high zu setzten :D es geht jetzt bräuchte dann aber noch was das er bis 10V hochfährt auch wenn E0.0 wieder low wird! müsste irgendwie über setzten gehen mal gucken ob ich das hinbekomm ^^

LD E0.0
S A0.0
geht auch mal wieder net wie gehtn das hier? die hilfe sagt net viel drüber :(

und ein problem gibts auch noch wenn 10V erreicht sind fängt er wieder an rückwärts zu zählen aber das guck ich mir morgen an ;)

mfg

chrisi01
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
hi

also ich muss sagen ich blick jetzt da halbwegs durch ABER

ich hab absolut keine idee wie ich das hinbekomm das er auch zählt wenn der eingang E0.0 nur kurz high ist und danach wieder auf low schaltet soll er trotzdem weitermachen und zwar GENAU so lang bis 10V erreicht sind (im moment macht er bei 10V weiter mit -10V und zählt dann wieder bis 10V hoch)

ich bräuchte jetzt sowas wie bei c++ if(bla blub == blub) :ROFLMAO: nur kenn ich sowas bei der sps absolut net und glaub auch nicht das es sowas gibt wer kann mir da helfen?

mfg

chrisi01
 
Hi alter voll krass die scheisse


ORGANIZATION_BLOCK MAIN:OB1
TITLE=PROGRAMMKOMMENTARE
BEGIN
Network 1 // Netzwerktitel
// Wenn E0.0 kommt wird Merker M1.0 auf 1 gesetzt
// Wenn E0.1 kommt wird der Merker M1.0 auf 0 gesetzt weiß ja nicht wann Du es wieder abschalten möchtest.
//
//
LD E0.0
LD E0.1
NOT
U M1.0
OLD
= M1.0
Network 2
// Um der Merker M1.0 starten den Timer T32
// Der Timer läuft nur solange VW0 kleiner 32000 ist damit bei 10V schluß ist.
LD M1.0
UW< VW0, 32000

TON T32, +150
Network 3
// Wenn die Zeit abgelaufen ist wird die T32 auf 0 geschrieben dadurch ist der Timer nur 1 Zyklus da.
// Der Wert 10 wird geladen mit dem Wert im VW 0 addiert
// Das Ergebnis wird nach VW 0 geschrieben.
LD T32
MOVW +0, T32
+I +10, VW0

Network 4
// Der Wert der in VW 0 steht wird als Analowert ausgegeben wenn M1.0 1-Signal hat
//
LD SM0.0
MOVW VW0, AAW0

Network 5
// Wenn der Merker M1.0 0-Signal hat wird der Analogausgang auf 0V gesetzt
LDN M1.0
MOVW VW0, AAW0
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK SBR_0:SBR0
TITLE=UNTERPROGRAMM-KOMMENTARE
BEGIN
Network 1 // Netzwerktitel
// Netzwerkkommentar
END_SUBROUTINE_BLOCK
INTERRUPT_BLOCK INT_0:INT0
TITLE=INTERRUPTPROGRAMM-KOMMENTARE
BEGIN
Network 1 // Netzwerktitel
// Netzwerkkommentar
END_INTERRUPT_BLOCK


Sollte klappen sonst selber noch etwas spielen.
Habe leider keine CPU zum schnellen testen aber egal.
Dachte eigentlich Du wärst schon lange fertig.

Gruß
 
omg besten dank :D

aber etz bin ich erstmal ne lange zeit beschäftigt das durchzublicken mit urlaub allem drummn und drann net vor ende nächster woche aber danke dafür :)

SUBROUTINE_BLOCK SBR_0:SBR0
TITLE=UNTERPROGRAMM-KOMMENTARE
BEGIN

INTERRUPT_BLOCK INT_0:INT0
TITLE=INTERRUPTPROGRAMM-KOMMENTARE
BEGIN

sagt er übersetztungsfehler aber damit kann ich absolut nix mehr anfangen das is viel zu hoch für mich ^^

neuer edit:

hab den ganzen mist mal gekillt und einen fehler gefunden glaub ich das rücksetzten nämlich hier so schaut es jetzt aus hab dir mal das dick markiert was ich anders gemacht hab:

NETWORK 1 // Netzwerktitel
// Wenn E0.0 kommt wird Merker M1.0 auf 1 gesetzt
// Wenn E0.1 kommt wird der Merker M1.0 auf 0 gesetzt weiß ja nicht wann Du es wieder abschalten möchtest.
//
//
LD E0.0
LD E0.1
NOT
U M1.0
OLD
= M1.0

NETWORK 2
// Um der Merker M1.0 starten den Timer T32
// Der Timer läuft nur solange VW0 kleiner 32000 ist damit bei 10V schluß ist.
LD M1.0
UW< VW0, +32000
TON T32, +10

NETWORK 3
// Wenn die Zeit abgelaufen ist wird die T32 auf 0 geschrieben dadurch ist der Timer nur 1 Zyklus da.
// Der Wert 10 wird geladen mit dem Wert im VW 0 addiert
// Das Ergebnis wird nach VW 0 geschrieben.
LD T32
MOVW +0, T32
+I +10, VW0

NETWORK 4
// Der Wert der in VW 0 steht wird als Analowert ausgegeben wenn M1.0 1-Signal hat
//
LD SM0.0
MOVW VW0, AAW0

NETWORK 5
// Wenn der Merker M1.0 0-Signal hat wird der Analogausgang auf 0V gesetzt
LDN M1.0
MOVW +0, AAW0

das Problem sobald E0.1 1 ist wird das Ausgangssignal net 0V sondern 1,91V wieso das? aber später solle s net ruckartig null gesetzt werden sondern langsam wieder bis auf 0V runterzählen mal gucken ob ich das hinbekomm oder du hast mal wieder zeit für mich großer netter unbekannter :)

mfg

chrisi01
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Das erste Netzwerk kann man auch so manchen mit dem S und R.
Der Merker SM0.0 ist nur dafür da das man auch in Kop oder Fup umschalten kann.

Network 1 // Netzwerktitel
// Wenn E0.0 kommt wird Merker M1.0 auf 1 gesetzt
// Wenn E0.1 kommt wird der Merker M1.0 auf 0 gesetzt weiß ja nicht wann Du es wieder abschalten möchtest.
//
//
LD SM0.0
LPS
U E0.0
S M1.0, 1
LPP
U E0.1
R M1.0, 1


Warum Du 1,91V hast keine Ahnung !!!!!!!
Wann möchtest Du denn wieder runter Zählen ??????
Ist genau das gleiche wie beim ADD nur mit SUB machen.
Ansonsten mußt Du mir mal Deine Nummer geben und ich ruf Dich an wenn Du vor der Kiste bist.

Gruß
 
hi

runterzählen möchte ich sobald E0.1 1 ist anrufen ist zur zeit relativ schlecht da ich nur zeitweiße am pc sitzt und es nie genau sagen kann

mfg

chrisi01
 
ORGANIZATION_BLOCK MAIN:OB1
TITLE=PROGRAMMKOMMENTARE
BEGIN
Network 1 // Netzwerktitel
// Wenn E0.0 kommt wird Merker M1.0 auf 1 gesetzt
// Wenn E0.1 kommt wird der Merker M1.0 auf 0 gesetzt
//
//
LD SM0.0
LPS
U E0.0
S M1.0, 1
LPP
U E0.1
R M1.0, 1
Network 2 // Netzwerktitel
// Wenn E0.1 kommt wird Merker M1.1 auf 1 gesetzt
// Wenn E0.0 kommt wird der Merker M1.1 auf 0 gesetzt
//
//
LD SM0.0
LPS
U E0.1
S M1.1, 1
LPP
U E0.0
R M1.1, 1
Network 3
// Um der Merker M1.0 starten den Timer T101
// Der Timer läuft nur solange VW0 kleiner 32000 und größer 0 ist.
LD M1.0
UW< VW0, 32000

LD M1.1
UW> VW0, 0
OLD
UN T101
TON T101, 10
Network 4
// Der Wert 10 wird geladen mit dem Wert im VW 0 addiert
// Das Ergebnis wird nach VW 0 geschrieben.
LD M1.0
U T101
+I +10, VW0

Network 5
// Der VW0 wird geladen und davon der Wert 10 abgezogen.
// Das Ergebnis wird nach VW 0 geschrieben.
LD M1.1
U T101
-I 10, VW0

Network 6
// Der Wert der in VW 0 steht wird als Analowert ausgegeben wenn M1.0 1-Signal hat
//
LD SM0.0
MOVW VW0, AAW0

END_ORGANIZATION_BLOCK


So da ich jetzt weiß wie Du es haben willst hier das sollte gehen.
Habe leider keine CPU aber so ein Sim-Programm für die 200er da geht es.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hi

wow klappt super :) danke :)

bin grad noch am feinabstimmen damit er von 1V - 10V (bzw. von 10V - 1V) eine Stunde braucht aber das bekomm ich etz 100%ig alleine hin

5 erhöhen in 5ms haut ganz gut hin :) und dann eben start net bei 0 sondern bei 3200 :)

nochmal ein riesen dankeschön!!

mfg

Chrisi01
 
Servus,

mal ne Frage:

du willst bei deinem AQ für deine Leuchstofflampen doch
sicher ein EVG mit 0-10V Eingang nehmen und hiermit deinen
Sonnenauf- bzw. untergang realisieren?
Wieso holst du dir nicht ne Logo ?
Vorteile:
leichter zu programmieren
Die hat auch eine Analogausgabe 0-10V
Zeitschaltuhr ist auch schon mit dabei (Sommer/Winterzeit)
Das Teil verfügt über eine Rampenfunktion, womit man m.W.
auch den Analogausgang steuern kann. (Korrigiert mich bitte,
wenn das nicht stimmt)
und ich glaube, für die Logo gibts im Internet schon fertige
Schaltpläne für dieses Vorhaben. (andere Aquarianer habens
auch schon so realisiert. Link hatte ich mal - wenns dich interessiert
such ich ihn nochmal

MfG Unreal
 
hi

weil ich diese hier kostenlos bekommen hab und ne logo min. 50€ kosten würde

achja hätte gern bei 1V ein 1 Pegel an A0.0 und bei 10V ein 1 an A0.1 wie geht das? werd zwar selbst probieren aber denke das bekomm ich ehw eider net gebacken :D (will ein relais ansteuern damit ich bei 10V (also volle helligkeit) die 2 Leuchstofflampe einfach dazuschalt bzw. bei 1V die Nachtbeleuchtung anschalt (nur ein Lichtschlauch ganz dunkle nachtbeleuchtung) und die Leuchstofflampe über ein weiteres relais komplett abschalten (weil bei 1V immer noch etwa 3-10% helligkeit vorhanden sind)

mfg

chrisi01
 
Zuletzt bearbeitet:
Zurück
Oben