TIA Failsafe UDT

Ralle

Super-Moderator , User des Jahres 2006-2007
Teammitglied
Beiträge
15.414
Reaktionspunkte
4.043
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich versuche mir gerade einen Failsafe UDT zu erteilen.

Lenze Serve 9400 Profisafe 8W konsistent.
Wenn ich eine Failsafe UDT erstelle, die 8 Word enthält und versuche, ein Symbol zu erstellen, das diese UDT enthält sagt TIA:

"Kanlastruktur und Failsafe-kompatibler Datentyp (UDT) stimmen nicht überein."

Ich hab mit mal die GSDML-Datei angesehen, da steht drin:

Code:
               <ModuleItem ID="34" ModuleIdentNumber="0x00000022">
                    <!--<ModuleInfo>-->
                    <ModuleInfo CategoryRef="PZD">
                        <Name TextId="Safety 8W AR"/>
                        <InfoText TextId="Safety Modul 8W AR"/>
                    </ModuleInfo>
                    <VirtualSubmoduleList>
                        <VirtualSubmoduleItem ID="34safe" SubmoduleIdentNumber="0x00000022" PROFIsafeSupported="true">
                            <IOData IOPS_Length="1" IOCS_Length="1" F_IO_StructureDescCRC="2897904275" F_IO_StructureDescVersion="2">
                                <Input Consistency="All items consistency">
                                    <DataItem DataType="Unsigned16" UseAsBits="true" TextId="safety_Int_input1"/>
                                    <DataItem DataType="Unsigned16" UseAsBits="true" TextId="safety_Int_input2"/>
                                    <DataItem DataType="Unsigned16" UseAsBits="true" TextId="safety_Int_input3"/>
                                    <DataItem DataType="Unsigned16" UseAsBits="true" TextId="safety_Int_input4"/>
                                    <DataItem DataType="Integer16" TextId="safety_Int_input5"/>
                                    <DataItem DataType="Integer16" TextId="safety_Int_input6"/>
                                    <DataItem DataType="F_MessageTrailer4Byte" TextId="IDT_DATAITEM_Safety"/>
                                </Input>
                                <Output Consistency="All items consistency">
                                    <DataItem DataType="Unsigned16" UseAsBits="true" TextId="safety_Int_output1"/>
                                    <DataItem DataType="Unsigned16" UseAsBits="true" TextId="safety_Int_output2"/>
                                    <DataItem DataType="Unsigned16" UseAsBits="true" TextId="safety_Int_output3"/>
                                    <DataItem DataType="Unsigned16" UseAsBits="true" TextId="safety_Int_output4"/>
                                    <DataItem DataType="Integer16" TextId="safety_Int_output5"/>
                                    <DataItem DataType="Integer16" TextId="safety_Int_output6"/>
                                    <DataItem DataType="F_MessageTrailer4Byte" TextId="IDT_DATAITEM_Safety"/>
                                </Output>
                            </IOData>
                            <RecordDataList>
                                <F_ParameterRecordDataItem Index="1" F_ParamDescCRC="22045">
                                    <F_Check_iPar/>
                                    <F_SIL DefaultValue="SIL3" AllowedValues="SIL2 SIL3" Changeable="true" Visible="true"/>
                                    <F_CRC_Length DefaultValue="3-Byte-CRC" AllowedValues="3-Byte-CRC"/>
                                    <F_Block_ID DefaultValue="0"/>
                                    <F_Par_Version/>
                                    <F_Source_Add AllowedValues="1..65534"/>
                                    <F_Dest_Add AllowedValues="1..65534"/>
                                    <F_WD_Time DefaultValue="1500" AllowedValues="1..10000"/>
                                    <F_Par_CRC DefaultValue="7533"/>
                                </F_ParameterRecordDataItem>
                            </RecordDataList>
                            <ModuleInfo CategoryRef="PZD">
                                <Name TextId="Safety 8W AR"/>
                                <InfoText TextId="Safety Modul 8W AR"/>
                            </ModuleInfo>
                        </VirtualSubmoduleItem>
                    </VirtualSubmoduleList>
                </ModuleItem>
            </ModuleList>

