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

Step 7 Alternative zu DP-Koppler

$
0
0
Hallo,

gibt es eine ander Möglichkeit al DP-Koppler, welche mehr Datenübertragung zu bieten hat?

verbaut wäre

Netz 1 ELAU Steuerung Anlage
Netz 2 S7 CPU Datenabgriff vom Netzwerk über CP

der Koppler stößt hier bzgl. der Datenmenge schon an seine Grenzen, hat da jemand ne Idee wie man das anders lösen könnte?
ein Einbau von 2 Kopplern wäre hier meines erachtens nur eine Umgehung und hier nur absolute Alternativlösung

mfg
Jürgen

Step 7 s7 Anfänger code erweitert aber falsch

$
0
0
moin allerseits

Anfänger mal wieder hier.
Kann mir evtl jemand erklären wieso die Erweiterung des Codes das Ganze dazu bringt das nichts mehr ordentlich funktioniert?

Kurze Erklärung.
3 Silos die man anwählen kann
2 Taster , einer zum Auffüllen einer zum Entleeren
Resetmöglichkeit
Das ganze ist noch im aufbau und es fehlen noch einige Funktionen aber das sollte erstmal für das Problem nicht hinderlich sein.

Verändert habe ich nur den Teil bei Silo 2
Da habe ich einen Rückwärtszähler mit der Taste 2 einbauen wollen. Mit sprüngen. Also Taster 1 springe zu Vorwärtszählen, Taster 2 springe zu Rückwärts
Vorher war der Aufbau ( silo 1 silo 2 silo 3) identisch und alles ging wie gewollt.

Offensichtlich hat es was mit den Sprungpunkten zu tun bzw mit dem zyklischen Ablauf der sich gerade selber beisst...aber ich seh das nicht..
Code:

// es darf nur ein Silo angewählt werden
// sind mehr als eins oder keins angewählt passiert nix

      U    "U09SpID".SchulA9T19.Sig    // Anwahl Silo 1
      UN    "U09SpID".SchulA9T20.Sig
      UN    "U09SpID".SchulA9T21.Sig
      =    "U09SeqD".Seq.User.Bit1
      SPB  sil1                        // springe Silo 1

      UN    "U09SpID".SchulA9T19.Sig
      U    "U09SpID".SchulA9T20.Sig    // Anwahl Silo 2
      UN    "U09SpID".SchulA9T21.Sig
      =    "U09SeqD".Seq.User.Bit2
      SPB  sil2                        // springe Silo 2

      UN    "U09SpID".SchulA9T19.Sig
      UN    "U09SpID".SchulA9T20.Sig
      U    "U09SpID".SchulA9T21.Sig    // Anwahl Silo 3
      =    "U09SeqD".Seq.User.Bit3
      SPB  sil3                        // springe Silo 3

// Silo 1
sil1: SET 
// Zähler vorwärts Silo 1
      U    "U09SeqD".Seq.User.Bit1    // nötig da sonst mehrere MW´s mitzählen
      U    "U09SpID".SchulA9T17.Sig
      UN    "U09SeqD".Seq.User.Bit4
      SPBN  e01

      L    MW    10
      L    1
      +I   
      T    MW    10

e01:  U    "U09SpID".SchulA9T17.Sig    // nötig damit er nur eine Operation durchführt, sonst zählt er wie ein Wilder
      =    "U09SeqD".Seq.User.Bit4

// Silo 2
sil2: SET 
// Auswahl vorwärts oder rückwärts zählen
      U    "U09SeqD".Seq.User.Bit2    // nötig da sonst mehrere MW´s mitzählen
      U    "U09SpID".SchulA9T17.Sig    // Taster vorwärtszählen
      SPB  vzs2                        // springe zu Vorwärtszähler Silo 2

      U    "U09SeqD".Seq.User.Bit2    // nötig da sonst mehrere MW´s mitzählen
      U    "U09SpID".SchulA9T18.Sig    // Taster rückwärtszählen
      SPB  rzs2                        // springe zu Rückwärtszähler Silo 2

// Zähler vorwärts Silo 2
vzs2: UN    "U09SeqD".Seq.User.Bit5
      SPBN  e02

      L    MW    20
      L    1
      +I   
      T    MW    20

e02:  U    "U09SpID".SchulA9T17.Sig    // nötig damit er nur eine Operation durchführt, sonst zählt er wie ein Wilder
      =    "U09SeqD".Seq.User.Bit5


