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

TIA SIPLUS S7 1500cm PtP RS-232 BA (6AG1540-1AD00-7AA0) in TIA V15

$
0
0
Moin Moin

ich muss in einem neuen Projekt (CPU 1513-1 PN auf TIA V15) einen Kartenleser einfügen und gleich bei der Hardwareerstellung die erste Schwierigkeit. Das Bauteil wird aus dem Katalog nicht gefunden.

Hatte jemand schon damit zu tun oder weiß jemand wie ich umgehen kann?

Best Grüße

Flo !

WSCAD-Bikliothek für WAGO 750er I/O-System

$
0
0
Hallo Miteinander,

ich arbeite noch mit der alten WSCAD-Version 5.3 Basic Compact. Einen Pflegevertrag habe ich schon jahrelang nicht mehr. Das Bestandssystem reicht für meine Anforderung eigentlich aus, weil ich diese Software nur noch privat für Erweiterung bzw. Revision von Bestandsplänen/Anlagen nutze.

Jetzt möchte ich Endgültig meine „betagten“ S5-Baugruppen, nach der Heizperiode, erneuern. Einsetzen werde ich das WAGO 750er-I/O-System. Für den Anfang werde ich mir folgendes Starterset inkl. Software bestellen und mich in die Programmierung und Eigenheiten des WAGO-Systems einarbeiten: http://www.tpautomation.de/Automatis...00::32185.html


Das Hardware-Mengengerüst passend zum Bestand habe ich noch nicht ausgeplant. Jetzt zu meiner eigentlichen Frage, bevor ich mich auf die Stromlaufplanüberarbeitung "stürze":
Weiß jemand von Euch, wo ich die WAGO 750er-Bibliothek für mein 5.3er-WSCAD-System herunterladen bzw. beziehen kann, oder kann man das vergessen? Eine Alternative wäre sicherlich, eigene Symbole, der verwendetet Baugruppen zu erstellen. Das möchte ich mir Eigentlich ersparen.


Danke schon einmal im Voraus
Michael

Anfängerproblem / Konfiguration PFC200

$
0
0
Guten Tag.

Wir haben einen PFC200 mit mehreren AD / DA / Thermoelement / Schwingungsmessungs / einer RTC Klemme aufgebaut.
Scan hat funktioniert. WBM funktioniert. Firmware upgedatet. Programm übersetzt ohne Fehler.
Beim Verbinden über die Serviceschnittstelle kommt allerdings immer die Fehlermeldung "eingeschränkte Verbindung". Das Programm wird nicht auf den PFC geschrieben.

Was haben wir vergessen / falsch gemacht ?

WinCC Aufgabenplaner

$
0
0
Hallo zusammen,
setze neu (oder versuche es) den Aufgabenplaner auf einem TP1200 ein.
Ziel: Jeden Morgen um 6:00 verschiedene Archivdateien auf ein NAS verschieben.
Vorgang:
- StoppeArchivierung
- SchliesseAlleArchive
- ArchiviereProtokolldatei
- ÖffneAlleArchive
- StarteArchivierung
Das klappt aber nicht. Gemäss Help muss beim "SchliesseAlleArchive" ein Systemmeldung mit der Nummer "80019" abgewartet werden.
Wie realisiere ich das? Wohlgemerkt mit dem Aufgabenplaner. Script schreiben wäre eine Alternative...

Besten Dank für Euer Feedback

TIA Stringverarbeitung

$
0
0
Hab mich gerade gewundert.
Folgender Code zur Wandlung einer DINT 7-stellig in einen String.
Ich weiß, es gibt DINT_TO_STRING, aber das Plus soll nicht dargestellt werden und führende Nullen sollen dargestellt werden.
Also mach ich das "zu Fuß".