Ich weiß nicht gernau woran es liegt, Byte, kann so ein failsafe-Udt leider nicht, nur

Bool
Dint
Int
Time
Word

Kennt sich jemand damit aus, was muß ich angeben um mit eine passende UDT zu bauen?

Andernfalls muß ich für etliche Servos die Bits und Byte diskret anlegen :confused:
 
Der UDT darf nur 6 Word lang sein, die restlichen 4 Byte ("F_MessageTrailer4Byte") sind Profisafe Checksumme usw.und dürfen nicht genutzt werden. Ich kenne jetzt den Lenze FU nicht, aber da müste es ja eine Doku dazu geben wie die Nutzdaten belegt sind. Dort dürften dann auch nur die 6 Word beschrieben sein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab gerade noch folgendes herausgefunden:

in den ersten 3 Word sind alle Variablen als Bits definiert.
Wenn ich diese 48 Bit in einer Failsafe-UDT definiere und diese UDT in der Symboltabelle an die Start-Adresse aus der Hardwarekonfiguration binde, dann klappt das. (Immerhin, das würde in meinem Fall reichen)
Nur mit den restlichen 1*Word und 1*Dword + 1 Dword Reserve klappt das nicht, auch nicht das 1. Word einzeln. 2 Byte kann man ja leider nicht testen, da nicht auswählbar.
 
Der UDT darf nur 6 Word lang sein, die restlichen 4 Byte ("F_MessageTrailer4Byte") sind Profisafe Checksumme usw.und dürfen nicht genutzt werden. Ich kenne jetzt den Lenze FU nicht, aber da müste es ja eine Doku dazu geben wie die Nutzdaten belegt sind. Dort dürften dann auch nur die 6 Word beschrieben sein.

OK, also das letzte DWord laß ich weg, aber trotzdem, die letzten 3 Word, will er einfach nicht.
 
Also wenn ich die GSDML richtig interpretiere müssten die ersten 4 Worte als Bits deklariert werden und die letzten 2 als INT. Evtl. prüft TIA ja den UDT gegen die GSDML und will es genau so sehen wie es dort definiert ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also wenn ich die GSDML richtig interpretiere müssten die ersten 4 Worte als Bits deklariert werden und die letzten 2 als INT. Evtl. prüft TIA ja den UDT gegen die GSDML und will es genau so sehen wie es dort definiert ist.

Ich hab das gerade gestestet, so geht es!

Komisch dabei, Lenze selbst definiert diese 16 Bit in Word 4 als sichere Drehzahl, dann noch Word 5+6 als sichere Inkremente.
Anscheinend haben die da noch einen Fehler drin.
Aber nun hab ich das mit der gsdml wenigstens verstanden.
 
PS: Noch ein Hinweis für Leute, die das erste Mal mit Lenze-Servos und Profisafe arbeiten.

Für Profisafe benötigt man das neueste Safety-Modul SM302. Um dieses zu beschreiben oder zuerst einmal Urzulöschen benötigt man ein Passwort.
In der zugehörigen Doku (E94AYAF__SM302 Safety module__v1-0__DE.pdf) steht das Standardpaßwort, das man auch ändern kann.
Dort steht, das Paßwort wäre "Lenze SM302". Das ist falsch!!!, jedenfallls in der derzeitigen Ausgabe der PDF.

Das Standard-Paßwort ist "Lenze SM301"

Seite 74:
Passwort
Zum Speichern eines sicheren Parametersatzes wird ein Passwort benötigt. Das Standard−
Passwort lautet: "Lenze SM302". Das Passwort ist veränderbar und muss mindestens 6
Zeichen betragen.
Durch "Urlöschen" wird der sichere Parametersatz im Speichermodul und im Sicherheitsmodul
gelöscht. Das Sicherheitsmodul muss neu parametriert werden.
Das Passwort ist zum Standard "Lenze SM302" zurückgesetzt.
 
Zurück
Oben