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

TIA HW Export mit Netzparametern

$
0
0
Hallo zusammen,

nachdem ich schon einige Zeit fleißig mitlese und ich schon oft echt glücklich über dieses Forum war find ich für mein jetziges Problem leider noch keine Lösung.

Ich würde gerne meine HW-Konfig exportieren um sie anschließend auszuwerten. In erster Linie geht es um die Kommunikationsparameter. Damit ich mit einem x-beliebigem Gerät meine Eingänge und Ausgänge steuern könnte.
Ich kenne bis jetzt nur den Export als CAx-File, da stehen dann zwar der Netztyp, die Adressen und die Topologie drin, allerdings nicht die Übertragungsgeschwindigkeit, Master Slave Einstellungen und so.

Kennt jemand eine Methode wie man das rausziehen kann oder in welchem File diese Daten gespeichert sind?

Grüße
Aschenauer

TIA flexibles array

$
0
0
Hallo,
ich würde gerne ein Rezept erstellen, das aus verschiedenen PLC_Types besteht.

Die Types sollten von der Struktur und Größe her flexibel sein.

Also sollte ein DB erstellt werden, in dem ein Rezept (Array) verschiedene PLC_Types beinhaltet um Schritte über eine Indexvariable ablaufen zu lassen

Wie würdet ihr hier vorgehen (das es in der SPS und nicht der Visu läuft wäre Voraussetzung)

WinCC Gestartetes Script beenden nach bestimmter Zeit? Display hängt sich auf

$
0
0
Hallo
wir haben ein Script welches eine csv Datei nach jedem Produktionszyklus auf einen Server kopiert (Aufruf ca alle 2-3 Minuten)

Das Script prüft in der Mitte des Codes ob der Server vorhanden ist. (hab ich so zumindest unten verstanden)

Leider kommt es manchmal vor, dass die Verbindung zum Server unterbrochen ist und das Script hängt sich dann irgendwann auf, das heisst es werden keine Daten mehr erfasst und das Display wird sehr langsam. Es kam z.b. Fehlermeldung "Überlast Script"

Wie kann man das Script erweitern, dass z.b. nach 10 sekunden ohne Verbindung / Vorhandensein Server / der Datei das Script von alleine abbricht?

Idealerweise (optional) mit einer generierten Fehlermeldung "Serververbindung gestört" und ein Bit gesetzt wird (für die SPS)

Code:

'Deklaration
Dim fs, Quelle, Ziel, Datei, Datum, Zeit


M_Watchdog_Script = True


Datum = CStr(DatePart("d",Date)) & "." & CStr(DatePart("m",Date)) & "." & CStr(DatePart("yyyy",Date)) 
Zeit = Hour(Now) & "h"
Quelle = "\Storage Card SD\SPS\Daten\"
Ziel = "\\Servername\SPS\Daten\" & Datum & " " & Zeit & "\"




'Fehlerroutine
On Error Resume Next


'Create object - Objekt erstellen
Set fs = CreateObject("FileCtl.FileSystem")


