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

Sonstiges Softing OPC Konfigurator Problem

$
0
0
Hallo Leute,

ich habe das problem beim Softing OPC Server Konfigurator (das wo man die Tags einstellt)
die Configuration zu SICHERN.

Ich habe eine kaputte Configuration 1.
Dann habe ich eine als Configuration 2 hin bekommen. Wie weiss ich nicht mehr.

Nun ist auch die kaputt (Fehlermeldung bein Server-START).

Wie bekommt man alle Configuration en wieder komplett raus ?

Das mit dem wiederherstellen funktioniert auch nicht. Eine als Configuration 3 gesicherte erscheit nacher als Configuration 2.

TIA RDREC lässt sich nicht beliebig aufrufen?

$
0
0
Hallo Leute,

ich schreibe ein Programm, bei dem ich an einem Profinet-Teilnehmer verschiedene Parameter abfragen möchte. Dazu verwende ich die Funktion RDREC. Um die jeweiligen Parameter nacheinander abzufragen wird die fallende Flanke des vorherigen REQ-Eingangs überwacht und damit der REQ-Eingang des folgenden NW ausgelöst. Mein Problem ist, dass die RDREC-Funktion nach dem 3. Aufruf nicht mehr funktioniert. Ich denke ich mache etwas falsch, aber ich komme nicht drauf.

Code:


NW1

      U    %M0.0
      FP    %M2.2
      =    %M3.5


      CALL  RDREC , %DB100
        ptr_type:=Any
        REQ    :=%M3.5
        ID    :=%DB1.DBD420
        INDEX  :=%DB1.DBW52
        MLEN  :=4
        VALID  :=
        BUSY  :=
        ERROR  :=
        STATUS :=
        LEN    :=
        RECORD :=P#DB1.DBX132.0




      CALL  BLKMOV
        blk_type:=Any
        SRCBLK  :=P#DB1.DBX132.0
        RET_VAL :=#RET_VAL_1
        DSTBLK  :=%DB1.DBD252


NW2

      U    %M3.5
      FN    %M2.3
      =    %M3.6


      CALL  RDREC , %DB100
        ptr_type:=Any
        REQ    :=%M3.6
        ID    :=%DB1.DBD420
        INDEX  :=%DB1.DBW50
        MLEN  :=4
        VALID  :=
        BUSY  :=
        ERROR  :=
        STATUS :=
        LEN    :=
        RECORD :=P#DB1.DBX128.0


      CALL  BLKMOV
        blk_type:=Any
        SRCBLK  :=P#DB1.DBX128.0
        RET_VAL :=#RET_VAL_1
        DSTBLK  :=%DB1.DBD256



NW3

      U    %M3.6
      FN    %M2.4
      =    %M3.7


      CALL  RDREC , %DB100
        ptr_type:=Any
        REQ    :=%M3.7
        ID    :=%DB1.DBD420
        INDEX  :=%DB1.DBW54
        MLEN  :=4
        VALID  :=
        BUSY  :=
        ERROR  :=
        STATUS :=
        LEN    :=
        RECORD :=P#DB1.DBX136.0


      CALL  BLKMOV
        blk_type:=Any
        SRCBLK  :=P#DB1.DBX136.0
        RET_VAL :=#RET_VAL_1
        DSTBLK  :=%DB1.DBD260

NW4

      U    %M3.7
      FN    %M2.5
      =    %M4.0






      CALL  RDREC , %DB100
        ptr_type:=Any
        REQ    :=%M4.0
        ID    :=%DB1.DBD420
        INDEX  :=%DB1.DBW56
        MLEN  :=2
        VALID  :=
        BUSY  :=
        ERROR  :=
        STATUS :=
        LEN    :=
        RECORD :=P#DB1.DBX140.0


      CALL  BLKMOV
        blk_type:=Any
        SRCBLK  :=P#DB1.DBX140.0
        RET_VAL :=#RET_VAL_1
        DSTBLK  :=%DB1.DBW264

