September 1, 2018, 4:05 am
Hallo Leute,
ich bin quasi Quereinsteiger in der Automatisierungstechnik und CANOpen.
Und habe die Aufgabe einen Motor (Dunker) via CANOpen an eine CodeSys Steuerung anzubinden.
So nun meine Fragen:
- SDO sind ja "nur" Parameter um das Device zu im Vorfeld zu Konfigurieren und nicht zur Laufzeit anzupassen richtig? Weil das verwirrt mich, da ich ja diverse SDO haben welche mir die Geschwindigkeit ,Power On , Beschleunigung des Motors nach (CiA 402) definieren, oder ändert man die SDO auch zur Laufzeit?
- PDO sind Telegrame welche zur Laufzeit ausgetauscht werden richtig? Allerding habe ich nur 2 PDO eine ControlWord 16bit und eine Statusword 16bit. Und was mache ich damit leider habe ich dazu eine Doku gefunden.. kennt ihr euch damit aus?
Hat von euch schomal jemand was mit nem CANOpen Antrieb gemacht, und kann mir paar tipps geben?
Danke und schönes WE
↧
September 1, 2018, 4:36 am
Hallo,
Faulheit treibt mich zur Suche nach PLC Datentypen für z.B.
Technologieobjekte Sinamics S120 ...zb Statuswort, Errorwort usw.
um sich so was zu sparen oder eleganter zu lösen:
Code:
U #InAchseSlave.StatusWord.%X0
= #Statusword.FreigabestatusEnable
U #InAchseSlave.StatusWord.%X1
= #Statusword.Error
U #InAchseSlave.StatusWord.%X2
= #Statusword.RestartActive
U #InAchseSlave.StatusWord.%X3
= #Statusword.RestartRequest
U #InAchseSlave.StatusWord.%X4
= #Statusword.ControlPanelActive
U #InAchseSlave.StatusWord.%X5
= #Statusword.HomingDone
U #InAchseSlave.StatusWord.%X6
= #Statusword.Done
U #InAchseSlave.StatusWord.%X7
= #Statusword.Standstill
U #InAchseSlave.StatusWord.%X8
= #Statusword.PositioningCommand
U #InAchseSlave.StatusWord.%X9
= #Statusword.JogCommand
U #InAchseSlave.StatusWord.%X10
= #Statusword.VelocityCommand
U #InAchseSlave.StatusWord.%X11
= #Statusword.HomingCommand
U #InAchseSlave.StatusWord.%X12
= #Statusword.ConstantVelocity
U #InAchseSlave.StatusWord.%X13
= #Statusword.Accelerating
U #InAchseSlave.StatusWord.%X14
= #Statusword.Decelerating
U #InAchseSlave.StatusWord.%X15
= #Statusword.SWLimitMinActive
U #InAchseSlave.StatusWord.%X16
= #Statusword.SWLimitMaxActive
U #InAchseSlave.StatusWord.%X17
= #Statusword.HWLimitMinActive
U #InAchseSlave.StatusWord.%X18
= #Statusword.HWLimitMaxActive
U #InAchseSlave.StatusWord.%X19
= #Statusword.ErrorStopActive
U #InAchseSlave.StatusWord.%X20
= #Statusword.MCPowerStopActive
U #InAchseSlave.ErrorWord.%X0
= #Errorword.SystemFault
U #InAchseSlave.ErrorWord.%X1
= #Errorword.ConfigurationFault
U #InAchseSlave.ErrorWord.%X2
= #Errorword.UserFaul
U #InAchseSlave.ErrorWord.%X3
= #Errorword.CommandNotAccepted
U #InAchseSlave.ErrorWord.%X4
= #Errorword.DriveFault
U #InAchseSlave.ErrorWord.%X5
= #Errorword.SensorFault
U #InAchseSlave.ErrorWord.%X6
= #Errorword.DynamicError
U #InAchseSlave.ErrorWord.%X7
= #Errorword.CommunicationFault
U #InAchseSlave.ErrorWord.%X8
= #Errorword.SWLimit
U #InAchseSlave.ErrorWord.%X9
= #Errorword.HWLimit
U #InAchseSlave.ErrorWord.%X10
= #Errorword.HomingFault
U #InAchseSlave.ErrorWord.%X11
= #Errorword.FollowingErrorFault
U #InAchseSlave.ErrorWord.%X12
= #Errorword.PositioningFault
U #InAchseSlave.ErrorWord.%X13
= #Errorword.PeripheralError
U #InAchseSlave.WarningWord.%X1
= #Warningword.ConfigurationFault
U #InAchseSlave.WarningWord.%X3
= #Warningword.CommandNotAccepted
U #InAchseSlave.WarningWord.%X6
= #Warningword.DynamicError
U #InAchseSlave.WarningWord.%X11
= #Warningword.FollowingErrorFault
Gefunden habe ich
Peripherie- und Technologie-Modulen:
https://support.industry.siemens.com...dti=0&lc=de-WW
Und Standardtelgramme
https://support.industry.siemens.com...dti=0&lc=de-WW
Hat jemand eine Quelle?
↧
↧
September 1, 2018, 6:06 am
FC4.PNG
Ich habe da mal eine Frage:
ich möchte mit der FC4 "Delete" einen STRING löschen. Der STRING umfasst 40 Zeichen.
Parametriert ist der Baustein so, wie im Bild zu sehen, funktioniert aber leider nicht.
↧
September 1, 2018, 9:05 am
Hallo zusammen,
habe kein Thema gefunden welches mein Problem beschreibt. Falls ich es übersehen habe @ Admin: bitte verschieben. Danke
Ich nutze TIA 14 mit einer 1511 1 PN
Ich deklariere eine Temp Variable (Bool) Resete diese im ersten Netzwerk.
Weiße sie im zweiten Netzwerk zu und frage diese dann im selben Netzwerk nochmals ab. In der zweiten Abfrage ist sie Null, jedoch im Netzwerk 3 hat sie den richtigen Status.
Mach ich das mit Merkern, DB Adressen oder statischen Variablen des FB ist es wie es sein soll.
Siehe Bild
Bild 1.JPG
Danke für eure Hilfe!
Grüße Stefan
↧
September 2, 2018, 12:29 am
Hallo Leute,
wenn ich ein CANOpen (Slave) Device habe welches ich via EDS Datei definiere, und als Node in meinen CANBus Manager unter CodeSys hinzufüge. habe ich ja meine SDO und PDOs.
Kann ich dann darin eigen PDO TX/RX definieren!? und ja wie?
Danke und Schönes WE
↧
↧
September 2, 2018, 3:14 am
Bitte hier
1x 3RV2917-4B 3 Phasen Sammelschiene
5x 3RV2927-7AA00 Schützsockel
bei Intresse PN
↧
September 2, 2018, 4:19 am
Hallo zusammen,
erstmal Hardwarekonfig:
CPU 315-2DP
CP343-1 Lean
Profibus:
IM155-6 DP HF V3.1 (Rev3)
CM PtP (6ES7 137-6AA00-0BA0)
EA's
Es geht mir um das Modul CM PtP. DIe Hardware läuft soweit. Beim CM blinkt die "RUN"-Led - also Im Anlauf oder Parametrierung fehlt.
Da ich keine Möglichkteit gefunden habe die CM über die Hardware zur parametrieren, versuchte ich es über die Bausteine PORT_CONFIG, RECEIVE_CONFIG, SEND_CONFIG.
PORT_CNFIG und SEND_CONFIG scheinen zu laufen. Wenn ich den Baustein RECEIVE_CONFIG starte, schmeisst er mir die Fehlermeldung 0x8353 == "Receive_Conditions zeigt nicht auf eine Struktur vom Typ Receive_Conditions". Hab das alles gefühlte 1000x geprüft. Finde da keinen Fehler.
Also: Woher bekomme ich diese Struktur? oder wie Parametriere ich diese blöde CM über die Hardware-Konfig?
Es mit TIA zu machen fällt wohl aus, da der Kunde auf Classic besteht.
↧
September 2, 2018, 6:50 am
Hallo zusammen,
ich habe bisher beruflich, wie auch privat, überwiegend mit Steuerungen von Siemens zu tun (Logo!, S7-300er).
Zur Zeit überlege ich mir, ggf. für private Zwecke eine SPS von Wago zu kaufen, habe dazu aber noch einige Fragen.
Anwendung:
Als nächstes würde ich ein Testrack bauen und da stehe ich vor der Entscheidung, ob ich bei Siemens bleibe und eine Logo! 8.2 oder eine S7-1200er nehme oder ob ich zukünftig für den privaten Bereich zu Wago wechsel.
Weil CoDeSys 2.3 nicht mehr aktuell ist, habe ich momentan das PFC100-Starterkit (750-8100) im Auge.
1.)
Die wichtigste Frage zuerst: Wie zufrieden seid ihr denn mit Wago und e!Cockpit bzw. was sind eure Erfahrungen? (Allgemein, was die Qualität betrifft oder ggf. auch im Vergleich zu Siemens)
2.)
e!Cockpit soll laut Wago nur für den gewerblichen Bereich sein. Setzt ihr das dennoch auch privat ein und wenn Ja: Wie seid ihr an die Software gekommen? Ich sehe da bisher nur die Möglichkeit über ein Starterkit.
3.)
Worin liegt der Unterschied zwischen einer Starterkit-Lizenz und der Arbeitsplatz-Lizenz?
4.)
Wie ist das mit dem Lizenzschlüssel von e!Cockpit, wenn der PC einen Defekt hat? Stimmt das, dass man sich dann an den Wago Support wenden muss bezüglich einer Rücksetzung?
Danke im Voraus! :rolleyes:
Grüße
↧
September 2, 2018, 7:23 am
Hallo
Ich bin auf der Suche um eine Variable die über OPC UA gelesen wird in eine Datei zu loggen.
Mir geht es hier um Antwortzeiten.
Der Client sollte auf eine Wertänderung der Variablen schauen. Ist die der Fall schreibt der Client den Wert der Variablen in eine Datei.
Also eigentlich ne einfache Geschichte.
Kennt jemand ein Tool welches das könnte?
OPC-Server ist hier eine 1500er.
↧
↧
September 2, 2018, 11:45 am
Hi zusammen,
ich sitze heute abend im Hotel auf Inbetriebnahme und brüte gerade über den Fehlern des Tages.
Zu diesem hier kann ich mir absolut keinen Reim darauf machen.
Folgender Code erzeugt Längenfehler beim Arrayzugriff:
Code:
For siLaufvar = 1 to 120 Do
If "dbTaghist".saTagval[siLaufvar] = 9999 Then
siBadcount := siBadcount + 1;
End_If;
End_For;
If siBadcount >= 3 Then
//Fehler melden
saSto[2] := TRUE;
End_If;
Im Instanzdatenbaustein kann man sehen, dass der Wert von siLaufvar auf 121 geht zu welchem Punkt die Steuerung Fehler meldet und die Bearbeitung des Bausteins stoppt.
Schreibe ich die Abbruchbedingung dagegen auf 119 fest, läuft es ganz normal durch und der Wert im Instanzdatenbaustein bleibt bei 120 stehen.
Folgende Frage lässt mir keine Ruhe, wieso bricht die For Schleife nicht wie gewollt bei 120 ab, sondern macht noch einen Durchlauf?
Bin ich einfach nur Übermüdet und sehe meinen Fehler nicht, oder ist da was Faul im Staate Dänemark?
Steuerungen sind 1214C AC/DC/RLY 1BG30 und 1BG31 alle mit V2.2, bzw eine mit V3.0. Alles Bestandssteuerungen des Kunden.
Programmiert wird mit TIA V15.0.
Danke
↧
September 2, 2018, 3:47 pm
Hallo Leute,
ich verwende eine DINT Variable in der ich die laufenden Sekunden berechne.
Jetzt möchte ich diese in der HMI als Uhrzeit, "hh:mm:nn" anzeigen.
Gibt es dazu eine einfache Lösung oder muss ich die drei Werte aus den Sekunden berechnen und in der Visu einzeln als INT anzeigen.
BTW: ich verwende TIA V14
Danke im voraus
Alex
↧
September 2, 2018, 10:52 pm
Habe nun eine 1500er CPU, leider ist wieder mal wieder vieles anders, warum ?
Früher hatte die Hardware eine ID, die man irgendwo in einem Kommunikationsbaustein eintragen musste, nun gibt es das nicht mehr und der Baustein erwartet trotzdem eine ID...was tun ?
In der Hilfe habe ich folgenden schlauen Satz gefunden von Siemens
Zitat: " Die Nummer wird automatisch vergeben und ist in den Eigenschaften der Komponente oder des Interface in der Hardware-Konfiguration hinterlegt."
Hoffentlich bekomme ich jetzt kein Ärger wegen Urheber-Datenschutz pi pa po usw.
Im Anhang habe ich meine eigene config dort sind mehrere HW-Kennungen welche müsste nun eingetragen werden ?
In dem Baustein ist noch die alte ID für eine 300er cpu !
Gruß
↧
September 3, 2018, 12:00 am
Hallo, ich habe in einem DB einen Zeichenkette gespeichert.
Name_Komponente1 Datentyp String [20]
Diese Var ist im DB Rezeptparameter hinterlegt also : "Rezeptparameter".Name_Komponente_Hand1[20]
Code:
L "Rezeptparameter".Name_Komponente_Hand1[20]
T "GlobalDB".DATA.Name_Handkomp_aus_Rezept[20]
Die Var "GlobalDB".DATA.Name_Handkomp_aus_Rezept[20] möchte ich auf meinem Panel anzeigen. Also den Text in der Var. Denn je nach Arbeitsschritt, muss in der Anzeige auf dem Panel ein bestimmter Text stehen. Diese Daten kommen aus dem DB Rezeptparameter.
Aber auf der Anzeige des Panels wird nichts angezeigt. Mache ich da einen Grundsätzlichen Fehler?
Wenn ich die Var "Rezeptparameter".Name_Komponente_Hand1[20] auf dem Panel anzeigen lasse, dann geht es.
↧
↧
September 3, 2018, 12:44 am
Hallo zusammen,
TIA V15.1 sollte ja bald erscheinen. Gibt es schon Informationen oder einen Flyer, was alles neu/anders/besser ist.
Ich konnte bis jetzt nur die Information finden, dass redundante CPU´s verfügbar sein werden (15xxR ).
Danke
↧
September 3, 2018, 1:26 am
Moin ich hab folgendes Problem:
CPU:315-2 PN/DP
Dezentrale Perpherie:IM151-3PN
Verbindung über Profinet
Hab das gnaze Step7 Classic erstellt und auch ohne Probleme mit PLCSIM simuliert. Nun wurde das ganze Projekt nach TIA v15 migriert und nun ist die Simulation nicht mehr möglich.
"Dezentrale Peripherie ist nicht erreichbar"
Kann TIA dezentrale Peripherie nicht simulieren??
Danke für eure Hilfe !
↧
September 3, 2018, 1:35 am
Hallo zusammen,
ich habe folgendes Anliegen: Ich wurde damit beauftragt, aus 7 Leybold Vakuum-Messgeräten (GRAPHIX ONE Controller Einkanal-Messgerät für aktive Vakuumsensoren) entsprechende Messwerte mittels einer Simatic S7 Steuerung auszulesen.
Vorab sei gesagt: Ich habe nicht sehr viele Erfahrungen mit SPS sammeln können. Das ist meine zweite "Aufgabe", die es zu lösen gilt. Ich habe bisher aus einer bereits installierten S7 400 SPS Daten erfolgreich mit einem NETLink Pro Modul und einer selbst geschriebenen C# Anwendung (libnodave) auslesen können und in eine MS SQL Datenbank geschrieben.
Für das neue Projekt habe ich folgendes Konzept vorliegen:
- SIEMENS S7-CPU 1215C
- Eingangsmodule, falls erforderlich?
- Netzteil SIMATIC PM 1207 24V
- TIA Portal 15
- Mini Schaltschrank inkl. Kleinmaterial
Normalerweise würde ich sagen, ich gehe hier vor wie beim ersten Auftrag: NETLink Modul und libnodave. Der Auftraggeber möchte jedoch eine OPC UA Schnittstelle verwenden. Die ausgelesenenen Daten sollen dann in eine MSSQL DB geschrieben werden.
Meine Fragen:
- Reicht die CPU aus um die 7 Vakuum Messwerte auszulesen? Hat jemand diese Messgeräte möglicherweise schon projektiert? Das Signal liegt soweit ich weiß Analog vor (0-10V) und Digital (RS232). Analog auslesen scheint mir einfacher, allerdings hat die CPU nur 2 Analogeingänge. Was empfiehlt sich hier?
- Wie löse ich am besten das OPC UA Problem? Gibt es möglicherweise schon eine fertige/integrierte Lösung? Die CPU hat ja einen Ethernet-Anschluss und unterstützt ISO-on-TCP (RFC1006) - kann ich da trotzdem mit libnodave arbeiten ohne zusätzlichen Adapter? Für den Kunden würde dann einfach ein OPC Server installiert, der die Daten dann auf Wunsch noch anderen Diensten zur Verfügung stellt (Wie erfolgt Kommunikation OPC-Server <=> SPS?).
Ich weiß, dass ich das Anliegen möglicherweise nicht korrekt formuliert habe, da mir das alles noch etwas undurchsichtig erscheint. Ich lasse mich jedoch gerne eines besseren belehren.
Ich freue mich über Hinweise und Anregungen zu meinem Vorhaben.
Danke und viele Grüße!
↧
September 3, 2018, 2:56 am
Hallo zusammen,
ich habe das Problem, dass ich über den OPC-Server keine Realzahlen angezeigt bekomme. Wenn ich in S7 den Wert von Real in INT ändere funktioniert alles. Hab ich die Möglichkeit im HMI Programm die Daten zu laden und dann zu konvertieren, oder muß ich mühsälig im S7 konvertieren und alle Daten in einen DB schreiben um dann die INT Werte in der HMI anzeigen zu lassen.
Mfg Mario
↧
↧
September 3, 2018, 4:08 am
Hallo zusammen,
ersteinmal vielen Dank für dieses gesammelten Wissenschatz der mir schon sehr weitergeholfen hat!
Folgende FAQ:
https://www.sps-forum.de/faq/15348-p...tml#post218816
Hat mir die Arbeit schon sehr erleichtert!
Einzig allein beim lesen der Variabeln komme ich im Moment nicht weiter.
[CODE]
Set fso = CreateObject("Scripting.FileSystemObject")
Set TextFile = fso.openTextFile(datei, 1)
x = 0
do while textfile.atendofstream <> true
x = x + 1
name(x) = TextFile.readline
loop
textfile.close[
/CODE]
Wie schaffe ich es das Array Name(x) in die HMI-Variablenübersicht zu implementieren.
Sodass ich auf den Inhalt über HMI-Elemente (Anzeigen) zugreifen kann bzw. die ausgelesen Werte als Sollwerte an die
SPS schicken kann.
Würde mich freuen wenn Ihr mir helfen könnt!
Viele Grüße
Marcel
↧
September 3, 2018, 5:05 am
Hallo,
ich hab seid kurzem immer wieder Simatic Manager Abstürze (Version: V5.5+SP4+HF11).
Immer wenn ich ein Baustein öffne erscheint "S7 Editor funktioniert nicht mehr".
Und dann kommt der Fehler " Es ist ein interner OLE Fehler aufgetreten"
Manchmal geht's wenn ich es nochmal probiere.
Habe auch schon eine Reparaturinstallation probiert, das half nicht.
Es ist seid ich TIA V14 und V15 installiert habe.
Was könnte das sein und was bedeutet OLE Fehler ?
Danke
LG
↧
September 3, 2018, 5:12 am
Hallo.
Ich möchte gerne eine Methode erstellen, mit welcher ich einem FB diverse Daten übergaben kann.
Man könnte nun natürlich auch verschiedene Methoden anlegen und würde dies Bspw. so aufrufen:
Code:
FbInstanz.AddTemperature(Min:= 20.0, Max:= 80.0);
FbInstanz.AddSpeed(Speed:=100.0);
FbInstanz.AddDelay(Delaytime:= T#5s);
Ich würde aber gerne nur eine Methode "AddValue" anlegen, welche verschiedene Schnittstellen besitzen kann.
Ich kenne dies von Hochsprachen, dass ich eine Funktion mehrfach anlegen kann, aber mit anderen Schnittstellen.
Ist dies in Codesys auch möglich?
Bspw. So.
Code:
FbInstanz.AddValue(Min:= 20.0, Max:= 80.0);
FbInstanz.AddValue(Speed:=100.0);
FbInstanz.AddValue(Delaytime:= T#5s);
↧