TIA Probleme DPRD_DAT/DPWR_DAT in TIA V16

Newbie

Level-2
Beiträge
29
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe gerade ein kleines Verständnisproblem. Und zwar versuche ich gerade mit den obengenannten Bausteinen einen DP-Slave zu lesen/schreiben.
Leider bekomme ich jeweils am Bausteinausgang RET_VAL den Code 16#80B1 (Die Länge des angegebenen Quellbereichs ist ungleich der projektierten Nutzdatenlänge.)zurück, obwohl das eigentlich passen müsste.

Ich habe mal ein paar Bilder gemacht:

HW1.PNG

HW2.PNG

DPRD.PNG

DPWR.PNG

Wie kann das sein? Übersehe ich da was?

Beste Grüße
 
Was für eine CPU ist das denn überhaupt? Evtl. benötigst du diese Bausteine gar nicht da das komplette Prozessabbild konsistent ist.
Sind denn die 32 Worte des MOTOMAN überhaupt konsistent? Unterstützt die GSD dies?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das ging schnell... Klasse!

Als CPU habe ich eine 315-2DP mit FW V3.3. in Verwendung. In einem Altprojekt unter Step7 V5.X welches ich als Ausdruck vorliegen habe, wurden ebenfalls SFC14/15 genutzt - daher meine Annahme, dass das mit den Bausteinen funktioniert...

Hier mal die GSD-Datei:

;===============================================================================
; Profibus Device Database of HMS Industrial Networks.
;
; Model: Anybus-S PROFIBUS DP-V1
; Description: Anybus-S PROFIBUS DP-V1 slave
; Language: English
; Author: HMS Industrial Networks
; WWW: www.anybus.com
;
; Revision log:
;
; 2002-02-18: First release
;
; 2003-09-12: Corrected 'MaxTsdr_xxx' for all baudrates
; according to the new specification.
; Changed 'Revision' to 1.1
; Added 'C1_Response_Timeout'
;
; 2003-09-13: Changed 'Revision' to 1.2
; Changed 'Hardware_Release' to 1.5
; Changed 'Software_Release' to 1.1
;
; 2005-05-30: Changed 'Revision' to 1.30
; Changed 'Hardware_Release' to 1.60
; Changed 'Software_Release' to 1.11
; Corrected 'Max_Data_Len' value
; Module_References re-numbered
; New GSD-file layout
;
; 2006-06-29: Changed 'Revision' to 1.40
; Changed 'Software_Release' to 1.12
;
;===============================================================================


#Profibus_DP


GSD_Revision = 3


; Device identification
Vendor_Name = "HMS Industrial Networks"
Model_Name = "Anybus-S PROFIBUS DP-V1"
Revision = "1.40"
Ident_Number = 0x1013
Protocol_Ident = 0 ; DP protocol
Station_Type = 0 ; Slave device
FMS_supp = 0 ; FMS not supported
Slave_Family = 0 ; General device
Hardware_Release = "Version 1.60"
Software_Release = "Version 1.12"
Bitmap_Device = "NX100"


; Supported hardware features
Redundancy = 0 ; Not supported
Repeater_Ctrl_Sig = 2 ; TTL
24V_Pins = 0 ; Not connected
Implementation_Type = "SPC3"


; Supported DP features
Freeze_Mode_supp = 1 ; Supported
Sync_Mode_supp = 1 ; Supported
Auto_Baud_supp = 1 ; Supported
Set_Slave_Add_supp = 0 ; Not supported
Fail_Safe = 1 ; Supported


; Supported baudrates
9.6_supp = 1
19.2_supp = 1
45.45_supp = 1
93.75_supp = 1
187.5_supp = 1
500_supp = 1
1.5M_supp = 1
3M_supp = 1
6M_supp = 1
12M_supp = 1


; Maximum responder time for supported baudrates
MaxTsdr_9.6 = 15
MaxTsdr_19.2 = 15
MaxTsdr_45.45 = 15
MaxTsdr_93.75 = 15
MaxTsdr_187.5 = 15
MaxTsdr_500 = 15
MaxTsdr_1.5M = 25
MaxTsdr_3M = 50
MaxTsdr_6M = 100
MaxTsdr_12M = 200


; Maximum polling frequency
Min_Slave_Intervall = 1 ; 100 us


; I/O related
Modular_Station = 1 ; Modular
Max_Module = 24
Max_Input_Len = 244
Max_Output_Len = 244
Max_Data_Len = 328
Modul_Offset = 1