Code:

                #nMontagenummer        := #Montagenummer;                   
                #strMontagenummer      := '0000000';  //7 Leerzeichen für 7-stelligen String
                #strMontagenummer[7]    := #nMontagenummer MOD 10 + 48;
                #nMontagenummer        := #nMontagenummer / 10;
                #strMontagenummer[6]    := #nMontagenummer MOD 10 + 48;
                #nMontagenummer        := #nMontagenummer / 10;
                #strMontagenummer[5]    := #nMontagenummer MOD 10 + 48;
                #nMontagenummer        := #nMontagenummer / 10;
                #strMontagenummer[4]    := #nMontagenummer MOD 10 + 48;
                #nMontagenummer        := #nMontagenummer / 10;
                #strMontagenummer[3]    := #nMontagenummer MOD 10 + 48;
                #nMontagenummer        := #nMontagenummer / 10;
                #strMontagenummer[2]    := #nMontagenummer MOD 10 + 48;
                #nMontagenummer        := #nMontagenummer / 10;
                #strMontagenummer[1]    := #nMontagenummer MOD 10 + 48;
                #I := LEN(#strMontagenummer);

Der Code funktioniert so erst einmal.
Für einen Test habe ich folgende Zeile geändert:

#strMontagenummer := ''; //7 Leerzeichen für 7-stelligen String --> kein Leerzeichen, also ein String der die Länge 0 hat.

Überprüft man das direkt nach dieser Zeile, dann hat der String tatsächlich die Länge 0.
Stellt man #I := LEN(#strMontagenummer); as Ende, dann ist die Länge 1.

Nach meiner Auffassung dürfte das nicht so sein, denn ich schreibe ja direkt auf die Bytes des Strings, was die Länge des Strings, die im 2. Kopfbyte stehen sollte nicht beeinflußt.
Also müßte bei '' als Startstring, die Länge 0 bleiben.

Fehler von mir, Siemens-Bug oder Feature???

Dunkermotore BG45 PB mit TIA V15

$
0
0
Hallo,

ich habe da ein kleines Problem beim aufbau der Schnittstelle für den oben genannten Motor.

Einstellungen im Dunkermotor(Big Endian)

Big.JPG

Jetzt fehlt mir aber die Zuordnung in der SPS.
Aktuell würde ich es so machen.
bgout.JPG

Würde das so passen oder muss da noch was gedreht werden, da es ja Big Endian ist.
Alternativ so, dann müsste man es sich halt selber zusammen puzzeln.
array.JPG

Grüße
Angehängte Grafiken

Partner Freiberufler/Existenzgründung Münsterland oder Raum Köln

$
0
0
Guten Tag,

seit mehr als 5 Jahren bin ich selbstständig als freiberuflicher Ingenieur für Automatisierungstechnik. Besondere Zusatzfunktionen sind dabei die Themen Anlagensicherheit und Dokumentation.
In der aktuellen Konjunkturphase bin ich sehr gut ausgelastet.
Natürlich bleibt das nicht auf Dauer so.
Für die Zukunft möchte ich mich flexibler aufstellen um auch diverse Kleinaufträge abwickeln zu können.
Dafür suche ich einen Sozius (Freiberufler in ähnlicher Lage?) aus dem Münsterland oder dem Raum Köln zum Aufbau eines gemeinsamen Unternehmens.
Gemeinsam geht mehr!

Interesse?
https://inerax.de/kontakt/


Freundliche Grüße
Axel Erbe
Inerax

TIA Trigger bereitet Probleme

$
0
0
Hallo,

ich habe eine Variable, die ich nicht mehr benötige, gelöscht. Nach mehreren Stunden Arbeit habe ich dann mein Programm übersetzt. Nun meldet mir TIA folgenden Fehler: "Der Parameter einer Funktion ist bei Trigger Softkey_F1, Ereignis 'Taste drücken' nicht verfügbar. Das referenzierte Objekt existiert nicht."

Ich habe das neue Ereigniss (andere Variable) der Taste nun schon gelöscht. Aber trotz alledem bekomme ich immer noch diesen Fehler. Ich werde noch wahnsinnig.

Wer weiß hier Rat wo ich suchen könnte?

[TC3] RxBuffer bei EL6001 bleibt leer

