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

Motor Controller mit 3x 24 V und einmal 24V/-24V Anschlüssen, Spannung, Netzteil

$
0
0
Hallo zusammen,

vielleicht eine recht simple Frage, dennoch wollte ich einmal sichergehen. Wenn ich einen Motor Controller ansteuere, der z.B. 3x ein 24 V und einmal ein 24 V und -24V Signal benötigt, kann ich dies einfach mit normalen Netzteilen realisieren? Also quasi ein 24 V Netzteil nehmen, die Leitungen auf eine Lüsterklemme und von da aus die 3x 24 V einfach an den Pluspol des Netzteiles klemmen? Bei dem Anschluss mit den 24V/-24V dachte ich daran, den "Minus" vom ersten Netzteil auf den "Plus" eines zweiten Netzteils zu führen, um dann einmal +24 V und - 24 V übrig zu haben. Kann das so funktionieren ? Habt ihr noch andere, alternative Vorschläge ? Muss ich irgendetwas zusätzliches beachten ?

Danke und viele Grüße

TIA Serielle Schnittstelle mit Sendepuffer

$
0
0
Servus,

ich hab eine Serielle RS422 Verbindung mit einem "CM PtP RS422/485 HF" Modul zu einem Teilnehmer im Freeport Modus aufgebaut.
Für die Telegramme habe ich einen Baustein geschrieben, dieser wird mit dem zu lesenden/schreibenden Parameternummer und dem Wert versorgt.
Intern wird noch eine Checksumme generiert und eine Packet ID angegeben. Sobald der Baustein Daten senden soll, wird das Telegramm erstellt und in einen globalen Sendepuffer über INOUT übergeben. Der Sendepuffer ist ein Array[0..63, 0..255] of Bytes. Der Sendepuffer kann also bis zu 64 Telegramme mit jeweils einer länge von 256 Bytes/Zeichen haben.
Wird ein Telegramm im Puffer abgelegt, wird eine interne Indexzahl um 1 erhöht. Somit wird der Puffer gefüllt, wobei bei >64 die Indexzahl auf 0 zurückgesetzt wird.
Da der Baustein mehrere male im Zyklus aufgerufen wird, kann je nach Situation sein, dass in einem Zyklus ein, oder mehrere Telegramme im Puffer abgelegt werden.
Am ende vom Zyklus wird der Send_P2P Baustein aufgerufen. Zuvor wird über eine FOR x := 0 TO 63 DO der Sendepuffer durchsucht, bis ein Telegramm im Puffer gefunden wird.
Wurde ein Telegramm gefunden, wird dieses dem Send_P2P Baustein übergeben und gesendet. Sobald der Send_P2P Baustein sein DONE meldet, wird das nächste Telegramm im Puffer gesucht.

Ich bin mir nicht sicher, ob die FOR Schleife die richtige Lösung ist?! Da es jetzt zu einem Timeout kommen kann, wenn die Indexzahl z.B.: bei 62 liegt und in einem Zyklus 8 neue Telegramme hinzukommen, beträgt die Indexzahl 6, da sie ja bei größer 63 auf 0 gesetzt wird. Nun beginnt die FOR Schleife aber immer bei 0 mit der Suche nach Telegrammen und da der Puffer fortlaufend gefüllt wird, kann es vorkommen, das die letzten Telegramme mit Index < 63 nicht mehr gesendet werden und diese dann zu einem Timeout Fehler führen...

Wäre es vlt besser den Puffer direkt mit einer REPEAT oder WHILE Schleife umzuschichten, so dass die ein neues Telegramm immer auf Platz 0 im Array eingefügt wird und die restlichen nach hinten verschoben werden und zusätzlich die FOR schleife von 63 nach 0 zählen lassen, also rückwärts?

Ich hoffe, ich habe es halbwegs verständlich rübergebracht...

Der Timeoutfehler wird generiert, wenn ein Antworttelegramm zu lange auf sich warten lässt. Der Baustein überprüft den Empfangspuffer auf neue Telegramme, dieses wird mit der zuvor mitgesendeten Packet ID abgeglichen, die Checksumme geprüft und das muss alles innerhalb eines definierten Zeitfenster passieren. Jedoch habe ich diesen Teil weckgelassen, da es ja so schon kompliziert genug ist :D