NW5

    U    %M4.0
      FN    %M2.6
      =    %M4.1






      CALL  RDREC , %DB100
        ptr_type:=Any
        REQ    :=%M4.1
        ID    :=%DB1.DBD420
        INDEX  :=%DB1.DBW0
        MLEN  :=2
        VALID  :=
        BUSY  :=
        ERROR  :=
        STATUS :=
        LEN    :=
        RECORD :=P#DB1.DBX70.0


      CALL  BLKMOV
        blk_type:=Any
        SRCBLK  :=P#DB1.DBX70.0
        RET_VAL :=#RET_VAL_1
        DSTBLK  :=%DB1.DBW194

Freue mich über Hilfestellung.

Bit von Flanke auf Globale Variable

$
0
0
Hallo,

ich programmiere in CS 2.3.
Ich habe eine Frage bzgl. Globaler Variablen.

Wenn ich jetzt im Task 1 ein Bit vom R_TRIG.Q auf eine Globale Variable verweise und diese Globale Variable im Task 2 verarbeiten will, klappt das nicht.
Der Grund ist, dass eine Flanke nur einen Zyklus lang True liefert und die Globalen Variablen erst im darauf folgenden Zyklus aktualisiert werden.
Soweit ist jetzt mein Wissensstand.

Das Problem löse ich zurzeit indem ich die Flanke mit einer Ausschaltverzögerung versehe z.B. 200ms. Dann funktioniert das.

Wie macht Ihr sowas? Gibt es bessere Ansätze oder mache ich grundlegend was falsch?

Danke.

WinCC WinCC V7.4 Upd 2 RedundancyControl meldet Fehler

$
0
0
Servus zusammen,

ich habe ein Problem mit zwei über RedundancyControl gekoppelten Servern.

Server 1 = Standard Master
Server1_Konfig.JPG
Server 2 = Slave
Server2_Konfig.JPG

Jetzt fällt Server 1 in regelmäßigen Zeitabständen mit Fehler 1012363 aus. Wie finde ich heraus wieso er das macht, was die Ursache hierfür ist.
Fehlermeldung.JPG

Nach einem Neustart des Servers 1, ist alles wieder gut für ein paar Stunden.

Grüße Stephan
Angehängte Grafiken

TIA Probleme in PLCSIM (Kein Projekt, keine SIM Tabellen)

$
0
0
Hallo,

ich mache gerade meine ersten Schritte im TIA und habe eine kleine Steuerung entworfen, die ich natürlich auch entsprechend testen möchte. Von alten Versionen von TIA/S7 kenne ich es, dass man sich die einzelnen E/A Bytes anzeigen lassen und steuern kann. Das dies nicht mehr genau so funktioniert hat mir die Suche schon verraten. Allerdings sollte mir TIA ja die Steuerung und die Baugruppen etc. anzeigen, so dass ich in den SIM-Tabellen meine Eingänge steuern und die Ausgänge beobachten kann. Leider klappt das bei mir nicht. In der Projektansicht von PLCSIM wird mir nichts angezeigt.

Aber:

Wenn ich das Projekt in die PLCSIM lade und die CPU starte kann ich den Zustand des Programmes beobachten und auch über die Steuern Funktion mein Programm beeinflussen (Dieses funktioniert aber bei Eingängen ja nur sehr beschränkt, da deren Zustand wieder überschrieben wird.) Ein Bild meiner "leeren" PLCSIM Projektansicht anbei. Ebenso ein Bild wo man sieht, dass wenn die CPU läuft ein beobachten möglich ist, also das Projekt auf der simulierten CPU laufen muss.

Hat jemand Ideen wo mein Fehler/Problem liegen könnte.

Ich hoffe ich habe die Lösung des Problems nicht in einem anderen Thread übersehen und danke im Voraus für jede Hilfe.

Beobachten.JPGPLCSIM .JPG
Angehängte Grafiken

TIA Berechnung der HW-IO-Adresse möglich?

$
0
0
Hallo,

ich hab ein etwas komplizierteres Problem. Vielleicht kann mir jemand dabei helfen.

