Quantcast
Channel: SPS-Forum - Automatisierung und Elektrotechnik
Viewing all 49721 articles
Browse latest View live

TIA INAT Echochange : TIA V14 S7-1500 > Allen Bradley Kommunikation = HELP

$
0
0
hallo alle zusammen,

wer kann mir helfen,...ich will eine Verbindung mit meiner Siemens zu einer Allen Bradley aufbauen und dies mittels eines Softing Echochange...

wie mache ich das ?
GET und Put oder doch eher Tsend, TResv...

Welche Einstellungen muss ich vorher beachten bzw. vornehmen ?
Ich danke für jede Unterstützung...

Step 7 Sommer-/Winterzeit umstellen

$
0
0
Hallo,

ich habe folgendes Problem:

An einer Maschine bekomme ich vom Timeserver die Winterzeit zur SPS gesendet. Nun habe ich den FC61 "BT_LT" eingesetzt um im Sommer die Sommerzeit ausgegeben zu bekommen.

Jedoch bekomme ich die jetzige Zeit auch schon mit +1h ausgegeben.

Der zugehörige DB ist wie von Siemens vorgegeben angelegt.

Weiß jemand woran das liegen kann, dass ich zur Zeit die Sommerzeit ausgegeben bekomme?
Das Datum in der CPU ist korrekt.

Sonstiges neue Apps zum Steuern von S7

$
0
0
Hallo,

wollte mal hier anfragen, ob es was neues an Apps für zum Steuern einer S7 gibt im Bereich IOS.
Habe bis jetzt immer IControlCenter genutzt auf einem Iphone 6 IOS 10.x.x nur das nervige Updaten auf IOS 11.x.x nervt langsam, da ab dann nur noch 64Bit Programme laufen.

mfg

codesys 2.3 visualisierung Platzhalter usw.

$
0
0
Hallo,

habe eine Visualisierungsmaske zur Eingabe bestimmter Werte erstellt. Diese Maske soll mit Betätigung eines Button (Einstellungen) sichtbar werden.
Auf einer Visu Seite habe ich dann z.B. 4 Felder Raum 1....4. In diesen Feldern ist dann der Button (Einstellungen) je Raum. Muss ich die Visualisierungsmaske jetzt für jeden Raum einzeln einfügen oder kann ich die Visualisierungsmaske einmal platzieren und dann jeweils die Visualisierungsmaske mit dem Button je Raum einblenden und den Platzhalter der Visualisierungsmaske auf den jeweiligen Raum umschalten?

Wenn ich mehrere Visu's als Referenz anlege, kann ich den Platzhalter im gleich benennen, oder sollte pro Referenz ein anderer Platzhaltername genommenen werden? z.B. $obj$....., $obj1$......

Wie rufe ich aus dem Code eine Visu Seite auf oder blende ein Fenster ein usw.?

Evtl. hätte jemand für mich ein kleines Beispiel parat.

Vielen Dank im Voraus.

Gruß König

Verständnisfrage OSSD-Ausgänge bei Sicherheitsschaltern

$
0
0
Moin,

ich habe eine Frage zu Fehlermaskierungen und deren Verhinderung durch OSSD.

PILZ schreibt in seinem Sicherheitskompendium (https://www.pilz.com/download/open/T...4669-DE-01.pdf) auf PDF-Seite 140 (Dokument Seite 4-12) was bei Kurzschlüssen von Sicherheitsschaltern mit Öffner- oder Schließerkontakten passieren kann.

Die RFID-Schalter haben andere Ausgänge (OSSD). Aber wie funktioniert das? Was würde bei dem Beispiel auf Seite 140 passieren, wenn OSSD-Schalter verwendet werden? An welcher Stelle "merkt" das Sicherheitsschaltgerät, dass ein Fehler vorliegt? Wie wird das Wiedereinschalten bei anliegendem Fehler verhindert?

Hat das PNOZmulti m B0 OSSD-Eingänge, und kann man dort drei RFID-Sensoren in Reihe anschließen?

Vielleicht habt ihr ja ein paar Infos für mich ;-)

VG,
clumsi

Siemens Logo 8 mit plc home oder S7 remote app steuern

$
0
0
Hallo würde gerne meine Siemens Logo 8 mit plc home oder S7 remote app steuern,hat da irgendwer schon erfahrung?

Step 7 cpu lässt sich nicht in RUN Zustand versetzen

$
0
0
Hallo,
ich habe eine gebrauchte 1214c CPU erworben die von Step7 normal erkannt wird aber nach dem Laden eines Projekts nicht in den RUN Zustand versetzt werden kann. Im Diagnosepuffer erscheint die Meldung:
"Kein oder kein gültiger Datensatz für Konfigurationskontrolle des Zentralgeräts
Anlaufsperre(n) anstehend"

Die CPU geht dadurch von Zustand Anlauf nach Stop

mittels Google oder suche im Forum bin ich dem Problem nicht näher gekommen.

Ich habe eine Urlöschung gemacht und auf Werkseinstellungen zurückgesetzt. Aber das Problem besteht weiterhin.
Bleibt nach dem Urlöschen doch noch etwas im Speicher der CPU von alten Konfigurationen?

Als Anfänger bin ich nun etwas ratlos, die CPU vom Starterset konnte ich mit dem selben Projekt problemlos in Betrieb nehmen.

Grüße,
Joa

Sonstiges Modellbauservo und Schrittmotor mit S7-1200 - Kann das so funktionieren?

$
0
0
Hallo!

Angefangen habe ich mit einer LOGO8 mit der ich ganz gut zurechtkam. Habe mir nun eine S7-1200 zugelegt in die ich gerade einarbeite.

Mein Vorhaben:
Habe mir einen Schrittmotor und eine passende Schrittmotorsteuerungskarte gekauft und möchte diese mit der S7-1200 DC/DC/DC ansteuern. Die Karte verlangt an den OPTO Eingängen 5V. Ich könnte jetzt einen 2,2KOhm Widerstand dazwischen schalten - was ich aber nicht möchte. Stattdessen möchte ich einen OPTO-Koppler auf die 24V Seite der SPS hängen und auf der anderen Seite eine eigene 5V Versorgung für die Schrittmotorkarte. Dann wäre das Ganze schön getrennt und ich brauche mir keine Sorgen um die SPS machen wenn was schiefläuft.

Habe dabei an sowas gedacht
https://www.conrad.at/de/optokoppler...RoCzZ0QAvD_BwE

oder an sowas
https://www.banggood.com/de/8-Channe...r_warehouse=CN

Funktioniert das so oder stelle ich mir das zu Einfach vor?

Die selbe Hardware könnte ich auch verwenden um ein 5V Modellbauservo über PWM über die SPS anzusteuern