$
0
0
Hallo,

ich sitze mal wieder an der SPS und habe ein Problem mit der EL6001 Klemme. Ich bin in der Lage Befehle mittels RS232 und einer COM Schnittstelle zu senden. Allerdings bleibt der Receive Buffer komplett leer. Ich sitze da jetzt schon laenger immer mal wieder dran und mir gehen die Loesungsansaetze aus. Da es meine erster Kommunikationsbaustein fuer RS232 ist liegt der Fehler bestimmt bei mir.

Das der Fehler im Code und nicht an nicht gesendeten daten liegt konnte ich unter anderem durch ein Oszilloskop bestaetigen auf dass ich die ASCI Antwort ablesen konnte.

Da das Gesamtsystem eine Zykluszeit von 10ms hat, wird die Kommunikation ueber einen zweiten schnelleren Task mit einer Zykluszeit von 1ms aufgerufen (BackgroundEL). BackgroundEL ist dabei komplett einem Beckhoff Beispiel entnommen.

Hier die drei relevanten aber teils gekürzte Codeteile die benutzt werden. Ziel ist es einen Befehl an den Kommunikationspartner zu schicken. Dieser sendet immer eine Antwort. Sobald die Antwort kommt ist der Sendeprozess erfolgreich abgeschlossen.

Code:


PROGRAM BackgroundEL
VAR
    (* background communication with the EL6001 terminal *)
    fbEL6001Ctrl        : SerialLineControl;
    bEL6001CtrlError    : BOOL;
    eEL6001CtrlErrorID    : ComError_t;
    (*    I/O variables for a EL6001 terminal*)
    stIn_EL6001 AT %I*    : EL6inData22B;    (* linked to the EL6001 in the TwinCAT System Manager *)
    stOut_EL6001 AT %Q*    : EL6outData22B;(* linked to the EL6001 in the TwinCAT System Manager *)
END_VAR


________________


(*
The SerialLineControl function block is supposed to be called in every PLC cycle.
It communicates with the serial line hardware device and transmits or receives data.
The SerialLineControl can be called in the standard task (e.g.for PcCOM port usage)
or in a separate fast task (e.g.for terminal usage) as well.
A fast separate task will be necessary at high baud rates or with KL6001 terminals
which have a small process image (3 or 5 data bytes only)
*)


(* background communication with the EL6001 terminal *)
fbEL6001Ctrl(    Mode        := SERIALLINEMODE_EL6_22B,
                pComIn        := ADR(stIn_EL6001),
                pComOut        := ADR(stOut_EL6001),
                SizeComIn    := SIZEOF(stIn_EL6001),
                Error=>    ,
                ErrorID=>    ,
                TxBuffer    := TxBufferEL,
                RxBuffer    := RxBufferEL );
               
IF fbEL6001Ctrl.Error THEN
    bEL6001CtrlError    := TRUE;
    eEL6001CtrlErrorID    := fbEL6001Ctrl.ErrorID;
END_IF


In der "normalen" Main Task geht die Kommunikation ueber den FB_SerialCom und soll jeweils dann abgeschlossen sein wenn eine Antwort des Kommunikationspartners kam.

Code:

FUNCTION_BLOCK FB_SerialCom
VAR_IN_OUT
    TxBuffer    : ComBuffer;
    RxBuffer    : ComBuffer;
END_VAR
VAR_OUTPUT
    nfinished    : UDINT;
    sStatus        : STRING;
END_VAR
VAR_INPUT
    aSendBytes    : ARRAY[0..MAX_STRING_LENGTH] OF BYTE;
    nLength        : UDINT;
END_VAR


VAR
....
END_VAR


// Method to data using the Serial Communication with EL6001


