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

[Twincat 3]Eintrag aus einem PDO direkt einer Variable zuweisen (in einem Zyklus)

$
0
0
Einen wunderschönen guten Tag an alle,

ich habe gerade einen Controller von HIWIN zur SPS hinzugefügt und entsprechend der Anleitung eingebunden.
Sensoren, wie z.B. die Endschalter gehen direkt in den Controller und werden diese PDO eingebunden.

Code:

PDO_DI AT%I* :UDINT;
Das auslesen des Endschalters erfolgt dementsprechend über die Abfrage des Bit

Code:

PDO_DI.18
Nun habe ich das komplette Programm objektorientiert aufgebaut, so dass die MotionControl Bausteine je Instanz mit den Variablen bEndschalter0 und bEndschalter1 arbeiten.
Um diese Funktionsbausteine zu benutzen muss ich also zunächst noch eine Zuweisung auf die Variable machen. z.B.
Code:

bEndschalter0:=PDO_DI.18
Wenn ich das richtig verstehe würde das aber bedeuten, dass ich zwei Zyklen brauche um die die Daten des Endschalters auszulesen. Die dadurch resultierende Verdopplung der Reaktionszeit finde ich gerade bei Endschaltern etwas kritisch.

Deshalb die Frage, gibt es eine Möglichkeit direkt PDI_DI.18 ohne vorheriges einlesen des PDO_DI in die Variable bEndswitch0 zu schreiben?

P#011801860 - PNOZ S3 + PSEN SL-0.5p 1.1 + NH Taster

$
0
0
Hallo,

ich möchte mit dem PNOZ S3 einen magnetischen Zuhalter PSEN SL und einen NH Taster auswerten. Am Telefon sagte mir ein Pilz Mitarbeiter dass ich dafür den NH Taster zwischen 24V und S11/S22 vom PSEN klemmen muss und dann von 12/22 auf S12/S22 vom PNOZ S3.

Nun 2 Fragen:
  • Was wird an S11 und S21 vom PNOZ S3 angeschlossen oder bleiben die frei?
  • Könnte man den NH Taster nicht auch zwischen 12/22 vom PSEN SL und S12/S22 vom S3 hängen?
    • Hintergrund: Ich will Y32 vom PSEN und Y32 vom S3 beide in der SPS auswerten um zu unterscheiden ob nur die Tür offen wurde oder NH betätigt wurde. Für den Ablauf in unserer kleinen Maschine ist es notwendig dass nach jedem prozessierten Teil die Tür geöffnet wird und ich will nicht dass die SPS jedes Mal denkt dass NH betätigt wurde.


Vielen Dank und beste Grüße
Jan

EDIT: Mir ist auch grad klar geworden dass Y32 vom S3 so oder so auf 0 gehen würde, egal ob nur die Tür geöffnet wird oder der NH betätigt wird. Außerdem zeigt der Y32 vom PSEN ja garnicht an, dass die Tür verriegelt ist, sondern nur, dass der Betätiger im Ansprechbereich ist.

Ich formuliere meine Frage daher um: Was müsste ich machen (welche Komponenten benutzen) um unterscheiden zu können ob nur die Tür geöffnet wurde oder NH betätigt wurde? Geht das nur mit einer PNOZ multi?

TIA Compfort Panel TP700 stürzt immer wieder ab

$
0
0
Servus,


Erst mal eine kurze Erläuterung der gesamten Hardware:

- S7 1200
- TP 700 Panel
- SICK PIM60 Vision Sensor
- PC mit Software des Vision Sensors

Die CPU wertet die Daten des VisonSensors über Ethernet aus....Teil gut, Teil schlecht, Fehler etc.
Das Panel dient zur Steuerung. Parametrierung etc..war klar :D...aber ich kann noch zusätzlich auf dem Panel den Webserver des Sensors öffnen, um mir im Betrieb die Livebilder anzeigen zu lassen. Der PC, der sich ebenfalls im selben Netzwerk befindet, hat die Software des Sensors installiert und dient zur Konfigurieren dieses Sensors.

Soweit so gut.

Wenn ich nun allerdings mit diesem PC auf den Sensor zugreife UND mir gleichzeig den Sensor über den Webserver auf dem Panel anzeige lassen, stürzt mein HMI ab...zuerst wird es für ca. 3s sehr langsam, dann lässt sich nix mehr bedienen. Nur noch über ein Netz aus/ein lösbar. Keine Fehlermeldung, es friert einfach ein.
Es ist nur das Panel, CPU läuft mit dem Sensor fleißig weiter.

