Commit e890e971 authored by Claes's avatar Claes

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

parents f8e32a53 f712c9e4
Volume ABB $ClassVolume 0.0.250.2
Body SysBody 01-JAN-1970 01:00:00.00
Attr NextOix = "_X3943"
Attr NextCix = "_X40"
Attr NextCix = "_X41"
Attr NextTix[0] = "_X3"
EndBody
Object Type $TypeHier 1749 12-OCT-2005 13:25:10.29
......@@ -35568,7 +35568,7 @@ ABB ACS800 Aggregate
EndObject
EndObject
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.DataSheet = "$pwr_lang/dsh/abb_acs800.html"
Attr Super.GSDfile = "$pwr_exe/abb_acs_pb_slave.gsd"
......@@ -35577,11 +35577,55 @@ ABB ACS800 Aggregate
Attr Super.StallAction = 1
Attr Super.ErrorSoftLimit = 15
Attr Super.ErrorHardLimit = 50
Attr Super.WdFact1 = 100
Attr Super.WdFact1 = 10
Attr Super.WdFact2 = 10
EndBody
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
Body SysBody 02-JUL-2010 08:20:30.45
Attr Editor = 0
......@@ -21,4 +21,5 @@
100216 cs bcomp Backup added to BasePositSensor.
100304 cs bcomp Off2 and Off3 inputs added to BaseFcPPO3Fo and BaseFcPPO5Fc.
100309 cs bcomp ForceMan input added to CompModeDFo and CompModeD2Fo.
100326 cs bcomp BaseContactor, pulsed start/stop implemented.
\ No newline at end of file
100326 cs bcomp BaseContactor, pulsed start/stop implemented.
101120 cs bcomp Graphical symbols without mode indication and subraphs for separate mode indication added.
This diff is collapsed.
This diff is collapsed.
......@@ -7,3 +7,4 @@
081205 cs . Release 4.6.0-4.
090529 cs . Release 4.6.1-1.
100329 cs . Release 4.7.0-1.
101121 cs . Operating system FreeBSD added.
......@@ -17,3 +17,5 @@
100602 cs jop TextField fontsize adusted.
100602 cs jop Object graphs updated.
100602 cs jop New script, jpwr_opwind.sh, to start java operator window locally.
101006 cs jop Web operator window, possibility to remove Help and Proview buttons.
101111 cs jop Chinese characters, UTF-0 char coding of language and textfiles.
Volume OtherManufacturer $ClassVolume 0.0.250.1
Body SysBody 01-JAN-1970 01:00:00.00
Attr NextOix = "_X2251"
Attr NextCix = "_X41"
Attr NextOix = "_X2883"
Attr NextCix = "_X51"
Attr NextTix[0] = "_X2"
EndBody
Object Type $TypeHier 1758 09-OCT-2007 14:20:45.77
......@@ -20,5 +20,8 @@
071211 rk mmi Added supgraph mcomp_pb_dp_slave.
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
100702 cs - Common IO module objects for different busses.
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 (
void *v_parent_ctx,
GtkWidget *v_parent_wid,
const char *v_name,
const char *v_device,
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_height = 600;
......
......@@ -38,6 +38,7 @@ class PnViewerGtk : public PnViewer {
void *v_parent_ctx,
GtkWidget *v_parent_wid,
const char *v_name,
const char *v_device,
pwr_tStatus *status);
~PnViewerGtk();
......
......@@ -42,7 +42,7 @@ typedef struct {
static void usage()
{
printf("\nUsage: profinet_viewer [-l language]\n");
printf("\nUsage: profinet_viewer [-l language] [device]\n");
}
static void viewer_close( void *c)
......@@ -56,6 +56,7 @@ int main( int argc, char *argv[])
int i;
int sts;
tViewer *ctx;
char dev_name[20] = "eth1";
ctx = (tViewer *)calloc( 1, sizeof(tViewer));
......@@ -84,12 +85,15 @@ int main( int argc, char *argv[])
Lng::set( argv[i+1]);
i++;
}
else if (strncmp(argv[i], "eth", 3) == 0) {
snprintf(dev_name, sizeof(dev_name), "%s", argv[i]);
}
}
// Open window
try {
ctx->viewer = new PnViewerGtk( ctx, ctx->toplevel, "Profinet Viewer", &sts);
ctx->viewer->close_cb = viewer_close;
ctx->viewer = new PnViewerGtk( ctx, ctx->toplevel, "Profinet Viewer", dev_name, &sts);
ctx->viewer->close_cb = viewer_close;
}
catch ( co_error &e) {
printf( "** Exception: %s\n", e.what().c_str());
......
......@@ -40,12 +40,14 @@
PnViewer::PnViewer(
void *v_parent_ctx,
const char *v_name,
const char *v_device,
pwr_tStatus *status) :
parent_ctx(v_parent_ctx), viewernav(NULL), wow(0), input_open(0), pnet(0), close_cb(0)
{
strcpy( name, v_name);
strcpy( device, v_device);
pnet = new PnViewerPNAC( status);
pnet = new PnViewerPNAC( status, device);
}
PnViewer::~PnViewer()
......
......@@ -41,6 +41,7 @@ class PnViewer {
PnViewer(
void *v_parent_ctx,
const char *v_name,
const char *v_device,
pwr_tStatus *status);
virtual ~PnViewer();
......@@ -62,6 +63,7 @@ class PnViewer {
void *parent_ctx;
char name[80];
char device[20];
PnViewerNav *viewernav;
CoWow *wow;
int input_open;
......
......@@ -37,7 +37,7 @@
PnViewerPNAC::PnViewerPNAC( pwr_tStatus *sts)
PnViewerPNAC::PnViewerPNAC( pwr_tStatus *sts, const char *dev_name)
{
int s;
struct ifreq ifr = {};
......@@ -59,7 +59,7 @@ PnViewerPNAC::PnViewerPNAC( pwr_tStatus *sts)
/* Get configs for device */
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) {
strcpy(dev_data.ip_address, inet_ntoa(((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr));
}
......@@ -73,7 +73,7 @@ PnViewerPNAC::PnViewerPNAC( pwr_tStatus *sts)
strcpy(dev_data.device_name, "dumle");
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.device_id = 0;
strcpy(dev_data.version, "1.0");
......
......@@ -46,7 +46,7 @@
class PnViewerPNAC {
public:
PnViewerPNAC( pwr_tStatus *sts);
PnViewerPNAC( pwr_tStatus *sts, const char *dev_name);
~PnViewerPNAC();
void fetch_devices( vector<PnDevice>& dev_vect);
......
......@@ -93,11 +93,14 @@ Finely-graduated modular distributed I/O device, protection type IP20
# Processing file: /home/claes/gsdml/test.xml
328 8192
GRT1-PNT
# Processing file: /home/claes/gsdml/GSDML-V2.0-ABBdrives-RETA02-20070621.xml
26 1
ABB 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
176 19
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
endif
vpath %.gsd $(hw_source):$(os_source):$(co_source)
vpath %.xml $(hw_source):$(os_source):$(co_source)
source_dirs = $(hw_source) $(os_source) $(co_source)
......@@ -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))
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\
$(clean_gsd)
$(clean_gsd) $(clean_xml)
all : init copy
init :
copy : $(export_gsd)
copy : $(export_gsd) $(export_xml)
lib :
......@@ -46,7 +58,7 @@ exe :
clean :
realclean : clean $(clean_gsd)
realclean : clean $(clean_gsd) $(clean_xml)
$(export_gsd) : $(exe_dir)/%.gsd : %.gsd
@ echo "Exporting $< ..."
......@@ -55,4 +67,11 @@ $(export_gsd) : $(exe_dir)/%.gsd : %.gsd
$(clean_gsd) : clean_%.gsd : %.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 (
gethostname(hname, 40);
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) {
strcpy(dev_data->ip_address, inet_ntoa(((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr));
}
......@@ -147,7 +147,7 @@ static pwr_tStatus IoAgentInit (
strcpy(dev_data->device_name, hname);
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->device_id = 0;
strcpy(dev_data->version, "1.0");
......
......@@ -442,7 +442,7 @@ void pack_download_req(T_PNAK_SERVICE_REQ_RES *ServiceReqRes, GsdmlDeviceData *d
sprintf(pSDR->DeviceName, dev_data->device_name);
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;
ar_property = 0;
pSDR->InstanceLowByte = 0;
......@@ -452,7 +452,8 @@ void pack_download_req(T_PNAK_SERVICE_REQ_RES *ServiceReqRes, GsdmlDeviceData *d
ar_property = PROFINET_AR_PROPERTY_STATE_PRIMARY |
PROFINET_AR_PROPERTY_PARAMETER_SERVER_CM |
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);
......@@ -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.SubmoduleIdentNumber = submodule_ident_number;
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 @@
#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_device_name_req(T_PNAK_SERVICE_REQ_RES *ServiceReqRes, PnDeviceInfo *dev_info);
......
......@@ -142,7 +142,7 @@ int GsdmlDeviceData::print( const char *filename)
" VendorId=\"" << vendor_id << "\"" << endl <<
" DeviceId=\"" << device_id << "\"" << endl <<
" Version=\"" << version << "\"" << endl <<
" ByteOrder=\"" << byte_order << "\">" << endl <<
" ByteOrder=\"" << byte_order << "\"" << endl <<
" Instance=\"" << instance << "\">" << endl <<
" <NetworkSettings " << endl <<
" DeviceName=\"" << device_name << "\"" << endl <<
......
This diff is collapsed.
......@@ -6,3 +6,6 @@
070426 rk rt Added IO-method's for Siemens_DiagRepeater.
070502 rk mmi Added object graphs for classes Siemens_DiagRepeater and
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,19 @@
100304 cs script Script type int change from int to long int.
100610 cs emon Support for EmergBreakAction Reboot added.
100617 cs cdh Bugfix in cdh_SuppressSuperAll.
100621 cs co Show crossreferences, searches in all crossreference files, not just in the file for the current volume.
100709 cs doc Rtt documentation.
100822 cs co Lang key size bugfix.
100822 cs pwre Conditional os i meth files
100930 cs co String conversion of null time with negative gmt offset failed.
100930 cs rt Bugfix for nodenames larger than 31 characters.
100930 cs rt strcpy using the same in and output string doesn't work in 64 bit.
101006 cs pwrb PlcThread Prio defaultvalue set to 22.
101006 cs pwrb SevHist options mask, Parameter bit added for future use.
101015 cs pwrb GetDtp, bugfix in output type.
101018 cs script Bugfix in double right parenthesis and multiple execution of single line command.
101111 cs cdh cdh_Strcpy added for copying into the same buffer.
101123 cs rt rt_emon message loop bugfix.
101123 cs pwre co_mereg bugfix, conditional opsys didn't work.
101123 cs rt getopt replaced.
101202 rk rt Added support for handling i/o-channels hidden inside attribute..
This diff is collapsed.
......@@ -167,13 +167,15 @@ reload_classvolumes()
list=`eval ls -1d $pwrp_db/*.wb_load`
echo ""
for file in $list; do
volume=`eval grep pwr_eClass_ClassVolume $file | awk '{ print $2 }'`
if [ "$volume" == "" ]; then
volume=`eval grep ClassVolume $file | awk '{ print $2 }'`
volumelow=`eval grep ClassVolume $file | awk '{ print tolower($2) }'`
fi
if [ "$volume" != "" ]; then
echo $file
if [ ${file##/*/} != "directory.wb_load" ]; then
volume=`eval grep pwr_eClass_ClassVolume $file | awk '{ print $2 }'`
if [ "$volume" == "" ]; then
volume=`eval grep ClassVolume $file | awk '{ print $2 }'`
volumelow=`eval grep ClassVolume $file | awk '{ print tolower($2) }'`
fi
if [ "$volume" != "" ]; then
echo $file
fi
fi
done
echo ""
......
......@@ -520,7 +520,7 @@ int ccm_remove_blank( char *out_str, char *in_str)
break;
s++;
}
strcpy( out_str, s);
cdh_Strcpy( out_str, s);
/* Remove at end */
s = out_str + strlen(out_str);
s--;
......
......@@ -2580,6 +2580,21 @@ char *cdh_Strcpy( char *dest, const char *src)
return dest;
}
//! Copy string char by char to allow overlapping source and target buffers
char *cdh_Strncpy( char *dest, const char *src, size_t n)
{
const char *s;
char *t;
unsigned int i;
for ( s = src, t = dest, i = 0; *s && i < n; s++,t++,i++)
*t = *s;
if ( i < n)
*t = 0;
return dest;
}
//! Copy string, and cut of if the string is to long with ending '...'
/*!
For example the string '0123456789' will return the string '0123...' when
......
......@@ -1016,6 +1016,7 @@ cdh_NoCaseStrncmp (
);
char *cdh_Strcpy( char *dest, const char *src);
char *cdh_Strncpy( char *dest, const char *src, size_t n);
int
cdh_StrncpyCutOff(
......
......@@ -65,7 +65,7 @@ int dcli_get_defaultfilename(
}
#elif defined(OS_LYNX) || defined(OS_LINUX) || defined(OS_MACOS) || defined OS_FREEBSD
if ( strchr( inname, '/'))
strcpy( outname, inname);
cdh_Strcpy( outname, inname);
else if ( ( s = strchr( inname, ':')))
{
/* Replace VMS disp to env variable */
......
This diff is collapsed.
......@@ -1064,6 +1064,8 @@ sub create()
$root .= "/" . $ENV{"pwre_hw"};
create_dir($root);
printf( "-- Creating build tree %s/%s\n", $root, $module);
$newdir = $root . "/bld";
create_dir($newdir);
create_dir($newdir . "/exe");
......@@ -1437,7 +1439,7 @@ sub create_dir()
if (!chdir($dir)) {
if (mkdir($dir, 0775)) {
printf("-- mkdir: %s\n", $dir);
# printf("-- mkdir: %s\n", $dir);
} else {
printf("++\n++ Cannot mkdir %s, reason: %s\n", $dir, $!);
exit 1;
......
......@@ -1051,10 +1051,12 @@ sub create()
my($root) = $ENV{"pwre_broot"};
my($module) = $ENV{"pwre_bmodule"};
if (!defined($root)) {
if (!defined($root)) {
printf("++\n++ No build root is defined\n");
exit 1;
}
create_dir($root);
$root .= "/" . $ENV{"pwre_os"};
......@@ -1063,6 +1065,8 @@ sub create()
$root .= "/" . $ENV{"pwre_hw"};
create_dir($root);
printf( "-- Creating build tree %s/%s\n", $root, $module);
$newdir = $root . "/bld";
create_dir($newdir);
create_dir($newdir . "/exe");
......@@ -1436,7 +1440,7 @@ sub create_dir()
if (!chdir($dir)) {
if (mkdir($dir, 0775)) {
printf("-- mkdir: %s\n", $dir);
# printf("-- mkdir: %s\n", $dir);
} else {
printf("++\n++ Cannot mkdir %s, reason: %s\n", $dir, $!);
exit 1;
......
......@@ -1064,6 +1064,8 @@ sub create()
$root .= "/" . $ENV{"pwre_hw"};
create_dir($root);
printf( "-- Creating build tree %s/%s\n", $root, $module);
$newdir = $root . "/bld";
create_dir($newdir);
create_dir($newdir . "/exe");
......@@ -1437,7 +1439,7 @@ sub create_dir()
if (!chdir($dir)) {
if (mkdir($dir, 0775)) {
printf("-- mkdir: %s\n", $dir);
# printf("-- mkdir: %s\n", $dir);
} else {
printf("++\n++ Cannot mkdir %s, reason: %s\n", $dir, $!);
exit 1;
......
......@@ -160,3 +160,11 @@
100520 plc Bugfix in plc editor, channels wasn't viewed in subvolumes.
100617 cs script Wb script function GetAttribute didn't work for attribute objects.
100618 cs wb Crossreferences in LibHier not inserted into crossreferece list.
100827 cs wb Alignment bugfix class array attributes.
101001 cs adm Projectlist, errormessage for '_' in project name which is not allowed.
101004 cs wb PlcPgm and Node, adopt and create methods added.
101005 cs wb RtBody size alignment fix for ClassDef and Attribute objects.
101005 cs wb Node build method, current node condition for build of config files removed.
101006 cs wb Dev method PostCreate, inheritance added.
101006 cs wb IO objects, PostCreate method to automatically insert ThreadObject.
101123 cs wb Lockfile added to directory and class volumes.
......@@ -182,6 +182,7 @@ palette NavigatorPalette
menu Siemens
{
class Siemens_Motor_1LA
class Siemens_G120_Tgm1
}
menu Suco
{
......@@ -276,6 +277,7 @@ palette NavigatorPalette
class Siemens_DiagRepeater
class Siemens_ET200S_IM151
class Siemens_ET200M_IM153
class Sinamics_G120_PbSlave
}
}
menu Profinet
......@@ -287,6 +289,10 @@ palette NavigatorPalette
menu Devices
{
class PnDevice
class Siemens_ET200S_PnDevice
class Siemens_ET200M_PnDevice
class Sinamics_G120_PnDevice
class ABB_ACS_PnDevice
}
}
menu Modbus_TCP
......@@ -1017,6 +1023,10 @@ palette PlcEditorPalette
class ABB_DiffPressureSensor_265DSFo
class ABB_FlowSensor_FXE4000Fo
}
menu Siemens
{
class Sinamics_G120_Tgm1Fo
}
menu OtherManufacturer
{
class Eurotherm_TC3001Fo
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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