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

TIA Schleife

$
0
0
Guten Mogen ich habe follgende Darstellung:
Ich habe einen Umrichter von Lenze, dieser gibt mir einen Störcode raus (Int Format), diesen Code kann ich mit dem HAndbuch entschlüsseln.
Es ergeben sich 125 verschiedene Codes / Störungen, jetzt habe ich mir gedacht diese Störungen in einen Array[0..124] of String zu verschieben (schon erledigt) und die Codes in einen Array[0..124]of int, so das der String array immer zum Code Array passt, aslo:
String Array Stelle Code Array
Stoerung 01 [0] 100
...
Stoerung 45 [0] 1540
usw.
Wie kann ich das jetzt am elegantesten realisieren, ich dachte an eine Schleife, die dann immer das Code Array vergleicht, bei einem "Match" dann stoppen und die aktuelle Zeile aus dem String zu ziehen.
Aber leider bin ich nicht so fitt in SCL wir...
Danke fü die Hilfe

TIA V15
CPU S7 314c 2 PN/DP

TIA Sinamics über Profibus steuern

$
0
0
Hallo,

ich bin relativ neu in Sachen TIA und meine Vorkenntnisse in Sachen Step 7 sind auch eher wenig. Ich wollte nun in TIA ein Programm erstellen, wo ich mit einer CPU 313C 2DP einen FU mit der Contollunit CU CU240B-2DP über Profibus ansteuer. Wie damals hab ich auch 2 Datenbausteine angelegt. Habe dann im OB1 diese versucht mit dem Befehl MOVE einmal die IST-Werte einzulesen und die Soll-Werte auszugeben.
OB1Übersicht.jpg

Das ganze scheint aber nicht zu funktionieren, ich kriege auch immer die Warnung "Die Adresse wird nicht durch eine Variable belegt" siehe Bild. Die Adressen scheinen zu stimmen, denn sobald ich sie änder, geht die CU auf Fehler Feldbus Timeout.
Die Datenbausteine habe ich auch vorher formatiert siehe Bild 2

DBÜbersicht.jpg

Hoffe ihr könnt mir helfen. Vielleicht gehe ich das ganze in TIA auch falsch an und ihr kennt einen besseren Weg. So oder so, würde mich über Hilfe sehr freuen

Gruß Oli
Angehängte Grafiken

Hydraulische Fehlerausschlüsse SISTEMA

$
0
0
Hallo zusammen,

ich befasse mich gerade mit den Fehlerausschlüssen nach ISO 13849 in SISTEMA. Meine Frage hierzu ist eigentlich etwas allgemeiner...

Darf jeder einen Fehlerausschluss machen wenn er sich auf die Vorgaben der Norm bezieht???

Ich lege hydraulische Systeme in SISTEMA aus um die entsprechenden PL nachzuweisen. Bisher hatte ich nur Ventile usw. bei denen der Fehlerausschluss vom Hersteller, also vom Konstrukteur kam. Im Hydraluik-Teil gibt es in der ISO 13849-2 Anhang C Tabelle C.3 ff. ziemlich genaue Vorgaben für die verschiedenen Ventilarten wann ein Fehlerausschluss zulässig ist.

Wenn mir vom Hersteller jetzt aber nichts weiter bestätigt wird als das die Produkte nach den grundlegenden und bewährten Sicherheitsprinzipien konstruiert wurden kann ich dann selbst einen Fehlerausschluss setzen wenn das Ventil sonst die Voraussetzungen der erwähnten Tabellen erfüllt?

Eine Begründung in der technischen Dokumentation muss ich natürlich gemäß ISO 13849-1 7.3 angeben. Sonst müsste ich mir ja jedesmal bei solchen Fällen vom Hersteller den Fehlerausschluss bestätigen lassen ...

Bin hier etwas unschlüssig und freue mich über Hinweise.
Grüße

TIA KNX Gateway Wachendorff in TIA 1515-2PN via Profinet einbinden

$
0
0
Hallo zusammen,

habe folgende Bauteile:
1x KNX Gateway Wachendorff HD67818-KNX-B2 mit Profinet Schnittstelle
1x 1515-2PN V2.5
TIA V15