; Diagnostic related
Max_Diag_Data_Len = 6


; Parameter related
User_Prm_Data_Len = 4
User_Prm_Data = 0x80,0x00,0x00,0x00


; DPV1 related
DPV1_Slave = 1
DPV1_Data_Types = 0 ; Not supported
Check_Cfg_Mode = 0 ; Not supported


C1_Read_Write_supp = 1
C1_Max_Data_Len = 32
C1_Response_Timeout = 10 ; 100 ms


C2_Read_Write_supp = 1
C2_Max_Data_Len = 48
C2_Response_Timeout = 10 ; 100 ms
C2_Max_Count_Channels = 4


Max_Initiate_PDU_Length = 52


; Definition of modules
Module = "IN/OUT: 1 Byte" 0x30
1
EndModule
;
Module = "IN/OUT: 1 word" 0x70
2
EndModule
;
Module = "IN/OUT: 2 words" 0x71
3
EndModule
;
Module = "IN/OUT: 4 words" 0x73
4
EndModule
;
Module = "IN/OUT: 8 words" 0x77
5
EndModule
;
Module = "IN/OUT: 16 words" 0x7F
6
EndModule
;
Module = "IN/OUT: 32 words" 0xC0,0x5F,0x5F
7
EndModule
;
Module = "IN/OUT: 64 words" 0xC0,0x7F,0x7F
8
EndModule
;
Module = "INPUT: 1 Byte" 0x10
9
EndModule
;
Module = "INPUT: 1 word" 0x50
10
EndModule
;
Module = "INPUT: 2 words" 0x51
11
EndModule
;
Module = "INPUT: 4 words" 0x53
12
EndModule
;
Module = "INPUT: 8 words" 0x57
13
EndModule
;
Module = "INPUT: 16 words" 0x5F
14
EndModule
;
Module = "INPUT: 32 words" 0x40,0x5F
15
EndModule
;
Module = "INPUT: 64 words" 0x40,0x7F
16
EndModule
;
Module = "OUTPUT: 1 Byte" 0x20
17
EndModule
;
Module = "OUTPUT: 1 word" 0x60
18
EndModule
;
Module = "OUTPUT: 2 words" 0x61
19
EndModule
;
Module = "OUTPUT: 4 words" 0x63
20
EndModule
;
Module = "OUTPUT: 8 words" 0x67
21
EndModule
;
Module = "OUTPUT: 16 words" 0x6F
22
EndModule
;
Module = "OUTPUT: 32 words" 0x80,0x5F
23
EndModule
;
Module = "OUTPUT: 64 words" 0x80,0x7F
24
EndModule
 
Hallo,

ich habe noch folgendes gefunden:

HW3.PNG

Scheinbar ist das Modul nicht über die 32 Worte konsistent sondern nur über eine Einheit - spricht ein Wort!?

Tatsächlich schmeißen SFC14/15 keinen Fehler, wenn ich max. 4 Byte lese/schreibe - auch etwas komisch.

Also muss ich tatsächlich jedes einzelne Word durchtackern und z.B. in einen DB schreiben?

Beste Grüße
 
Hardware-Kennung

In Step7 kam die I/O Adresse am SFC14-15 hier 256 (HEX100) im TIA muss Hardware-Kennung des Moduls am LADDR .

Die Hardware Kennung findest du in der Geräteansicht oder den Systemkonstanten



Gruß Per


Nein, ist doch so richtig in deinen Bildern habe den CPU Typ erst später gelesen
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Also, 4 Byte Daten lassen sich konsistent übertragen, ohne dass die Bausteine Ärger machen.

Spricht denn grundsätzlich etwas dagegen, die SFCs in einer Schleife aufzurufen und die entsprechenden Parameter immer um die 4 Byte über den gesamten Bereich hochzuzählen?:confused:

Danke für das rege Interesse!
 
Da du eine relativ neue CPU hast: Prozessabbild vergrößern (Müsste in der HW-Konfig sein, wo auch die Taktmerker stehen).

Dann entweder nur mit den E/A Arbeiten, oder das ganze einfach Schwuppsdiwupps mit SFC20 (BLKMOV) am Anfang / Ende in / aus einen DB kopieren (so ähnlich wie das beim SFC14/15 ja auch der Fall wäre) ...

Fall der Konsistenz gelöst, erledigt die CPU ja indirekt mit ...

Mfg
Manuel
 
Zurück
Oben