# Hilfe für Quereinsteiger



## danielk (28 Oktober 2009)

Guten Morgen!

Ich plane zur Zeit eine kleine mobile Anlage zum Testen von Messgeräten, wobei ich Temperatur, Spannung messe und "verarbeite" sowie ein paar Ventile reglen muss.

Vom Aufbau her habe ich mich für die CX9010 entschieden, an der die entsprechenden Klemmen drangesteckt sind. Nach der Installation von TWINCAT hat das System auch alles erkannt. Alles soweit i.O.

Ich habe für die Verarbeitung probehalber ein kleines Programm in ST geschrieben und wollte dies auf das CX transferieren. 


```
PROGRAM MAIN
VAR
 tempIn AT %IB28: REAL; (*  Temperatur-Eingang  *)
 nsp: REAL;
END_VAR
 
nsp := nernstspannung(tempIn);
```
 
und 


```
FUNCTION nernstspannung : REAL
VAR_INPUT
 Temperatur : REAL;         (* Temperatur-Eingang *)
END_VAR
VAR
 NerstQuotient : REAL:=19.1607; (* Amb-Air / 10ppm *)
 AllgGasKonstant_R : REAL:=8.31447 ; (*J mol^-1 K^-1*)
 FaradayKonstante_F : REAL:=96485.34; (*mol^-1*)
 Usonde: REAL;
END_VAR
 
 
nernstspannung:=(AllgGasKonstant_R*(temperatur+273)/(2*FaradayKonstante_F))*NerstQuotient;
```
 
Jetzt sagt mir das Programm beim Einloggen (F11), dass ich den falschen PLC Typ angeschlossen habe . Als Zielsystem ist der CX ausgewählt, was habe ich also falsch gemacht ?

Weiter habe ich das Problem, dass die Variable für die Temperatur als REAL deklariert habe, jedoch im System-Manager als INT läuft und den Wert ohne Komma darstellt. Auch hier finde ich keine Möglichkeit dies zu ändern. 

----------------------------------

Wenn ich im System-Manager die Konfiguration überprüfen will, sagt mir dieser, dass das Gerät xy kein Sync Master hat. Leider finde ich in der Doku nur eine Beschreibung, was dies ist, jedoch nicht wie oder wo man diesen einstellt...

----------------------------------

Als Messgerätehersteller habe ich keinerlei Kenntnis von SPS usw, dachte aber, dass mit ein wenig Verstand und einer guten Doku die Sache schon in den Griff kriegen werde. 

Nun muss ich gestehen, dass diese Steuerung zu mächtig für mich ist, daher bin ich auf der Suche nach einem "SPS für Dummies". Ich mir sicher bin dass die oben beschriebenen Punkte nicht wirklich Probleme sind. Die Doku von BECKHOFF setzt leider schon vieles voraus, was mir definitiv fehlt.

Hat wer Vorschläge, wie/wo man sich an das Thema reinarbeiten könnte? 

Besten Dank und Grüße,
Daniel


----------



## trinitaucher (28 Oktober 2009)

danielk schrieb:


> Jetzt sagt mir das Programm beim Einloggen (F11), dass ich den falschen PLC Typ angeschlossen habe . Als Zielsystem ist der CX ausgewählt, was habe ich also falsch gemacht ?


Als Zielsystem musst du beim CX9xxx "CX (ARM)" auswählen, da der keine x86-basierende CPU hat. 


danielk schrieb:


> Weiter habe ich das Problem, dass die Variable für die Temperatur als REAL deklariert habe, jedoch im System-Manager als INT läuft und den Wert ohne Komma darstellt. Auch hier finde ich keine Möglichkeit dies zu ändern.


Konvertierung von Datentypen:

```
rRealwert := INT_TO_REAL(iIntegerwert);
```
Du holst den Wert als INT in die SPS und konvertierst dann.

Beachte:
der CX9xxx hat meines WIssens nach keine FloatingPointUnit, die Verarbeitung von REAL-Werte wird daher richtig lahm sein.



danielk schrieb:


> Wenn ich im System-Manager die Konfiguration überprüfen will, sagt mir dieser, dass das Gerät xy kein Sync Master hat. Leider finde ich in der Doku nur eine Beschreibung, was dies ist, jedoch nicht wie oder wo man diesen einstellt...


Diese MEldung kommt, wenn eines der "Geräte" der E/A-Konfiguration keine Verknüpfung zur SPS hat.
Wenn das Gerät nicht gebraucht wird, kannste's ignorieren, ansonsten stelle zumindest einfach irgendeine Verknüpfung zwischen SPS und einem Prozessdatum des betreffenden E/A-Geräts her.



danielk schrieb:


> Nun muss ich gestehen, dass diese Steuerung zu mächtig für mich ist, daher bin ich auf der Suche nach einem "SPS für Dummies". Ich mir sicher bin dass die oben beschriebenen Punkte nicht wirklich Probleme sind. Die Doku von BECKHOFF setzt leider schon vieles voraus, was mir definitiv fehlt.


der CX9xxx ist eigentlich die kleinste PC-basierte Steuerung, die Beckhoff im Programm hat.

Das Problem ist für dich wohl eher das TwinCAT als Programmier- und Konfigurationsumgebung. Das System ist überaus mächtig und kann bis zu ner NC ausgebaut werden, ohne eine andere Software zu benötigen.
Du kratzt wahrscheinlich eher am untersten Rand der Möglichkeiten ... 
... entweder man mag TwinCAT, oder man hasst es. Ich will mittlerweile mit nichts anderem mehr arbeiten, denn das System kann (mit entsprechender Hardware) überaus viel und spielt die Stärken erst so richtig aus, wenn's an Achsregelungen und Datenaustausch mit anderen (Fremd)Systeme geht.

"SPSen für Dummys" bietet Beckhoff in dem Sinne eigentlich nicht an.
Da gibt's andere und oft auch günstigere Systeme am Markt.


----------



## Cerberus (28 Oktober 2009)

danielk schrieb:


> Jetzt sagt mir das Programm beim Einloggen (F11), dass ich den falschen PLC Typ angeschlossen habe . Als Zielsystem ist der CX ausgewählt, was habe ich also falsch gemacht?


 
Was hast du denn für ein Zielsystem ausgewählt {PC und CX (x86) oder CX (Arm)}? Und was ist dein CX (wahrscheinlich x86?)?



danielk schrieb:


> Weiter habe ich das Problem, dass die Variable für die Temperatur als REAL deklariert habe, jedoch im System-Manager als INT läuft und den Wert ohne Komma darstellt. Auch hier finde ich keine Möglichkeit dies zu ändern.


 
Kann das am "%IB28" liegen? Passt IB zu REAL? Kenn mich da nicht aus. Würde dir auf jeden Fall "%I*" empfehlen, dann musst du dir auch keine Gedanken über Adresse bzw. Größe der Variablen machen. 



danielk schrieb:


> Wenn ich im System-Manager die Konfiguration überprüfen will, sagt mir dieser, dass das Gerät xy kein Sync Master hat. Leider finde ich in der Doku nur eine Beschreibung, was dies ist, jedoch nicht wie oder wo man diesen einstellt...


 
Das liegt daran, dass die Ein- / Ausgänge des Geräts xy nicht mit den Variablen deiner Task verknüpft sind. Wenn du deinen Eingang als %I* deklarierst, dann kannst du im System-Manager diesen mit dem entsprechenden Eingang am Gerät xy verknüpfen. Dann dürfte diese Warnung auch nicht mehr auftreten.


----------



## witkatz (28 Oktober 2009)

trinitaucher schrieb:


> Konvertierung von Datentypen:
> 
> ```
> rRealwert := INT_TO_REAL(iIntegerwert);
> ...


Man sollte dabei auf die Auflösung der Werte achten. Die Temperaturmess-Klemmen liefern soviel ich weiß den Temperaturwert in 0.1° Auflösung. Das sollte man aber mit der Klemmendoku verifizieren.
Wenn rRealwert in °C skaliert werden sollte dann muss die Skalierung noch angepasst werden:

```
rRealwert := INT_TO_REAL(iIntegerwert) / REAL#10;
```
Gruß,
witkatz


----------



## danielk (28 Oktober 2009)

Besten Dank @ trinitaucher, cerberus und witkatz

werd mich da mal weiter durchwuseln 

lg Daniel


----------



## Sinix (14 Januar 2010)

trinitaucher schrieb:


> danielk: Wenn ich im System-Manager die Konfiguration überprüfen will, sagt mir dieser, dass das Gerät xy kein Sync Master hat. Leider finde ich in der Doku nur eine Beschreibung, was dies ist, jedoch nicht wie oder wo man diesen einstellt...
> 
> Diese MEldung kommt, wenn eines der "Geräte" der E/A-Konfiguration keine Verknüpfung zur SPS hat.
> Wenn das Gerät nicht gebraucht wird, kannste's ignorieren, ansonsten stelle zumindest einfach irgendeine Verknüpfung zwischen SPS und einem Prozessdatum des betreffenden E/A-Geräts her.



Als TwinCat-Anfänger hab ich nun auch diese Meldung. Kannst du das mit dem Prozessdatum mal erläutern?


----------



## Cerberus (14 Januar 2010)

@Mäuseklavier

So wie ich deinem Screenshot entnehme, hast du bereits ein SPS-Projekt angefügt. Nun musst du nur noch eine Verknüpfung zwischen dem SPS-Projekt und deinem CX1100 herstellen (Variablenverknüpfung).

Gruß Cerberus


----------



## Sinix (14 Januar 2010)

Das habe ich auch bereits getan, ist ein Testaufbau, habe einige E/As von den EL-Klemmen mit dem Programm verknüpft. Bekomme die Meldung auch für das Gerät1 (RT-Ethernet).


----------



## Cerberus (14 Januar 2010)

Mäuseklavier schrieb:


> Das habe ich auch bereits getan, ist ein Testaufbau, habe einige E/As von den EL-Klemmen mit dem Programm verknüpft. Bekomme die Meldung auch für das Gerät1 (RT-Ethernet).


 
Was hängt denn an dem Gerät1 dran? Ist das deine ganz normale Ethernet-Schnittstelle des PCs? Brauchst du das Gerät überhaupt? Wenn nein, würde ich es entfernen oder zumindest deaktivieren.

Gruß Cerberus


----------



## Sinix (14 Januar 2010)

Hab Gerät 1 deaktiviert, die Meldung kommt nicht mehr. Ansonsten habe ich gesehen, das die E/As auf Gerät 2 liegen. Die Meldung ist aber vom Gerät 6 (CX). Den kann ich wohl nicht deaktivieren, was hier tun? Hänge nochmal nen Screenshot dran.


----------



## trinitaucher (14 Januar 2010)

"Gerät 6" scheint mir Netzteil und USV zu sein.
Du musst nicht unbedingt eine Verknüpfung machen, kannst es auch irgnorieren. Sollte den Betrieb nicht beeinflussen.

Bei den "normalen" Netzteilen ist es so. Kenn mich mit den USVs aber nicht aus. Könnte durchaus sein, dass die irgendwie bedient werden müssen.
Lösch das Gerät 6 einfach mal aus der Konfig und versuch's, ob's geht.


----------



## Sinix (14 Januar 2010)

Ja ist mit USV, habs gelöscht und konnte die Konfiguration ohne Meldung aktivieren und in Run-Modus schalten. Danke


----------



## trinitaucher (14 Januar 2010)

Mäuseklavier schrieb:


> Als TwinCat-Anfänger hab ich nun auch diese Meldung. Kannst du das mit dem Prozessdatum mal erläutern?


Grundsätzlich zu dem Thema:
Beim Scannen der Hardware findet TwinCAt einige Hardware-Geräte. Diese müssen im Betrieb durch die Software-SPS zyklisch getriggert werden => sie brauchen einen sog. "Sync Master".
Sync-Master kann irgend eine TwinCAT-Task sein.

Wird dieses Hardware-Gerät nicht benötigt, kann man es aus der Konfig entfernen oder einfach deaktivieren (z.B. das RT-Ethernet oder das Nov-Ram).
Die Klemmenanschaltung sollte man logischerweise nicht löschen 

Will man die Geräte aber in der Konfig belassen, dann stellt man einfach irgend eine Verknüpfung zu irgend einer Task (SPS oder "zusätzliche Task") her.... Fertig.


----------



## Sinix (15 Januar 2010)

trinitaucher schrieb:


> Will man die Geräte aber in der Konfig belassen, dann stellt man einfach irgend eine Verknüpfung zu irgend einer Task (SPS oder "zusätzliche Task") her.... Fertig.




Heisst das ich lege in der SPS ne Dummy-variable an oder gibts da noch ne andere Möglichkeit, Stichwort Prozessdatum? Mit welcher variable aus dem Prozessabbild würde ich zum Beispiel die USV verknüpfen, (siehe Screenshot gestern)?


----------



## trinitaucher (15 Januar 2010)

Wenn du in der SPS keine Variable frei hast, lege eine "zusätzliche Task" an:
http://infosys.beckhoff.com/index.p...manager/basics/tcsysmgr_configaddusertask.htm
Dort eine Variable als Ein- oder Ausgang anlegen, passend zu den Prozessdaten deines E/A-Geräts:
http://infosys.beckhoff.com/index.p...csystemmanager/basics/TcSysMgr_AddTaskVar.htm

Als Prozessdatem biete sich doch "24V State" an? Das könntest du doch sogar in die SPS ziehen als Info, oder nicht?

Es müssen aber richtige Prozessdaten sein. Vom System generierte Variablen, wie z. B. die Geräte-ID ("DevID") oder die ADS-Adresse ("AmsNetId") genügen für die Verküpfung zur Sync-Task nicht, meine ich zu wissen.​


----------

