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

TIA Gerade Funktion

$
0
0
Servus an alle,
weißt jemand wie man eine regressionsgerade y = ax + b
in SCL tia programmiert?
Viele Grüße

TIA HMI TP700 Comfort Meldungsfenster

$
0
0
Hallo Zusammen,

ich habe aktuell das Problem, wenn eine Meldung der Meldeklasse "Error" ansteht, dass das HMI zwei Meldefenster öffnet. Einmal das Fenster "Anstehende Meldungen" und einmal das Fenster
"Nicht quittierte Meldungen" (Weiß nicht mehr genau wie es geheißen hat).

Ich benötige allerdings nur das Fenster mit den "Anstehenden Meldungen".
Ich vermute man kann irgendwo einen Haken dafür setzen, dass nur die "Anstehenden Meldungen" angezeigt werden.

Leider habe ich nach längerer Suche nichts dazu gefunden und würde mich freuen wenn mir von euch einer einen Tipp dazu geben kann.

Viele Grüße und danke.

Jonas

VBA - Fehler beim Kompilieren, Variable nicht definiert

$
0
0
Hallo Community,

ich habe in einer Excel Datei einen Code der mir ermöglicht, dass per Rechtsklick auf einer Zelle ein Fenster öffnet. In diesem Fenster kann ich dann verschiedene Buttons anklicken und ein Kommentar zum heutigen Datum schreiben. Diese Funktion wollte ich jetzt in eine neue Datei übernehmen, jedoch steht beim Ausführen: Fehler beim Kompilieren Variable nicht definiert
Warum geht das nicht? Hier ist der Code:

Option Explicit

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
' bei Rechtsklick in weiß hinterlegte Felder soll sich das CoC_PopUp öffnen
Dim cIndex As Long
cIndex = Cells.Find(What:="First column", After:=Cells(6, 10), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Column
Dim rIndex As Long
rIndex = Cells.Find(What:="First column", After:=Cells(6, 10), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Row
If Target.Column >= cIndex And Target.Row > rIndex Then
Call CoC_PopUp.Show
Cancel = True
' das PopUp soll sich nur bei Zellen öffnen, deren Zeilenindex größer als 6 und Spaltenindex größer als 10 ist.
' hier soll sich nur das PopUp öffnen und nicht das bei Rechtsklick standardmäßige Kontextmenü
Else
CommandBars("Cell").Enabled = True
' bei allen anderen Zellen soll das normale Rechtsklick-Menü trotzdem möglich sein
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B4")) Is Nothing Then Calculate_MbS
End Sub

Danke für eure Hilfe!

TIA KnowHow Schutz TIA WINCC

$
0
0
Hallo,

ich habe kürzlich eine Merkwürdigkeit mit dem KnowHow Schutz von WINCC Skripten im TIA Portal entdeckt:
Ich habe mein selbst geschriebenes Skript mit einem Passwortschutz versehen. Soweit hat das auch funktioniert. Ich kann ohne Passwort nicht mehr mit dem TIA Portal zugreifen.
Allerdings habe ich auch einen Debugger installiert (Visual Studio 2017; Debugging mit Windows Script Host). Der Debugger lässt sich trotz aktiviertem KnowHow Schutz noch wie gewohnt bedienen und zeigt meinen Quellcode im Klartext an. Ich kann ihn auch noch bequem rauskopieren.

Mein System:
- TIA Portal V14 SP1 Update 6
- WinCC Advanced V14 SP1 Update 6

Keine Ahnung ob das jetzt ein Bug ist, oder ob ich blos irgendwo ein Häckchen vergessen habe.
Es wäre schön, wenn mir jemand weiterhelfen könnte.

Zur info (bevor mich jemand in der Luft zerreist :-)): Ich habe die selbe Frage auch im Support Forum von Siemens gestellt aber bis jetzt noch keine Antwort erhalten. Ich müsste aber das Skript schnell ausliefern, deswegen hoffe ich hier schnellere Hilfe zu bekommen.


Vielen Dank

Frequenzumformer mit Profibus Ansteuern

$
0
0
Hallo,
Ich habe ein KP300 Display, eine S71200 mit Profibus dp Modul, einen Bosch rexroth EFC3610 und einen Sourcetronic ST9100 FU.
Die Frequenzumformer habe ich bereits an die S7 mittel Profibus angebunden. Über das KP300 Sollen später die FU´s AN/AUS gestellt werden und die Frequenz soll variiert werden können.

Leider finde ich nicht wirklich eine Art "How to" im Internet. und ich bin ein ziemlicher Profibus Neuling.

Hat da vielleicht jemand eine grobe Anleitung welche Bausteine ich benötige um die FU`s ansteuern zu können?

Ich wäre für jede Hilfe sehr dankbar.

Mfg

Sarkermann

Step 7 PUT / GET, S7-300 zu mehreren S7-1200, Fehler Code dezimal 20

$
0
0
Hallo,
ich habe hier eine S7-300 mit einem CP343-1 über den ich mit PUT/GET insgesamt drei S7-1200 auslesen bzw. einen Sollwert schreiben möchte.


Ich habe dazu für jede Verbindung einen FB welcher insgesamt 15 GET und einen PUT Aufruf enthalten (Diese werden der Reihe nach abgearbeitet). Jede diese Verbindung funktioniert für sich alleine ohne Probleme. Der Plan war, dass ich die Daten von der ersten S7-1200 lesen und wenn das abgeschlossen ist die nächste beginne – also nie mehrere Verbindungen gleichzeitig. Da kommt jedoch dann der Fehler 20:


„Maximale Anzahl paralleler Aufträge/Instanzen ist überschritten
Die Instanzen wurden bei CPU-RUN überladen (STOP-RUN-Übergang der CPU oder des CP ist erforderlich.)
Ist beim Erstaufruf möglich“


Es funktioniert dann immer nur die Verbindung die ich als erster gestartet habe, die anderen beiden nicht. Nach einem Stopp/Start der CPU, kann ich jeweils eine der drei Verbindungen ohne Probleme aufrufen.


Gibt es da irgendeine unbekannte Grenze? Kann der CP343-1 nur eine Verbindung?


Bitte um Hilfe.

Lg Stefan

2018-10-10 at 13-08-24.jpg2018-10-10 at 10-53-19.jpg
Angehängte Grafiken

Step 7 Variablensimulation

$
0
0
Hallo alle zusammen,
ich versuche gerade eine Variablensimulation durchzuführen. Die Variablentabelle habe ich erfolgreich erstellt, aber beim Simulieren kann ich keine Variablen steuern. Hat jemand eine Idee, was ich so falsch mache. Danke!!!

Step 7 SCL-Code: Falsche Ausgabe bei der Simulation!!!

$
0
0
Hallo zusammen,
ich habe das untere SCL-Code geschrieben. Beim Simulieren ergibt mir Pumpe1_Ein 1 TRUE, wenn ich z.B Fuellstand1 = 11.0 setze und Valve1_Auf = FALSE. Ich habe erwartet, dass Pumpe1_Ein = FALSE für Valve1_Auf = FALSE. Was mache ich Falch???

CODE:
FUNCTION_BLOCK Wasserquelle
//Deklaration und Initialisierung
VAR_INPUT //Eingansparameter
//Start : BOOL := FALSE;
//Stop : BOOL := FALSE;
Fuellstand1 : REAL := 0.0;
Fuellstand2 : REAL := 0.0;
FuellDigit1 : REAL := 0.0;
FuellDigit2 : REAL := 0.0;
Valve1_Auf : BOOL := FALSE;
Valve2_Auf : BOOL := FALSE;
Valve3_Auf : BOOL := FALSE;
Valve4_Auf : BOOL := FALSE;


END_VAR

VAR //Durchgansparameter
Fullst_Voll_1 : BOOL := FALSE;
Fullst_Voll_2 : BOOL := FALSE;
Fullst_Leer_1 : BOOL := FALSE;
Fullst_Leer_2 : BOOL := FALSE;
Pumpe1_Ein : BOOL := FALSE;
Pumpe2_Ein : BOOL := FALSE;
Pumpe3_Ein : BOOL := FALSE;
Pumpe4_Ein : BOOL := FALSE;


END_VAR

VAR_OUTPUT//Ausgansparameter
Aufbe_laueft : BOOL := FALSE;
SB1_Befu : BOOL := FALSE;
SB2_Befu : BOOL := FALSE;
SB1_Ent : BOOL := FALSE;
SB2_Ent : BOOL := FALSE;
END_VAR

BEGIN

//Funktion Füllstand Voll
IF ABS(Fuellstand1) >=100 THEN
Fullst_Voll_1 := TRUE;
ELSE
Fullst_Voll_1 := FALSE;
END_IF;

//Funktion Pumpe 1 Ein
Pumpe1_Ein := Valve1_Auf AND (NOT Fullst_Voll_1);

//Funktion Befüllen
SB1_Befu := Pumpe1_Ein;

//Funktion Füllstand Leer 1
IF ABS(Fuellstand1) <=10 THEN
Fullst_Leer_1 := TRUE;
ELSE
Fullst_Leer_1 := FALSE;
END_IF;
//Funktion Pumpe 2 Ein
Pumpe2_Ein := Valve2_Auf AND (NOT Fullst_Leer_1);

//Funktion Entleeren
SB1_Ent := Pumpe2_Ein;

//Funktion Füllstand Voll 2
IF ABS(Fuellstand2) >=100 THEN
Fullst_Voll_2 := TRUE;
ELSE
Fullst_Voll_2 := FALSE;
END_IF;

//Funktion Pumpe 3 Ein
Pumpe3_Ein := Valve3_Auf AND (NOT Fullst_Voll_2);

//Funktion Befüllen
SB2_Befu := Pumpe3_Ein;

//Funktion Füllstand Leer 2
IF ABS(Fuellstand2) <=10 THEN
Fullst_Leer_2 := TRUE;
ELSE
Fullst_Leer_2 := FALSE;
END_IF;

//Funktion Pumpe 4 Ein
Pumpe4_Ein := Valve4_Auf AND (NOT Fullst_Leer_2);

//Funktion Entleeren
SB2_Ent := Pumpe4_Ein;

Aufbe_laueft := SB1_Ent OR SB2_Ent;

END_FUNCTION_BLOCK

ORGANIZATION_BLOCK OB1

VAR_TEMP
Info : ARRAY[0..19] OF BYTE;
END_VAR

BEGIN

SB1_Befu := Pumpe1_Ein;
SB2_Befu := Pumpe3_Ein;
SB1_Ent := Pumpe2_Ein;
SB2_Ent := Pumpe4_Ein;
Aufbe_laueft := SB1_Ent OR SB2_Ent;

END_ORGANIZATION_BLOCK

Hauptschalter in untergeordneten Schaltschränken

$
0
0
Hallo Zusammen,

ich stehe gerade vor folgender Fragestellung:

Bei einem unserer Kunden stehen mehrere identische Anlagen unterschiedlichen Baujahres. Jede diese Anlage ist für sich autark, also nicht i-wie von den anderen abhängig oder vernetzt.
Bei den Anlagen gibt es einen Hauptschrank in dem die Zuleitung ankommt. An diesem Schrank gibt es einen Hauptschalter in Rot-Gelb.
Von diesem Hauptschrank gibt es 12 Abgänge zu kleineren Schaltschränken mit dezentraler Peripherie (E/As aber auch zb FUs), diese sind räumlich verteilt und untereinander nicht einsehbar (über mehere Stockwerke, keine Sichtverbindung).

Ich wäre jetzt hingegangen und hätte jeden der Abgangsschränke mit einem Hauptschalter versehen, damit man zu Wartungs- und Reparaturarbeiten einzelne Bereiche ausschalten kann ohne gleich die ganze Anlage abschalten zu müssen. Der Betriebselektriker dieses Kunden meint aber, es müssten keine Hauptschalter verbaut werden...

1. Ist dieser Hauptschalter in den untergeordneten Schränken Pflicht? Wenn ja, aus welcher Norm kommt das?
2. Wenn ein Hauptschalter eingebaut wird, welche Farbe muss dieser haben?

Vielen Dank

WAGO PLC Simulator

$
0
0
Hello WAGO Team,
My questions are,

Qs 1) What are the WAGO PLC simulators we can use if in case we don´t have PLC in hardware form?
Qs 2) If I use PLC Simulator with my PC. Which operating system does it require "Linux" or "Windows" Operating System?
Qs 3) I wanted to use OPC UA communication protocol to communicate two WAGO PLCs. Does this thesis would be possible to be done by using WAGO PLC simulator or do I need a Hardware?
Qs 4) I am following the tutorial from Eclipse website that "How to build Forte For WAGO" (https://www.eclipse.org/4diac/en_help.php). Does this tutorial procedure is helpful with what I wanted to achieve in Questions 1 and Question 2?

Any help will be very appreciated
Thanks
Obaid

TIA WinCC V14 Adv TP1900 Panel VBS Datentypen definition

$
0
0
Hallo,
kann man irgendwie in einer VBS Variable einen Typ Definition vornehmen ?
Das Funktioniert nur wenn die PageNr eine HMI Variable vom Typ Int ist.
Im Skript kann ich aber keinen Datentyp festlegen.... und ich bekomme die meldung das der Typ nicht konvertiert werden konnte.

Gruß

Code:

PageNr = Left(ActiveScreenName,InStr(1,ActiveScreenName," ",vbBinaryCompare))
Select Case True
 Case PageNr >=100 And PageNr < 200
  GlobalDB_Visu_activeMainMenu = 1
 Case PageNr >=200 And PageNr < 300
  GlobalDB_Visu_activeMainMenu = 2
 Case PageNr >=300 And PageNr < 400
  GlobalDB_Visu_activeMainMenu = 3
 Case PageNr >=400 And PageNr < 400
  GlobalDB_Visu_activeMainMenu = 4
 Case PageNr >=500 And PageNr < 500
  GlobalDB_Visu_activeMainMenu = 5
 Case PageNr >=600 And PageNr < 600
  GlobalDB_Visu_activeMainMenu = 6
End Select

Erfahrungen mit Laptop Akku online kaufen?

$
0
0
Moin.


Den Akku von meinem Dell Latitude D830 hat mal wieder das zeitliche gesegnet. Ist schon der 2te - habe damals meinen ersten auf Kulanz nach ca. 15 Monaten getauscht bekommen. Aber der aktuelle hat auch keine 2 Jahre gehalten. Das interassante ist nur, dass die Akkus innerhalb von einem Monat von ca. 80% Leistung auf komplett 0 abfallen. Das hab ich noch bei keinem Laptop erlebt. Was macht Dell da fürn Scheiß?


Aber zum Thema:


Da Dell für einen neuen Akku je nach Kapazität zwischen 143 und 165 Eier verlangt :freak:, habe ich mich mal bei ebay umgeschaut.


Dort gibt es entsprechende Akkus schon ab 30€


https://www.ebay.de/itm/Laptop-Akku-....c100505.m3226


http://www.topakku.com/dell-latitude-d830.html


Jetzt würden mich von euch Erfahrungen interessieren. Hat einer von euch schon mal einen Akku von einem dieser Anbieter verbaut? Und was taugen die? Ich mein die Kosten gerade mal 20% von schrottigen Dell dingern.


Oder vielleicht hat jemand einen ganz anderen Tipp?


Danke im voraus

Bremswiderstand ermitteln

$
0
0
Hallo zusammen, wir möchten bei uns auf Arbeit unsere Kühlwasserpumpen vergrößern. Über die Pumpen ist soweit nicht viel bekannt, außer das sie jeweils 5,5 kW & 11 kW haben...
Insgesamt hat das Kühlwassersystem 2x 5,5kW und 2x 11kW Pumpen. Es werden später immer jeweils eine 5,5 kW & eine 11 kW Pumpe gleichzeitig laufen (die Pumpen wechseln sich Wochenweise ab).
Nun habe ich mir für die 5,5 kW Pumpen den MC07B0055-5A3-4-00 und für die 11 kW den MC07B0110-5A3-00 rausgesucht. Mir wurde empfohlen einen Bremswiderstand mit einzubauen. Könnte mir jemand sagen wie ich den richtigen finde bzw. helfen den richtigen zu ermitteln?

Mfg

TIA Rezepturverwaltung über mehrere Anlagen

$
0
0
Hallo

Wir haben bei uns in der Firma 3 Anlagentypen mit je etwa 10 Anlagen, bei denen die Rezeptur gelegentlich mal geändert werden muss. Die Rezeptur muss aber über jeden Anlagentyp Konsistent bleiben.
Jede Anlage hat ihr eigenes archiviertes Projekt (identisch bis auf IP-Adressen) und diese müssen jedes mal entpackt, geändert, hochgeladen und wieder verpackt werden, was relativ viel Arbeit bedeutet.
Dabei kann es auch sein, dass sich mal ein Fehler einschleicht und der Spass geht von vorne los.

Momentan bin ich mir am überlegen wie man das verbessern kann, a la OPC auf jeder der CPUs aktivieren und das Rezept einmal verändern und alle Anlagen eines Typen werden darüber "geupdatet".
Habt ihr in dieser Hinsicht schon Erfahrungen gemacht?

Gruss

TIA 1oo2 (2v2)-Auswertung mit Diskrepanzanalyse analoge Signale

$
0
0
Hallo Leute,

ich muss mich direkt über meinen ersten Post mit einem Problem an Euch wenden.

Ich bin Neueinsteiger was die Programmierung im Bereich Safety angeht und benötige in TIA eine Möglichkeit, Analoge Signale mit einer Diskrepanzzeitüberwachung auszustatten wie es auch für Digitale Signale mit dem vordefinierten Baustein EV1oo2DI möglich ist.

Gibt es einen etwaigen Baustein auch für Analoge Signale? Können ggf. auch Signale, welche auf den entsprechenden Kanälen liegen, über die Hardware-Eingänge überwacht werden?

Bzgl. der Analogwerte brauche ich ebenfalls ein Art Alarm, der anzeigt das sich der Analogwert (eines Kanals) aus einem vordefinierten Bereich bewegt (unabhängig von dem redundanten Kanal).

Da ich beruflich jetzt in dem Bereich tätig sein werde, werde ich auch in Zukunft versuchen mein erlerntes Know-How mit in das Forum einzubringen :)

Vielen Dank erstmal, bis dahin
Hayyel

Sonstiges Warum gibt es in Paket von Simatic Softnet IE V13SP2 ein Installations-DVD für STEP7

$
0
0
Warum gibt es in Paket für Simatic Softnet IE V13SP2 ein Installations-DVD für STEP7 PRO V13SP2 ?
Ist das der Ablöser von NCM ?
Wenn man es installiert zusammen mit der Lizenz für Simatic Net, hat man dann ein abgespeckte Version von STEP7 V13SP2, wie NCM ein abgespeckte Version von STEP7 Classic war ?

Ich wurde es gerne selber testen, aber ich habe schon STEP7 V13 PRO auf mein PC (obwohl es nicht funktioniert, aber das ist ein andere Thema).

Wireshark Ausgehende Datenpakete

$
0
0
Hallo,

mir ist seit längerer Zeit aufgefallen, dass bei Netzwerkaufzeichnungen mit Wireshark keine ausgehenden Pakete angezeigt werden. Ich kann also keine Pakete sehen, die von meinem Rechner versendet wurden.
Weder wenn ich nach der IP, noch nach der MAC-Adresse suche. Nur ankommende Pakete kann ich sehen.

Wenn ich also die gesamte Kommunikation sehen möchte, muss ich jedes Mal ein drittes Gerät ins Spiel bringen.

Ist das eine Einstellungssache (In Wireshark, seitens PCAP, oder evtl. in meiner Firewall)?
Oder ist das Grundsätzlich so und somit völlig normal?

Vielen Dank im Voraus

Step 7 Step 7 Problem mit Zähler

$
0
0
Hallo,
Ich programmiere im Moment eine Verladesteuerung wo ich über eine Visualisierung (Galileo 8 ) einen Wert vorgebe. (z.B. 22500 kg)
Dieser Wert wird dann in einen Datenbaustein meiner S7-300 geschrieben (Typ: INT). In den Datenbaustein wird mir der Wert 22500 angezeigt.
Der Datenbaustein Wert wird dann in einen Rückwärtszähler verarbeitet, aber bei den Rückwärtszähler wird mir dann der wert "C#57e4" angezeigt.
Wenn ich nun versuche den "Verladevorgang" zu starten und der Rückwärtszähler runter zählen soll geht die CPU auf SF.


Meine Frage ist was muss ich ändern damit der Zähler rückwärts zählt ?

TIA Neue Motoransteuerung mit Sinamics und MC Bausteinen

$
0
0
Hallo,

wir wollen in Zukunft auf Sinamics S120 Antriebe umsteigen und ich bereite mal eine Ansteuerung für die ganze Sache vor...

Hier hätte ich mir einen FB vorgestellt, der mehrere Motion Control Bausteine der Bibliothek beinhaltet.
Dieser könnte dann alle für uns relevanten Funktionen ausführen:
- Drehzahlvorgabe
- Positionieren
- Gleichlauf
- Referenzieren
- Momentenvorgabe

Würdet ihr es auch mit der Motion Control Bibliothek erstellen oder einen anderen Weg gehen (jedoch finde ich die MC ganz praktisch)?

Ansteuerung mal beiseite:
Ich steh gerade vor einem Problem in meinem oben genannten FB übergebe ich das Technologieobjekt beim Input mit "DB_ANY" ("TO_Axis").
Im DB gibt es ein Statusword, dieses empfängt alle möglichen Bits, die für mich interessant sind.
Jetzt würde ich gerne das StatusWord im Technologieobjekt DB in der Ansteuerung auf eine statische Struktur legen, damit man mit den einzelnen Variablen arbeiten kann.
Gibt es einen weg dass ich indirekt auf das Statusword zugreifen kann?
Da der Eingang ja ein "DB_ANY" ist, hat dieser ja keine Struktur. Somit kann ich auf "TO_Axis.Statusword" nicht zugreifen...

Gibt es hier eine Möglichkeit?
Ich wollte keinen zweiten Eingang, nur für das StatusWord hinzufügen, da der Baustein mit nur einem Eingang, weniger Fehleranfällig ist (und schöner).

ST Programmierung

$
0
0
Guten Tag,

Ich bin neu auf dem Gebiet der programmierung neu und muss für die Uni eine Bedingung in ST umsetzen. Dafür reichen jedoch meine programmierkenntnisse nicht aus.

Die Bedingung lautet:
0, u1=0&u2=1
y=1, u1=1&u2=0
2, sonst

Ich möchte von euch keine Lösung jedoch wäre eine erklärung und eventuell eine kleine einstiegshilfe sehr nett :)
Viewing all 49359 articles
Browse latest View live


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