# Twincat Serielle Schnittstelle?



## Vogei (10 April 2008)

Hallo! 
Ich sitze gerade an meiner Diplomarbeit und muss einen Faulhaber-Motor über die Serielle Schnittstelle des Beckhoff CX9000 ansteuern. Nun ist das mein erstes Projekt mit Twincat und ich bekomme die Kommunikation mit dem Motor einfach nicht hin! Ich hab mir bereits das Beispielprogramm von Beckhoff durchgesehen und versucht die Ansteuerung des Motors zu realisieren. Ich weiß auch nicht ob die Einstellungen im Twincat Manager so richtig waren! 

Kann mir hier jemand helfen? Aus der Hilfe werd ich einfach nicht schlau!

Gruß Vogei!!


----------



## drfunfrock (10 April 2008)

Erst einmal benötigst du die globalen Variablen: 


```
TxBuffer : ComBuffer;
RxBuffer : ComBuffer;
```
Dann musst du die folgenden IO-Var mit deiner Klemme koppeln:



```
RS232InData AT %IB1100 : PCComInData;
RS232OutData AT %QB1100 : PCComOutData;
```
Anschliessend baust du einen Task, der eine Zykluszeit von max 2ms hat: 


```
RS232 : PcComControl;

RS232(
            COMIn := RS232InData,
            COMOut := RS232OutData,
            TxBuffer := TxBuffer,
            RxBuffer := RxBuffer
            );
```
Jetzt kannst du empfangen und senden. Senden: 

 RS232Send : SendString;
 RS232Send(SendString:='Hallo$0A', TxBuffer:=TxBuffer);


Empfangen: 


```
ReceiveRS232 : ReceiveString;
ReceiveRS232(
            RxBuffer := RxBuffer,
            Suffix:='$0A',
            ReceivedString := msg
);

IF ReceiveRS232.StringReceived THEN
  ...
END_IF;
```

Das war ein Bps. für die Version1 und die PC-Schnittstelle. Die Version2 ist da etwas einfacher.


----------



## Bührer (10 April 2008)

Hallo drfunfrock

Hast du diese Bibliothek gekauft oder ist die gratis? Wie heisst diese Bibliothek?

2ms mit einem CX9000 ist aber eine rechte Herausforderung. Lässt du wirklich einen CX9000 mit 2ms Task zeit laufen?

Gruss

Thomas


----------



## Bührer (10 April 2008)

Hallo Vogei

Ist die Serielle Schnittstelle eine Klemme auf dem K oder E Bus?  Oder ist es eine Zweifach Schnittstelle auf der linken Seite der SPS?  

Hast du im Systemmanager die Variablen verlinkt?

Gruss

Thomas


----------



## drfunfrock (10 April 2008)

Die Bibliothek kann man bei Beckhoff unter dem Namen Twincat PLC Serial Communication kaufen.  Man bekommt eine CD, sollte sich aber die aktuelle Version vom Server holen. Ich habe die Bibliothek schon seit 4 Jahren im Einsatz, auf Stand V1.0 und das lief auf dem PC. Da war es Empfohlen, die Zykluszeit auf 1ms zu halten, da die Klemmenbuffer so klein sind. Les mal die Doku zu V2, die du ebenfalls herunterladen kannst, ob das  noch notwendig ist. Beim K-Bus ist bei 4 Rs232-Klemmen sowieso nix mit 1ms Zykluszeit. 

Ich empfehle eher die RS232 für Ethercat oder die am PC. Wenn man das ganze in einem extra Task betreibt (Variablen ebenfalls mit Task assoziieren, sonst geht es schief) sollte das in jedem Fall gehen.


----------



## Bührer (10 April 2008)

Wie läuft das mit diesen Bibliothek

Bezahlt man einmal und kann dafür auf allen PC die Bibliothek installien oder muss für jeden PC eine Lizenz gekauft werden?

Bekommt man updates gratis oder muss man da wieder zahlen?

Gruss

Thomas


----------



## drfunfrock (10 April 2008)

Man kann die einfach installieren mit der Seriennummer. Hhmm, auf die Lizenz hab ich nicht geschaut. Ich bin hier sowieso der einzigste Entwickler. Im Prinzip kann man anschliessend auch nur die Bibleotheksdateien kopieren, die installiert werden. 

Die Update kann man von der Beckhoffseite holen.


----------



## Vogei (10 April 2008)

*Hallo*

Danke für die schnelle Antwort!

Ich werd Morgen das nochmal mit deinem Beispiel versuchen! Hab heute das Beispiel von Beckhoff etwas umgeschrieben und ich denke die Schnittstelle hat dann auch gesendet, da auf dem Ausgang des Seriellen Schnittstelle der Code für den String den ich sende in Hex steht. Aber als Antwort kam nur Schrott und der Error_Receive brachte eine meldung mit "...invalid". Konnts nicht genau lesen. 

Seid Ihr morgen wieder online, da ich dies nur im Büro testen kann(wegen der Motoren)?


----------



## drfunfrock (11 April 2008)

Ich würde es nicht mit den Motoren testen, sondern mit Hyperterm  COM1 für Twincat und Com2 für Hyperterm. Man kann die instanzierten FB der Bibliothek im Debugger einsehen. In den Buffern taucht das auf, was  du sendet oder empfängst.


----------



## Vogei (11 April 2008)

drfunfrock schrieb:


> sondern mit Hyperterm  COM1 für Twincat und Com2 für Hyperterm. Man kann die instanzierten FB der Bibliothek im Debugger einsehen. In den Buffern taucht das auf, was du sendet oder empfängst.


 
Wie funzt das? Muss ich da die beiden seriellen Schnittstellen per Nullmoden verbinden! Kannst du das für mich etwas genauer beschreiben? Steh bei dem Thema voll auf dem Schlauch!


----------



## drfunfrock (11 April 2008)

Verbunden wird COM1, Pin2 mit Com2 Pin3. Dann Com1, Pin3 mit Com2 Pin2. Zum Schluss Com1 Pin5 nach Com2 Pin5.


Warum schreib ich dass eigentlich? Kann die heutige Generation nicht einmal mehr Googeln? Auuuuaaaaaaaaa 

Eigentlich sollte man das wissen. RS232 hat man im Kopf zu haben.


----------

