# Umsetzung RS232 auf Profibus Step7



## steven001 (16 Mai 2008)

Hallo,

ich hätte da mal ein paar Fragen an euch.
Wir haben an der Uni eine SPS von ABB. Und 3 Barcodescanner der Firma Metrologic. Diese setzen wir in einem kleinen Model (Sortieranlage) ein.
Jetzt haben wir ein Schulprojekt und die Schule hat das selbe Model, nur ohne die Scanner, betreibt es aber mit einer Siemens Step7. Damit wir nicht neue Barcodescanner kaufen müssen, wollen wir versuchen unsere Scanner (Schnittstelle RS 232) mit der Step7 (Profibus) zu betreiben.
Jetzt habe ich mit 2 Firmen gesprochen, die Lösungen anbieten. Und zwar einen neuen Scanner (RS 232) eine Schnittstelle auf den Profibus und eine passende GDS-Datei. Als Paket sprengt es aber unseren finanziellen Rahmen.

Es gibt da noch was von Anybus (Profibus-Protokollkonverter) - also eine Schnittstelle von RS 232 auf den Profibus - was zu  unserer finanziellen Situation passen würde.
Aber die Frage ist ja, wie bekomme ich die Daten in die Step7? Reicht da die GSD-Datei? Und wenn ja, kann man die selber erstellen?

Hättet ihr evtl. noch andere Ideen?

mfg
Steven


----------



## Ralle (16 Mai 2008)

Hm, zum Profibus kann ich nicht allzuviel sagen, wir benutzen Scanner von Datalogic zusammen mit einem Umsetzer, CBox 300 und gehen so auf den Profibus. Die GSD-Datei gabs dazu, den FB mußte ich mir selbst schreiben, es gab nur eine PDF mit der Protokollbeschreibung. 

Warum wollt ihr auf den Profibus, es ginge auch mit CP340 (serielle Schnittstelle). Damit habe ich auch schon einmal Scanner betrieben, das ging sehr einfach und problemlos.


----------



## steven001 (16 Mai 2008)

Kann ich die da "einfach" anschließen? Kenne mich mit Siemens nicht so aus.


----------



## Ralle (17 Mai 2008)

Normalerweise ja, ist ja eine einfache serielle Schnittstelle. Die Frage ist noch, wie man das Lesen des Codes triggert. Ich hatte einen Keyence??? glaube ich an der Cp340 und dazwischen noch eine kleine Box, die über einen externen Triggereingang den Scannvorgang startete. Es gibt auch Scanner, die automatisch triggern, also immer lesen. Auch über die serielle SS sollte das gehen, aber das muß aus der Doku zum Scanner hervorgehen. Der Scanner tut ja letztendlich nichts anderes, als eine erkannte Zeichenfolge aus der seriellen SS herauszuschicken. Diese kann dann mit der CP340 in die SPS eingelesen werden. Zur CP dazu gibt es Beisspielprojekte und auch dabei Standardbausteine.


----------



## steven001 (17 Mai 2008)

Das hört sich sehr gut an! Danke.

Wenn ich mich nicht irre scannen unsere Barcodescanner permanent. Wenn sie dann einen Datensatz erkannt haben, kommt ein Piep und der Datensatz wird über die serielle SS verschickt. Somit sollten wir kein Problem mit dem Triggern haben. Muss ich die Woche dringend mal ausprobieren - und melde mich dann.


----------



## steven001 (29 Mai 2008)

So, wie könnte es anders sein, diesen Baustein haben wir nicht!  
Muss mal bei Siemens anrufen, was er kostet. Muss ich da was beachten?
Im Handbuch vom Scanner steht, bei Communication Protokoll(s) - Full RS232C/Light Pen Emulation.
Sollte dann dieser Baustein sein, oder?
http://support.automation.siemens.c...d=content&prodLstStart=11&prodLstSort=MLFBSTRhttp://support.automation.siemens.c...tandard&viewreg=WW&objid=24283637&treeLang=de

