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

TIA Bildbaustein von Advanced auf Professional

$
0
0
Hallo,

Bildbausteine die ich in Advanced habe, brauche ich in Professional. Eine direkte Konvertierung habe ich nicht gefunden und muss den Bildbaustein in Professional nachbauen.
Beim Nachbauen kopiere ich den Bildbaustein vom Advance-Typ und füge es im Professional-Typ ein. Die Verknüpfungen werden jedoch nicht mit kopiert obwohl ich eine Professional Struktur angelegt und hinzugefügt habe. So muss ich aufwendig jede Verknüpfung einzeln verbinden. (Im Anhang ist ein Bild, welche die Verknüpfungen zeigt)

Hat jemand eine bessere Lösung für mich um die Bildbausteine mit Verknüpfung nachzubauen?
Angehängte Grafiken

TIA PUT/GET Auftrag dauerhaft belegt

$
0
0
Hallo Zusammen,

wir haben ein problem mit der Kommunikation zwischen den CPUs via PUT/GEt S7-Verbindung.
Anlage 1: (1517)
X1: ProfiNet Port. Kommunikation mit Remote-IOs
X2: IndustrialEthernet Port: Kommunikation zwischen den Anlagen CP 1542: SCADA Port: Kommunikation mit der SCADA WinCC OA

Anlage 2: (1517)
X1: ProfiNet Port. Kommunikation mit Remote-IOs
X2: IndustrialEthernet Port: Kommunikation zwischen den Anlagen CP 1542: SCADA Port: Kommunikation mit der SCADA WinCC OA


Beide Anlagen kommunizieren mit der SCADA über den CP.
Die Kommunikation zwischen den Anlagen ist allerdings gestört. Anlage 2 kann PUT/GET mit der Anlage 1 fehlerfrei.
Anlage 1 allerdings gibt uns einen Fehler aus Status: 16#000B und 16#0019.
Nach zahlreichen tests haben wir entschieden den CP vom Netz zu trennen und die Kommunikation an X2 zwischen den Anlagen hat sofort funktioniert.
Wir sind auf allerdings auf die SCADA angewiesen und auf die Kommunikation zwischen den Anlagen leider auch.

Hatte das schon mal jemand gehabt und gelöst?


Würde eine 1518 hierfür besser passen?
Sollen wir die Kommunikation mit der SCADA evnl. über X2 betreiben, weil evtl Performaceverlust über den Rückbus entstehen könnte?

Oder gibt es hier eine einfach Lösung?
Kann mir da jemand helfen? :)


LG wbach

TIA Grundlegender Aufbau/Netzwerk Hausautomatisierung mit S7-1511

$
0
0
Hallo Zusammen,
ich verfolge schon seit längerem viele Beiträge zur Hausautomatisierung mit TIA und S7 etc.
Leider bin ich bei meiner Frage noch nicht auf einen grünen Nenner gekommen.

Folgender Sachverhalt:

Ich möchte eine Hausautomatisierung auf Basis von einer S7-1511 aufbauen.
Die Steuerung wird in einem Schaltschrank im Keller aufgebaut.
Im Schaltschrank soll ein Touchpanel sein.
Weitere Automatisierungskomponenten (ET200M und Touchpanel) befinden sich im 1.OG.

Die Kellersteuerung fängt alle Signale aus Keller und EG ab, die ET ist für den Bereich 1.OG und Dachgeschoss vorgesehen.

Präsentation1.jpg

Nun Zu meiner Frage:
Ist es möglich über den einen Netzwerk-Port der 1511 (entweder über einen Scalance oder Reihenschaltung - soll bei dieser Frage jetzt keine Rolle spielen...) mit den Profinet Teilnehmern zu kommunizieren und gleichzeitig über den 2ten Port der 1511 eine NW Verbindung in das Heimnetz zu erstellen?
Ich möchte nämlich zusätzlich zu den HMIs die Steuerung über den Webserver mittels Tablet oder Handy steuern.