// Zähler rückwärts Silo 2
rzs2: UN    "U09SeqD".Seq.User.Bit8
      SPBN  e05

      L    MW    20
      L    1
      -I   
      T    MW    20

e05:  U    "U09SpID".SchulA9T18.Sig    // nötig damit er nur eine Operation durchführt, sonst zählt er wie ein Wilder
      =    "U09SeqD".Seq.User.Bit8



// Silo 3
sil3: SET 
// Zähler vorwärts Silo 3
      U    "U09SeqD".Seq.User.Bit3    // nötig da sonst mehrere MW´s mitzählen
      U    "U09SpID".SchulA9T17.Sig
      UN    "U09SeqD".Seq.User.Bit6
      SPBN  e03

      L    MW    30
      L    1
      +I   
      T    MW    30

e03:  U    "U09SpID".SchulA9T17.Sig    // nötig damit er nur eine Operation durchführt, sonst zählt er wie ein Wilder
      =    "U09SeqD".Seq.User.Bit6

// reset Silo 1 2 oder 3
      U    "U09SpID".SchulA9T17.Sig    // sig 17 und sig 18 gleichzeitig = reset
      U    "U09SpID".SchulA9T18.Sig
      U    "U09SeqD".Seq.User.Bit1    // Silozuordnung (Silo 1)
      SPB  res1                        //Sprung zu Reset Silo 1

      U    "U09SpID".SchulA9T17.Sig    // sig 17 und sig 18 gleichzeitig = reset
      U    "U09SpID".SchulA9T18.Sig
      U    "U09SeqD".Seq.User.Bit2    // Silozuordnung (Silo 2)
      SPB  res2                        // Sprung zu Reset Silo 2

      U    "U09SpID".SchulA9T17.Sig    // sig 17 und sig 18 gleichzeitig = reset
      U    "U09SpID".SchulA9T18.Sig
      U    "U09SeqD".Seq.User.Bit3    // Silozuordnung (Silo 3)
      SPB  res3                        // Sprung zu Reset Silo 3

      SPA  ende
// Rücksetzten der jeweiligen Silos auf Stand null
res1: SET 
      L    0
      T    MW    10
      SPB  ende

res2: SET 
      L    0
      T    MW    20
      SPB  ende

res3: SET 
      L    0
      T    MW    30
      SPB  ende

ende: CLR 
      =    "U09ActD".SchulA9L17.ACo
      =    "U09ActD".SchulA9L18.ACo
      =    "U09ActD".SchulA9L19.ACo

Sonstiges Modbus RTU + Linux Rpi

$
0
0
Hallo
Ich bin auf der suche nach einer Visu die Modbus RTU kann und auf Linux Raspberry pi läuft. Wenn möglich sollte das ganze open source sein und im Stil vom Twincat usw programiert werden können.. Gibts sowas?

Struct to Byte

$
0
0
Hello

I have a struct fx:
TYPE
stTest :
STRUCT
BoolTest : bool;
ByteTest : byte;
IntTest : int;

END_STRUCT;
END_TYPE

I want to trasfer it over Profinet IO (ILC131) to a Siemens Master.
I Found the function MEMCPY, and in the Help file it says; "For this type of data management it is recommended to use the data types STRUCT and ARRAY"
But i can't connect the stTest Struct to the FB?

I'm a little lost now...


- Emil

ET200S Tausch

$
0
0
Hallo,

Ein Kunde von unserer Firma hatte letzten einen kompletten Profibus Ausfall. Es war folgende Einheit verbaut 6ES07-151 1AA05 0AB0. In der Hardware Konfiguration war jedoch 6ES07-151 1AA06 0AB0 drinnen. Kann es sein das dadurch der Profibusfehler entstanden ist? Der Kunde hat nämlich die einheit gewechselt und nicht darauf geachtet ob diese mit der anderen Übereinstimmt.

Zyklusneustart TwinCat3

$
0
0
Hallo zusammen,

ich bin ziemlich neu in der Thematik CoDeSys bzw. dem Beckhoff TwinCat3 Programm und hänge gerade an einem Baustein, der einen Fertigungsschritt nach dessen Beendigung neu startet, so dass durchgehen nach einlegend es Fertigungsstückes produziert werden kann ohne extra auf einen Startknopf zu drücken.