Nun, da ich jetzt nicht unbedingt der große Elektroniker bin wäre es super wenn ich mit da weiterhelfen könntet!

Danke und LG

Andreas

TIA Erzeugen von RESET

$
0
0
Hallo Zusammen,

Wie kann ich bei einer S1200 am einfachsten z.B. 5 Sekunden nach dem Einschalten/Hochfahren einen z.B. 1 Sekunden langen RESET erzeugen?

Der PID Regler hat anfangs noch nicht alle Werte und geht daher auf Fehler/inaktiv. Wir wollen ihm mit dem RESET dann "neustarten"

Danke + Grüße,

Reinhard

TIA Get_Alarm und LC_ID

$
0
0
Ich teste gerade eine Siemens-Beispiel zum Thema GetAlarm.
Dabei kann man Fehlertexte die über SystemAlarm ausgelöst werden in einen WString zurücklesen.
Das funktioniert soweit leidlich (Start und Stop scheint ein wenig zufällig zu funktionieren, wirklich nervig).
Dabei gibt es einen Input am Baustein AlarmGet --> LC_ID, der soll dafür sorgen, dass die richtige Sprache zurückgelesen wird.
Am Panel wird Deutsch oder Englisch(US) ausgegeben, das passiert auch.
Aber egal was ich versuche, GetAlarm gibt immer nur den deutschen Text aus. Weiß irgend jemand, wie ich das ändern kann?
In der Hilfe ist dazu kaum etwas zu finden.

Dem Monitor (ohne PC) ein Signal vortäuschen so dass er sich nicht ausschaltet

$
0
0
Ich möchte das Backlight meines alten 27" Monitors mit zerbrochenen Display als Beleuchtung für Bilder auf Glas weiter verwenden.
Leider schaltet sich das Backlight nach einigen Sekunden aus da kein Signal vom PC anliegt.
Wie kann ich dem Monitor vortäuschen das ein Signal anliegt ?
Am DVI oder HDMI Eingang. Vielleicht reicht es ja mit einer Büroklammer oder Kabel zwei Pins kurz zu schließen ?

Vielen Dank

TIA Hilfe! Tia v13

$
0
0
Hallo zusammen, ich habe jetzt im Frühjahr 2018 meine Zwischenprüfung und bräuchte dringend hilfe. Und zwar muss ich eine SPS programmieren, zur verfügung habe ich eine S7-1200 und das Programm Siemens Simatic TIA V13. Im Betrieb wird eingtlich nichts mit SPS gemacht, daher kennt sich dort auch keiner mit aus und in der Schule habe ich mit einem anderen Programm gearbeitet was auch nicht grade leicht gewesen ist.
Ich müsste dringend wissen wie ich einen Anlaufmerker realisieren kann, damit ich mein Programm weiter schreiben kann.
Würde mich freuen wenn mir jemand zeitnah helfen könnte. Bitte nicht so viel Fachsprache verwenden da ich mich in dem Bereich nicht sehr gut auskenne und das Programm an sich im moment noch sehr unübersichtlich finde.

Wenn sich jemand dazu bereit erklärt wäre ich gerne bereit meine E-Mail, Handynummer etc. weiterzugeben.
Bin echt aufgeschmissen

Mfg Kai :)

Analogwertverarbeitung mit B&R 2003

$
0
0
Hallo Zusammen,

da B&R das AS v3 nun ohne Beschränkungen anbietet und ich aus Demontagen noch einige Komponenten vom System 2003 liegen hatte, dachte ich, das ist doch ein nettes Objekt zum spielen.
Bislang hatte ich noch nicht wirklich etwas mit B&R zu tun. Sondern nur mit Siemens S7/S5 , der Siemens GLT-Sparte und LG-Steuerungen.
Wie ich dann feststellen musste ist B&R mit ihren Steuerungen doch etwas anders unterwegs. Das ganze erinnert mich mehr an Mikrocontroller Programmierung als an SPS. Vielleicht hab ich aber auch die falsche Herangehensweise?
Insbesondere geht es mir gerade um die Analogwertverarbeitung. Schon das Einlesen der Daten erscheint mir sehr aufwendig.
Ich habe hier folgende Konfiguration: CP430 als CPU, 7AF101.7 als Kopplung für die Anpassmodule und ein AT352 zum Anschluss eines PT100.
Ich hatte das dann auch so in der Hardwarekonfiguration konfiguriert und den Eingängen Variablen zugewiesen. Ich war der Meinung das müsste reichen. Allerdings kamen keine Werte in den Eingangsvariablen an.
Daraufhin widmete ich mich der AS-Hilfe und dem Systemhandbuch, las einiges über direkte IO-Zugiffe, Schaufelaufträge und Konfigurationsregister. Nach viel Experimentiererei mit der, nicht ganz einfach zu verstehenden, Doku und den dort enthaltenen Beispielen hatte ich einen ca. 60 Zeilen langen Code und tatsächlich füllte sich eine Variable mit dem gewünschten Wert.
Jetzt stell ich mir natürlich die Frage, ist das bei B&R tatsächlich so umständlich? Das kann doch eigentlich gar nicht sein. Mit so was will doch kein Mensch arbeiten. Mach ich was falsch? (Ich geh davon aus) Was sagen die B&R Nutzer dazu?

Grüße Oliver

WinCC Flex Datentyp STRING auf Panel projektieren

$
0
0
Hallo,

ich stoße zum erstenmal auf den Datentyp STRING. Dieser wird von einem PC auf meine SPS gesendet und wird auch in der VAR angezeigt. Wie kann ich nun dieses Wort im Panel projektieren? Nehme ich einfach ein Anzeigefenster und gebe die Variable in WinCC flex ein und das war es?
Kann mir da jemand einen Tip geben?
Ich würde es ja gerne schonmeinmal testen, habe aber keine PC zu Hause zum testen.

TIA CASE Sprungliste auch in FUB-Baustein möglich

$
0
0
Nabend zusammen,

gibt es eine Möglichkeit in einem Baustein mit Quellsprache FUB eine Schrittkette mit CASE aufzubauen ?

z.B.
Netzwerk 0: FUB/ AWL-Code
Netzwerk 1: CASE Sprungliste
Netzwerk 2: 1. Case Label
Netzwerk 3: 2. Case Label
...
END_CASE:
Netzwerk 20: FUB/ AWL-Code

Was ist eure Grundeinstellung für Bausteine FUB,KOP,AWL,SCL? Branche Maschinenbau...Automobilindustrie

Gruß Softi

Erste Version FAQ zum Thema Skalierung

