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

Wago E Cockpit Modbus

$
0
0
Hallo an Alle,

vorab möchte ich erwähnen, dass ich kein Profi im programmieren bin.
Habe zwar erfahrung mit der CODESYS 2.3 komme aber echt beim Ecockpit an meine Grenzen.

Mein Problem:

ich habe mehrere kleien Steuerungen, die ich mit Modbus abfragen will, früher ging dies mit einer einfachen Bibliothek,
in der man direkt auf Merkerbereich zugreifen konnte und diese dann einem Array zuweisen konnte.

Ich vermute dies funktionier auch im E Cockpit. Allerdings finde ich keinen Hinweis wie.

Hat einer einen Tip ?

Danke
Karsten

Frequenzumrichter mit Vorwiderstände ansteuern

$
0
0
Guten Morgen Leute,

Da ich bei meiner SPS keinen analogen Ausgang mehr frei habe, sondern nur mehr 3 Digitale Output, kann ich meinen FU leider keine verschiedenen Inputs (unterschiedliche Spannungen für unterschiedliche Geschwindigkeiten) vorgeben. Oder vl. doch?

Ich habe mir gedacht wenn ich die 3 digitalen Outputs verwende, bei ihnen 3 verschiedene Widerstände anlöte und dann in einen analogen Eingang beim FU fahre erhalte ich ja auch 3 verschiedene Spannungen und somit 3 verschieden Geschwindigkeiten oder liege ich da komplett auf dem Holzweg?

besten Dank im Voraus,

Der Salzburger

TwinCAT ADS / Projekte via ADS laden

$
0
0
Hallo an alle,

ich bin gerade mit TwinCAT ADS beschäfitgt.
Ich habe verschiedede Twincat 3 Projekte die ich über ADS samt Konfiguration laden will.
Ist es möglich via ADS ein Projekt in die Steuerung zu laden?

SEW MDS60A ohne Geber

$
0
0
Hallo,
Ich bin neu hier im Forum und hoffe hier auf ein paar Antworten.
Mein Name ist Daniel, ich bin 30 Jahre alt, komme aus dem schönen Niederbayern.

Ich bin derzeit dabei meine Drehmaschine auf Frequenzumrichter umzubauen.
Da ich noch 2 MDS60A zuhause rumliegen habe dachte ich das ich diese dafür verwende.
Als ich alles angeschlossen hatte und eingeschaltet hab brachte der FU sofort die Fehermeldung: Fehler 14 Geber
Ich hab dann über das DBG Bedienteil versucht den Geber zu deaktivieren nur leider finde ich nicht die richtige einstellung dafür.
Nun Meine Frage:
Ist es überhaupt möglich den MDS60a als ganz normalen FU zu verwenden ohne Geber sonder nur mit Drehzahlregelung über Poti?
Ich hoffe ich hab mich richtig ausgedrückt und ihr wisst was ich meine...

LG
Daniel

PDO-Eigenschaften zur Laufzeit ändern

$
0
0
Hallo,

für eine seit Jahren verwendete und immer wieder modifizierte Steuerung brauche ich nun sporadisch eine zusätzliche Eingangskarte. Codesys 2.3 läuft auf einer Softplc im Eaton-Touchscreen. Der Kunde mit mehreren Anlagen soll beim Einsatz eines Ersatzteils in der Lage sein über den neuen Screen die Konfiguration der Wago 750-337 mit 2 oder 3 16DIN-Karten wählen können.

Nun habe ich mit 3S_CANOpenDevice.lib herumexperimentiert mit dem Ziel die PDO-Eigenschaften zur Laufzeit zu ändern (CANOpenDev[0]SetupPdoTabel();) und wahlweise 4 oder 6 inputblocks zu verwenden.