Ich würde dann beim "Automatisierungs"-NW Port alles in einem Adressbereich zusammenpacken und bei der 2ten NW Schnittstelle "Router" verwenden anklicken.
Funktioniert das, dass dann das Tablet mit Steuerung über die Fritzbox und den Webserver kommuniziert?

Die Fritzbox ist zusätzlich noch mit dem Internet verbunden (Sicherheitsgedanke lassen wir mal außen vor). Kann ich dann auch wenn ich nicht im WLAN bin den Webserver aufrufen und von extern steuern und beobachten?

Vielen Dank schonmal vorab!
Angehängte Grafiken

TIA Dateien auf Panel in Abhängigkeit des Erstelldatums löschen

$
0
0
Hallo zusammen!

Ich verwende eine 1513F CPU und das TP 1500 comfort.

Aktuell erstelle ich über den Aufgabenplaner automatisch stündlich eine csv-Datei, die ich auf dem Touchpanel speichere. Das soll auch so bleiben.

Ich möchte gerne nur die Dateien auf dem Panel behalten, die nicht älter als z.B. 4 Wochen sind. Alle anderen sollen gelöscht werden, da sonst die SD-Karte vollläuft und das Panel beginnt langsamer zu werden.

Hat da jemand ne Idee, wie man das per Skript umsetzen kann? Auch andere Umsetzungsmöglichkeiten sind gerne gesehen.

Vielen Dank im Voraus.

TIA Zeitglied starten ---> Ich stehe auf dem Schlauch

$
0
0
Hallo,

irgendwie stehe ich gerade auf dem Schlauch.

Ich möchte mit der positiven Flanke eines Eingangs ein Zeitglied starten, dass mir nach X Sekunden am Ausgang ein True gibt.
Der Eingang wird für die X Sekunden nicht True sein sondern nur getastet.

TON fällt also raus?

Oder Eingang --> P Flanke --> SR Glied --> TON --> Ausgang setzt SR Glied zurück?

Geht es auch einfacher?

Gruß,
Michael

Eingangs- und Ausgangsvariablen in der Main.pou

$
0
0
Ich bin noch relativ neu in SPS, nutze TwinCAT 3 XAE und komme eher aus der c/c++ Ecke. Ich soll mir den alten ST Code eines Kunden vorknöpfen und die Anlage um ein paar kleinere Features erweitern. Dabei bin ich schon ein paar mal über "seltsamen programmierstil" gestolpert. Kommentiert ist der Code natürlich kaum:/ Deshalb bin ich beim folgenden Tema jetzt nicht ganz sicher, ob der Kunde auf der Tastatur ausgerutscht ist oder ob ich noch etwas grundlegendes an SPS nicht verstanden habe:

In dem Projekt gibt es im wesentlichen eine MAIN.POU die in einem Zyklus von 100ms ausgeführt wird. Diese ruft dann Blöcke und Funktionen auf. Alle Hardware Ein-und Ausgänge sind schön säuberlich in einer Globalen Variablenliste deklariert.
Der Variablenteil der MAIN.POU sieht ungefähr so aus:
Code:

VAR
[...]
END_VAR

VAR_INPUT
[...]
END_VAR

VAR_OUTPUT
[...]
END_VAR

Die Sektionen sind auch alle drei prall gefüllt. Ich kann aber bei den meisten nur einen mittlbaren Zusammenhang mit einer Periferie sehen. Die Werte der übrigen werden einmal pro Zyklus übertragen auf eine globale IO-Variable.

Wie ich verstanden habe sind VAR_INPUT und VAR_OUTPUT doch nur für Funktionen und Blöcke gedacht um Parameter mit der aufrufenden Instanz zu kommunizieren. Wie parameter und Rückgabewerte in höheren Programmiersprachen Oder gibt es noch irgend einen Mechanismus, dass der aufrufende Thread Eingangsparameter des entprechenden Programms ändert? In das Thema Einstellungen in den Threads muss ich mich auch noch rein wühlen. Offensichtlich meckert der Kompiler ja nicht, wenn man ihm ein Programm mit input-Variablen vorsetzt aber einen richtigen Sinn ergibt das irgendwie nicht. Korregiert mich.