Habe in der Konfig. Software von Wachendorff die KNX Datenpunkte definiert, eine GSD Datei erstellt und auf das KNX Slave runtergeladen.
Danach GSD in V15 installiert, Hardware angelegt, Profinet Schnittstelle 2: 1515 auf 192.168.0.1 das KNX auf 192.168.0.5, kann auch beides anpingen.
1515 Schnittstelle 1 auf 192.168.110.5, HW runtergeladen, online gegangen, keine Verbindung zum KNX Gateway zu CPU, es wird aber der Name des KNX bei der Online Diagnose angezeigt, mh...?

Alles noch 2-3 mal kontrolliert, neues Projekt angelegt, alles von der "grünen Wiese" nochmal durchgemacht.

Leider keine Erfolg, Wachendorff Support kontaktiert, warte noch auf einen Rückruf.

Fällt einem von euch noch irgendetwas dazu ein?

Besten Dank schon im Voraus für jeglichen Tipp.

Raspberry Pi Shield mit 24V IO gesucht

$
0
0
Hallo zusammen,

ich suche ein Raspberry Pi Shield mit ein paar 24V IOs.
Das mir die 3,3V GPIO auf 24V bringt.

Was ich bis jetzt gefunden haben sind entweder solche Monsterplatinen
https://www.reichelt.de/raspberry-pi...?&trstct=pos_1

Oder "SPS" Karten die dann erst wieder über den I2C Bus angeschlossen werden
http://raspberry-sps.de/sps-karten-fuer-raspberry-pi/

Ich suche eigentlich nur eine kleine Aufsteckplatine (Shield) die mir eine paar 24V Eingänge und Ausgänge zur Verfügung stellt.

Kennt da jemand etwas?

B&R APROL: Tagesmittelwerte

$
0
0
Moin Moin,


Sagt mal ich habe da ein Problemchen: Gibt es einen schnellen und einfachen weg einen Mittelwert über einen Tag zu bilden, der verschiedene Randbedingungen erfüllt?


Folgendes:


Der Gasverbrauch einer Maschine wurde in bestimmten Betriebsarten z.b. Standby mit 20 nm³ und in Produktion mit 30 nm³ angegeben (Das sind die werte die ich benötige, es gibt dann noch Aufheizphasen etc die unwichtig sind und nicht in den Mittelwert einfließen dürfen).


Alle 24h soll eine Überschreitung dieser werte im Mittel um 20% per Email gemeldet werden. Also mit dem Melden habe ich jetzt nicht das Problem, aber wie mache ich das mit dem Mittelwert?


Die Datenpunkte in welchem Modus die Maschine grade läuft habe ich in Aprol schon drin.






grüße
Micha

TIA Program_Alarm Begleitwerte in Meldung enthalten/nicht enthalten

$
0
0
Moin Zusammen,

ich hantiere gerade mit dem Program_Alarm herum. Diesem Übergebe ich insgesamt 8 Begleitwerte.
Dabei handelt es sich immer um wstring - Datentypen.
Damit ich insgesamt nicht über die maximal Mögliche Länge von 512 Byte bei den Begleitwerten hinaus komme, habe ich die Begleitwertvariablen als wstring mit definierten Längen deklariert.
Jetzt habe ich das Problem, dass der Begleitwert 4 einfach eine 3-stellige Zeichenfolge enthalten soll, die entweder da ist oder nicht da ist.
Da ich eine fixe Länge vergeben habe, werden jetzt immer 3 Stellen reserviert. D.h. Wenn die Zeichenfolge da sein soll ist sie da (alles gut), aber wenn sie nicht da sein soll, werden 3 Leerstellen eingetragen.
Dynamisch zur Laufzeit die Stringlänge ändern geht ja nicht. Gibt es noch andere Ideen?

VG

MFreiberger

Relais mit SPS schalten

$
0
0
Hallo allerseits,