$
0
0
Hallo, hier ist, leider mit einiger Verzögerung, eine erste Version meiner FAQ zum Thema Skalierung. Schaut mal, soweit Ihr Zeit findet, drüber und lasst Eurer Kritik dann freien Lauf. Da man leider "nur" fünf Anhänge pro Beitrag anhängen darf habe ich nur die komplexesten Formeln als Screenshot aus Word angehängt und die anderen (hoffentlich erfolgreich) versucht so darzustellen.

Einführung
Bei verschiedenen SPS-Projekten ist es erforderlich Werte eines Bereichs in einen anderen umzurechnen, also zu skalieren. Der Grund hierfür kann sein, dass eine analoge Eingangskarte den digitalisierte Wert nicht selber in die physikalische Größe wieder umrechnet, oder eine dezentrale Peripherie (z.B. FU, Heizregler, usw.) liefert verschiedene Größen (z.B. Strom, Spannung, Leistung, usw.) lediglich als digitalisierten Wert, in solchen Fällen muss der Eingangswert skaliert werden um einen Wert wieder in die physikalische Größe umzurechnen. Dieser FAQ Beitrag soll möglichst umfangreich aufzeigen, wie dies geht und was alles dabei zu beachten ist. Dieser Beitrag ist so weit wie möglich Steuerungsunabhängig, sollte es jedoch Besonderheiten bei bestimmten Steuerungen geben wird dies entsprechend erwähnt. Alle hier aufgeführten Beispiele setzen voraus, dass die entsprechend genutzte Steuerung Fließkommazahlen verarbeiten kann. Einige sogenannte Kompaktsteuerungen können jedoch keine Fließkommazahlen verarbeiten, aus diesem Grunde gibt es am Ende dieser FAQ einen Abschnitt der sich mit dieser Problematik auseinandersetzt und es werden dort Tipps gegeben, wie man trotz dieses Mankos Skalierungen mit einer gewissen Genauigkeit realisieren kann.

Begriffsdefinition
Bevor es ans Eingemachte geht, hier zunächst eine kurze Erklärung der in dieser FAQ verwendeten Begriffe. Der zu messende Wert (z.B. Temperatur, Position, usw.) wird in dieser FAQ als physikalische Größe bezeichnet, falls neben der analogen Eingangskarte auch ein Messwandler verwendet wird, wird dessen Ausgangssignal als Einheitssignal bezeichnet und der digitalisierte Wert den die analoge Eingangskarte oder die dezentrale Peripherie an die SPS übermittelt heißt in der FAQ Digits.

Genauere Erläuterung anhand von Beispielen
Das Grundprinzip einer Skalierung ist ein Dreisatz, wobei auf der einen Seite des Gleichheitszeichen die Digits stehen und auf der anderen die Werte in der physikalischen Größe. Soweit die Bereiche (Minimaler physikalischer Wert - maximaler physikalischer Wert, Minimaler Wert der Digits - maximaler Wert der Digits) auf beiden Seiten jeweils ein bei 0 beginnender oder ein um den Nullpunkt symmetrisch verlaufender Bereich ist, gestaltet sich der Dreisatz relativ einfach, da nicht wirklich viel beachtet werden muss. Letzten Endes wird über diesen Dreisatz ausgerechnet, was für einen Sprung der physikalischen Größe eine Änderung bei den Digits um ein Bit zur Folge hat. Das Ergebnis wird dann mit dem Messwert multipliziert. Folgende Zahlenwerte benötigt man für eine gültige Gleichung:

- Digits des analogen Eingangs
- Bereich der Digits des analogen Eingangs (Bei Bereichen die bei 0 beginnen oder sich symmetrisch um 0 bewegen ist dies die größte darstellbare Zahl)
- Bereich der physikalischen Größe (z.B. bei 0-100% = 100)
- Istwert der physikalischen Größe

Hier mal ein Beispiel einer Formel (1000 = Digits analoger Eingang, 10000 = Bereich Digits, 10 = Istwert physikalische Größe, 100 = Bereich der physikalischen Größe):
1000 10

=
10000 100
Da der Istwert der physikalischen Größe ja nicht bekannt ist wird stattdessen eine Variable (x) eingesetzt.

Hier nun ein erstes einfaches Beispiel. Zunächst eine kurze Beschreibung des Beispiels. Ein FU liefert an eine analoge Eingangsklemme eine Spannung von 0-10V, die der Drehzahl eines Motors von 0 - 1000 U/Min entspricht. Die Eingangskarte löst das Analogsignal mit 15 Bit (ohne Vorzeichen) auf. Bezüglich der Auflösung und der Art der Darstellung der analogen Messwerte gibt es verschiedene Varianten auf die ich später noch genauer eingehen werde. Der gemessene Wert lautet 16383Dez. Zunächst müssen wir die beiden Maximalwerte ermitteln. Die Eingangskarte hat ja, wie erwähnt, eine Auflösung von 15Bit, es gibt demnach 215 = 32768 mögliche Bitkombinationen die höchstwertige und somit der Maximalwert der Digits ist 32767Dez, da 0Dez ja auch aus einer Bitkombination ergibt und somit mitzählt. Die Formel sehe also wie folgt aus:
16383 x

=
32767 1000U/Min

Da wir ja x als Ergebnis haben wollen muss die Formel noch umgestellt werden und sieht danach so aus:
16383 * 1000U/Min
x =
32767

Das Ergebnis ist rund 500U/Min.

Soweit sich beide Bereiche, sowohl der Bereich der physikalischen Größe als auch der Bereich der Digits symmetrisch um 0 bewegt funktioniert die Formel auch mit negativen Digits, dann würde die Größe des Bereichs der physikalischen Größe nämlich nur von 0 aus in positive Richtung angegeben werden. Der Bereich der physikalischen Größe beginnt bei diesem Beispiel bei -1000 U/Min und endet bei 1000 U/Min, hätte also eigentlich eine Größe von 2000 U/Min, es muss aber in diesem Fall nur 1000 U/Min angegeben werden. Hier mal die gleiche Formel mit einem negativen Messwert:
-16383 * 1000U/Min
x =
32767

Hier ist dann das Ergebnis rund -500U/Min.