Macht es in dem Fall noch einen Unterschied, ob ich die Variablen als VAR oder als VAR_INPUT deklariere?

Wenn wir schon dabei sind: gibt es eine Möglichkeit in der TcXaeShell, sich alle Linkings zwischen IO-variablen/IO-Devices in einer Tabelle übersichtlich dar stellen zu lassen, ohne sich mühsam durch den I/O-Baum durch klicken zu müssen?

Besten Dank.

Moeller easy 412-AC-R kein eFunktion

$
0
0
Hallo, ich habe eine Moeller easy 412-AC-R die keine Funktion mehr hat.
Die Steuerung ist in einer Wärmepumpe verbaut 18 Jahre alt und die Firma welche alles verzapft hat existiert nicht mehr.
- > nachgeschaut und Netzteil in der easy def.
- verbaut sind 24V Relais und ein 7805 Spannungsregler -> also 24V an den Eingang vom 7805 und siehe da ... im Display erscheint schon mal eine Textzeile mit
" Test:AC " .... leider steht im Handbuch nur "Self-test aborted Replace “easy” "

Kann mir jemand weiterhelfen wie ich trotzdem an das Programm ran kommen könnte

Frank

TIA CPU1515-2PN - Weihenstephaner Standard

$
0
0
Hallo zusammen,
ich bin leider im Forum nicht fündig geworden, deswegen versuche ich es über ein eigenes Thema.
Ich habe folgende Problemstellung:
CPU1515-2PN, KTP1200, Siemens TIA V15.1, Fremde Maschine, welche ihre Daten über das WSFood Protokoll (Weihenstephaner Standard) bereit stellt.

CPU an HMI kein Problem.
Aber wie komme ich an die Daten welche sich im Bereitgestelltem Protokoll befinden?
Ich habe mir die Bibliothek LWeihStd von der Siemens Seite geladen und in mein Projekt integriert.

In den Projektierten Bausteinen habe ich die Schnittstelle der CPU Port(X2 P1) eingestellt.
Ich bekomme aber keine Verbindung.
Mit dem Beispielprojekt von Siemens komme ich nicht weiter, ich bin seit Tagen permanent am Recherchieren und Probieren um die Schnittstelle aktiv zu bekommen.
Hat vielleicht schon jemand mit WSFood gearbeitet und kann mir irgendwie weiterhelfen?

Ich habe bereits ein wenig Erfahrung mit TIA, aber komme hier einfach nicht weiter.
TIA WSFOOD.jpgTIA WSFOOD_1.jpgTIA WSFOOD_2.jpg


Vielen Dank für eure Unterstützung.
Falls noch irgendwelche wichtigen Informationen Fehlen, dann bitte einfach nachfragen, ich werde sie dann bereitstellen.
Angehängte Grafiken

EN ISO 13854 vs. EN ISO 13857

$
0
0
Hallo Zusammen,

Beschreibung der Normen:
  • EN ISO 13854: Mindestabstände zur Vermeidung des Quetschens von Körperteilen
  • EN ISO 13857: Sicherheitsabstände gegen das Erreichen von Gefährdungsbereichen mit den oberen / unteren Gliedmaßen


Mit der 13857 habe ich schon mehrmals gearbeitet. Mit der 13854 noch nie. Mir erschließt sich auch ehrlich gesagt der Unterschied nicht ganz; thematisch zwar schon (steht ja in den Beschreibungen drin), allerdings sollte man doch, wenn man die 13857 (die ja allgemeiner gefasst ist) erfüllt, keine Probleme mit der 13854 bekommen, oder?

Harmonisierte Norm für Symbole?

$
0
0
Hallo Zusammen,

welche Norm referenziert ihr in Risikobeurteilungen, wenn ihr Gebots- / Verbotsschilder (i.a. Warnhinweise) beschreibt? Mir würde da die ISO 7010 einfallen, die aber nicht harmonisiert ist...

