cp340, ascii, steuerung von antrieben

bennzi

Level-1
Beiträge
107
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
hi,

ich hab in meinem projekt 3 cp´s
sie steuern alle einen mesantrieb an.

hab heute des getting startet genommen und mir die fb´s und instanz db´s rauskopiert und ein fc´gemacht in dem ich die fb´s parametriert habe.

wenn ich sag senden, blinkt die txt led am cp kurz auf.
leider tut sie das nicht wenn ich empfange sage. wiso?

wie gehe ich vor wenn ich 4 cp´s hab.
einfach für jeden ein send und ein receive db und dann für jeden einzeln noch fc´s mit den parametrierten fb´s?

ich bekomm es absolut nicht hin warum er nicht empfangen blinkt. ich hab alles so gemacht wie beim senden aber nix geht :(
woran kanns wohl liegen?

kann ich die adressen der cp´s als int zahl direkt an den laddr schreiben? oder muss ich die erst in nen mw transferieren und dieses dann an laddr schreiben?
ich muss doch nich des alles in MW´s ablegen? adresse und welchen db unso wie in der getting startet?


hoff mir kann einer helfen

danke
 
Hallo bennzi,

1. für jeden CP benötigst Du 1*Send 1*Receive
Die FB´s werden verriegelt , so das der Empfang immer nur läuft,
wenn man nicht sendet
2. Als Adresse kommt einfach die Adresse aus der Hardwareconfig
z.B 256 dran
3. und am wichtigsten
Die LED blinkt auch, wenn der FB nicht richtig läuft, dh es kommen
keine Daten , ich mach das immer erst mit Hyperterminal und
Nullmodemkabel um die Anlage zu testen.
Beim senden blinkt die LED auch bei falscher Verkabelung.
Prüfen Verkabelung eventuell 2+3 tauschen (rxd und txd)

Beim Parametrieren noch auf den Handshake achten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
wow danke erstmal für die flinke antwort.

also. die fb´s verriegel natürlich ich oder is des schon im fb..

is ja ne super ideee mit dem HT zu probieren warum bin ich da nicht draufgekommen....
wenn ich von meim cp was sende und des HT an is. erscheint des dann sofort im HT oder?

die verkabelung muss eigentlich stimmen. is nen mitgeliefertes kabel von den steuerungen. so com adapter auf telefonstecker *g*

also mach ich des morgen mal an laptop und versuch dem ht was zu senden..

was meinstu mit auf den handshake achten?

ich bin kein progrmmierer nur mechatroniker...und die anlage is mir für mein können doch ein bisschen zu viel.

ich zieh den fb rein,
sag ihm sein instanz db, trag die adresse ein "256" , EN muss 1 sein damit der baustein arbeiten kann sehe ich das richtig?

ich brauch echt unbedingt support zu dem thema.

wenn ich auf empfangen stelle, dann wartet er bis was kommt oder wie oder was?
kann ich dem auch ne ganze zeile schicken?? zb: "md60, sq4000, mj60"
und wie geb ichs in DB ein...

was wenn ich 4cp´s hab?
braucht jeder seinen eigenen instanz db? wo immer das selbe drin steht blos anders abgelegt und zugewiesen?


Freu
danke
 
Zuletzt bearbeitet:
also. die fb´s verriegel natürlich ich oder is des schon im fb..
Verriegelt wird Receive EN_R wenn nicht REQ von Send

die verkabelung muss eigentlich stimmen. is nen mitgeliefertes kabel von den steuerungen. so com adapter auf telefonstecker *g*
wenn nicht direkt von siemens dann muss es nicht passen, also prüfen

was wenn ich 4cp´s hab?
braucht jeder seinen eigenen instanz db? wo immer das selbe drin steht blos anders abgelegt und zugewiesen?

Jeder aufruf der Bausteine braucht einen eigenen Instanz-Db, der dient nicht zum speichern irgendwelcher Werte, sondern als Speicher zum arbeiten für den FB

Ein Handshake ist zwischen den Geräten notwendig, wenn zumeist viele Daten gesendet werden, dort wird abgefragt, od das andere Gerät bereit zum Empfang ist. Es gibt kein, XON/XOFF oder Hardware , dies muss auf beiden Seiten gleich sein. Am besten ist Hardware, wird aber nicht immer unterstützt.
Bei Parametrierung ist z.B. beim Empfang wichtig wie die Endeerkennung läuft, z.b. CR+LF

wenn ich auf empfangen stelle, dann wartet er bis was kommt oder wie oder was?
kann ich dem auch ne ganze zeile schicken?? zb: "md60, sq4000, mj60"
und wie geb ichs in DB ein...

Wenn was gekommen ist, kommt für einen Zyklus NDR

Ob du das in einem Stück senden kanst, hängt vom Gerät ab
Wenn es gehen würde, dann einen DB anlegen
DBB0 Char 'm'
dbb1 Char 'd'
dbb2 Char '6'
...
Wichtig Anleitung des Gerätes lesen, z.B. Endezeichen oder Protokoll,
hab zu Zeit eine Anwendung das muss ich erst den Befehl schicken,
dann kommt eine Bestätigung, und dann kann ich erst die Daten schicken.
 
wow. du hasts drauf. was haste den"gelernt" wenn ich fragen darf.

ähm ok es werden nicht allzuviele daten gesendet. ganz billig eingetlich.
ich geb der steuerung einen start...schrittmotor läuft sein zyklus. wenn er fertig ist gibt er einen wert aus. zb. 20345
wenn ich mich mit dem ht verbinde zur schrittmotorsteuerung dann schreibt er mir die zahl nach ablauf automatisch in die zeile.
die muss ich abgreifen und verarbeiten.
vor dem anlauf der gesamten maschine schick ich ihm noch die den vorschub aber das wars.
um mich mit der steuerung verbinden zu können, muss ich Xon/Xoff einstellen.
was bedeutet das? ich brauch kein anfangs--endkürzel?
in der anleitung steht nix von end lürzel oder so.

du meinst in jedes byte vom db ein buchstabe und dann halt von da bis da senden gel..ich meinte mit am stück alles in ein byte *g
ich weiss ja nich wie des funkt habs noch nie gemacht.

danke dir herzlich!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
wow. du hasts drauf. was haste den"gelernt" wenn ich fragen darf.
danke dir herzlich!

ich hab eigentlich auch nur Elektroinstallateur gelernt, hab aber dann gewechselt in den Steuerungsbau, und das mach ich jetzt halt seit 17 Jahren. Aber ich denke da gibts einige im Forum die das noch besser können .

Aber geh mal wirklich mit Hyperterminal dran, um erst einmal zu verstehen wie die Kommunikation ablaufen muss, erst wenn du die verstanden hast, kannst du das passenden Programm dazu schreiben.
 
kool. sowas amcht mir voll spass. ich werd des jetz gleich mal probiern und kann ja heut abend nochmal bescheid geben. danke
 
juhu verbindung steht und sende und empfangen geht auch.

nur wie bekomme ich die asci zahlen wieder in eine int zahl?
und wie setzte ich sie zusammen?

mfg
 
joar hab ich :(

leider kann ich damit nix anfangen...
ich bekomm in jeden db byte eine ascii zahl ausgegeben.

dbb0 char "8"
dbb1 char "0"

usw

wie soll ich den baustein verwenden? ich kann nichts anlegen irgendwie am S eingang
 
Gib unter "Suchen" oben in der Menüleiste "FC38" ein und lies dir das mal durch. Außerdem gehst du im Step7-Manager auf den FC38 und betätigst die Taste "F1". Wenn dann noch Fragen, sind wieder melden. ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Am Eingang muss der string stehen, der gewandelt werden soll.

Leg mal einen DB an
Name | Tpy | Vorbelegung
Wert | String[5] | '00000'
Dann einen Symbolischen namen für den DB z.B. DB1=Daten

dann kommt am Eingang Daten.Wert ran.

Aus deinem Empfangspuffer müßen jetzt noch die Zahlen in den String kopiert werden. Aber Achtung die ersten zwei Byte enthalten die Länge des Strings.

Wenn Deine Daten z.B. in DB2 stehen würden dann
(Bei 5 Byte wie von die angegeben)
L db2.dbd0
t db1.dbd2
l db2.dbb4
t db1.dbb6

Oder zu Fuss rechnen
Wert = (ASCII-48 ) *10^Stelle[0..4]
 
hilfe hab ich gelesen trotzdem danke..

ohhh danke. jetzt leuchtets natürlich ein.

aber sobald ich den fc37 aufrufe geht meine cpu in stop und ich weiss echt nicht wiso.
 
hilfe hab ich gelesen trotzdem danke..

ohhh danke. jetzt leuchtets natürlich ein.

aber sobald ich den fc37 aufrufe geht meine cpu in stop und ich weiss echt nicht wiso.

Schau mal in die Diagnose (strg D wenn du im Simatic-Manager bist), was sagt die?
Dumme Frage: Hast du den FC37 auch ins AG übertragen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
jaaaa juhu dankeeeee! es funktioniert. sehr kool!
keine ahnung warum die dauernt in stopp is, war schon öfter mal der fall, master reset gemacht und alles neu draufgeschmissen....jetz geeeeehttts.
respekt ;)
ich wills auch so drauf ham wie ihr :p

geil. jezt kann ich ja die andern cps machen...is ja immer garnich so schwer wenn man weiss wie.

leuchtet auch dann immer ein wenn jemand sagt wies geht...hihi
jetz kann ich endlich gemütlich weiter proggen da die grösste hürde jetz weg is :)

besonderen dank an jabba, dass du dich so um mich gekümmert hast...

das senden geht auch sehr gut. der schreibt es gleich in die zeile... aber was is das zeichen für enter. da gibts doch ne tabelle und so oder.

freufreufreu
 
ja das freut mich auch ungemein...
wiso am wochenende...da schafft man normal nix.

an den 4ten cp kommt bei mir ein drucker. is aber noch nich kla was für einer uns0. aber ich werd mich dann sooderso wieder melden weil ich es nich blick.. hrhr
man bin ich froh wenn des ding lauft....mein programm hat schon zuviel bausteine voll unübersichtlich alles. ih.
 
Zurück
Oben