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

WinCC Bildbaustein mit Anzeige von dynamisierten Texten aus einer Textliste

$
0
0
Moin moin allerseits,

ich versuche gerade einen Bildbaustein mit dynamisierten Textausgaben zu erstellen .......


genutzte Software:
TIA V15.1
WinCC Advanced V15.1


1. ich wollte in einem Bildbaustein 4 digitale Eingänge dokumentieren, den Zustand (Schaltzustand, externe Variable, funktioniert auch)
die Adresse, sowie den Adresskommentar. .


2. ich habe 2 Textlisten angelegt (0001.jpg),
die Adresse (zB. E0.0), wie auch den Kommentar (zB. RESERVE) sind in je einer Liste abgelegt, der Wert für die jeweilige Adresse
findet sich in der Kommentarliste mit dem zugehörigen Text wieder.


3. ich habe einen Bildbaustein erstellt, mit symbolischen EA-Feldern, in diesen sollen die Texte aus den Textlisten angezeigt werden


3.1 in der ersten Zeile (0002.jpg) habe ich den Prozesswert verschaltet um ihn von "aussen" zu belegen, dies funktioniert, der Wert "111-DI-DO-ListenWert"
ruft den passenden Eintrag aus der Textliste auf und zeigt ihn im symbolischen EA auch an.




Nachteil: für jeden Aufruf muss ich eine Variable definieren ... will ich nicht




3.2 in der 2. Zeile (0003.jpg) habe ich den Prozesswert nicht verschaltet ... ich bin davon ausgegangen das der "Statische Wert"
(wenn von aussen keine Verschaltung vorhanden ist) den Eintragswet aus der Liste definiert,
wird der Bildbaustein so aufgerufen wird zumindest der 1. Eintrag aus den Textlisten auch angezeigt (0010.jpg).
In der Simulation (0020.jpg) wird dann allerdings für die Zeilen 2 (Werteintrag 10001) und 3 (Werteintrag 0) nichts angezeigt.






Nun die Frage, ist es nicht möglich diese Einträge statisch aufzurufen?
Oder ist die Annahme das der Aufruf über einen Statischen Wert funktioniert falsch?

Fragen über Fragen .... hat jemand eine Idee?





0020.JPG0010.JPG0003.JPG0002.JPG0001.JPG
Angehängte Grafiken

Step 7 DB Ausgänge kein Oder möglich ?

$
0
0
die beiden Ausgänge "band" der beiden DB sollen verodert werden, das funktioniert aber nicht, ich kann keine Verbindung ziehen.
Woran kann das liegen ?

db10.JPG
Angehängte Grafiken

Spion Alexa -

[User des Jahres] Wahl 2018

$
0
0
Es ist mal wieder so weit, wir schreiten zur Wahl des User 2018.

[Copy and Paste]

Wie im jeden Jahr, ist dies eine offene Wahl wo für die Nomenierten
nur eine Stimme abgegeben werden kann. Der Gewinner erhält für ein
Jahr einen Wanderpokal, wo sein Name Eingraviert wird (bei Harald
wird es wahrscheinlich nur ein Strich, in der Strichliste)

In diesen Jahr gibt es wieder Sachpreise für die Plätze 1, 2, 3 und zusätzlich
für einen der Abstimmenden, dieser wird per Los ermittelt (ausgenommen sind die drei
Erstplatzierten, Mods und Admins).

Die Sachpreise werden vom SPS-Forum gestiftet und sind Amazon
Gutscheine im Wert von „weiß ich noch nicht“, da muss ich nochmal Rücksprache
halten und werde es bekannt geben.

Da wir laut der Nominierung wieder 11 Plätze brauchen, werde ich mich von der
Liste streichen, ich kann sowieso nichts gewinnen, trotzdem vielen Dank an die, die
mich Nominiert haben, das tut den Ego gut.

Ich wünsche viel Spaß und in diesen Jahr zusätzlich viel Glück, es gibt ja eine
Kleinigkeit zu gewinnen.

[/Copy and Paste]



Nominierung 2018



Bisherigen User des Jahres

Motion Control SW- Endschalter

$
0
0
Guten Abend zusammen,

ich habe eine S120 CU-320-2PN + S7 1500 mit einer kleinen Motion Control Anweisung.
Ich steuere den Antrieb über die PLC Open Bausteine im Tia Portal an ( Telegramm 3). Das funktioniert soweit.

Da ich einen begrenzten Verfahrweg habe sind die SW-Endschalter aktiviert.

Ist es möglich die SW-Endschalter so einzustellen das diese bei überfahren keine Störung im Antrieb auslösen?
Also das der Antrieb an dieser Stelle anhält ohne in Störung zu gehen und keine Quittierung erforderlich ist.


Vielen Dank

TIA Online- Sicherungskopie im TIA- Portal

$
0
0
Hallo Leute,


derzeit versuche ich für mich eine Lösung zu finden, den Online- Stand im TIA- Portal zu sichern.
Im Step7 Classic geht es ja ziemlich einfach über das Hinzufügen eines neuen Programmordners
und kopieren der Online- Bausteine in diesen.

Folgende Vorgehensweisen habe ich bisher im TIA ausprobiert:

1. Momentaufnahme der Aktualwerte in die Startwerte kopieren

-> Hier muss ich unter Umständen (z.B. wenn ich einen vorhandenen DB/ DI erweitert habe) mit zwei Programmständen arbeiten.
Zum Einen mit dem Stand vor der Änderung (mit den in Startwerten gesicherte Aktualwerten) und dann der Stand mit den Updates.

2. Rechtsklick auf die CPU "Onlinesicherung vom Gerät laden"

-> Hier wird die CPU in Stop geschalten. Das finde ich nicht so gut, da man das nicht während laufender
Prozesse machen kann :rolleyes:


Gibt es auch eine elegantere Variante die Online- Bausteine im TIA- Portal zu sichern? Wie sind eure Erfahrungen?


VG

Mitch

TIA S7-1500 Ethernet Datenpuffer

$
0
0
Guten Morgen,

folgendes Problem: Ich realisiere eine open TCP Kommunikation über die interne Profinet Schnittstelle einer S7-1515 2 PN/DP zu einem PC mittels TCON, TDISCON, TRCV und TSEND. Grundsätzlich funktioniert die Kommunikation einwandfrei. Ich möchte jedoch zuerst Daten senden und anschließend erst die Empfangsfunktion freigeben (Eingang "EN_R" Enable receive). Wenn ich die Empfangsfunktion dauernd bzw. ab erfolgreichem Verbindungsaufbau freigebe, krieg ich die Antworttelegramme einwandfrei rein. Der PC antwortet auf mein Telegramm ziemlich schnell. Schalte ich diese erst verzögert ein, scheint es so als wäre der Empfangspuffer leer. Hat hier jemand einen Tipp für mich? Lässt sich hier etwas einstellen bzw. gibt es generell keinen Empfangspuffer?

Mit bestem Dank,

neibeck

Sonstiges TC3 HMI Projekt Migration

$
0
0
Hallo zusammen,

ich stehe momentan vor folgendem Projekt:

Wir haben eine Beckhoff SPS CX2010 und eine "Selbstgeschriebene" Visualisierung mit C# welche über Twincat ADS kommuniziert. Dort sind noch viele andere Dinge mit drin (Trends und Alarming über Labview X.vi von 2008 :sb13: und weitere Schweinereien). Natürlich gibt es keinerlei Dokumentation dazu :cool:.

Deswegen habe ich mich nun entschlossen, das ganze auf TC3 aufzubohren und dann gleich das TC3 HMI mit zunutzen und den Rest verenden zu lassen. Nun habe ich gesehen das Beckhoff auch Implemtierung von C# als Extension zulässt. Dann müsste ich das Rad nicht neu erfinden und müsste nur das unnützliche Drum-Herum wegfallen lassen und die Schnittstelle neu machen (Sofern der Plan).

Hat schon jemand Erfahrung damit gemacht? Bin gespannt auf eure Antworten :p:D:p

Problem Erstellung CSV Datei

$
0
0
Hallo, ich versuche gerade ein par Messwerte zyklisch in einer .csv Datei zu loggen.
Dazu habe ich das Beispiel von Beckhoff geladen, jedoch funktioniert selbst der unveränderte Code von Beckhoff bei mir nicht..
Die Datei wird einfach nicht erstellt, bzw wenn ich sie vorher anlege nicht geöffnet.
Woran kann das liegen? Bestimmt ein Problem Zugriffsrechten oder soetwas, bin leider ratlos.

https://infosys.beckhoff.com/index.p...sample.htm&id=

Habe aus dem Beispiel nur die P_TextModeWrite(); aufrufen lassen (die anderen auskommentiert)

CODE : PROGRAM P_TextModeWrite
VAR
bWrite : BOOL := FALSE;(* Rising edge starts program execution *)
sNetId : T_AmsNetId := ''; (* TwinCAT system network address *)
sFileName : T_MaxString := 'D:\DataExport\TextModeGen.csv';(* CSV destination file path and name *)
sCSVLine : T_MaxString := '';(* Single CSV text line (row, record), we are using string as record buffer (your are able to see created fields) *)
sCSVField : T_MaxString := '';(* Single CSV field value (column, record field) *)
bBusy : BOOL;
bError : BOOL;
nErrId : UDINT;
nRow : UDINT := 0;(* Row number (record) *)
nColumn : UDINT := 0;(* Column number (record field) *)
hFile : UINT := 0;(* File handle of the source file *)
step : DWORD := 0;
fbFileOpen : FB_FileOpen;(* Opens file *)
fbFileClose : FB_FileClose;(* Closes file *)
fbFilePuts : FB_FilePuts;(* Writes one record (line) *)
fbWriter : FB_CSVMemBufferWriter;(* Helper function block used to create CSV data bytes (single record line) *)


database : ARRAY[0..MAX_CSV_ROWS, 0..MAX_CSV_COLUMNS ] OF STRING(MAX_CSV_FIELD_LENGTH) :=[ (* Source PLC database *)
'0_0', '0_1', '0_2', '0_3', '0_4', '0_5',
'1_0', '1_1', '1_2', '1_3', '1_4', '1_5',
'2_0', '2_1', '2_2', '2_3', '2_4', '2_5',
'3_0', '3_1', '3_2', '3_3', '3_4', '3_5',
'4_0', '4_1', '4_2', '4_3', '4_4', '4_5',
'5_0', '5_1', '5_2', '5_3', '5_4', '5_5'];


END_VAR

CASE step OF
0: (* Wait for rising edge at bWrite variable *)
IF bWrite THEN
bWrite := FALSE;
bBusy := TRUE;
bError := FALSE;
nErrId := 0;
hFile := 0;
nRow := 0;
nColumn := 0;
step := 1;
END_IF


1: (* Open source file *)
fbFileOpen( bExecute := FALSE );
fbFileOpen( sNetId := sNetId, sPathName := sFileName, nMode := FOPEN_MODEWRITE OR FOPEN_MODETEXT,(* Open file in TEXT mode! *)
ePath := PATH_GENERIC, bExecute := TRUE );
step := 2;


2:(* Wait until open not busy *)
fbFileOpen( bExecute := FALSE, bError => bError, nErrID => nErrID, hFile => hFile );
IF NOT fbFileOpen.bBusy THEN
IF NOT fbFileOpen.bError THEN
step := 3;
ELSE(* Error: file not found? *)
step := 100;
END_IF
END_IF


3:(* Convert one PLC record to CSV format *)
sCSVLine := '';
fbWriter.eCmd := eEnumCmd_First;(* Write first field value *)
IF nRow <= MAX_CSV_ROWS THEN


FOR nColumn := 0 TO MAX_CSV_COLUMNS BY 1 DO


sCSVField := STRING_TO_CSVFIELD( database[ nRow, nColumn ], FALSE );(* TODO: Get field value from your application *)


(* Add new field to the record buffer *)
fbWriter( pBuffer := ADR( sCSVLine ), cbBuffer := SIZEOF( sCSVLine ) - 1, putValue := sCSVField, pValue := 0, cbValue := 0,
bCRLF := ( nColumn = MAX_CSV_COLUMNS ) );(* bCRLF == TRUE => Write CRLF after the last field value *)
IF fbWriter.bOk THEN
fbWriter.eCmd := eEnumCmd_Next;(* Write next field value *)
ELSE(* Error *)
step := 100;
RETURN;
END_IF


END_FOR(* FOR nColumn := 0... *)


(* FB_FilePuts adds allready CR (carriage return) to the written line.
We have to replace the $R$L characters with $L character to avoid double CR. *)
IF RIGHT( sCSVLine, 2 ) = '$R$L' THEN
sCSVLine := REPLACE( sCSVLine, '$L', 2, LEN( sCSVLine ) - 1 );
END_IF


nRow := nRow + 1;(* Increment number of created records (rows) *)
step := 4;(* Write record to the file *)


ELSE(* All rows written => Close file *)
step := 10;
END_IF


4: (* Write single text line *)
fbFilePuts( bExecute := FALSE );
fbFilePuts( sNetId := sNetId, hFile := hFile, sLine := sCSVLine, bExecute := TRUE );
step := 5;


5:(* Wait until write not busy *)
fbFilePuts( bExecute := FALSE, bError => bError, nErrID => nErrID );
IF NOT fbFilePuts.bBusy THEN
IF NOT fbFilePuts.bError THEN
step := 3;(* Write next record *)
ELSE(* Error *)
step := 100;
END_IF
END_IF


10: (* Close source file *)
fbFileClose( bExecute := FALSE );
fbFileClose( sNetId := sNetId, hFile := hFile, bExecute := TRUE );
step := 11;


11:(* Wait until close not busy *)
fbFileClose( bExecute := FALSE, bError => bError, nErrID => nErrID );
IF ( NOT fbFileClose.bBusy ) THEN
hFile := 0;
step := 100;
END_IF


100: (* Error or ready step => cleanup *)
IF ( hFile <> 0 ) THEN
step := 10; (* Close the source file *)
ELSE
bBusy := FALSE;
step := 0; (* Ready *)
END_IF


END_CASE

TIA Bitmeldung aus mehreren Textlisten erzeugen

$
0
0
Hallo zusammen,

Ich arbeite mit einem KTP400 professional Comfort Panel TIA V15 Update 3.

Ich habe ein OP7 was mit ProTool erzeugt war hoch migriert auf TIA V15.
Dadurch wurden die Textlisten und Bitmeldungen mit migriert.

Ich möchte eine Bitmeldung aus mehreren Textlisten erzeugen. Dies hat auch vor dem Migrieren funktioniert.
Doch jetzt wird eine zufällige Textliste, mehrmals an den Stellen der anderen Textlisten angezeigt.

Textliste ProTool
ProTool.png

Textliste TIA
TIA_V15.jpg

Anzeige Meldefenster KP400
Ausgabe_Bsp.jpg

Kann mir jemand sagen woran das liegen könnte oder was an der Erstellung der Bitmeldung falsch ist?

Angehängte Grafiken

per js modbusdaten an die SPS senden und Variablenwerte überschreiben

$
0
0
Hallo,

ich sitze hier vor einem klitzekleinen Problem was das senden von Variablenwerten an die SPS (Revolution PI) angeht. Als Programmiersoftware nutze ich LogiCals3
.
Ich habe eine Software (Visualisirung die auf SVG aufgebaut ist und per modbus via javasricpt angesprochen wird. Werte an die SPS senden und Empfangen geht soweit ja. Was aber mein Problem ist, ich möchte Variablen werte in der SPS überschreiben also Initialisierungswerte. und genau da weiss ich nicht weiter.

vorschau.JPG
Ich möchte im linken Feld die Werte ändern und die sollten dann auch in der sps geändert werden und im rechten feld wieder dargetellt werden.
dazu habe ich diese Zeilen in der (htm) seite eingebettet
Code:

   
<foreignObject id="Beckeninhalt" y="466.56036" x="1140.2266" height="18" width="60">
      <input type="text" value=""  style="width: 60px; height:16px;" class="tableinput1">
</foreignObject>

über die devices.ini werden die Variablen vom Modbus angesprochen
hier fragt der master die sps ab
Code:

[QW18_BeckenInhalt]
src  = modbus
db    = false
srcm  = %IW17
unit  = m³

und hier sollte er diese wieder an die sps senden. was aber nicht funktioniert, da das Feld (foreignObject) wohl nicht funktioniert. gebe ich über const vor wird dieser auch übertragen.
Code:

[Beckeninhalt]
src  = modbus
[Beckeninhalt]
src  = modbus
db    = false
const =45.0
srcs  = %QW7
unit= qm

daher wollte ich hier fragen wie der ansatz ist so das ich per javascript werte an die sps senden kann und diese dort die variablenwerte überschreibt?
Angehängte Grafiken

TIA Openess Project-Instanz bei Anhängen an Prozess

$
0
0
Die TIA Openess API V15 stellt eine Möglichkeit bereit, sich an laufende Prozesse des TIA Portals anzuhängen (via Attach()), was problemlos funktioniert. Es ist auch möglich, dass in TIA bereits ein Projekt geöffnet ist.

Leider finde ich keine Möglichkeit in diesem Fall an die Project-Instanz zu gelangen, die man benötigt, um projektspezifische Funktionalität anzusteuern. Die mir bekannten Wege eine Project-Instanz zu erhalten sind die Funktionen Create(), Open() und OpenWithUpgrade(), die jedoch allesamt nicht zu funktionieren scheinen, wenn bereits ein Projekt in TIA geöffnet ist. Dies gilt auch für den Projektpfad des bereits geöffneten Projektes, das über die ProjectPath-Eigenschaft abgefragt werden kann, bevor man sich über Attach() an einen Prozess anbindet.

Ich würde ungern selbst ein Projekt über die API anlegen bzw. öffnen, da ich zu diesem Zweck eine Eingabemöglichkeit erstellen müsste, die ohnehin schon in TIA umgesetzt ist. Kennt jemand eine Möglichkeit für ein bereits geöffnetes Projekt eine Project-Instanz abzurufen?

Code:

var process = TiaPortal.GetProcesses().First();
var projectPath = process.ProjectPath;

using (TiaPortal portal = process.Attach())
{
    // var project = ?
    // var project = portal.Projects.Open(projectPath); -> Exception
}

WinCC Graph Visualisieren

$
0
0
Gibt es unter WinCC 7.4 eine Möglichkeit, die Graph Ketten zu visualisieren ? So wie ProAgent / ProRuntime ?

Step 7 FC's außerhalb des Anwenderbereiches

$
0
0
Guten Morgen Jungs,

nun ist einmal wieder soweit....Siemens treibt mich noch in den Wahnsinn...

Ich habe ein Problem beim Übersetzen eines CFC Planes als Programm, mit der Fehlermeldung:
Der FC2 (FC17) liegt außerhalb des Anwenderbereiches.

Folgendes habe ich getan:

Ich habe eine Quelle in SCL geschrieben. Dort geht es um das zusammensetzten von STRING's zu einer Fehlermeldung.
Dort rufe ich die Befehle (FC's) INSERT (FC2) und CONCAT auf (FC17).
Die Quelle übersetze ich erfolgreich
-->Bausteine und Funktionen werden erstellt
-->Die Eintragungen der FC's in die Symboltabelle erfolgt
Bis hier ist also alles gut

Nun möchte ich in einem PLAN (CFC) meinen Baustein aufrufen, die Eingangsvariablen verknüpfen usw.

Beim Übersetzen wird nun abgebrochen, mit der Meldung das die FC's außerhalb des Anwenderbereiches liegen ... *FRUST*

-->mal nachgeschaut und mich schlauer gemacht (dachte ich)

--> im CFC Editor kann man unter "Extras/Einstellungen/ÜbersetzenLaden kann man sich die die für "Andere Applikationen Reservierten Bereich" anschauen bzw ändern

Dort ist zu erkennen, das in CFC dieser Bereich vom FC 60 bis 700 liegt. Ändere ich den Bereich für mein Problem passend werde ich mit Fehlermeldungen überhäuft, was also keine Lösung ist.

--> Bereich wird ja vom CFC selber benötigt, richtig?

ERGO: Kann ich bei CFC keine FC unterhalb der Nummer 60 verwenden oder wie?

Kurz und knackig: Wie rufe ich in CFC einen Plan / Programm auf, welches die Befehle INSERT (FC2) und CONCAT (FC17) beinhaltet und schaffe es diese als Programm zu übersetzen (nicht als Baustein, das geht!!!!)

PS: das ist Teil einer Aufgabe vom Fernstudium, ein anderer Lösungsweg über Baustein-Aufruf in einer anderen Sprache ist damit leider nicht drin.

Jetzt bin ich echt gespannt wo ich mich zu brasslich anstelle :-)

MQTT auf Wago750-881 bzw. Wago 750-841 implementieren

$
0
0
Abend zusammen,


da Weihnachten nicht mehr fern ist und ich wieder mehr Zeit habe, meinem "Hobby" nachzugehen, versuche ich gerade einem meiner beiden Wago-Controller die Implementierung von MQTT "einzuimpfen".

Warum MQTT werden nun ggf. einige fragen: weil damit der Weg zur Amazon Cloud und damit zur freundlichen Alexa nicht mehr weit ist und ich mir den Umweg über irgendwelche IO-broker etc. sparen würde. Auch wenn's hier bereits was mit einer RaspberryPi-Implementierung gibt, will ich's noch immer nicht glauben, dass das mit einer Ethernet-fähigen SPS nicht auch möglich ist.
Immerhin kann ich damit auch Mails empfangen, senden und online meine Wetterdaten abgreifen und in der Visu am Handy darstellen, bzw. die Beschattung dementsprechend vorbereiten.

Der Kontakt mit meiner Wago-Vertretung wurde bereits hergestellt. Hier hatte man mit kurz und knapp erklärt, dass die 750-880 und ähnliche Typen MQTT nicht unterstützen und dies nie tun werden.
Dem entgegen steht, dass ich auf GitHub über einen Beitrag zum Thema MQTT und der Implementierung auf einer 750-881 und einer 750-841 gestolpert bin.
https://github.com/SebastianRau/Codesys2-Mqtt-lib Den Kontakt zum Ersteller konnte ich bisher nicht herstellen.

Auch eine weitere MQTT-Implementierung hatte ich auf einem anderen Portal entdeckt. Diese ist wohl angelehnt an jene auf github, hat aber dafür das Problem des "Subcribes" gelöst.

Ich habe nun versucht auf meiner etwas betagten 750-841 das Ganze test-weise zu implementieren. Leider ohne Erfolg; bisher schaffe ich es noch nicht einmal eine Verbindung auf den mqtt-server meiner Wahl herzustellen. Firewall wurde bereits deaktiviert und sogar die Firmware des Controller auf die Version 21 upgedated. Vielleicht hat jemand ebenfalls Interesse daran das Ganze zu testen und kann mich möglicherweise auf meinen Fehler aufmerksam machen.

Im Anhang sind daher meine Projekt-Files und die einzelnen ergänzenden Libs.

Wenn's funktioniert:
Die msg, also der Payload würde dann per mqtt.fx unter "Codesys" abonniert und angezeigt werden. Der Server und der Port sind im Programm ident zu jenem in den Projektfiles anzugeben.
Hierzu gibt es auf youtube ein entsprechendes Video, wobei hier mit Codesys3 und einem RaspberryPi gearbeitet wird. https://www.youtube.com/watch?v=ifGC51w5KBI


lg,
Andreas
Angehängte Dateien

Logo 8 Pumpensteuerung für Aquarim

$
0
0
Hallo,

ich möchte eine Pumpensteuerung für ein Meerwaaser Aquarium umsetzen.

Meine Vorstellung sieht wie Folgt aus und beinhaltet:


  • Ein Wasserfass 200 Liter für Osmosewasser mit Schwimmschalter max/min und eine Pumpe 12 V
  • Ein Wasserfass 200 Liter für Salzwasser Pumpe mit 12 V
  • Osmoseanlage mit Schwimmschalte im Osmosefass und Magnetventil am Wasseranschluß
  • Abwasserpumpe im Technikbecken
  • 2 Schwimmschalter im Technikbecken min/max zur Steuerung von Osmose zwecks Verdunstung und Salzwasser für Wasserwechsel
  • 1 Taster zum manuellen Start des Wasserwechsels


Das ganze soll über eine Logo 8 12 V laufen.

Der Ablauf sollte wie folgt gehen:


  1. Schwimmschalter max/min im Osmosefass schaltet das Magnetventil zur Osmoseanlage
  2. Ein Schwimmer max im Technikbecken im EG schaltet die Förderpumpe im Osmosefass ein bis Pegel wieder erreicht wurde
  3. Über Taster soll Wasserwechsel gestartet werden. Abwasserpumpe entleert das Technikbecken bis min- Schwimmer, dann schaltet der min- Schwimmer die Förderpumpe für Salzwasser ein und füllt wieder bis max- Sschwimmer im Technikbecken auf. Bei erreichen von Max geht Salzwasserpumpe aus und Osmosepumpe wird wieder aktiv geschaltet.
  4. Der Schimmer max im Technikbecken soll bei der Osmosepumpe und bei der Salzwasserpumpe steuern jedoch MUSS Osmosepumpe bei Wasserwechsel Deaktiviert werden!!
  5. Notaus mit Extra Schwimmer im Technikbecken der System abschaltet und Meldetext sendet falls Überfüllung erfolgt.


Wie würde so eine Steuerung denn aussehen ?


Folgendes ist schon in der Planung:

5 Schwimmer
1 Magnetventil
3 Pumpen 12 V


Danke füür die Vorschläge

Wasserversorgung Aquarium.jpg
Angehängte Grafiken

TIA Tia v15 Ausgang mehrfach setzen

$
0
0
Guten Tag

Wollte mich gerade ein bisschen im SCL Programmmieren versuchen,

Habe eine Grundlegende Frage, da ich gerade ein hänger in einem Programm habe.

Kann man einen Ausgang zBsp. Q2.6 von verschiedenen Orten high bzw low setzen gibt das kein Konflikt?

Danke für Antworten

TIA CPU - CPU Verbindung/ Wie Realisierbar

$
0
0
Guten Tag,

Ich besitze 2 314c 2PN/DP und habe gelesen das die Möglichkeit besteht diese 2 CPU miteinander Kommunizieren zu lassen. (Ohne Zusätzlichen CP)
Leider habe ich keine Ahnung wie das Möglich ist wenn sich jemand damit auskennt könnte er mit bitte Erklären was ich in der HWK und in den Entsprechenden FC`s eingeben muss und welches Byte, Word , DWord , ... Verschoben werden kann.(Wenn jemand etwas Lektüre zu diesem Thema hat, wäre ich ihm sehr verbunden mir eine Empfehlung zu den entsprechenden Büchern/ Seiten/ ect. zugeben)

Mein Ziel ist es zBsp. einen Analogen Eingangswert in einen Globalen Datenbaustein abzulegen und diesen DB den anderen Teilnehmern im Profinet zur verfügung zustellen.

Ich besitze TIA V15 und bevorzuge FUP als Programmiersprache.
Es ist ein Switch zwischen die einzelnen Teilnehmer Geschaltet.

Des weiteren besitze ich eine LOGO ! 8 und würde, nach dem die Verbindung und Kommunikation der 2 CPU geklappt hat gerne auch von und zu der Logo Daten schicken (mit Modbus konnte ich keine Erfolge erzielen).
(Liegt an meinem nicht vorhanden Wissen darüber)

Ich wäre euch über eine detaillierte Beschreibung sehr Dankbar. ;)

Kollmorgen servo Motor summt beim Einschalten

$
0
0
Hallo Liebes Forum,
ich habe servo Umrichter S600 gewechselt mit einem neuen Umrichter von Kollmorgen auch S700 (s772) und ich habe alles 1 zu 1 umgebaut und parametriert.
der Motor wird über einen Taste einschalten -ausschalten gesteuert und Geschwindigkeit über ein Potentiometer eingegeben.
jetzt bei Einschalten der neue Umrichter summt der Motor sofort und das ist aufgetreten nur wenn der Programmier Rechner nicht angeschlossen
also sobald ich die Stecker von Umrichter abziehe, summt der Motor sofort und wenn ich wieder
in Umrichter einstecke geht die Störung (Geräusche in Motor) weg.
und wenn ich Potentiometer von Analogeingänge des Umrichters trenne, summt der Motor nicht.
der alte Umrichter S600 hat ein Drossel und Filter, die ich nicht benutzt bei dem neuen s700, da s700 einen integrierten filter hat und braucht mann keinen filter mehr.
der Motor ist 6SM-100L-3000BV
kann jemand mir empfehlen was kann ich tun ? wie gehe ich weiter ? was soll ich überprüfen ?
über jede Empfehlung freue ich mich sehr.

Sonstiges WinCC Flexible 2008 Advanced : Animation Button in Abhängigkeit von 2 Variablen

$
0
0
Hallo!

Ich stehe gerade vor folgenden Problem:

Ich ändere gerade eine bestehende Visualisierung, wobei ein Button dunkelgrau bzw hellgrau wird abhängig vom Inhalt eines Merkerbytes.

Nun wollte ich diesen Button "ausgrauen" wenn das Bit für die Bedienbarkeit nicht gesetzt ist (Steuerungshoheit vorhanden oder Steuerungshoheit nicht vorhanden)
Leider weiß ich aber nicht wie man eine
weitere Variable für die Animation des selben Buttons freigeben kann?

Hoffe es ist verständlich formuliert.
Würde mich über eure Hilfe freuen!

Vielen Dank schon einmal!!
und noch schöne Feiertage!

LG
Viewing all 49282 articles
Browse latest View live


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