Sicherheits-Relais: 2 Öffner vs 1 Öffner/1 Schließer

$
0
0
Hallo,

bin am Lager bereinigen und versuche die Artenvielfalt etwas einzuschränken. Dabei bin ich darüber gestolpert, dass wir mehrere Sicherheits-Relais für nahezu dieselbe Anwendung im Regal liegen haben. Als Ersatzteil ist das OK, damit im Ernstfall das fehlerhafte Teil 1:1 schnell getauscht werden kann.

Aber wieso gibt es bei den Türschalter die 2 Versionen mit 2 Öffner oder 1 Öffner + 1 Schließer?
Bei Not-Aus ist mir nur die Version mit 2 Öffner im Eingangskreis bekannt.
Hat das bei den Türschalter einen besonderen Grund, oder ist das halt so geworden?

Gruß
Kabeläffle
2019-09-09_AES1337.png 2019-09-09_G1501S.jpg
Angehängte Grafiken

Universal Robots UR10 CB3 - Roboter über S7-1200 Datenbaustein bewegen

$
0
0
Hallo
kann mir jemand helfen wie ich den Roboter über eine S7-1200 Profinetverbindung ,einen Datenbaustein ( X,Y,Z,rx,ry,rz) in Integer oder Realzahl auf eine bestimmte Position fahren kann.
Ich möchte ein Palettierprogramm erstellen, mit dem man unterschiedlich große Pakete mit einem Greifer aufnimmt und über das Koordinatensystem das im Datenbaustein der S7 ist auf eine Palette abstellt.
Habe versucht über read_input_float_register die einzelnen Werte (z.B. Pos_x, Pos_y...) auf dem Roboter zu übertragen. Das funktioniert auch ganz gut, allerdings wenn ich versuche deine Variable zu erstellen p=(Pos_x,Pos_y;....) bekomme ich nur die Meldung das dieses keine "pose" ist

Gruß Tola-Emma

Biete Simatic PCS 7 V8.1 OS Software Client

$
0
0
Biete eine Originalverpackte Simatic PCS 7 V8.1 OS Software Client
6ES7658-2cx18-0YB zu verkaufen an da ich sie falsch betsellt habe.
Macht mir ein faires Angebot.

Biete Simatic PCS 7 Runtime License OS

$
0
0
Biete eine Originalverpackte Simatic PCS 7 Runtime License OS zu verkafen an da ich diese falsch bestellt habe.
6ES7658-2XA00-0XB0
Macht mir ein Faires Angebot.

Codesys2.3: Wie Variablenzustand speichern?

$
0
0
Hallo,

ich nutze paar Logikfunktionen in meiner Wago 750-889 für meine KNX Haussteuerung. Was mein Programm aber immer durcheinanderbringt ist die Rücksetzung der Variablenzustände, wenn ich den Kontroller neu bespiele oder neu Starte. Wie kann ich es einstellen, dass die Zustände auch nach dem Bespielen so sind wie sie waren?
Kann man es auch einstellen, dass die Wago automatisch nach dem Projekt laden in Startmodus geht?

Da ich mich nicht so gut mit CodeSys auskenne, hoffe ich auf eine einfache Lösung😉

Grüße

Biete: Siemens 6ES7 Mega Pack 7 Module 151-3BA23 134-NB01 134-4GB01 134-MB02

$
0
0
Biete neue Module an gegen Preis Gebot. Möchte Sie am besten im Paket verkaufen. Sind aus einer Überbestellung

6ES7 134-4NB01-0AB0 2x Neu ohne Siegelbruch


6ES7 134-4GB01-0AB0 2x Neu ohne Siegelbruch

6ES7 134-4MB02-0AB0 2x Neu ohne Siegelbruch
6ES7 151-3BA23-0AB0 1x Neu ohne Siegelbruch

IMG_20190909_212423.jpg
IMG_20190909_210040.jpgIMG_20190909_205957.jpgIMG_20190909_210017.jpgIMG_20190909_205939.jpg

