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

Was tun bei Fehler "update frame references" bei Bibliotheks-Objekten?

$
0
0
Weiss jemand, wie man den Dialog «Updating the frame parameters» manuell öffnen kann?

Hintergrund:
Wenn man nach dem Ändern der Schnittstelle eines Visu-Elements den Dialog mit «Abbrechen» schliesst, kommt natürlich immer die Fehlermeldung:
«The interface of the referenced visualization <xxx> does not match the current configuration. Please do an update of the frame references in the current visualization.”
Bisher habe ich mir damit geholfen, dass ich die Schnittstelle halt noch einmal geändert habe, denn dann erscheint der Dialog ja noch einmal.


ABER: wenn ich ein Objekt in einer Bibliothek ändere und dann das die Bibliothek im Projekt aktualisiere, dann erscheint der Dialog nicht. Aber natürlich wieder die Fehlermeldung.
Was kann man dann tun? (Ausser alle Instanzen zu löschen und nochmals neu anzulegen?)
Wie kann man die Referenzen updaten/den Dialog öffnen?


Danke für Eure Hilfe!

Aufbau der Alarmzusamtzinformation für PROFINET Maintenance Alarme

$
0
0
Hi

Des Thema hat es in sich. Wenn ich mir so das offizielle Dokument "Von PROFIBUS DP nach PROFINET IO" angucke, dann steht da so gut wie gar nichts sinnvolles drin.

Tabelle 8-17 Dateninhalt des Zielbereichs AINFO bei Alarmen mit Wartungsanforderung erzählt mir folgendes:

Code:

0 und
1
MW 1500 Blocktype W#16#0002 Alarm-Transportkanal 2
2 und
3
MW 1502 Bausteinlänge W#16#0032 Bausteinlänge: 50 nachfolgende Bytes
4 und
5
MW 1504 Bausteinversion W#16#0100 Version: W#16#0100
6 und
7
MW 1506 Alarmtyp W#16#000E Alarmtyp: Änderung im Portstatus
8 bis
11
MD 1508 API DW#16#00000000 API: 0 profillos
12 und
13
MW 1512 Slot W#16#0000 Steckplatznummer: 0000
14 und
15
MW 1514 Subslot W#16#8001 Submodulsteckplatznummer der Alarm auslösenden
Komponente: Port 1
16 bis
19
MD 1516 Modul-ID DW#16#00000363 Modul-Identifikation; eindeutige Information der
Alarmquelle
20 bis
23
MD 1520 Submodul-ID DW#16#00000001 Submodul-Identifikation; eindeutige Information der
Alarmquelle
DW#16#00000001: ausschließlich Sublot 1
zugeordnet

24 und
25
MW 1524 Alarmspecifier W#16#0004 Alarmspecifier / Diagnosestatus
W#16#0004 entspricht 0000000000000100
Bit 0 - 10: 00000000100: Sequenznummer ist 4
Bit 11=0: keine Kanaldiagnose vorhanden
Bit 12=0: keine herstellerspezifische
Statusinformationen vorhanden
Bit 13=0: (mindestens) 0 Kanaldiagnosen vorhanden
Bit 14=0: reserviert
Bit 15=0: keine der innerhalb dieser AR projektierten
Baugruppe meldet eine Diagnose
26 und
27
MW 1526 Formatkennung W#16#8100 Nach Byte 26 und 27 folgt eine Wartungsdiagnose
(W#16#8100: USI für Maintenance)
28 und
29
MW 1528 BlockType W#16#0F00 Blocktyp: Datensatz vom Typ Wartungsdiagnose
30 und
31
MW 1530 BlockLength W#16#0008 Blocklänge: 8 Bytes
32 und
33
MW 1532 BlockVersion W#16#0100 Blockversion: W#16#0100
34 und
35
MW 1534 Reserved W#16#0000 Reserviert
36 bis
39
MD 1536 MaintenanceStatus
Hier:
MaintenanceRequired
W#16#00000001 Wartungsdiagnose: Wartungsanforderung
40 und
41
MW 1540 Formatkennung W#16#8002 Nach Byte 40 und 41 folgt die erweiterte
Kanaldiagnose
(W#16#8002: USI für ExtChannelDiagnosis)
42 und
43
MW 1528 Kanalnummer W#16#8000 Identifikation der Alarmquelle: Submodul
44 und
45
MW 1530 Info und Datenformat W#16#0A00
Entspricht im
Dualzahlensystem:
000010100000000
0
W#16#0A00 entspricht 0000101000000000
ChannelProperties.Type (Bit 0-7)=00000000:
Fester Wert wenn ChannelNumber den Wert
W#16#8000 besitzt
ChannelProperties.Accumulativ (Bit 8)=0: Keine
Kanalfehler-Sammelmeldung
ChannelProperties.Maintenance (Bit 10/9)=01:
Diagnose
ChannelProperties.Specifier (Bit12/11)=01:
kommende Wartungsanforderung
ChannelProperties.Direction (Bit 13-15)=000:
herstellerspezifisch

46 und
47
MW 1532 Fehlertyp W#16#8007 Information über Übertragungsqualität der optischen
Leitung
48 und
49
MW 1548 Zusätzliche
Fehlerinformation
W#16#8000 Information: Systemreserve
50 bis
53
MW 1550 Zusätzliche
Fehlerinformation
W#16#00000010 W#16#00000010 entspricht 16 im Dezimalsystem
Darstellung erfolgt in 0,1 dB-Stufen
Wert für die Systemreserve:
16 x 0,1 dB = 1,6 dB

In diesem Block kommt ein Maintenance Alarm mit der Formatkennung 8100h, aber nach ihm kommt ein "ExtChannelDiagnosticData" mit der Formatkennung 8002h. Der Aufbau ist jeweils unterschiedlich.

1) Hängen die beiden zusammen ? Muss nach einem Maintenance mit 8100h immer ein "ExtChannelDiagnosticData" mit 8002h kommen ?
2) Kann ein Maintenance-Alarm alleine, also ohne nachfolgenden Block kommen ?
3) Können nach einem Maintenance-Alarm mehrere Folgeblöcke kommen, auch mit unterschiedlichen Formaten ?
4) Was bedeuet in dem Zusammenhang die Kennung 8001h "Multiple" und was kommt dann ?