Was genau ist denn auf dieser CD (Projektierpaket)? Und was wird sowas kosten?

mfg
Steven


----------



## Roos (29 Mai 2008)

japp genau das benötigst du dazu...

https://mall.automation.siemens.com/DE/guest/index.asp?aktPrim=0&nodeiD=5000071&lang=de
da kannst du mal nachlesen was sie kann und wofür man sie einsetzt.Preis konnte ich leider nicht ermitteln da mein accound beim onlinekathalog leider momentan noch nicht freigeschaltet ist.

gruß


----------



## dodo (29 Mai 2008)

Roos schrieb:


> japp genau das benötigst du dazu...
> 
> https://mall.automation.siemens.com/DE/guest/index.asp?aktPrim=0&nodeiD=5000071&lang=dePreis konnte ich leider nicht ermitteln da mein accound beim onlinekathalog leider momentan noch nicht freigeschaltet ist.
> 
> gruß




366 Teuronen Liste  mit RS 232


----------



## stma77 (29 Mai 2008)

ET200S Module...
eine IM151 Basic mit den entsprechenden IF modulen.. die können die können die gangien seriellen Schnittstellen lesen und auch schreiben... (RS232, RS422/485 und 20mA Schleife)diese sind auf ein underselben Karte einfach konfigurierbar... und schon hast deine RS232 Scanner im Profibus eingebunden ... dazu den SFB3 von Siemens und schon kannst du die Daten auf der SPS anschauen

das IM Modul (für die profibusanbindung)
https://mall.automation.siemens.com...-1-1853-1856-1857-1893-1896-1866-&jumpto=1857