Würden sich die beiden Bereiche immer nur von 0 in eine Richtung bewegen, also nur in die positive oder negative Richtung oder sich symmetrisch um 0 (z.B. -100°C - 100°C und -32767 - 32767) bewegen wäre dieser FAQ-Beitrag, was die genauere Erklärung angeht, schon zu Ende, da dem jedoch nicht so ist geht es hier erst richtig los.
Beim nächsten Beispiel soll eine Temperatur mit einem PT100-Fühler gemessen werden. Dieser Messfühler ist an einen Messwandler angeschlossen, der Temperaturen von -20°C - 50°C in eine Spannung von 0-10V wandelt. Diese Spannung wird an einen Analogeingang gegeben, der die Spannung diesmal mit 12Bit auflöst. Bei diesem Beispiel ist jetzt die Besonderheit, dass sich der Bereich der physikalischen Größe (-20°C - 50°C) nicht mehr symmetrisch um 0 bewegt und die Werte der Digits nur positiv sind, so dass die Formel modifiziert werden muss. Zur Demonstration was passiert, wenn die Formel nicht modifiziert wird, erfolgt hier zunächst eine Berechnung mit der nicht modifizierten Formel. Die Werte der Digits gehen von 0 bis 4095, der Bereich der physikalischen Größe beginnt, wie erwähnt, bei -20°C und geht bis 50°C, hat also eine Größe von 50°C - (-20°C) = 70°C und der digitalisierte Wert der Analogkarte beträgt 2340Dez. Nachdem die Werte in die Formel eingetragen wurden sähe diese so aus:
2340 * 70°C
x =
4095

Als Ergebnis käme 40°C heraus, was jedoch falsch ist, was lief hier verkehrt? Der Bereich der physikalischen Größe ist zwar tatsächlich 70°C, nur beginnt der Messbereich nicht mehr bei 0°C, sondern es gibt einen Offset gegenüber dem Nullpunkt von -20°C. Da der Bereich der physikalischen Größe nicht symmetrisch ist, muss der Offset berücksichtigt und zum Ergebnis der Rechnung dazu addiert werden. Bezogen auf dieses Beispiel sehe die Formel nun so aus:
2340 * 70°C
x =
+(-20°C)
4095

Das (nun richtige) Ergebnis ist 20°C.

Ein weiterer Stolperstein lauert, wenn der Wert der Digits nicht bei 0 beginnt, dies kann z.B. der Fall sein, wenn man einen Sensor oder Messwandler der 4-20mA liefert an einen analogen Eingang anschließt der von 0-20mA misst. In diesem Fall würde mindestens immer ein Strom von 4mA fließen den man an entsprechender Stelle rausrechnen muss. Um das folgende Beispiel nicht unnötig kompliziert zu machen beginnt der Bereich der physikalischen Größe bei 0°C und verläuft in positive Richtung und auch der Bereich der Digits beginnt bei 0 und verläuft in positive Richtung. Bei diesem Beispiel wird ein PT100 an einen Messwandler angeschlossen der Temperaturen von 0° - 100° misst und einen Strom von 4-20mA ausgibt, der analoge Eingang hat wieder eine Auflösung von 12 Bit und der aktuelle Messwert beträgt 2457Dez. Zunächst wird errechnet, welchem Digitswert der Einheitswert 4mA entspricht, dafür teilt man 4mA durch 20mA und multipliziert dies mit dem maximalen Wert der Digits. Hier die dazugehörige Formel:
4mA
x =
* 4095
20mA

Als Ergebnis erhält man 819. Nun errechnet man die gemessene Temperatur, wobei man in der Formel vom Messwert der analogen Eingangskarte als auch vom Maximalwert der Digits die 819 abziehen muss. Dieser Umstand soll hier noch kurz erklärt werden. Wie schon erwähnt kann der analoge Eingang Ströme von 0-20mA messen, der Messwandler gibt für seinen Messbereich jedoch 4-20mA aus. Das hat zur Folge, dass selbst bei einem Messwert von 0°C ein Strom von 4mA fließt. Würde man diesen Umstand in der Formel nicht berücksichtigen würde statt 0°C eine Temperatur von 20°C errechnet werden. Gleichzeitig beträgt der Messbereich des Stroms nicht 20mA (20mA - 0mA), sondern lediglich 16mA (20mA - 4mA), was bedeutet, dass eine größere Stromdifferenz vorliegen muss, damit sich der Eingangswert um ein Bit erhöht. Die Formel für dieses Beispiel sieht wie folgt aus:
(2457 - 819) * 100°C
x =
4095 - 819

Und das Ergebnis ist 50°C.

Hier kommt nun ein etwas komplizierteres Beispiel. Ein Servo (Modellbau-Servo) hat zwei (einstellbare) Endlagen, diese Endlagen liegen symmetrisch um 0° (z.B. bei +/-45°). Der Servo gibt seine aktuelle Position als Spannungssignal aus, dessen Verlauf zwar linear ist, die Endwerte jedoch nicht genau feststehen. Die Spannung wird mit einer analogen Eingangskarte gemessen die Spannungen von 0-10V mit 12Bit auflöst. Der Servo wurde nun auf einen Verfahrweg von 108° (+/-54°) eingestellt. Da bei diesem Beispiel die Bereiche sowohl der physikalischen Größe (Servoposition in °) als auch der der Digits veränderlich sind und sich auch nicht mehr symmetrisch um 0 bewegen, bzw. dort beginnen, muss die Formel an mehreren Stellen erweitert werden. Soweit die Spannung nicht weiterverwendet wird reicht es hier mit dem Eingangswert der analogen Karte zu rechnen, was bei diesem Beispiel der Fall sein soll. Bei einer Kalibrierung wurde bei der minimalen Endlage (-54°) ein Wert von 82Dez gemessen, bei der maximalen Endlage ein Wert von 4014Dez, der aktuelle Messwert der Analogkarte beträgt 2048Dez. Füllt man die Formel jetzt mit den ermittelten Werten sieht das Ganze so aus:
Formel_Servo_Digits.png
Da es hier doch etwas komplizierter wird, möchte ich die Formel im Einzelnen kurz erläutern. Der Bereich der Digits bewegt sich in diesem Beispiel zwar vollständig im positiven Bereich (82 - 4014), fängt jedoch nicht bei 0 an, deswegen muss hier ein Offset berücksichtigt werden. Der Offset bei den Digits muss sowohl bei der Ermittlung der Bereichsgröße als auch bei der "Korrektur" des aktuellen Messwertes berücksichtigt werden. Die Berücksichtigung bei der Ermittlung der Bereichsgröße der Digits erfolgt in der abgebildeten Formel im Nenner des Bruches, hier wird der Offset von 82Dez vom maximal möglichem Wert der Digits abgezogen. Die "Korrektur" des aktuellen Messwertes erfolgt im Zähler des Bruches, auch hier wird der Offset von 82Dez abgezogen (2048Dez - 82Dez). Der "korrigierte" Messwert der analogen Eingangskarte wird mit der Größe des Bereichs der zu messenden physikalischen Größe (Position in °) multipliziert, dieser Bereich wird in der zweiten Klammer im Zähler des Bruches ermittelt. Nachdem der Bruch ausgerechnet wurde muss noch der Offset der physikalischen Größe (-54°) zum errechneten Wert des Bruchs addiert werden und man hat das Ergebnis. Die aktuelle Position des Servos beträgt 0°. Die Position des Servos wurde ja durch einen internen Messwandler als Spannung ausgeben, wobei es uns bei diesem Beispiel ausreichte lediglich den digitalisierten Wert zu kennen und nicht die tatsächliche Spannung. Beim nächsten Beispiel soll jetzt jedoch mit der Spannung gearbeitet werden, ansonsten ist es jedoch gleich. Dafür muss die Formel an zwei Stellen erweitert, bzw. verändert werden. Im Nenner des Bruchs müssen die Werte in Digits gegen welche in Volt ausgetauscht werden. Bei einem Messbereich von 0-10V bei einer Auflösung von 12Bit entspricht der Wert von 4014Dez einer Spannung von ca. 9,802V und 82Dez einer Spannung von ca. 0,200V. Im Zähler muss der aktuelle Messwert von Digits in eine Spannung umgerechnet werden und davon dann die Spannung der negativen Endlage abgezogen werden. Die so erweiterte/geänderte Formel sieht so aus:
Formel_Servo_Volt.png
Als Ergebnis kommt hier rund 0° raus.
Ich denke das diese Beispiele ausreichen, um die Vorgehensweise bei der Skalierung von Messwerten ausführlich zu erläutern.