ich bin neu was das Thema SPS angeht und kenne mich nicht so richtig aus. Die SPS soll Relais schalten die jeweils verschiedene Kanäle durchschalten, so eine Art "Multiplexer". Ich habe mich für eine Wago SPS 750-881 mit einer Ausgangskarte mit 8 digitalen Ausgängen entschieden( Wago 750-530). Es sollen Finder 49.52.7.024.0050 Relais mit Sockel und Freilaufdiode verwendet werden.
Kann ich die Relais direkt schalten oder muss ich auf irgendeine Sache speziell achten? Laut Datenblatt ziehen die Relais bei 24 V/DC einen Strom von ca. 22-29 mA je nach Ausführung und die Ausgänge der I/O-Klemme können ja pro Ausgang bis zu 0,5 A liefern. In meinen Augen müsste es funktionieren.


Viele Grüße

Michael

TIA PLCSIM 15.1 nicht installiert?

$
0
0
Hallo

Ich habe mal TIA 15.1 in eine Virtualbox installiert.
Beim Versuch PLCSIM zu starten bekomme ich die Meldung (Bild1)
Was mache ich hier falsch?

Nur am Rande. Die Simulation von S7 V5.6 funktioniert.
Angehängte Grafiken

WAGO 750-652 zum laufen bringen

$
0
0
Guten Abend liebes SPS Forum,

ich bin Elektrotechnikstudent und würde für ein Projekt an der Uni gerne die mir zur Verfügung gestellte SPS mit einem Arduino über RS232 kommunizieren lassen. Bei der SPS handelt es sich um die WAGO PFC 100 (aus dem Starterkit) mit angebautem WAGO 750-652 RS-232/-485-Modul. Als SPS-Programmierungssoftware steht mir das WAGO e!Cockpit, also Codesys V3 zur Verfügung.

Ich kenne mich durch meine Ausbildung zum EBT noch halbwegs mit SPS-Programmierung aus. Haben damals zu Lehrzwecken sowas, wie Garagentorsteuerungen auf der Siemens S7 programmiert. Habe aber noch nie ein komplizierteres als ein I/O-Modul verwendet.

Die übergeordnete Frage lautet also: Wie kriege ich das 750-752er Modul zum laufen?
Vorläufiges Ziel ist, mir einen String (bspw.: „Hallo Wago“) an einen COM-Port meines PCs senden zu lassen.

Mein aktueller Stand:
  • Habe das Handbuch zum 750-652 gelesen
    • finde ich nicht sehr hilfreich. Auch das Kapitel „In Betrieb nehmen“ ist für mich sehr kryptisch.
    • In Handbuch steht auch irgendwo was von einer „SerComm.lib“, die man in Codesys 2.3 benutzen kann.

  • Habe diesen Beitrag aus 2012 gefunden
    • Fast genau mein Anwendungsfall, leider ohne finale Lösung
    • Dort wird man verwiesen auf die Wago Anwendungshinweise

  • Habe den Wago Anwendungshinweis zu „Anwendung der serial_interface_01.lib“ gefunden
    • Habe noch nicht herausgefunden, wie man Erkenntnisse aus solchen Anwendungshinweisen gewinnt
    • Aber dort steht auch irgendwas von einer „SerComm.lib“

  • Habe diesen Beitrag aus 2017 gefunden
    • Genau mein Anwendungsfall
    • Hier wird die „Serial Interface.lib“ verwendet

  • Alle bisher erwähnten Bibliotheken finde ich über den Bibliotheksverwalter mit Bibliothek hinzufügen nicht, jedoch die Serial Communication Bibliothek, zu welcher ich aber keine weiteren Informationen finde.
  • Habe über den oben erwähnten WAGO-Anwendungshinweis die Bibliothek SerComm.lib heruntergeladen und versucht diese über die Bibliotheksrepository zu installieren, wurde dann aber mit einem Haufen Fehlermeldungen bombardiert.


Meine konkrete Frage ist momentan also:
Welche Bibliothek muss ich in Codesys 3.5 verwenden um die Funktionen des 750-652-Moduls nutzen zu können?
Bzw.: Wo bekomme ich diese Bibliothek ggf. her und wie installiere ich sie vernünftig?


Vielen Dank schon mal für eure Hilfe.

Beckhoff I/O Check

$
0
0
Hallo,

Wir nutzen seit kurzem Beckhoff Ethercat I/O Module.