Ich habe ein Gateway, welches einige CAN-Bus-Teilnehmer auf Profinet umsetzt. Das Gateway hängt dann via Profinet an einer S7-1500er.
Die Anzahl der CAN-Teilnehmer und der Name des Profinet-Gateway variiert von Anwendung zu Anwendung.
Ich würde jetzt gerne einen Baustein schreiben, der mir von allen CAN-Teilnehmern automatisiert den Zustand ausliest.

Problem sind dabei die HW-SubModule-Adressen der einzelnen Slaves.
Diese werden von TIA beim Anlagen der Hardware-Konfig automatisch festgelegt, ich hab keine Möglichkeit diese zu beeinflussen.
Um den Status automatisiert von jedem Teilnehmer auszulesen, müsste ich sie aber für jeden Teilnehmer wissen.
Ok, ich könnte sie natürlich für alle Teilnehmer von außen an den Baustein übergeben. Das ist mir für 50 Teilnehmer aber zu aufwendig und widerspricht meinem Gedanken eines automatisierten Bausteins.

Das einzige was ich immer weiß, ist die Bezeichnung der Submodule in der Tabelle Systemkonstanten. Diese sind logisch immer gleich aufgebaut (siehe Bild). Erst kommt der Profinet-Name des Gateway (den könnte ich von außen an den Baustein übergeben), anschließend dann "~Slave_xx" für den xx. CAN-Teilnehmer.

Aber wie bekomme ich aus dem Namen dann den Wert der Konstante.
Gibt es eine Funktion, die mir aus der Bezeichnung als String den Wert der Konstante ausgibt?

Vielen Dank schonmal für Eure Hilfe.

Unbenannt.PNG
Angehängte Grafiken

SICK DL50HI als Streckengeber an MoviDriveMDX61b

$
0
0
Hallo,

ich nehme gerade ein X/Z-Portal mit zwei Movidrive MDX61b in Betrieb. Der Fahrwagen der X-Achse ist schlupfbehaftet, deshalb Lagererfassung mit SICK DL50Hi als Streckengeber.
Der Sensor ist über eine DEU21B-Absoultwertkarte per SSI angeschlossen. Werte kommen rein, sehe ich unter Inbetriebnahme.
Ich nutze Erweiterte Buspositionierung"per EThercat mit Twincat2. Ohne Streckengeber funktioniert der Tipp-Betrieb über SPS und Visu super.

1. Laut Doku Buspoitionsierung Seite 34 ist bei Externen Absolutgeber an Strecke bei „Quelle Istposition“ Absolutgeber einzustellen, immer wenn ich das tue und Inbetriebnahme beende erhalte ich Fehler 35 (falsche Betriebsart) Fehlerbehandlung zu Fehler 35 laut Doku durchgeführt kann Fehler nicht resetten!?

2. Stelle ich bei „Quelle Istposition“ Ext Geber(X14) ein, kann ich im Tipp-Betrieb langsam verfahren sobald ich schneller fahre kommt „F42-Schleppfehler“ auch wenn ich Positionsüberwachung bei Geber auf „Aus“ stelle und Schleppfehlerfenster größer mache.
Die Skalierungen für Weg stammen aus der Inbetriebnahme des Steckengebers, dort kann ich ja die Skalierung ausmessen lassen, die Korrekten Sensorwerte werden hier angezeigt, somit gehe ich davon aus das sie SSI-Schnittstelle ok ist.
Skalierung für die Geschwindigkeit habe ich von Hand berechnet:


Zähler: iGetriebe x iVorgelege x 60=18,55*60=1113

Nenner: π*dAntriebsrad=3,14x60mm=189

Irgendwas ist noch falsch, wie gehe ich weiter vor? (hab keine Erfahrung - ist mein erstes Movi-Drive-Projket - war beim Grundlehrgang)

Danke dust2

Gefahr vermeiden mit Industrial Security!

$
0
0
Schulung Industrial Security und Fernwartung