TIA DB any in DB struct innerhalb eines FB kopieren

$
0
0
Moin,

ich habe einen FB angelegt. Den möchte ich extern mit einem DB verschalten der durch einen anderen FB erstellt wurde. Dazu habe ich am Input ein DB any angelegt. Nun möchte ich auf mehrere Elemente des externen DB zugreifen. Dazu müsste ich doch den DB any in eine Struktur innerhalb des FB kopieren. Doch wie mache ich das? Mit Move funktioniert das ja nicht.

Gruß Heiko

Einsatz von FU in zweikanaligen Systemen

$
0
0
Hallo zusammen,

Die Endlagen eines Fördersystems (Lenze Asynchronmotor mit Geber und 8400 Highline Umrichter) sollen zweikanalig überwacht werden (Betriebs- und Notendlage) die Betriebsendlage soll hierbei über einen Drehgeber, welcher die Positionserfassung durchführt realisiert werden. Die Notendlage wirkt mittels Endschalter direkt auf den Sicherheitskreis.

Bei der Modellierung in Sistema ist die Frage entstanden, wie die Parametrierbarkeit/Programmierbarkeit des Frequenzumrichters hinsichtlich möglicher Softwarevalidierung zu betrachten ist.

Wie seht ihr dass, muss ich für die Parametrierung bzw. Bausteinverschaltung im FU eine Softwarevalidierung durchführen?

Vielen Dank + Viele Grüße

Jan

e!Cockpit SPS IP Adresse in Software auswerten

$
0
0
Hallo, hoffentlich kann mir eine von euch helfen. Wie kann man die IP Adresse der Wago in der Software auslesen? Hintergrund ist, ich habe 2 Steuerungen in einem System. Beide Teilsysteme sind FAST identisch und sollen mit der gleichen Software laufen. Das FAST im vorherigen Satz möchte ich gerne durch die Abfrage der eigenen IP Adresse begleichen.
z.B. die eine SPS hat auf Port 1 192.168.100.1, die andere 192.168.200.1.
Ich möchte die kleinen Unterschiede in der Software welche im wesentlichen nur darin bestehen ob eine Funktion aufgerufen wird oder nicht nicht jedes mal umprogrammieren oder 2 x die ganze Software haben. Da sieht am ende doch keiner mehr durch. Die beiden Ethernetports einer SPS haben übrigens unterschiedliche IP Adressen. Port 1 zur Kommunikation mit den restlichen teilen des Teilsystems, Port 2 Kommunikation der beiden Teilsysteme untereinander. Müsste also die Abfrage Portselektiv machen.

TIA Schrittkette in OB1 implementieren

$
0
0
Schönen guten Tag zusammen. :D


Ich habe die ehrenvolle Aufgabe eine Farbmischanlage zu programmieren.

Hierfür sollte ich folgende Funktionsbausteine anlegen/programmieren:
- FB Betriebsarten in der Sprache SCL/ST
- FB Automatik (Ablaufsprache) für das Mixen der Farbkomponenten und die dazugehörigen Instanzen(FUP)
- FB Befehlsausgabe für die Ansteuerung der Aktorik(Ventile/Motoren) als FUP
- FB Meldeleuchten

Soweit so gut - hoffe ich. Habe die Bausteine programmiert und sie sind in der Übersetzung soweit fehlerfrei.
Zusammen mit dem FB Befehlsausgabe habe ich einen Schrittkettenbaustein angelegt, welcher die einzelnen Schritte des Ablaufs der Anlage beinhaltet.

Nun verzweifel ich an der Umsetzung, die einzelnen Bausteine im OB1 zu integrieren, sodass ein schlüssiges Programm entsteht. Die oben genannten Bausteine sollen zusammen das zyklischen Hauptrogramm bilden. Das Hauptprogramm muss doch jetzt die einzelnen Schritte des Schrittketten- und Befehlsausgabebausteins durchlaufen und abarbeiten?! Aber wie setze ich das im TIA Portal genau um bitte? Gib es standardisierte Bausteine hierfür?