Für die Siemens ET200 gibt es zum I/O Check das kostenlose Programm Proneta.

Gibt es sowas auch für Beckhoff bzw. Für Twincat?

Sonstiges Kommunikation simulieren mit externen Devices

$
0
0
Hallo,

ich möchte mich für ein neues Projekt mit der Kommunikation von IoT Devices (Internet of Things) und SPS einarbeiten. Ich habe auf der einen Seite SPS, die via TCP/IP ggf auch via UDP kommunizieren können / sollen und auf der anderen Seite Geräte wie ein Raspberry Pi o.ä. Ich arbeite unter Python, C/C++ und Java / Android. Als Entwicklungsystem kommt Linux und Mac OS X zum Einsatz.

Soweit wie ich das verstanden habe, können auf der Seite der SPS Telegramme als Bytestrom generiert werden und direkt oder mit Hilfe eines OPC Servers an mein Device gesendet werden, d.h. ich kann auf der Seite des IoT Device den Bytestrom entsprechend verarbeiten. Die Telegramdefinition (Payload) ist meist kunden-/produktionsspezifisch ausgelegt und muss ich dann explizit erfragen. Ist diese Sichtweise soweit korrekt?

Da ich im Grunde der Empfänger von Telegrammen bin, wäre es für mich hilfreich, wenn man die Kommunikation simulieren können, d.h. ich kann mir z.B. die Produktionsumgebung nachbauen und dann die Kommunikation vom PC an meine IoT Devices senden. Gibt es dafür ein Tool, das unter Linux / OSX lauffähig ist? Ich kann natürlich mittels Ethercat o.ä. mir das selbst bauen, nur wäre eine passende Umgebung dafür hilfreich. Für mich ist nur die Kommunikation von der SPS zu meinen Devices und von meinen Devices zu verschiedenen SPS notwendig. Evtl wäre die Simulation verschiedener Protokolle wie z.B. Profibus o.ä. auch hilfreich

Vielen Dank für die Hilfe

Step 7 840D sl - NCU-Variablen / Wireshark S7Comm-Protokolll

$
0
0
Hallo Community,

kurz zur Einleitung… Ich schreibe zurzeit meine Masterarbeit an einer Uni im Themenbereich von CNC-Steuerungen. Ein kleiner Teil der Arbeit beschäftigt sich mit Wireshark und ein bisschen mit „Reverse Engineering“ des S7Comm-Protokolls für CNC-Maschinen.

Als Testexemplar dient hierbei eine Sinunerik 840D sl mit einer Bedieneinheit und einer zusätzlichen PCU 50.3.

Durch die Forumssuche bin ich schon auf sehr interessante Beiträge hinsichtlich des aktuell standardmäßig implementiert Wireshark - S7Comm-Dissectors sowie auf das Auslesen von Variablen in der NCU gestoßen. Erstmal Vielen Dank an die Leute die sich über Jahre mit den genannten Forumsbeiträgen beschäftigt haben…. Eine absolute Spitzenarbeit – Respekt! ;).

Diese Forumsbeiträge waren für meine Masterarbeit schon eine sehr große Hilfe – Vielen Dank!. Jedoch bin ich mittlerweile an einem Punkt wo ich mich etwas im „Kreis drehe“.
Ich hoffe doch, dass ihr mir diesbezüglich etwas bei den nachfolgenden Fragen weiterhelfen könnt.

Allgemein:

1) TCP-Protokoll:

Nur zum Verständnis:
Das TCP-Protokoll ist datenstromorientiert, d.h. ein kontinuierlicher Strom von einzelnen Paketen ohne eindeutigen Anfang und Ende wird zwischen den einzelnen Geräten hin und hergeschickt.
Um diese Pakete abgrenzen zu können existiert eine Sequenznummer + eine entsprechende ACK-Nummer. Nach Senden einer Anfrage des Clients bestätigt der Server dies mit einer ACK-Nachricht