Habt Ihr da Tipps zur optimalen Lösung?

Danke und Grüße

Laborgeräte

$
0
0
Hey Leute,

meine Laborgeräte geben nach und nach den Geist auf und ich muss mir neue besorgen.
habe mich schon etwas informiert, mir wurde aber empfohlen hier nochmal nachzufragen..
Hier: https://www.winlab.de/ gibt es fast alles was ich benötige, würde mich aber freuen wenn mir jemand helfen kann..
Fg an alle:cool:

TIA Unterschied zwischen Siemens Basic und Comfort Panels

$
0
0
Hallo zusammen,

ich möchte für ein Automatisierungsprojekt ein Siemens HMI-Panel einsetzten.

Nun geht es um die Auswahl zwischen Comfort oder Basic Panel (2. Generation)

Kann mir jemand die wichtigsten Unterschiede zwischen den beiden Ausführungen nennen?

Ich konnte bis jetzt nur finden, dass sie mit den unterschiedlichen Softwareversionen von TIA/WIN CC programmierbar sind.

Danke

Analogwert kontinuierlich einlesen und kontinuierlich speichern (Codesys 2.3)

$
0
0
Hallo zusammen,

ich will gerne wissen, wie ich die Analogwerte kontinierlich in einer Schleife abspeichern kann:

Die Werte bekomme ich ständig druch eine PT100-Modul von Festo. Das Problem ist wie gesagt ich weiß nicht genau wie ich die alle in einer Schleife speichern soll.

ich habe eine Idee. dass ich 2 Arrays erstelle, wenn ein von Arrays voll mit Werte wird, dann startet das andere Array nachgefüllt zu werden, und gleichzeitig das erste Array (Werte)wird irgendwo gespeichert.

Sensor: PT100
SPS: CECX-X_M1.

kann jemand mir Bescheid geben, ob das gute Idee ist?
was ist die Alternative für dieses Problem?
Da ich Anfänder in dieser Bereich bin, kann Jemand mir CODE schicken.

ich bedanke mich bei euch .
Ara

WinCC Flex Anstehende Alarme in Textfile exportieren und im Netzwerk ablegen

$
0
0
Hallo,

ich wende mich an euch mit einem speziellem Wunsch eines Kunden. :icon_confused:
Und zwar wird bei ihm Steuerungsseitig umgerüstet.

CPU: eine 300er (mehr weiß ich auch nicht, tut aber auch nichts zur Sache)
Panel: KTP1000 Basic PN

Und zwar möchte der Kunde, dass jedes Mal, wenn ein Alarm - in der Laufzeit - aufläuft, ein Textfile (z. B. CSV)
generiert wird, der den Alarm enthält (wahrscheinlich mit Datum, Uhrzeit, Alarmtext usw...).

1. Weiß jemand, wie und ob man überhaupt ein Textfile der anstehenden Alarme erzeugen kann?
Wenn ja, wie Projektiere ich das im WinCC flexible?

2. Vermute ich mal, dass mir der Ablageort der Files schwierigkeiten machen könnte. Auf dem Panel ablegen -
weiß ich nicht ob möglich. Auf einem Netzwerkpfad ablegen - weiß ich nicht ob machbar. Falls ja,
würde das auch über ein geroutetes Netzwerk gehen? Denn in diesem SPS-Netzwerk hängt nur die SPS und die paar
Panels, nichts weiter.

Kann da jemand weiterhelfen? Hat jemand Ideen (alternativen)?

Ich wäre euch sehr dankbar dafür!:s1:

Engel Antriebe laufen unrund, Drehzahl lässt sich nicht mehr Einstellen (CANopen)

$
0
0
Hallo zusammen,

ich bin seit 1,5 Wochen in einer neuen Firma und stehe direkt vor einem großen Problem...

Wir haben in der Anlage 3 Engel Gleichstrom Antriebe (HBI2660-2C; 150W), welche über CANopen laufen. Gesteuert wird das ganze über eine AB CompactLogix L30ER und einen Anybus Gateway.
Die Antriebe laufen zu 30% nur nach einem Neustart der Anlage problemlos wieder an. Meistens muss das Gateway neu konfiguriert, bis sie wieder laufen. Seit heute lässt sich aber auch die Drehzahl über das Panel nicht mehr einstellen und die Motoren laufen unrund, quasie wie falsch parametriert?! (Von einer Umdrehung dreht er ca. die ersten 270° normal und dann die restlichen 90° deutlich schneller)....