Ich bin grad echt verzweifelt und sitze seit etlichen Stunden/Tagen an dem Problem. :[

Ich bin über jede Hilfe dankbar!!!

Als Anhänge habe ich Ausschnitte aus dem Programm bzw den einzelnen Bausteinen hochgeladen.


Beste Grüße

Matti
Angehängte Grafiken

Panasonic servo drive

$
0
0
Hi

I have a Panasonic Minas A5 servo drive trying to test in free run a Panasonic A6 servo motor, But as there is a mismatch between the motor and the drive, error 95.0 appears, which declares "motor automatic recognition protection". I'm looking for eliminating this error. (saying that cause in other brands like Yaskawa or some mitsubishi drives this error, known as combination error, can be cleared). I think maybe by changing some parameters this error can be cleared.

Any idia?

Regards

TIA F-Peripherie-DB in FB via Struct einlesen

$
0
0
Hallo zusammen,

ich arbeite gerade an einem Standard, F-Peripherie-DBs in einen FB einzulesen.

Sinn der ganzen sache ist, dass ich den Status von verschiedene F-Peripherie-DB in einen "Anlagen-DB" verschieben kann, den ich dann wiederum auf dem Panel anzeige.

Mir ist beim Anlegen des FB die Struktur vom F-Peripherie-DB nicht ganz klar...

Kann mir da evtl. jemand helfen?
Angehängte Grafiken

Array, Arrayname oder Arrayverweis an Funktion übergeben

$
0
0
Hallo,

ich würde gerne eine Funktion (FUN) erstellen, die die Grenzen eines beliebigen Arrays überprüft.
An die Funktion soll das Array und die Stelle, an der in der darauffolgenden Zeile in das Array geschrieben wird, übergeben werden.

in der Funktion will ich nur mit upper_bound und lower_bound überprüfen, ob alles innerhalb der Grenzen ist und ein TRUE oder FALSE ausgeben.
(quasi eine Art checkbounds Funktion)

ich finde im Moment nur keine Lösung, das Array, oder einen Verweis auf das Array an die Funktion zu übergeben,
da verschieden große Arrays mit unterschiedlichen Datentypen überprüft werden sollen.


habs schon mit VAR_IN_OUT, Array [*] of any probiert, nichts hat bis jetzt den gewünschten Erfolg gebracht.

In der Funktion interessieren mich ja die Daten des Arrays oder der Datentyp nicht.

vielleicht hat da jemand einen Lösungsansatz?

vg
Andreas

Step 7 PCS7 Zeitsynchronisierung SFC1 auf MODBUS

$
0
0
Hallo zusammen,

zuerst einmal danke schon einmal für die Hilfe. Ich muss jetzt erst einmal erwähnen, dass ich noch kein Spezialist in PCS7 bin, sondern bis jetzt nur die IBS typischen Arbeiten durchgeführt habe. Logikänderungen im CFC, neue Blöcke verschaltet, zusätzliches Faceplate in WinCC etc etc. Jetzt habe ich eine Aufgabe erhalten, von der ich denke, dass ich bereits einen Lösungsweg habe. Es handelt sich um die Zeitsynchronisierung über MODBUS von meiner S7 400, welche der Master wäre und einem System von einem Unterlieferenten als Slave, welcher die gleiche Systemzeit benötigt.

Ob letztendlich die Synchronisierung nur über ein Bit zu einer vorher fest definierten Zeit erfolgt, oder ob wir einfach alle Daten auf den Bus legen, so das der Unterlieferant dann in seinem Rhythmus selbst immer synchronisiert, kann ich noch nicht sagen. So oder so, muss ich erst einmal die Zeit an meiner S7 400 auslesen. Das wäre ja über die SIMATIC Methode möglich, also mit dem SFC1. Diesen im OB1 aufrufen und den Ausgang CDT im Format Date_and_Time in einen vorher definierten DB schreiben. Dann mit einem Pointer in die einzelne Informationen zerlegen und z.B. direkt in den DB mit den Modbusdaten legen.

Dafür wäre aber am Schluss ein Gesamtladen notwendig, was ich gerne verhindern möchte. Da der SFC1 auch als CFC Block vorhanden ist, frage ich mich, ob es ohne Eingriff in den Bausteincontainer möglich ist, sonder ales über die CFC Pläne realisiert werden kann? Gibt es in der Bibliothek einen Baustein, der nach dem SFC Block (Ausgang CDT -> gesuchter Baustein) verschaltet wird, so dass das nicht händisch in AWL erstellt werden muss. Davon erhoffe ich mir, dass ich mit einem Änderungsladen das ganze realisieren kann.

Danke und viele Grüsse
Daniel

TwinSAFE Modulares System

$
0
0
Hallo,
ich beschäftige mich gerade mit TwinSAFE und bin auf folgendes Problem gestoßen.
Ich weiß gerade nicht, ob oder wie ich das realisieren kann.

Ich habe folgendes System:
Ein Master von wo aus alles gesteuert wird und mehrere Slaves, die über jeweils einen EK1101 angeschlossen sind.
Das System wird im eventbereich eingesetzt so, dass die Anzahl der Slaves und auch die Topologie je nach Auftrag immer variiert.

Jeder Slave soll nun mit einem Not-Halt über TwinSafe ausgerüstet werden. Wenn ein Not-Hat betätigt wird sollen alle Slaves abgeschaltet werden.
Allerdings bekomme ich aktuell das System nur störungsfrei, wenn alle Slaves angeschlossen sind. Ich habe für jeden Slave eine eigene TwinSAFE Gruppe angelegt.

Ist es möglich das Problem sinnvoll zu lösen? Ich wäre über jede Hilfe Dankbar.

Gruß
Stefan

Step 7 CPU315 Memory Card Problem und Vorgehensweise

$
0
0
Ich habe mit einer CPU 315 2PN/DP 6ES7-2EH14-0AB0 FW 3.1.1 Probleme und zwar sind öfters mal nach dem einschalten die Aktualwerte verloren wenn die Anlage länger aus war.
Dort wurden keine vernünftigen Anfangswerte in den DB´s festgelegt und somit wird mit Nullen Initialisiert, CPU geht wegen Programmierfehler in Stop da man bei indirekten Adressierungen schlecht mit Nullen rechnen kann :D..das wars Montags früh um 05:00..Telefon klingelt..

Meine Vermutung ist die FW 3.1.1 ist noch etwas buggy da diese Stein Alt ist, glaub sogar der erste Stand.
Oder halt Memory Card hat ne Macke, das sagt zumindest der Support.

Was würdet ihr als erstes probieren ?
Frage wäre auch, reicht das zum setzen der Initalwerte "RAM nach ROM" zu kopieren oder ist es einfacher die betroffenen DB´s offline zu kopieren, Anfangswerte eintragen von Hand (die zum CPU Stop führten) und dann wieder zurück in die CPU Laden. Dann wäre zumindest der Montag morgen gerettet oder ?

Hab auch schon überlegt dann mal komplett alles inkl. Systemdaten und DB´s online in ein OFFline Projekt zu sichern.
- Dann ein Firmwareupdate zu machen
- dann eine nagelneue MMC Card einsetzen.
- dann nach dem angeforderten Urlöschen das komplett gesichertes Projekt reinzuladen
- dann RAM nach ROM kopieren ausführen um mal die Aktualwerte als Initialwerte festzulegen.

Wäre das richtig so ?

LG

CODESYS V3.5 Visualisierung - Text-Farbwechsel durch eine Variable

$
0
0
Hallo Programmierfreunde,

ich habe ein kleines Problem beim Erstellen einer Visualisierung.

Ich möchte bei einem Rechteck mit Text, die Schriftfarbe anhand einer Variablen ändern.

Das Problem ist, sobald ich die DWORD-Variable, die die entsprechenden RGB-Werte enthält, in das Feld für Farbe eintrage und das Projekt im Simulationsmodus starte (habe die SPS - Raspberry 3 mit Codesys-Runtime noch nicht eingerichtet), ist der Text in der Visualisierung weg (oder transparent?).

Ich habe durch langes Versuchen im Ausschlussverfahren herausgefunden, dass es nur dann NICHT funktioniert, wenn im Visualisierungsmanager die Option "Semitransparentes Zeichnen aktivieren" eingeschaltet ist.

Da ich die Visualisierung etwas "moderner" gestalten möchte, nutze ich bei vielen Schaltflächen usw. die Transparenzfunktion.
Die Schrift verschwindet aber bei den Objekten, die eine Farbvariable für Text enthalten. Die Verschiedenen Grafikelemente werden transparent dargestellt. Alle anderen Schriftartvariablen funktionieren soweit. Doch sobald ich zusätzlich, oder ausschließlich die Farbe mit einer Variablen ändern möchte, wird die Schrift in dem Grafikobjekt nicht mehr angezeigt.

Kennt jemand von euch das Problem? Ist das ein Bug? Oder liegt es vielleicht nur am Simulationsmodus?

Wenn ich das "Semitransparentes Zeichnen aktivieren" ausschalte, ist die Schrift zu sehen, die Farbe wird korrekt dargestellt, aber leider ist dann auch nichts mehr transparent....

Kann jemand helfen? Ich wäre euch sehr dankbar!

Viele Grüße,
Christian

Schulung / Weiterbildung / Zertifikate

$
0
0
Moin liebe Kollegen/innen,

bin zwar noch als "Neuer Benutzer" gekennzeichnet, bin aber schon etwas laenger im Forum angemeldet.

Kurz zu mir und dann kommt auch schon meine Frage :)