Kurzum: wie lautet die Vorgehensweise zur korrekten Auswertung all dieser Daten ? Hilfe zum SFB54, das Handbuch "Automatisieren mit PROFINET" und selbst SIEMENS-Eigene Bausteine aus geschützten Librarys helfen da nicht weiter. Dort stehen Sachen drin, die sich gegenseitig widersprechen.

Servicetechniker international für optische Messtechnik (m/w/x)

$
0
0
Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	company-logo.jpg 
Hits:	3 
Größe:	3,7 KB 
ID:	48923

Servicetechniker international für optische Messtechnik (m/w/x
)
Carl Zeiss Spectroscopy GmbH
Jena

Sich etwas Neues trauen, über sich hinauswachsen und dabei die Grenzen des Machbaren neu definieren. Genau das ist es, was unsere
Mitarbeiter täglich leben dürfen und sollen. Um mit unseren Innovationen ein Zeichen zu setzen und Großartiges zu ermöglichen. Denn
hinter jedem erfolgreichen Unternehmen stehen eine ganze Menge faszinierende Menschen.

Führen Sie weltweit anspruchsvolle Servicetätigkeiten an den Anlagen unserer Kunden aus und werden Sie Experte der technischen
Bandbreite unserer anspruchsvollen Spektrometersysteme. In Ihrer Position leisten Sie einen Beitrag, weltweit die Marktposition von
ZEISS Spektroskopie-Produkten zu stärken.

Ihre Rolle:
Sie installieren Neugeräte in enger Abstimmung mit unseren internationalen Kunden und nehmen diese in Betrieb. Außerdem führen
Sie den Service und die Instandhaltung unserer Produkte durch (telefonisch, remote und vor Ort) und fungieren in Ihrer Rolle als Marken-
botschafter von ZEISS weltweit. Dabei analysieren, beheben und dokumentieren Sie Störungen und Probleme eigenständig. Als Teil
unseres Serviceteams arbeiten Sie als Schnittstelle zu unserem Vertriebs- und Applikationsteam.

Außerdem werden Sie:


  • technische Schulungen von Service-Mitarbeitern und Kunden in deutscher und englischer Sprache vorbereiten und durchführen
  • Service- und Schulungsdokumente in Englisch erstellen
  • die Ersatzteil-Logistik unterstützen und mit den lokalen Serviceingenieuren zusammenarbeiten

Ihr Profil:
Sie verfügen über ein erfolgreich abgeschlossenes Studium in den Fachrichtungen Elektronik, Automatisierungstechnik, Mikrosystemtechnik,
Mechatronik, Physik oder einer vergleichbaren Ausbildung zum Techniker. Sie konnten bereits Berufserfahrung im Service sowie in der
Systemintegration komplexer Instrumente oder Maschinen sammeln. Kenntnisse in der optischen Messtechnik können Sie nachweisen und
Sie bringen die Bereitschaft zu häufigen weltweiten Dienstreisen mit.

Ihre Arbeitsweise ist geprägt von Selbstständigkeit, einem hohen Maß an Zuverlässigkeit, ausgeprägter Kundenorientierung sowie einer
hands-on Mentalität. Dem Umgang mit anderen Kulturkreisen stehen sie aufgeschlossen gegenüber und zeigen eine hohe Flexibilität bezüglich
Ihrer Einsatzzeiten. Sie verfügen über solide Deutsch- und Englischkenntnisse und einem sicheren Umgang mit WindowsNetzwerken und
MS Office. Sie sind ein Teamplayer, haben Freude an anspruchsvollen und ständig wechselnden Einsatzbereichen und bringen eine hohe
Lernbereitschaft mit.