Lernen Sie, Ihre industriellen Anlagen zu schützen und gegen Zugriff von außen oder Manipulationen zu sichern. Wir bringen Ihnen Themen wie Verschlüsselung, Firewall oder VPN nahe
.
BESCHREIBUNG

ZIELGRUPPE

Programmierer, Inbetriebnahmepersonal, Servicepersonal, Technisches Vertriebspersonal, Information Security Officers, Netzwerkplaner

VORAUSSETZUNGEN

Grundkenntnisse der Automatisierungstechnik Grundkenntnisse Netzwerktechnik
SOFTWARE / GERÄTE

TIA Portal, S7-1500, S7-300, SCALANCE S, Hellmolz Wall IE, Penetration Tool, Wireshark, SINEMA Remote Connect, versiondog

TERMINE

WIR SIND FÜR SIE DA
Persönliche Beratung steht bei Grollmus an erster Stelle – und kann bereits in diesem Moment beginnen.

Kontakt aufnehmen

Step 7 Produktionszähler Soll-Stück Schichtabhängig

$
0
0
Hallo miteinander,

ich habe von meinem Chef eine Aufgabe gestellt bekommen.
Ich soll bei einer vorhandenen Anlage einen zusätzlichen Stückzähler einbauen, der alle 17 Sekunden (Soll-Taktzeit) raufzählt. Soweit so gut.
Das bekomme ich als blutiger Anfänger auch noch hin. :D

Mein Problem besteht darin, dass der Zähler jede Schicht zurückgesetzt werden soll (6:00 Uhr, 14:00 Uhr, 22:00 Uhr) und ich nicht weiß, wie ich das programmieren sollte.

Wie kann ich das ganze angehen ?

Verbaut ist eine S7-300 / CPU 315-2 PN/DP /V3.2

Danke im Voraus

Mfg
Thomas

Gesendet von meinem SM-N960F mit Tapatalk

Tabelle in Datei speichern

$
0
0
Hallo,

ich steh mal wieder auf dem Schlauch und sehe vor lauter Bäumen den Wald nicht mehr.

Ich habe ein Array mit 10 Strings je Arrayindex. Diesen kann ich ja auch schön in einer Tabelle in der Visu darstellen und bearbeiten etc. Nun soll diese Tabelle allerdings auch in eine Datei (z.B. CSV) geschrieben werden. Das Schreiben des Array bekomme ich ja auch hin mit der Funktion "WagoAppFileDir.FbWriteWholeFile_cpt". Allerdings sind dann alle Einträge hintereinander und nicht in Zeilen und Spalten aufgeteilt, so dass man die mit z.B. Excel wieder einlesen kann. Hänge ich am letzten String der Zeile ein CR ('$R') an, dann kann ich die Zeilen in Excel sehen, allerdings wird dann auch ein Text mit eingefügt an der Stelle des CR.

Hat da jemand einen Tip für mich?

Visu+ 2.52 mit Beckhoff CX5120 TwinCat 3 Variablen lesen / schreiben

$
0
0
Hallo,
versuche gerade eine Anlage mit einer CX5120 ( TwinCat v3.1.4018.4 ) mit Phoenix Contact Visu+ 2.52 zu visualisieren.

Kommunikationstreiber TwinCat angelegt und Verbindungstest und erfolgreich durchgeführt

Habe eine Variable angelegt GVL.Visu.BOOL ( BOOL ) und GVL.EA_Display ( WORD )

Folgendes Problem habe ich :

Ich kann beide Variablen aus der CX5120 lesen , aber nicht in die CX5120 schreiben.

GVL.Visu.BOOL setze in der CX True, Schalter reagiert ( Farbe von rot auf Grün ( Hintergrundfarbe)), setze in der Visu false ( Taste drücken ), Hintergrundfarbe wechselt auf rot, keine Reaktion in der CX ( Wert bleibt True ) !!

GVL.EA_Display schreibe in der CX eine 33, sehe die 33 im EA Display in der Visu, kann sie ändern in der Visu auf 11 , aber keine Änderung in der CX, bleibt 33 !!