Ich bin Techniker, seit 6 Jahren in der SPS-Programmierung und seit Oktober 2018 in dem Bereich selbstaendig.
90% meines Alltags befasse ich mich mit Siemens (TIA und Simatic S7) und zwischendurch aber auch mal was Codesysbasiertes.
Mit neuen Systemen komme ich gut zurecht und kann mich schnell einarbeiten.

Meine eigentliche Frage ist:
Habt Ihr Empfehlungen fuer Schulungen / Weiterbildungen / Zertifikate die Ihr Geld wert sind.

Die Frage ist etwas allgemein gehalten, da ich fuer alles offen bin. Ich suche einfach gute Kurse fuer Fortgeschrittene die ein gutes Preis-Leistungs-Verhaeltnis haben.
Gibt es Zertifikate, die bei Kunden gerne gesehen werden / die man haben sollte.

Vielleicht gibt es keine direkte Antwort aber eine kleine Diskussion, bei der man sich Anregung holen kann.

Vielen Dank schonmal und schoene Gruesse,
Arne

Sonstiges Erklärung für Softwareerstellung und Inbetriebnahme

$
0
0
Hallo zusammen,

muss ich für die Erstellung der Software einer Maschine irgendeine Art von Erklärung an den späteren Aussteller der Gesamt-CE für die Maschine ausstellen? Im Speziellen wurde die Software für einen Roboter (inkl. zugehöriger Sicherheit) entwickelt und vor Ort eingebunden (kein Schaltschrank, keine Installation, nur die Software). Ich gehe mal davon aus, dass eine Konformitäts- und eine Einbauerklärung nicht in Frage kommen. Aber wie ist es mit einer Erklärung nach ISO/ IEC 17050-1? In so einem Fall bezugnehmend auf die vorliegende Risikobeurteilung des Ausstellers der Gesamt-CE und die damit verbundene Einhaltung diverser Normen beim Umsetzen der Software (13849-1, 10218-2, etc.).