'Überprüfe SD-Speicherkarte
If fs.dir ("\Storage Card SD\") = "" Then
    Call ShowSystemAlarm ("Keine Speicherkarte erkannt")
Else


'Überprüfe Daten auf SD-Speicherkarte
If fs.dir ("\Storage Card SD\SPS\Daten\*.*") = "" Then
    Call ShowSystemAlarm ("Keine Daten auf Speicherkarte erkannt")
Else



'Überprüfe Server
If fs.dir ("\\Servername\SPS\Daten\") ="" Then
    Call ShowSystemAlarm ("Kein Server erkannt")
Else





'Unter-Verzeichnis erstellen
If fs.dir (Ziel) ="" Then
    fs.mkdir (Ziel)
End If


'Überprüfe erstelltes Verzeichnis
If fs.dir (Ziel) ="" Then
    Call ShowSystemAlarm ("Verzeichnis konnte nicht erstellt werden")   
End If


'Daten kopieren
Datei = fs.dir (Quelle & "*.csv")
If Datei <> "" Then
    While Datei <> ""
    fs.filecopy Quelle & Datei, Ziel & Datei
    Datei = fs.dir()
    Wend
End If


'Überprüfe kopierte Daten
If fs.dir (Ziel) ="" Then
    Call ShowSystemAlarm ("Daten konnten nicht kopiert werden")   
Else
   
End If
End If
End If
End If


Set fs = Nothing


M_Watchdog_Script = False


End Sub

danke euch.

TIA Tasten Bezeichnung wird nicht übernommen auf Panel

$
0
0
Hallo, ich habe hier eine Panel TP700 Comp. TIA 15.

Immer wenn ich in TIA einen neue Taste auf meiner Oberfläche einfüge, wird die Bezeichnung der Taste nicht übernommen. Es bliebt immer die alte. Mit andern Worten. In Tia gebe ich der Taste z.B. den Namen Lift aber wenn ich das ganze übertragen habe, steht da text oder wenn ich eine Taste aus einen andern Projekt kopiere, dann steht da z.B. der alte Text auf dem Panel ob wohl ich den Text in TIA angepasst habe.

Hat jemand eine Idee was ich machen kann?

Sonstiges Welches AG PG Kabel?

$
0
0
Habe ein Siemens Filed PG mit S5forWindows . Welches Kabel benötige ich um auf eine S5 100 CPU 103 zugreifen zu können? Ein PG com Kabel 9395 hab ich, aber das passt nicht. welche treiber benötige ich noch am PG?
MPI Schnittstelle und USB Schnittstelle vorhanden.

Lib zum lesen/schreiben von eCockpit Codesys 3.5 PC (Excel/CSV) Gibt es das?

$
0
0
Hallo,

Lib zum lesen/schreiben von eCockpit Codesys 3.5 <-> PC (Excel/CSV) Gibt es das?
Wahlweise auch Alternativen.

TIA PM-Quality, PM-Control, PMS

$
0
0
Hallo,
hat jemand Erfahrung mit diesen Systemen und kann diese (nicht) weiter empfehlen?
Gruß
Gerri3d

Step 7 SCL Eingang TIME Startwert vorgeben

$
0
0
Hallo zusammen,

ich musste zu einem SCL- Baustein, der den Telegrammverkehr mit dem überlagerten System regelt einen Eingang hinzubauen über den man die Telegrammwiederholungszeit einstellen kann.
Vorher war die auf 10Sekunden fest eingestellt, nun soll das ganze anpassbar sein.

Dabei kam die Frage auf, wie man so einem Eingang einen Startwert einstellen kann, damit wenn die Variable fehlt das Ding nicht mit 0MS loslegt.
Folgendes habe ich aus einem Tread hier im Forum abgeleitet. Dort steht ein Beispiel für Arrays drin.
Code:

VAR_INPUT
    itWdhZeit      :TIME := T#10S;      //Telegrammwiederholungszeit
END_VAR

Interessehalber wollte ich mal schauen, ob das so funktioniert und hab beim FB- Aufruf die Variablenanbindung weggelassen.

Nun läuft der Baustein auf unserem Testsystem, aber anstatt 10S in der Wiederholungszeit hat er T#5M27S685MS drin stehen.

Wüsste jemand wo mein Fehler ist?

Danke

TIA in SCL Schleifen Flankengetriggert ausführen

$
0
0
Hallo,

ich bin lange in der FUP/AWL-Welt unterwegs gewesen und muss mich nun mit SCL anfreunden.

Auf folgendes Problem bin ich nun gestoßen:

Bei einer Freigabe soll ein Wert in das erste Array-Element geschrieben werden, bei der nächsten Freigabe in das Zweite Array-Element....

In AWL würde meine Lösung dafür so aussehen:

U "A_Kuka_FreigabeScheibeEinlegen"
FP "Flanke_11.1"
SPBN out


L "d_Sickmessung".Analogwert_Sick1_mm
T "d_Sickmessung".Sick1["d_Sickmessung".Counter]


L "d_Sickmessung".Counter
L 1
+I
T "d_Sickmessung".Counter


L "d_Sickmessung".Counter
L 10
>I
SPBN out


L 1
T "d_Sickmessung".Counter


out: NOP 0


Meine Idee in SCL war folgende:

"Flankenmerker" := "A_Kuka_FreigabeScheibeEinlegen" AND NOT "Impulsmerker";
"Impulsmerker" := "A_Kuka_FreigabeScheibeEinlegen";

WHILE Flankenmerker and "d_Sickmessung".Counter < 11 DO
"d_Sickmessung".Sick1["d_Sickmessung".Counter] := "d_Sickmessung".Analogwert_Sick1_mm;
"d_Sickmessung".Counter := "d_Sickmessung".Counter + 1;
END_WHILE;

IF "d_Sickmessung".Counter >= 11 THEN
"d_Sickmessung".Counter := 1;
END_IF;

Das funktioniert natürlich nicht weil die Schleife in einem SPS-Zyklus alle 10 Werte mit einer Freigabe beschreibt.

Leider habe ich keine Idee wie das sonst funktionieren soll. (klar ich könnte mit der Case-Anweisung jeden Wert einzeln zuweisen, aber das ist für größere Arrays keine Option)

hat jemand eine Idee?

Gruß

Step 7 Bits schieben/verknüpfen und am Ende nur ein Vergleicher?

$
0
0
Hey,

anbei ein Auszug aus einem AWL-Programm das ich zurückgeladen habe, da leider keinerlei Symbolik existiert und ich das Programm nun mit Symbolik ausstatten muss.

Habe es umformatiert damit es im FUP darstellbar ist (hoff ich).



Sehe ich das richtig das aus dem eigentlichen DB230.DWB276 ein Muster erstellt wird um es anschließend mittels DB15.DBW0 und DB15.DBW4 aufzuschlüsseln?
Es wird später nochmals abgefragt ob das jeweilige Ergebnis
DB236.DBW20/22 eine INT-Zahl größer 1000 ist, wodurch das eine, oder wenn nicht, ein anderes Ventil geöffnet wird.

Hängt also vom DB15.DBW0/DB15.DBW4 jeweils ab was darin stand.

Die Zwischenwerte im DB15.DBW50/54/64 werden im Programm nicht nochmals aufgerufen, auch nicht überlappend.

#Ventil_minus1 und #Ventil_wd ist jeweils eine Temp-Variable im FC die ich so benannt habe.




Hätte man nicht also eigentlich auch je nach Zahl (1-15) in DB230.DBW276 abfragen können ob Zahl 4,5,1 da ist und dann schalten?
Schaut irgendwie übersichtlicher aus dann statt...dieses :D

Aus welchem Grund wurde das so programmiert? Weiß das jemand?



edit: Code aus Quelle generiert (sauberer)


Code:

U    M      0.1;
      =    L      4.0;
      U    L      4.0;
      SPBNB _003;
      L    DB230.DBW  276;
      L    1;
      -I    ;
      T    #Ventil_minus1;
_003: NOP  0;
      U    L      4.0;
      SPBNB _004;
      L    #Ventil_minus1;
      T    #Ventil_wd;
_004: NOP  0;
      U    L      4.0;
      SPBNB _005;
      L    1;
      T    DB15.DBW  50;
_005: NOP  0;
      U    L      4.0;
      SPBNB _006;
      L    #Ventil_wd;
      L    DB15.DBW  50;
      SLW  ;
      T    DB15.DBW  50;
_006: NOP  0;
      U    L      4.0;
      SPBNB _007;
      L    DB15.DBW  50;
      L    DB15.DBW    4;
      UW    ;
      T    DB15.DBW  54;
_007: NOP  0;
      U    L      4.0;
      SPBNB _008;
      L    DB15.DBW  50;
      L    DB15.DBW    0;
      UW    ;
      T    DB15.DBW  64;
_008: NOP  0;
      U    L      4.0;
      SPBNB _009;
      L    DB15.DBW  54;
      T    DB236.DBW  20;
_009: NOP  0;
      U    L      4.0;
      SPBNB _00a;
      L    DB15.DBW  64;
      T    DB236.DBW  22;
_00a: NOP  0;

Sonstiges Historische Daten in Acron einlesen

$
0
0
Hallo Zusammen,

ich habe ein Problem. Ich möchte historische Daten in Acron8 einlesen. Die Daten habe ich wie in Acron angegeben in Excel aufbereitet und im Importpfad als .csv hinterlegt. In Acron Designer wurde von mir eine neue Gruppe mit zugehörigen Autogrößen (Lufttemperatur etc.) angelegt. Außerdem habe ich in Acron Graph eine Gruppe mit neuem Diagramm angelegt. Die zugehörigen Variablen, welche ich im Designer angelegt habe, konnte ich hier auch zuweisen. Aber die Daten werden nicht geplottet. Ich vermute, dass die Daten aus irgendeinem Grund im Importpfad nicht eingelesen werden.

Hat jemand eine Idee, wo ich noch nach dem Fehler suchen könnte?

Viele Grüße
Tectron

eCockpit Scrollbar Alarmtabelle Webvisu

$
0
0
Hallo,

ich versuche mich gerade mit der Visu von Alarmen. (750-8100)
Nun hab ich folgendes Problem, bei der Online Visu im eCockpit habe ich die Scrollbar, jedoch nicht in der WebVisu und auch nicht in der VisuApp.

Woran kann das liegen?
Danke für die Hilfe...

Viele Grüße, Jan

Unity Pro Projekt-Browser "defekt"

$
0
0
Hallo zusammen,

woran kann es liegen, wenn in Unity Pro der Projekt-Browser in der Strukturansicht statt des vollständigen Projekts nur noch den Punkt "Elementare Variablen" anzeigt und sonst nichts?
Er tut dies nur bei einem bestimmten Projekt, alle anderen kann ich mir normal anzeigen lassen. - Ich habe das Fenster vollständig geöffnet, d.h. weder Scrollbalken nach oben/unten noch nach rechts/links. Siehe beigefügte Screenshots:
fehlerhaft: Unity Project Browser fehlerhaft.JPG
normal: Unity Project Browser normal.JPG

Für sachdienliche Hinweise bin ich wie immer dankbar!

Viele Grüße

Michael

P.S.: das Problem ließ sich dadurch lösen, das Projekt einfach nochmal neu aus der SPS auszulesen. Falls mir aber jemand sagen kann, wie ich das "angerichtet" haben könnte, wäre trotzdem gut :-)

EV-PLCC-AC1-DC1 Serielle Kommunikation

$
0
0
Hallo,

ich beschäftige mich im Rahmen meiner Praxisphase mit der DC-Ladesteuerung von Phoenix Contact (EV-PLCC-AC1-DC1) und verwende PC WORX Express zur Programmierung.

Ich bin aktuell noch damit beschäftigt mich mit der Ladesteuerung vertraut zu machen und stoße dabei auf Probleme mit der seriellen Schnittstelle.

Zur Verwendung dieser werden spezielle Baustein von PC WORX zu Verfügung gestellt SERIAL_INIT, SERIAL_SEND und SERIAL_RECEIVE. Die Bausteine an sich habe ich bereit ohne Fehlermeldung in Betrieb nehmen können, dennoch bekomme ich keine Datenübertragung zustande.( Falls jemand Probleme bei den Parametern der SERIAL_INIT hat, die Werte im Datenblatt sind leider nicht korrekt angegeben...)

Da ich zu dem Thema fast keine Informationen im Internet finden konnte und das Datenblatt auch nicht viel her gibt hoffe ich darauf hier Antworten zu finden.

mfg FunK

WAGO PFC 200 Controller zu MODBUS TCP SLAVE verbinden

$
0
0
Hallo liebe Community,

ich hoffe das ihr mir helfen könnt!
Ich habe ein Problem damit die Werte meines Modbus TCP Slaves einzulesen. Dieser ist ein a-eberle PQI-DA-Smart, der über Modbus TCP SPannung,Strom usw.. ausgeben kann. Ich habe versucht dies über den WAGO Datalogger darzustellen, jedoch schreibt der in die .csv Datei nur die Uhrzeit und die Werte 0.00. Er bekommt also keinen Input. Ich bekomme es nach langen versuchen leider immer noch nicht hin die Werte darzustellen bzw. auszulesen!

Code:

PROGRAM PLC_PRG
VAR

    Datalogger: WagoAppDatalogger.FbDatalogger;
    xActivate: BOOL := TRUE;
    aValues: ARRAY [1..MAX_CHANNELS] OF REAL;
    xEvent: BOOL := TRUE;
    typConfigParameters: typConfigDatalogger;
    leistung: ARRAY [1..MAX_CHANNELS] OF WORD;
    ChannelConfig : typAIChannel;
    oDatalogger : FbDatalogger;
//modbus slave   
modbus_slave: WagoAppPlcModbus.FbMbSimpleServerTcp;
    //xOpen: BOOL;
    //wPort: WORD;
    //bUnitID: BYTE;
    //utKeepAlive: BOOL;
    xEnable: BOOL := TRUE;
    //myInputRegisters: POINTER TO WORD;
    //myHoldingRegisters : WORD;
    //awHoldingRegisters: WORD;
    //Modbus Slave
xOpen : BOOL := TRUE;
wPort :WORD := 502;
bUnitID : BYTE:= 1;
//utKeepAlive : BOOL := TRUE;
myInputRegisters    :  ARRAY[100..200] OF WORD;    // Modbus word address 100 .. 200
    myHoldingRegisters  :  ARRAY[0..20] OF WORD;      // Modbus word address  0 .. 20
   
    MB_DI0:BYTE;
    MB_DI1:BYTE;
    awInputRegisters: ARRAY [100..200] OF WORD;
    awHoldingRegisters: ARRAY [0..20] OF WORD;
END_VAR

Code:


        //Parametrierung der Speicherung
        typConfigParameters.bDatalogger_type:=3;
        typConfigParameters.atypChannelConfig[1].xChannelExists := TRUE;
        typConfigParameters.atypChannelConfig[1].sChannelName := 'Leistung';
       
        typConfigParameters.xCyclicLogging := TRUE;
        typConfigParameters.bInterval := 3;
        typConfigParameters.uiIntervalFactor := 2;
       
       
        typConfigParameters.bDateFormat := 9;
        typConfigParameters.bTimeFormat:=1;
        typConfigParameters.sFilename := 'test.csv';
   


    modbus_slave(
        awInputRegisters := myInputRegisters,
        awHoldingRegisters := myHoldingRegisters,
        awInputRegisters    := myInputRegisters,
        awHoldingRegisters  := myHoldingRegisters);




Datalogger(
    xActivate:= xActivate,
    aValues:= aValues,
    xEvent:= xEvent,
    typConfigParameters:= typConfigParameters,
    oStatus=> ,
    sStatus=> ,
    xReady=> );
   
    modbus_slave(
    xOpen:= xOpen,
    wPort:= wPort,
    utKeepAlive:= ,
    xIsOpen=> ,
    xError=> ,
    oStatus=> ,
    udiConnectedClients=> ,
    bUnitId:= bUnitID,
    axDiscreteInputs:= ,
    axCoils:= ,
    awInputRegisters:= ,
    awHoldingRegisters:= ,
    oMbAccessInfo=> );


TIA Variablen und PowerTags

$
0
0
Hallo !
Kann ich mir mit einem Script die Anzahl der verwendeten Variablen und verwendeten Powertags sowie den Zeitstempel der Generierung und die genutzten Bytes anzeigen lassen ?
Schonmal besten Dank.

Step 7 Was bedeutet dieser Fehler? Siemens CPU 400 + Beckhoff über PN

$
0
0
Hi,

ich versuche das erste mal eine Siemens CPU mit einem Beckhoff Koppler reden zu lassen allerdings bekomm ich eine Fehlermeldung die ich nicht deuten kann. Kann mir jmd helfen bei USI: #16 1008? Ich hab euch mal die Hardware mit dem Fehler als Bild angehangen.
Beckhoff1.jpg
Beckhoff2.jpg

P.S. Ich muss doch Motorola Format wählen und nicht Intel, richtig?
Angehängte Grafiken

TIA TIA-Portal und No-Name PLC

$
0
0
Ich habe im Internet ein PLC mit
8 x Analog IN
8 x Digital IN
24 x Digital OUT
INTERNAL XLP
WEB Interface

für gerade mal 70 € gesehen, und möchte das Gerät für Testzwecke einsetzen.

Meine Frage: lassen sich solche Geräte mit TIA programmieren ?

und lässt Siemens überhaupt fremde Treiber zu ?

LOGO 8 - Programmierung und Messung Analogausgang 4-20mA

$
0
0
Hallo Freude,

mit einem Temperaturfühler Pt100 und einer LOGO 0BA8 + AM2 RTD + AM2 AQ soll unter anderem Temperatur gemessen und gleichzeitig der Wert an eine externe Automation per Analogausgang 4-20mA weitergeleitet werden.
Macht es Sinn (und geht das überhaupt) dafür einfach den Analogeingang direkt mit dem Analogausgang in der Programmiersoftware zu verbinden oder muss das anders realisiert werden?

Wie könnte ich einfach den Ausgang mit einem Multimeter messen oder müsste das mit einer externen Spannungsquelle 24V und einem kleinen Lastwiderstand erfolgen?
Irgendwie schweigt sich das Handbuch dazu aus.

Mfg, meinerseins

PlcOpen Motion für einfache Start- / Stopp- und Geschwindigkeitseinstellung

$
0
0
Google translate:
Hallo


Verwendet jemand plcopen-Bewegungssteuerungsblöcke zur einfachen Steuerung von Motoren mit Frequenzumrichter? Ie. für eine Pumpensteuerung mit MC_MoveVelocity zur Drehzahlanpassung


Dies hätte natürlich einen gewaltigen Aufwand im Vergleich zu der Funktionalität, die ich brauche, aber es scheint sehr praktisch zu sein, die Abstraktion zwischen plc / nc / drive, Fehlerüberwachung usw. zu erhalten. Vor allem, wenn EtherCat und CanOpen verwendet werden, bei denen die Zuordnung von Drive zu Axis zu sein scheint ist so ziemlich Plug and Play. Irgendwelche Gedanken?


Original text:
PlcOpen Motion for simple start/stop and speed adjustment

Hi


Does anyone use plcopen motion control blocks for simple control of motors with variable frequency drive? Ie. for a pump control using MC_MoveVelocity for speed adjustment


This would of course have huge overhead compared to the funcionality I need, but it seems very convenient to get the abstraction between plc/nc/drive, error monitoring etc. Especially if using EtherCat and CanOpen where it seems like the mapping of drive to axis is pretty much plug and play. Any thoughts?
Viewing all 50122 articles
Browse latest View live


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