Kennt jemand das Problem und wie ist die Lösung ... :confused::confused::confused:
Oder habe ich was falsch gemacht ..... :confused::confused::confused:



Danke im voraus ......

Raspberry mit mehreren Beckhoff EK1100/BK1150

$
0
0
Hallo,

ist es möglich an einem Raspberry mehrere EK1100 oder BK1150 zu betreiben?

Grüße
Florian

Programmabarbeitung bei einem Funktionsaufruf

$
0
0
Hallo Forum-Kollegen,

ich hätte mal eine Frage zum Programmverhalten bei einem Funktionsaufruf in CODESYS.

Es geht um folgenden Konstrukt (Beispiel):

diResult := FC_Beispiel(xx);

Gemeint ist hier ein Aufruf einer Funktion, welche als Rückgabewert e.g. ein DINT liefert und diesen in einer weiteren Variable (diResult) speichert.

Meine Frage:

Wie wird nun dieser Funktionsaufruf intern abgearbeitet sobald der Progammcursor in diese Zeile springt?

a) Wird die Funktion "FC_Beispiel(xx)" aufgerufen und ausgeführt bis diese beendet ist oder eine Rücksprung (Return) erfolgt?

b) Wird die Funktion aufgerufen und nebenbei abgearbeitet, der Cursor springt aber in der Bearbeitung des Programms weiter?

Meiner Meinung wird die Funktion solange ausgeführt bis diese beendet oder abgebrochen wird. Bei aktivem WatchDog sollte dies innerhalb eines Taskzyklus erfolgen, da ja ansonsten dieser zuschlägt.

Kann mich aber auch irren. Was ist hier richtig?

Über rasche Antworten würde ich mich sehr freuen. Schon mal vielen Dank!

TIA TIA IF then in einer Zeile

$
0
0
Moin,

neben TIA programmiere ich noch immer in Pascal. Hier habe ich mir angewöhnt IF..then..;End_IF; in einer Zeile zu schreiben. TIA macht da immer mindestens 3 Zeilen. Kann man das einstellen?

TIA TIA : Erweiterter Strukturierter Text

$
0
0
In Codesys kann man ExST nutzen. Da gibt es dann wieder setzen und rücksetzen mit einem Befehl und ohne IF..Then. Ich habe gelesen, dass man das bei TIA auch zuschalten kann. Ich kann aber nichts dergleichen bei TIA finden. Hat jemand Ahnung?

Sistema- Zweikanalige Umsetzung mit einer Schnittstelle

$
0
0
Hallo zusammen,
ich bin seit wenigen Wochen Sistema-Anwender und gerade dabei für eine Anlage die wir an der Arbeit bauen, ein Performance Level zu berechnen.
Bei einer Sicherheitsfunktion bin ich jedoch unsicher wie sie formal in Sistema umzusetzen ist.
Wir haben einen Sensor den wir über eine Ex-Schnittstelle an eine fehlersichere S7 schicken, welche ein Signal an Aktoren ausgibt.
Mein Problem befindet sich sensorseitig, die CPU ist laut Siemens auf PL e einzustufen, unsere Ex-Schnittstelle wurde nach Herstellerangabe so verdrahtet das sie ebenfalls PL e (SIL 3) erreicht.
Die Schnittstelle überwacht sich dabei selbst sowie den Sensor zweikanalig und ebenfalls die Kabel auf Leitungsfehler. Meine Frage ist nun inwiefern ich ein solches System in Sistema eintrage, theoretisch hätte ich zwei Kanäle bin aber der Meinung in den ifa-Kochbüchern gelesen zu haben(oder ifa-Report) das ich nicht in zwei Kanälen das selbe Bauteil eintragen sollte. Würde mich freuen wenn jemand Licht in die Sache bringen könnte.

LG

Industrie-Router als Edge Gateway