Nun zur eigentlichen Frage im TCP-Protokoll:
Wenn ich dieses Prinzip (Seq-Nr -> Ack-Nr (+ nächste Seq-Nr.) -> Seq-Nr -> …) in Wireshark verfolge lässt sich auch bedingt darauf zurückschließen.
Jedoch sobald 2 hintereinander folgende Userdatas (Userdata -> Cyclic data -> Memory) geschickt werden lässt sich dieses Prinzip nicht mehr nachvollziehen. Eine Userdata lässt sich entsprechend noch zuordnen, jedoch die Sequenznummer der 2. Userdata ist komplett unterschiedlich (hierzu sollte noch gesagt werden das beide Userdatas die gleiche IP besitzen, jedoch untersch. Ports).
Wieso fällt eine Userdata aus diesem Schema heraus, hätte hierzu jemand eine vorläufige Erklärung? (Screenshots kann ich bei Bedarf erst am Montag hochladen)

S7Comm

2) Userdata:

Jede Userdata enthält verschiedene Items mit Datenpaketen, lassen sich jeweiligen Items auf die „zuvor stattgefundenen Jobs“ wieder zuordnen?
Der Client stellt an den Server eine Anfrage und dieser Bestätigt den Erhalt der Anfrage mit einer ACK-Data (Je nach Modi Read/Write) beinhaltet sie ja schon entsprechende Daten.
Welche Daten beinhaltet dann eigentlich die Items in Userdata-Cyclic? (Erst hier sollten doch die Werte beinhaltet sein, da die CNC diese Anfrage erst hier bearbeitet oder?). Jedoch passt hierzu die Anzahl der Items in den zuvor gestellten „Jobanfragen“ nicht mit der Anzahl der Items in der Userdata überein.
Mit fehlt da noch eine bisschen das Verständnis dahinter wie diese Userdata aufgebaut ist und was sie wirklich beinhaltet, vllt. hat jemand einen Tipp für mich?

3) NCK-Variablen

Gibt es auch eine Möglichkeit die Zuordnung der einzelnen NCK-Variablen an die jeweiligen physikalischen Adressen ohne den NC-Var-Selektor zu tätigen?

4) Octet-String

Der Octet-String ist eigentlich eine ganz normale String-Variable nur mit Vorgabe der jeweiligen Länge oder?
Über Wireshark wird je nach Variablen ein Octet String zurückgeliefert. Diese variable Länge unterscheidet sich zwischen 36-222 Zeichen. Gibt es hierzu eine Möglichkeit diesen Octet-String in seine beinhalteten Informationen zu zerlegen? Ich denke bei einem Octet String mit 222 Zeichen werden mehrere Informationen übertragen, die in der CNC selektiert werden… Oder was fängt eine CNC mit einer Zeichenkette mit 222 Zeichen an?



Ich würde mich über eure Mithilfe sehr freuen und hoffe mit dem Beitrag doch noch die ein oder andere hilfreiche Erkenntnis mit euch teilen zu dürfen.

Vielen Dank erstmal.

Gruß

Biiebs


TIA Hilfe Messdaten sichern

$
0
0
Hallo Ich brauche mal Hilfe !!

Frage:
Ich muss einige Messwerte bei einen Anlage sichern. Hardware : S7-1500 und TP700
Wie sichern am anfang in einen Datenbaustein schreiben odre wie ? Die Messwerte sollem als Datei im TP700 liegen und dann per USB auf einen Stick gesichert werden (als CVS Datei).

Kann da jemand helfen ??

Danke für eine Antwort !

Gruss Günni

Probleme PS3 DC von Klöckner Moeller

$
0
0
Hallo,
ich habe 2 PS3-DC SPS als Master-Slave laufen. Nach einem Stromausfall funktioniert das Programm nicht mehr (Stützbatterien leer). Nun erreiche ich die SPS nicht mehr mit dem Handprogrammiergerät.
Beim Versuch das Programm aufzuspielen bekommen ich die Anzeige Transfer Error. Auch die anderen Funktionen Run/Halt etc. funktionieren nicht.
Die Power LED ist an, die RUN LED am Master blinkt im 5Hz Takt (sieht nach Hardware Fehler aus) und Slave Run-LED blinkt im 1Hz Takt.
Leider habe ich kein Handbuch um auf die genaue Fehlersuch zu gehen.
Meine Frage, hatte schon jemand das gleiche Problem? Oder hat irgendjemand noch das Handbuch vielleicht sogar in digitaler Form?
Danke im Voraus