Allerdings klemmt es …
Für das Device habe ich die NodeID der Wago gewählt. Mit dem Parametermanager habe ich Variablen vergeben. Zunächst versuchshalber ein Byte, dann Bytearrays. Da das nix brachte und das Device über DiagNode nicht erkannt wurde, habe ich das generierte eds als Unterelement meinem Master (dem Touchscreen) zugeordnet. Ließ sich einbinden. NodeDiag funktioniert, aber m. E. dürfte ich doch nicht zweimal die gleiche NodeID vergeben.

Ich stehe wegen der Zuordnung und der Vergabe der Adressen im Parametermanager vermutlich hauptsächlich auf dem Schlauch – oder ist am Grundgedanken was falsch?

Hat jemand zufällig Erfahrung mit dem Ändern der PDO-Eigenschaften oder ein Beispiel-Projekt?

Gruß Lucas

TwinCat 2.11 startet ohne Windows Shell nicht -> Abhilfe?

$
0
0
Guten Morgen,

Ich habe einen Beckhoff Rechner mit TwinCat 2.11 fertig aufgesetzt, Programm läuft, über den Autostart vom TwinCat wird nach dem Start des TwinCat noch eine eigens programmierte Visu geladen -> funktioniert
Das ganze ist von einem Windows NT-Rechner portiert, es gibt keine Möglichkeit mehr die Visu anzupassen.

Nun möchte ich die Visu zum laufen zu bringen ohne Taskleiste und Startknopf von Win7 Professional die sich immer wieder in den Vordergrund spielen.
Dazu würde ich gerne die Windows Shell (explorer.exe) beim Start des Rechners nicht starten. Andere Möglichkeiten mit Zusatzprogrammen die die Taskleiste und den Startknopf ausblenden haben wir getestet, irgendwann poppen die doch wieder auf und die Visu ist nicht mehr korrekt bedienbar.

Starte ich nun die Windows Shell nicht so scheint auch Beckhoff nicht anzulaufen. Ich vermute das Beckhoff System wird von der Shell gestartet?
Wie kann ich das Beckhoff System manuell starten, weiß das jmd.? Oder hat jmd. eine andere Idee?

Vielen Dank

IsaGraf Software - Dongle

$
0
0
Hallo zusammen,

einer meiner Kunden nutzt eine ziemlich in die Jahre gekommene IsaGraf Software mit USB Dongle,
leider ist der Vertreiber der Software nicht mehr in der Lage Ersatzdongle für die Software zu liefern.

Der verwendete USB Dongle ist nun ca. 10Jahre im Einsatz es wird der Tag kommen das ein Defekt auftritt und die gesammelten Firmenwerke der letzten 20 Jahren verloren gehen.

Gibt es vielleicht noch IsaGraf Nutzer hier die Ihre Software samt Lizenz nicht mehr benötigen und verkaufen wollen ?

Bitte einfach mal alles anbieten :)

Viele Dank
Timo

TIA TP1500 Comfort Problem mit Touch

$
0
0
Es ist nun das 2. TP1500 Comfort bei unterschiedlichen Projekten, das ein Problem mit dem Touch nach paar Monaten Betriebszeit hat.
Plötzlich lässt sich nicht mehr anklicken. Es funktioniert weder ein Bildwechsel über Klicken, noch eine Eingabe. Bei Objekten die als "Drücken" deklariert wurden, bleibt die Taste z.B. gedrückt "stecken".
Da die Bestätigungstöne aktiviert wurden, hört man schon, dass der Touch irgendwie reagiert.

Nach dem Neustart durch Spannungslosigkeit funktioniert es immer noch nicht. Selbst beim Start kommt man nicht die Systemeinstellugen rein. Irgendwann geht es wieder urplötzlich eine Zeit lang bis der Fehler wieder auftritt. Das erste Panel ist bereits seit mehreren Wochen bei siemens unterwegs. Ein recht knackiger Kostenvoranschlag liegt vor und wurde auch schon längst bestätigt, da beim ersten Panel die Garantie bereits abgelaufen ist. Im Kostenvoranschlag steht halt nur der Preis und keine Fehlerursache.