Ich hoffe ihr könnt dem Berufseinsteiger helfen! :)

Danke im voraus!

Hennessy

Suche - Jemand der eine s7-1200 für mich updatet

$
0
0
Moin,

ich steh vor dem Problem eine S7-1212 AC/DC/RLY updaten zu müssen.

Aktuell Version 1.0.1 und soll jetzt auf 2.2.0. Ich will mir aber nicht für einmal so ne MMC kaufen.

Würde das jemand für mich gegen ein Obulus Übernehmen?

Ich komm aus dem Raum Stuttgart.

Grüße

Step 7 Pointer für DB erstellen von Multiinstanz

$
0
0
Hallo,

ich versuche einen aus einem Multiinstanz DB 30 einzelne Bits in einem anderen DB 503 zu verschieben.
Das herauslesen funktioniert, die CPU meldet jedoch einen internen Fehler bei den Pointer-Zeilen (Adressüberschreitung).
Das laden in den 503 funktioniert gar nicht.

Wie würde es richtiger ausschauen? Bin nicht so der Profi wie ihr seht ;)

Code:

//--- Pointing first ZM instance
L P#0.0
T #ZM_Adr

L 220                                      //Start adresse
T #ZM_AdrDest


L 64
NEXT: T #ZM_loop
//*** Starting Loop *********

AUF DB 30                                  // Activ DB Read

L #ZM_Adr
//---------------------------
LAR1