Erläuterung der verschiedenen Auflösungen und Darstellungsformen analoger Eingangswerte
Der nächste Teil dieser FAQ beschäftigt sich mit den digitalisierten Analogwerten, den Digits. Neben verschiedenen Auflösungen (z.B. 12Bit oder 15Bit) gibt es auch verschiedene Darstellungsformen und weitere Besonderheiten die hier erläutert werden sollen. Zunächst ein paar Worte zur Auflösung der digitalisierten Analogwerte. Die für die jeweiligen Karten angegebene Bitzahl bezieht sich lediglich auf die Auflösung und beinhaltet noch nicht das für ein Vorzeichen benötigte Bit. Soweit die Karte lediglich positive Werte ausgibt kann der maximale Wert der Digits ganz einfach durch die Formel 2^Bitzahl - 1 errechnet werden. Hier mal ein paar Beispiele für verschiedene Bitauflösungen und dem dazugehörigen Maximalwert der Digits. Bei einer Auflösung von 10 Bits wäre der maximale Wert 1023, bei 12 Bit 4095 und bei 15 Bits ist es 32767. Kann die Karte auch negative Werte messen ist der Bereich in negative Richtung entweder gleich groß (Bei 12 Bit z.B. -4095) kann aber prinzipbedingt auch um 1 größer (Bei 12 Bit -4096) sein, was an der Art liegt wie negative Zahlen im Speicher dargestellt werden (Stichwort: Zweierkompliment). Genaueres erfährt man in dem Fall im Handbuch zu der jeweiligen Karte. Je nach Hersteller kann es sein, dass die Messwerte unabhängig von der Auflösung des A/D-Wandlers auf 16 Bit (inkl. Vorzeichen) hochskaliert werden. Diese auf den ersten Blick seltsam anmutende Vorgehensweise hat den Vorteil, dass man die analoge Eingangskarte beliebig gegen eine mit einer anderen Auflösung tauschen kann ohne eine Änderung an seinem Programm vornehmen zu müssen. Eine weitere mögliche Besonderheit bezüglich des Digit-Bereichs ist, dass einige Hersteller nicht den gesamten möglichen Bereich nutzen, sondern nur einen Teil davon. Auch hier wird sich manch einer Fragen, warum dies gemacht wird, bedeutet dies doch auf den ersten Blick eine Verringerung der Auflösung des analogen Eingangssignals. Dies ist theoretisch zwar auch richtig, ein mit 15 Bit aufgelöstes Analogsignal ist feiner abgestuft als ein mit nur 12 Bit aufgelöstes, jedoch ist die Anzahl der Bits nicht das Einzige was die mögliche Genauigkeit begrenzt. In der Doku der Karten wird auch ein Messfehler ausgewiesen, der sich meist auf den Messbereichsendwert bezieht. Dieser Messfehler ist eigentlich immer größer als der Wert physikalische Größe/Bit. Als Beispiel sei hier einmal die analoge Eingangskarte EL3061 von Beckhoff angeführt. Diese Karte kann Spannungen von 0-10V mit einer Auflösung von 12 Bit digitalisieren, was bei einer Änderung um ein Bit einer Spannungsdifferenz von ca. 2,44mV entspricht. Im Gegensatz dazu hat die Karte EL3161 von Beckhoff eine Auflösung von 15 Bit was einer Spannungsdifferenz ca. 0,305mV pro Bit entspricht und deutlich feiner aufgelöst wäre. Allerdings bringt einem diese höhere Auflösung ohne besondere Maßnahmen nichts, da beide Karten einen Messfehler bezogen auf den Messbereichsendwert (Jeweils 10V) von 0,30% haben, was einer möglichen Abweichung von bis zu 30mV unabhängig vom aktuellen Messwert entspricht und es somit egal wäre, welche von beiden Karten man verwenden würde. Einen Gewinn würde die höher auflösende Karte einem nur bringen, wenn man Kalibrierungswerte in der Karte ablegen könnte. Doch zurück zu der Tatsache, dass einige Hersteller nicht den gesamten möglichen Bereich für die Darstellung des Nennbereiches nutzen. Soweit dieser Bereich nicht zu sehr eingeschränkt wird hat dies, wie eben demonstriert, keine spürbare Auswirkung auf die Genauigkeit der Messung. Um zu verstehen, warum die Hersteller dies machen muss man zunächst die Variante betrachten bei der der gesamte Bereich der Digits (z.B. bei 12 Bit Auflösung) für die Darstellung des Nennbereiches (z.B. 0-10V) verwendet wird. Bei einer Auflösung von 12 Bit würde bei 10,0V der Eingangswert des digitalisierten Analogsignals 4095Dez betragen. Doch was würde passieren, wenn nun stattdessen 10,1V oder gar 10,5V anliegen würden? Die einfache Antwort hierauf lautet, nichts, der Eingangswert beträgt weiterhin 4095Dez. Eventuell meldet die Karte über ein Statusbit noch, dass eine Messbereichsüberschreitung vorliegt, aber genaueres kann man nicht mehr erfahren. Begrenzt der Hersteller jedoch den Bereich der für die Darstellung des Nennbereiches zur Verfügung steht kann neben der Info, dass der Messbereich überschritten wurde im gewissen Rahmen auch trotz Überschreitung des Nennbereiches noch die Höhe der anliegenden physikalischen Größe ermittelt werden, wobei die Karte die angegebene Genauigkeit nur über Ihren Nennbereich erreicht es sich also eher um einen Schätzwert handelt. Eine Karte die diese Funktionalität bietet ist zum Beispiel die EL3161 von Beckhoff, bei Beckhoff wird diese Funktionalität "Extended range" genannt. Die EL3161 hat einen Nennbereich von 0-10V und bietet eine echte (Werte werden nicht hochskaliert) Auflösung von 15 Bit. Soweit die "Extended Range" Funktionalität aktiviert ist, hat diese Karte neben dem Nennbereich noch einen zweiten, die sogenannte "Overrange Area". Beide Bereiche zusammen bilden einen von Beckhoff "Technical Range" genannten Bereich, der den Nennbereich um ca. 7% überschreitet. Bei 15 Bit wäre der Maximalwert der Digits für den Messbereichsendwert (hier 10V) eigentlich 7FFFHex (32767Dez), bei aktivierter "Extended Range" Funktionalität geht dieser jedoch "nur" bis zu dem Wert 7736Hex (30517Dez), der Bereich von 7737Hex (30518Dez) bis 7FFFHex (32767Dez) ist dann das "Overrange Area". Liegt die Eingangsspannung bei kleiner gleich -0,1V gibt die Karte einen sogenannten Range error aus. Bei Karten die auch negative Werte messen können gibt es diese Funktionalität natürlich auch in negative Richtung. Bei Siemens gibt es z.B. bei den Karten für die S7-1500er Reihe insgesamt fünf Bereiche wobei diese Bereiche immer aktiv sind, egal ob der Messbereich lediglich in positive Richtung verläuft (z.B. 0-20mA) oder sowohl in positive und negative Richtung (z.B. +/-10V) verläuft. Neben dem schon öfters erwähnten Nennbereich (0-20mA, -10-10V, usw.) gibt es in positive Richtung den Übersteuerungsbereich und in negative Richtung den Untersteuerungsbereich und an deren jeweiligen Ende noch den Über-, bzw. Unterlauf. Bei einem Nennbereich von 0-20mA geht der Nennbereich von 0Dez bis 27648Dez (0-20mA) und der Übersteuerungsbereich geht von 27648Dez bis 32511Dez (Bis 23,52mA). Der Wert des Überlaufs beträgt 32767Dez und wird bei Strömen über 23,52mA gemeldet. Der Untersteuerungsbereich geht von -1Dez bis -4864Dez (Bis -3,52mA) und der Unterlauf hat den Wert von -32768 bei Strömen unter -3,52mA.
Neben dem Messwert stellen die analogen Eingangskarten auch Statusbits/-werte zur Verfügung, dabei gibt es verschiedene Möglichkeiten wo diese bereitgestellt werden. Die einfachste Art dabei ist, wenn der Hersteller dafür eigene Objekte verwendet, Es gibt aber auch Hersteller, die die Statusinformationen mit in den Messwert verpacken. Dies funktioniert dann, wenn die Auflösung des Messbereichs kleiner ist als der Speicherbereich in dem er abgelegt wird. Wenn zum Beispiel der Messbereich mit 12 Bit aufgelöst wird und der Bereich in der Karte für den Messwert (Ohne Vorzeichen) 15 Bit groß ist, würden noch 3 Bits für Statusinformationen zur Verfügung stehen. Hier würde der Messwert dann um drei Bits nach links geschoben und die dadurch freiwerdenden drei niederwertigen Bits stehen dann für die Statusinformationen zur Verfügung. Jetzt stellt sich allerdings die Frage, was man anstellen muss um die Statusbit wieder zu entfernen und so nur noch den Messwert zu haben? Im einfachsten Fall lautet die Antwort nichts, man lässt die Statusbits einfach drin und lebt mit der dadurch auftretenden Ungenauigkeit, die soweit der sonstige Messfehler der Karte nicht extrem niedrig ist kaum ins Gewicht fällt. Die in diesem Fall zu verwendende Formel ist dieselbe, wie für Berechnungen mit einer Analogkarte die dieselbe Auflösung hat wie der Messwert dieser Karte plus die Statusbits. Wenn der Messwert der Karte, wie oben angenommen, mit 12 Bit aufgelöst wird und es zusätzlich 3 Statusbits gäbe, würde die Formel genommen werden, die sonst für eine Karte mit 15 Bit Auflösung verwendet wird. Bei einem Messbereich von 0-10V sähe dann die Formel so aus:
Messwert * 10V
x =
32767