LG und Danke schon mal vorab für Eure Hilfe!

TIA CPU 1516-3 PN/DP und CP / CM in gleichem Subnetz betreiben

$
0
0
Hallo zusammen,

ich habe folgendes Problem:

Ein Kunde hat für eine Anlage, die ich betreue die Anforderung, dass zum Einen Daten über den OPC/UA Server der CPU abgegriffen werden können, zum Anderen wünscht er sich eine Fernwartung.
Gesagt, getan, die 1516 hat ja zwei Ethernet - Schnittstellen: die "geswitchte" mit den 2 RJ45 - Anschlüssen fürs Anlagennetz inkl. Fernwartung (Helmholz REX100) die auch für die übrigen CPUs in diesem Netzwerk genutzt wird), die zweite, "einfache" für das Firmennetz und OPC UA - dachte ich zumindest.

Mein Problem ist an dieser Stelle, dass für die OPC/UA - Geschichte an der dortigen Schnittstelle ein Router eingetragen werden musste - das liegt nicht an mir sondern am Aufbau des Kundennetzes. An dieser Stelle stieß ich dann auf das Problem, dass ich nicht bei beiden Schnittstellen der CPU einen Router eintragen kann - momentan wurde OPC/UA priorisiert, d.h. die Fernwartung ist "tot".
Der Kunde möchte trotz allem eine Fernwartung haben, weshalb ich mir dachte, ich nutze einen CP / ein CM das ich zur CPU "dazustecke".