das Powermodul (Vorsicht Terminalmodul muss extra geordert werden...
https://mall.automation.siemens.com...-1-1853-1856-1857-1893-1896-1866-&jumpto=1866


das SI Modul...(Vorsicht Terminalmodul muss extra geordert werden...)
https://mall.automation.siemens.com...-1398-1-1853-1856-1857-1885-1893-&jumpto=1893

https://mall.automation.siemens.com...-1857-1893-1896-&closeFolder=1885&jumpto=1896

damit hast einen kompletten Profibusslave der RS232 lesen kann


----------



## Maxl (29 Mai 2008)

Ich hab 2 Profibus-RS232-Umsetzer von Anybus, welche nicht mehr gebraucht werden, bei mir am Schreibtisch liegen.
Falls Du die haben möchtest, einfach per PN melden.

mfg Maxl


----------



## steven001 (5 Juni 2008)

So, wir haben den Baustein CP340.
Laut Beschreibung soll man Bausteine von einem Beispielprogramm in sein eigenes kopieren und "hochladen".
Doch er sagt FB2 und FB3 kann nicht kopiert werden! Alle anderen schon. Woran kann sowas liegen?
Und die 2. Frage wär, einige FB´s sind mit einem Schloß versehen - was bedeutet das?

mfg
Steven001


----------



## Larry Laffer (5 Juni 2008)

Hast du in deinem Projekt schon den FB2 und FB3 drin ? Wenn ja, dann kopier die beiden FB's einfach unter einer anderen Nummer rein ...

Das Schloß bedeutet, dass die Bausteine "Know-How-Protect", also Lese- und Schreibgeschützt sind - du siehst nur den Baustein, nicht dessen Inhalt ...


----------



## steven001 (5 Juni 2008)

Danke,

ich habe in meinem Projekt nur OB1 und FB1, die restlichen habe ich aus dem Beispielprogramm in mein Projekt kopiert. Dabei wird der OB1 wieder überschrieben. Wenn ich es jetzt in die SPS laden will kann er alle "Bausteine" hochladen, nur die beiden halt nicht.


----------



## Forumaner (5 Juni 2008)

*alte FB's verwenden*

Hallo steven001,

ich denke, du verwendest eine ältere CPU, die mit den _neueren_ FB's nicht zurecht kommt.
Ich hatte das selbe Problem und fand die alten Bausteine irgendwo auf der Siemens-Seite.

Ich hab' dir diese _alten_ FB's diesem Post angehängt.
Viel Erfolg!

Gruß,
Forumaner


----------



## Forumaner (7 Juni 2008)

Hallo steven001,

hat es mit den alten FB's geklappt?

Gruß,
Forumaner


----------



## steven001 (8 Juni 2008)

Hallo,

erst einmal Danke, aber das kann ich erst am Donnerstag testen. Gebe euch dann bescheid!

mfg
Steven


----------



## steven001 (12 Juni 2008)

So,

hier mal der Zwischenstand...

Also die neuen FB´s können hochgeladen werden. Doch wenn wir auf "run" gehen, leuchtet die SF-Leuchte. Hm,...

kann man irgendwo schauen, was für ein Fehler die Ursache ist?

mfg


----------



## maweri (12 Juni 2008)

Im Simatic-Manager den Baustein-Ordner markieren und dann Strg-D (Baugruppenzustand) drücken.
Im Register 'Diagnosepuffer' findest Du die Ereignisliste u.a. mit den Fehlern.


----------



## steven001 (12 Juni 2008)

Erst einmal danke...

Da steht dann...

```
STOP durch  Peripheriezugriffsfehler (OB nicht geladen oder nicht möglich, bzw. kein FRB vorhanden) 
Unterbrechungstelle im Anwenderprogramm:  Zyklisches Programm (OB 1)  
Prioritätsklasse:    1
OB-Nummer:     1
Bausteinadresse:     22 
Bisheriger Betriebszustand: RUN
Angeforderter Betriebszustand: STOP (intern)
interner Fehler, kommendes Ereignis
16:34:04.685  11.06.2008
```

ka, was das heißt?

mfg


----------



## maweri (12 Juni 2008)

Die Lösung steht meist eine Zeile tiefer (zeitlich davor).

Wahrscheinlich greifst Du auf eine DB- oder Peripherie-Adresse zu, die nicht existiert.

Im Register 'Stacks' kannst Du Dir ansehen, wie weit das Programm gekommen ist, bis es stoppte. (Funktioniert nur bei SPS im STOP-Zustand).
Wenn Du jetzt noch den letzten Baustein in der Liste markierst und den Button 'Baustein öffnen' anklickst, wirst Du (meist) direkt zur Stelle gebracht, wo der Fehler liegt.


----------



## steven001 (9 Juli 2008)

Hallo uns sorry, das ich mich 2 Wochen nicht gemeldet habe...

Wir haben soweit alles hinbekommen. Sprich können alles hochladen und wenn wir scannen leuchtet auch die RXD Lampe an der CP340. Nur in der DB20 kommt nichts an?!

Nun steht im Handbuch:

```
Senden
PEW 0: Schalten Sie nun an Ihrer "Eingangs SM323" die Bits 0.1 (Freigabe FC11 und
FC12), 0.6 (REQ für P_SEND) und 1.1 (Auswahl des Sendeauftrags von 10 Byte Länge) auf
"ON".
Der CP340 wird daraufhin ein Telegramm von 10 Byte Länge über die serielle Schnittstelle
senden (LED "TxD" blinkt). Um das Senden zu wiederholen, müssen Sie das Bit 0.6 (REQ
für P_SEND) zunächst auf "OFF" und dann wieder auf "ON" schalten.
```
 Wir brauchen ja kein senden - muss das denn ausgeschaltet oder sogar gelöscht werden, damit es nicht zu Fehlern kommt?


```
Empfangen
Wenn Sie von Ihrem Kommunikationspartner aus Daten senden, werden diese ggf. vom
CP340 im DB20 empfangen. Die Zielangabe wird im FC12 bei den Labeln "A0:" bzw. "A1:"
erzeugt.
PEW0: Schalten Sie dazu an Ihrer "Eingangs SM323" die Bits 0.1 (Freigabe FC11 und
FC12), 0.7 (EN_R für P_RCV) und 1.2 (Auswahl des Zieloffsets "2" im DB20) auf "ON". Der
CP340 wird daraufhin über die serielle Schnittstelle Daten empfangen (LED "RxD" blinkt).
```
Wir haben jetzt das Problem, dass die nur Bausteine mit 4 Eingangen/Ausgängen haben. Im OB1 steht ja :


```
L     PEW    0                    // Copy inputs to the process image inputs
 T     MW     0

 CALL  "ORG_ZYK"                   // Cyclic operation of the CP340

 L     MW     8                    // Copy process image outputs to the outputs
 T     PAW    4
 BE
```
Und so dachten wir, wir schreiben die Werte einfach direkt ins MW0. Und genau da habe ich noch einmal Fragen.

Wir brauchen ja kein senden - muss das denn ausgeschaltet oder sogar gelöscht werden, damit es nicht zu Fehlern kommt?

Wenn ich es richtig verstehe ist ist ein WORD = 16 Bit, oder? Was genau ist denn PEW0? E0.0 bis E1.7? Und wenn ich eine Zahl in das MW0 schreiben will, wie sind dann die Wertigkeiten? 2^15...,2^1,2^1,2^0 - also E1.7,..., E0.2, E0.1, E0.0?

mfg


----------



## Ralle (9 Juli 2008)

Irgendwie hab ich den Eindruck, daß du nicht genau weißt, wie du die Bausteine der CP340 einsetzen mußt.

Ich häng dir mal ein Beispiel als AWL-Quelle an. Diese kannst du importieren und übersetzen, dann wirst du einen FB100 und einen DB100 erhalten. Folgernder Aufruf kann dann in den OB1 oder einen FC eingefügt werden:


```
CALL  "FB Scanner" , DB10
       Enable       :="Empfang_Ein"
       Start        :=M101.0
       Reset        :="Reset"
       LADDR        :=256
       String_DB_No :=100
       String_DBB_No:=0
       Error        :="Error"
       Len          :=MW102
```
Sobald du Enable auf True stellst, empfängt der FC Daten von der CP340. Diese legt er im DB100 ab DBB0 ab. Start war bei mit der Triggerstart für den Scanner. Damit habe ich gleichzeitig in dem DB100 den String gelöscht. Ansonsten, ohne den Startmerker, wird der String einfach überschrieben.

Im CP340 hatte ich die Parameter bei ASCII auf "Nach Ablauf der Zeichenverzugszeit" und diese auf 4ms gestellt. Damit lief das Ganze eigentlich.

PS: Der FB ist nur zu Testzwecken entstanden, kann durchaus auch sein, daß ich ein Siemens-Beispiel adaptiert hatte, das weiß ich nicht mehr so genau.


----------



## steven001 (9 Juli 2008)

Danke,

ja du hast recht, es fehlt einiges an Wissen. Wir haben gerade mal die Grundlagen durch, und das auch "nur" mit der Software von ABB. Ich fühle mich z.Z. etwas verloren in den unendlichen Weiten von Siemens. Aber na gut - da muss ich durch.

Brauch ich bei deinen Beispiel die Baussteine von Siemens zusätzlich? Hab da ja einen Haufen aus einem Beispielprogramm, mit den ich mich z.Z. rumschlage. 

Ok, importieren heißt wohl Einfügen -> Externe Quelle... , oder.  

mfg


----------



## Ralle (9 Juli 2008)

Ja, einfügen, externe Quelle, dann übersetzen. Wenn es nicht FB100 und DB100 werden soll, dann in der Quelle entsprechend nach Wunsch ändern. Du brauchst den FB2 (P_RCV), der im CP-Paket enthalten ist und nach der Installation des Paketes unter "Bibliotheken/CP PtP/CP 340" im Übersichten-Fenster zu finden ist.

PS: Wenn du den FB2 anwählst und dann "F1" drückst kommt auch die zugehörige Hilfe auf den Schirm.


----------



## steven001 (9 Juli 2008)

Super, mit

CALL  "FB Scanner" , DB10

ist der FC 100 gemeint, oder - gibt z.Z. keinen FB Scanner!


----------



## Ralle (9 Juli 2008)

Der FB100 ist gemeint, der, welchen ich gepostet habe.

Call FB100, DB10 

Der DB 10 wird dann erzeugt, das ist der InstanzDB, des FB 100, du kannst auch eine andere DB-Nummer wählen. Dieser muß auch mit in das AG übertragen werden.

Hier noch einmal ohne Symbolik:

```
CALL  FB   100 , DB10
       Enable       :=M100.0
       Start        :=M101.0
       Reset        :=M100.1
       LADDR        :=256
       String_DB_No :=100
       String_DBB_No:=0
       Error        :=M100.3
       Len          :=MW102
```


----------



## steven001 (9 Juli 2008)

Ok, habe alles so gemacht.

Ich habe Enable direkt auf True gesetzt, hoffe das ist erlaubt.

```
Enable       :=TRUE
```

Die DB 100 kann ich online nicht anschauen, wie kann ich jetzt sehen ob und welche Daten ankommen?

mfg


----------



## Ralle (9 Juli 2008)

Das geht bei String nicht. Mach eine Variablentabelle auf und dort unterreinander Byte 0 ... Byte 30 (Soviel, wie du sehen mußt). Diese dann auf Zeichen stellen. Besser geht es leider nicht bei Siemens mit Strings. Byte 0 und 1 enthalten übrigens die max. und aktuelle Länge des Strings, diese auf Hex oder Dez stellen.

PS: die richtige LADDR eintragen, die in der Hardwarerkonfig für die E-Adresse vergeben ist!


----------



## steven001 (9 Juli 2008)

Klasse und herzlichen Dank für deine/eure Mühe - es kommt was an:TOOL:

Ok, wie es aussieht klappt es er schreibt in DB100.DBB0 und in DBB100.DBB1 jeweils 14 rein. Und in DB100.DBW2 sogar die richtigen Zahlen (wenn ich auf Zeichen umstelle) die der Strichkode darstellen soll. Aber was schreibt er in die weiteren? DBB4 bis X?

mfg


----------



## Ralle (10 Juli 2008)

Wenn in DBB0 und 1 eine 14 Dez steht, dann müßten in DBB2 bis DBB16 die Zeichen stehen. Wenn dort kein "normales" Zeichen (Ziffer, Buchstabe) erkennbar ist, kannst du ja mal auf  Hex umstellen und den angezeigten Hex-Code dann mit einer  ASCII-Tabelle im Internet vergleichen. 

z.Bsp. hier: http://www.torsten-horn.de/techdocs/ascii.htm

Was genau meinst du damit? 



> Und in DB100.DBW2 sogar die richtigen Zahlen (wenn ich auf Zeichen umstelle) die der Strichkode darstellen soll. Aber was schreibt er in die weiteren? DBB4 bis X?



In DBW2 steht Zeichen 1 und 2 des Strings, in DBW4 sollte dann Zeichen 3 und 4 stehen usw.


----------



## elektroniktommy (17 Oktober 2008)

Hallo sind die Umsetzer noch zu haben und was sollen sie kosten?

Gruß Tommy


----------



## Ralle (17 Oktober 2008)

elektroniktommy schrieb:


> Hallo sind die Umsetzer noch zu haben und was sollen sie kosten?
> 
> Gruß Tommy



Du solltest besser eine PN an Maxl schicken, dann ist es sicherer, daß er deine Frage auch liest .


----------

