Analogwertprogrammierung S5

seahawkibiza

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

ich bin relativ neu in der SPS Programmierung. (Allerdings beherrsche ich beruflich jede Menge anderer Sprachen, hauptsächlich Assembler auf allen gängigen Prozessoren)

Nun habe ich folgendes Problem:

Zur Ansteuerung eines Frequenzumrichters brauche ich u.a. ein analoges Ausgangssignal 0-10V. Die entsprechende Adaptionskapsel ist in der Baugruppe drin. Als Eingangsignal bekomme ich an einem Digitaleingang eine Frequenz von 0-100Hz, diese soll dann linear als Spannung von 0-10V ausgegeben werden.

Kann mir jemand mal ganz schemenhaft (oder genau:D ) aufzeigen, wie das programmiert wird?

Vielen Dank,

Ingolf
 
welche cpu hast du?

vorweg.
100 hz am digitaleingang kannst du vergessen. viel zu schnell.
dafür brauchst du auf jeden fall eine zählerkarte oder einen umsetzer der abhängig von der frequenz einen strom (z.b. 4-20ma) bzw eine spannung (z.b. 0-10v) ausgibt.

mir ist nicht so ganz klar was die 0-100hz am eingang sollen.
ich nehme mal an das soll der sollwert sein.
nimm dafür z.b. ein poti auf einen analogeingang 0-10v.
oder einen 3-stelligen rändelschalter bcd codiert.


ananlog ein/ausgabe:

bei den cpus der 95,100,115er reihe gibt es dafür die fbs
fb250 analogwert einlesen und normieren.
dort trage als ogr 1000 und als ugr 0 ein

fb251 analogwert ausgeben.
auch hier als ogr 1000 und als ugr 0 eintragen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich bin relativ neu in der SPS Programmierung. (Allerdings beherrsche ich beruflich jede Menge anderer Sprachen, hauptsächlich Assembler auf allen gängigen Prozessoren)

Nun habe ich folgendes Problem:

Zur Ansteuerung eines Frequenzumrichters brauche ich u.a. ein analoges Ausgangssignal 0-10V. Die entsprechende Adaptionskapsel ist in der Baugruppe drin. Als Eingangsignal bekomme ich an einem Digitaleingang eine Frequenz von 0-100Hz, diese soll dann linear als Spannung von 0-10V ausgegeben werden.

Kann mir jemand mal ganz schemenhaft (oder genau:D ) aufzeigen, wie das programmiert wird?

Vielen Dank,

Ingolf

Hallo seahawkibiza,

zunächst zu den Impulsen über den Digitaleingang:
100Hz ist schon relativ schnell.

Je nach dem, welche Zykluszeit dein Programm hat, wirst du das Problem
haben können, das Impulse verloren gehen.
Die Eingänge selber haben auch eine gewisse Verzögerung, die einige ms
betragen kann.

Zweckmässiger weise sollte also die Frequenz an eine Zählerkarte geführt
werden oder auf eine interruptfähige Digitalkarte.

Zum Wandeln der Frequenz in ein proportionales Analogsignal:
Hier kommt es darauf an, wie schnell dein Analogwert aufgefrischt werden muss.

Hier ein Beispiel für eine Aktualisierungsrate von 1 Sekunde:

Timer mit Impulsdauer von 1 Sekunde starten.
Eingehende Zählimpulse in einem Datenwort zählen.
Timer Abgelaufen:
Impulszähler auf 1-100 skaliert an Analogausgang geben.
(Skalierungs - FB benutzen, es gibt bei S5 abhängig von CPU und Analogkarte verschiedene)
Impulszähler wieder 0 setzen, Timer neu starten.

Das ist recht schnell programmiert, sollte für einen Mann mit Assembelerfahrung
kein Problem sein.

Soll der Analogausgang allerdings quasi "synchron" mit der Eingangsfrequenz
abgeglichen werden, wirds etwas aufwändiger.
Da würde sich eine Alarmverabeitung anbieten, bei der die Zeitdifferenz zwischen den einzelnen Impulsen
ermittelt wird.

CU

Jürgen.


Edit:
Hallo Volker, da war ich wohl zu langsam ! ;-)
 