CASE nSwitchSend  OF
    0:   
    ... ein par abfragen ob ein neuer Befehl gesendet werden darf
    nSwitchSend        := 10;




    10:
    fbReceive(    Prefix            := '',
                Suffix        := '',
                Timeout        := T#10S,
                ReceivedString    := sReceivedString,
                RXbuffer        := RxBufferEL,
                StringReceived    => bStringReceived,
                Busy            => bReceiveBusy,
                Error            => ,
                RxTimeout        => bReceiveTimeout );
               
    IF fbReceive.Error <> COMERROR_NOERROR THEN
        eReceiveErrorID := fbReceive.Error;
    END_IF
   
    IF bStringReceived THEN
        nReceiveCounter    := nReceiveCounter + 1;
        sLastReceivedString := sReceivedString;
        bStringReceived    := 0;
    END_IF




    IF NOT bSent THEN
        fbSendData(    pSendData    := ADR(aSendBytes),
                    Length        := SIZEOF(aSendBytes),
                    Busy        => bSendBusy,
                    Error        => eSendErrorID,
                    TXbuffer    := TxBuffer);
        IF fbSendData.Error <> COMERROR_NOERROR THEN // if the error message is not "No Error" write error ID
            eSendErrorID        := fbSend.Error;
            bError                :=TRUE;
        END_IF
        IF NOT fbSendData.Busy THEN
            bSent            := TRUE;
            nSendCounter    := nSendCounter+1;
        END_IF;
    END_IF;


    IF (bSent AND nSendCounter=nReceiveCounter AND nSendCounter>nLastSendCounter) THEN
        nSwitchSend            := 20;
    END_IF
   
    20: (*Reset sent function and prepare for next send command*)
    nLastSendCounter:= nSendCounter;
    bSent            := FALSE;
    nSwitchSend        := 30


    30:
    bBusy            := FALSE;
    nfinished        := 1;
    nSwitchSend        := 0;
END_CASE

Aufgeruffen wird die Instanz vom SerialCom baustein wie folgt:

Code:


....
    nSwitchInitialise    := 10;
    10:
    aSendBytes[0]    := 16#01;            //<PRE>
    aSendBytes[1]    := F_ToASC('1');    //<ADR>        '1'
    aSendBytes[2]    := F_ToASC('R');    //<CODE1>    'R'
    aSendBytes[3]    := F_ToASC('Z');    //<CODE2>    'Z'
    aSendBytes[4]    := F_ToASC('3');    //<CODE2>    '3'
    aSendBytes[5]    := F_ToASC('0');    //<CODE2>    '0'
   
    LRC:= 16#00;
    FOR i:=1 TO 5 BY 1 DO
        LRC:= LRC XOR aSendBytes[i];
    END_FOR
    LRC:= LRC OR 16#80;
   
    aSendBytes[6]:= LRC;        //<LRC>
    aSendBytes[7]:= 16#0D;        //<POST>    'CR'
    fbCOMDispenser(    aSendBytes    := aSendBytes,
                    nLength        := 8,
                    TxBuffer    := TxBufferEL,
                    RxBuffer    := RxBufferEL,
                    nfinished    => nSent);
    IF nSent=1 THEN
        nSwitchInitialise:=999;
    END_IF

Aktuell habe ich keine Ahnung wie ich das Problem weiter eingrenze kann. Wie würdet ihr vorgehen? Oder gibt es direkt einen sichtbaren Fehler meiner Herangehensweise?

Ethernet (TCP/IP) -> USB

$
0
0
Hallo Forumgemeinschaft,

für unseren Kunden bin ich aktuell auf der Suche nach einem Gerät mit folgender Funktionalität:

SPS -> Ethernet(Idealerweise TCP/IP) -> "Gesuchtes Gerät" -> USB -> PC

Aktuell sind an verschiedenen PC's Handscanner verschiedener Marken per USB an den PC angeschlossen. Sobald diese etwas scannen wird der gelesene Inhalt wie per Tastatureingabe in ein Programm an die aktuelle Cursorposition übertragen.

Diese Scanner sollen nun durch eine Schnittstelle zur SPS abgelöst werden, da die gescannten Daten in der SPS schon zur Verfügung stehen.