Wenn man die Statusbits gerne entfernt haben möchte, geht dies relativ einfach indem man sie ausmaskiert. Dies funktioniert, indem man eine UND-Verknüpfung mit dem Messwert und FFF8Hex durchführt. In binärer Schreibweise wird der Wert FFF8Hex als 1111 1111 1111 1000 dargestellt. Man kann erkennen, dass die unteren drei Bits nicht gesetzt sind und dadurch diese durch die UND-Verknüpfung im Ergebnis auf 0 gesetzt werden. Nun kann man den so erhaltenen Wert wieder in der Formel verwenden. Auch bei dieser Formel gehe ich wieder von einem Messbereich von 0-10V aus, diese sieht wie folgt aus:
Messwert * 10V
x =
32760

Der Eine oder Andere wird sich jetzt vielleicht wundern, warum ich in der Formel im Nenner die Zahl 32760 als Maximum für die Digits eingesetzt habe und nicht 4095, obwohl die Auflösung des Messwertes ja 12 Bit beträgt. Dies begründet sich durch den Umstand, dass der Messwert um drei Bits nach links verschoben ist, um Platz für die Statusbits zu schaffen. Jedes bitweise Verschieben eines Wertes nach links entspricht einer Multiplikation mit 2, bei einer Verschiebung nach links um drei Bits ergibt dies also Messwert * 2 * 2 * 2 und das Selbe gilt dann natürlich auch für den Maximalwert der Digits, also 4095 * 2 * 2 * 2 = 32760. Die Vorgehensweise mit dem Ausmaskieren funktioniert sowohl bei positiven als auch bei negativen Digits. Die Werte ohne ausmaskierte Statusbits entsprechen dann denen mit ausmaskierten Statusbits, wenn alle Statusbits gesetzt wären, von geringen Rundungsdifferenzen einmal abgesehen. Sind nicht alle Statusbits gesetzt ist der errechnete Wert kleiner als der tatsächliche. Bei einem Messbereich von 0-10V oder (-10V)-10V beträgt der maximale Messfehler, wenn kein Statusbit gesetzt wäre, bei einer Messwertauflösung von 12 Bit und drei Statusbits gegenüber der Methode mit ausgefilterten Statusbits ca. 2,14mV was man in den meisten Fällen vernachlässigen kann. Bei einem Messbereich von 0-20mA beträgt der maximale Messfehler ca. 4,27µA.