Nun zur "eigentlichen" Frage:

Herangehensweise, wie ich sie ursprünglich hatte, war die bisher genutzte geswitchte Schnittstelle der CPU "totzulegen" und das Anlagennetz stattdessen über CP / CM abzuwickeln, wo ich dann auch den Router für die Fernwartung einstellen kann. Davor scheue ich mich ein wenig, weil das schon ein ärgerer Eingriff in die Hardwarekonfiguration funktionierende Anlage darstellt.
Ich habe mir mal testweise ein CM1542-1 ins Projekt (TIA V15.1) reingezogen - ich kann sowohl eine IP - Adresse aus dem gleichen Subnetz verwenden, als auch unter "vernetzt mit" das gleiche Subnetz einstellen, d.h. die CPU hinge über das CM dann mit "zwei Beinen" im Anlagennetz und das CM würde lediglich für die Fernwartung genutzt werden, ohne dass ich das Anlagennetz "umstricken" muss.

Kann das so funktionieren? Dass TIA nicht meckert muss ja nicht unbedingt heißen, dass es geht. - Vielleicht hat jemand ja auch eine andere Idee.

Für eure Antworten bin ich dankbar.

Sonstiges Micromaster 420 RS485 Kommunikation bricht ab

$
0
0
Hallo,

ich habe einen Micromaster 420 in Betreib genommen und er funktioniert auch soweit.
Allerdings habe ich das Problem, dass die serielle Kommunikation (RS485) sofort
abbricht wenn ich den angeschlossenen Motor in Gang setzen will. Der Motor
läuft, aber die Kommunikation ist weg.

Momentan steht alles auf der Schreibtisch daher sollte es keine Problem durch
lange Leitungen geben.

Hat jemand eine Idee dazu.

Vielen Dank.

TwinSAFE Fehler: safe output mapping fehlt

$
0
0
Hallo zusammen,

ich arbeite momentan an meinem ersten TwinCat Projekt (bisher nur Step7 Erfahrung) und stecke bei der Safety programmierung fest.

Ich habe eine Safety Logik programmiert und würde sie nun gerne auf die EL6900 laden, bekomme aber die Fehlermeldung "At least one safe output mapping should be configured for chosen target system".

Leider kann ich mir die Meldung nicht ganz erklären, da ich 3 Safe Ouputs gemappt habe. Im Netz bzw. bei Beckhoff konnte ich auch nichts dazu finden. Hat jemand vielleicht einen Tipp für mich?

Vielen Dank euch!

Im Anhang noch ein paar Screenshots von meiner Konfiguration.

mapping.PNGprojTree.PNGsafetymon.PNG
Angehängte Grafiken

CODESYSV3.5 + Funktionale Sicherheit PLe/SIL3

Werteingabe in der Mechanik

$
0
0
Hallo,

wir diskutieren wie oft über ein und das elbe Thema. Und zwar wie man die Werte für die Mechanik berechnet. Vielleicht könnt ihr mir mal sagen wie ihr das macht.

Als Beispiel haben wir ein Förderband. Da gehe ich folgendermaßen vor:

1. Ich messe die obere Seite von dem Band und nehme das *2 (so habe ich Ober und Unterseite)

2. dann berechne ich die Umlenkrollen und rechne das hinzu. Sagen wir wir haben eine Gesamtlänge von 4000mm.

3. Als nächstes drehe ich den Motor eine Umdrehung und schaue wieviel mm das Band zurück gelegt hat.

4. dann rechne ich die Gesamtlänge (4000mm) / den zurück gelegten Weg bei einer Motorumdrehung. Jetzt habe ich Motor und Lastumdrehung die ich in der Mechanik eintragen kann.

Was gebe ich jetzt genau bei LU pro Lastumdrehung ein? Das Gesamtmaß von 4000mm?


Ich würde mich über ein paar Tipps freuen.


Hier der Screenshot:
Mechanik.jpg
Angehängte Grafiken
Viewing all 50119 articles
Browse latest View live


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