Die Idee wäre ein Gerät zu finden, welches für den PC eine Tastatur emuliert. Sobald dieses Gerät per z.B. TCP/IP Telegramm eine entsprechende Zeichenkette erhält, soll diese als "Tastatureingabe" an den PC gesendet werden.

Leider bin ich jetzt mit Hilfe der Suchfunktion im Forum und google nicht fündig geworden.

Danke.

Zugriff auf ea abbild eines ethercat slaves

$
0
0
Hallo,
3s macht ja selbst irgendwie einen Zugriff auf das ea Abbild, wenn man softmotion nutzt bei einem EtherCat Slave.
Gibt es eine Möglichkeit, dass man bspw. Eine EtherCat Eingangsseite in der Hardware einfügt und im Programm direkt über den EtherCat Slave auf dessen ea Abbild zugreifen kann? Also keine Variablen oder Adressen nutzt?
Gruß

Ein netter Link

TIA Regleraufschwingen bei Sollwertannäherung

$
0
0
Hi Leute,

ich programmiere derzeit eine Regelung für eine Hochdruckpumpe. Ich habe die Reglerparameter für den Anfang so gewählt, dass der Sollwert ganz langsam angefahren wird. Das geschieht auch zunächst und der Regler regelt auch entsprechend langsam hoch. Kurz vor Erreichen des Sollwerts, fängt der Regler und damit auch das Istsignal dann aber an sich gewaltig Aufzuschwingen. Ich habe bisher noch keine Lösung dazu gefunden. Vielleicht hat ja von euch jemand einen Einfall dazu.

Das Reglerverhalten (blau-Sollwert, orange-Istwert) und die Parametrierung sieht wie folgt aus:
Zusammenschnitt SPS Forum.jpg
Angehängte Grafiken

Done Bit MC_MoveAbsolute

$
0
0
Hallo zusammen,

In einem Projekt benutzen wir die Funktion MC_MoveAbsolute von der Firma Beckhoff. Wir haben das Problem dass der Done Bit mit einer Verspätung kommt (300-400 msec).
Kennt jemand das Problem und kann jemand erklären wann wird Done Bit gesetzt? Muss man irgendwelche Parameter in NC oder Drive Manager setzen?
Danke für die Antwort.
Wir benutzen TwinCat 3 neueste Version und Servo Antriebe von der Firma Beckhoff.

Gruss,

Leo

F_Eingang unsicher brücken

$
0
0
Moin Zusammen,

mein Titel ist etwas provokant gewählt, trifft es aber im Kern.

Folgende Situation: Laut der C-Norm EN528 für Regalbediengeräte muss ich die Mittelstellung des Lastaufnahmemittels (5.6.5 c) Gabeln nicht in Mitte) nach PLd abfragen.
Jetzt ist es natürlich so, dass bei Lastaufnahme / -abgabe, die Gabel bewusst die Mittelstellung verlassen muss. In dieser Situation muss ich die Abfrage, ab die Gabel in Mitte steht irgendwie überbrücken.

Jetzt stellt sich mir die Frage, ob diese Überbrückung auch nach PLd ausgeführt sein muss? Nach meiner Auffassung ja, da, wenn diese Überbrückung ausfällt (bzw. fälschlicherweise aktiv ist) die Sicherheit ja nicht mehr gegeben ist.
Allerdings kann ich es nicht umsetzen, da diese Überbrückung eine Prozessinformation ist, die ich nicht sicher gestalten kann.

IdR habe ich mit dieser Problematik immer zu kämpfen, wenn Prozessensorik sicher ausgeführt ist. Da die Prozesssensorik ja im Betrieb den Zustand wechselt und es dann eine Überbrückung geben muss, damit es nicht zu einer Störung kommt. Bei NotHalt-Tastern sieht das ja ganz anders aus, da die immer den gleichen Zustand haben müssen. Wenn sich der Zustand ändert: Störung => NotHalt!

Vielleicht mache ich mir auch einfach zu viel Gedanken?!

VG

MFreiberger

Ihre SIMATIC Schulungstermine für 2019