Umsetzung von Skalierungen in SPS-Programme
Der nächste Abschnitt beschäftigt sich damit, wie die gewonnenen Erkenntnisse in Programme umgesetzt werden können. Wobei hier lediglich mit Strukturierten Text (Wird im Folgenden mit ST abgekürzt) gearbeitet wird.
Auf den ersten Blick scheint die Sache ganz einfach zu sein, man muss lediglich die Formeln umsetzen. Die folgende Formel
Messwert * 10V
x =
32767

könnte man in ST z.B. so umsetzen.

r32_Spannung = i16_Messwert * 10 / 32767;

Allerdings ist es nicht so einfach, denn es gibt hierbei einen erheblichen Stolperstein, nämlich das die Steuerung unter bestimmten Umständen nicht mit Fließkommazahlen, sondern mit Ganzzahlen rechnet. Bei einer mit Rechnung rein mit Ganzzahlen ist das Ergebnis auch bei einer Division immer eine Ganzzahl, auch wenn das Ergebnis, wie in obigem Beispiel, am Ende in einer Fließkommavariable (Stichwort: implizite Typkonvertierung) gespeichert wird. Durch die Deklaration einer Variable weiß die SPS im wahrsten Sinn des Wortes womit sie rechnen muss, bei direkt im Code angegebenen Werten ist dies jedoch nicht so und die SPS oder genauer die Entwicklungsumgebung muss da sozusagen raten. Sowohl beim TIA-Portal von Siemens, als auch bei Entwicklungsumgebungen die auf Codesys basieren betrachtet die Entwicklungsumgebung Zahlen ohne Nachkommastellen als Ganzzahl und welche mit als Fließkommazahlen. Möchte man also, dass die Entwicklungsumgebung eine glatte Zahl als Fließkommazahl betrachtet muss man diese mit mindestens einer Nachkommastelle angeben. Möchte man z.B. die Zahl 40 im Code angeben und soll diese als Fließkommazahl interpretiert werden, muss man stattdessen 40.0 eingeben. Variablen können automatisch über die explizite Typkonvertierung in andere Typen gewandelt werden, da es hier auch zu Problemen kommen kann wäre es allerdings besser dafür, soweit vorhanden, spezielle Funktionen zu nutzen. Sowohl bei Siemens als auch bei Codesys basierten Steuerungen haben diese Funktionen die Namenskonvention QUELLTYP_TO_ZIELTYP. Die Funktion um einen Integerwert in ein Real zu wandeln würde also INT_TO_REAL heißen. Werden diese Hinweise nicht beachtet, kann es zu erheblichen Rechenfehlern kommen, wie ich noch demonstrieren werde. Sowohl die Entwicklungsumgebung von Siemens als auch die der Codesys Derivate unterscheiden nicht nur zwischen Fließkomma- und Ganzzahlen aufgrund des Aufbaus der Zahl im Code, sondern stellen beim Übersetzen des Programms auch die Größe der jeweiligen Zahl fest und wählen für diese dann den passenden Typ. Steht im Code z.B. die Zahl 1000 wird hierfür UINT als Typ genutzt, bei -1000 entsprechend INT, bei einer 100000 würde als Typ UDINT genutzt werden. Lediglich bei der Wahl des Typs zur Ablage des Ergebnisses unterscheiden sich die beiden Systeme. Als Typ für das Ergebnis einer Rechnung wird bei Siemens dabei der Typ der Variable genommen die an dem jeweiligen Teil der Rechnung beteiligt ist, ist diese vom Typ INT ist das Ergebnis auch vom Typ INT. Bei Codesys basierten Entwicklungsumgebungen wird für das Ergebnis immer die größte Variante des jeweiligen Typs gewählt, bei Integer-Werten wäre das LINT. An einem Beispiel das auf obiger Formel basiert soll hier aufgezeigt werden was für ein Ergebnis beim jeweiligen System herauskommt. Der Wert der Variable i16_Messwert beträgt in diesem Beispiel 9000. Als Ergebnis würde man einen Wert von rund 2,75 mit einem Taschenrechner erhalten. Die Siemens CPU ermittelt jedoch ein Ergebnis von 0 und bei der Beckhoff CPU kommt ein Wert von 2,0 raus. Was lief hier jetzt schief? Betrachten wir zunächst die Siemens-Seite. Als erstes wird der Messwert mit 10 multipliziert, wie erwähnt nimmt Siemens für die Speicherung des Ergebnisses den Typ der bei der Berechnung beteiligten Variable, in diesem Falle also INT. Hier kommt es nun schon zum ersten Fehler, 9000 * 10 würde als Ergebnis 90000 ergeben, was den Bereich eines INTs (32767) überschreitet, dadurch kommt es zum Überlauf und das errechnete Ergebnis beträgt stattdessen 24464. Dieses (falsche) Ergebnis wird nun durch 32767 geteilt, was ein Ergebnis eigentlich von <1 zur Folge hätte, da das Ergebnis aber wieder eine Ganzzahl ist gehen die Nachkommastellen sozusagen verloren und das Ergebnis ist 0. Anschließend wird das Ergebnis aufgrund der oben erwähnten impliziten Typkonvertierung zwar in eine Fließkommazahl gewandelt, aber auch dadurch kann nichts anderes als 0 herauskommen. Da bei Beckhoff für das Zwischenergebnis immer die Variante mit dem größten Bereich eines Typs genommen wird kommt es bei der ersten Rechnung nicht zu einem Überlauf und zumindest das Zwischenergebnis (90000) stimmt hier noch, bei der anschließenden Division kommt es allerdings zum selben Problem wie bei Siemens. Die Rechnung 90000 / 32767 müsste ja eigentlich, wie oben erwähnt, ein Ergebnis von rund 2,75 ergeben, dadurch das das Ergebnis auch eine Ganzzahl ist, gehen auch hier die Nachkommastellen verloren und es bleibt 2 über, die dann durch die implizite Typkonvertierung in einer Fließkommavariable gespeichert wird.

Tipps für Steuerungen ohne Fließkomma Unterstützung
Als letztes kommen nun ein paar Tipps wie man bei Steuerungen vorgehen kann, die keine Fließkommazahlen verarbeiten können. Auch mit diesen Steuerungen kann man Skalierungen durchführen, muss mit Tricks jedoch dafür sorgen, dass alles vor dem Komma stattfindet. Bei den folgenden Tipps nehme ich eine Steuerung an, die maximal ein UINT verarbeiten kann und Analogwerte mit 10 Bit auflöst, gemessen werden soll ein Wert von 0-10V.
Im ersten Beispiel soll einfach die aktuell anliegende Spannung ermittelt werden. Normalerweise würde die Formel hierfür wie folgt aussehen:
Messwert * 10V
x =
1023