In einem offenen und modernen Umfeld mit zahlreichen Entwicklungs- und Weiterbildungsmöglichkeiten, arbeiten die Mitarbeiter bei ZEISS
in einer Kultur, die von Expertenwissen und Teamgeist geprägt ist. All das wird getragen von der besonderen Eigentümerstruktur und dem
langfristigen Ziel der Carl-Zeiss-Stiftung: Wissenschaft und Gesellschaft gemeinsam voranzubringen.
Heute wagen. Morgen begeistern.

Vielfalt ist ein Teil von ZEISS. Wir freuen uns unabhängig von Geschlecht, Nationalität, ethnischer und sozialer Herkunft, Religion, Weltan-
schauung, Behinderung, Alter sowie sexueller Orientierung und Identität auf Ihre Bewerbung über den Bewerben-Button.

Jetzt, in weniger als 10 Minuten bewerben.
Miniaturansichten angehängter Grafiken
Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	company-logo.jpg 
Hits:	- 
Größe:	3,7 KB 
ID:	48923  

TIA Bereichslängen Fehler bei RFID FB

$
0
0
Moin,

ich bin gerade dabei ein IO-Link System von Siemens mit dem RF210R zu programmieren.
Ich habe aus dem Internet vorgefertigte FBs genommen aber wenn ich den FB in die S7-1511-1 PN lade zeigt er Bereichslängenfehler an. den Fehlercode und den FB (in Text) Lade ich euch mal dazu. Ich danke im voraus schon mal allen Helfern.


Der Fehlercode:
Code:

Temporärer CPU-Fehler: Bereichslängenfehler in FB 4
betrifft OB 1 Ausführung
Lesezugriff DB-Bereich
fehlerhafte Adresse, Operand ersetzt
 
 PLC_1
interne Adressierungsdetails: Caddr=16#00000055, Bereich: DB-Bereich, Adr: 136


Hier ist der Teil des DB den ich relevant finde
db-bild.JPG



Der FB ist von Siemens. Dazu die PDF:https://cache.industry.siemens.com/d...DOC_V31_de.pdf
Code:

#adr_offset := #PORT_ADR;                          //start adress of port
#BLK := DPRD_DAT(LADDR := #HW_ID, RECORD => #REC_DAT);
#Status_Byte := #REC_DAT[#adr_offset];            //Status Byte
#Pres_bit := #Status_bit[5];                      //Presence bit. Transponder on field
#PRESENCE := #Pres_bit;
IF NOT #EXECUTE THEN
    #DONE := false;
    #ERROR := false;
    #STATUS := 0;
END_IF;
#diffToFour := WORD_TO_INT(#LEN_DATA) MOD 4;
IF #EXECUTE AND #EXECUTE <> #execute_req THEN        //Positive edge for d#reading of data
    IF NOT #BUSY THEN
        #ADR := #ADR_TAG;                                //Transpoder Adress
        #adrtag := WORD_TO_INT(#ADR);
        #length := #LEN_DATA;                            //Length of read Data
        #n_state := #Write_state;
        #BUSY := TRUE;
        #DONE := FALSE;                                  //reset all the output parameters                                 
        #ERROR := FALSE;
        #STATUS := 0;
        #i := 0;
        #bytemove := 0;
        //next step >> send write command
    ELSE
        #temp_Status_W[1] := 16#8102;                          //block is still active
        #temp_Status_W[0] := 16#0001;                          //Error identifier for block errors
        #STATUS := #temp_Status;
        #n_state := #Error_state;
    END_IF;
    IF #LEN_DATA < 4 THEN
        #temp_Status_W[1] := 16#8104;                              //length too short
        #temp_Status_W[0] := 16#0001;                              //identifier rfid errors
        #STATUS := #temp_Status;
        #n_state := #Error_state;
    END_IF;
END_IF;
#execute_req := #EXECUTE;
IF NOT #PRESENCE AND #PRESENCE <> #presence_fl THEN  //the tag has left the antenna  field
    IF NOT #DONE THEN
        #Timer_in_1 := true;                              //wait 5 sec
        #Timer_R_1 := false;
    END_IF;
END_IF;
#presence_fl := #PRESENCE;
IF #PRESENCE THEN
    #Timer_R_1 := true;
    #Timer_in_1 := false;