Programmiert wurden beide mit der V13 SP1 und Firmware ist bei beiden aktuell.

Habt ihr ähnliche Fehler?

Kann es evtl. mit dem RAM-Speicher zusammenhängen? In der Info wurden momentan 19% Speicher genutzt und maximal 20%.

Hilfe bei Inbetriebnahme eines FUs

$
0
0
Hallöchen miteinander,

ich habe einen FU von SEW (MOVITRACK-B MC07B0005-5A3) über eine Siemens Et200 und Ethernet mit einem DesktopPC verbunden. Nur wie bringe ich etzt die ganze Chose dazu mit einander zu quatschen ?

Ich habe den FU manuell in das Programm MotionStudio reingebracht, hin und her versucht das miteinander zu verbinden, aber ich kriege da keine Signale von der SPS reingeladen. Zusätzlich kriege ich eine Fehlermeldung wenn ich den Busmonitor im MS starten will.

Hoffe ihr könnt mir weiterhelfen.

MfG

TIA Wortverknüpfung

$
0
0
Hallo zusammen,
ich habe folgendes Problem.
Ich möchte mit einer S7-1200 V4.1 über Modbus aus einem Gateway Messwerte übernehmen und anzeigen.
Bei den Messwerten handelt es sich um die Wirkleistung in mW, welche auf 4 aufeinanderfolgenden Registern im Format 64-Bit Integer zur Verfügung gestellt werden.
Gibt es einen Möglichkeit im TIA-Portal V14 diese vier Register zusammen zu fassen und als Realzahl darzustellen?

Grüße
Ralf



TIA Wie DB-Nummer aus Symbol ermitteln?

$
0
0
Mit dem Step7 Manager und der S7-300/400 und AWL war das kein Problem.

Code:

FUNCTION "FCNumDB" : VOID
TITLE =DB-Nummer aus Symbol ermitteln
VERSION : 1.0

VAR_INPUT
  Sym: BLOCK_DB;
 END_VAR

VAR_IN_OUT
  Num: INT;
 END_VAR

BEGIN
NETWORK
TITLE =

L P#Sym;SRD 16; T #Num;

END_FUNCTION

Im TIA-Portal (V13) für die S7-1500 ist der BLOCK_DB als Datentyp nicht mehr zulässig. Als Ersatz wird DB_ANY empfohlen und die Konvertierungsfunktionen DB_ANY_TO_VARIANT oder DB_ANY_TO_UINT. Als SCL-Code sieht die Funktion nun so aus:

Code:

FUNCTION "FCNumDB" : Void
TITLE = DB-Nummer aus Symbol ermitteln
VERSION : 0.1

  VAR_INPUT
      Sym : DB_ANY;
  END_VAR

  VAR_IN_OUT
      Num : INT;
  END_VAR
 