TIA HEX-Wert in einem Real Wert darstellen (3 Nachkommastellen)

$
0
0
Hallo zusammen

Ich hab ein kleines Problem, warscheindlich nicht sehr schwer zu lösen, jedoch komme ich nicht drauf.

Folgende Ausgangslage:
Ich erhalte einen Wert im DWORD format in HEX Schreibweise, dabei hanelt es sich um eine Spannungsangabe (z.B. 5EAB)

Nun sollte dieser Wert in einem Diagramm ausgeben werden, dafür benöige ich die DEZ Schreibweise und einen REAL Wert, da dieser Wert noch mit Nachkommastellen angepasst werden muss, sprich durch 1000 geteilt werden sollte damit der Wert plausibel wird (24.235V).

Hat jemand einen Lösungsansatz?

Gruss

Philipp

Step 7 Analogwerteingabe - wie simulieren?

$
0
0
Hallo,

ich muss für eine Motorregelung zunächst mal einen FC programmieren, durch den der digitalisierte Eingangswert in einen physikalischen REAL-Wert umgewandelt wird. Der physikalische Messbereich soll als Ober- und Untergrenze übergeben werden, außerdem ob Bipolar oder Unipolar. Im Anhang mal das, was ich bisher habe.

Jetzt würde ich das Ding gern im PLCSIM simulieren, aber wie geht das? Ich bin jetzt bei Extras > Optionen > Symbole zuordnen, aber dann weiß ich nicht, wie es weitergeht.

Vielen Dank für die Hilfe

Frank
Angehängte Dateien

PrgDaylightSaving notwendig?

$
0
0
Liebe Forumsgemeinde,

an meinen beiden WAGO 750 Controllern (880 & 881) synchronisiere ich die Uhr jeweils per NTP.
Das funktioniert so weit auch ohne Probleme.

Die aktuelle UTC-Zeit lese ich dann mittels "SysRtcGetTime(TRUE)" aus und wandle diese dann
mittels "FuDT_LocalTime" in die lokale Zeit um. Dieser Funktion gebe ich weiters meine Zeitzone,
also +1 mit und TRUE für die Sommer-/Winterumschaltung ("xEnableDaylightSaving").
Diese beiden Zeiten speichere ich jeweils in einer Variablen zur weiteren Verwendung ...

Aktuell stimmt das ganze mal, sprich Datum und Uhrzeit für meinen Standort stimmen.
Ist die Lösung so jetzt aber "allgemein" richtig?
Sprich nächstes Jahr nach Umstellung auf die Sommerzeit?

Im Handbuch der Controller steht auch was zur Verwendung des Prg "PrgDaylightSaving" für die
Umstellung von Sommer- bzw. Winterzeit. Ist das jetzt noch notwendig? Oder macht das nicht
die Funktion "FuDT_LocalTime" selber, weil in der Webconfig der Controller hab ich die automatische
Sommer-/Winterumschaltung ja deaktiviert (auf "manual" und Checkbox "aus").

Blicke da leider noch nicht ganz durch ...

Vielen Dank schon mal und Grüße,
Daniel.

Namenfindung für Zylinder

$
0
0
Nabend,

ich komme öfters an einen Punkt, wo mir partout ein Name bzw. Bezeichnung für einen Zyinder nicht einfallen will beim programmieren. Zum Beispiel Klemmung, Spanner, Stopper, Vereinzeler, ...
Weiß jemand, ob es evtl. eine Datenbank oder sonstiges gibt?

750-881 - kein "Modbus-Master [FIX]" in der Hardwarekonfig ...

$
0
0
Hallo Leute,

wenn ich als Startkonfiguration den 750-881 auswähle erscheint in der Hardwarekonfig kein Modbus-Master-Knoten. Grundsätzlich sollter Controller doch Modbus-Master-fähig sein ... kann mir Jemand einen kleinen Tipp geben?

Ist evtl. meine CoDeSys-Vers. zu alt? (2.3.9.35)

Vielen Dank und beste Grüße!
real_skydiver
Viewing all 49296 articles
Browse latest View live


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