meldet euch bei mir und wir werden uns einig.
Angehängte Grafiken

Wiederkehrend zur bestimmten Uhrzeit ausführen

$
0
0
Liebes Forum,

ich möchte immer zu einer bestimmten Uhrzeit des Tages einmalig eine Funktion ausführen.
Ich habe dies versucht mit
Code:

IF NOT WagoAppTime.FuTimeDifference(tdTime1:= zielzeit, tdTime2:= aktuellezeit) THEN
   
tu was...



END_IF

und muss dann die aktuelle Zeit in Millisekunden angeben, sowie die Zielzeit in Millisekunden.
Ich denke dies ist ziemlich CPU belastend, denn jede Millisekunde wird die Bedingung geprüft.

Gibt es eine elegantere Lösung?
Grüß

WinCC E/A-Felder als Tabelle füllen

$
0
0
Hallo zusammen,

ich möchte aus einem größeren DB mit einem Array die Daten im WinCC darstellen.

Da ich noch keine größere Erfahrungen mit eigenen Skripte habe, möchte ich mir einfach einen Button mit einer kleinen For-Schleife im VBS programmieren und den entsprechenden E/A-Felder in der Schleife die dazugehörige Strukturvariable zuweisen.

Habt ihr eine Idee wie das ganze schöner und einfach zu realisieren ist?

Ansonsten habe ich aktuell das Problem das ich dem E/A-Feld keinen festen Ausgabewert zuweisen kann.
Als Direktverbindung kein Problem, im VBS passiert noch nichts.

Code:

Set Objekt = ScreenItems("EA-Feld1")
Objekt.OutputValue = 3

Gruß

Tipps für sinnvollen Programmaufbau Sortieranlage

$
0
0
Hallo Zusammen,

Ich baue derzeit eine Anlage zur Sortierung von Paketen.
Kurz zum Aufbau der Anlage:
Ich habe ein "Regalbediengerät", bestehend aus einer senkrechten Linearachse, auf dem die Pakete hoch und runter gefahren werden können und in ein entsprechendes Regalfach einsortiert werden können.
Dieses Regelbediengerät hat eine Ladeposition, an der das Paket von einem Pusher von einem Förderband auf fahrbare Ebene des Regelbediengeräts geschoben wird.

Ziel ist es dass ankommende Pakete bei Bedarf vereinzelt werden, dann zur Pusher-Station gefahren werden, während dem verfahren zum Pusher der auf dem Paket angebrachte Barcode gelesen wird, anhand des Barcodes wird entschieden ob das Paket in das Regal eingelagert werden soll, oder ob es durch die Anlage durchfahren soll zur nächsten Station.

Ich hoffe ich habe in der kurzen Beschreibung alles wichtige erwähnt, so dass ihr das ganze verstehen könnt, sonst einfach fragen ;)

Kurz zu meinem Hintergrund:
Ich habe Elektrotechnik studiert, und im Studium auch mit Automatisierungstechnik (Codesys) zutun gehabt.
Haben damals z.B. eine kleine Modell-Taktstraße automatisiert.
Allerdings war das meiner Meinung nach immer etwas rudimentär, was wir programmiert haben hat schon funktioniert, allerdings würde ich sagen dass das Meilenweit von einer Steuerung entfernt war die man an einen Kunden ausliefern könnte. Fehler und Störungen wurden eher rudimentär abgefangen ...
Wobei genau dieses Fehlerhandling eigentlich das ist was mich wie man das richtig macht.
Ich möchte nicht dass ich bei der kleinsten Störung die Anlage leer fahren muss, komplett zurücksetzen usw ..., das haben wir leider nicht behandelt, das eigentliche Programmieren ist ja das einfachste würde ich behaupten ...

Meine eigentliche Kompetenz ist aber die Entwicklung von Embedded Soft- und Hardware, programmiere viel in C und C#, daher ist das programmieren auf der SPS in ST z.B. doch eine kleine Umstellung für mich :D