Hat jemand da ein Erklärung für?:confused::confused:

Grüße und Danke!

TomTom

WinCC Flex SIMATIC Smartclient auf Apple MacBook?

$
0
0
Die SmartClient-Software läuft einwandfrei auf Rechner mit Windows-Betriebssystem.

Läuft die SmartClient-Software auch auf Apple Geräten mit macOS??
Gibt es eine Alternative?

Ich habe leider kein MacBook zur Verfügung. Für Infos wäre ich dankbar!

WinCC Flex Animationen bei Bildbausteinen

$
0
0
Schönen guten Tag,

ich habe ein Problem damit die Anminationen der einzelnen Objekte aus einem Bildbaustein nach außen zu führen. (geht das überhaupt?). Ich habe vor mir Bildbausteine anzulegen die ich dann mittels PLC-UDT an die SPS anbinde.

Also was ich im grunde möchte, ist ein Bildbaustein für einen Zylinder der folgendes tun soll:
Er besteht aus 2 Buttons außen und einem kleinen feld dazwischen mit einem kleinen, beschreibenden Text darin.
Die beiden buttons außen sind mit GS und AS für Grund- und Abreitsstellung beschrifftet, und sollen bei Betätigen den Zylinder in die entsprechende Position verfahren.

1) Bei der "drücken" Funktion habe ich schon das erste Fragezeichen, im Inspektorbereich des Bildbaustein Editors kann ich durchaus die Funktion "drücken>setzebitsolangegedrückt" wählen, führe ich die Funktion "drücken" nach außen allerdings nicht, dann muss ich die Funktionen "drücken" und "loslassen" um einmal das bit zu setzen und einmal zurück zu setzen, nach außen bringen.

2) das hauptproblem habe ich mit dem Farbwechsel der buttons, die sollen ihre Farbe entsprechend der Antwort der Endlagenschalter verändern. (Grün, Grau)
Im Bildbaustein Editor kann ich die Animationen nur im Inspektorbereich fest für den Bildbaustein anlegen, aber die sollen am besten von außen am Bildobjekt im Bedienfeld parametrierbar sein, die ganzen zylinder reagieren ja nicht alle auf den selben Endlagenschalter.
Dazu kommt noch, das selbst wenn ich wollte, ich im Bildbaustein Editor in der Variablenauswahl der Animation garnicht meine HMI Variable (abgeleitet von einem PLC-UDT) angezeigt bekomme, aus der ich dann die Bool variable des endlagenschalter auswählen könnte.
Für die normalen Buttons die ich im Bild Editor verwende aber schon.

Ich hoffe ich konnte mein Problem verständlich Formuliere, für Antworten oder Nachfragen wäre ich sehr dankbar.

MfG Meikelneit

PS: Ich hoffe ich bin hier richtig mit dem Thema, ich arbeite im TIA V14, soweit ich weiß nutzt das ja WinCC-Flex

Datenlogger 8fach für Pt100 und mA Signale gesucht

$
0
0
Hy!

Wie oben beschrieben, suche einen Datenlogger mit 8 Eingängen, sollte so ein Mehrfach Eingang sein, damit ich zwischen PT100 und mA wählen kann.

Display brauche ich keines am Logger, sollte per PC auslesbar sein, und die Werte als XML speicherbar sein!

Hat jemand Erfahrungen?

Step 7 Bitadresse in einem DB mit Ganzzahl berechnen

$
0
0
Hallo

Ich habe einen DB mit 1000 Bit Variablen als Fehlernummern angelegt. Zusätzlich zum "normalen absoluten" Setzen eines einzelnen Bits im Programm möchte ich nun mit einer Funktion eine Ganzzhal laden und das entsprechende Bit einzeln berechen und es dann setzen. (z.B L 100 => S DB5.DBX 12.3)
Kann mir jemand helfen wie ich das machen kann?

Gruß und Danke im Voraus

Fritz4

TIA Frage zu Code Indirekte Adressierung

$
0
0
Hi,
ich hab mal eine Frage zu indirekten Adressierung.
Ich habe ein FB wo im letzten Netzwerk Error und Meldung ausgegeben werden.
Kann mir jemand erklären zum Verständis was am Ende des Codes geladen wird ? Diese Schreibweise versteh ich nicht ganz.
Danke
LG

Code:

TOK:  T    #SEQ.STEP.Next
      SET
      =    #SEQ.TOK
//-------------------------------------------------------
//        UPDATE /DIAGNOSE / HINWEISE
//-------------------------------------------------------
END:  NOP 0
      LAR1  P##ERROR
      L W [ AR1 , P#0.0 ]
      T    #DIAGNOSE
      LAR1  P##MELDUNG
      L W [ AR1 , P#0.0 ]
      T    #HINWEISE


TIA V14 SP1 - Crash beim Übersetzen von folgendem Code

$
0
0
Hallo Forum,

Wie der Titel schon aussagt, stürzt mein TIA-Portal immer ab, wenn ich einen FB mit folgendem Code übersetzen will.

Code:

           
    Static                                   
    TONs    Array[0..800] of TON_TIME         
    byte    Int    0     
    bit    Int    0   

FOR #byte := 0 TO 99 BY 1 DO
    FOR #bit := 0 TO 7 BY 1 DO
        #TONs[#byte * 8 + #bit](IN := PEEK_BOOL(area := 16#82, dbNumber := 0, byteOffset := #byte, bitOffset := #bit),
                                PT := t#5s);
       
        POKE_BOOL(area := 16#81,
                  dbNumber := 0,
                  byteOffset := #byte,
                  bitOffset := #bit,
                  value := #TONs[#byte * 8 + #bit].Q);
    END_FOR;
END_FOR;

Es liegt an folgendem Codeteil:
Code:

       
        #TONs[#byte * 8 + #bit](IN := PEEK_BOOL(area := 16#82, dbNumber := 0, byteOffset := #byte, bitOffset := #bit),
                                PT := t#5s);

Ist das schon bekannt?

Controller (PLC200) mit Reset-, Start-, Stop-Funktion + Visu Buttons

$
0
0
Hallo alle zusammen,

ich habe in verschiedenen Forums schon recherchiert nach einem Programm das denn Controller Reset, startet oder stoppt, jedoch ohne Erfolg. Die meisten Programme sind für Codesys v2.3 ausgelegt und wenn etwas für Codesys v3 beschrieben worden ist, ist es nicht in dem Umfang in dem ich es benötige.

Meine Hard- und Software: - Wago 750-8204 (PFC200)
- e!COCKPIT v1.4.0


Mein Vorhaben ist es, mit drei unterschiedlichen Buttons auf der Visu den Controller/PFC200 dem entsprechend "neu zu starten (reset)", "das Programm zu starten" oder "das Programm zu Stoppen".
Im Angehängtem Bild sind die denke ich benötigten Bausteine zu sehen. Im Deklerationsteil (siehe Bild) ist alles nennenswerte erwähnt und bewusst auskommentiert.
PLC200_Reset_Start_Stop.jpg
Das Problem ist allerdings, dass wenn ich z.B. nur den Baustein für den Reset verwende, sich das Programm aufhängt nach dem hochladen des Programms. Ich vermute das der Controller ständig immer und immer wieder Resetet wird und deswegen es zu dem aufhängen des Systems kommt. Dies passiert egal welchen Baustein ich ich von den dreien alleine oder in Kombination benutze.
Entferne ich den Baustein mit sämtlichen Ein- und Ausgängen und lade das Programm erneut neu hoch, funktioniert wieder alles reibungslos.
Meine Frage ist somit.... Was ist falsch Programmiert oder werden andere Bibliotheken verwendet?

Ich hoffe mir kann jemand weiterhelfen.



Gruß Lex
Angehängte Grafiken

Ansteuerung eines StepIm Schrittmotors

$
0
0
Hallo zusammen

Ich habe in CodeSys ein Projekt erstellt, welches einen Schrittmotor ansteuert und dessen Strom überwacht.
Der Motor läuft im Velocity Mode. Das heisst, er soll eine bestimmte Geschwindigkeit halten und ab einem definierten Strom (Last) stoppen.

Das Problem ist, dass der Strom, den der Schrittmotor ausgibt, sehr stark schwankt.
Im Leerlauf schwankt der Strom zwischen 0 und 300mA. Geht teilweise sogar ins negative! :confused:

Kann man dies durch eine Einstellung im Regelkreis beheben?
Oder kennt jemand eine gute Möglichkeit, den Stromwert zu glätten?

Danke für eure Hilfe!

Gruss caprez95

Stromfrequenz und Netzspannungsproblem

$
0
0
Ich ziehe bald nach Brasilien (sao Paulo) und ich habe ein Problem. Ich würde mir gerne eine Playstation 4 kaufen in Deutschland ,da aber in Brasilien eine andere Stromfrequenz und Netzspannung herrscht weiß ich nicht ob sie dort auch noch funktioniert . Ich bin erst 13 und habe deswegen davon keine Ahnung .


Ich hoffe auf eine Antwort

Profibus Slave zweifach erden?

$
0
0
Hallo

Bei einer Profibus DP Anlage sind auf der Stahlkonstruktion mehrere Profibus Slaves installiert. Diese Slave Schaltschränke sind nur mit einer 1.5mm2 PE Litze geerdet.
Aufgrund div. zerstörter Telegramme wollen wir die Slaves Schaltschränke jetzt mit einem breiten 25mm2 Erdungsband über den Kabelkanal verbinden.

Entsteht durch die zusätzliche Erdung (aufgrund der unterschiedlichen Leitungsimpendanzen) eine Erdschleife?

Muss die 1.5mm2 PE Litze entfernt werden?

Reini

WagoAppScheduler v1.1.0.12 funktioniert nicht richtig [e!COCKPIT]

$
0
0
Guten Abend alle zusammen,

hätte eine Frage zum Baustein FbPublicHoliday" und "FbScheduler".
Wie im Bild zu sehen bekommt der Baustein "FbPublicHoliday" im Eingang "dtActualDateTime" die aktuelle Uhrzeit wie auch Datum als DT Typ geliefert. Jedoch bekomme ich am Ausgang "dNextHoliday" kein richtiges Ergebnis raus. In meinem Fall spuckt er "D#2106-2-7" aus, was nicht korrekt ist.
Scheduler_Fehlerhaft.jpg
Mir stellt sich die Frage ob es an meinem Programm liegt oder das der Baustein Fehlerhaft ist?


Beim Baustein "FbScheduler" frage ich mich wie ich die einzelnen Channels abfragen kann für die verschiedene Zeiteinstellugnen?
Es ist ja möglich bis zu 15 Zeitchannels anzulegen, z.B. über die Visu und dem dazugehörige Template was mitgeliefert wird. Wenn ich nun zwei Zeiteinstellungen unter dem Reiter "Weekly Time-Switching" erstelle, wird der Ausgang "xSwitch" vom Baustein "FbScheduler" auf TRUE gesetzt. jedoch so lange bis die längste Zeiteinstellung abgelaufen ist, obwohl eine Zeiteinstellung schon abgelaufen ist.

Ich hoffe mir kann geholfen werden.


Gruß Lex
Angehängte Grafiken

TIA HMI Variablen setzen

$
0
0
Hallo zusammen,

ich bin relativ neu in der SPS-Programmierung und habe eine Frage zur Umsetzung meiner Vorgehensweise:

Ich möchte ein HMI programmieren. Im HMI sollen über Buttons Parameter an die CPU übergebenen werden. Dazu habe ich zunächst eine HMI variable einer PCL Variable zugeordnet. Die PLC Variable war ein Input (zB i0.0). Kann ich statt eines Inputs auch zB Merker aus der PCL einer HMI Variable zuordnen oder vielleicht auch was anderes? Denn ich habe sehr viele Buttons zu programmieren und wenn ich jedem Button eine Input-Adresse übergebe, dann würde ich zu viele haben.

Danke im Voraus.

Sonstiges TwinCAT3 Rezeptverwaltung über Tabelle realsieren

$
0
0
Hallo,

ich bin relativ neu in TwinCAT3 und möchte gerne via Visualisierung eine Rezepturverwaltung mit einer Tabelle realisieren.
Leider bringt Google und Das InfoSys nicht die richtigen Informationen die ich benötige.

Daher hoffe ich, dass mir hier jemand vielleicht helfen kann :)
Über ein Beispiel würde ich mich auch sehr freuen!

Kaufberatung RJ45 Kabeltester

$
0
0
Hallo,

suche zum testen unserer RJ45 konfektionierten Leitungen einen RJ45 Kabeltester.
Was setzt Ihr so ein, bzw. was könnt Ihr empfehlen?

VG
NSN

TIA S7-1500 Webserver und HTML5

$
0
0
Hallo!

Ich habe im Moment das Problem, dass meine programmierten HTML-Seiten auf dem Webserver meiner Steuerung anders dargestellt werden, als wenn ich sie normal mit dem Browser aufrufe.
Ich habe eine 1515F-2PN CPU benutzt und diese mit PLCSim Advanced simuliert. Jetzt werden z.B. Tabellen anders formatiert oder vorher definierte Positionen verändert. Weiß jemand woran das liegen kann?

PS: Ich befasse mich sowohl mit HTML als auch mit dem TIA-Portal erst seit 3 Wochen. Dementsprechend habe ich nicht so tiefgehende Kenntnisse.

Schonmal vielen Dank!

TIA IN_OUT Variable in TIA

$
0
0
Hallo,
habe ein IN_OUT Parameter für ein Wert an einem FB erstellt. An dem Parameter ist eine Variable die mit HMI verbunden ist. Der Grund ist: Der Bediener kann in HMI den Wert ändern und ich kann den auch in dem FB manipulieren. Er wird in HMI dann auch aktualisiert. Das Problem ist wenn ich in Visu den Wert ändere wird er sofort auf das alte überschrieben. Erst nach mehreren Versuchen wird der Wert übernommen. Es scheint, dass man den Zeitpunkt treffen muss wo der FB den Parameter liest und nicht beschreibt.
Habe das ganze ohne HMI ausprobiert. Ich beschreibe die Variable bei einer Flanke. Das gleiche Problem.
Es ist eine S71500. Mit S7300 hat es immer funktioniert.
Kennt jemand das Problem? Muss ich was einstellen?

Viele Grüße
Pikador

[TwinCat3] Datensatz schreiben

$
0
0
Code:

fbWriter  : FB_CSVMemBufferWriter;
nRow: INT := 1;
sCSVField            : ARRAY [1..iSizeOfValueArray] OF T_MaxString;
sCSVLine            : ARRAY [1..1000000000] OF BYTE;
str_Power: STRING;
aValueArray : ARRAY [1..iSizeOfValueArray] OF LREAL;

Code:

WHILE nRow <= iSizeOfValueArray DO  //nRow wurde oben auf 1 gesetzt
 
  aValueArray[nRow] := nRow + 0.11; //Beispiel aValueArray mit Werten füllen
 
        str_Power:=LREAL_TO_STRING(aValueArray[nRow]);  //LREAL WERT ZU STRING VERWANDELN
                sCSVField[nRow] := STRING_TO_CSVFIELD( str_Power, FALSE );(* TODO: Get field value from your application *) // STRING IN CSVFIELD VERWANDELN
   
    nRow := nRow +1;
   
 END_WHILE //
 
 

              fbWriter(    pBuffer := ADR( sCSVLine ), cbBuffer := SIZEOF( sCSVLine ), putValue := '', pValue := ADR(sCSVField), cbValue := SIZEOF(sCSVField[1]),
                            bCRLF := TRUE);(* bCRLF == TRUE => Write CRLF after the last field value *)
     
                IF fbWriter.bOk THEN
                    fbWriter.eCmd := eEnumCmd_Next;(* Write next field value *)
                ELSE(* Error *)
               
                    RETURN;
                END_IF

Hi, wieso funktioniert mein fbWriter nicht? Ich übergebe mit pValue := ADR(sCSVField) einen Array of STRINGs aus dem STRING_TO_CSV FB.

Infosys: fbWriter aka FB_CSVMemBufferWriter: ( https://infosys.beckhoff.de/index.ph...Writer.htm&id= )

Also fb.Writer.bOk meldet auch ein FALSE, weswegen da irgendwas schief läuft. Finde den Fehler aber nicht...

Ich denke der Fehler liegt im pValue, dass ich durch sCSVField, irgendwas falsches übergeben...

pValue: Optional: Adresse eines externen Bytepuffers in dem sich das neue Datenfeld befindet. Zusammen mit dem cbValue-Parameter kann dieser Eingang dann benutzt werden wenn z.B. ein Datenfeld mit Steuerzeichen oder Binärdaten in den Datensatz geschrieben werden soll. Die Steuerzeichen oder Binärdaten im Datenfeld könnten den putValue-String an einer ungewünschten Stelle abschneiden und werden deshalb als Bytepuffer übergeben. Dieser Eingang muss den Wert Null haben wenn er nicht benutzt wird.
Viewing all 49248 articles
Browse latest View live


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