END_IF;
//-----------------------------------------------------------------------------------------------------//
//------------------------------------------start of state machine------------------------------------//
//-----------------------------------------------------------------------------------------------------//
CASE #n_state OF
    0://IDLE
        #i := 0;                                            //offset of puffer must be reseted
        #BUSY := false;
        #Timer_in_1 := false;
       
        //-------------------------------------------------Write state-----------------------------------------//
        //---------------------------------------------send write command--------------------------------------//
        //-----------------------------------------------------------------------------------------------------//
       
    2://Write_state
       
        IF #length > 0 THEN
            #DAT[#adr_offset] := 16#1;                      //Set write command
            #DAT[#adr_offset + 2] := #ADR_WRITE[0];            //Adr-H
            #DAT[#adr_offset + 3] := #ADR_WRITE[1];            //Adr-L
            VariantGet(SRC := #IDENT_DATA,
                      DST => #Write_Data);
           
            // IF #LEN_DATA > 4 THEN
                #DAT[#adr_offset + 4] := #Write_Data[#i - #bytemove];
                #DAT[#adr_offset + 5] := #Write_Data[1 + #i - #bytemove];
                #DAT[#adr_offset + 6] := #Write_Data[2 + #i - #bytemove];
                #DAT[#adr_offset + 7] := #Write_Data[3 + #i - #bytemove];
            //Just 4 Bytes are reserved for every transfer
        END_IF;
        IF #BLK = 0 THEN
            #n_state := #Telegram;                          //Telegram: Edit the read data
        END_IF;
       
        //-----------------------------------------------Telegram state----------------------------------------//
        //-----------------------------------------------------------------------------------------------------//
        //-----------------------------------------------------------------------------------------------------// 
       
    1://Telegram_state
       
        IF #length > 0 THEN                                  //Only when length of data>0 can continue 
            IF #Status_bit[6] THEN                            //IF RFID error has occured
                #temp_Status_W[1] := #REC_DAT[#adr_offset + 1];
                #temp_Status_W[0] := 16#0011;                          //Error identifier for RFID errors
                #STATUS := #temp_Status;
                #n_state := #Error_state;
            END_IF;
           
            #adr_offset := #PORT_ADR;
           
            //-------------------------- write command is ready------------------------------------------------//
           
            IF #Status_bit[7] AND #Status_bit[0] THEN
                IF #REC_DAT[#adr_offset + 2] = #ADR_WRITE[0] AND #REC_DAT[#adr_offset + 3] = #ADR_WRITE[1] THEN //received ADR must be ==sent ADR
                 
                    IF #BLK = 0 THEN
                        IF #Status_bit[7] AND NOT #Status_bit[6] THEN
                            #length := #length - 4;
                            IF #diffToFour <> 0 AND #length < 4 THEN
                                #bytemove := 4 - #diffToFour;
                            END_IF;
                            //if len is not dividable with 4 the adr offset has to be changed that the last (length < 4) command is done right
                            #i := #i + 4;                                  //offset must be changed
                            #ADR := INT_TO_WORD(WORD_TO_INT(#ADR) + 4)-INT_TO_WORD(#bytemove);    //Change the ADR on Transponder(4 Bytes)     
                            #n_state := #Write_state;                      //Start a new write command
                        ELSE
                            #n_state := #IDLE;
                        END_IF;
                    ELSE
                        #temp_Status_W[1] := INT_TO_WORD(#BLK);                //Error has to BLKMOV occured
                        #temp_Status_W[0] := 16#0001;                          //functions-Error identifier
                        #STATUS := #temp_Status;
                        #n_state := #Error_state;
                    END_IF;
                END_IF;
            END_IF;
            #BLK := DPWR_DAT(LADDR := #HW_ID, RECORD := #DAT);
           
        ELSE
            #n_state := #IDLE;
            #BUSY := false;
            #temp_Done := TRUE;
            #DONE := #temp_Done;
        END_IF;
       
        //------------------------------------------------------------------------------------------------------------//
        //-------------------------------------------------Error state------------------------------------------------//
        //---------------------------------------------error has occured----------------------------------------------//
       
    3://Error_State
        #temp_Error := TRUE;
        #BUSY := false;
        #ERROR := #temp_Error;
        #DONE := false;
        #Timer_in_1 := false;
        #Timer_R_1 := true;
        #n_state := #IDLE;
END_CASE;

//------------------------------------------------------------------------------------------------------------//
//-------------------------------------------------Timer------------------------------------------------------//
//------------------------------------------------------------------------------------------------------------//
#IEC_Timer_0_Instance_1(IN := #Timer_in_1,              //this timer will start, if the tag has left the antenna field
                        R := #Timer_R_1,
                        PT := #Timer_PT_1);
IF #IEC_Timer_0_Instance_1.Q THEN                      //error has occured. No tag on field during the 5 sec.
    #temp_Status_W[1] := 16#8101;                              //tag has left the field
    #temp_Status_W[0] := 16#0001;                              //identifier rfid errors
    #STATUS := #temp_Status;
    #n_state := #Error_state;
END_IF;

Angehängte Grafiken

TIA TP1200 Comfort kann nicht ueber Vipa VPN geladen werden

$
0
0
Hallo zusammen,

ich würde gerne ein TP1200 Comfort, in TIA V15 Update4 projektiert, via Teleservice Modul Vipa (Cloud) laden bzw. aktualisieren.
Leider bekomme ich dies nicht umgesetzt.
Geht dies generell nicht?
Dies hab ich mit der Suche gefunden https://www.sps-forum.de/hmi/80207-c...rreichbar.html
Typ PG/PC Schnittstelle: PN/IE
PG/PC Schnittstelle: alle ausprobiert
Verbindung: Direkt und auch PN2 ausprobiert
Gateway ist eingetragen.
Zugriff mit SmartClient funktioniert.

Was kann ich noch probieren?

Besten Dank schon im Voraus für die Hilfe.

Gruss mzva

TIA Remanentes Speichern mit "Writ_DBL"

$
0
0
Hallo Zusammen,

ich möchte einen Datenbaustein mit "Writ_Dbl" remanent sichern.

Nachdem diese Funktions ausgeführt wurde, wird mir angezeigt, dass es einen Unterschied zwischen dem Offline und dem Online Datenbaustein gibt, obwohl z.B. alle Werte gleich sind.
Bei einem genauen Vergleich sehe ich, dass die Prüfsumme und der Zeitstempel unterschiedlich ist.
Mache ich etwas falsch? Wie kann ich verhindern, dass ein Unterschied angezeigt wird?

Vielen Dank für eure Hilfe

e!COCKPIT ModbusTCP Floatwert zu Real konvertieren

$
0
0
Hallo zusammen,
ich denke dass es hier recht gut reinpasst da e!Cockpit etwas spezieller ist als das blanke Codesys.

Mein Problem ist aktuell das einlesen von Floats über Modbus TCP.
Verwendet wird ein 750-8207 zusammen mit mehreren Janitza UMG801
Der Zugriff und die Konfig über den Modbuskonfigurator (Netzwerkansicht) verlief wie gewohnt unproblematisch, nun kommt allerdings der Knackpunkt beim einlesen der Werte, da diese nur als Float vorliegen.
Probiert habe ich unteranderem schon den Datenpunkt als Real,LReal,Int,DWord und Word einzulesen mit dem ergebniss dass es in keine sinnvolles Format konvertiert wird.
Die Frage ist nun ob man es mit einem Baustein hinbekommt oder es andere Möglichkeiten ohne viel Aufwand (da es viele Datenpunkte werden) gibt mit denen man das Problem erschlagen kann.

Ich stehe etwas auf dem Schlauch, jeder Hinweis kann mir weiterhelfen

Danke
Gruß Robin

Step 7 Step 7 V5.6+SP1: Unterschiedliche Firmwareversion Offline zu Online

$
0
0
Hallo,

habe folgendes Problem:

Ich habe eine "alte CPU317-2 PN/DP" die mit dem neusten TIA V15.1 bearbeitet wurde (hier wurde wohl die Firmware auf Version 2.65 aktualisiert).
Diese CPU wird nun nicht mehr benötigt und ich möchte diese CPU mit einem gebrauchten Panel MP370 Touch – 12“ verbinden.

Das wollte ich mit WinCC und Step 7 V5.6+SP1 bewerkstelligen, hinzu kommt das ich die CPU317 zusätzlich noch mit einer CPU315-2DP verbinden möchte.
Die beiden CPUs möchte ich mit einem IBHLinkS7++ über ein Ethernet Kabel verbinden.

Jetzt habe ich das Problem, das ich beim laden der Baugruppen im NetPro immer die Meldung bekommen, das die Firmware Offline/Online unterschiedlich sind. (siehe Bild)

Fehlermeldung Unterschied Offline zu Online Version 2.65.jpg

IN Step7 kann ich aber keine aktuelle Firmware laden, muss ich/kann ich die CPU mit TIA wieder downgraden ?

Schon einmal Dank für eure Tipps !

Sinumerik 840Dsl Spindelgeschwindigkeit im SPS Programm

$
0
0
Hallo liebe Gemeinde,

ich habe hier eine Sinumerik 840Dsl (v04.08 SP4 HF6) das Grundprogramm habe ich mit TIA Portal erstellt und ich hab über die Datenbausteine "Chan1" DB21 und "Axis 5" DB35 Zugriff auf die Nahtstelle zwischen NC und PLC. Was mir fehlt ist allerdings die aktuelle Geschwindigkeit der Spindel (Achse 5). Die würde ich gern im SPS Programm verwenden. (Erst wenn nach Notaus ausgetrudelt darf die Tür entriegelt werden, wenn eine bestimmte Drehzahl überschritten Warnleuchte an usw.)

Der Antriebsparameter r63 "Drehzahlistwert geglättet" ist genau das was ich brauche, das liegt aber nicht mit in der Schnittstelle. Kriegt man das irgendwie auf die Nahtstelle?

Danke

toxico

Step 7 SINUMERIK 840D SL wie einsteigen?

$
0
0
Moin,

ich bin gerade an einer Anlage am Fehlersuchen.
Es ist einen SINUMERIK 840D SL (NCU 710.3B) + 3 Motoreinheiten verbaut.

Ich habe das erste mal mit einer SINUMERIK zu tun...

Der normale S7 Teil ist ja kein Problem, aber wie das zwischen der S7 und dem NC Teil funktioniert weiß ich nicht genau.

Gibt es da irgendwie einen gute Einstiegsdoku?

Meine Fragen wären:
-Wie wird die HMI(NC) Konfiguriert, gibt es da einen Konfigurator?
-Wie funktioniert die Verbindung Meldungen/Störungen/Befehle zwischen HMI(NC) und SPS
-Warum werden die Meldungen nach einen Neustart der Steuerung nicht gespeichert


Evtl kann mir ja jemand ein paar Tips geben.

Danke

UML Codegenerierung oder Reverse Engineering aus PLC code, welche ist sinnvoll?

$
0
0
Hallo Zusammen,

Ich verwende UML zur Beschreibung der Architektur des SPS Programms (Klassendiagramm, Zustandsmaschine) und nehme ich Enterprise Architect als Werkzeug zur Modellierung des UML Models.
UML Codegenerierung ist sehr interessant und habe ich ein Codegenerator in EA definiert, um aus den Modelle PLCopen XML Datei zu generieren.
Zweifellos braucht der generierte Code noch Nacharbeite in Codesys und ist nicht in Workflow nahtlos integriert.
Gleichzeitig versuche ich auch Reverse Engineering in EA zu machen. Aus dem PLCopen Datei der UML Modell in EA zu erzeugen. Für die Kunden, die für SPS Programmierung nicht gut sind, kann mit Reverse Engineering die SPS Software besser verstehen.

Dann kommt die Frage, welche ist sinnvoll, vorwärts oder rückwärts? oder sind beide sinnlos haha

vorwärts:

https://www.youtube.com/watch?v=RfDxkq_hDvw&t=407s

rückwärts:
leider noch nicht vollständig fertig

ich freue mich, deine Meinung zu hören

TIA Aktionen in Graph genau einmal ausführen

$
0
0
Hi,
ich habe eine Schrittkette für den Automatikbetrieb. An einer Stelle möchte ich gerne nach dem Lesevorgang mit einem Schreiblesegerät, die Lesedaten in die Schreibdaten kopieren (BLK_MOVE Befehl).
Das möchte ich in meinem Schritt genau einmal machen, also nicht einmal pro Zyklus sondern nur einmal beim "Betreten" des Schritts.
Liefert GRAPH da schon irgendwas?

Viele Grüße

Twin Cat 3.1 Fremdgerät einbinden

$
0
0
Guten Abend zusammen,
ich habe gerade die Aufgabe eine Siemens Safe Steuerung (CPU1512-F) per Share Device an einem Beckhoff Profinet Controller (IPC C6930) mit Win10 x64 zu betreiben.
Ich habe versucht mittels TIA V15.1 erzeugte GSD Datei im Beckhoff PLC Projekt einzubinden, was auch ersmal funktioniert hat. Allerdings bekomme ich wenn die Beckhoff Runtime starten möchte einen Page Fault.

Kann mir dabei vielleicht jemand weiterhelfen?
Wie muss die GSD aussehen?
Diagnose Möglichkeiten?

Mit freundlichen Grüßen
Yves

TIA HMI Textfelder sind nach Konvertieren / Kopieren unsichtbar und leer (Tia V16)

$
0
0
Hallo
ich hab ein Projekt migriert..
nun sind aber alle textfelder auf dem Bild leer aber vorhanden

Mache ich das HMI Projekt ohne Migration auf, dann sind die textfelder nach dem Hochrüsten auf V16 alle sichtbar.

Kopiere ich dann aber ein Bild (komplett) in das andere Projekt, sind die Textfelder wieder leer,. man kann sie aber anklicken auf dem Bild...

Kennt jemand dieses Problem und eine Lösung?

Projektbild geöffnet in V16 (mit text)
vor-kopieren.JPG

das ganze Bild dann in anderes Projekt kopiert.. Textfelder sind vorhanden aber alle texte sind weg..

nach-kopieren.JPG
Angehängte Grafiken

Sistemaneuling: Darstellung einer Rückführkreisüberwachung in Sistema.

$
0
0
Hallo liebe Forenmitglieder,

ich war bisher nur stiller Mitleser und immer davon beeindruck wie großzügig hier Wissen geteilt und Unterstützung geboten wird.
Ich hoffe Ihr könnt mir bei meinen Anliegen helfen, wäre euch dafür unendlich dankbar.

Ich muss mich das erste Mal selbst mit "Sistema" auseinandersetzen und bin jetzt auf ein Problem gestoßen, welches mir etwas Kopfzerbrechen bereitet:

Wie wird den eine Rückführkreisüberwachung in Sistema abgebildet?
In den IFA-Beispielprojekten konnte ich kein vergleichbares Projekt finden, welches dies beinhaltet oder Ich verstehe die Beispiele einfach nicht.
Muss eine Rückführkreisüberwachung überhaupt abgebildet werden?
In den IFA-Beispielen wird da anscheinend drauf verzichtet.

Meine definierte Sicherheitsfunktion "SF1: Schutzstopp Roboter durch Zellen-Wartungstüre" muss ein Pl d erreichen und ich habe das System nach Kategorie 3 aufgebaut.

Folgende Struktur habe ich in Sistema bisher realisiert:
Erfassen(SB) -> Auswerten FDI(SB) -> Auswerten FCPU(SB) -> Auswerten FDO(SB) -> Reagieren Signalumsetzer mittels Koppelrelais (SB) -> Reagieren Roboter (SB)

Anbei zwei Bilder, die die Verschaltung und die bisherige Darstellung der Sicherheitsfunktion in Sistema wiedergeben.

SistemaStoppSS2Roboter.jpgStopp SS2 Roboter SchaltbildV1.jpg


Ich werte die zwangsgeführten Wechselkontakte der Koppelrelais in der FCPU aus (im Bild grün dargestellt) zwecks Rückführkreisüberwachung.
FCPU ist eine S71200F und ich benutze den zertifizierten Baustein FDBACK.

Ich wäre euch echt dankbar wenn Ihr euch das mal anschaut und mir hier eine kleine Hilfestellung geben könntet, nicht falsch verstehen, ich will hier keinen meine Arbeit machen lassen, habe einfach einen großen Knoten im Hirn, den ich nicht gelöst bekomme :sad:.

Vielen Dank
Ben
Angehängte Grafiken

Elektronikentwickler Hardware & Firmware (m/w/x)

$
0
0
Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	company-logo.jpg 
Hits:	0 
Größe:	3,7 KB 
ID:	48945

Elektronikentwickler Hardware & Firmware (m/w/x)

Carl Zeiss Microscopy GmbH
Jena (Thüringen)

Sich etwas Neues trauen, über sich hinauswachsen und dabei die Grenzen des Machbaren neudefinieren. Genau das ist es, was
unsere Mitarbeiter täglich leben dürfen und sollen. Um mit unseren Innovationen ein Zeichen zu setzen und Großartiges zu
ermöglichen. Denn hinter jedem erfolgreichen Unternehmen stehen eine ganze Menge faszinierende Menschen.

Wir suchen Kollegen (m/w/x) die gerne Neues wagen. Sie werden:

  • im Rahmen von Entwicklungsprojekten in interdisziplinären Projektteams arbeiten oder diese leiten
  • Hardware- und Firmwaremodule mit Schwerpunkt analoge Schaltungstechnik entwickeln, simulieren, in Betrieb nehmen
    und bis zur Serienreife begleiten
  • Hardware- und Firmwarekonzepte für die Mikroskopie in Standort- und Teamübergreifenden Gruppen erarbeiten, sowie
    Teilprojekte leiten
  • sich mit anderen Entwicklungsabteilungen und externen Partnern abstimmen und dabei die externe Entwicklung von
  • Hardwarekomponenten betreuen, sowie die Entwicklungsergebnisse externer Entwicklungspartner übernehmen und
    integrieren
  • Aufgabenstellungen für andere Gewerke (z.B. Konstruktion & Software) formulieren
  • Ökonomiebetrachtungen und Vergleiche der zu entwickelnden elektronischen Einheiten anfertigen
  • Entwicklungsergebnisse dokumentieren und präsentieren
  • Fertigungs- und Servicebereiche bei der Einführung neuer Systeme unterweisen
  • Zutritt zu unserem Sicherheitsbereich erhalten. Wir weisen darauf hin, dass wir verpflichtet sind, bei allen Zutrittsberechtigten
    eine
  • Zuverlässigkeitsüberprüfung durchzuführen. (relevant falls Zutritt in den Luftsicherheitsbereich erforderlich ist)

Sie haben:

  • ein erfolgreich abgeschlossenes Hoch-/ Fachhochschulstudium der Elektrotechnik oder einer verwandten Fachrichtung
  • mehrjährige Berufserfahrung im Bereich der Hardware- und Firmwareentwicklung
  • Expertenwissen im Bereich Elektronikentwicklung mit Schwerpunkt analoge Schaltungstechnik
  • grundlegende Programmierkenntnisse in den Sprachen C/C++, sowie einen guten Überblick über aktuelle Mikrocontroller
  • idealerweise Wissen und Erfahrung auf dem Gebiet der Regelungs- und Steuerungstechnik
  • Erfahrungen im Umgang mit Lasten- & Pflichtenheften, sowie die Fähigkeit Arbeitsergebnisse sachgerecht zu dokumentieren
  • gute mathematische und analytische Fähigkeiten sowie Fähigkeiten sich kleinere Makros und Skripte zur Inbetriebnahme von
    Elektronikmodulen selbst zu erstellen
  • sichere Kenntnisse im Umgang mit MS-Office (insbesondere Excel und PowerPoint)
  • gute Deutsch- und Englischkenntnisse in Wort und Schrift


In einem offenen und modernen Umfeld mit zahlreichen Entwicklungs- und Weiterbildungsmöglichkeiten, arbeiten die Mitarbeiter bei
ZEISS in einer Kultur, die von Expertenwissen und Teamgeist geprägt ist. All das wird getragen von der besonderen Eigentümerstruktur
und dem langfristigen Ziel der Carl-Zeiss-Stiftung: Wissenschaft und Gesellschaft gemeinsam voranzubringen.

Heute wagen. Morgen begeistern.

Vielfalt ist ein Teil von ZEISS. Wir freuen uns unabhängig von Geschlecht, Nationalität, ethnischer und sozialer Herkunft, Religion,
Weltanschauung, Behinderung, Alter sowie sexueller Orientierung und Identität auf Ihre Bewerbung über den Bewerben-Button.

Jetzt, in weniger als 10 Minuten bewerben.
Miniaturansichten angehängter Grafiken
Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	company-logo.jpg 
Hits:	- 
Größe:	3,7 KB 
ID:	48945  

TwinCAT NC Ansteuerung mit custom EtherCAT slave

$
0
0
Moin Leute!
Wir versuchen momentan eine Achse über ein selbst entwickeltes Slave Device zu verfahren, kommen aber mit TwinCAT momentan nicht weiter, während das ganze per SOEM zu funktionieren scheint. Die Rx/TxPDOs sind dabei pro Kanal eingerichtet und das automatische Hinzufügen eines NC Task / Verlinkung seitens TwinCAT mit NC Achsen Variablen klappt ebenfalls.
Leider erscheint bei mir kein Drive Manager Tab. Der Slave kann problemlos in den OP-Modus wechseln.
Versetze ich das System in den Run-Mode, bekomme ich nur zwei Fehlermeldungen, mit denen ich nicht wirklich etwas anzufangen weiß:
Code:

Severity    Code    Description    Project    File    Line    Suppression State
Error        19.03.2020 08:47:45 096 ms | 'TCNC' (500): 'Axis 1' (Axis-ID: 1, Drive-ID: 1): Axis detects for more than 2135 consecutive nc cycles invalid IO data ('WcState(CoE)': working counter error) (error-code: 0x4655) !               
Error        19.03.2020 08:47:45 096 ms | 'TCNC' (500): 'Axis 1' (Axis-ID: 1, Drive-ID: 1): Axis detects for more than 2135 consecutive nc cycles invalid IO data ('WcState(CoE)': encoder working counter error) (error-code: 0x4466) !

Bei der Implementierung habe ich mich an diesem Tutorial orientiert, wie man sieht scheitere ich aber schon recht früh.
Hat jemand eine Idee, an welcher Stelle es hängen könnte?

Achsensettings:


Achsenstatus:

TIA FB Lokaldaten über Pointer beschreiben

$
0
0
Hallo zusammen

Ich bin irgendwie mit meinem Latein am Ende. Ich habe bereits das Internet durchforstet, aber leider nichts spezifisch zu meiner Frage gefunden.

Ich habe in einem FB 2 Temp-Datenbereiche von je 42 Byte die ich mit einem AT überlagere. DIe ersten 42 Bytes sind im Temp auf Offset 0.0, die zweiten auf 42.0. Ich versuche nun mit einem Pointer auf diese 42 Bytes auf Offset 0 Daten zu schreiben und über die AT-Überlagerung auf die strukturierten Daten zuzugreifen. Aber aus irgend einem Grund kriege ich es nicht hin, dass das schreiben auf die Temp Variable funktioniert.

Ich arbeite mit SCL und schreibe mittels POKE in der Area 16#86 (also Lokaldaten) auf das byteOffset 0 den Wert BYTE#16#01. Das müsste doch so funktionieren, oder hab ich da was falsch intepretiert?

Programmierung pneumatischer Zylinder

$
0
0
Hallo Leute,
ich schreibe momentan meine Masterarbeit und komme zum ersten Mal mit einer Programmierungsaufgabe in Kontakt. Ich lese mich momentan ein, habe aber das Gefühl, dass Programmieren eher Learning by Doing ist.
Im Grunde geht es darum, einen pneumatischen Zylinder richtig anzusteuern. Der Zylinder ist doppeltwirkend und ist mit einem 5/2 Wegeventil gekoppelt. An den Auslässen des 5/2 Wegeventils sind zudem noch Proportionalventile, die über einen Nennstrom angesteuert werden können.
Meine Aufgabe ist es das Auf und Abfahren des Zylinders inkl Geschw. einstellen zu können. Dabei sollen z.B. auch schnelles Ausfahren und langsames Einfahren möglich sein.
Ich beschäftige mich hauptsächlich mit dem FUP, bin mir aber gar nicht sicher, ob damit alles erreicht werden kann?
Falls jemand Lust und Zeit hat mir da per Email vielleicht ein paar Basics zu erklären wäre ich sehr dankbar.

Schöne Grüße

Step 7 Werte immer auf 100 scalieren

$
0
0
Ich benötige eine variable Skalierung, wo als Ergebnis immer 0-100 herauskommt.
Der obere Wert des Eingangs ist variabel
z.B.
Eingang 0-60
Ausgang 0-100
Steh momentan daneben
Danke
Viewing all 49288 articles
Browse latest View live


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