Ich benötige gerade Hilfe beim überlegen wie denn die Programmstruktur aussehen soll, bzw. am interessantes fände ich eigentlich wenn ich mir irgendwo die Programmierung echter Automatisierungsprojekte ansehen könnte, allerdings suche ich schon echt einige Zeit, finde aber praktisch nichts (ist ja auch logisch, wer veröffentlicht schon sein geistiges Eigentum ...).

Die Umsetzung erfolgt übrigens mit einer WAGO PFC100, entsprechende erfolgt die Programmierung im e!Cockpit (was ja quasi Codesys ist ...)

Ich habe bisher vor den Programmablauf ca. so zu gestalten:
Die Anlage besteht für mich aus 3 Blöcken:
- Förderband
- Pusher
- Regalbediengerät (ich nenne das im folgenden einfach mal RBG zur Vereinfachung)

Nun würde ich für jedes Element einen FB anlegen, und die einzelnen FBs miteinander über entsprechende Variablen sprechen lassen.

Ein Programmablauf sieht dabei für mich so aus:
- Paket am Förderband verfügbar
- prüfen ob Pusher eingefahren, wenn ja dann Transport zur Pushposition starten
- Barcode des Pakets lesen und prüfen ob das Paket einsortiert werden muss, falls nein Paket bis zum Ende des Förderbands weiter fahren
- wenn Paket sortiert werden muss und an Pushposition angekommen, prüfen ob RBG bereit zur Aufnahme des Pakets (muss an richtiger Position stehen, und der Platz auf dem RBG frei sein), falls nicht Anforderung an RBG schicken
- wenn RBG bereit ist, Pusher starten, wenn Pusher wieder in der eingefahrenen Endlage angekommen ist, den Sortiervorgang des RBGs starten
- gleichzeitig sobald Pusher in eingefahrener Endlage angekommen ist kann bereits das nächste Paket zum Pusher transportiert werden falls am Eingang schon neue Pakete bereit liegen


Das klingt jetzt wenn ich das durchlese garnicht mal sooo schwierig, allerdings fehlt dabei ja noch die ganze Überwachung auf Störungen usw.
Und wie setze ich die Kommunikation zwischen den 3 FBs um?
Ich hätte gesagt für den Triggereingang eines FBs eine Flankenerkunng auf die steigende Flanke zu nehmen.
Jeder block bekommt einen Error Ausgang, die Error-Ausgänge der 3 Blöcke dann verodern und einen stop Eingang jedes FBs geben.
Wie setze ich sinnvollerweise einen Reset bei Fehlern um?

Für mich ist nicht die eigentliche Programmierung das Problem, sondern die Umsetzung des großen Ganzen so hin zu bekommen dass die Anlage möglichst robust funktioniert, und der Bediener sich nicht täglich darüber aufregt :D

Gibt es irgendwelche Literatur wo so "best practice" Lösungen oder so beschrieben sind?
Die Aufgabenstellung die ich habe ist ja eigentlich ein alltägliches Problem in der Automatisierungstechnik würde ich behaupten.


Beste Grüße
David

Windows Remote auf CX Rechner erkennen

$
0
0
Ich mal wieder ;)

Kennt jemand eine Möglichkeit in einer TC3 Applikation zu erkennen, ob sich auf dem Rechner auf der sich die TC3 Applikation befindet eine Windows Remotedesktopverbindung aktiv ist?

Hintergrund: Ich will verhindern, dass sich jemand per Remotedesktopverbindung auf dem Rechner einwählt und bestimmte Funktionen durchführt.
Mit dem Benutzermanagement von Beckhoff klappt das sehr gut - allerdings verhindert es nicht den Fall, dass ich mich per Windows Remotedesktopverbindung einwähle und bereits eine HMI von einem Benutzer geöffnet vorfinde mit Berichtigungen die derjenige der sich per Windows Remotedesktopverbindung eingewählt hat nicht bekommen darf :confused:
Viewing all 49369 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>