$
0
0
Wir bieten Ihnen in vielen Themengebieten rund um SIMATIC im Jahr 2019 über 500 Schulungstermine an, um Sie bestmöglich weiterzubilden.

Auch nach über 35 Jahren Erfahrung im Bereich Schulungen freuen wir uns jedes Mal wieder über neue Teilnehmer und das wachsende Interesse unserer Kunden. Profitieren Sie von unseren Trainern mit langjähriger Praxiserfahrung, die in Schulungen mit maximal 8 Teilnehmern Ihr umfangreiches Wissen vermitteln.

Sie finden uns in Deutschland und Österreich an 13 Standorten oder wir kommen zu einer Inhouse Schulung direkt zu Ihnen ins Unternehmen.

Alles was Sie tun müssen, ist den passenden Termin auf unserer Website zu finden. Unser Vertriebsteam steht Ihnen bei der Suche auch gerne tatkräftig zur Seite.

Wir freuen uns auf Sie!

Ein Anruf genügt, wir beraten Sie gerne!

Ihr Grollmus Team

TIA Wincc Adv. LInt Kommastelle

$
0
0
Hi

TIA V14SP1
Comfortpanel TP700

Warum wird bei einem Ein-/Ausgabefeld die Dezimalstelle Konfiguration ausgegraut?
Wie kann ich trotzdem eine Dezimalverschiebung machen?

Gruss blimaa

Sonstiges C7-626 Projektierungsproblem mit ProTool

$
0
0
Hallo zusammen,

vermutlich ist es ganz einfach aber ich komme einfach nicht drauf.

Ich projektiere gerade ein C7-626 mit ProTool ( 626-1DG03-0AE3 + ProTool Pro CS V6.0 SP3 )
Beim generieren kommt immer der Fehler "E2287 Funktion "SPS-Systembildanwahl" : Diese Funktion muss parametriert werden"

Es gibt keine Info´s in der Hilfe, in den PDF´s oder sonst wo. Im Projekt befinden sich die Standard Systembilder.
Ich habe einmal einen Aufruf aller System-Bilder auf verschiedene Tasten im Startbild gelegt, die Meldung bleibt.

Unter Funktionen => Objektauswahl gibt es unter "alle Funktionen" keine SPS-Systembildanwahl oder irgendwas, was ähnlich klingt.

C7.JPGC7_2.JPG

Vielleicht hat jemand einen Rat
Angehängte Grafiken

Beitrag: "Verhindert Trump Milliarden-Auftrag für Siemens?"

$
0
0
Beitrag: "Verhindert Trump Milliarden-Auftrag für Siemens?"

https://www.elektroniknet.de/elektro...ns-158780.html

Zitat:

So berichtete die Financial Times, die USA versuchten mit massivem Druck auf die irakische Regierung, den Deal für General Electric zu sichern.
Die USA wollten unter anderem Waffen liefern.
Was sicherlich nicht zur langfristigen Stabilität des Landes/der Region beiträgt.

TIA Problem: Steuerungsauftrag 51 (Bildwechsel) TIA + KTP

$
0
0
Hallo zusammen,

ich habe versucht einen Bildwechsel mittels Steuerungsauftrag 51 zu programmieren. Wie in der Anleitung, erst die Parameter übergeben, dann den Steuerungsauftrag von 0 nach 51 gesetzt. Der Bildwechsel wird zwar daraufhin korrekt ausgeführt, aber ich erhalte eine sich permanent wiederholdende Fehlermeldung auf dem Display (siehe Anhang). Selbst wenn ich den Steuerungsauftrag wieder zurücksetzte (0) poppt die Fehlermeldung permanent wieder auf (Ca im 5s Takt). Weiß jemand Rat?

Vielen Dank schonmal soweit :)


WhatsApp Image 2018-10-19 at 14.41.11.jpgWhatsApp Image 2018-10-19 at 14.41.11(1).jpgWhatsApp Image 2018-10-19 at 14.41.10.jpg1.PNG2.PNG
Viewing all 49762 articles
Browse latest View live


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