Nur wird es bei Verwendung dieser Formel bei einer Steuerung ohne Fließkommazahlen in gewissen Situationen zu ziemlichen Ungenauigkeiten kommen. Angenommen es würde ein Wert von 256Dez vom analogen Eingang gemessen werden. Eine Steuerung die Fließkommazahlen verarbeiten kann würde mit obiger Formel eine Spannung von ca. 2,50V errechnen, ohne diese Fähigkeit käme jedoch eine Spannung von 2V heraus. Um hier eine gewisse Genauigkeit zu erhalten kann man folgenden Trick anwenden. Die Steuerung kann ja ein UINT verarbeiten, das einen maximalen Wert von 65535 haben kann. Diesen Umstand kann man nutzen um den Wert von 10(V) soweit zu vergrößern, dass der mögliche Bereich der Variable so weit wie möglich ausgenutzt wird. Hierbei muss jedoch beachtet werden, dass bei den folgenden Berechnungen immer nur Ganzzahlen verwendet werden dürfen. Aus diesem Grund wäre, wie später noch klar wird, eine Multiplikation der 10(V) mit 6500 nicht sinnvoll. Im Gegensatz zur obigen Formel darf man allerdings als nächstes diesen Wert nicht mit dem gemessenen Wert (256) multiplizieren, denn dann käme es zu einem Überlauf, sondern muss diesen erst durch 1023 teilen. Anschließend kann man dieses Ergebnis dann mit dem Messwert multiplizieren. Bei diesem Beispiel käme als Ergebnis 14848 heraus. Zu Beginn dieses Beispiels wurden die 10(V) ja mit 6000 multipliziert, würde man jetzt das Ergebnis einfach durch 6000 teilen hätte man nichts gewonnen, denn man würde wieder 2V herausbekommen. Stattdessen errechnet man nun die Eingangsspannung nicht in Volt, sondern in mV, dies wird durch eine Division durch 6 erreicht. Das Ergebnis ist dann 2474, was den tatsächlich anliegenden 2500mV schon deutlich näherkommt. Hier sollte jetzt auch klargeworden sein, warum eine Multiplikation der 10(V) mit 6.500 nicht sinnvoll wäre, denn dann hätte man das Ergebnis durch 6,5 teilen müssen, was ja mangels Fließkommafunktionalität nicht möglich ist. Hier noch die entsprechende Formel:
10V * 6000
x =
* Messwert / 6
1023

Beim nächsten Beispiel entsprechen die 0-10V einer Zeit von 1-120 Sekunden. Auch hier wird der Bereich der physikalischen Größe (120s - 1s = 119s) zunächst multipliziert, in diesem Fall mit 500 und anschließend auch durch 1023 dividiert. Das Ergebnis wird dann mit dem Messwert multipliziert, durch 5 dividiert und anschließend noch 100 als Offset addiert, dadurch erhält man ein Ergebnis in 1/100s. Hier die passende Formel dazu:
119s * 500
x =
* Messwert / 5 + 100
1023
Angehängte Grafiken

Steuerung Dachrinnenheizung

$
0
0
Liebe Forumsgemeinde,

da mir letztes Jahr (Winter 2016/2017) eines der beiden Fallrohre von meinem Flachdach zugefroren ist, habe ich inzwischen in beiden Fallrohren ein selbstregulierendes Heizband (für 230V mit 20 W/m bei 10°C Lufttemperatur und 36 W/m bei 0°C im Eiswasser) installiert.

Das Band ist zwar selbstregulierend und braucht bei höheren Temperaturen auch weniger Strom (sehr schön am installierten Wechselstromzähler zu erkennen), trotzdem möchte ich das ganze aber gerne über meine WAGO 750 SPS gerne nur "bei Bedarf" einschalten.

Glücklicherweise habe ich auf der Nordseite, wo sich auch die beiden Fallrohre befinden noch einen übrigen Temperaturfühler (welcher auch an der SPS hängt), welchen ich nutzen kann.

Nur habe ich jetzt ein wenig das Problem bei welchen Temperaturen ich das ganze ein- bzw. aussachalten soll ...

Vielleicht jemand von euch damit schon etwas Erfahrung?

Anmerkung: Das Problem letztes Jahr mit dem vereisten Fallrohr war vermutlich, dass die Sonne noch etwas auf eine Ecke des Flachdachs schien und das abschmelzende Tauwasser im Fallrohr auf der Nordseite (im Schatten) wieder zu frieren begann.

LG und Danke,
Daniel.

Step 7 Simulator für Step 7

$
0
0
Hallo liebe SPS-Gemeinde,

ich bin auf der Suche nach einer vernünftigen und guten Software, die verschiedene Anlagen simulieren kann, zu der ein SPS-Programm geschrieben werden kann (Förderband, Mischbehälter, Torsteuerung, etc).

Sinn der Sache ist, dass ich Paar Programme die ich programmiert habe, testen möchte.

Deshalb wäre es schön, wenn ich am Bildschirm sehen kann, dass sich etwas bewegt, wenn ich einen Taster betätige.

Simatic S7 ist vorhanden.

Hat jemand von euch Erfahrungen damit und kann mir ein Programm dafür empfehlen?

Vielen Dank

Gesendet von meinem SM-G950F mit Tapatalk

TIA kompletten Baustein kopieren/convertiere?

$
0
0
Hallo Zusammen!

TIA Portal V13 SP2,

Ich habe einen FC-Baustein programmiert und muss nun auf Grund einer Änderung meinen FC in einen FB ändern.
Kann ich nun einfach einen neuen FB erstellen und meine Netzwerke aus dem FC kopieren und einfügen, oder gibt es da einen einfachen Trick, einen FC in FB umzuändern?

Unterteilung ausgeschlossen! Würde mich über eine Antwort sehr freuen.

TIA Bachelorarbeit zur erstellung einer HMI

$
0
0
Hallo Community, ich wünsche ein frohes neues.

Wie der Titel schon sagt muss ich für meine Bachelorarbeit mit TIA portal ein HMI basierend auf einem bestimmten Softwarestandart entwickeln. Jetzt bin ich verzweifelt auf der Suche nach guten Büchern die ich bei der Recherche benutzen kann.
Im wesentlichen das rudimentäre Entwickeln, vom Variablen verknüpfen bis zu Slidein Funktionen oder ähnlichem. Ich habe gesehen, das auf der Siemens Homepage einige Bücher angebohten werden, klingen die Ttel dort aber nicht sehr präzise so das ich mir nicht sicher bin, vielleicht kennt ja jemand Bücher von anderen Verlegern die besser zu empfehlen sind. Ich wäre für jeden Tip dankbar.

Mit freundlichen Grüßen
Meikelneit
Viewing all 49721 articles
Browse latest View live