Zuletzt bearbeitet:
Zur Ansteuerung eines Frequenzumrichters brauche ich u.a. ein analoges Ausgangssignal 0-10V. Die entsprechende Adaptionskapsel ist in der Baugruppe drin. Als Eingangsignal bekomme ich an einem Digitaleingang eine Frequenz von 0-100Hz, diese soll dann linear als Spannung von 0-10V ausgegeben werden.


wenn du das signal nich unbedingt in der sps brauchst bzw dort nich manipulieren willst, dann wird die einfachste lösugn ein f/u-wandler sein.

diesen geräten gibst du eingangsseitig eine frequenz und ausgangsseitig hast du proportional zum eingestellen range 0-10V
 
Hallo Volker,

danke für die prompte Antwort. Habe mir schon gedacht, das die E/A Gruppen zu langsam sind.

Regelaufgabe:

Ein PC gibt ein Signal je nach Drehzahl der Werkzeugspindel von 0-100Hz aus (Sollwert). Damit soll ein Frequenzumrichter der nur einen 0-10V Eingang hat, angesteuert werden. 100Hz entsprechen dann 6000 rpm.
Die Ansteuerung sollte nicht über einen externen Wandler gemacht werden, weil die Drehzahl auch von der SPS gesteuert werden soll, zum Beispiel zum Nachregeln unter Last (Drehzahlsensor, sind dann auch 0-100Hz Ist-Wert)

Eine Zählerbaugruppe habe ich leider nicht - das wäre super.

Also benutze ich zwei Wandler F>U (einen Sollwert, einen Istwert) und arbeite nur mit dem Vergleich der analogen Größen und gebe das analoge Signal an den FU aus - das müsste dan gehen, oder?

CPU ist eine 943B, die E/A Baugruppen sind von einer 135er in einer Adaptionskapsel auf einer 700er Backplane.

Gruß,

Ingolf


PS: Ihr seid ja schnell... während ich geschrieben habe, kamen noch zwei Beiträge.
Ja, ihr habt recht - die E/As sind zwar interruptfähig, aber könnten doch zu langsam sein. Also werde ich doch zwei F/U Wandler nehmen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo nochmal,


für alle die, die es interessiert: Ich habe eine CNC-Fräsmaschine im Eigenbau (ca. 750kg Stahl), mit SK40 Werkzeugwechsler (Hydraulisch), 3kW Antriebsmotor über FU, 400W Servomotoren an den Achsen X,y,z und A - Verfahrweg in X/Y 400mm Z 450mm.

Alle Elektronik ist Eigenbau, als CNC-Controller dient ein PC. Die gesamte Steuerung des Werkzeugwechslers, Sicherheitsschaltungen, Kühlmittel, Temeraturüberwachung Endstufen, Motoren, Lüfterregelung etc. wollte ich eigentlich auch mit einem Eigenbaucontroller machen. Nun fiel mir aber die komplette S5-115U mit den ganzen 135er Karten in die Hände. Inclusive Software. Also will ich nun alles mit der SPS machen, aber SPS war bis jetzt ein rotes Tuch für mich. Aber es ist ein schönes Projekt, um damit vertraut zu werden.

Gruß,

Ingolf
 
das mit dem f>U wandler wird klappen.

wie erwähnt,
mit dem fb250 den istwert einlesen. hier ist dein wandler auf adresse PW128
Code:
     :SPA FB 250
Name :RLG:AE
BG   :    KF +128
KNKT :    KY 0,4
OGR  :    KF +1000
UGR  :    KF +0
EINZ :    M  255.0
XA   :    DW   1
FB   :    M  255.1
BU   :    M  255.2
im datenwort 1 hast du nun deinen sollwert. als ogr 1000, damit du quasi eine kommastelle hast.

L DW 1
...rechne
...irgendwas
T DW 2

mit dem fb 251 den analogwert ausheben. der FU hängt am PW172.
Code:
     :SPA FB 251
Name :RLG:AA
XE   :    DW   2
BG   :    KF +172
KNKT :    KY 0,4
OGR  :    KF +1000
UGR  :    KF +0
FEH  :    M  250.0
BU   :    M  250.1

wenn du nur 1:1 übertragen willst könntest du auch schreiben
L PW 128
T PW 172
aber das willst du ja nicht
 
Zurück
Oben