$
0
0
Mit Edge Computing realisieren Sie innovative und sichere IoT-Anwendungen. mbEdge basiert auf anerkannten Standards wie Docker-Container, Node-RED, MQTT, OPC-UA und Modbus-TCP. Das System unterstützt die gängigen Cloud-Plattformen.

Besuchen Sie MB connect line auf der all about automation Leipzig: Stand A-404

Rokey_mitEDGE-Grafik_150.jpg
Angehängte Grafiken

TIA Panel friert ein auch Spannungswegnahme nützt nichts

$
0
0
Hallo,

ich betreibe zur Zeit ein Siemens Touch Panel 12 Zoll Comfort (TP1200 Comfort).
In letzter Zeit hängt es sich jedoch fast täglich auf. Es hilft auch nicht es Spannungslos zu machen. Das einzige was hilft ist das Programm wieder zu überspielen.

Hatte schon mal jemand das Problem ?

Danke schon mal im Voraus

Fb2PointSingleRoomController der WagoAppBuildingHVAC: struct Parameter übergeben

$
0
0
Liebe Forumgemeinde,

ich verwende e!Cockpit und eine Wago SPS und möchte eine Raumtemperaturregelung machen. Das scheint sogar zu funktionieren (warte auf kältere Tage ;-) ), jedoch gibt es Parameter der Funktion, welche über ein struct konfiguriert werden, was bei mir noch nicht funktioniert.

wago1.jpg

Ich möchte die typConfigParameters konfigurieren.

Dazu habe ich eine struct-Datei erstellt:
Code:

TYPE heatingSettings :
STRUCT
    rOffsetStandbyHeating : REAL := 2.0; // Defines the offset to the base reference value (heating) in the Stand-by mode. [K]
    rOffsetStandbyCooling : REAL := 2.0;
    rOffsetNightHeating : REAL := 4.0; // Defines the offset to the reference value (heating) in the Stand-by mode during night-time temperature reduction. [K]
    rOffsetNightCooling : REAL := 4.0;
    rDeadZone : REAL := 2.0; // Defines the dead zone between heating and cooling. The selected size of this dead zone must not be too small in order to avoid a permanent changing back and forth between heating and cooling. [K]
    rHysteresis : REAL := 0.3; // Defines the switching hysteresis for the 2-point controller. A small hysteresis provokes a frequent switching of the valve voltage, but small set value differences. A large hysteresis causes large deviations from the set value, but only leads to occasional switching. [K]
    rOffset : REAL := 0.0; // Defines measured value compensation for the room temperature sensor.
END_STRUCT
END_TYPE

und diese in der Datei für den Raum deklariert und verwendet:
Code:

VAR
    typConfigParameters: heatingSettings;
END_VAR

...

TemperatureRegulator(
    rRoomTemperature:= rActualTemp,
    rSetpointCorrection:= (rSetTemp - rActualTemp),
    xComfortStandby:= xComfortStandby,
    xNightMode:= xNightMode,
    xWindowContact:= xWindowContactFrostProtection,
    xDewpoint:= FALSE,
    rReferenceComfort:= 21.0,
    typConfigParameters:= typConfigParameters,
    rActualTemperature=> ,
    xHeating=> xHeatingOn,
    xCooling=> ,
    rComfortHeating=> ,
    rComfortCooling=> ,
    rStandbyHeating=> ,
    rStandbyCooling=> ,
    rNightHeating=> ,
    rNightCooling=> ,
    rSetpointFrost=> ,
    rSetpointHeat=> ,
    xComfort=> ,
    xStandby=> ,
    xNight=> ,
    xFrost_Heat=> );

Leider kommt die Fehlermeldung, dass heatingSettings nicht konvertiert werden kann.
Hat jemand einene Rat für mich?
Vielen Dank!
Angehängte Grafiken

TIA HMI BÃ*ldbaustein ebenen

$
0
0
Hallo, gibt es im Tia V15.1 eine Funktion bei der man bei eienm HMI Bildbaustein mit 1 Taster ebenen ein- bzw ausblenden kann?

DANKE
Viewing all 50803 articles
Browse latest View live