Commit 4b37fc90 authored by Claes Sjofors's avatar Claes Sjofors

Merge branch 'master' of 62.20.65.89:/data1/git/pwr

parents 2907ec87 e50fa1a4
Volume ABB $ClassVolume 0.0.250.2 Volume ABB $ClassVolume 0.0.250.2
Body SysBody 01-JAN-1970 01:00:00.00 Body SysBody 01-JAN-1970 01:00:00.00
Attr NextOix = "_X3943" Attr NextOix = "_X3943"
Attr NextCix = "_X40" Attr NextCix = "_X41"
Attr NextTix[0] = "_X3" Attr NextTix[0] = "_X3"
EndBody EndBody
Object Type $TypeHier 1749 12-OCT-2005 13:25:10.29 Object Type $TypeHier 1749 12-OCT-2005 13:25:10.29
...@@ -35568,7 +35568,7 @@ ABB ACS800 Aggregate ...@@ -35568,7 +35568,7 @@ ABB ACS800 Aggregate
EndObject EndObject
EndObject EndObject
Object Template ABB_ACS_Pb_Slave 2156888064 01-JAN-1970 01:00:00.00 Object Template ABB_ACS_Pb_Slave 2156888064 01-JAN-1970 01:00:00.00
Body RtBody 08-NOV-2007 17:33:02.02 Body RtBody 26-NOV-2010 09:20:04.88
Attr Super.Specification = "ABB ACS800 Profibus slave" Attr Super.Specification = "ABB ACS800 Profibus slave"
Attr Super.DataSheet = "$pwr_lang/dsh/abb_acs800.html" Attr Super.DataSheet = "$pwr_lang/dsh/abb_acs800.html"
Attr Super.GSDfile = "$pwr_exe/abb_acs_pb_slave.gsd" Attr Super.GSDfile = "$pwr_exe/abb_acs_pb_slave.gsd"
...@@ -35577,11 +35577,55 @@ ABB ACS800 Aggregate ...@@ -35577,11 +35577,55 @@ ABB ACS800 Aggregate
Attr Super.StallAction = 1 Attr Super.StallAction = 1
Attr Super.ErrorSoftLimit = 15 Attr Super.ErrorSoftLimit = 15
Attr Super.ErrorHardLimit = 50 Attr Super.ErrorHardLimit = 50
Attr Super.WdFact1 = 100 Attr Super.WdFact1 = 10
Attr Super.WdFact2 = 10 Attr Super.WdFact2 = 10
EndBody EndBody
EndObject EndObject
EndObject EndObject
!/**
! @Version 1.0
! @Group Profibus
! @Summary Profinet device ABB ACS800
! Profinet device object for frequency converter ABB ACS800.
!
! The device object is configured below a Profinet controller object in
! the node hierarchy.
!
! @b Configuration
! Use the 'Configure Device' method in the popup menu of the object
! to configure the slave.
!*/
Object ABB_ACS_PnDevice $ClassDef 40 26-NOV-2010 09:17:17.99
Body SysBody 26-NOV-2010 09:17:04.29
Attr Editor = 0
Attr Method = 0
Attr Flags = 10256
EndBody
Object RtBody $ObjBodyDef 1 26-NOV-2010 09:17:04.32
Body SysBody 26-NOV-2010 09:17:23.87
Attr StructName = "ABB_ACS_PnDevice"
Attr NextAix = "_X3"
EndBody
Object Super $Attribute 2 26-NOV-2010 09:17:04.32
Body SysBody 26-NOV-2010 09:17:44.45
Attr PgmName = "Super"
Attr Flags = 393216
Attr TypeRef = "Profibus:Class-PnDevice"
EndBody
EndObject
EndObject
Object Template ABB_ACS_PnDevice 2158198784 01-JAN-1970 01:00:00.00
Body RtBody 26-NOV-2010 09:19:26.26
Attr Super.Specification = "ABB ACS800 Profibus slave"
Attr Super.DataSheet = "$pwr_lang/dsh/abb_acs800.html"
Attr Super.GSDMLfile = "$pwr_exe/GSDML-V2.0-ABBdrives-RETA02-20070621.xml"
Attr Super.Process = 1
Attr Super.ErrorSoftLimit = 100
Attr Super.ErrorHardLimit = 1000
Attr Super.ByteOrdering = 1
EndBody
EndObject
EndObject
Object ABB_ACS_PPO5_IoModule $ClassDef 38 02-JUL-2010 08:20:23.32 Object ABB_ACS_PPO5_IoModule $ClassDef 38 02-JUL-2010 08:20:23.32
Body SysBody 02-JUL-2010 08:20:30.45 Body SysBody 02-JUL-2010 08:20:30.45
Attr Editor = 0 Attr Editor = 0
This diff is collapsed.
This diff is collapsed.
Volume OtherManufacturer $ClassVolume 0.0.250.1 Volume OtherManufacturer $ClassVolume 0.0.250.1
Body SysBody 01-JAN-1970 01:00:00.00 Body SysBody 01-JAN-1970 01:00:00.00
Attr NextOix = "_X2251" Attr NextOix = "_X2883"
Attr NextCix = "_X41" Attr NextCix = "_X51"
Attr NextTix[0] = "_X2" Attr NextTix[0] = "_X2"
EndBody EndBody
Object Type $TypeHier 1758 09-OCT-2007 14:20:45.77 Object Type $TypeHier 1758 09-OCT-2007 14:20:45.77
...@@ -21,4 +21,6 @@ ...@@ -21,4 +21,6 @@
080115 cs - Reading of Di, Ai and Ii can be disabled by setting ConversionOn in channel object to 0. 080115 cs - Reading of Di, Ai and Ii can be disabled by setting ConversionOn in channel object to 0.
080229 rk - I/O-handling routines generalized and some routines moved to rt_io_bus.c 080229 rk - I/O-handling routines generalized and some routines moved to rt_io_bus.c
100708 rk - Added functionality for PROFINET IO using Softing Profinet Stack 100708 rk - Added functionality for PROFINET IO using Softing Profinet Stack
101202 rk - Finalized PROFINET IO functionality. Added several classes
for handling different types of Profinet IO.
...@@ -52,8 +52,9 @@ PnViewerGtk::PnViewerGtk ( ...@@ -52,8 +52,9 @@ PnViewerGtk::PnViewerGtk (
void *v_parent_ctx, void *v_parent_ctx,
GtkWidget *v_parent_wid, GtkWidget *v_parent_wid,
const char *v_name, const char *v_name,
const char *v_device,
pwr_tStatus *status) : pwr_tStatus *status) :
PnViewer( v_parent_ctx, v_name, status), parent_wid(v_parent_wid) PnViewer( v_parent_ctx, v_name, v_device, status), parent_wid(v_parent_wid)
{ {
const int window_width = 800; const int window_width = 800;
const int window_height = 600; const int window_height = 600;
......
...@@ -38,6 +38,7 @@ class PnViewerGtk : public PnViewer { ...@@ -38,6 +38,7 @@ class PnViewerGtk : public PnViewer {
void *v_parent_ctx, void *v_parent_ctx,
GtkWidget *v_parent_wid, GtkWidget *v_parent_wid,
const char *v_name, const char *v_name,
const char *v_device,
pwr_tStatus *status); pwr_tStatus *status);
~PnViewerGtk(); ~PnViewerGtk();
......
...@@ -42,7 +42,7 @@ typedef struct { ...@@ -42,7 +42,7 @@ typedef struct {
static void usage() static void usage()
{ {
printf("\nUsage: profinet_viewer [-l language]\n"); printf("\nUsage: profinet_viewer [-l language] [device]\n");
} }
static void viewer_close( void *c) static void viewer_close( void *c)
...@@ -56,6 +56,7 @@ int main( int argc, char *argv[]) ...@@ -56,6 +56,7 @@ int main( int argc, char *argv[])
int i; int i;
int sts; int sts;
tViewer *ctx; tViewer *ctx;
char dev_name[20] = "eth1";
ctx = (tViewer *)calloc( 1, sizeof(tViewer)); ctx = (tViewer *)calloc( 1, sizeof(tViewer));
...@@ -84,12 +85,15 @@ int main( int argc, char *argv[]) ...@@ -84,12 +85,15 @@ int main( int argc, char *argv[])
Lng::set( argv[i+1]); Lng::set( argv[i+1]);
i++; i++;
} }
else if (strncmp(argv[i], "eth", 3) == 0) {
snprintf(dev_name, sizeof(dev_name), "%s", argv[i]);
}
} }
// Open window // Open window
try { try {
ctx->viewer = new PnViewerGtk( ctx, ctx->toplevel, "Profinet Viewer", &sts); ctx->viewer = new PnViewerGtk( ctx, ctx->toplevel, "Profinet Viewer", dev_name, &sts);
ctx->viewer->close_cb = viewer_close; ctx->viewer->close_cb = viewer_close;
} }
catch ( co_error &e) { catch ( co_error &e) {
printf( "** Exception: %s\n", e.what().c_str()); printf( "** Exception: %s\n", e.what().c_str());
......
...@@ -40,12 +40,14 @@ ...@@ -40,12 +40,14 @@
PnViewer::PnViewer( PnViewer::PnViewer(
void *v_parent_ctx, void *v_parent_ctx,
const char *v_name, const char *v_name,
const char *v_device,
pwr_tStatus *status) : pwr_tStatus *status) :
parent_ctx(v_parent_ctx), viewernav(NULL), wow(0), input_open(0), pnet(0), close_cb(0) parent_ctx(v_parent_ctx), viewernav(NULL), wow(0), input_open(0), pnet(0), close_cb(0)
{ {
strcpy( name, v_name); strcpy( name, v_name);
strcpy( device, v_device);
pnet = new PnViewerPNAC( status); pnet = new PnViewerPNAC( status, device);
} }
PnViewer::~PnViewer() PnViewer::~PnViewer()
......
...@@ -41,6 +41,7 @@ class PnViewer { ...@@ -41,6 +41,7 @@ class PnViewer {
PnViewer( PnViewer(
void *v_parent_ctx, void *v_parent_ctx,
const char *v_name, const char *v_name,
const char *v_device,
pwr_tStatus *status); pwr_tStatus *status);
virtual ~PnViewer(); virtual ~PnViewer();
...@@ -62,6 +63,7 @@ class PnViewer { ...@@ -62,6 +63,7 @@ class PnViewer {
void *parent_ctx; void *parent_ctx;
char name[80]; char name[80];
char device[20];
PnViewerNav *viewernav; PnViewerNav *viewernav;
CoWow *wow; CoWow *wow;
int input_open; int input_open;
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
PnViewerPNAC::PnViewerPNAC( pwr_tStatus *sts) PnViewerPNAC::PnViewerPNAC( pwr_tStatus *sts, const char *dev_name)
{ {
int s; int s;
struct ifreq ifr = {}; struct ifreq ifr = {};
...@@ -59,7 +59,7 @@ PnViewerPNAC::PnViewerPNAC( pwr_tStatus *sts) ...@@ -59,7 +59,7 @@ PnViewerPNAC::PnViewerPNAC( pwr_tStatus *sts)
/* Get configs for device */ /* Get configs for device */
s = socket(AF_INET, SOCK_DGRAM, 0); s = socket(AF_INET, SOCK_DGRAM, 0);
strncpy(ifr.ifr_name, "eth0", sizeof(ifr.ifr_name)); strncpy(ifr.ifr_name, dev_name, sizeof(ifr.ifr_name));
if (ioctl(s, SIOCGIFADDR, &ifr) >= 0) { if (ioctl(s, SIOCGIFADDR, &ifr) >= 0) {
strcpy(dev_data.ip_address, inet_ntoa(((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr)); strcpy(dev_data.ip_address, inet_ntoa(((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr));
} }
...@@ -73,7 +73,7 @@ PnViewerPNAC::PnViewerPNAC( pwr_tStatus *sts) ...@@ -73,7 +73,7 @@ PnViewerPNAC::PnViewerPNAC( pwr_tStatus *sts)
strcpy(dev_data.device_name, "dumle"); strcpy(dev_data.device_name, "dumle");
dev_data.device_num = PN_DEVICE_REFERENCE_THIS_STATION; dev_data.device_num = PN_DEVICE_REFERENCE_THIS_STATION;
strcpy(dev_data.device_text, "controller"); strcpy(dev_data.device_text, dev_name);
dev_data.vendor_id = 279; // Softing vendor id dev_data.vendor_id = 279; // Softing vendor id
dev_data.device_id = 0; dev_data.device_id = 0;
strcpy(dev_data.version, "1.0"); strcpy(dev_data.version, "1.0");
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
class PnViewerPNAC { class PnViewerPNAC {
public: public:
PnViewerPNAC( pwr_tStatus *sts); PnViewerPNAC( pwr_tStatus *sts, const char *dev_name);
~PnViewerPNAC(); ~PnViewerPNAC();
void fetch_devices( vector<PnDevice>& dev_vect); void fetch_devices( vector<PnDevice>& dev_vect);
......
...@@ -93,11 +93,14 @@ Finely-graduated modular distributed I/O device, protection type IP20 ...@@ -93,11 +93,14 @@ Finely-graduated modular distributed I/O device, protection type IP20
# Processing file: /home/claes/gsdml/test.xml # Processing file: /home/claes/gsdml/test.xml
328 8192 328 8192
GRT1-PNT GRT1-PNT
# Processing file: /home/claes/gsdml/GSDML-V2.0-ABBdrives-RETA02-20070621.xml # Processing file: /home/claes/gsdml/GSDML-V2.0-ABBdrives-RETA02-20070621.xml
26 1 26 1
ABB RETA-02 ABB RETA-02
PROFINET IO module RETA-02 PROFINET IO module RETA-02
# Processing file: /home/claes/gsdml/gsdml-v2.0-siemens-sinamicsg120prof-20080514.xml
42 1288
SINAMICS
SINAMICS drives
# Processing file: /home/claes/gsdml/GSDML-V1.0-PhoenixContact-FL-SWITCH-MC-16TX-V1.0-20051207.xml # Processing file: /home/claes/gsdml/GSDML-V1.0-PhoenixContact-FL-SWITCH-MC-16TX-V1.0-20051207.xml
176 19 176 19
Factory Line Factory Line
......
This diff is collapsed.
; (c) 2006 Siemens AG A&D SD
;
; Profibus-DP Generic Station Description for SINAMICS G120 Safety incl. PROFIsafe
;
; MLFB: 6SL3244-0BA21-1PA0 (G120 CU240S DP F)
;
; Author: SIEMENS AG A&D SD
;
; Date of Creation: 11.03.2006 Initial version
; Changes:
; 10.11.2006 model_name changed; new module 353 and 354; software_release changed
; 05.01.2007 add version to model_Name and info_text; filename changed to SI028116
; 17.07.2007 F_IO_StructureDescCRC=5639 added
;
;==========================================================================
;
;*********************** general keys
;
#Profibus_DP
;
GSD_Revision=5
Vendor_Name="Siemens AG A&D"
Model_Name="SINAMICS G120 CU240S DP F v3.00"
Info_Text="DP-Slave SINAMICS G120 CU240S DP F v3.00 safety variant with PROFIsafe v1.x and DP-V1 interface (cyclic and acyclic communication)."
Revision="C01"
Ident_Number=0x8158
Protocol_Ident=0 ; 0 = PROFIBUS-DP
Station_Type=0 ; 0 = DP-Slave
FMS_supp=0 ; no FMS / DP mixed device
Hardware_Release="C01"
Software_Release="V03.0"
;
OrderNumber="6SL3 244-0BA21-1PA0"
;
;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 station delaytime of responder at corresponding baudrate
MaxTsdr_9.6=40
MaxTsdr_19.2=40
MaxTsdr_45.45=40
MaxTsdr_93.75=40
MaxTsdr_187.5=40
MaxTsdr_500=40
MaxTsdr_1.5M=40
MaxTsdr_3M=50
MaxTsdr_6M=100
MaxTsdr_12M=200
;
Redundancy=0 ; not supported
Repeater_Ctrl_Sig=2 ; TTL
24V_Pins=0 ; no 24 Volt
Implementation_Type="DPC31"
Bitmap_Device="SI028158"
;*********************** slave basic ---
Freeze_Mode_supp=1
Sync_Mode_supp=1
Auto_Baud_supp=1
Set_Slave_Add_supp=0
;
Max_User_Prm_Data_Len=36 ;max. length of param tele
Min_Slave_Intervall=1 ; = 100 s
Modular_Station=1
Max_Module=2
Max_Input_Len=32
Max_Output_Len=32
Max_Data_Len=64
Fail_Safe=1
Max_Diag_Data_Len=48
Modul_Offset=1
Slave_Family=1@SINAMICS
;
;*********************** (GSD R5)
Ident_Maintenance_supp=1
;
;*********************** Text defines
;PrmText=1
;Text(0)="No"
;Text(1)="Yes"
;EndPrmText
PrmText=2
;Text(0)="SIL 1"
Text(1)="SIL 2"
;Text(2)="SIL 3"
;Text(3)="NoSIL"
EndPrmText
PrmText=3
Text(0)="No Check"
;Text(1)="Check"
EndPrmText
;Text-Definition fuer CRC-Length
PrmText=4
;Text(0)="reserved"
Text(1)="2 Byte CRC"
;Text(2)="4 Byte CRC"
;Text(3)="reserved 1"
EndPrmText
;*********************** Ext-User-Prm-Data-Def-List
ExtUserPrmData=1 "F_Check_SeqNr" ; Reference number 1
Bit(0) 0 0-0 ; Default = 0
Prm_Text_Ref=3 ; Pointer to text definition 3
EndExtUserPrmData
ExtUserPrmData=2 "F_SIL"
BitArea(2-3) 1 1-1
Prm_Text_Ref=2
EndExtUserPrmData
ExtUserPrmData=3 "F_CRC_Length"
BitArea(4-5) 1 1-1
Prm_Text_Ref=4
EndExtUserPrmData
ExtUserPrmData=4 "F_Par_Version"
BitArea(6-7) 0 0-0
EndExtUserPrmData
ExtUserPrmData=5 "F_Source_Add"
Unsigned16 1 1-65534
EndExtUserPrmData
ExtUserPrmData=6 "F_Dest_Add"
Unsigned16 1 1-65534
EndExtUserPrmData
ExtUserPrmData=7 "F_WD_Time"
Unsigned16 100 10-65535
EndExtUserPrmData
ExtUserPrmData=8 "F_Par_CRC"
Unsigned16 0x783E 0-65535
EndExtUserPrmData
ExtUserPrmData=10 "[SlotNumber]"
Unsigned8 1 1-254 ; Default = 1, Max = 254
EndExtUserPrmData
;*********************** diagnose
UnitDiagType = 129
X_Unit_Diag_Area=24-31
X_Value(64) = "F add. does not match F_Dest_Add"
X_Value(65) = "Wrong F destination address"
X_Value(66) = "Wrong F source address"
X_Value(67) = "Watchdog time value=0"
X_Value(68) = "Wrong SIL level"
X_Value(69) = "Wrong F-CRC length"
X_Value(70) = "Wrong F-Parameter version"
X_Value(71) = "CRC1 fault"
X_Value(72) = "reserved"
X_Value(73) = "reserved"
X_Value(74) = "reserved"
X_Unit_Diag_Area_End
EndUnitDiagType
;
;*********************** slave related keywords for extended parameterization (GSD V4)
Ext_User_Prm_Data_Const(0)=0 ;DPV1 state 1
Ext_User_Prm_Data_Const(1)=0 ;DPV1 state 2
Ext_User_Prm_Data_Const(2)=0 ;DPV1 state 3
;
;*********************** slave extensions (GSD R3)
DPV1_Slave=1
;
C1_Read_Write_supp=1
C2_Read_Write_supp=1
C1_Max_Data_Len=240
C2_Max_Data_Len=240
C1_Response_Timeout=1 ;Timebase 10ms
C2_Response_Timeout=1 ;Timebase 10ms
C1_Read_Write_required=0
C2_Read_Write_required=0
C2_Max_Count_Channels=2
Max_Initiate_PDU_Length=52
WD_Base_1ms_supp=1
;
DPV1_Data_Types=0
Check_Cfg_Mode=0
;
;*********************** slave data exchange broadcast
Publisher_supp=0
;Subscriber_supp=0
;if Subscriber = 1
;X_PRM_SAP_supp=1
;X_Max_User_Prm_Data_Len=20
;X_Prm_Block_Structure_supp=1
;
;DXB_Max_Link_Count=10
;DXB_Max_Data_Length=40
;DXB_Subscribertable_Block_Location=1
;
;*********************** slave data exchange Isochron
;Isochron_Mode_supp=1
;Isochron_Mode_required=0
; do not specify this parameters if Isochron_mode_supp=0
;TBase_DP=1500 ; 125 s (1500/12)
;TDP_Max=256 ; 32 ms (256*TBase_DP) 32ms is maximum
;TDP_Min=16 ; 2 ms ( 16*TBase_DP)
;TBase_IO=1500 ; 125 s (1500/12)
;TI_Min=1 ; 125 s ( 1*TBase_IO)
;TO_Min=1 ; 125 s ( 1*TBase_IO)
;T_PLL_W_MAX=12 ; 1 s ( 12/12)
;
;*********************** module definitions
;
;=======================================
Module="Standard telegram 1" 0xE1, 0xD1
1
Info_Text="Standard telegram 1 (PZD-2/2) according to PROFIdrive V4. 2 words output and 2 words input"
EndModule
;=======================================
Module="Standard telegram 20" 0xE1, 0xD5
2
Info_Text="Standard telegram 20 (PZD-2/6) according to PROFIdrive V4. 2 words output and 6 words input."
EndModule
;=======================================
Module="SIEMENS telegram 350" 0xE3, 0xD3
3
Info_Text="SIEMENS specific telegram 350 (PZD-4/4). 4 words output and 4 words input."
EndModule
;=======================================
Module="SIEMENS telegram 352" 0xE5, 0xD5
4
Info_Text="SIEMENS specific telegram 352 (PZD-6/6). 6 words output and 6 words input. Output words 3-6 defined as PCS7 handled data."
EndModule
;=======================================
;Module="SIEMENS telegram 353" 0xF3, 0xE1, 0xD1
Module="SIEMENS telegram 353" 0xf3, 0xc3, 0xc1, 0xc1, 0xfd, 0x01, 0x61
5
Info_Text="SIEMENS specific telegram 353 (PKW-4/4 + PZD-2/2). PKW data with 4 words input and 4 words output. PZD data with 2 words output and 2 words input."
EndModule
;=======================================
;Module="SIEMENS telegram 354" 0xF3, 0xE5, 0xD5
Module="SIEMENS telegram 354" 0xf3, 0xc3, 0xc5, 0xc5, 0xfd, 0x01, 0x62
6
Info_Text="SIEMENS specific telegram 354 (PKW-4/4 + PZD 6/6). PKW data with 4 words input and 4 words output. PZD data with 6 words output and 6 words input, outputwords 3-6 are defined as PCS7 data."
EndModule
;=======================================
Module="PROFIsafe v1.x Module" 0xC6,0x85,0x85,0x05,0x05,0x0a,0x05,0x05,0x0a
7
Info_Text = "PROFIsafe v1.x module, take care on Dest_Adr"
F_Ext_Module_Prm_Data_Len=14
F_Ext_User_Prm_Data_Const(0)=0xE ;length of block F-Parameter
F_Ext_User_Prm_Data_Const(1)=5 ;sign F-Parameter
F_Ext_User_Prm_Data_Ref(2)=10 ;auto slot number F-Moduls
F_Ext_User_Prm_Data_Const(3)=0 ;specifier
F_Ext_User_Prm_Data_Const(4)=0 ;F-Param-Flag 1 default 0x14
F_Ext_User_Prm_Data_Const(5)=0 ;F-Param-Flag 2 default 0x00
F_Ext_User_Prm_Data_Ref(4)=1 ;F-Param 1 Bit 0 CheckSeqNr = 0
F_Ext_User_Prm_Data_Ref(4)=2 ;F-Param 1 Bit 2-3 SIL = 1
F_Ext_User_Prm_Data_Ref(4)=3 ;F-Param 1 Bit 4-5 CRC Length = 2 Byte
F_Ext_User_Prm_Data_Ref(5)=4 ;F-Param 2 Bit 6-7 Par Version = 0
F_Ext_User_Prm_Data_Ref(6)=5 ;F-Source-Adr
F_Ext_User_Prm_Data_Ref(8)=6 ;F-Dest-Adr
F_Ext_User_Prm_Data_Ref(10)=7 ;F-WD-Time
F_Ext_User_Prm_Data_Ref(12)=8 ;F-CRC1
;The value of this parameter will not be transferred to the slave device but is
;needed to avoid errors during the parametrization with the configuration tool.
F_ParamDescCRC=0xA01D
F_IO_StructureDescCRC=5639
EndModule
;=======================================
This diff is collapsed.
This diff is collapsed.
...@@ -15,6 +15,7 @@ ifndef rules_mk ...@@ -15,6 +15,7 @@ ifndef rules_mk
endif endif
vpath %.gsd $(hw_source):$(os_source):$(co_source) vpath %.gsd $(hw_source):$(os_source):$(co_source)
vpath %.xml $(hw_source):$(os_source):$(co_source)
source_dirs = $(hw_source) $(os_source) $(co_source) source_dirs = $(hw_source) $(os_source) $(co_source)
...@@ -27,18 +28,29 @@ gsd_sources := $(sort \ ...@@ -27,18 +28,29 @@ gsd_sources := $(sort \
) \ ) \
) )
xml_sources := $(sort \
$(foreach file, \
$(foreach dir, \
$(source_dirs), \
$(wildcard $(dir)/*.xml) \
), $(notdir $(file)) \
) \
)
export_gsd := $(patsubst %.gsd, $(exe_dir)/%.gsd, $(gsd_sources)) export_gsd := $(patsubst %.gsd, $(exe_dir)/%.gsd, $(gsd_sources))
clean_gsd := $(patsubst %.gsd, clean_%.gsd, $(gsd_sources)) clean_gsd := $(patsubst %.gsd, clean_%.gsd, $(gsd_sources))
export_xml := $(patsubst %.xml, $(exe_dir)/%.xml, $(xml_sources))
clean_xml := $(patsubst %.xml, clean_%.xml, $(xml_sources))
.PHONY : all init copy lib exe clean realclean\ .PHONY : all init copy lib exe clean realclean\
$(clean_gsd) $(clean_gsd) $(clean_xml)
all : init copy all : init copy
init : init :
copy : $(export_gsd) copy : $(export_gsd) $(export_xml)
lib : lib :
...@@ -46,7 +58,7 @@ exe : ...@@ -46,7 +58,7 @@ exe :
clean : clean :
realclean : clean $(clean_gsd) realclean : clean $(clean_gsd) $(clean_xml)
$(export_gsd) : $(exe_dir)/%.gsd : %.gsd $(export_gsd) : $(exe_dir)/%.gsd : %.gsd
@ echo "Exporting $< ..." @ echo "Exporting $< ..."
...@@ -55,4 +67,11 @@ $(export_gsd) : $(exe_dir)/%.gsd : %.gsd ...@@ -55,4 +67,11 @@ $(export_gsd) : $(exe_dir)/%.gsd : %.gsd
$(clean_gsd) : clean_%.gsd : %.gsd $(clean_gsd) : clean_%.gsd : %.gsd
@ rm $(exe_dir)/$*.gsd @ rm $(exe_dir)/$*.gsd
$(export_xml) : $(exe_dir)/%.xml : %.xml
@ echo "Exporting $< ..."
@ $(cp) $(cpflags) $(source) $(target)
$(clean_xml) : clean_%.xml : %.xml
@ rm $(exe_dir)/$*.xml
...@@ -134,7 +134,7 @@ static pwr_tStatus IoAgentInit ( ...@@ -134,7 +134,7 @@ static pwr_tStatus IoAgentInit (
gethostname(hname, 40); gethostname(hname, 40);
s = socket(AF_INET, SOCK_DGRAM, 0); s = socket(AF_INET, SOCK_DGRAM, 0);
strncpy(ifr.ifr_name, "eth1", sizeof(ifr.ifr_name)); strncpy(ifr.ifr_name, op->EthernetDevice, sizeof(ifr.ifr_name));
if (ioctl(s, SIOCGIFADDR, &ifr) >= 0) { if (ioctl(s, SIOCGIFADDR, &ifr) >= 0) {
strcpy(dev_data->ip_address, inet_ntoa(((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr)); strcpy(dev_data->ip_address, inet_ntoa(((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr));
} }
...@@ -147,7 +147,7 @@ static pwr_tStatus IoAgentInit ( ...@@ -147,7 +147,7 @@ static pwr_tStatus IoAgentInit (
strcpy(dev_data->device_name, hname); strcpy(dev_data->device_name, hname);
dev_data->device_num = PN_DEVICE_REFERENCE_THIS_STATION; dev_data->device_num = PN_DEVICE_REFERENCE_THIS_STATION;
strcpy(dev_data->device_text, "controller"); strcpy(dev_data->device_text, op->EthernetDevice);
dev_data->vendor_id = 279; // Softing vendor id dev_data->vendor_id = 279; // Softing vendor id
dev_data->device_id = 0; dev_data->device_id = 0;
strcpy(dev_data->version, "1.0"); strcpy(dev_data->version, "1.0");
......
...@@ -442,7 +442,7 @@ void pack_download_req(T_PNAK_SERVICE_REQ_RES *ServiceReqRes, GsdmlDeviceData *d ...@@ -442,7 +442,7 @@ void pack_download_req(T_PNAK_SERVICE_REQ_RES *ServiceReqRes, GsdmlDeviceData *d
sprintf(pSDR->DeviceName, dev_data->device_name); sprintf(pSDR->DeviceName, dev_data->device_name);
if (device_ref == PN_DEVICE_REFERENCE_THIS_STATION) { if (device_ref == PN_DEVICE_REFERENCE_THIS_STATION) {
sprintf(pSDR->InterfaceName, "eth1"); sprintf(pSDR->InterfaceName, dev_data->device_text);
pSDR->Flag = PN_SERVICE_DOWNLOAD_FLAG_AUTO_CONTROL_RES; pSDR->Flag = PN_SERVICE_DOWNLOAD_FLAG_AUTO_CONTROL_RES;
ar_property = 0; ar_property = 0;
pSDR->InstanceLowByte = 0; pSDR->InstanceLowByte = 0;
...@@ -452,7 +452,8 @@ void pack_download_req(T_PNAK_SERVICE_REQ_RES *ServiceReqRes, GsdmlDeviceData *d ...@@ -452,7 +452,8 @@ void pack_download_req(T_PNAK_SERVICE_REQ_RES *ServiceReqRes, GsdmlDeviceData *d
ar_property = PROFINET_AR_PROPERTY_STATE_PRIMARY | ar_property = PROFINET_AR_PROPERTY_STATE_PRIMARY |
PROFINET_AR_PROPERTY_PARAMETER_SERVER_CM | PROFINET_AR_PROPERTY_PARAMETER_SERVER_CM |
PROFINET_AR_PROPERTY_DATA_RATE_100MBIT; PROFINET_AR_PROPERTY_DATA_RATE_100MBIT;
pSDR->InstanceLowByte = 1; pSDR->InstanceHighByte = _PN_U16_HIGH_BYTE(dev_data->instance);
pSDR->InstanceLowByte = _PN_U16_LOW_BYTE(dev_data->instance);
} }
no_items = sscanf(dev_data->version, "%hhi.%hhi", &high_byte, &low_byte); no_items = sscanf(dev_data->version, "%hhi.%hhi", &high_byte, &low_byte);
...@@ -882,6 +883,10 @@ int unpack_get_alarm_con(T_PNAK_SERVICE_DESCRIPTION* pSdb, io_sAgentLocal *local ...@@ -882,6 +883,10 @@ int unpack_get_alarm_con(T_PNAK_SERVICE_DESCRIPTION* pSdb, io_sAgentLocal *local
dev->Alarm.ModuleIdentNumber = module_ident_number; dev->Alarm.ModuleIdentNumber = module_ident_number;
dev->Alarm.SubmoduleIdentNumber = submodule_ident_number; dev->Alarm.SubmoduleIdentNumber = submodule_ident_number;
dev->Alarm.Specifier = alarm_spec; dev->Alarm.Specifier = alarm_spec;
dev->Alarm.ManuSpecLength = data_length;
if (data_length > 0) {
memcpy(dev->Alarm.Data, data, MIN(data_length, sizeof(dev->Alarm.Data)));
}
} }
} }
......
...@@ -36,6 +36,8 @@ ...@@ -36,6 +36,8 @@
#endif #endif
#define PN_MAX_MANU_SPEC_DIAGS 200
void pack_set_ip_settings_req(T_PNAK_SERVICE_REQ_RES *ServiceReqRes, PnDeviceInfo *dev_info); void pack_set_ip_settings_req(T_PNAK_SERVICE_REQ_RES *ServiceReqRes, PnDeviceInfo *dev_info);
void pack_set_device_name_req(T_PNAK_SERVICE_REQ_RES *ServiceReqRes, PnDeviceInfo *dev_info); void pack_set_device_name_req(T_PNAK_SERVICE_REQ_RES *ServiceReqRes, PnDeviceInfo *dev_info);
......
This diff is collapsed.
...@@ -6,3 +6,6 @@ ...@@ -6,3 +6,6 @@
070426 rk rt Added IO-method's for Siemens_DiagRepeater. 070426 rk rt Added IO-method's for Siemens_DiagRepeater.
070502 rk mmi Added object graphs for classes Siemens_DiagRepeater and 070502 rk mmi Added object graphs for classes Siemens_DiagRepeater and
Siemens_DR_SegmStatus. Siemens_DR_SegmStatus.
101202 rk wbl Added classes for Sinamics G120 drive with Profinet/Profibus.
101202 rk wbl Added classes for Siemens ET200M/S using Profinet.
This diff is collapsed.
This diff is collapsed.
...@@ -138,3 +138,4 @@ ...@@ -138,3 +138,4 @@
100304 cs script Script type int change from int to long int. 100304 cs script Script type int change from int to long int.
100610 cs emon Support for EmergBreakAction Reboot added. 100610 cs emon Support for EmergBreakAction Reboot added.
100617 cs cdh Bugfix in cdh_SuppressSuperAll. 100617 cs cdh Bugfix in cdh_SuppressSuperAll.
101202 rk rt Added support for handling i/o-channels hidden inside attribute..
This diff is collapsed.
...@@ -52,6 +52,25 @@ if [ $1 = $cmd ]; then ...@@ -52,6 +52,25 @@ if [ $1 = $cmd ]; then
return return
fi fi
if [ "$pwre_os" == "" ]; then
# Set default values for os and hw
unamestr=`eval uname`
machine=`eval uname -m`
if [ $unamestr == "Darwin" ]; then
export pwre_os="os_macos"
export pwre_hw="hw_x86_64"
elif [ $unamestr == "FreeBSD" ]; then
export pwre_os="os_freebsd"
export pwre_hw="hw_x86_64"
else
if [ $machine != "x86_64" ]; then
machine="x86"
fi
export pwre_os="os_linux"
export pwre_hw="hw_"$machine
fi
fi
$pwre_bin/pwre.pl $@ $pwre_bin/pwre.pl $@
......
...@@ -52,6 +52,25 @@ if [ $1 = $cmd ]; then ...@@ -52,6 +52,25 @@ if [ $1 = $cmd ]; then
return return
fi fi
if [ "$pwre_os" == "" ]; then
# Set default values for os and hw
unamestr=`eval uname`
machine=`eval uname -m`
if [ $unamestr == "Darwin" ]; then
export pwre_os="os_macos"
export pwre_hw="hw_x86_64"
elif [ $unamestr == "FreeBSD" ]; then
export pwre_os="os_freebsd"
export pwre_hw="hw_x86_64"
else
if [ $machine != "x86_64" ]; then
machine="x86"
fi
export pwre_os="os_linux"
export pwre_hw="hw_"$machine
fi
fi
$pwre_bin/pwre.pl $@ $pwre_bin/pwre.pl $@
......
...@@ -52,6 +52,25 @@ if [ $1 = $cmd ]; then ...@@ -52,6 +52,25 @@ if [ $1 = $cmd ]; then
return return
fi fi
if [ "$pwre_os" == "" ]; then
# Set default values for os and hw
unamestr=`eval uname`
machine=`eval uname -m`
if [ $unamestr == "Darwin" ]; then
export pwre_os="os_macos"
export pwre_hw="hw_x86_64"
elif [ $unamestr == "FreeBSD" ]; then
export pwre_os="os_freebsd"
export pwre_hw="hw_x86_64"
else
if [ $machine != "x86_64" ]; then
machine="x86"
fi
export pwre_os="os_linux"
export pwre_hw="hw_"$machine
fi
fi
$pwre_bin/pwre.pl $@ $pwre_bin/pwre.pl $@
......
...@@ -182,6 +182,7 @@ palette NavigatorPalette ...@@ -182,6 +182,7 @@ palette NavigatorPalette
menu Siemens menu Siemens
{ {
class Siemens_Motor_1LA class Siemens_Motor_1LA
class Siemens_G120_Tgm1
} }
menu Suco menu Suco
{ {
...@@ -276,6 +277,7 @@ palette NavigatorPalette ...@@ -276,6 +277,7 @@ palette NavigatorPalette
class Siemens_DiagRepeater class Siemens_DiagRepeater
class Siemens_ET200S_IM151 class Siemens_ET200S_IM151
class Siemens_ET200M_IM153 class Siemens_ET200M_IM153
class Sinamics_G120_PbSlave
} }
} }
menu Profinet menu Profinet
...@@ -287,6 +289,10 @@ palette NavigatorPalette ...@@ -287,6 +289,10 @@ palette NavigatorPalette
menu Devices menu Devices
{ {
class PnDevice class PnDevice
class Siemens_ET200S_PnDevice
class Siemens_ET200M_PnDevice
class Sinamics_G120_PnDevice
class ABB_ACS_PnDevice
} }
} }
menu Modbus_TCP menu Modbus_TCP
...@@ -1017,6 +1023,10 @@ palette PlcEditorPalette ...@@ -1017,6 +1023,10 @@ palette PlcEditorPalette
class ABB_DiffPressureSensor_265DSFo class ABB_DiffPressureSensor_265DSFo
class ABB_FlowSensor_FXE4000Fo class ABB_FlowSensor_FXE4000Fo
} }
menu Siemens
{
class Sinamics_G120_Tgm1Fo
}
menu OtherManufacturer menu OtherManufacturer
{ {
class Eurotherm_TC3001Fo class Eurotherm_TC3001Fo
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment