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

Step 7 Verschiedene Datenbausteine mit Pointer beschreiben

$
0
0
Guten Morgen Leute,

ich habe gerade ein ziemliches Problem, wo ich langsam mit meinem Latein am Ende bin.

Ich möchte ein Integer in verschiedene Datenbaustein beschreiben, dass sich aller 100 Byte wiederholt.
z.B. DB1.DBW32, DB1.DBW132, DB1.DBW232, DB2.DBW32, DB2.DBW132 usw.

Mit folgendem Code konnte ich es teilweise lösen:

L #Laufvariable //Start mit 1
+ -1
L 100
*I
+ 32
SLD 3
LAR1
AUF DB1
L DBW [AR1,P#0.0]
L 1
+I
T DBW [AR1,P#0.0]

Damit kann ich aber nur die DB1 beschreiben. Ich muss irgendwie mit einer Eingangs Variable von einer Funktione auf verschiedene Datenbausteine zugreifen.
Dies ist zwar mit einem Any-Pointer möglich, aber mit BLKMOV kann ich nur Datenbausteine beschreiben und nicht den Wert laden, diese +1 erhöhen und wieder beschreiben.

Ich hoffe ihr könnt mir weiterhelfen :|

Gruß Wolf

Strings zusammenfügen für Datenbank eintrag

$
0
0
Guten Morgen,
versuche gerade einen String zusammen zu bauen der per SQL Befehl in die DB geschrieben wird.
Um den String zusammen zu setzen, hatte ich Concat versucht, dieser ist jedoch auf 255 Stellen begrenzt. Gibt es eine größeres Concat?

Der Befehl sieht zur Zeit so aus:

sCmd :='INSERT INTO dbo._PTPM2 (_Auftragsnummer,_Bestaetigungsnummer,_Breite_Ist,_Breite_Soll,_Fertigungsauftra gsnummer,_Hoehe_Ist,_Hoehe_Soll,_Kunde,_Kundennummer,_Laenge_Ist,
_Laenge_Soll,_Personalnummer,_PN,_Produktbezeichnung,_Pruefdatum,_Schaltkraft_MP _1,_Schaltkraft_MP_2,
_Schaltkraft_MP_3,_Schaltkraft_MP_4,_Schaltkraft_MP_5,_Schaltkraft_MP_6,_Schaltk raft_MP_7,_Schaltkraft_MP_8,_Schaltkraft_MP_9,
_Seriennummer,_Zeitstempel) VALUES ($'V$',$'V$',$'V$',$'V$',$'V$',$'V$',$'V$',$'V$',$'V$',$'V$',$'V$',$'V$',$'V$',$ 'V$',$'V$',$'V$',$'V$',$'V$',$'V$',$'V$',$'V$',$'V$',$'V$',$'V$',$'V$',$'V$')';


wobei die $'V$' durch Messvariablen ersetzte werden sollen.
Gibt es hierfür eine elegante Lösung?
Gruß
Daniel

fragen zu Bachmann

$
0
0
moin,

habe vor ewiger Zeit mal minimalen Kontakt zu Siemens S5 gehabt - seit dem nichts mehr mit SPS gemacht... Gerne würde ich mich auf dem Gebiet etwas einarbeiten.
Bin als Servicetechniker unterwegs, der AG setzt die Steuerungen von Bachmann ein. Die Bachmann wird über eine config.ini der Maschine angepasst, in die Steuerung selber habe ich als Servicetechniker keinen Einblick. Ich weiß das die programmierten Tasks in verschiedenen Programmiersprachen geschrieben sind - also eher weniger der Aufbau einer klassischen SPS. Das Sollutioncenter habe ich auf dem Service Laptop - könnte damit auch programmieren.
Gibt es mehr Doku zu Bachmann? habe recht wenig vom AG an die Hand bekommen. Besser in Richtung Siemens gucken? die haben auch Starterpacks mit Software und Hardware...

Danke
Grüße aus Köln

TIA Parker Profinet GSDML

$
0
0
Guten Morgen,

Ich habe eine Ventilinsel von Parker, die Eingangsbaugruppen sind aus dem Hause Turk und die Pneumatik von Parker. PSMT11AP
Ich benötige dringend ein GSDML File für TIA.

Unbenannt.JPG

Wäre super wenn jemand sowas in der Schublade hat.

;)

Gruß
Angehängte Grafiken

TIA Hilfe mit Array

$
0
0
Hallo alle zusammen, ich bin neugierig im SPS und brauche kleine Hilfe. Ich habe ein Array von 27 Elementen. Ich möchte von meinen Array ein genauere Element nehmen, dann weiter bearbeiten und dann auf sein genauere Platz rein stecken. Ist es möglich im TIA? Ich weiß wie kann man in anderen Sprache machen, habe aber keine Ideen wie im TIA. Ich bin sehr dankbar für eure Hilfe. :confused:

Retain Variablen auf SD Karte speichern SysSaveRetains Wago PFC200

$
0
0
Hallo zusammen,

ich nutze Codesys 2.3 für die Programmierung eines Wago 750-8203 (FW12).
Ich habe mehrere Variablen im Retain Speicher, die ich gerne auf eine SD Karte abspeichern möchte.
In diesem Zuge habe ich in der 3S-Bibliothek SysLibPlcCtrl.lib (Stand:08.11.2010) die Funktion
SysSaveRetains gefunden. Entsprechend zum Auslesen gibt es die Funktion SysRestoreRetains.

Als Eingangswert verlangt die Funktion einen String mit dem gewünschten Speicherpfad.
Hier habe ich folgenden String übergeben: 'CARD://Settings.par'

Jedoch wird die Datei im internen Speicher der Wago abgelegt und nicht auf der SD Karte.
Habe die Karte als FAT formatiert.

Ich erinnere mich, dass es schon mal funktioniert hat, als ich den Controller auf FW11 hatte.

Jemand eine Idee?

Vielen Dank!

Not-Beleuchtung

$
0
0
Hallo,

ich möchte meine Not-Beleuchtung von Leuchtstoffröhren auf Led Leuchten wechseln nun habe ich einen Wandler (Ceag GVL 12.2) verbaut.der mir ja keine richtig Sinusspannung raus gibt. Hat jemand Erfahrung wie ich das Problem einfach und Kostengünstig lösen kann ?? :D:D


Für Hilfe wäre ich sehr dankbar .....

würdet ist das auch so machen? ist das so üblich

$
0
0
Hallo zusammen,

ich habe in einem Programm von einem unserer Lieferanten folgende Passage gefunden:
Code:

    "gb".cmd_ack                :=
    "gb".FU_FaAntr.ctrl.b.rst  :=       
    "gb".FU_LW.ctrl.b.rst      := 
    "gb".FU_QS_Mat.ctrl.b.rst  := 
    "gb".FU_LS.ctrl.b.rst      := 
    "gb".FU_RSW_1.ctrl.b.rst    :=
    "gb".FU_RSW_2.ctrl.b.rst    :=
    "gb".FU_RSW_3.ctrl.b.rst    :=
            #HtP_cmd_ack_TP.Q
        OR  #Quitt_TP.Q
        OR  #rst_Not_Aus_TP.Q
        OR  #Ini_I_on_RT.Q
        OR  #RM_HS_RT.Q;

Um ehrlich zu sein musste ich mir das gerade in einem Testprojekt mal nachbauen um zu prüfen was genau da passiert.
Soweit habe ich das verstanden aber ich finde es recht unübersichtlich.

Ich hätte mir eher ein Signal aus der ODER-Verknüpfung gebaut und dieses dann den einzelnen Signalen zugewiesen.
Fände ich deutlich besser lesbar.

Da mir diese Schreibweise ehrlich gesagt neu war, wollte ich mal fragen ob das eine verbreitet Schreibweise ist und Ihr das eventuell auch so macht.
Reines Interesse.

Step 7 ASI-Fehler erkennen

$
0
0
Hallo Forum.

Ich habe ein Problem mit einer älteren Anlage.
Dort ist eine S7-315-2 PN/DP mit einem ASI-Master 342-2 (6GK7 342-2AH01-0XA0) eingesetzt.

Seit einigen Wochen kommt sporadisch ein Fehler vom ASI-Master (Adresse 256...271).
Im Diagnosepuffer der SPS sieht man, dass der Fehler nur ganz kurz da ist:

Ereignis 1 von 10: Ereignis-ID 16# 3842
Baugruppe ok Baugruppentyp: Kommunikationsprozessor
Eingangsadresse: 256
Kanalinformation vorhanden Angeforderter OB: Diagnosealarm-OB (OB 82)
Prioritätsklasse: 26
externer Fehler, gehendes Ereignis
05:20:08.931 04.04.2019
(Kodierung: 16# 3842 1A52 C554 0100 001C 0000)

Ereignis 2 von 10: Ereignis-ID 16# 3942
Baugruppe gestört oder Wartung erforderlich
Baugruppentyp: Kommunikationsprozessor
Eingangsadresse: 256 Modul falsch/fehlt Kanalinformation vorhanden
Modul/Submodul gestört
Fehler baugruppenextern
Kanalfehler vorhanden Angeforderter OB: Diagnosealarm-OB (OB 82)
Prioritätsklasse: 26
externer Fehler, kommendes Ereignis
05:20:08.785 04.04.2019
(Kodierung: 16# 3942 1A52 C554 0100 0D1C 0100)

Im OB82 steht folgender Code:

Code:

   
      L    #OB82_MDL_ADDR
      T    DB59.DBW    0
      SET 
      =    M    212.0
loop: NOP  0
      CALL  SFC  59
      REQ    :=M212.0
      IOID  :=B#16#54
      LADDR  :=DB59.DBW0
      RECNUM :=B#16#1
      RET_VAL:=DB59.DBW2
      BUSY  :=M212.1
      RECORD :=P#DB59.DBX10.0 BYTE 11
      CLR 
      =    M    212.0
      U    M    212.1
      SPB  loop

      U    #OB82_MDL_DEFECT
      S    M    200.4

Zur Auswertung des betroffenen Moduls werden die Bytes aus dem DB59 in Meldewörter rangiert.
Ich weiß, dass der Zugriff auf die ungeraden Wortadressen nicht schön ist. Der Code wurde damals von den Kollegen in zig Anlagen kopiert und scheint zu funktionieren.
Deswegen hab ich da nichts dran geändert.

Code:

      L    DB59.DBW  17
      L    W#16#0
      <>I 
      SPBN  m001
      T    DB240.DBW    2

m001: L    DB59.DBW  19
      L    W#16#0
      <>I 
      SPBN  m002
      T    DB240.DBW    4

m002: NOP  0

      U    DB612.DBX    1.7  // Quittiertaste
      SPBN  m003
      L    W#16#0
      T    DB59.DBW  17
      T    DB59.DBW  19
      T    DB240.DBW    2
      T    DB240.DBW    4

m003: NOP  0

Wenn ein ASI-Slave abgezogen wird, geht das entsprechende Bit im Bereich DB59.DBB17 ff. an und am HMI kommt die passende Fehlermeldung.

Bei der sporadischen Störung wird nur der M200.4 (#OB82_MDL_DEFECT) gesetzt. Es wird jedoch kein Slave mit angegeben.
Laut Siemens-Handbuch tritt ein Alarmereignis mit "externem Fehler" bei Änderungen der AS-i-Slavekonfiguration auf. Der Master ist im geschützten Betrieb.
Müsste da nicht auch ein Slave mit angegeben werden?
Eine 2. Möglichkeit wäre AS-i-Powerfail. Wenn man die ASi-Spannung kurz abklemmt, werden direkt alle Slaves als Fehler mit angegeben. Das passiert aber auch nicht bei dem sporadischen Fehler.

Anbei noch die Online-Ansicht des DB59.

Welche Möglichkeiten zur Diagnose habe ich noch?
Kann man aus der "Kodierung" im Diagnosepuffer nähere Informationen bekommen?
Was kommt noch als Ursache in Betracht?

Gruß

Chris
Angehängte Grafiken

Step 5 Anfängerfrage: S5-100U CPU100 - Eprom ausgelesen - Dekodierung möglich?

$
0
0
Hallo!

Ich muss vorwegschicken, dass ich ein ziemlicher Neuling bzgl. SPS bin. Ich weiss zwar grob, was man damit macht, aber programmiert habe ich so eine Steuerung noch nie.

Da unsere "neue" Werkzeugmaschine aber eine ziemlich alte (30 Jahre) S5-100U im Schaltschrank sitzen hat, interessiert mich deren Funktionsweise jetzt doch.

Laut Schaltplan macht diese SPS nichts anderes, als aus zwei BCD-Ziffern (über 2x4 Digitaleingänge) und vier Steuerleitungen (Änderung Low-Byte, Änderung High-Byte, Rechtslauf, Linkslauf - insgesamt nochmal 4 Digitaleingänge) eine analoge Ausgangsspannung von -10 bis +10V zur Ansteuerung eines Servos zu erzeugen.

Das EPROM (2764) habe ich schon auslesen können und erwartungsgemäß belegt das Programm nur einen Bruchteil des Speichers (etwa 500 Byte).

In einem Hexeditor sieht man außer vielen Bytes interessanterweise auch einige Texte wie "ANALOG", "DIV:16", "SPAUSG".

Wie gesagt bin ich kein SPS-Programmierer, aber mich würde schon interessieren, wie dieses Programm aufgebaut ist und was es genau macht (schon, um im Fall der Fälle die SPS nachbilden/ersetzen zu können).

Daher meine Frage: Gibt es die Möglichkeit, aus den EPROM-Daten wieder das ursprüngliche Programm, also quasi den Quelltext, zu erzeugen - oder ist das schon der Quelltext?

Eine (vermutlich teure) Entwicklungssoftware etc. wäre für mich wohl übertrieben. Mir reicht es, wenn ich mir das Verhalten anschauen und darauf aufbauend dann bei Ausfall etc. (ist ja schon 30 Jahre alt) Ersatz per Mikrocontroller programmieren könnte.

Vielen Dank für jeden Tipp für einen Anfänger!

Chris

TIA Mobile Panel 277F IWLAN V2 WLAN deaktivieren

$
0
0
Hallo Zusammen,

ich habe ein Mobile Panel 277F 8" IWLAN V2 und projektiere über das TIA V14.
Besteht bei diesem Panel die Möglichkeit das WLAN aus der Runtime zu deaktivieren?

Viele Grüße,
Stark

Diagnose IO Link

$
0
0
Hallo zusammen

Frage an diejenigen, die das schon mal umgesetzt haben:

Wie verhält sich der IO-Link Master (Siemens, ET200SP oder ET200Eco PN) bei Ausfall eines IO-Link Teilnehmers ? Schickt er dann eine OB82-Diagnoseanforderung oder ruft er andere OBs auf ? Was steht dann im TINFO / AINFO Block ?

Danke.

Step 7 F-Ablaufgruppe nicht aufgerufen

$
0
0
Hi,

ich teste derzeit ein Sicherheitsprogramm auf einer Teststation mit einer CPU400 und ET200 - Station mit mehreren F-DI / F-DO Karten.
Nachdem ich ein Programm für einen Gefahrenbereich geschrieben habe wollte ich diesen auf der Teststation erst einmal testen / mögliche Fälle durchspielen. Ich habe die CPU Urgelöscht, nachdem ich mein neu erstelltes Programm auf die CPU generiert und geladen habe, bekomme ich die Meldung im Sicherheitsprogramm bearbeiten unter Aktueller Status:
"F-Ablaufgruppe nicht aufgerufen"
Ich habe an der CPU oder ET200 keine Fehlermeldungen.

Alle Einstellungen mit dem FCALL Baustein sollten passen soweit wie ich das überblicke.

Kann mir jmd. einen Tipp / Rat geben wie ich diesen Status entgegenwirke.

Mfg.
Ni.

PS: HW-Config stimmt mit dem TestRack überein. Habe alles dementsprechend hardwaretechnisch angepasst.

TIA WRREC - Error meldung

$
0
0
Hallo zusammen,

ich habe folgendes Problem:
Ich möchte mittels WRREC mit einem HMI auf das Peripherie Gerät schreiben. Und zwar werden dort Operator-Name und Location gespeichert.
In einem HMI habe ich ein "E/A-Feld" erstellt in dem man den Namen eintippen kann.

Nun ist es aber so, dass ich des Öfteren eine Error-Meldung bekomme, je nachdem wie ich die SPS gestartet/gestoppt habe. Noch läuft das Ganze nicht in einer Anlage, soll aber bald dort laufen und da wäre so etwas fatal. Denn jedes Mal wenn der Operator seinen Namen dann eingibt, wird der Name aus dem Gerät gelesen und überschrieben.

Habe das Ganze mal unten als Bild hinterlegt, hoffe ihr könnt mir helfen.

Zur Funktion:
1. Wird im HMI sobald man auf das EA-Feld drückt die Bool-Variable HMI-Set1 von 0 auf 1 gesetzt.
2. Dann wird die variable Operator mittels Ausschaltverzögerung auf 1 gesetzt. (Mein Gedanke war, wenn ich fertig mit der Eingabe bin, soll die 1 noch kurz gehalten werden, damit das Ganze hochgeschrieben wird --> Ka ob das so richtig ist)
3. Wenn nun die variable "Operator" auf 1 ist, schreibt man auf das Peripherie-Gerät.
4. Wenn diese eben 0 ist, dann liest man das Peripherie-Gerät aus.

Warum funktioniert das bei mir nicht? Was mache ich falsch, hoffe ihr könnt mir weiter helfen.
Angehängte Grafiken

TIA S7 TIA Füllstandsanzeige Visuallisieren

$
0
0
Hallo, bin ganz neu im Thema Programmieren, muss jetzt aber eine Behälter Beflüglung programmieren.
Ich habe einen Sensor der mir 4- 20 mA raus gibt, die hab ich auch mit norm_x und scale_x verarbeitet.
Jetzt möchte ich aber noch das ganze im HMI Darstellen. Wie bekomm ich das hin das mir der füllstand dargestellt wird.
Benutze ein TP1500 Comfort und eine S7 1200 mit dazugehörigem kram.

MfG.

TIA device name aus HW Konfig verwenden

$
0
0
Servus Leute ich habe ein Problem

Gibt es eine Möglichkeit den Namen, den man einem PN Teilnehmer in der HW Konfig gegeben hat, als String im Programmteil zu verwenden.
Mein Problem ist, ich habe viele Bausteine wo der divice name als String z.B. 'DD001-KF74' anparametriert ist. Es werden leider nun immer wieder Namensänderungen in der HW Konfig vorgenommen und ich müsste jedesmal mein ganzes Programm durchforsten und überall, wo verwendet, den Namen per Hand ändern.

Jemand von den Profis eine Iddee?

Danke

A08526 (F) PROFINET: Keine zyklische Verbindung

$
0
0
Hallo Leute,
ich habe drei CU240E-2 PN in Verbindung mit einer CPU 1511-1 PN über Profinet am laufen, die Antriebe lassen sich komplett steuern und ich bekomme auch alle Werte die ich projektiert habe zurück auf meine CPU. (Telegramm 352)
Die Bus LED am Antrieb leuchtet nicht, und auch sonst hat der Antrieb keine Störung außer der fehlenden zyklischen Verbindung zum Controller. Die Ip Adressen sind im Projekt richtig eingestellt und die Profinet Namen sind vergeben.
Der einzige Unterschied besteht in der Firmware Version der Online Kofiguration. Offline 4.7.10 Online 4.7.10 HF1 wobei ich nicht weiß ob das überhaupt einen Unterschied macht.
Nun erhalte ich als Warnung aber dauerhaft die oben genannte A08526 (F) PROFINET: Keine zyklische Verbindung. Da ich die Fehlermeldungen als Textliste auf mein HMI übertrage will ich das nicht einfach ignorieren....

Hat da vielleicht jemand einen Tipp?


Gruß Philipp

TIA "DateiSpeichernAls" Browser gesucht.

$
0
0
Hey Leute,

Will mit einem Script unter WinCC Advanced eine Satei speichern.
Zum öffnen funktioniert es mit dem "ÖffneDateiBrowser" schon perfekt.
Speichern nicht.
Mein Problem ist, das wenn ich im FileBrowser einen Dateinamen eingib,
mit OK der name nicht übernommen wird :-(
Nur wenn es die Datei schon gibt.
Unter .net gibt es einen eigenen SaveFileDialog.
Wie geht das unter WinCC Advanced?

Überlagerung bzw. Überlappung von zwei Prozessdaten

$
0
0
Hallo,

ich hab heute Angefangen mein erstes Projekt in PC Worx zu erstellen und programmieren. Die Umstellung von TIA fällt mit tatsächlich sehr schwer.

Nach vielen lesen und ausprobieren bin ich bis zur Verknüpfung der Prozessdaten gekommen. Nun bekomme ich nachdem ich diese durchgeführt habe folgende Fehlermeldung mit der ich so Garnichts anfangen kann.

Überlagerung bzw. Überlappung von zwei Prozessdaten [Device=1.0.7, Signal 1 = ~DO 8, Signal 2 = 2.1]

Leider ist die Option zum Fehler springen ausgegraut...

Ich verarbeite nur digitale Ein- und Ausgänge...


Würde mich über Tipps und Hilfe freuen.

Vielen Dank im Voraus.
Angehängte Grafiken

Komponentenauswahl für Feldbussystem mit S7 300

$
0
0
Sehr geehrte Forennutzer,
zu folgendem Hintergrund habe ich eine Frage bezüglich der Realisierung.

Folgende Komponente möchte ich beschaffen:
Kommunikationsprozessor CP 5611 A2

Folgende Komponente ist vorhanden:
Simatic S7-300 / 312-5AC02-0AB0
Profibus Kabel+Stecker

Folgendes soll realisiert werden:
Mittels Snap 7, Libnodave oä soll über den Profibus die S7 angesteurt werden. Ist dies mit der Beschaffung des Kommunikationsprozessor möglich, bedarf es weiterer Komponenten oder ist der oben genannte Kommunikationsprozessor für das Vorhaben falsch.
Viewing all 49738 articles
Browse latest View live