L DBB [AR1,P#25.0]                // Load DBB 25 Status
T #ZM_BZM1                          // xxxx xxxx
L B#16#1                              // 0000 0001
UW                                        // ---- ---x 25.0 frg
T #ZM_BZM2                        // 0000 000x

L #ZM_BZM1                        // xxxx xxxx
L B#16#80                          // 1000 0000
UW                                        // x--- ---- 25.7 SEV
SRW 5                                    // ---- -x--
L #ZM_BZM2                    // 0000 000x
OW
T #ZM_BZM2                        // 0000 0x0x

L DBB [AR1,P#24.0]                // Load DBB 24 Status
T #ZM_BZM1                      // xxxx xxxx
L B#16#1                            // 0000 0001
UW                                  // ---- ---x 24.0 SER
SLW 1                                // ---- --x-
L #ZM_BZM2                        // 0000 0x0x
OW
T #ZM_BZM2                        // 0000 0xxx

L #ZM_BZM1                          // xxxx xxxx
L B#16#8                          // 0000 1000
UW                                  // ---- x--- 24.3 STO
L #ZM_BZM2                      // 0000 0xxx
OW
T #ZM_BZM2                      // 0000 xxxx

//--- Pointing next ZM instance

L P#26.0                              // Offset
L #ZM_Adr                          // Adr ZM act
+D                                    // Adr +Offset
T #ZM_Adr                            //=Adr ZM next


AUF DB 504                            //Transfer to DB
L #ZM_BZM2
T DBB [#ZM_AdrDest]
L P#1.0
L #ZM_AdrDest
+I


// Oder:
// L #ZM_AdrDest
// LAR1
// AUF DB 504
// L #ZM_BZM2
// T DBB [AR1,P#1.0]



//*** Ending Loop ************
L #ZM_loop
LOOP NEXT


Wäre wirklich dankbar wenn ihr weiter helfen könntet

WinCC Meldungen über Rohwert triggern

$
0
0
Hallo Experten,
ich möchte eine Array Variable als Triggervariable nutzen, so es auch bei Flexible geht.

Ich habe es über die Rohvariable versucht, aber ohne Erfolg...

Konfiguration:
WinCC 7.4
Steuerung S7-300 PN/DP

Ich möchte nur ungern für die Meldungen die Variablen opfern...

Twincat 3 wird nicht in deutsch installiert

$
0
0
Moin Zusammen,

ich versuche verzweifelt Twincat 3 in deutsch zu installieren doch es klappt nicht.
Das Visual Studio 2013 ist in der Prof. Version in deutsch schon vorhanden.
Twincat 3 bleibt aber beim englisch. Hat da noch einer ne´Idee?

Gruß in der Morgenstunde
Otto

Änderung Pointeradresse in CoDeSys

$
0
0
Hallo zusammen,

wer kann mir bei einem Problem weiterhelfen? Ich programmiere erst seit kurzem mit der Software Codesys und habe mit indirekter Adressierung bisher nur sehr wenig zu tun gehabt. Ich möchte mit einem Pointer in einem Array[0 .. 95] verschiedene Werte ablegen. Dazu muß ich die Adresse des Pointers ändern, um die verschiedenen Werte auf die verschiedenen Array-Plätze abzulegen. Ansonsten schreibe ich immer auf den gleichen Platz. Hat hierzu jemand ein Anwendungsbeispiel?? Wie kann ich das realisieren?? Als Programmiersprache wäre mir das ganze in AWL oder ST lieb. Danke schon mal im voraus. :grin:

Sonos Steuerung

$
0
0
Hallo liebes Forum,

da ich die PFC200 als Haussteuerung verwende und einige Sonos Geräte habe, wollte ich fragen ob es schon jemand geschafft hat, diese von der Wago aus zu steuern...
Ich weiß das es dazu bereits einige Themen gibt, die dann teilweise auf irgendwelche PHP Scripte von IP-Symcon aufsetzen.
Da diese Themen jedoch schon einige Jahre als sind, hoffe ich das vielleicht der ein oder andere bereits eine leichtere Lösung hat ?
Es geht weniger darum, ein gewisses Lied abzuspielen oder so, Play, Pause, Lauter, Leiser würde mir eigentlich schon reichen... evtl. noch die Auswahl des Radiosenders :rolleyes:

Vielen Dank schonmal,
Gruß Eloee

Profinet GSDML Datei Export

$
0
0
Hallo zusammen,

ich habe mit einer IM151-8 ein I-Device erzeugt und die GSDML-Datei in CoDeSys V3.5SP9 in ein Raspberry Projekt eingefügt. Das ganze hat sehr gut funktioniert und ich kann Daten über Profinet zwischen zwei CPU's austauschen.

Meine Frage ist:

Ist es möglich mit CoDeSys V3.5SP9 eine Gerätesystemdatei zu erzeugen (z.B. 2xIB 2xQB) und in der Hardwareconfig der IM 151-8 einzufügen?
Die Datei die mit dem Befehl PLCopenXML exportieren erzeugt wird kann in der Hardwarekonfig der IM 151-8 nicht als GSD importiert werden.

mfG
Mario

TIA nochmal zu Wortgrenzen in TIA

$
0
0
Ich weiß, wir hatten schon einmal ein ähnliches Thema.

Folgendes Problem:
Ein Gerät hat eine Profinetschnittstelle:


Schnappschuss (2016-08-11 15.00.53).jpg

Wie man sieht, landet alles ab Ergebnis Code auf ungeraden Adressen.
Nun will ich das Ganze an einen FB übergeben und auch so schön struckturiert nutzen. Also packe ich das in einen Datentyp:

Schnappschuss (2016-08-11 15.01.43).jpg

Wenn ich den Datentyp nun z.Bsp. in Eine Symboltabelle einfüge und auf die richtige Adresse lege, passiert folgendes:

Schnappschuss (2016-08-11 15.02.01).jpg

Ergebnis Code sollte auf 4003 liegen, wird aber auf 4004 abgebildest. Das setzt sich nach unten hin fort.
Soso, die auf ungeraden Adressen liegenden Daten landen nun auf geraden Adressen, weil TIA einfach ein "Müllbyte" einschiebt. Das ist natürlich falsch, ich würde nur Datenschrott einlesen.

Kennt jeder Abhilfe oder muß ich tatsächlich die Daten einzeln deklarieren (Real auf ungerade Adresse geht einzeln), bzw. die Daten umkopieren.
Beides eher sehr unschön.

Wer ist da nun der Schuldige? Siemens oder der Hersteller des externen Gerätes?

WinCC Flex Ktp 600

$
0
0
Ich kann die Bilder nicht auf KTP 600 laden.
Wenn ich transferiere klicke passiert auf dem KTP 600 nichts.
Ich habe auf dem KTP 600 immer noch altes Beispiel was ich vor 3-4 Monaten gemacht habe.
An was kann es liegen ?

- S7-300
- KTP 600 Basic Mono PN
- WinCC Flex 2008

Danke!
Viewing all 49307 articles
Browse latest View live


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