BEGIN

      Num := DB_ANY_TO_UINT(#Sym);
       
END_FUNCTION

Sie lässt sich fehlerfrei übersetzen und laden. Nur leider liefert sie im Einsatz nichts anderes als 0 zurück.

In der Hilfe steht zu DB_ANY_TO_UINT so gut wie nichts. Dafür steht bei DB_ANY_TO_VARIANT etwas, was vermutlich auch auf DB_ANY_TO_UINT zutrifft :

...einen Datenbaustein, der ein Instanz-Datenbaustein eines Funktionsbausteins oder ein globaler Datenbaustein ist. Die Konvertierung der Ausgangsvariablen in den Datentyp VARIANT ist nicht möglich.

Im Klartext: Für die meisten Datenbausteine ist DB_ANY nicht zu gebrauchen. Weiß da jemand eine Lösung?

Es wird zurecht immer wieder empfohlen, rein symbolisch zu programmieren. Dummerweise wird aber immer wieder die Nummer gebraucht. Und mit dem Wegfall der Symboltabelle sind die Nummern nicht mal fest zugeordnet. Seit ich mit TIA arbeiten muss, beginne ich den alten Manager zu lieben.

WinCC WinCC 7.3 - Script funktioniert auf Server aber nicht auf Clients

$
0
0
Aloah!

Ich habe folgendes VBScript in all meinen Anlagenbildern:
Code:

Sub OnOpen()
    On Error Resume Next
    Dim screenIdent
    screenIdent = Left(Parent.ObjectName, 2)
    Dim titel
    Set titel = Parent.Parent.ScreenItems(screenIdent + "Kopf").Screen.ScreenItems("Titeltext")
    titel.Text = "ILD " & ScreenItems("TankName").Text
   
End Sub

Sinn ist es den Tanknamen des Tanks auf dem Bild (es ist immer nur einer) in das Titelfeld im Kopf zu schreiben, so dass man immer den richtigen Titel hat, egal wie das Bild geöffnet wurde.

Mein Startscreen hat 3 Bildfenster: Kopf, Hauptbild, Anwahlleiste. Alle Namen der Bildfenster beginnen mit einem 2-Zeichen langen Präfix, dass besagt auf welchem Bildschirm der Bereich ist (Multi-Monitor Betrieb). So beginnen die Namen aller Bildfenster im Monitor links oben mit dem Präfix (screenIdent) "LO". Deshalb der Klimmzug mit dem screenIdent, damit der Titel auch in den korrekten Kopf kommt.

Dieses Script funktioniert auf dem Server ohne Probleme. Auf den Clients hingegen NICHT. Die Clients haben ihre Bilder NICHT lokal liegen, so dass ich sicher bin, dass diese brav vom Server abgeholt werden. (Änderungsladen wirkt sich auch korrekt auf den Clients aus.) Ich habe das Problem noch mit einem anderen Script:

Code:

Function Text_Trigger(ByVal Item)
    Dim VA : Set VA = HMIRuntime.SmartTags(Item.Text)
    Dim Hand : Hand = 1
    Dim v : v = VA.Value
    If (v And Hand) = Hand Then
        ScreenItems("Overlay").Visible = False
    Else
        ScreenItems("Overlay").Visible = True
    End If
End Function

Hierbei wird eine Variable, die von einem anderen Script in das Textfeld geschrieben wird, ausgewertet, die anzeigt ob ein Ventil im Hand-Modus ist oder nicht. Abhängig davon soll ein einfaches Quadrat angezeigt werden oder nicht. Da die Variable immer eine andere sein kann, konnte ich das nicht über einen einfachen Dynamikdialog lösen. Auch dieses Script läuft auf dem Server ohne Probleme, aber nicht auf den Clients.

Ich kann mir da so GAR keinen Reim drauf machen. Wo könnte hier das Problem liegen? Bei Bedarf bitte reichlich Rückfragen stellen! Ich weiß, dass es manchmal schwer ist alles wichtige zu beschreiben wenn man gerade selbst so tief drin hängt.

Besten Dank im Voraus für eure Ideen!

TIA TP700 / TP1200 / TP1500 bootet nicht mehr

$
0
0
Hallo zusammen,

ich habe alle paar Monate mal das Problem, dass eines der oben genannten Panel das Betriebssystemupdate
während dem übertragen abbricht. Aus welchen Gründen auch immer. Nun habe ich von jedem Panel
eines, welches nicht mehr bootet ( Diese Startanimation kommt noch, der Fortschrittsbalken läuft endlos
von links nach rechts ).

Kennt jemand von euch eine Möglichkeit, das Betriebssystem in diesem Zustand wiederherzustellen.

Diese Prosave Funktion mit Werkseinstellungen wiederhestellen und Kommunikationsaufbau per MAC Adresse
und Neustart funktioniert nicht. Auch über TIA findet er nichts. Beim TP1500 leuchten die LED´s beim PORT noch,
bei den anderen nicht.

Garantiezeit ist vorbei.


Vielleicht hat jemand einen Tipp.

Ansonsten wird es wohl ein teurer Spaß.

Danke und mit Grüßen

Step 7 PG FIELD M3 auf 16GB aufrüstbar ?

$
0
0
Hallo,

Wir haben PG FIELD M3 mit Win7 64bit und leider nur mit 8GB RAM.
Kann man das auf 16GB RAM aufrüsten ?
Speichertyp ist ein DDR3-SODIMM 1066
BIOS update haben wir mal gemacht damit wir den M4 Akku verwenden konnten.
8GB ist echt wenig, weil TIA auch drauf laufen soll.
Siemens bietet nur 4GB Riegel an.
Danke

TIA TIA Portal DWord (Zahlenkette) in Text (Buchstaben) umwandeln

$
0
0
Hallo Forum,

ich hätte eine Frage zu dem TIA Portal. Von einer Anlage gewinne ich momentan mehrere Variablen als DWord. Ich weiß aber, dass diese Variablen eigentlich normale Wörter sind.
Gibt es vielleicht eine Funktion im TIA Portal um Variablen vom Typ DWord in den Typen Text (oder etwas vergleichbares) umzuwandeln?
Hätte jemand da eine Idee? :???:

Gruß
Chat

Step 7 Profinet Gerätename ändern - CPU geht auf Stop

$
0
0
Hi@all,

ich habe ein ProfiNet -Netzwerk erstellt und ein Gerät hinzugefügt. (GSD hab ich vorher installiert), IP vergeben, Eingangs- und Ausgangsbytes vergeben ... alles wunderbar. Daten kommen an und Gerät antwortet, funktioniert.
Ich wollte den Gerätenamen ändern, da ich nicht den standart-Namen verwenden möchte. Bei Hochladen geht die CPU auf Störung. Dann hab ich halt wieder den Standartnamen vergeben ... geht wieder.

Nun möchte ich aber ein zweites Gerät (Gleiche GSD, gleicher Typ) einbinden. Da muss ich ja nun einen anderen Gerätenamen vergeben. Beim Hochladen der Konfig geht CPU wieder auf Stop. (Andere IP und andere E/A Bytes hab ich vergeben)

Im Diagnosepuffer hab ich 80 Meldungen drin ...

hier ein Bsp:

"Teilprozessabbild-Nr.: 0
Anfangsadresse des betroffenen E/A-Bereichs: 17, Länge des Bereichs: 6
Angeforderter OB: Programmablauffehler-OB (OB 85)
Prioritätsklasse: 25
externer Fehler, kommendes Ereignis ...."

Hat vielleicht jemand ein Tipp woran das liegen könnte?

B&R Automation Studio -- Bit Status aus Word auslesen mit FOR Schleife

$
0
0
Hallo Ich würde gerne den Status von den einzelnen Bits mehrerer WORD Variablen auslesen. Kann mir da jemand helfen?


// check bit by bit for parallel start
// wRow0[0..4] OF WORD
// RowParaStart[0..15] of INT


// wäre schön gewesen aber er mag die variable nicht bei wRow0[0].i
(*FOR i := 0 TO 15 DO
IF wRow0[0].i THEN
RowParaStart[i] := i+1;
END_IF;
END_FOR;*)

IF wRow0[0].0 THEN
RowParaStart[0] := 1;
END_IF;
IF wRow0[0].1 THEN
RowParaStart[1] := 2;
END_IF;
IF wRow0[0].2 THEN
RowParaStart[2] := 3;
END_IF;
IF wRow0[0].3 THEN
RowParaStart[3] := 4;
END_IF;
IF wRow0[0].4 THEN
RowParaStart[4] := 5;
END_IF;
IF wRow0[0].5 THEN
RowParaStart[5] := 6;
END_IF;
IF wRow0[0].6 THEN
RowParaStart[6] := 7;
END_IF;
IF wRow0[0].7 THEN
RowParaStart[7] := 8;
END_IF;
IF wRow0[0].8 THEN
RowParaStart[8] := 9;
END_IF;
IF wRow0[0].9 THEN
RowParaStart[9] := 10;
END_IF;
IF wRow0[0].10 THEN
RowParaStart[10] := 11;
END_IF;
IF wRow0[0].11 THEN
RowParaStart[11] := 12;
END_IF;
IF wRow0[0].12 THEN
RowParaStart[12] := 13;
END_IF;
IF wRow0[0].13 THEN
RowParaStart[13] := 14;
END_IF;
IF wRow0[0].14 THEN
RowParaStart[14] := 15;
END_IF;
IF wRow0[0].15 THEN
RowParaStart[15] := 16;
END_IF;

END_IF;
Mit der FOR Schleife am Anfang hat es leider nicht geklappt ich kann da wohl keine Variable verwenden was ich etwas komisch finde.

Danke schon mal im voraus.

Omron G5 Motor - Abweichung Position Drehgeber zu reeller Position

$
0
0
Hallo zusammen,

ich habe aktuell ein Problem, welches ich mir einfach nicht erklärt bekomme.

Zur Situation:

Verwendet werden 2 Omron/Accurax G5 Motoren mit Absolutwertgeber, um 2 Transportbänder synchron
zueinander zu betreiben. Gesteuert wird das ganze über eine NJ501-1300 von Omron.
Nun ist allerdings aufgefallen, dass eins der Bänder langsam zurückfällt.
Genauer gesagt geht es um eine Positionsabweichung von ca 0,4 mm je gelaufene 500.000 mm

Über die Daten des Gebers ist die Abweichung nicht nachzuvollziehen. Die Ist-Position des
Gebers ist exakt dort, wo sie sein sollte.

Um mechanisch möglichst viele Faktoren auszuschließen habe ich daraufhin die
Position beim Überfahren der Referenznocke über einen längeren Zeitraum kontrolliert,
und dort konnte ich die Abweichung schließlich nachvollziehen. Die Geberposition
beim Überfahren der Nocke steigt immer weiter an. Allerdings nicht so schnell, das man
sagen könnte bei jeder Umdrehung wäre etwas zu sehen.

Zwischen Motor und Referenznocke ist lediglich ein Schneckengetriebe verbaut.
Soweit ich weiß, dürfte dort aber aufgrund des Formschlusses überhaupt kein Verlust (Schlupf)
auftreten, oder?

Die Impulszahlen und Übersetzungsverhältnisse in den Achsen- und Servotreibereinstellungen
sind überprüft - dort scheint so weit alles zu stimmen.

Wir haben anschließend mehrere Achsen an mehreren Anlagen auf diese Art kontrolliert, und konnten
immer ein langsames Verlaufen der Achsen beobachten - wenn auch nicht so stark wie oben beschrieben.

Hat jemand eine Idee, wie solche Abweichungen generell zustande kommen können?

Vielen Dank schon mal.

Grüße

Pierre

Firma die Schaltnetzteile repariert - Spezielle große

$
0
0
Hab von der Firma Lambda einige Netzteile des Typs "TX2500W48" hier liegen, die alle samt defeket sind.
Unsere "Standart-SPS-Reparaturklitsche" kann das Teil aber nicht reparieren.

Da das allerdings keine kleinen Dinger sind, sondern 48VDC mit 150A, geh ich da nicht mehr selbst dran :)

Hat hier jemand eine gute Anschrift, die sich das zutrauen?

MfG Fabsi

Fehler beim Einbinden der BUILDING_HVAC_03.lib

$
0
0
Hallo zusammen,

beim Versuch den Stromzähler mit dem Baustein FBImpulseCounter auszulesen, bekomme ich ständig zwei Fehler,
die für mich nichts mit meinem Programm zu tun haben, sondern ausschließlich mit der BUILDING_HVAC_03.lib.

Ein Screenshot hängt an.

Weiß hier jemand Rat?

Grüße
Angehängte Grafiken
Viewing all 49253 articles
Browse latest View live


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